return MountResult.WhenOutOfCombat;
}
- protected override bool Start() => EvaluateMountState() == MountResult.Mount;
+ protected override bool Start()
+ {
+ _mountTriggered = false;
+ return EvaluateMountState() == MountResult.Mount;
+ }
public override ETaskResult Update()
{
else
return ETaskResult.TaskComplete;
}
+ else if (!_condition[ConditionFlag.Mounted] && _condition[ConditionFlag.InCombat] &&
+ nestedExecutor is { Triggered: true, Executor: Mount.MountExecutor })
+ {
+ // if the problem wasn't caused by combat, the normal mount retry should handle it
+ _logger.LogDebug("Resetting mount trigger state");
+ _nestedExecutor = nestedExecutor with { Triggered = false };
+
+ // however, we're also explicitly ignoring combat here and walking away
+ _startAction?.Invoke();
+ }
return ETaskResult.StillRunning;
}