diff options
| author | megamage <none@none> | 2009-09-01 15:22:42 -0500 |
|---|---|---|
| committer | megamage <none@none> | 2009-09-01 15:22:42 -0500 |
| commit | 69c0e34df4b95d214ed6ba46ae72a737142b4a38 (patch) | |
| tree | 987482f4392e652a3da6e2888700b400b86559a6 /src | |
| parent | 2a9aff9080cfd8e7416c292946f6c659c6b80639 (diff) | |
*Make defensive procs are active on absorbs. By Cleave
--HG--
branch : trunk
Diffstat (limited to 'src')
| -rw-r--r-- | src/game/Unit.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 783af94ed47..cfe4fc26efa 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -12639,8 +12639,12 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag if (procAura && procAura->Id == itr->first) continue; ProcTriggeredData triggerData(itr->second); - if(!IsTriggeredAtSpellProcEvent(pTarget, triggerData.aura, procSpell, procFlag, procExtra, attType, isVictim, (damage > 0), triggerData.spellProcEvent)) + + // Defensive procs are active on absorbs (so absorption effects are not a hindrance) + bool active = (damage > 0) || ((procExtra & PROC_EX_ABSORB) && isVictim); + if(!IsTriggeredAtSpellProcEvent(pTarget, triggerData.aura, procSpell, procFlag, procExtra, attType, isVictim, active, triggerData.spellProcEvent)) continue; + for (uint8 i=0; i<MAX_SPELL_EFFECTS;++i) { if (AuraEffect * aurEff = itr->second->GetPartAura(i)) |
