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}" />
-