Creating a custom quest time handler
The quest time handler handles the quest and its tasks time management. If a task's time has run out, it's up to the time handler to decide what has to happen next.
[System.Serializable]
public class MyQuestTimeHandler : IQuestTimeHandler
{
public bool failQuestWhenOutOfTime = true;
public void OnTimerStarted(Task task)
{
}
public void OnTimerUpdated(Task task)
{
}
public void OnTimerStopped(Task task)
{
}
public void OnReachedTimeLimit(Task task)
{
// The task has reached it's time limit, what should happen to the quest?
task.Fail();
if (failQuestWhenOutOfTime)
{
QuestLogger.LogVerbose("Quest cancelled because time limit was reached on required task (" + task.key + ").");
task.owner.Cancel();
}
}
}