Skip to content

Commit

Permalink
[Warlock] Minor assorted bug fixes (simulationcraft#9297)
Browse files Browse the repository at this point in the history
* Update Succulent Soul decrement for Affliction

* Set tick time behavior on Shared Fate manually

* Fix reporting for Shadow Bolt Volley
  • Loading branch information
Azevara authored Aug 22, 2024
1 parent c35db03 commit 3e34d8d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
1 change: 1 addition & 0 deletions engine/class_modules/warlock/sc_warlock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ warlock_td_t::warlock_td_t( player_t* target, warlock_t& p )

debuffs_shared_fate = make_buff( *this, "shared_fate", p.hero.shared_fate_debuff )
->set_tick_zero( false )
->set_tick_time_behavior( buff_tick_time_behavior::HASTED )
->set_period( p.hero.shared_fate_debuff->effectN( 1 ).period() )
->set_tick_callback( [ this, target ]( buff_t*, int, timespan_t )
{ warlock.proc_actions.shared_fate->execute_on_target( target ); } );
Expand Down
18 changes: 8 additions & 10 deletions engine/class_modules/warlock/sc_warlock_actions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -944,10 +944,7 @@ using namespace helpers;
}

if ( p->talents.cunning_cruelty.ok() )
{
volley = new shadow_bolt_volley_t( p );
add_child( volley );
}
}

bool ready() override
Expand Down Expand Up @@ -1595,12 +1592,8 @@ using namespace helpers;
if ( p()->talents.malefic_touch.ok() )
touch->execute_on_target( s->target );

// TOCHECK: Demonic Soul is proc'd based on impact, but this makes redundant decrement() calls in AoE.
// Is there a good way around this?
if ( soul_harvester() && p()->buffs.succulent_soul->check() )
{
make_event( *sim, 1_ms, [ this ] { p()->buffs.succulent_soul->decrement(); } );

bool fervor = td( s->target )->dots_unstable_affliction->is_ticking();
debug_cast<demonic_soul_t*>( p()->proc_actions.demonic_soul )->demoniacs_fervor = fervor;
p()->proc_actions.demonic_soul->execute_on_target( s->target );
Expand Down Expand Up @@ -1682,6 +1675,14 @@ using namespace helpers;
warlock_spell_t::impact( s );

debug_cast<malefic_rapture_damage_t*>( impact_action )->target_count = as<int>( s->n_targets );

if ( soul_harvester() && p()->buffs.succulent_soul->check() )
{
bool primary = ( s->chain_target == 0 );

if ( primary )
make_event( *sim, 1_ms, [ this ] { p()->buffs.succulent_soul->decrement(); } );
}
}

size_t available_targets( std::vector<player_t*>& tl ) const override
Expand Down Expand Up @@ -2031,10 +2032,7 @@ using namespace helpers;
base_td_multiplier *= 1.0 + p->talents.dark_virtuosity->effectN( 2 ).percent();

if ( p->talents.cunning_cruelty.ok() )
{
volley = new shadow_bolt_volley_t( p );
add_child( volley );
}
}

action_state_t* new_state() override
Expand Down

0 comments on commit 3e34d8d

Please sign in to comment.