aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp25
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