mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
feat: 悖论通关后自动取消勾选,遇到战斗失败的关卡时停止 (#13963)
* feat: 悖论通关后自动取消勾选 * fix: CopilotTask 一个个加
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user