diff --git a/resource/tasks.json b/resource/tasks.json index 2e8e6bd896..66b1a19460 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -7758,6 +7758,13 @@ "action": "ClickSelf", "postDelay": 1000 }, + "BattleStartPre@UseMedicine": { + "doc": "绑定MedicineCounter来使用理智药", + "template": "UseMedicine.png", + "next": [ + "BattleStartPre" + ] + }, "BattleStart": { "Doc": "base_task", "template": "empty.png", diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index d14675fab8..18efe78a0b 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -4,6 +4,7 @@ #include "Config/Miscellaneous/CopilotConfig.h" #include "Config/TaskData.h" +#include "Task/Fight/MedicineCounterPlugin.h" #include "Task/Miscellaneous/BattleFormationTask.h" #include "Task/Miscellaneous/BattleProcessTask.h" #include "Task/Miscellaneous/CopilotListNotificationPlugin.h" @@ -36,6 +37,11 @@ asst::CopilotTask::CopilotTask(const AsstCallback& callback, Assistant* inst) start_1_tp->set_tasks({ "BattleStartPre" }).set_retry_times(0).set_ignore_error(true); m_subtasks.emplace_back(start_1_tp); + m_medicine_task_ptr = std::make_shared(callback, inst, TaskType); + m_medicine_task_ptr->set_tasks({ "BattleStartPre@UseMedicine" }).set_retry_times(0).set_ignore_error(true); + m_medicine_task_ptr->register_plugin()->set_count(999); + m_subtasks.emplace_back(m_medicine_task_ptr); + m_subtasks.emplace_back(m_formation_task_ptr)->set_retry_times(0); auto start_2_tp = std::make_shared(callback, inst, TaskType); @@ -92,6 +98,8 @@ bool asst::CopilotTask::set_params(const json::value& params) return false; } + m_medicine_task_ptr->set_enable(params.get("use_sanity_potion", false)); + // 选择指定编队 m_formation_task_ptr->set_select_formation(params.get("select_formation", 0)); diff --git a/src/MaaCore/Task/Interface/CopilotTask.h b/src/MaaCore/Task/Interface/CopilotTask.h index d7335e55c3..9503cc7e43 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.h +++ b/src/MaaCore/Task/Interface/CopilotTask.h @@ -27,6 +27,7 @@ namespace asst std::shared_ptr m_task_file_reload_task_ptr = nullptr; std::shared_ptr m_navigate_task_ptr = nullptr; std::shared_ptr m_not_use_prts_task_ptr = nullptr; + std::shared_ptr m_medicine_task_ptr= nullptr; std::shared_ptr m_adverse_select_task_ptr = nullptr; std::shared_ptr m_formation_task_ptr = nullptr; std::shared_ptr m_battle_task_ptr = nullptr; diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 16b8e911d3..6274659e55 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -2022,9 +2022,10 @@ namespace MaaWpfGui.Main /// 是不是突袭 /// 任务类型 /// 任务重复执行次数 + /// 是否使用理智药 /// 是否启动战斗 /// 是否成功。 - public bool AsstStartCopilot(string filename, bool formation, bool addTrust, bool addUserAdditional, JArray userAdditional, bool needNavigate, string navigateName, bool isAdverse, string type, int loopTimes, bool asstStart = true) + public bool AsstStartCopilot(string filename, bool formation, bool addTrust, bool addUserAdditional, JArray userAdditional, bool needNavigate, string navigateName, bool isAdverse, string type, int loopTimes, bool useSanityPotion, bool asstStart = true) { var taskParams = new JObject { @@ -2037,6 +2038,7 @@ namespace MaaWpfGui.Main ["navigate_name"] = navigateName, ["is_adverse"] = isAdverse, ["loop_times"] = loopTimes, + ["use_sanity_potion"] = useSanityPotion, }; AsstTaskId id = AsstAppendTaskWithEncoding(type, taskParams); _latestTaskId[TaskType.Copilot] = id; diff --git a/src/MaaWpfGui/Res/Styles/MdXaml.xaml b/src/MaaWpfGui/Res/Styles/MdXaml.xaml index eb94079242..a4896b678d 100644 --- a/src/MaaWpfGui/Res/Styles/MdXaml.xaml +++ b/src/MaaWpfGui/Res/Styles/MdXaml.xaml @@ -1,12 +1,14 @@ + xmlns:mdxam="clr-namespace:MdXaml;assembly=MdXaml"> - + + The Table's style don't seem to support border-collapse. + By making the ruled line width 0.5 and applying it to cell and table, + it looks like the ruled lines are not doubled. + --> @@ -134,7 +136,7 @@ - + diff --git a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs index 719b99d5c7..f516111cbe 100644 --- a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs @@ -623,6 +623,14 @@ namespace MaaWpfGui.ViewModels.UI set => SetAndNotify(ref _addTrust, value); } + private bool _useSanityPotion; + + public bool UseSanityPotion + { + get => _useSanityPotion; + set => SetAndNotify(ref _useSanityPotion, value); + } + private bool _addUserAdditional = bool.Parse(ConfigurationHelper.GetValue(ConfigurationKeys.CopilotAddUserAdditional, false.ToString())); /// @@ -914,7 +922,7 @@ namespace MaaWpfGui.ViewModels.UI continue; } - ret &= Instances.AsstProxy.AsstStartCopilot(model.FilePath, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, model.Name.Replace("-Adverse", string.Empty), model.Name.Contains("-Adverse"), _taskType, Loop ? LoopTimes : 1, false); + ret &= Instances.AsstProxy.AsstStartCopilot(model.FilePath, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, model.Name.Replace("-Adverse", string.Empty), model.Name.Contains("-Adverse"), _taskType, Loop ? LoopTimes : 1, _useSanityPotion, false); startAny = true; } @@ -933,7 +941,7 @@ namespace MaaWpfGui.ViewModels.UI } else { - ret &= Instances.AsstProxy.AsstStartCopilot(IsDataFromWeb ? TempCopilotFile : Filename, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, string.Empty, false, _taskType, Loop ? LoopTimes : 1); + ret &= Instances.AsstProxy.AsstStartCopilot(IsDataFromWeb ? TempCopilotFile : Filename, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, string.Empty, false, _taskType, Loop ? LoopTimes : 1, _useSanityPotion); } if (ret) diff --git a/src/MaaWpfGui/Views/UI/CopilotView.xaml b/src/MaaWpfGui/Views/UI/CopilotView.xaml index 055f821f13..17f3333c5e 100644 --- a/src/MaaWpfGui/Views/UI/CopilotView.xaml +++ b/src/MaaWpfGui/Views/UI/CopilotView.xaml @@ -130,14 +130,30 @@ Visibility="{c:Binding AddUserAdditional}" /> - + Orientation="Horizontal"> + + + +