Core/Graveyards: Drop Faction column and replace it with conditions

Port From (https://github.com/TrinityCore/TrinityCore/commit/c1df555e1691d788918845f95252358f25e54bb5)
This commit is contained in:
hondacrx
2023-06-13 04:20:54 -04:00
parent 2a12697cb2
commit 31ffbf3512
18 changed files with 131 additions and 123 deletions
+7 -3
View File
@@ -5,6 +5,7 @@ using Framework.Collections;
using Framework.Constants;
using Framework.Database;
using Game.Cache;
using Game.Conditions;
using Game.DataStorage;
using Game.Entities;
using Game.Groups;
@@ -2403,13 +2404,16 @@ namespace Game
uint team = (uint)GetPlayer().GetTeam();
List<uint> graveyardIds = new();
var range = Global.ObjectMgr.GraveYardStorage.LookupByKey(zoneId);
var range = Global.ObjectMgr.GraveyardStorage.LookupByKey(zoneId);
for (uint i = 0; i < range.Count && graveyardIds.Count < 16; ++i) // client max
{
var gYard = range[(int)i];
if (gYard.team == 0 || gYard.team == team)
graveyardIds.Add(i);
ConditionSourceInfo conditionSource = new(_player);
if (!Global.ConditionMgr.IsObjectMeetToConditions(conditionSource, gYard.Conditions))
continue;
graveyardIds.Add(i);
}
if (graveyardIds.Empty())
+2 -2
View File
@@ -260,7 +260,7 @@ namespace Game
WorldLocation corpseLocation = GetPlayer().GetCorpseLocation();
if (GetPlayer().HasCorpse())
{
corpseGrave = Global.ObjectMgr.GetClosestGraveYard(corpseLocation, GetPlayer().GetTeam(), GetPlayer());
corpseGrave = Global.ObjectMgr.GetClosestGraveyard(corpseLocation, GetPlayer().GetTeam(), GetPlayer());
}
// now can spawn bones
@@ -269,7 +269,7 @@ namespace Game
// teleport to nearest from corpse graveyard, if different from nearest to player ghost
if (corpseGrave != null)
{
WorldSafeLocsEntry ghostGrave = Global.ObjectMgr.GetClosestGraveYard(GetPlayer(), GetPlayer().GetTeam(), GetPlayer());
WorldSafeLocsEntry ghostGrave = Global.ObjectMgr.GetClosestGraveyard(GetPlayer(), GetPlayer().GetTeam(), GetPlayer());
if (corpseGrave != ghostGrave)
GetPlayer().TeleportTo(corpseGrave.Loc);