diff --git a/engine/class_modules/sc_demon_hunter.cpp b/engine/class_modules/sc_demon_hunter.cpp index c3434a65f7a..82ae8860489 100644 --- a/engine/class_modules/sc_demon_hunter.cpp +++ b/engine/class_modules/sc_demon_hunter.cpp @@ -5588,6 +5588,7 @@ struct consume_base_t : public shattered_souls_trigger_tbuff.moment_of_craving->trigger(); dh()->cooldown.reap->reset( true ); + dh()->buff.soulburst->expire(); dh()->spawn_soul_fragment( dh()->proc.soul_fragment_from_soulburst, soul_fragment::LESSER, as( dh()->set_bonuses.mid2_devourer_4pc->effectN( 1 ).base_value() ) ); } @@ -5622,7 +5623,6 @@ struct consume_base_t : public shattered_souls_trigger_tbuff.soulburst->up() && soulburst ) { soulburst->execute_on_target( target ); - dh()->buff.soulburst->expire(); } } }; @@ -5891,9 +5891,6 @@ struct reap_base_t : public voidfall_spending_trigger_tbuff.reap->trigger(); - - base_t::execute(); unsigned fragments_consumed = dh()->consume_soul_fragments( soul_fragment::LESSER, false, souls_to_consume() ); // TOCHECK: Is this instant? @@ -5904,6 +5901,10 @@ struct reap_base_t : public voidfall_spending_trigger_tbuff.soulburst->trigger(); } + dh()->buff.reap->trigger(); + + base_t::execute(); + // TOCHECK: This delay is a guess based on averages in logs as there is no spelldata make_event( *dh()->sim, 220_ms, [ this, fragments_consumed ] { damage_action->set_target( target ); @@ -5987,11 +5988,12 @@ struct eradicate_t : public voidfall_spending_trigger_tconsume_soul_fragments( soul_fragment::LESSER, false, souls_to_consume() ); + dh()->buff.reap->trigger(); base_t::execute(); - unsigned fragments_consumed = dh()->consume_soul_fragments( soul_fragment::LESSER, false, souls_to_consume() ); auto damage = dh()->buff.metamorphosis->up() ? damage_action_meta : damage_action; // TOCHECK: This delay is a guess based on averages in logs as there is no spelldata