@@ -3676,7 +3676,7 @@ struct auto_shot_base_t : public auto_attack_base_t<ranged_attack_t>
3676
3676
double snakeskin_quiver_chance = 0 ;
3677
3677
double wild_call_chance = 0 ;
3678
3678
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 )
3680
3680
{
3681
3681
wild_call_chance = p->talents .wild_call ->effectN ( 1 ).percent ();
3682
3682
snakeskin_quiver_chance = p->talents .snakeskin_quiver ->effectN ( 1 ).percent ();
@@ -4073,6 +4073,9 @@ struct explosive_shot_base_t : public hunter_ranged_attack_t
4073
4073
4074
4074
p ()->cooldowns .wildfire_bomb ->adjust ( -grenade_juggler_reduction );
4075
4075
p ()->buffs .bombardier ->decrement ();
4076
+
4077
+ if ( p ()->talents .precision_detonation .ok () )
4078
+ p ()->buffs .streamline ->trigger ();
4076
4079
}
4077
4080
4078
4081
double cost_pct_multiplier () const override
@@ -4111,6 +4114,17 @@ struct explosive_shot_t : public explosive_shot_base_t
4111
4114
{
4112
4115
parse_options ( options_str );
4113
4116
}
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
+ }
4114
4128
4115
4129
void execute () override
4116
4130
{
@@ -4121,9 +4135,6 @@ struct explosive_shot_t : public explosive_shot_base_t
4121
4135
p ()->buffs .tip_of_the_spear ->decrement ();
4122
4136
p ()->buffs .tip_of_the_spear_explosive ->trigger ();
4123
4137
}
4124
-
4125
- if ( p ()->talents .precision_detonation .ok () )
4126
- p ()->buffs .streamline ->trigger ();
4127
4138
}
4128
4139
};
4129
4140
@@ -4427,8 +4438,13 @@ struct black_arrow_t final : public black_arrow_base_t
4427
4438
{
4428
4439
parse_options ( options_str );
4429
4440
4441
+ add_child ( impact_action );
4442
+
4430
4443
if ( p->talents .withering_fire .ok () )
4444
+ {
4431
4445
withering_fire = p->get_background_action <withering_fire_t >( " black_arrow_withering_fire" );
4446
+ add_child ( withering_fire );
4447
+ }
4432
4448
}
4433
4449
4434
4450
void execute () override
@@ -5272,7 +5288,7 @@ struct aimed_shot_t : public aimed_shot_base_t
5272
5288
{
5273
5289
double c = aimed_shot_base_t::cost_pct_multiplier ();
5274
5290
5275
- double streamline_mod = p ()->buffs .streamline ->check_value ();
5291
+ double streamline_mod = p ()->buffs .streamline ->check () * p ()-> talents . streamline_buff -> effectN ( 2 ). percent ();
5276
5292
5277
5293
if ( p ()->buffs .trueshot ->check () )
5278
5294
streamline_mod *= 1 + p ()->talents .tensile_bowstring ->effectN ( 2 ).percent ();
@@ -7292,7 +7308,10 @@ struct auto_attack_t: public action_t
7292
7308
}
7293
7309
else if ( p -> main_hand_weapon.group () == WEAPON_RANGED )
7294
7310
{
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 );
7296
7315
}
7297
7316
else
7298
7317
{
0 commit comments