aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-26 22:55:56 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-11-05 11:11:37 +0100
commit5f69b27920896b0ae0a408ee4ecb174383bada59 (patch)
tree94b5e5b7bb9fc24e9e65c23797ef5012a7d916c8 /src
parent7e101c69e0eb29cf0ea4a65f52aa1e308e7d9add (diff)
Core/Auras: allow damage from periodics to trigger auras if they're not fully resisted/absorbed
(cherry picked from commit 5278577587159be85f993399baadb2809d4c94e7)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 41ecfa03e06..f4a78be86e4 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5839,11 +5839,11 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
uint32 hitMask = damageInfo.GetHitMask();
- if (!hitMask)
- hitMask = crit ? PROC_HIT_CRITICAL : PROC_HIT_NORMAL;
-
if (damage)
+ {
+ hitMask |= crit ? PROC_HIT_CRITICAL : PROC_HIT_NORMAL;
procVictim |= PROC_FLAG_TAKEN_DAMAGE;
+ }
int32 overkill = damage - target->GetHealth();
if (overkill < 0)
@@ -5948,11 +5948,11 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
uint32 hitMask = damageInfo.GetHitMask();
- if (!hitMask)
- hitMask = crit ? PROC_HIT_CRITICAL : PROC_HIT_NORMAL;
-
if (damage)
+ {
+ hitMask |= crit ? PROC_HIT_CRITICAL : PROC_HIT_NORMAL;
procVictim |= PROC_FLAG_TAKEN_DAMAGE;
+ }
if (caster->IsAlive())
caster->ProcSkillsAndAuras(target, procAttacker, procVictim, PROC_SPELL_TYPE_DAMAGE, PROC_SPELL_PHASE_NONE, hitMask, nullptr, &damageInfo, nullptr);