From 860daee67424d10ef76ee2151f35c705eae11f65 Mon Sep 17 00:00:00 2001 From: Archangel Date: Mon, 11 Aug 2025 15:41:39 +0200 Subject: [PATCH] Improve prestige quest handling if quest does not exist --- .../Services/PostDbLoadService.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs b/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs index 7de71703..596b4790 100644 --- a/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs @@ -102,7 +102,7 @@ public class PostDbLoadService( CloneExistingCraftsAndAddNew(); - RemoveNewBeginningRequirementFromPrestige(); + RemovePrestigeQuestRequirementsIfQuestNotFound(); RemovePraporTestMessage(); @@ -246,22 +246,22 @@ public class PostDbLoadService( } } - private void RemoveNewBeginningRequirementFromPrestige() + private void RemovePrestigeQuestRequirementsIfQuestNotFound() { var prestigeDb = databaseService.GetTemplates().Prestige; - var newBeginningQuestId = new HashSet { "6761f28a022f60bb320f3e95", "6761ff17cdc36bd66102e9d0" }; + foreach (var prestige in prestigeDb.Elements) { - var itemToRemove = prestige.Conditions?.FirstOrDefault(cond => newBeginningQuestId.Contains(cond.Target?.Item)); - if (itemToRemove is null) - { - continue; - } + var conditionsToRemove = prestige + .Conditions.Where(c => + c.ConditionType == "Quest" && c.Target.IsItem && !databaseService.GetTemplates().Quests.ContainsKey(c.Target.Item) + ) + .ToList(); - var indexToRemove = prestige.Conditions.IndexOf(itemToRemove); - if (indexToRemove != -1) + foreach (var conditionToRemove in conditionsToRemove) { - prestige.Conditions.RemoveAt(indexToRemove); + logger.Debug($"Removing required quest from prestige: {conditionToRemove.Target.Item}"); + prestige.Conditions.Remove(conditionToRemove); } } }