diff options
-rw-r--r-- | sql/updates/world/master/2024_11_09_04_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_monk.cpp | 30 |
2 files changed, 33 insertions, 0 deletions
diff --git a/sql/updates/world/master/2024_11_09_04_world.sql b/sql/updates/world/master/2024_11_09_04_world.sql new file mode 100644 index 00000000000..4fd623f5036 --- /dev/null +++ b/sql/updates/world/master/2024_11_09_04_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_monk_rising_sun_kick'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(107428, 'spell_monk_rising_sun_kick'); diff --git a/src/server/scripts/Spells/spell_monk.cpp b/src/server/scripts/Spells/spell_monk.cpp index a5258536385..3a17a8bbbf7 100644 --- a/src/server/scripts/Spells/spell_monk.cpp +++ b/src/server/scripts/Spells/spell_monk.cpp @@ -32,10 +32,12 @@ enum MonkSpells { SPELL_MONK_CALMING_COALESCENCE = 388220, + SPELL_MONK_COMBAT_CONDITIONING = 128595, SPELL_MONK_CRACKLING_JADE_LIGHTNING_CHANNEL = 117952, SPELL_MONK_CRACKLING_JADE_LIGHTNING_CHI_PROC = 123333, SPELL_MONK_CRACKLING_JADE_LIGHTNING_KNOCKBACK = 117962, SPELL_MONK_CRACKLING_JADE_LIGHTNING_KNOCKBACK_CD = 117953, + SPELL_MONK_MORTAL_WOUNDS = 115804, SPELL_MONK_POWER_STRIKE_PROC = 129914, SPELL_MONK_POWER_STRIKE_ENERGIZE = 121283, SPELL_MONK_PROVOKE_SINGLE_TARGET = 116189, @@ -252,6 +254,33 @@ class spell_monk_provoke : public SpellScript } }; +// 107428 - Rising Sun Kick +class spell_monk_rising_sun_kick : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MONK_COMBAT_CONDITIONING, SPELL_MONK_MORTAL_WOUNDS }); + } + + bool Load() override + { + return GetCaster()->HasAura(SPELL_MONK_COMBAT_CONDITIONING); + } + + void HandleOnHit(SpellEffIndex /*effIndex*/) const + { + GetCaster()->CastSpell(GetHitUnit(), SPELL_MONK_MORTAL_WOUNDS, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); + } + + void Register() override + { + OnEffectLaunchTarget += SpellEffectFn(spell_monk_rising_sun_kick::HandleOnHit, EFFECT_0, SPELL_EFFECT_TRIGGER_SPELL); + } +}; + // 109132 - Roll class spell_monk_roll : public SpellScript { @@ -559,6 +588,7 @@ void AddSC_monk_spell_scripts() RegisterSpellScript(spell_monk_power_strike_periodic); RegisterSpellScript(spell_monk_power_strike_proc); RegisterSpellScript(spell_monk_provoke); + RegisterSpellScript(spell_monk_rising_sun_kick); RegisterSpellScript(spell_monk_roll); RegisterSpellScript(spell_monk_roll_aura); RegisterSpellScript(spell_monk_stagger); |