Break spells on damage in some aura types.
This commit fixes spell Repentance(20066). Patch by QAston, thanks to him. --HG-- branch : trunk
This commit is contained in:
+6
-5
@@ -13734,12 +13734,12 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit * pTarget, uint32 procFlag,
|
|||||||
case SPELL_AURA_MOD_STUN:
|
case SPELL_AURA_MOD_STUN:
|
||||||
case SPELL_AURA_MOD_ROOT:
|
case SPELL_AURA_MOD_ROOT:
|
||||||
case SPELL_AURA_TRANSFORM:
|
case SPELL_AURA_TRANSFORM:
|
||||||
if (isVictim && damage)
|
|
||||||
{
|
{
|
||||||
// Damage is dealt after proc system - lets ignore auras which wasn't updated yet
|
// chargeable mods are breaking on hit
|
||||||
// to make spell not remove its own aura
|
if (useCharges)
|
||||||
if (i->aura->GetDuration() == i->aura->GetMaxDuration())
|
takeCharges = true;
|
||||||
break;
|
else
|
||||||
|
{
|
||||||
int32 damageLeft = triggeredByAura->GetAmount();
|
int32 damageLeft = triggeredByAura->GetAmount();
|
||||||
// No damage left
|
// No damage left
|
||||||
if (damageLeft < damage)
|
if (damageLeft < damage)
|
||||||
@@ -13747,6 +13747,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit * pTarget, uint32 procFlag,
|
|||||||
else
|
else
|
||||||
triggeredByAura->SetAmount(damageLeft - damage);
|
triggeredByAura->SetAmount(damageLeft - damage);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
//case SPELL_AURA_ADD_FLAT_MODIFIER:
|
//case SPELL_AURA_ADD_FLAT_MODIFIER:
|
||||||
//case SPELL_AURA_ADD_PCT_MODIFIER:
|
//case SPELL_AURA_ADD_PCT_MODIFIER:
|
||||||
|
|||||||
Reference in New Issue
Block a user