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; } }