@@ -2066,7 +2066,7 @@ struct shaman_t : public parse_player_effects_t
20662066
20672067 void trigger_secondary_flame_shock( player_t* target, spell_variant variant = spell_variant::NORMAL ) const;
20682068 void trigger_secondary_flame_shock( const action_state_t* state, spell_variant variant = spell_variant::NORMAL ) const;
2069- void regenerate_flame_shock_dependent_target_list( const action_t* action, const bool ignore_target = false ) const;
2069+ void regenerate_flame_shock_dependent_target_list( const action_t* action ) const;
20702070
20712071 void generate_maelstrom_weapon( const action_t* action, int stacks = 1 );
20722072 void generate_maelstrom_weapon( const action_state_t* state, int stacks = 1 );
@@ -3105,7 +3105,7 @@ struct shaman_spell_base_t : public shaman_action_t<Base>
31053105 this->p()->proc.aftershock->occur();
31063106 }
31073107
3108- if ( ( this->execute_state && this->execute_state ->action->id == 188389 ) ||
3108+ if ( ( this->execute_state->action->id == 188389 ) ||
31093109 ( this->is_variant( spell_variant::NORMAL ) && !this->background) )
31103110 {
31113111 this->p()->trigger_ancestor( ancestor_trigger, this->execute_state );
@@ -6904,7 +6904,7 @@ struct lava_burst_t : public shaman_spell_t
69046904
69056905 if ( is_variant( spell_variant::PURGING_FLAMES ) )
69066906 {
6907- aoe = 5;
6907+ aoe = 5;
69086908 if ( auto vb = p()->find_action( "voltaic_blaze" ) )
69096909 {
69106910 vb->add_child( this );
@@ -6932,7 +6932,7 @@ struct lava_burst_t : public shaman_spell_t
69326932 size_t available_targets( std::vector<player_t*>& tl ) const override
69336933 {
69346934 shaman_spell_t::available_targets( tl );
6935- p()->regenerate_flame_shock_dependent_target_list( this, is_variant( spell_variant::PURGING_FLAMES ) );
6935+ p()->regenerate_flame_shock_dependent_target_list( this );
69366936
69376937 return tl.size();
69386938 }
@@ -7050,7 +7050,14 @@ struct lava_burst_t : public shaman_spell_t
70507050 if (p()->buff.purging_flames->check() && !background)
70517051 {
70527052 assert( p()->action.lava_burst_pf );
7053- p()->action.lava_burst_pf->execute();
7053+ for ( auto t : target_list() )
7054+ {
7055+ if (t == target)
7056+ {
7057+ continue;
7058+ }
7059+ p()->action.lava_burst_pf->execute_on_target( t );
7060+ }
70547061 p()->buff.purging_flames->decrement();
70557062 }
70567063
@@ -11423,7 +11430,7 @@ void shaman_t::trigger_secondary_flame_shock( const action_state_t* state, spell
1142311430 trigger_secondary_flame_shock( state->target, variant );
1142411431}
1142511432
11426- void shaman_t::regenerate_flame_shock_dependent_target_list( const action_t* action, const bool ignore_target ) const
11433+ void shaman_t::regenerate_flame_shock_dependent_target_list( const action_t* action ) const
1142711434{
1142811435 auto& tl = action->target_cache.list;
1142911436
@@ -11433,11 +11440,6 @@ void shaman_t::regenerate_flame_shock_dependent_target_list( const action_t* act
1143311440
1143411441 tl.erase( it, tl.end() );
1143511442
11436- if ( ignore_target )
11437- {
11438- tl.erase( std::remove( tl.begin(), tl.end(), action->target ), tl.end() );
11439- }
11440-
1144111443 if ( sim->debug )
1144211444 {
1144311445 sim->print_debug("{} targets with flame_shock on:", *this );
0 commit comments