diff options
author | QAston <qaston@gmail.com> | 2011-06-21 12:00:58 +0200 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-06-21 12:03:54 +0200 |
commit | 2a47163771863e4115bac27a127d660799abbde0 (patch) | |
tree | 01b7b59fe676c676110e4c41ae916856c9e11515 | |
parent | aa55e2a417acf8f6b652988526046072ffde7ed4 (diff) |
Core/Auras: Fix work of proc auras are refreshed during proc event routine.
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 8c7536babd4..3969155fa41 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14246,6 +14246,12 @@ 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(); @@ -14407,14 +14413,6 @@ 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)) |