From 2ef3c60c0f6aa136ec0130977905f2c4a13d4caa Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Apr 2025 01:52:27 +0200 Subject: [PATCH] Don't use mount if too close to target --- .../Controller/Steps/Movement/MoveExecutor.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Questionable/Controller/Steps/Movement/MoveExecutor.cs b/Questionable/Controller/Steps/Movement/MoveExecutor.cs index ec11e7ed..a4403a0e 100644 --- a/Questionable/Controller/Steps/Movement/MoveExecutor.cs +++ b/Questionable/Controller/Steps/Movement/MoveExecutor.cs @@ -97,13 +97,15 @@ internal sealed class MoveExecutor : TaskExecutor, IToastAware { var mountTask = new Mount.MountTask(Task.TerritoryId, Mount.EMountIf.Always); _mountBeforeMovement = (_serviceProvider.GetRequiredService(), mountTask); - _mountBeforeMovement.Value.Executor.Start(mountTask); + if (!_mountBeforeMovement.Value.Executor.Start(mountTask)) + _mountBeforeMovement = null; } else if (Task.Mount == false) { var unmountTask = new Mount.UnmountTask(); _unmountBeforeMovement = (_serviceProvider.GetRequiredService(), unmountTask); - _unmountBeforeMovement.Value.Executor.Start(unmountTask); + if (!_unmountBeforeMovement.Value.Executor.Start(unmountTask)) + _unmountBeforeMovement = null; } else { @@ -116,7 +118,10 @@ internal sealed class MoveExecutor : TaskExecutor, IToastAware : Mount.EMountIf.AwayFromPosition; var mountTask = new Mount.MountTask(Task.TerritoryId, mountIf, _destination); _mountDuringMovement = (_serviceProvider.GetRequiredService(), mountTask); - _mountDuringMovement.Value.Executor.Start(mountTask); + if (_mountDuringMovement.Value.Executor.EvaluateMountState(true) != Mount.MountResult.DontMount) + _mountDuringMovement.Value.Executor.Start(mountTask); + else + _mountDuringMovement = null; } } -- 2.30.2