GameFunctions gameFunctions,
ICondition condition) : TaskExecutor<Task>
{
+ private static readonly TimeSpan MinimumCastTime = TimeSpan.FromSeconds(4);
private DateTime _continueAt;
protected override bool Start()
if (condition[ConditionFlag.Mounted])
return false;
- _continueAt = DateTime.Now.Add(Task.ItemReward.CastTime).AddSeconds(1);
+ TimeSpan castTime = Task.ItemReward.CastTime;
+ if (castTime < MinimumCastTime)
+ castTime = MinimumCastTime;
+
+ _continueAt = DateTime.Now
+ .Add(castTime)
+ .AddSeconds(1);
return gameFunctions.UseItem(Task.ItemReward.ItemId);
}