From 518061d4c0841d77a6184e7539ed8bd6b35e2edf Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 4 Jan 2023 16:53:34 -0500 Subject: [PATCH] Core/Creatures: Implemented AttackableBySummoner summon properties flag Port From (https://github.com/TrinityCore/TrinityCore/commit/64a1c7735e3888f7c6e413c2a70196f7f8d4a090) --- Source/Game/Entities/Object/WorldObject.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index 3299a4a44..ee9e9b334 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -2198,6 +2198,25 @@ namespace Game.Entities if (this == target) return ReputationRank.Friendly; + bool isAttackableBySummoner(Unit me, ObjectGuid targetGuid) + { + if (!me) + return false; + + TempSummon tempSummon = me.ToTempSummon(); + if (tempSummon == null || tempSummon.m_Properties == null) + return false; + + if (tempSummon.m_Properties.GetFlags().HasFlag(SummonPropertiesFlags.AttackableBySummoner) + && targetGuid == tempSummon.GetSummonerGUID()) + return true; + + return false; + } + + if (isAttackableBySummoner(ToUnit(), target.GetGUID()) || isAttackableBySummoner(target.ToUnit(), GetGUID())) + return ReputationRank.Neutral; + // always friendly to charmer or owner if (GetCharmerOrOwnerOrSelf() == target.GetCharmerOrOwnerOrSelf()) return ReputationRank.Friendly;