diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 8b3ca8050d..74d8885582 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1176,6 +1176,8 @@ public class AsstProxy case AsstMsg.AllTasksCompleted: bool isMainTaskQueueAllCompleted = false; + bool startByLinkStart = Instances.TaskQueueViewModel.StartByLinkStart; + Instances.TaskQueueViewModel.StartByLinkStart = false; var taskList = details["finished_tasks"]?.ToObject(); if (taskList?.Length > 0) { @@ -1287,12 +1289,15 @@ public class AsstProxy } // Instances.TaskQueueViewModel.CheckAndShutdown(); - _ = Instances.TaskQueueViewModel.CheckAfterCompleted(); - if (Instances.OverlayViewModel.IsCreated) { AchievementTrackerHelper.Instance.Unlock(AchievementIds.LogSupervisor); } + + if (startByLinkStart) + { + _ = Instances.TaskQueueViewModel.CheckAfterCompleted(); + } } else if (isCopilotTaskChain) { diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 1778253f40..05d93776f9 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -29,7 +29,6 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; using JetBrains.Annotations; -using MaaWpfGui.Configuration; using MaaWpfGui.Configuration.Factory; using MaaWpfGui.Configuration.Single.MaaTask; using MaaWpfGui.Constants; @@ -212,6 +211,8 @@ public class TaskQueueViewModel : Screen }); } + #region Overlay + public static void ChooseOverlayTarget() { try @@ -275,6 +276,8 @@ public class TaskQueueViewModel : Screen } } + #endregion Overlay + /// /// Gets or private sets the view models of log items. /// @@ -435,6 +438,8 @@ public class TaskQueueViewModel : Screen #region ActionAfterTasks + public bool StartByLinkStart { get; set; } + private bool _enableAfterActionSetting; /// @@ -1769,6 +1774,7 @@ public class TaskQueueViewModel : Screen /// Task public async Task LinkStart() { + StartByLinkStart = true; using var log = new LogScope(_logger); await TaskQueueSerializingLock.WaitAsync(); await LinkStartWithTasks(ConfigFactory.CurrentConfig.TaskQueue);