diff options
-rw-r--r-- | sql/updates/world/master/2025_01_13_01_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_monk.cpp | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_01_13_01_world.sql b/sql/updates/world/master/2025_01_13_01_world.sql new file mode 100644 index 00000000000..9e1dafefe86 --- /dev/null +++ b/sql/updates/world/master/2025_01_13_01_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_monk_pressure_points'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(115078, 'spell_monk_pressure_points'); 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); |