aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorIvan Beňovic <Ivan.Benovic2@gmail.com>2016-07-20 21:36:41 +0200
committerShauren <shauren.trinity@gmail.com>2016-07-20 21:36:41 +0200
commit4587b5d88082d2c6416fafaa2f5b9f5f15038520 (patch)
treef36b598ed96fa40c9cdcdf2e7db554112ab1671e /src/server/scripts/Spells
parent461ec27d119ea540a60da78e77515850f543e81d (diff)
Core/Spells: Fixed warlock's Banish cancel if target was already banished (#17614)
Diffstat (limited to 'src/server/scripts/Spells')
-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