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 {