diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Spells/spell_monk.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_monk.cpp b/src/server/scripts/Spells/spell_monk.cpp index 33696ddc7a4..4a926a3e60c 100644 --- a/src/server/scripts/Spells/spell_monk.cpp +++ b/src/server/scripts/Spells/spell_monk.cpp @@ -37,6 +37,7 @@ enum MonkSpells 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_JADE_WALK = 450552, SPELL_MONK_MORTAL_WOUNDS = 115804, SPELL_MONK_POWER_STRIKE_PROC = 129914, SPELL_MONK_POWER_STRIKE_ENERGIZE = 121283, @@ -122,6 +123,32 @@ class spell_monk_crackling_jade_lightning_knockback_proc_aura : public AuraScrip } }; +// 450553 - Jade Walk +class spell_monk_jade_walk : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MONK_JADE_WALK }); + } + + void HandlePeriodicTick(AuraEffect const* aurEff) + { + Unit* target = GetTarget(); + if (!target->IsInCombat()) + target->CastSpell(target, SPELL_MONK_JADE_WALK, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringAura = aurEff + }); + else + target->RemoveAurasDueToSpell(SPELL_MONK_JADE_WALK); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_monk_jade_walk::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + } +}; + // 116849 - Life Cocoon class spell_monk_life_cocoon : public SpellScript { @@ -640,6 +667,7 @@ void AddSC_monk_spell_scripts() { RegisterSpellScript(spell_monk_crackling_jade_lightning); RegisterSpellScript(spell_monk_crackling_jade_lightning_knockback_proc_aura); + RegisterSpellScript(spell_monk_jade_walk); RegisterSpellScript(spell_monk_life_cocoon); RegisterSpellScript(spell_monk_open_palm_strikes); RegisterSpellScript(spell_monk_power_strike_periodic); |
