From e9ad8c63f87ea95e14f85e4ae9f1cb97853f5ae1 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sat, 1 Oct 2022 16:39:06 -0400 Subject: [PATCH] Core/Auras: Fixed requireImmunityPurgesEffectAttribute logic for school immunities Port From (https://github.com/TrinityCore/TrinityCore/commit/ffbde7cccc6b0d697f915345c48e2b70dc110f38) --- Source/Game/Entities/Unit/Unit.Spells.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/Game/Entities/Unit/Unit.Spells.cs b/Source/Game/Entities/Unit/Unit.Spells.cs index f77868b09..bff1daba3 100644 --- a/Source/Game/Entities/Unit/Unit.Spells.cs +++ b/Source/Game/Entities/Unit/Unit.Spells.cs @@ -1295,10 +1295,13 @@ namespace Game.Entities continue; SpellInfo immuneSpellInfo = Global.SpellMgr.GetSpellInfo(pair.Value, GetMap().GetDifficultyID()); + if (requireImmunityPurgesEffectAttribute) + if (immuneSpellInfo == null || !immuneSpellInfo.HasAttribute(SpellAttr1.ImmunityPurgesEffect)) + 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 != null && !immuneSpellInfo.IsPositive() && (!requireImmunityPurgesEffectAttribute || immuneSpellInfo.HasAttribute(SpellAttr1.ImmunityPurgesEffect))) - || !spellInfo.IsPositive() || caster == null || !IsFriendlyTo(caster)) + if ((immuneSpellInfo != null && !immuneSpellInfo.IsPositive()) || !spellInfo.IsPositive() || caster == null || !IsFriendlyTo(caster)) if (!spellInfo.CanPierceImmuneAura(immuneSpellInfo)) schoolImmunityMask |= pair.Key; }