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 371b06184a5..33696ddc7a4 100644 --- a/src/server/scripts/Spells/spell_monk.cpp +++ b/src/server/scripts/Spells/spell_monk.cpp @@ -40,6 +40,7 @@ enum MonkSpells SPELL_MONK_MORTAL_WOUNDS = 115804, SPELL_MONK_POWER_STRIKE_PROC = 129914, SPELL_MONK_POWER_STRIKE_ENERGIZE = 121283, + SPELL_MONK_PRESSURE_POINTS = 450432, SPELL_MONK_PROVOKE_SINGLE_TARGET = 116189, SPELL_MONK_PROVOKE_AOE = 118635, SPELL_MONK_NO_FEATHER_FALL = 79636, @@ -208,6 +209,32 @@ class spell_monk_power_strike_proc : public AuraScript } }; +// 115078 - Paralysis +class spell_monk_pressure_points : public SpellScript +{ + bool Validate(SpellInfo const* spellInfo) override + { + return ValidateSpellInfo({ SPELL_MONK_PRESSURE_POINTS }) + && ValidateSpellEffect({ { spellInfo->Id, EFFECT_2 } }) + && spellInfo->GetEffect(EFFECT_2).IsEffect(SPELL_EFFECT_DISPEL); + } + + bool Load() override + { + return !GetCaster()->HasAura(SPELL_MONK_PRESSURE_POINTS); + } + + static void PreventDispel(WorldObject*& target) + { + target = nullptr; + } + + void Register() override + { + OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_monk_pressure_points::PreventDispel, EFFECT_2, TARGET_UNIT_TARGET_ENEMY); + } +}; + // 115546 - Provoke class spell_monk_provoke : public SpellScript { @@ -617,6 +644,7 @@ void AddSC_monk_spell_scripts() RegisterSpellScript(spell_monk_open_palm_strikes); RegisterSpellScript(spell_monk_power_strike_periodic); RegisterSpellScript(spell_monk_power_strike_proc); + RegisterSpellScript(spell_monk_pressure_points); RegisterSpellScript(spell_monk_provoke); RegisterSpellScript(spell_monk_rising_sun_kick); RegisterSpellScript(spell_monk_roll); |