aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-26 02:16:11 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-10-15 16:59:56 +0200
commitfe2e3b67a86be5a486c5bfd79d09986b9092a872 (patch)
tree400abfa2e9e8c9fad1ab5d7dedb7c850426051f9 /src/server/game/Spells/SpellEffects.cpp
parenta932e448478c48f1c8f96502b73ed49e2bd4c73d (diff)
Core/Spells: use DamageInfo struct to calc spell absorbs and resists, and use calculated proc hitMask on aura ticks
Closes #18135 (cherry picked from commit d3a71a83387f757f87c7d27e1054498c8cc49c8f) # Conflicts: # src/server/game/Entities/Unit/Unit.cpp # src/server/game/Entities/Unit/Unit.h # src/server/game/Spells/Auras/SpellAuraEffects.cpp # src/server/game/Spells/SpellEffects.cpp # src/server/scripts/Commands/cs_misc.cpp
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index b36bc5ccddc..7ed906c3247 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -400,18 +400,21 @@ void Spell::EffectEnvironmentalDMG(SpellEffIndex /*effIndex*/)
if (!unitTarget || !unitTarget->IsAlive())
return;
- uint32 absorb = 0;
- uint32 resist = 0;
-
- m_caster->CalcAbsorbResist(unitTarget, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist, m_spellInfo);
- SpellNonMeleeDamage log(m_caster, unitTarget, m_spellInfo->Id, m_SpellVisual, m_spellInfo->GetSchoolMask(), m_castId);
- log.damage = damage - absorb - resist;
- log.absorb = absorb;
- log.resist = resist;
+ // CalcAbsorbResist already in Player::EnvironmentalDamage
if (unitTarget->GetTypeId() == TYPEID_PLAYER)
unitTarget->ToPlayer()->EnvironmentalDamage(DAMAGE_FIRE, damage);
+ else
+ {
+ DamageInfo damageInfo(m_caster, unitTarget, damage, m_spellInfo, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, BASE_ATTACK);
+ m_caster->CalcAbsorbResist(damageInfo);
- m_caster->SendSpellNonMeleeDamageLog(&log);
+ SpellNonMeleeDamage log(m_caster, unitTarget, m_spellInfo->Id, m_SpellVisual, m_spellInfo->GetSchoolMask(), m_castId);
+ log.damage = damage;
+ log.absorb = damageInfo.GetAbsorb();
+ log.resist = damageInfo.GetResist();
+
+ m_caster->SendSpellNonMeleeDamageLog(&log);
+ }
}
void Spell::EffectSchoolDMG(SpellEffIndex effIndex)