From 390cfc38a00fbf75c3545c8e0bf271e45da7f34b Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Thu, 4 Sep 2025 00:44:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=82=96=E8=AE=BA=E9=80=9A=E5=85=B3?= =?UTF-8?q?=E5=90=8E=E8=87=AA=E5=8A=A8=E5=8F=96=E6=B6=88=E5=8B=BE=E9=80=89?= =?UTF-8?q?=EF=BC=8C=E9=81=87=E5=88=B0=E6=88=98=E6=96=97=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=E5=85=B3=E5=8D=A1=E6=97=B6=E5=81=9C=E6=AD=A2=20(#1396?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 悖论通关后自动取消勾选 * fix: CopilotTask 一个个加 --- src/MaaCore/Task/Interface/CopilotTask.cpp | 16 +++--- .../ViewModels/UI/CopilotViewModel.cs | 51 ++++++------------- 2 files changed, 25 insertions(+), 42 deletions(-) diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index 749dd6f3d9..0ccd95b504 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -184,13 +184,15 @@ bool asst::CopilotTask::set_params(const json::value& params) size_t loop_times = params.get("loop_times", 1); if (m_multi_copilot_plugin_ptr->get_enable()) { // 如果没三星就中止 - if (m_paradox_task_ptr->get_enable()) { - // 悖论模拟不需要强制三星,因为练度等关系有概率不过,反正不消耗理智,走单独的退出逻辑 - m_stop_task_ptr->set_tasks({ "ClickCornerUntilReturnButton" }); - } - else { - m_stop_task_ptr->set_tasks({ "Copilot@ClickCornerUntilEndOfAction" }); - } + // 悖论模拟不需要强制三星,因为练度等关系有概率不过,反正不消耗理智,走单独的退出逻辑 + // EDIT: UI 上取消勾选需要按顺序,非三星通关会导致取消的内容错误 + /* if (m_paradox_task_ptr->get_enable()) { + m_stop_task_ptr->set_tasks({ "ClickCornerUntilReturnButton" }); + } + else { + m_stop_task_ptr->set_tasks({ "Copilot@ClickCornerUntilEndOfAction" }); + }*/ + m_stop_task_ptr->set_tasks({ "Copilot@ClickCornerUntilEndOfAction" }); m_stop_task_ptr->set_enable(true); } else if (loop_times > 1) { diff --git a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs index 2dac0d0ef3..cde5f8232b 100644 --- a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs @@ -1270,43 +1270,24 @@ namespace MaaWpfGui.ViewModels.UI { _copilotIdList.Clear(); - if (ActiveTabIndex == 2) + var t = CopilotItemViewModels.Where(i => i.IsChecked).Select(i => { - var t = CopilotItemViewModels.Where(i => i.IsChecked).Select(i => - { - _copilotIdList.Add(i.CopilotId); - var task = new AsstCopilotTask() - { - MultiTasks = [new MultiTask { FileName = i.FilePath, IsRaid = i.IsRaid, StageName = i.Name, IsParadox = UseCopilotList }], - Formation = _form, - AddTrust = _addTrust, - IgnoreRequirements = _ignoreRequirements, - UserAdditionals = AddUserAdditional ? userAdditional.ToList() : [], - UseSanityPotion = _useSanityPotion, - }; - return Instances.AsstProxy.AsstAppendTaskWithEncoding(AsstProxy.TaskType.Copilot, task); - }); - ret = t.All(b => b) && Instances.AsstProxy.AsstStart(); - } - else + _copilotIdList.Add(i.CopilotId); + return new MultiTask { FileName = i.FilePath, IsRaid = i.IsRaid, StageName = i.Name, IsParadox = ActiveTabIndex == 2, }; + }); + + var task = new AsstCopilotTask() { - var t = CopilotItemViewModels.Where(i => i.IsChecked).Select(i => - { - _copilotIdList.Add(i.CopilotId); - return new MultiTask { FileName = i.FilePath, IsRaid = i.IsRaid, StageName = i.Name, }; - }); - var task = new AsstCopilotTask() - { - MultiTasks = t.ToList(), - Formation = _form, - AddTrust = _addTrust, - IgnoreRequirements = _ignoreRequirements, - UserAdditionals = AddUserAdditional ? userAdditional.ToList() : [], - UseSanityPotion = _useSanityPotion, - }; - ret = Instances.AsstProxy.AsstAppendTaskWithEncoding(AsstProxy.TaskType.Copilot, task); - ret = ret && Instances.AsstProxy.AsstStart(); - } + MultiTasks = [.. t], + Formation = _form, + AddTrust = _addTrust, + IgnoreRequirements = _ignoreRequirements, + UserAdditionals = AddUserAdditional ? userAdditional.ToList() : [], + UseSanityPotion = _useSanityPotion, + }; + + ret = Instances.AsstProxy.AsstAppendTaskWithEncoding(AsstProxy.TaskType.Copilot, task); + ret = ret && Instances.AsstProxy.AsstStart(); } else {