diff --git a/Source/Game/Entities/Unit/Unit.Combat.cs b/Source/Game/Entities/Unit/Unit.Combat.cs index 139343557..bc2939628 100644 --- a/Source/Game/Entities/Unit/Unit.Combat.cs +++ b/Source/Game/Entities/Unit/Unit.Combat.cs @@ -3183,6 +3183,9 @@ namespace Game.Entities Player player = playerAffectingAttacker ? playerAffectingAttacker : playerAffectingTarget; Unit creature = playerAffectingAttacker ? target : this; + if (creature.IsContestedGuard() && player.HasPlayerFlag(PlayerFlags.ContestedPVP)) + return true; + var factionTemplate = creature.GetFactionTemplateEntry(); if (factionTemplate != null) { diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index b64bd6606..d163cf19f 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -799,6 +799,15 @@ namespace Game.Entities public bool IsCritter() { return GetCreatureType() == CreatureType.Critter; } public bool IsInFlight() { return HasUnitState(UnitState.InFlight); } + public bool IsContestedGuard() + { + var entry = GetFactionTemplateEntry(); + if (entry != null) + return entry.IsContestedGuardFaction(); + + return false; + } + public void SetHoverHeight(float hoverHeight) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.HoverHeight), hoverHeight); } public override float GetCollisionHeight()