aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-12-11 15:01:13 -0300
committerDoctorKraft <DoctorKraft@users.noreply.github.com>2018-03-12 16:39:37 +0100
commitf07a746321dce26381e3d14456ab22839ddc6861 (patch)
treeade323a771374711adca9f1a6456f0ab6d079b31 /src/server/game/Spells/Spell.cpp
parent1f2bb1d793090bc6bae7c6d43448ab7910c7bf2d (diff)
Core/Spell: improved immunity logic for dispels
(cherry picked from commit 01d272d6cb348c968c531620c341f760e50cb97b)
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 9cf3e557581..0234b16fec0 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -1223,7 +1223,7 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
// find last added target for this effect
for (std::vector<TargetInfo>::reverse_iterator ihit = m_UniqueTargetInfo.rbegin(); ihit != m_UniqueTargetInfo.rend(); ++ihit)
{
- if (ihit->effectMask & (1<<effIndex))
+ if (ihit->effectMask & (1 << effIndex))
{
referer = ObjectAccessor::GetUnit(*m_caster, ihit->targetGUID);
break;
@@ -2135,7 +2135,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
// Check for effect immune skip if immuned
for (SpellEffectInfo const* effect : GetEffects())
- if (effect && target->IsImmunedToSpellEffect(m_spellInfo, effect->EffectIndex))
+ if (effect && target->IsImmunedToSpellEffect(m_spellInfo, effect->EffectIndex, m_caster))
effectMask &= ~(1 << effect->EffectIndex);
ObjectGuid targetGUID = target->GetGUID();
@@ -2611,14 +2611,14 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
return SPELL_MISS_EVADE;
// For delayed spells immunity may be applied between missile launch and hit - check immunity for that case
- if (m_spellInfo->Speed && unit->IsImmunedToSpell(m_spellInfo))
+ if (m_spellInfo->Speed && unit->IsImmunedToSpell(m_spellInfo, m_caster))
return SPELL_MISS_IMMUNE;
// disable effects to which unit is immune
SpellMissInfo returnVal = SPELL_MISS_IMMUNE;
for (SpellEffectInfo const* effect : GetEffects())
if (effect && (effectMask & (1 << effect->EffectIndex)))
- if (unit->IsImmunedToSpellEffect(m_spellInfo, effect->EffectIndex))
+ if (unit->IsImmunedToSpellEffect(m_spellInfo, effect->EffectIndex, m_caster))
effectMask &= ~(1 << effect->EffectIndex);
if (!effectMask)