From a6673f6aa7a1c2ca4b3f2ac22cbff5f4191ec664 Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 17 Feb 2018 17:44:03 -0300 Subject: Core/Scripts: implement Drain Mana breaking some auras on hit Updates #20234 --- src/server/scripts/Spells/spell_generic.cpp | 19 +++++++++++++++++++ src/server/scripts/Spells/spell_priest.cpp | 29 ----------------------------- 2 files changed, 19 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index fbc95735cdd..943642b7d85 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -858,6 +858,24 @@ class spell_gen_choking_vines : public AuraScript } }; +// 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 SpellScript { PrepareSpellScript(spell_gen_clone); @@ -3942,6 +3960,7 @@ void AddSC_generic_spell_scripts() RegisterAuraScript(spell_gen_chains_of_ice); RegisterSpellScript(spell_gen_chaos_blast); RegisterAuraScript(spell_gen_choking_vines); + RegisterSpellScript(spell_gen_clear_fear_poly); RegisterSpellScript(spell_gen_clone); RegisterSpellScript(spell_gen_clone_weapon); RegisterAuraScript(spell_gen_clone_weapon_aura); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 776cf7f3671..6d8812ecf43 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -738,34 +738,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 { @@ -1465,7 +1437,6 @@ void AddSC_priest_spell_scripts() new spell_pri_improved_spirit_tap(); new spell_pri_item_t6_trinket(); 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_dummy(); -- cgit v1.2.3