}
}
- if (_questController.IsRunning && _questController.NextQuest == null)
+ if ((_questController.IsRunning || _questController.WasLastTaskUpdateWithin(TimeSpan.FromSeconds(5)))
+ && _questController.NextQuest == null)
{
// make sure to always close the leve dialogue
if (_questData.GetAllByIssuerDataId(target.DataId).Any(x => x.QuestId is LeveId))
/// </summary>
private DateTime _safeAnimationEnd = DateTime.MinValue;
+ /// <summary>
+ ///
+ /// </summary>
+ private DateTime _lastTaskUpdate = DateTime.Now;
+
public QuestController(
IClientState clientState,
GameFunctions gameFunctions,
ExecuteNextStep(_automationType);
else
_logger.LogInformation("Couldn't execute next step during Stop() call");
+
+ _lastTaskUpdate = DateTime.Now;
}
else if (_automationType != EAutomationType.Manual)
{
_automationType = EAutomationType.Manual;
_nextQuest = null;
_gatheringQuest = null;
+ _lastTaskUpdate = DateTime.Now;
}
}
return false;
}
+ public bool WasLastTaskUpdateWithin(TimeSpan timeSpan)
+ {
+ _logger.LogInformation("Last update: {Update}", _lastTaskUpdate);
+ return IsRunning || DateTime.Now <= _lastTaskUpdate.Add(timeSpan);
+ }
+
public sealed record StepProgress(
DateTime StartedAt,
int PointMenuCounter = 0);