From ae6079e862dc0a5dff5659c2c7e527f705874df3 Mon Sep 17 00:00:00 2001 From: Hydrogina <2221964239@qq.com> Date: Wed, 23 Nov 2022 19:34:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8gui=E6=B7=BB=E5=8A=A0=E2=80=9C?= =?UTF-8?q?=E5=80=9F=E5=8A=A9=E6=88=98=E4=BD=9C=E6=88=98=E2=80=9D=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistant/Task/VisitTask.cpp | 17 +++++++++++++---- src/MeoAssistant/Task/VisitTask.h | 2 ++ src/MeoAsstGui/Helper/AsstProxy.cs | 7 +++++-- .../UserControl/MallSettingsUserControl.xaml | 11 +++++++++-- src/MeoAsstGui/ViewModels/SettingsViewModel.cs | 16 ++++++++++++++++ src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs | 10 +++++++++- 6 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/MeoAssistant/Task/VisitTask.cpp b/src/MeoAssistant/Task/VisitTask.cpp index 5f1451d1fd..d1daef6426 100644 --- a/src/MeoAssistant/Task/VisitTask.cpp +++ b/src/MeoAssistant/Task/VisitTask.cpp @@ -7,11 +7,20 @@ asst::VisitTask::VisitTask(AsstCallback callback, void* callback_arg) : PackageTask(std::move(callback), callback_arg, TaskType), - m_visit_task_ptr(std::make_shared(m_callback, m_callback_arg, TaskType)), - m_credit_fight_task_ptr(std::make_shared(m_callback, m_callback_arg)) + m_visit_task_ptr(std::make_shared(m_callback, m_callback_arg, TaskType)), + m_credit_fight_task_ptr(std::make_shared(m_callback, m_callback_arg)) { m_visit_task_ptr->set_tasks({ "VisitBegin" }); m_subtasks.emplace_back(m_visit_task_ptr)->set_ignore_error(false); - - m_subtasks.emplace_back(m_credit_fight_task_ptr)->set_ignore_error(false); +} + +bool asst::VisitTask::set_params(const json::value& params) +{ + bool credit_fight_task_enabled = params.get("credit_fight_task_enabled", false); + + if (credit_fight_task_enabled) { + m_subtasks.emplace_back(m_credit_fight_task_ptr)->set_ignore_error(false); + } + + return true; } diff --git a/src/MeoAssistant/Task/VisitTask.h b/src/MeoAssistant/Task/VisitTask.h index abfecb18ef..4707c763bf 100644 --- a/src/MeoAssistant/Task/VisitTask.h +++ b/src/MeoAssistant/Task/VisitTask.h @@ -12,6 +12,8 @@ namespace asst VisitTask(AsstCallback callback, void* callback_arg); virtual ~VisitTask() override = default; + virtual bool set_params(const json::value& params) override; + static constexpr const char* TaskType = "Visit"; private: diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index 1c64574194..b3ab9903c7 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -1246,10 +1246,13 @@ namespace MeoAsstGui /// /// 访问好友。 /// + /// 是否借助战作战。 /// 是否成功。 - public bool AsstAppendVisit() + public bool AsstAppendVisit(bool credit_fight_task_enabled) { - TaskId id = AsstAppendTaskWithEncoding("Visit"); + var task_params = new JObject(); + task_params["credit_fight_task_enabled"] = credit_fight_task_enabled; + TaskId id = AsstAppendTaskWithEncoding("Visit", task_params); _latestTaskId[TaskType.Visit] = id; return id != 0; } diff --git a/src/MeoAsstGui/UserControl/MallSettingsUserControl.xaml b/src/MeoAsstGui/UserControl/MallSettingsUserControl.xaml index ff1f9ac382..eb6dfa6550 100644 --- a/src/MeoAsstGui/UserControl/MallSettingsUserControl.xaml +++ b/src/MeoAsstGui/UserControl/MallSettingsUserControl.xaml @@ -16,19 +16,26 @@ + + /// Gets or sets a value indicating whether credit fight task is enabled. + /// + public bool CreditFightTaskEnabled + { + get => _creditFightTaskEnabled; + set + { + SetAndNotify(ref _creditFightTaskEnabled, value); + ViewStatusStorage.Set("Visit.CreditFightTaskEnabled", value.ToString()); + } + } + /* 信用商店设置 */ private bool _creditShopping = Convert.ToBoolean(ViewStatusStorage.Get("Mall.CreditShopping", bool.TrueString)); diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 76827ebcb7..788e5c4df6 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -700,7 +700,7 @@ namespace MeoAsstGui } else if (item.OriginalName == "Visiting") { - ret &= asstProxy.AsstAppendVisit(); + ret &= appendVisit(); } else if (item.OriginalName == "Mall") { @@ -900,6 +900,14 @@ namespace MeoAsstGui settings.CustomInfrastEnabled, settings.CustomInfrastFile, CustomInfrastPlanIndex); } + private bool appendVisit() + { + var settings = _container.Get(); + var asstProxy = _container.Get(); + + return asstProxy.AsstAppendVisit(settings.CreditFightTaskEnabled); + } + private bool appendMall() { var settings = _container.Get();