From a7a09a60e3d3cc3b0b8115436d0d73d3b38e8e5e Mon Sep 17 00:00:00 2001 From: Chomp Date: Tue, 17 Jun 2025 16:00:54 +0100 Subject: [PATCH] Fixed starting `Burning rubber` showing `Easy Start Part 1` Accepting a quest now checks if player has valid level before adding addition quests to players profile --- .../Helpers/QuestHelper.cs | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs index 679838d3..f3cabdcf 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs @@ -353,17 +353,25 @@ public class QuestHelper( { // Quest is accessible to player when the accepted quest passed into param is started // e.g. Quest A passed in, quest B is looped over and has requirement of A to be started, include it - var acceptedQuestCondition = quest.Conditions.AvailableForStart.FirstOrDefault(condition => + var matchingQuestCondition = quest.Conditions.AvailableForStart + .FirstOrDefault(condition => condition.ConditionType == "Quest" + && ((condition.Target?.Item?.Contains(startedQuestId) ?? false) + || (condition.Target?.List?.Contains(startedQuestId) ?? false)) + && (condition.Status?.Contains(QuestStatusEnum.Started) ?? false)); + + // Has a matching quest condition in another quest (Accepting this quest gives access to found quest too) check if it also has a level requirement that passes + if (matchingQuestCondition is not null) + { + var matchingLevelRequirement = quest.Conditions.AvailableForStart.FirstOrDefault(condition => condition.ConditionType == "Level"); + if (matchingLevelRequirement is not null && profile.Info.Level < matchingLevelRequirement.Value) { - return condition.ConditionType == "Quest" && - ((condition.Target?.Item?.Contains(startedQuestId) ?? false) || - (condition.Target?.List?.Contains(startedQuestId) ?? false)) && - (condition.Status?.Contains(QuestStatusEnum.Started) ?? false); + // Player doesn't fulfil level requirement for quest, don't show it to player + return false; } - ); + } // Not found, skip quest - if (acceptedQuestCondition is null) + if (matchingQuestCondition is null) { return false; }