From 3adfc66859c8a5bb013cf2c027c49457c4146f3a Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sun, 18 Feb 2018 17:58:58 +0100 Subject: [PATCH] Core/Scripts: implement Drain Mana breaking some auras on hit --- .../world/3.3.5/2018_02_17_02_world_335.sql | 4 +++ src/server/scripts/Spells/spell_generic.cpp | 19 ++++++++++++ src/server/scripts/Spells/spell_priest.cpp | 29 ------------------- 3 files changed, 23 insertions(+), 29 deletions(-) create mode 100644 sql/updates/world/3.3.5/2018_02_17_02_world_335.sql diff --git a/sql/updates/world/3.3.5/2018_02_17_02_world_335.sql b/sql/updates/world/3.3.5/2018_02_17_02_world_335.sql new file mode 100644 index 00000000000..5ff208273e7 --- /dev/null +++ b/sql/updates/world/3.3.5/2018_02_17_02_world_335.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_mana_burn','spell_gen_clear_fear_poly'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(5138, 'spell_gen_clear_fear_poly'), +(8129, 'spell_gen_clear_fear_poly'); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 6de9a63ba3a..0189d95339b 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -922,6 +922,24 @@ enum Clone SPELL_NIGHTMARE_FIGMENT_MIRROR_IMAGE = 57528 }; +// 5138 - Drain Mana +// 8129 - Mana Burn +class spell_gen_clear_fear_poly : public SpellScript +{ + PrepareSpellScript(spell_gen_clear_fear_poly); + + void HandleAfterHit() + { + if (Unit* unitTarget = GetHitUnit()) + unitTarget->RemoveAurasWithMechanic((1 << MECHANIC_FEAR) | (1 << MECHANIC_POLYMORPH)); + } + + void Register() override + { + AfterHit += SpellHitFn(spell_gen_clear_fear_poly::HandleAfterHit); + } +}; + class spell_gen_clone : public SpellScriptLoader { public: @@ -4380,6 +4398,7 @@ void AddSC_generic_spell_scripts() new spell_gen_burning_depths_necrolyte_image(); new spell_gen_cannibalize(); new spell_gen_chaos_blast(); + RegisterSpellScript(spell_gen_clear_fear_poly); new spell_gen_clone(); new spell_gen_clone_weapon(); new spell_gen_clone_weapon_aura(); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 6b44155e25b..0a5b3277d5d 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -628,34 +628,6 @@ class spell_pri_lightwell_renew : public SpellScriptLoader } }; -// 8129 - Mana Burn -class spell_pri_mana_burn : public SpellScriptLoader -{ - public: - spell_pri_mana_burn() : SpellScriptLoader("spell_pri_mana_burn") { } - - class spell_pri_mana_burn_SpellScript : public SpellScript - { - PrepareSpellScript(spell_pri_mana_burn_SpellScript); - - void HandleAfterHit() - { - if (Unit* unitTarget = GetHitUnit()) - unitTarget->RemoveAurasWithMechanic((1 << MECHANIC_FEAR) | (1 << MECHANIC_POLYMORPH)); - } - - void Register() override - { - AfterHit += SpellHitFn(spell_pri_mana_burn_SpellScript::HandleAfterHit); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_pri_mana_burn_SpellScript; - } -}; - // 28305 - Mana Leech (Passive) (Priest Pet Aura) class spell_pri_mana_leech : public SpellScriptLoader { @@ -1303,7 +1275,6 @@ void AddSC_priest_spell_scripts() new spell_pri_guardian_spirit(); new spell_pri_leap_of_faith_effect_trigger(); new spell_pri_lightwell_renew(); - new spell_pri_mana_burn(); new spell_pri_mana_leech(); new spell_pri_mind_sear(); new spell_pri_pain_and_suffering_proc();