From d2501825c8e0254cadd15d6b6255c8f7299eb93f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 2 Mar 2025 22:06:39 +0100 Subject: [PATCH] Don't stop Questionable/AD if dying in an AD-run dungeon --- Questionable/Controller/QuestController.cs | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index c10d160c..0fc2d41a 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -199,7 +199,11 @@ internal sealed class QuestController : MiniTaskController UpdateCurrentQuest(); - if (!_clientState.IsLoggedIn || _condition[ConditionFlag.Unconscious]) + if (!_clientState.IsLoggedIn) + { + StopAllDueToConditionFailed("Logged out"); + } + if (_condition[ConditionFlag.Unconscious]) { if (_condition[ConditionFlag.Unconscious] && _condition[ConditionFlag.SufferingStatusAffliction63] && @@ -207,22 +211,20 @@ internal sealed class QuestController : MiniTaskController { // ignore, we're in the lahabrea fight } + else if (_taskQueue.CurrentTaskExecutor is Duty.WaitAutoDutyExecutor) + { + // ignoring death in a dungeon if it is being run by AD + } else if (!_taskQueue.AllTasksComplete) { - Stop("HP = 0"); - _movementController.Stop(); - _combatController.Stop("HP = 0"); - _gatheringController.Stop("HP = 0"); + StopAllDueToConditionFailed("HP = 0"); } } else if (_configuration.General.UseEscToCancelQuesting && _keyState[VirtualKey.ESCAPE]) { if (!_taskQueue.AllTasksComplete) { - Stop("ESC pressed"); - _movementController.Stop(); - _combatController.Stop("ESC pressed"); - _gatheringController.Stop("ESC pressed"); + StopAllDueToConditionFailed("ESC pressed"); } } @@ -509,6 +511,14 @@ internal sealed class QuestController : MiniTaskController } } + private void StopAllDueToConditionFailed(string label) + { + Stop(label); + _movementController.Stop(); + _combatController.Stop(label); + _gatheringController.Stop(label); + } + private void CheckNextTasks(string label) { if (AutomationType == EAutomationType.Automatic)