aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorn0n4m3 <none@none>2009-12-18 09:15:00 +0100
committern0n4m3 <none@none>2009-12-18 09:15:00 +0100
commit832e355ee0f37d0a6d2e3218ce380fa632403358 (patch)
tree01610a1209bfa8770fcb3f6f2769044809556db0 /src
parent7971bda0ea043386c76f00e19145eda974c87641 (diff)
Fixed proc spells with absorption. by AlexSot
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/Unit.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 457439e3d08..587b102a8a5 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -13074,6 +13074,15 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit * pTarget, uint32 procFlag,
// If not trigger by default and spellProcEvent==NULL - skip
if (!isTriggerAura[aurEff->GetAuraName()] && triggerData.spellProcEvent==NULL)
continue;
+ uint32 triggered_spell_id = aurEff->GetSpellProto()->EffectTriggerSpell[i];
+ // check for positive auras that proc with charge drop
+ bool positive = (!triggered_spell_id && IsPositiveSpell(aurEff->GetId()) && aurEff->GetParentAura()->GetAuraCharges()) ||
+ // check for positive auras that triggers unknown spells (Blessing Recovery, etc...)
+ (!sSpellStore.LookupEntry(triggered_spell_id) && IsPositiveSpell(aurEff->GetId())) ||
+ // final check for positive triggered spell
+ IsPositiveSpell(triggered_spell_id);
+ if (!damage && (procExtra & PROC_EX_ABSORB) && isVictim && positive)
+ continue;
triggerData.effMask |= 1<<i;
}
}