aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellAuraEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellAuraEffects.cpp')
-rw-r--r--src/game/SpellAuraEffects.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/game/SpellAuraEffects.cpp b/src/game/SpellAuraEffects.cpp
index 51c707ea5a8..df9b1b02214 100644
--- a/src/game/SpellAuraEffects.cpp
+++ b/src/game/SpellAuraEffects.cpp
@@ -1295,9 +1295,15 @@ void AuraEffect::PeriodicTick(Unit * target, Unit * caster) const
damage -= target->GetSpellCritDamageReduction(damage);
}
- // only from players
- if (IS_PLAYER_GUID(GetCasterGUID()))
- damage -= target->GetSpellDamageReduction(damage);
+ // Reduce damage from resilience for players and pets only.
+ // As of patch 3.3 pets inherit 100% of master resilience.
+ if (caster->GetSpellModOwner())
+ if (Player* modOwner = target->GetSpellModOwner())
+ {
+ if (crit)
+ damage -= modOwner->GetSpellCritDamageReduction(damage);
+ damage -= modOwner->GetSpellDamageReduction(damage);
+ }
caster->CalcAbsorbResist(target, GetSpellSchoolMask(GetSpellProto()), DOT, damage, &absorb, &resist, m_spellProto);
@@ -1368,9 +1374,15 @@ void AuraEffect::PeriodicTick(Unit * target, Unit * caster) const
damage = damageReductedArmor;
}
- // Reduce dot damage from resilience for players.
- if (target->GetTypeId() == TYPEID_PLAYER)
- damage-=target->GetSpellDamageReduction(damage);
+ // Reduce damage from resilience for players and pets only.
+ // As of patch 3.3 pets inherit 100% of master resilience.
+ if (caster->GetSpellModOwner())
+ if (Player* modOwner = target->GetSpellModOwner())
+ {
+ if (crit)
+ damage -= modOwner->GetSpellCritDamageReduction(damage);
+ damage -= modOwner->GetSpellDamageReduction(damage);
+ }
caster->CalcAbsorbResist(target, GetSpellSchoolMask(GetSpellProto()), DOT, damage, &absorb, &resist, m_spellProto);