aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-06-21 12:00:58 +0200
committerQAston <qaston@gmail.com>2011-06-21 12:03:54 +0200
commit2a47163771863e4115bac27a127d660799abbde0 (patch)
tree01b7b59fe676c676110e4c41ae916856c9e11515
parentaa55e2a417acf8f6b652988526046072ffde7ed4 (diff)
Core/Auras: Fix work of proc auras are refreshed during proc event routine.
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp14
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))