Core/Unit: improve SPELL_AURA_MOD_IMMUNE_AURA_APPLY_SCHOOL immunities

Port From (https://github.com/TrinityCore/TrinityCore/commit/9b7c55921f521d1de2d19d39fc56e9cdeca5b138)
This commit is contained in:
hondacrx
2022-05-29 20:57:34 -04:00
parent 694896f4d4
commit f7130656aa
+12 -12
View File
@@ -1333,24 +1333,24 @@ namespace Game.Entities
return true;
}
if (!spellInfo.HasAttribute(SpellAttr3.IgnoreHitResult))
AuraType aura = spellEffectInfo.ApplyAuraName;
if (aura != 0)
{
uint aura = (uint)spellEffectInfo.ApplyAuraName;
if (aura != 0)
if (!spellInfo.HasAttribute(SpellAttr3.IgnoreHitResult))
{
var list = m_spellImmune[(int)SpellImmunity.State];
if (list.ContainsKey(aura))
return true;
}
if (!spellInfo.HasAttribute(SpellAttr2.UnaffectedByAuraSchoolImmune))
{
// Check for immune to application of harmful magical effects
var immuneAuraApply = GetAuraEffectsByType(AuraType.ModImmuneAuraApplySchool);
foreach (var auraEffect in immuneAuraApply)
if (Convert.ToBoolean(auraEffect.GetMiscValue() & (int)spellInfo.GetSchoolMask()) && // Check school
((caster && !IsFriendlyTo(caster)) || !spellInfo.IsPositiveEffect(spellEffectInfo.EffectIndex))) // Harmful
return true;
}
if (!spellInfo.HasAttribute(SpellAttr2.UnaffectedByAuraSchoolImmune))
{
// Check for immune to application of harmful magical effects
var immuneAuraApply = GetAuraEffectsByType(AuraType.ModImmuneAuraApplySchool);
foreach (var auraEffect in immuneAuraApply)
if (Convert.ToBoolean(auraEffect.GetMiscValue() & (int)spellInfo.GetSchoolMask()) && // Check school
((caster && !IsFriendlyTo(caster)) || !spellInfo.IsPositiveEffect(spellEffectInfo.EffectIndex))) // Harmful
return true;
}
}