Skip to content

Commit 7a9c67e

Browse files
authored
[Hunter] Initial support for assisted combat (#10296)
1 parent 4f00264 commit 7a9c67e

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

engine/class_modules/sc_hunter.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,6 +1070,9 @@ struct hunter_t final : public player_t
10701070
void init_scaling() override;
10711071
void init_assessors() override;
10721072
void init_action_list() override;
1073+
void init_blizzard_action_list() override;
1074+
std::string parse_assisted_combat_rule( const assisted_combat_rule_data_t& rule,
1075+
const assisted_combat_step_data_t& step ) const override;
10731076
void init_special_effects() override;
10741077
void init_finished() override;
10751078
void reset() override;
@@ -7895,6 +7898,7 @@ action_t* hunter_t::create_action( util::string_view name, util::string_view opt
78957898
if ( name == "spearhead" ) return new spearhead_t( this, options_str );
78967899
if ( name == "steady_shot" ) return new steady_shot_t( this, options_str );
78977900
if ( name == "summon_pet" ) return new summon_pet_t( this, options_str );
7901+
if ( name == "call_pet_1" ) return new summon_pet_t( this, options_str );
78987902
if ( name == "tar_trap" ) return new tar_trap_t( this, options_str );
78997903
if ( name == "trueshot" ) return new trueshot_t( this, options_str );
79007904
if ( name == "volley" ) return new volley_t( this, options_str );
@@ -9052,6 +9056,48 @@ void hunter_t::init_action_list()
90529056
player_t::init_action_list();
90539057
}
90549058

9059+
void hunter_t::init_blizzard_action_list()
9060+
{
9061+
player_t::init_blizzard_action_list();
9062+
9063+
action_priority_list_t* precombat = get_action_priority_list( "precombat" );
9064+
switch ( specialization() )
9065+
{
9066+
case HUNTER_MARKSMANSHIP:
9067+
precombat->add_action( "summon_pet,if=talent.unbreakable_bond" );
9068+
break;
9069+
default:
9070+
precombat->add_action( "summon_pet" );
9071+
break;
9072+
}
9073+
9074+
9075+
action_priority_list_t* default_ = get_action_priority_list( "default" );
9076+
default_->add_action( specialization() == HUNTER_SURVIVAL ? "auto_attack" : "auto_shot" );
9077+
9078+
action_priority_list_t* cooldowns = get_action_priority_list( "cooldowns" );
9079+
switch ( specialization() )
9080+
{
9081+
case HUNTER_BEAST_MASTERY:
9082+
cooldowns->add_action( "call_of_the_wild" );
9083+
break;
9084+
case HUNTER_MARKSMANSHIP:
9085+
cooldowns->add_action( "trueshot" );
9086+
break;
9087+
case HUNTER_SURVIVAL:
9088+
cooldowns->add_action( "coordinated_assault" );
9089+
break;
9090+
default:
9091+
break;
9092+
}
9093+
}
9094+
9095+
std::string hunter_t::parse_assisted_combat_rule( const assisted_combat_rule_data_t& rule,
9096+
const assisted_combat_step_data_t& step ) const
9097+
{
9098+
return player_t::parse_assisted_combat_rule( rule, step );
9099+
}
9100+
90559101
void hunter_t::init_special_effects()
90569102
{
90579103
player_t::init_special_effects();

0 commit comments

Comments
 (0)