aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-09-09 21:48:35 +0200
committerShauren <shauren.trinity@gmail.com>2022-09-29 21:45:57 +0200
commitffbde7cccc6b0d697f915345c48e2b70dc110f38 (patch)
treed1d31694c75b4394a08e52b2170d53ed45260f6a /src
parent400b8e31926eabbd9aa2daaf3c920abafec4f299 (diff)
Core/Auras: Fixed requireImmunityPurgesEffectAttribute logic for school immunities
Closes #28237 (cherry picked from commit a55a566602c323fc6950994d87c55552531e8688)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index f90815ac414..b9ab6b81c69 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7307,10 +7307,13 @@ bool Unit::IsImmunedToSpell(SpellInfo const* spellInfo, WorldObject const* caste
continue;
SpellInfo const* immuneSpellInfo = sSpellMgr->GetSpellInfo(itr->second, GetMap()->GetDifficultyID());
+ if (requireImmunityPurgesEffectAttribute)
+ if (!immuneSpellInfo || !immuneSpellInfo->HasAttribute(SPELL_ATTR1_IMMUNITY_PURGES_EFFECT))
+ continue;
+
// Consider the school immune if any of these conditions are not satisfied.
// In case of no immuneSpellInfo, ignore that condition and check only the other conditions
- if ((immuneSpellInfo && !immuneSpellInfo->IsPositive() && (!requireImmunityPurgesEffectAttribute || immuneSpellInfo->HasAttribute(SPELL_ATTR1_IMMUNITY_PURGES_EFFECT)))
- || !spellInfo->IsPositive() || !caster || !IsFriendlyTo(caster))
+ if ((immuneSpellInfo && !immuneSpellInfo->IsPositive()) || !spellInfo->IsPositive() || !caster || !IsFriendlyTo(caster))
if (!spellInfo->CanPierceImmuneAura(immuneSpellInfo))
schoolImmunityMask |= itr->first;
}