From a5d5b7ee3d0511d6f06d7782f789842ccad7111f Mon Sep 17 00:00:00 2001 From: hondacrx Date: Fri, 16 Apr 2021 14:40:23 -0400 Subject: [PATCH] Core/Unit: make neutral guards attack players involved in PvP Port From (https://github.com/TrinityCore/TrinityCore/commit/a58dcd1d9cf5f943342d00628601170d6023ae25) --- Source/Game/Entities/Unit/Unit.Combat.cs | 3 +++ Source/Game/Entities/Unit/Unit.cs | 9 +++++++++ 2 files changed, 12 insertions(+) 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()