using SptCommon.Annotations; using Core.Models.Eft.Common.Tables; namespace Core.Helpers; [Injectable] public class QuestConditionHelper { public List GetQuestConditions( List questConditions, Func>? furtherFilter = null) { return FilterConditions(questConditions, "Quest", furtherFilter); } public List GetLevelConditions( List questConditions, Func>? furtherFilter = null) { return FilterConditions(questConditions, "Level", furtherFilter); } public List GetLoyaltyConditions( List questConditions, Func>? furtherFilter = null) { return FilterConditions(questConditions, "TraderLoyalty", furtherFilter); } public List GetStandingConditions( List questConditions, Func>? furtherFilter = null) { return FilterConditions(questConditions, "TraderStanding", furtherFilter); } protected List FilterConditions( List questConditions, string questType, Func>? furtherFilter = null) { var filteredQuests = questConditions.Where( (c) => { if (c.ConditionType == questType) // return true or run the passed in function return furtherFilter is null || furtherFilter(c).Any(); return false; } ) .ToList(); return filteredQuests; } }