From 3412d57f2c98b285f08bc2adbecf35f0b5ce5b8a Mon Sep 17 00:00:00 2001 From: David <56174894+Constrat@users.noreply.github.com> Date: Thu, 7 Mar 2024 09:58:42 +0100 Subject: [PATCH] feat: Visit Friends can be toggled off (#8488) --- src/MaaCore/Task/Interface/MallTask.cpp | 9 +++++++++ src/MaaWpfGui/Constants/ConfigurationKeys.cs | 1 + src/MaaWpfGui/Main/AsstProxy.cs | 4 +++- src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs | 15 +++++++++++++++ src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs | 1 + .../UserControl/MallSettingsUserControl.xaml | 4 +--- 6 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/MaaCore/Task/Interface/MallTask.cpp b/src/MaaCore/Task/Interface/MallTask.cpp index 02d6de3586..ebffc535a4 100644 --- a/src/MaaCore/Task/Interface/MallTask.cpp +++ b/src/MaaCore/Task/Interface/MallTask.cpp @@ -35,6 +35,15 @@ bool asst::MallTask::set_params(const json::value& params) { LogTraceFunction; + bool visitFriends = params.get("visit_friends", true); + + if (!visitFriends) { + m_visit_task_ptr->set_enable(false); + } + else { + m_visit_task_ptr->set_enable(true); + } + bool shopping = params.get("shopping", true); if (shopping) { diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs index 5481fbd37e..40fb5b433b 100644 --- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs +++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs @@ -133,6 +133,7 @@ namespace MaaWpfGui.Constants public const string RecruitChooseLevel4 = "AutoRecruit.ChooseLevel4"; public const string RecruitChooseLevel5 = "AutoRecruit.ChooseLevel5"; + public const string CreditVisitFriends = "Mall.CreditVisitFriends"; public const string CreditShopping = "Mall.CreditShopping"; public const string CreditFirstListNew = "Mall.CreditFirstListNew"; public const string CreditBlackListNew = "Mall.CreditBlackListNew"; diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 4bf91a4bab..051312b676 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1826,6 +1826,7 @@ namespace MaaWpfGui.Main /// /// 是否信用战斗。 /// 信用战斗选择编队 + /// 是否访问好友。 /// 是否购物。 /// 优先购买列表。 /// 黑名单列表。 @@ -1833,12 +1834,13 @@ namespace MaaWpfGui.Main /// 只购买折扣信用商品(未打折的白名单物品仍会购买)。 /// 设置300以下信用点停止购买商品。 /// 是否成功。 - public bool AsstAppendMall(bool creditFight, int selectFormation, bool withShopping, string[] firstList, string[] blacklist, bool forceShoppingIfCreditFull, bool only_buy_discount, bool reserve_max_credit) + public bool AsstAppendMall(bool creditFight, int selectFormation, bool visitFriends, bool withShopping, string[] firstList, string[] blacklist, bool forceShoppingIfCreditFull, bool only_buy_discount, bool reserve_max_credit) { var taskParams = new JObject { ["credit_fight"] = creditFight, ["select_formation"] = selectFormation, + ["visit_friends"] = visitFriends, ["shopping"] = withShopping, ["buy_first"] = new JArray { firstList }, ["blacklist"] = new JArray { blacklist }, diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs index 6cd31cb02a..aa35115483 100644 --- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs @@ -2164,6 +2164,21 @@ namespace MaaWpfGui.ViewModels.UI new() { Display = "4", Value = "4" }, ]; + private bool _CreditVisitFriends = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.CreditVisitFriends, bool.TrueString)); + + /// + /// Gets or sets a value indicating whether visiting is enabled or disabled. + /// + public bool CreditVisitFriends + { + get => _CreditVisitFriends; + set + { + SetAndNotify(ref _CreditVisitFriends, value); + ConfigurationHelper.SetValue(ConfigurationKeys.CreditVisitFriends, value.ToString()); + } + } + private int _creditFightSelectFormation = Convert.ToInt32(ConfigurationHelper.GetValue(ConfigurationKeys.CreditFightSelectFormation, "0")); /// diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 139b4da6fa..912b4545ce 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -1330,6 +1330,7 @@ namespace MaaWpfGui.ViewModels.UI return Instances.AsstProxy.AsstAppendMall( !string.IsNullOrEmpty(this.Stage) && Instances.SettingsViewModel.CreditFightTaskEnabled, Instances.SettingsViewModel.CreditFightSelectFormation, + Instances.SettingsViewModel.CreditVisitFriends, Instances.SettingsViewModel.CreditShopping, buyFirst.ToArray(), blackList.ToArray(), diff --git a/src/MaaWpfGui/Views/UserControl/MallSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/MallSettingsUserControl.xaml index e455709ac7..0b234ae91f 100644 --- a/src/MaaWpfGui/Views/UserControl/MallSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/MallSettingsUserControl.xaml @@ -22,14 +22,12 @@ Margin="0,10" Block.TextAlignment="Left" Content="{DynamicResource Visiting}" - IsChecked="True" - IsEnabled="False" /> + IsChecked="{Binding CreditVisitFriends}" /> -