34 lines
759 B
C#
34 lines
759 B
C#
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
|
|
};
|
|
}
|
|
}
|