From 2736e2daa4bbb77e46e33203827907baaea194fd Mon Sep 17 00:00:00 2001 From: "DESKTOP-9PHO9TI\\kenko" Date: Sun, 26 Jun 2022 13:28:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E6=97=A0=E6=B3=95=E5=88=A0=E9=99=A4'=E9=80=80?= =?UTF-8?q?=E5=87=BA=E6=B8=B8=E6=88=8F'=E4=BB=BB=E5=8A=A1=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAsstGui/Helper/AsstProxy.cs | 13 ++++++++++-- .../ViewModels/TaskQueueViewModel.cs | 20 ++++++++++++++----- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index dab0f4f97a..333c902b6f 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -300,6 +300,11 @@ namespace MeoAsstGui { isMainTaskQueueAllCompleted = false; } + if (unique_runned_task == (_latestTaskId.TryGetValue(TaskType.CloseDown, out var closeDownTaskId) ? closeDownTaskId : 0)) + { + isMainTaskQueueAllCompleted = false; + _latestTaskId.Clear(); + } } mainModel.Idle = true; mainModel.UseStone = false; @@ -315,7 +320,11 @@ namespace MeoAsstGui //mainModel.CheckAndShutdown(); mainModel.CheckAfterCompleted(); } - _latestTaskId.Clear(); + + if (!_latestTaskId.TryGetValue(TaskType.CloseDown, out _)) + { + _latestTaskId.Clear(); + } break; } } @@ -884,7 +893,7 @@ namespace MeoAsstGui { TaskId id = AsstAppendTaskWithEncoding("CloseDown"); _latestTaskId[TaskType.CloseDown] = id; - return id != 0 && AsstStart(); + return id != 0 && !AsstStart(); } public bool AsstAppendVisit() diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index c2a291337b..9cb815a138 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -350,11 +350,6 @@ namespace MeoAsstGui return; } - if (ActionAfterCompleted == ActionType.StopGame) - { - ret &= asstProxy.AsstStartCloseDown(); - } - ret &= asstProxy.AsstStart(); if (ret) @@ -630,6 +625,21 @@ namespace MeoAsstGui case ActionType.DoNothing: break; + case ActionType.StopGame: + var asstProxy = _container.Get(); + if (!asstProxy.AsstStartCloseDown()) + { + Execute.OnUIThread(() => + { + using (var toast = new ToastNotification("游戏关闭失败")) + { + toast.AppendContentText("请手动关闭游戏") + .Show(lifeTime: 5, row: 2); + } + }); + } + break; + case ActionType.ExitSelf: if (!new ToastNotification().CheckToastSystem()) {