Skip to content

Commit 810eff7

Browse files
committed
[Hunter] MM/DR bugfixing
1 parent c9c13db commit 810eff7

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

engine/class_modules/sc_hunter.cpp

+25-6
Original file line numberDiff line numberDiff line change
@@ -3676,7 +3676,7 @@ struct auto_shot_base_t : public auto_attack_base_t<ranged_attack_t>
36763676
double snakeskin_quiver_chance = 0;
36773677
double wild_call_chance = 0;
36783678

3679-
auto_shot_base_t( util::string_view n, hunter_t* p, const spell_data_t* s ) : auto_attack_base_t( "auto_shot", p, p->specs.auto_shot )
3679+
auto_shot_base_t( util::string_view n, hunter_t* p, const spell_data_t* s ) : auto_attack_base_t( n, p, s )
36803680
{
36813681
wild_call_chance = p->talents.wild_call->effectN( 1 ).percent();
36823682
snakeskin_quiver_chance = p->talents.snakeskin_quiver->effectN( 1 ).percent();
@@ -4073,6 +4073,9 @@ struct explosive_shot_base_t : public hunter_ranged_attack_t
40734073

40744074
p()->cooldowns.wildfire_bomb->adjust( -grenade_juggler_reduction );
40754075
p()->buffs.bombardier->decrement();
4076+
4077+
if ( p()->talents.precision_detonation.ok() )
4078+
p()->buffs.streamline->trigger();
40764079
}
40774080

40784081
double cost_pct_multiplier() const override
@@ -4111,6 +4114,17 @@ struct explosive_shot_t : public explosive_shot_base_t
41114114
{
41124115
parse_options( options_str );
41134116
}
4117+
4118+
void init() override
4119+
{
4120+
explosive_shot_base_t::init();
4121+
4122+
if ( p()->specialization() == HUNTER_MARKSMANSHIP )
4123+
{
4124+
explosion->stats = stats;
4125+
stats->action_list.push_back( explosion );
4126+
}
4127+
}
41144128

41154129
void execute() override
41164130
{
@@ -4121,9 +4135,6 @@ struct explosive_shot_t : public explosive_shot_base_t
41214135
p()->buffs.tip_of_the_spear->decrement();
41224136
p()->buffs.tip_of_the_spear_explosive->trigger();
41234137
}
4124-
4125-
if ( p()->talents.precision_detonation.ok() )
4126-
p()->buffs.streamline->trigger();
41274138
}
41284139
};
41294140

@@ -4427,8 +4438,13 @@ struct black_arrow_t final : public black_arrow_base_t
44274438
{
44284439
parse_options( options_str );
44294440

4441+
add_child( impact_action );
4442+
44304443
if ( p->talents.withering_fire.ok() )
4444+
{
44314445
withering_fire = p->get_background_action<withering_fire_t>( "black_arrow_withering_fire" );
4446+
add_child( withering_fire );
4447+
}
44324448
}
44334449

44344450
void execute() override
@@ -5272,7 +5288,7 @@ struct aimed_shot_t : public aimed_shot_base_t
52725288
{
52735289
double c = aimed_shot_base_t::cost_pct_multiplier();
52745290

5275-
double streamline_mod = p()->buffs.streamline->check_value();
5291+
double streamline_mod = p()->buffs.streamline->check() * p()->talents.streamline_buff->effectN( 2 ).percent();
52765292

52775293
if ( p()->buffs.trueshot->check() )
52785294
streamline_mod *= 1 + p()->talents.tensile_bowstring->effectN( 2 ).percent();
@@ -7292,7 +7308,10 @@ struct auto_attack_t: public action_t
72927308
}
72937309
else if ( p -> main_hand_weapon.group() == WEAPON_RANGED )
72947310
{
7295-
p -> main_hand_attack = new attacks::auto_shot_t( p );
7311+
if ( p->talents.bleak_arrows.ok() )
7312+
p -> main_hand_attack = new attacks::bleak_arrows_t( p );
7313+
else
7314+
p -> main_hand_attack = new attacks::auto_shot_t( p );
72967315
}
72977316
else
72987317
{

0 commit comments

Comments
 (0)