From 12c53d61829de5635d8ef5b351ba707419c8b2be Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 21 May 2023 17:09:28 -0400 Subject: [PATCH] Core/Unit: Named npc flags UNIT_NPC_FLAG_AREA_SPIRIT_HEALER and UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL Port From (https://github.com/TrinityCore/TrinityCore/commit/920b9a99bdd2d7eb9b7a787c4872a38b862f75c8) --- Source/Framework/Constants/CreatureConst.cs | 5 +++-- Source/Game/Entities/Creature/Creature.cs | 2 +- Source/Game/Entities/Unit/Unit.cs | 6 +++--- Source/Game/Handlers/NPCHandler.cs | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Source/Framework/Constants/CreatureConst.cs b/Source/Framework/Constants/CreatureConst.cs index 01e610262..bf1bb00e6 100644 --- a/Source/Framework/Constants/CreatureConst.cs +++ b/Source/Framework/Constants/CreatureConst.cs @@ -190,8 +190,8 @@ namespace Framework.Constants VendorReagent = 0x800, // 100% Repair = 0x1000, // 100% FlightMaster = 0x2000, // 100% - SpiritHealer = 0x4000, // Guessed - SpiritGuide = 0x8000, // Guessed + SpiritHealer = 0x4000, // 100% + AreaSpiritHealer = 0x8000, // 100% Innkeeper = 0x10000, // 100% Banker = 0x20000, // 100% Petitioner = 0x40000, // 100% 0xc0000 = Guild Petitions, 0x40000 = Arena Team Petitions @@ -216,6 +216,7 @@ namespace Framework.Constants ItemUpgradeMaster = 0x01, GarrisonArchitect = 0x02, Steering = 0x04, + AreaSpiritHealerIndividual = 0x08, ShipmentCrafter = 0x10, GarrisonMissionNpc = 0x20, TradeskillNpc = 0x40, diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index 6d914491f..6450a0443 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -862,7 +862,7 @@ namespace Game.Entities LastUsedScriptID = GetScriptId(); - if (IsSpiritHealer() || IsSpiritGuide() || GetCreatureTemplate().FlagsExtra.HasAnyFlag(CreatureFlagsExtra.GhostVisibility)) + if (IsSpiritHealer() || IsAreaSpiritHealer() || GetCreatureTemplate().FlagsExtra.HasAnyFlag(CreatureFlagsExtra.GhostVisibility)) { m_serverSideVisibility.SetValue(ServerSideVisibilityType.Ghost, GhostVisibilityType.Ghost); m_serverSideVisibilityDetect.SetValue(ServerSideVisibilityType.Ghost, GhostVisibilityType.Ghost); diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index 36d6a3b3c..731ec5939 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -821,7 +821,7 @@ namespace Game.Entities public bool IsBanker() { return HasNpcFlag(NPCFlags.Banker); } public bool IsInnkeeper() { return HasNpcFlag(NPCFlags.Innkeeper); } public bool IsSpiritHealer() { return HasNpcFlag(NPCFlags.SpiritHealer); } - public bool IsSpiritGuide() { return HasNpcFlag(NPCFlags.SpiritGuide); } + public bool IsAreaSpiritHealer() { return HasNpcFlag(NPCFlags.AreaSpiritHealer); } public bool IsTabardDesigner() { return HasNpcFlag(NPCFlags.TabardDesigner); } public bool IsAuctioner() { return HasNpcFlag(NPCFlags.Auctioneer); } public bool IsArmorer() { return HasNpcFlag(NPCFlags.Repair); } @@ -831,9 +831,9 @@ namespace Game.Entities return HasNpcFlag(NPCFlags.Vendor | NPCFlags.Trainer | NPCFlags.FlightMaster | NPCFlags.Petitioner | NPCFlags.BattleMaster | NPCFlags.Banker | NPCFlags.Innkeeper | NPCFlags.SpiritHealer | - NPCFlags.SpiritGuide | NPCFlags.TabardDesigner | NPCFlags.Auctioneer); + NPCFlags.AreaSpiritHealer | NPCFlags.TabardDesigner | NPCFlags.Auctioneer); } - public bool IsSpiritService() { return HasNpcFlag(NPCFlags.SpiritHealer | NPCFlags.SpiritGuide); } + public bool IsSpiritService() { return HasNpcFlag(NPCFlags.SpiritHealer | NPCFlags.AreaSpiritHealer); } public bool IsCritter() { return GetCreatureType() == CreatureType.Critter; } public bool IsInFlight() { return HasUnitState(UnitState.InFlight); } diff --git a/Source/Game/Handlers/NPCHandler.cs b/Source/Game/Handlers/NPCHandler.cs index d892f3d70..6888e4335 100644 --- a/Source/Game/Handlers/NPCHandler.cs +++ b/Source/Game/Handlers/NPCHandler.cs @@ -139,7 +139,7 @@ namespace Game unit.SetHomePosition(unit.GetPosition()); // If spiritguide, no need for gossip menu, just put player into resurrect queue - if (unit.IsSpiritGuide()) + if (unit.IsAreaSpiritHealer()) { Battleground bg = GetPlayer().GetBattleground(); if (bg)