From 2ac777f8ce35aeed2acbd76de4c0df7bf5878fae Mon Sep 17 00:00:00 2001 From: QAston Date: Tue, 21 Jun 2011 15:58:30 +0200 Subject: Revert "Core/Auras: Fix work of proc auras are refreshed during proc event routine." This reverts commit 2a47163771863e4115bac27a127d660799abbde0. --- src/server/game/Entities/Unit/Unit.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 3969155fa41..8c7536babd4 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14246,12 +14246,6 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, uint32 procFlag, if (i->aura->IsRemoved()) continue; - // don't allow to proc from spells which have been recasted during spell proc - // this code is a temp workaround, to fix procs of auras refreshed during other aura procs - // will be dropped soon because of the new proc system implementation - if (i->aura->GetDuration() == i->aura->GetMaxDuration()) - continue; - bool useCharges = i->aura->GetCharges() > 0; bool takeCharges = false; SpellEntry const* spellInfo = i->aura->GetSpellProto(); @@ -14413,6 +14407,14 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, uint32 procFlag, takeCharges = true; else { + // Spell own direct damage at apply wont break the CC + if (procSpell && (procSpell->Id == triggeredByAura->GetId())) + { + Aura* aura = triggeredByAura->GetBase(); + // called from spellcast, should not have ticked yet + if (aura->GetDuration() == aura->GetMaxDuration()) + break; + } int32 damageLeft = triggeredByAura->GetAmount(); // No damage left if (damageLeft < int32(damage)) -- cgit v1.2.3