diff options
author | Naddley <64811442+Naddley@users.noreply.github.com> | 2023-01-29 20:40:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-29 20:40:39 +0100 |
commit | b73330999f447a2c4893d50b3d24fd77b2500178 (patch) | |
tree | c54174ad740dd62156ae4ea5c06090ca7300ae77 /src | |
parent | 97d413c9b4be6af296490580f7acc1d66e606ca9 (diff) |
Scripts/Monk: Implement Power Strikes (#28794)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_monk.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_monk.cpp b/src/server/scripts/Spells/spell_monk.cpp index 7ac66095f98..10de007c8a2 100644 --- a/src/server/scripts/Spells/spell_monk.cpp +++ b/src/server/scripts/Spells/spell_monk.cpp @@ -35,6 +35,8 @@ 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_POWER_STRIKE_PROC = 129914, + SPELL_MONK_POWER_STRIKE_ENERGIZE = 121283, SPELL_MONK_PROVOKE_SINGLE_TARGET = 116189, SPELL_MONK_PROVOKE_AOE = 118635, SPELL_MONK_NO_FEATHER_FALL = 79636, @@ -118,6 +120,48 @@ class spell_monk_crackling_jade_lightning_knockback_proc_aura : public AuraScrip } }; +// 121817 - Power Strike +class spell_monk_power_strike_periodic : public AuraScript +{ + PrepareAuraScript(spell_monk_power_strike_periodic); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MONK_POWER_STRIKE_PROC }); + } + + void HandlePeriodic(AuraEffect const* /*aurEff*/) + { + GetTarget()->CastSpell(GetTarget(), SPELL_MONK_POWER_STRIKE_PROC, true); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_monk_power_strike_periodic::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } +}; + +// 129914 - Power Strike Proc +class spell_monk_power_strike_proc : public AuraScript +{ + PrepareAuraScript(spell_monk_power_strike_proc); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MONK_POWER_STRIKE_ENERGIZE }); + } + + void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/) + { + GetTarget()->CastSpell(GetTarget(), SPELL_MONK_POWER_STRIKE_ENERGIZE, true); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_monk_power_strike_proc::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + // 115546 - Provoke class spell_monk_provoke : public SpellScript { @@ -465,6 +509,8 @@ void AddSC_monk_spell_scripts() { RegisterSpellScript(spell_monk_crackling_jade_lightning); RegisterSpellScript(spell_monk_crackling_jade_lightning_knockback_proc_aura); + RegisterSpellScript(spell_monk_power_strike_periodic); + RegisterSpellScript(spell_monk_power_strike_proc); RegisterSpellScript(spell_monk_provoke); RegisterSpellScript(spell_monk_roll); RegisterSpellScript(spell_monk_roll_aura); |