From e2d592f38000c3a350b4ca5aa38c0f89eef6aa56 Mon Sep 17 00:00:00 2001 From: QAston Date: Fri, 26 Aug 2011 14:23:23 +0200 Subject: Core/Spells: Interrupt periodic trigger auras when triggered spells fails to cast. Closes #2598 --- src/server/game/Spells/Spell.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index a7370c3f74f..6476eabb3bf 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2922,7 +2922,11 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered SpellCastResult result = CheckCast(true); if (result != SPELL_CAST_OK && !IsAutoRepeat()) //always cast autorepeat dummy for triggering { - if (triggeredByAura && triggeredByAura->GetSpellInfo()->IsChanneled()) + // Periodic auras should be interrupted when aura triggers a spell which can't be cast + // for example bladestorm aura should be removed on disarm as of patch 3.3.5 + // channeled periodic spells should be affected by this (arcane missiles, penance, etc) + // a possible alternative sollution for those would be validating aura target on unit state change + if (triggeredByAura && triggeredByAura->IsPeriodic()) { SendChannelUpdate(0); triggeredByAura->GetBase()->SetDuration(0); -- cgit v1.2.3