aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkandera <kanderadev@gmail.com>2012-09-17 06:04:55 -0700
committerkandera <kanderadev@gmail.com>2012-09-17 06:04:55 -0700
commit6516139290829717bc0b6e66bab6d64f9437b894 (patch)
tree5848e974bf85a13b5f1ded816e0098c8f7fc1b03
parent639f1b67885c7bd3d1a42bf6a408f66366aca481 (diff)
parenta6813149c8b245e22f96c393ab0c9bc10b00d118 (diff)
Merge pull request #7280 from Faq/PrayerOfMending
Core/Spells: Only auras that has triggered spell should proc from fully absorbed damage.
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index ed3f3bf3827..7dc1afa9738 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -14361,10 +14361,17 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u
continue;
ProcTriggeredData triggerData(itr->second->GetBase());
// Defensive procs are active on absorbs (so absorption effects are not a hindrance)
- bool active = (damage > 0) || (procExtra & (PROC_EX_ABSORB|PROC_EX_BLOCK) && isVictim);
+ bool active = damage || (procExtra & PROC_EX_BLOCK && isVictim);
if (isVictim)
procExtra &= ~PROC_EX_INTERNAL_REQ_FAMILY;
+
SpellInfo const* spellProto = itr->second->GetBase()->GetSpellInfo();
+
+ // only auras that has triggered spell should proc from fully absorbed damage
+ if (procExtra & PROC_EX_ABSORB && isVictim)
+ if (damage || spellProto->Effects[EFFECT_0].TriggerSpell || spellProto->Effects[EFFECT_1].TriggerSpell || spellProto->Effects[EFFECT_2].TriggerSpell)
+ active = true;
+
if (!IsTriggeredAtSpellProcEvent(target, triggerData.aura, procSpell, procFlag, procExtra, attType, isVictim, active, triggerData.spellProcEvent))
continue;