diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index dc7702235..5fa8190b6 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -1932,7 +1932,7 @@ namespace Framework.Constants IgnoreDynamicObjectCaster = 0x02, /*Nyi*/ // Ignore Dynamic Object Caster RemoveOutsideDungeonsAndRaids = 0x04, // Remove Outside Dungeons And Raids OnlyTargetIfSameCreator = 0x08, // Only Target If Same Creator - CanHitAoeUntargetable = 0x10, /*Nyi - No Aoe Immunity Implementation*/ // Can Hit Aoe Untargetable + CanHitAoeUntargetable = 0x10, // Can Hit Aoe Untargetable AllowWhileCharmed = 0x20, /*Nyi - Not Implementable Currently, Charming Replaces Ai*/ // Allow While Charmed AuraRequiredByClient = 0x40, /*Nyi - We Send All Auras To Client*/ // Aura Required By Client IgnoreSanctuary = 0x80, // Ignore Sanctuary @@ -1959,7 +1959,7 @@ namespace Framework.Constants NotInBattleground = 0x10000000, // Not In Battleground MasteryAffectsPoints = 0x20000000, // Mastery Affects Points DisplayLargeAuraIconOnUnitFramesBossAura = 0x40000000, // Display Large Aura Icon On Unit Frames (Boss Aura) - AttackIgnoreImmuneToPcFlag = 0x80000000 // Can Attack Immunepc Description Do Not Check UnitFlagImmuneToPc In Isvalidattacktarget + CanAttackImmunePC = 0x80000000 // Can Attack Immunepc Description Do Not Check UnitFlagImmuneToPc In Isvalidattacktarget } public enum SpellAttr9 : uint { diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index a15abb761..2da5de746 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -2616,7 +2616,7 @@ namespace Game.Entities if (!unitTarget.HasUnitFlag(UnitFlags.PlayerControlled) && unitOrOwner.IsImmuneToNPC()) return false; - if (bySpell == null || !bySpell.HasAttribute(SpellAttr8.AttackIgnoreImmuneToPcFlag)) + if (bySpell == null || !bySpell.HasAttribute(SpellAttr8.CanAttackImmunePC)) { if (unitOrOwner.HasUnitFlag(UnitFlags.PlayerControlled) && unitTarget.IsImmuneToPC()) return false; @@ -2761,7 +2761,7 @@ namespace Game.Entities { if (unit != null && unit.HasUnitFlag(UnitFlags.PlayerControlled)) { - if (bySpell == null || !bySpell.HasAttribute(SpellAttr8.AttackIgnoreImmuneToPcFlag)) + if (bySpell == null || !bySpell.HasAttribute(SpellAttr8.CanAttackImmunePC)) if (unitTarget != null && unitTarget.IsImmuneToPC()) return false; } diff --git a/Source/Game/Spells/Spell.cs b/Source/Game/Spells/Spell.cs index 9e79c84d5..08ce9724c 100644 --- a/Source/Game/Spells/Spell.cs +++ b/Source/Game/Spells/Spell.cs @@ -9191,7 +9191,7 @@ namespace Game.Spells switch (_searchReason) { case WorldObjectSpellAreaTargetSearchReason.Area: - if (unitTarget.GetSpellOtherImmunityMask().HasFlag(SpellOtherImmunity.AoETarget)) + if (!_spellInfo.HasAttribute(SpellAttr8.CanHitAoeUntargetable) && unitTarget.GetSpellOtherImmunityMask().HasFlag(SpellOtherImmunity.AoETarget)) return false; break; case WorldObjectSpellAreaTargetSearchReason.Chain: