From 781b6cfeb6f1550b3d78fab22a47f1cc759338f5 Mon Sep 17 00:00:00 2001 From: Kate Martin <51387586+renanthera@users.noreply.github.com> Date: Sat, 26 Sep 2026 19:24:52 -0600 Subject: [PATCH 1/4] [monk] RWK trigger resets RSK. --- engine/class_modules/monk/sc_monk.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index d2c343229f5..4ec3534d999 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -1270,11 +1270,10 @@ struct charred_passions_t : base_action_t struct base_blackout_kick_t : monk_melee_attack_t { - cooldown_t *rising_sun_kick; proc_t *rising_sun_kick_reset; base_blackout_kick_t( monk_t *player, std::string_view name, const spell_data_t *spell_data ) - : monk_melee_attack_t( player, name, spell_data ), rising_sun_kick( nullptr ), rising_sun_kick_reset( nullptr ) + : monk_melee_attack_t( player, name, spell_data ), rising_sun_kick_reset( nullptr ) { // TODO: check this ap_type = attack_power_type::WEAPON_BOTH; @@ -1294,7 +1293,6 @@ struct base_blackout_kick_t : monk_melee_attack_t if ( !p()->talent.windwalker.teachings_of_the_monastery->ok() ) return; - rising_sun_kick = p()->get_cooldown( "rising_sun_kick" ); rising_sun_kick_reset = p()->get_proc( "Teachings of the Monastery - Rising Sun Kick Reset" ); } @@ -1308,7 +1306,7 @@ struct base_blackout_kick_t : monk_melee_attack_t double chance = p()->talent.windwalker.teachings_of_the_monastery->effectN( 1 ).percent(); if ( rng().roll( chance ) ) { - rising_sun_kick->reset( true ); + p()->cooldown.rising_sun_kick->reset( true ); rising_sun_kick_reset->occur(); } } @@ -1411,7 +1409,10 @@ struct blackout_kick_t : overwhelming_force_ttalent.windwalker.rushing_wind_kick->effectN( 1 ).percent(); if ( p()->rng().roll( rwk_chance ) ) + { + p()->cooldown.rising_sun_kick->reset( true ); p()->buff.rushing_wind_kick->trigger(); + } double eb_chance = p()->talent.windwalker.energy_burst->effectN( 1 ).percent(); if ( p()->rng().roll( eb_chance ) ) From b4b1d8aa91bf5eb79c54c8ee8cfb38461d55dbfc Mon Sep 17 00:00:00 2001 From: Kate Martin <51387586+renanthera@users.noreply.github.com> Date: Sat, 26 Sep 2026 19:47:57 -0600 Subject: [PATCH 2/4] [monk] Chi Burst consumes Balanced Stratagem. --- engine/class_modules/monk/sc_monk.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index 4ec3534d999..726f4788b1b 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -3011,7 +3011,9 @@ struct chi_burst_t : monk_spell_t add_parse_entry( TBase::da_multiplier_effects ) .set_buff( player->buff.balanced_stratagem_magic ) .set_value( effect.percent() ) - .set_eff( &effect ); + .set_eff( &effect ) + .add_parse_callback( this, PARSE_CALLBACK_POST_EXECUTE, + [ & ]( action_state_t * ) { p()->buff.balanced_stratagem_magic->consume( this ); } ); } }; From 9fc6915ccbc6ef659089e56d832cb9643c6d10d6 Mon Sep 17 00:00:00 2001 From: Kate Martin <51387586+renanthera@users.noreply.github.com> Date: Sat, 26 Sep 2026 20:06:30 -0600 Subject: [PATCH 3/4] feels templates man --- engine/class_modules/monk/sc_monk.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index 726f4788b1b..c1fa474748b 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -3012,8 +3012,9 @@ struct chi_burst_t : monk_spell_t .set_buff( player->buff.balanced_stratagem_magic ) .set_value( effect.percent() ) .set_eff( &effect ) - .add_parse_callback( this, PARSE_CALLBACK_POST_EXECUTE, - [ & ]( action_state_t * ) { p()->buff.balanced_stratagem_magic->consume( this ); } ); + .add_parse_callback( this, PARSE_CALLBACK_POST_EXECUTE, [ & ]( action_state_t * ) { + TBase::p()->buff.balanced_stratagem_magic->consume( this ); + } ); } }; From 07406ff70858c2894e49a2136831f55b024245ee Mon Sep 17 00:00:00 2001 From: Kate Martin <51387586+renanthera@users.noreply.github.com> Date: Sat, 26 Sep 2026 22:47:44 -0600 Subject: [PATCH 4/4] [monk] Purified Spirit stack change callback was never configured due to construction order. Instead set an expire callback following `purified_spirit_t` action construction. --- engine/class_modules/monk/sc_monk.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index c1fa474748b..a61970494a2 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -4760,6 +4760,8 @@ void aspect_of_harmony_t::construct_actions( monk_t *player ) purified_spirit = new spender_t::purified_spirit_t( player, player->talent.master_of_harmony.purified_spirit_damage, this ); damage->add_child( purified_spirit ); + + spender->set_expire_callback( [ & ]( buff_t *, int, timespan_t ) { purified_spirit->execute(); } ); } } @@ -4888,12 +4890,6 @@ aspect_of_harmony_t::spender_t::spender_t( monk_t *player, aspect_of_harmony_t * pool( 0.0 ) { set_default_value( 0.0 ); - - if ( aspect_of_harmony->purified_spirit ) - set_stack_change_callback( [ = ]( buff_t *, int, int new_ ) { - if ( !new_ ) - aspect_of_harmony->purified_spirit->execute(); - } ); } void aspect_of_harmony_t::spender_t::reset()