From 1cb51f094ed3763b6c65e69cdfdae00e68c6048f Mon Sep 17 00:00:00 2001 From: Kate Martin <51387586+renanthera@users.noreply.github.com> Date: Tue, 14 Jan 2025 03:51:42 -0700 Subject: [PATCH] [monk] Fix Slicing Winds. (#9862) --- engine/class_modules/monk/sc_monk.cpp | 25 ++++++++++++++++++------- engine/class_modules/monk/sc_monk.hpp | 1 + 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index ee55303fa0d..70b3bdcbc4a 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -3232,21 +3232,31 @@ struct flying_serpent_kick_t : public monk_melee_attack_t // ========================================================================== // TODO: Potentially add the "empowered" channel. "Empowered" channel increases // the "lunge" or movement of the attack, but also delays the actual attack by -// as little as 500 milliseconds. Just pressing the attack; without the +// as little as 500 milliseconds. Just pressing the attack; without the // "empowered" channel, animation lasts 1 second. // Empowered channel has 4 stages; with each lasting about 350 milliseconds. struct slicing_winds_t : public monk_melee_attack_t { - slicing_winds_t( monk_t *p, util::string_view options_str ) - : monk_melee_attack_t( p, "slicing_winds", p->talent.windwalker.slicing_winds ) + struct damage_t : monk_melee_attack_t + { + damage_t( monk_t *player ) + : monk_melee_attack_t( player, "slicing_winds_damage", player->talent.windwalker.slicing_winds_damage ) + { + background = dual = true; + ww_mastery = true; + may_combo_strike = true; + aoe = -1; + reduced_aoe_targets = player->talent.windwalker.slicing_winds->effectN( 3 ).base_value(); + } + }; + + slicing_winds_t( monk_t *player, util::string_view options_str ) + : monk_melee_attack_t( player, "slicing_winds", player->talent.windwalker.slicing_winds ) { parse_options( options_str ); - ww_mastery = true; - may_combo_strike = true; - aoe = -1; - reduced_aoe_targets = data().effectN( 3 ).base_value(); + execute_action = new damage_t( player ); } }; } // namespace attacks @@ -6941,6 +6951,7 @@ void monk_t::init_spells() talent.windwalker.jadefire_brand_heal = find_spell( 395413 ); talent.windwalker.darting_hurricane = _ST( "Darting Hurricane" ); talent.windwalker.slicing_winds = _ST( "Slicing Winds" ); + talent.windwalker.slicing_winds_damage = find_spell( 1217411 ); } current_spec = specialization(); diff --git a/engine/class_modules/monk/sc_monk.hpp b/engine/class_modules/monk/sc_monk.hpp index 68adef1e43b..d64649838a9 100644 --- a/engine/class_modules/monk/sc_monk.hpp +++ b/engine/class_modules/monk/sc_monk.hpp @@ -1158,6 +1158,7 @@ struct monk_t : public stagger_t const spell_data_t *jadefire_brand_heal; player_talent_t darting_hurricane; player_talent_t slicing_winds; + const spell_data_t *slicing_winds_damage; } windwalker; // Master of Harmony