Core/Spawns: Allow spawn groups with MANUAL_SPAWN flag to automatically despawn if conditions are not met

Port From (https://github.com/TrinityCore/TrinityCore/commit/97d413c9b4be6af296490580f7acc1d66e606ca9)
This commit is contained in:
hondacrx
2023-02-11 23:30:57 -05:00
parent 4b798e7cab
commit da283244ca
2 changed files with 12 additions and 4 deletions
+10 -2
View File
@@ -2374,11 +2374,19 @@ namespace Game.Maps
foreach (uint spawnGroupId in spawnGroups)
{
SpawnGroupTemplateData spawnGroupTemplate = GetSpawnGroupData(spawnGroupId);
if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.ManualSpawn))
continue;
bool isActive = IsSpawnGroupActive(spawnGroupId);
bool shouldBeActive = Global.ConditionMgr.IsMapMeetingNotGroupedConditions(ConditionSourceType.SpawnGroup, spawnGroupId, this);
if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.ManualSpawn))
{
// Only despawn the group if it isn't meeting conditions
if (isActive && !shouldBeActive && spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.DespawnOnConditionFailure))
SpawnGroupDespawn(spawnGroupId, true);
continue;
}
if (isActive == shouldBeActive)
continue;