Skip to content

Commit

Permalink
[Druid] Add default Food/Flask/Rune/Potion. Regenerate.
Browse files Browse the repository at this point in the history
  • Loading branch information
Xanzara committed Jun 16, 2017
1 parent de236ec commit 7a2bf0e
Show file tree
Hide file tree
Showing 14 changed files with 223 additions and 167 deletions.
209 changes: 93 additions & 116 deletions engine/class_modules/sc_druid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,10 @@ struct druid_t : public player_t
virtual void init_spells() override;
virtual void init_scaling() override;
virtual void create_buffs() override;
std::string default_flask() const override;
std::string default_potion() const override;
std::string default_food() const override;
std::string default_rune() const override;
virtual void invalidate_cache( cache_e ) override;
virtual void arise() override;
virtual void reset() override;
Expand Down Expand Up @@ -7354,102 +7358,103 @@ void druid_t::create_buffs()
}

// ALL Spec Pre-Combat Action Priority List =================================
void druid_t::apl_precombat()
std::string druid_t::default_flask() const
{
std::string balance_flask = (true_level > 100) ? "whispered_pact" :
(true_level >= 90) ? "greater_draenic_intellect_flask" :
(true_level >= 85) ? "warm_sun" :
(true_level >= 80) ? "draconic_mind" :
"disabled";

std::string feral_flask = (true_level > 100) ? "seventh_demon" :
(true_level >= 90) ? "greater_draenic_agility_flask" :
(true_level >= 85) ? "spring_blossoms" :
(true_level >= 80) ? "winds" :
"disabled";

std::string guardian_flask = (true_level > 100) ? "seventh_demon" :
(true_level >= 90) ? "greater_draenic_agility_flask" :
(true_level >= 85) ? "spring_blossoms" :
(true_level >= 80) ? "winds" :
"disabled";

switch ( specialization() )
{
case DRUID_FERAL:
return feral_flask;
case DRUID_BALANCE:
return balance_flask;
case DRUID_GUARDIAN:
return guardian_flask;
default:
return "disabled";
}

}
std::string druid_t::default_potion() const
{
action_priority_list_t* precombat = get_action_priority_list( "precombat" );
std::string balance_pot = (true_level > 100) ? "deadly_grace" :
(true_level >= 90) ? "draenic_intellect" :
(true_level >= 85) ? "jade_serpent" :
(true_level >= 80) ? "volcanic" :
"disabled";

// Flask or Elixir
if ( sim -> allow_flasks && true_level >= 80 )
{
std::string flask, elixir1, elixir2;
std::string feral_pot = (true_level > 100) ? "old_war" : //TODO(feral): Check pp conditional ~1m dps/915 ilvl
(true_level >= 90) ? "draenic_agility" :
(true_level >= 85) ? "virmens_bite" :
(true_level >= 80) ? "tolvir" :
"disabled";

if ( primary_role() == ROLE_TANK ) // Guardian
{
if ( true_level > 100 )
flask = "flask_of_the_seventh_demon";
else if ( true_level > 90 )
flask = "greater_draenic_agility_flask";
else if ( true_level > 85 )
flask = "winds";
else
flask = "steelskin";
}
else if ( primary_role() == ROLE_ATTACK ) // Feral
{
if ( true_level > 100 )
flask = "flask_of_the_seventh_demon";
else if ( true_level > 90 )
flask = "greater_draenic_agility_flask";
else
flask = "winds";
}
else // Balance & Restoration
{
if ( true_level > 100 )
flask = "flask_of_the_whispered_pact";
else if ( true_level > 90 )
flask = "greater_draenic_intellect_flask";
else if ( true_level > 85 )
flask = "warm_sun";
else
flask = "draconic_mind";
}
std::string guardian_pot = (true_level > 100) ? "old_war" :
(true_level >= 90) ? "draenic_agility" :
(true_level >= 85) ? "virmens_bite" :
(true_level >= 80) ? "tolvir" :
"disabled";

if ( ! flask.empty() )
precombat -> add_action( "flask,type=" + flask );
else
{
if ( ! elixir1.empty() )
precombat -> add_action( "elixir,type=" + elixir1 );
if ( ! elixir2.empty() )
precombat -> add_action( "elixir,type=" + elixir2 );
}
}

// Food
if ( sim -> allow_food && true_level > 80 )
{
std::string food;
switch (specialization())
{
case DRUID_FERAL:
return feral_pot;
case DRUID_BALANCE:
return balance_pot;
case DRUID_GUARDIAN:
return guardian_pot;
default:
return "disabled";
}
}

if ( true_level > 100 )
{
switch ( specialization() )
{
case DRUID_FERAL:
food = "lavish_suramar_feast";
break;
default:
food = "lavish_suramar_feast";
break;
}
}
else if ( true_level > 90 )
{
switch ( specialization() )
{
case DRUID_FERAL:
food = "pickled_eel";
break;
case DRUID_BALANCE:
case DRUID_GUARDIAN:
food = "sleeper_sushi";
break;
default:
food = "buttered_sturgeon";
break;
}
}
else
food = "seafood_magnifique_feast";
std::string druid_t::default_food() const
{
return (true_level > 100) ? "lavish_suramar_feast" :
(true_level > 90) ? "pickled_eel" :
(true_level >= 90) ? "sea_mist_rice_noodles" :
(true_level >= 80) ? "seafood_magnifique_feast" :
"disabled";
}

if ( ! food.empty() )
precombat -> add_action( "food,type=" + food );
}
std::string druid_t::default_rune() const
{
return (true_level >= 110) ? "defiled" :
(true_level >= 100) ? "hyper" :
"disabled";
}

// Augmentation Rune
if ( true_level > 100 )
precombat -> add_action( "augmentation,type=defiled" );

void druid_t::apl_precombat()
{
action_priority_list_t* precombat = get_action_priority_list( "precombat" );

// Flask
precombat->add_action("flask");

// Food
precombat->add_action("food");

// Rune
precombat->add_action("augmentation");

// Mark of the Wild
precombat -> add_action( this, "Mark of the Wild", "if=!aura.str_agi_int.up" );

Expand Down Expand Up @@ -7491,35 +7496,7 @@ void druid_t::apl_precombat()
precombat -> add_action( "snapshot_stats", "Snapshot raid buffed stats before combat begins and pre-potting is done." );

// Pre-Potion
if ( sim -> allow_potions && true_level >= 80 )
{
std::string potion_action = "potion,name=";
if ( specialization() == DRUID_FERAL && primary_role() == ROLE_ATTACK )
{
if ( true_level > 100 )
potion_action += "old_war";
else if ( true_level > 90 )
potion_action += "draenic_agility";
else if ( true_level > 85 )
potion_action += "tolvir";
else
potion_action += "tolvir";
precombat -> add_action( potion_action );
}
else if ( ( specialization() == DRUID_BALANCE || specialization() == DRUID_RESTORATION ) && ( primary_role() == ROLE_SPELL
|| primary_role() == ROLE_HEAL ) )
{
if ( true_level > 100 )
potion_action += "deadly_grace";
else if ( true_level > 90 )
potion_action += "draenic_intellect";
else if ( true_level > 85 )
potion_action += "jade_serpent";
else
potion_action += "volcanic";
precombat -> add_action( potion_action );
}
}
precombat->add_action("potion");

// Spec Specific Optimizations
if ( specialization() == DRUID_BALANCE )
Expand Down
14 changes: 10 additions & 4 deletions profiles/Tier19H/Druid_Balance_T19H.simc
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,27 @@ position=back
talents=3200233
artifact=59:137303:137381:137303:0:1035:3:1036:3:1037:3:1039:3:1040:3:1041:4:1042:5:1043:1:1044:1:1046:1:1047:1:1049:1:1294:1

# Default consumables
potion=deadly_grace
flask=whispered_pact
food=lavish_suramar_feast
augmentation=defiled

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=flask_of_the_whispered_pact
actions.precombat+=/food,type=lavish_suramar_feast
actions.precombat+=/augmentation,type=defiled
actions.precombat=flask
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/moonkin_form
actions.precombat+=/blessing_of_elune
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=deadly_grace
actions.precombat+=/potion
actions.precombat+=/new_moon

# Executed every time the actor is available.
Expand Down
14 changes: 10 additions & 4 deletions profiles/Tier19H/Druid_Feral_T19H.simc
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,22 @@ position=back
talents=3000322
artifact=58:133683:137350:137307:0:1153:1:1154:1:1156:1:1157:1:1158:1:1161:6:1162:3:1163:3:1164:3:1165:3:1166:3:1167:3:1327:1

# Default consumables
potion=old_war
flask=seventh_demon
food=lavish_suramar_feast
augmentation=defiled

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=flask_of_the_seventh_demon
actions.precombat+=/food,type=lavish_suramar_feast
actions.precombat+=/augmentation,type=defiled
actions.precombat=flask
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/regrowth,if=talent.bloodtalons.enabled
# Rake_refresh controls how aggresively to refresh rake. Lower means less aggresively.
actions.precombat+=/variable,name=rake_refresh,op=set,value=7
Expand All @@ -30,7 +36,7 @@ actions.precombat+=/cat_form
actions.precombat+=/prowl
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=old_war
actions.precombat+=/potion

# Executed every time the actor is available.
actions=dash,if=!buff.cat_form.up
Expand Down
14 changes: 10 additions & 4 deletions profiles/Tier19H_NH/Druid_Feral_T19H_NH.simc
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,22 @@ position=back
talents=2331322
artifact=58:0:0:0:0:1153:1:1154:1:1155:1:1156:1:1157:1:1158:1:1159:1:1160:3:1161:4:1162:4:1163:3:1164:4:1165:3:1166:4:1167:4:1168:3:1327:1:1365:1:1505:1:1633:1

# Default consumables
potion=old_war
flask=seventh_demon
food=lavish_suramar_feast
augmentation=defiled

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=flask_of_the_seventh_demon
actions.precombat+=/food,type=lavish_suramar_feast
actions.precombat+=/augmentation,type=defiled
actions.precombat=flask
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/regrowth,if=talent.bloodtalons.enabled
# Rake_refresh controls how aggresively to refresh rake. Lower means less aggresively.
actions.precombat+=/variable,name=rake_refresh,op=set,value=7
Expand All @@ -30,7 +36,7 @@ actions.precombat+=/cat_form
actions.precombat+=/prowl
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=old_war
actions.precombat+=/potion

# Executed every time the actor is available.
actions=dash,if=!buff.cat_form.up
Expand Down
14 changes: 10 additions & 4 deletions profiles/Tier19M/Druid_Balance_T19M.simc
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,27 @@ position=back
talents=3200233
artifact=59:142514:142517:142514:0:1034:3:1035:3:1036:3:1037:4:1038:3:1039:5:1040:3:1041:3:1042:3:1043:1:1044:1:1045:1:1046:1:1047:1:1048:1:1049:1:1294:1

# Default consumables
potion=deadly_grace
flask=whispered_pact
food=lavish_suramar_feast
augmentation=defiled

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=flask_of_the_whispered_pact
actions.precombat+=/food,type=lavish_suramar_feast
actions.precombat+=/augmentation,type=defiled
actions.precombat=flask
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/moonkin_form
actions.precombat+=/blessing_of_elune
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=deadly_grace
actions.precombat+=/potion
actions.precombat+=/new_moon

# Executed every time the actor is available.
Expand Down
Loading

0 comments on commit 7a2bf0e

Please sign in to comment.