From 453da77dbb594ad32f044951e12ac160113840f8 Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Tue, 14 Nov 2023 01:10:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20core=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=98=AF=E5=90=A6=E5=BC=80=E5=90=AF=E4=B8=80=E5=9B=BE?= =?UTF-8?q?=E6=B5=81=E4=B8=8A=E6=8A=A5=EF=BC=8Cui=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=98=AF=E5=90=A6=E5=BC=80=E5=90=AF=E4=B8=80?= =?UTF-8?q?=E5=9B=BE=E6=B5=81=E5=92=8C=E4=BC=81=E9=B9=85=E7=89=A9=E6=B5=81?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Task/Fight/SideStoryReopenTask.cpp | 7 +++++ src/MaaCore/Task/Fight/SideStoryReopenTask.h | 4 +++ .../Task/Fight/StageDropsTaskPlugin.cpp | 13 ++++++-- src/MaaCore/Task/Fight/StageDropsTaskPlugin.h | 3 ++ .../StageQueueMissionCompletedPlugin.cpp | 6 ++++ .../Fight/StageQueueMissionCompletedPlugin.h | 4 +++ src/MaaCore/Task/Interface/FightTask.cpp | 3 ++ src/MaaWpfGui/Constants/ConfigurationKeys.cs | 3 ++ src/MaaWpfGui/Main/AsstProxy.cs | 13 ++++---- .../ViewModels/UI/SettingsViewModel.cs | 30 +++++++++++++++++++ .../UserControl/FightSettingsUserControl.xaml | 13 ++++++-- 11 files changed, 88 insertions(+), 11 deletions(-) diff --git a/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp b/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp index cd54d36529..b0739049f4 100644 --- a/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp +++ b/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp @@ -43,6 +43,12 @@ bool asst::SideStoryReopenTask::set_penguin_id(std::string id) m_penguin_id = std::move(id); return true; } +bool asst::SideStoryReopenTask::set_enable_yituliu(bool enable) +{ + // 暂时没用上,其他地方加了这里也加一个 + m_enable_yituliu = enable; + return true; +} bool asst::SideStoryReopenTask::_run() { LogTraceFunction; @@ -191,6 +197,7 @@ bool asst::SideStoryReopenTask::fight(bool use_medicine, bool use_stone) auto plugin = fight_task.register_plugin(); plugin->set_drop_stats(std::move(m_drop_stats)); plugin->set_enable_penguin(m_enable_penguin); + plugin->set_enable_yituliu(m_enable_yituliu); plugin->set_server(m_server); plugin->set_penguin_id(m_penguin_id); auto result = fight_task.run(); diff --git a/src/MaaCore/Task/Fight/SideStoryReopenTask.h b/src/MaaCore/Task/Fight/SideStoryReopenTask.h index 9c97d0311a..07f3a8408b 100644 --- a/src/MaaCore/Task/Fight/SideStoryReopenTask.h +++ b/src/MaaCore/Task/Fight/SideStoryReopenTask.h @@ -19,6 +19,8 @@ namespace asst bool set_penguin_id(std::string id); bool set_server(std::string server); + bool set_enable_yituliu(bool enable); + private: virtual bool _run() override; // 判断如果处于普通关页面,直接短路导航 @@ -45,6 +47,8 @@ namespace asst bool m_enable_penguin = false; std::string m_penguin_id; std::string m_server = "CN"; + // 一图流上报用 + bool m_enable_yituliu = false; }; } diff --git a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp index b6239ce9f7..0927f1bd15 100644 --- a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp +++ b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp @@ -58,6 +58,12 @@ bool asst::StageDropsTaskPlugin::set_penguin_id(std::string id) return true; } +bool asst::StageDropsTaskPlugin::set_enable_yituliu(bool enable) +{ + m_enable_yituliu = enable; + return true; +} + bool asst::StageDropsTaskPlugin::set_server(std::string server) { m_server = std::move(server); @@ -95,9 +101,10 @@ bool asst::StageDropsTaskPlugin::_run() if (!upload_to_penguin()) { save_img(utils::path("debug") / utils::path("drops")); } - else { - upload_to_yituliu(); - } + } + + if (m_enable_yituliu && !m_is_annihilation) { + upload_to_yituliu(); } return true; diff --git a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.h b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.h index 960ddcd3c8..560bb5f6f9 100644 --- a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.h +++ b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.h @@ -29,6 +29,8 @@ namespace asst bool set_server(std::string server); bool set_specify_quantity(std::unordered_map quantity); + bool set_enable_yituliu(bool enable); + private: virtual bool _run() override; @@ -64,6 +66,7 @@ namespace asst std::shared_ptr m_report_yituliu_task_ptr = nullptr; bool m_enable_penguin = false; std::string m_penguin_id; + bool m_enable_yituliu = false; std::string m_server = "CN"; std::unordered_map m_specify_quantity; }; diff --git a/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.cpp b/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.cpp index 19940e0a9e..d489652f4c 100644 --- a/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.cpp +++ b/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.cpp @@ -143,6 +143,12 @@ bool asst::StageQueueMissionCompletedPlugin::set_penguin_id(std::string id) m_penguin_id = std::move(id); return true; } +bool asst::StageQueueMissionCompletedPlugin::set_enable_yituliu(bool enable) +{ + // 暂时没用上,其他地方加了这里也加一个 + m_enable_yituliu = enable; + return true; +} void asst::StageQueueMissionCompletedPlugin::upload_to_penguin(std::string stage_code, int stars) { LogTraceFunction; diff --git a/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.h b/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.h index c675799fe8..7e56e1706f 100644 --- a/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.h +++ b/src/MaaCore/Task/Fight/StageQueueMissionCompletedPlugin.h @@ -26,6 +26,8 @@ namespace asst bool set_penguin_id(std::string id); bool set_server(std::string server); + bool set_enable_yituliu(bool enable); + private: virtual bool _run() override; @@ -42,5 +44,7 @@ namespace asst std::string m_penguin_id; std::string m_server = "CN"; std::shared_ptr m_report_penguin_task_ptr = nullptr; + // 一图流上报用 + bool m_enable_yituliu = false; }; } diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp index d8ed0ba679..7cfe13e80d 100644 --- a/src/MaaCore/Task/Interface/FightTask.cpp +++ b/src/MaaCore/Task/Interface/FightTask.cpp @@ -68,6 +68,7 @@ bool asst::FightTask::set_params(const json::value& params) const int stone = params.get("stone", 0); const int times = params.get("times", INT_MAX); bool enable_penguin = params.get("report_to_penguin", false); + bool enable_yituliu = params.get("report_to_yituliu", false); std::string penguin_id = params.get("penguin_id", ""); std::string server = params.get("server", "CN"); std::string client_type = params.get("client_type", std::string()); @@ -121,12 +122,14 @@ bool asst::FightTask::set_params(const json::value& params) m_dr_grandet_task_plugin_ptr->set_enable(is_dr_grandet); m_stage_drops_plugin_ptr->set_enable_penguin(enable_penguin); m_stage_drops_plugin_ptr->set_penguin_id(penguin_id); + m_stage_drops_plugin_ptr->set_enable_yituliu(enable_yituliu); m_sidestory_reopen_task_ptr->set_medicine(medicine); m_sidestory_reopen_task_ptr->set_expiring_medicine(expiring_medicine); m_sidestory_reopen_task_ptr->set_stone(stone); m_sidestory_reopen_task_ptr->set_enable_penguin(enable_penguin); m_sidestory_reopen_task_ptr->set_penguin_id(std::move(penguin_id)); + m_sidestory_reopen_task_ptr->set_enable_yituliu(enable_yituliu); m_sidestory_reopen_task_ptr->set_server(server); return true; diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs index fa99e83236..4f33d32f1e 100644 --- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs +++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs @@ -155,6 +155,9 @@ namespace MaaWpfGui.Constants public const string PenguinId = "Penguin.Id"; public const string IsDrGrandet = "Penguin.IsDrGrandet"; + public const string EnablePenguin = "Penguin.EnablePenguin"; + + public const string EnableYituliu = "Yituliu.EnableYituliu"; public const string BluestacksConfigPath = "Bluestacks.Config.Path"; public const string BluestacksConfigKeyword = "Bluestacks.Config.Keyword"; diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index f4118fd70d..516c3c3fff 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1541,7 +1541,7 @@ namespace MaaWpfGui.Main private readonly Dictionary _latestTaskId = new Dictionary(); private static JObject SerializeFightTaskParams(string stage, int maxMedicine, int maxStone, int maxTimes, - string dropsItemId, int dropsItemQuantity, bool reportToPenguin = true) + string dropsItemId, int dropsItemQuantity) { var taskParams = new JObject { @@ -1549,7 +1549,8 @@ namespace MaaWpfGui.Main ["medicine"] = maxMedicine, ["stone"] = maxStone, ["times"] = maxTimes, - ["report_to_penguin"] = reportToPenguin, + ["report_to_penguin"] = Instances.SettingsViewModel.EnablePenguin, + ["report_to_yituliu"] = Instances.SettingsViewModel.EnableYituliu, }; if (dropsItemQuantity != 0 && !string.IsNullOrWhiteSpace(dropsItemId)) { @@ -1753,8 +1754,8 @@ namespace MaaWpfGui.Main }; } - taskParams["report_to_penguin"] = true; - taskParams["report_to_yituliu"] = true; + taskParams["report_to_penguin"] = Instances.SettingsViewModel.EnablePenguin; + taskParams["report_to_yituliu"] = Instances.SettingsViewModel.EnableYituliu; taskParams["penguin_id"] = Instances.SettingsViewModel.PenguinId; taskParams["server"] = Instances.SettingsViewModel.ServerType; @@ -1952,8 +1953,8 @@ namespace MaaWpfGui.Main ["set_time"] = setTime, ["expedite"] = false, ["expedite_times"] = 0, - ["report_to_penguin"] = true, - ["report_to_yituliu"] = true, + ["report_to_penguin"] = false, + ["report_to_yituliu"] = false, }; int recruitmentTime; if (Instances.RecognizerViewModel.IsLevel3UseShortTime) diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs index 898d9d8b0b..1eda866734 100644 --- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs @@ -3391,6 +3391,36 @@ namespace MaaWpfGui.ViewModels.UI } } + private bool _enablePenguin = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.EnablePenguin, bool.TrueString)); + + /// + /// Gets or sets a value indicating whether to hide unavailable stages. + /// + public bool EnablePenguin + { + get => _enablePenguin; + set + { + SetAndNotify(ref _enablePenguin, value); + ConfigurationHelper.SetValue(ConfigurationKeys.EnablePenguin, value.ToString()); + } + } + + private bool _enableYituliu = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.EnableYituliu, bool.TrueString)); + + /// + /// Gets or sets a value indicating whether to hide unavailable stages. + /// + public bool EnableYituliu + { + get => _enableYituliu; + set + { + SetAndNotify(ref _enableYituliu, value); + ConfigurationHelper.SetValue(ConfigurationKeys.EnableYituliu, value.ToString()); + } + } + private bool _customStageCode = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.CustomStageCode, bool.FalseString)); /// diff --git a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml index a3133857be..35f63c5ed1 100644 --- a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml @@ -148,7 +148,7 @@ - + + +