diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Spells/spell_warlock.cpp | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp index 937c68e43ec..543f2eb5278 100644 --- a/src/server/scripts/Spells/spell_warlock.cpp +++ b/src/server/scripts/Spells/spell_warlock.cpp @@ -142,10 +142,7 @@ class spell_warl_banish : public SpellScriptLoader PrepareSpellScript(spell_warl_banish_SpellScript); public: - spell_warl_banish_SpellScript() - { - _removed = false; - } + spell_warl_banish_SpellScript() {} private: void HandleBanish(SpellMissInfo missInfo) @@ -155,30 +152,16 @@ class spell_warl_banish : public SpellScriptLoader if (Unit* target = GetHitUnit()) { - if (target->GetAuraEffect(SPELL_AURA_SCHOOL_IMMUNITY, SPELLFAMILY_WARLOCK, flag128(0, 0x08000000, 0))) - { - // No need to remove old aura since its removed due to not stack by current Banish aura - PreventHitDefaultEffect(EFFECT_0); - PreventHitDefaultEffect(EFFECT_1); - PreventHitDefaultEffect(EFFECT_2); - _removed = true; - } + // Casting Banish on a banished target will remove applied aura + if (Aura * banishAura = target->GetAura(GetSpellInfo()->Id, GetCaster()->GetGUID())) + banishAura->Remove(); } } - void RemoveAura() - { - if (_removed) - PreventHitAura(); - } - void Register() override { BeforeHit += BeforeSpellHitFn(spell_warl_banish_SpellScript::HandleBanish); - AfterHit += SpellHitFn(spell_warl_banish_SpellScript::RemoveAura); } - - bool _removed; }; SpellScript* GetSpellScript() const override |
