using Questionable.Model.Questing; namespace Questionable.Controller.Conditions; internal sealed class QuestAcceptCondition : StopCondition { private bool _isSession; public required ElementId QuestId { get; set; } public override bool IsSession => _isSession; public override EStopConditionType Type => EStopConditionType.QuestAccept; public override bool Evaluate(StopEvaluationContext context) { return context.AcceptedQuestId?.Equals(QuestId) ?? false; } public override string GetDescription() { return $"Quest {QuestId} accepted"; } public static QuestAcceptCondition CreateSession(ElementId questId) { return new QuestAcceptCondition { QuestId = questId, _isSession = true, Mode = EStopConditionMode.Stop }; } }