diff --git a/docs/en-us/protocol/integration.md b/docs/en-us/protocol/integration.md
index a81fd10d80..775d05ea9b 100644
--- a/docs/en-us/protocol/integration.md
+++ b/docs/en-us/protocol/integration.md
@@ -171,9 +171,10 @@ Supports some of the special stages, please refer to [autoLocalization example](
"replenish": bool, // Whether to replenish Originium Shard in trading post, optional, by default false
"dorm_notstationed_enabled": bool, // Whether to enable "Not Stationed in Dorm" option, optional, by default false
- "dorm_trust_enabled": bool, // Whether to fill dormitory with operators not at max trust, optional, by default false
- "reception_message_board": bool, // Whether to collect credits from reception room message board, optional, by default true
- "reception_clue_exchange": bool, // Whether to perform clue exchange, optional, by default true
+ "dorm_trust_enabled": bool, // Whether to fill dormitory with operators not at max trust, optional, by default false
+ "reception_message_board": bool, // Whether to collect credits from reception room message board, optional, by default true
+ "reception_clue_exchange": bool, // Whether to perform clue exchange, optional, by default true
+ "reception_send_clue": bool, // Whether to send clues, optional, by default true
/* The following parameters are only effective when mode = 10000, otherwise they are ignored */
"filename": string, // Custom config path, required. Editing in run-time is not supported.
@@ -205,6 +206,7 @@ Supports some of the special stages, please refer to [autoLocalization example](
"credit_fight": bool, // Whether to run one battle of OF-1 with support units to gain more Credits the next day; optional, default is false
"formation_index": int // Formation slot index used for the OF-1 battle; optional, default is 0;
// Integer between 0–4, where 0 = current squad, 1–4 = first, second, third, fourth squad
+ //
}
```
diff --git a/docs/ja-jp/protocol/integration.md b/docs/ja-jp/protocol/integration.md
index c7388a866f..0e6e70171e 100644
--- a/docs/ja-jp/protocol/integration.md
+++ b/docs/ja-jp/protocol/integration.md
@@ -170,7 +170,10 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
"threshold": float, // 宿舎に移動させる体力のしきい値 [0, 1.0]、オプション、デフォルトは 0.3
"replenish": bool, // 源石の欠片を自動で補充する、オプション、デフォルトは false
"dorm_notstationed_enabled": bool, // 寮の「入居していない」オプションを有効にするかどうか、オプション、デフォルトfalse
- "dorm_trust_enabled": bool, // 寮の残りの場所を信頼未満のオペレーターに記入するかどうか、オプション、デフォルトfalse
+ "dorm_trust_enabled": bool, // 寮の残りの場所を信頼未満のオペレーターに記入するかどうか、オプション、デフォルトfalse
+ "reception_message_board": bool, // 応接室の掲示板からクレジットを収集するかどうか、オプション、デフォルトtrue
+ "reception_clue_exchange": bool, // 手がかり交換を実施するかどうか、オプション、デフォルトtrue
+ "reception_send_clue": bool, // 手がかりを贈るかどうか、オプション、デフォルトtrue
/* 次のパラメータは、mode=10000でのみ有効になります。そうしないと無視されます */
"filename": string, // カスタム構成パス、必須。実行中の設定はサポートされていません
diff --git a/docs/ko-kr/protocol/integration.md b/docs/ko-kr/protocol/integration.md
index b57ccc476e..421fd05e6f 100644
--- a/docs/ko-kr/protocol/integration.md
+++ b/docs/ko-kr/protocol/integration.md
@@ -162,7 +162,10 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
"threshold": float, // 의욕 임계값, 범위 [0, 1.0], 선택 사항, 기본값은 0.3입니다.
"replenish": bool, // 오리지늄 조각을 보충할지 여부, 선택 사항, 기본값은 false입니다.
"dorm_notstationed_enabled": bool, // "비어 있지 않음" 옵션을 활성화할지 여부, 기본값은 false입니다.
- "dorm_trust_enabled": bool, // 숙소에서 신뢰도작을 할지에 대한 여부, 기본값은 false입니다.
+ "dorm_trust_enabled": bool, // 숙소에서 신뢰도작을 할지에 대한 여부, 기본값은 false입니다.
+ "reception_message_board": bool, // 접수실 게시판에서 크레딧을 수집할지 여부, 선택 사항, 기본값 true
+ "reception_clue_exchange": bool, // 단서 교환을 수행할지 여부, 선택 사항, 기본값 true
+ "reception_send_clue": bool, // 단서를 보낼지 여부, 선택 사항, 기본값 true
/* 다음은 mode == 10000일 때만 유효합니다 */
"filename": string, // 사용자 정의 구성 json 파일 경로
diff --git a/docs/zh-cn/protocol/integration.md b/docs/zh-cn/protocol/integration.md
index e7ebc4b164..744523f379 100644
--- a/docs/zh-cn/protocol/integration.md
+++ b/docs/zh-cn/protocol/integration.md
@@ -268,6 +268,9 @@ Tag 等级(大于等于 3)和对应的希望招募时限,单位为分钟
::: field name="reception_clue_exchange" type="boolean" optional default="true"
是否进行线索交流。
:::
+::: field name="reception_send_clue" type="boolean" optional default="true"
+是否赠送线索。
+:::
::: field name="filename" type="string" required
自定义配置路径。不支持运行中设置。
diff --git a/docs/zh-tw/protocol/integration.md b/docs/zh-tw/protocol/integration.md
index ac48819204..90eefb23a3 100644
--- a/docs/zh-tw/protocol/integration.md
+++ b/docs/zh-tw/protocol/integration.md
@@ -171,8 +171,11 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
// mode = 20000 時該欄位無效(會被忽略)
"replenish": bool, // 貿易站 “源石碎片” 是否自動補貨,可選,預設 false
- "dorm_notstationed_enabled": bool, // 是否啟用宿舍 “未進駐” 選項,可選,預設 false
- "dorm_trust_enabled": bool, // 是否將宿舍剩餘位置填入信賴未滿幹員,可選,預設 false
+ "dorm_notstationed_enabled": bool, // 是否啟用宿舍 "未進駐" 選項,可選,預設 false
+ "dorm_trust_enabled": bool, // 是否將宿舍剩餘位置填入信賴未滿幹員,可選,預設 false
+ "reception_message_board": bool, // 是否領取會客室資訊板信用,可選,預設 true
+ "reception_clue_exchange": bool, // 是否進行線索交流,可選,預設 true
+ "reception_send_clue": bool, // 是否贈送線索,可選,預設 true
/* 以下參數僅在 mode = 10000 時生效,否則會被忽略 */
"filename": string, // 自定義配置路徑,必選。不支援執行中設定
diff --git a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp
index 1f5f63d845..79c14ce057 100644
--- a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp
+++ b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp
@@ -35,9 +35,14 @@ bool asst::InfrastReceptionTask::_run()
return false;
}
- use_clue();
- back_to_reception_main();
- send_clue();
+ if (m_enable_clue_exchange) {
+ use_clue();
+ back_to_reception_main();
+ }
+
+ if (m_send_clue) {
+ send_clue();
+ }
if (need_exit()) {
return false;
@@ -50,8 +55,10 @@ bool asst::InfrastReceptionTask::_run()
return false;
}
- use_clue();
- back_to_reception_main();
+ if (m_enable_clue_exchange) {
+ use_clue();
+ back_to_reception_main();
+ }
if (need_exit()) {
return false;
diff --git a/src/MaaCore/Task/Infrast/InfrastReceptionTask.h b/src/MaaCore/Task/Infrast/InfrastReceptionTask.h
index eb14b4389a..50a1a11383 100644
--- a/src/MaaCore/Task/Infrast/InfrastReceptionTask.h
+++ b/src/MaaCore/Task/Infrast/InfrastReceptionTask.h
@@ -15,6 +15,8 @@ public:
void set_enable_clue_exchange(bool value) noexcept { m_enable_clue_exchange = value; }
+ void set_send_clue(bool value) noexcept { m_send_clue = value; }
+
protected:
virtual bool _run() override;
@@ -35,5 +37,6 @@ private:
bool m_receive_message_board = true;
bool m_enable_clue_exchange = true;
+ bool m_send_clue = true;
};
}
diff --git a/src/MaaCore/Task/Interface/InfrastTask.cpp b/src/MaaCore/Task/Interface/InfrastTask.cpp
index d9163d4248..c1d214ec15 100644
--- a/src/MaaCore/Task/Interface/InfrastTask.cpp
+++ b/src/MaaCore/Task/Interface/InfrastTask.cpp
@@ -170,6 +170,9 @@ bool asst::InfrastTask::set_params(const json::value& params)
bool reception_clue_exchange = params.get("reception_clue_exchange", true);
m_reception_task_ptr->set_enable_clue_exchange(reception_clue_exchange);
+ bool reception_send_clue = params.get("reception_send_clue", true);
+ m_reception_task_ptr->set_send_clue(reception_send_clue);
+
bool replenish = params.get("replenish", false);
m_replenish_task_ptr->set_enable(replenish);
diff --git a/src/MaaWpfGui/Configuration/Single/MaaTask/MallTask.cs b/src/MaaWpfGui/Configuration/Single/MaaTask/MallTask.cs
index 2378504146..8417d69e35 100644
--- a/src/MaaWpfGui/Configuration/Single/MaaTask/MallTask.cs
+++ b/src/MaaWpfGui/Configuration/Single/MaaTask/MallTask.cs
@@ -47,6 +47,11 @@ public class MallTask : BaseTask
///
public string CreditFightLastTime { get; set; } = DateTime.UtcNow.ToYjDate().AddDays(-1).ToFormattedString();
+ ///
+ /// Gets or sets a value indicating whether 信用战斗一天仅一次
+ ///
+ public bool CreditFightOnceADay { get; set; } = true;
+
///
/// Gets or sets a value indicating whether 访问好友
///
@@ -91,19 +96,19 @@ public class MallTask : BaseTask
{
get
{
+ if (!CreditFightOnceADay)
+ {
+ return CreditFight;
+ }
+
try
{
- if (DateTime.UtcNow.ToYjDate() > DateTime.ParseExact(CreditFightLastTime.Replace('-', '/'), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture))
- {
- return CreditFight;
- }
+ return DateTime.UtcNow.ToYjDate() > DateTime.ParseExact(CreditFightLastTime.Replace('-', '/'), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture) && CreditFight;
}
catch
{
return CreditFight;
}
-
- return false;
}
}
diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
index e6bce2df12..231f89e26b 100644
--- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs
+++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
@@ -119,6 +119,7 @@ public static class ConfigurationKeys
public const string UsesOfDrones = "Infrast.UsesOfDrones";
public const string InfrastReceptionMessageBoardReceive = "Infrast.ReceptionMessageBoardReceive";
public const string InfrastReceptionClueExchange = "Infrast.ReceptionClueExchange";
+ public const string InfrastReceptionSendClue = "Infrast.ReceptionSendClue";
public const string ContinueTraining = "Infrast.ContinueTraining";
public const string DefaultInfrast = "Infrast.DefaultInfrast";
public const string IsCustomInfrastFileReadOnly = "Infrast.IsCustomInfrastFileReadOnly"; // 已废弃
@@ -190,6 +191,7 @@ public static class ConfigurationKeys
public const string LastCreditFightTaskTime = "Visit.LastCreditFightTaskTime";
public const string CreditFightTaskEnabled = "Visit.CreditFightTaskEnabled";
+ public const string CreditFightOnceADay = "Visit.CreditFightOnceADay";
public const string CreditFightSelectFormation = "Visit.CreditFightSelectFormation";
public const string LastCreditVisitFriendsTime = "Mall.LastCreditVisitFriendsTime";
diff --git a/src/MaaWpfGui/Models/AsstTasks/AsstInfrastTask.cs b/src/MaaWpfGui/Models/AsstTasks/AsstInfrastTask.cs
index 0912269ec9..1414428ad2 100644
--- a/src/MaaWpfGui/Models/AsstTasks/AsstInfrastTask.cs
+++ b/src/MaaWpfGui/Models/AsstTasks/AsstInfrastTask.cs
@@ -78,12 +78,17 @@ public class AsstInfrastTask : AsstBaseTask
///
/// Gets or sets a value indicating whether 领取基建会客室留言板奖励
///
- public bool ReceptionMessageBoard { get; set; } = true;
+ public bool ReceptionMessageBoard { get; set; }
///
/// Gets or sets a value indicating whether 启用线索交流
///
- public bool ReceptionClueExchange { get; set; } = true;
+ public bool ReceptionClueExchange { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether 是否赠送线索
+ ///
+ public bool ReceptionSendClue { get; set; }
///
/// Gets or sets 自定义配置文件路径
@@ -108,6 +113,7 @@ public class AsstInfrastTask : AsstBaseTask
["replenish"] = OriginiumShardAutoReplenishment,
["reception_message_board"] = ReceptionMessageBoard,
["reception_clue_exchange"] = ReceptionClueExchange,
+ ["reception_send_clue"] = ReceptionSendClue,
["mode"] = (int)Mode,
};
diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml
index 19eb4ec7a8..12e6c1a482 100644
--- a/src/MaaWpfGui/Res/Localizations/en-us.xaml
+++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml
@@ -120,6 +120,8 @@
Originium Shard auto replenishment
Credit collection from message board in Reception Room
Conduct Clue Exchange
+ Send Clues
+ Requires Infrastructure Shift
After training is complete, try to continue mastering the current skill
Training room is vacant
Training completed
@@ -459,7 +461,6 @@ To enable this feature, make sure to select a difficulty of N3 or higher (exclud
Only once a day
Combat with Support to earn Credits
Combat with Support Unit in OF-1 after Visit Friends to earn 30 credits.
-Only once a day.
This function is invalid when the stage is selected as 「{key=DefaultStage}」.
Please do not check it when the stage OF-1 is not unlocked.
Whitelist (split by semicolon)
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index 0c778a69a4..19a88cf9cf 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -120,6 +120,8 @@
源石の欠片を自動で補充
受付室の掲示板からのクレジット収集
手がかり交換を実施
+ 手がかりを贈る
+ インフラシフト実行が必要
訓練完了後に現在スキルの継続特化を試みます
訓練室は空いています
訓練が完了しました
@@ -459,7 +461,6 @@ MAA は非インストール型のアプリケーションであり、レジス
一日一回だけ
サポートを借りて戦闘を行いポイントを獲得します
基地訪問後、OF-1でサポートを使用すると、30FP獲得できます。
-一日一回だけ。
この機能は、ステージを「{key=DefaultStage}」に選択している場合は無効です。
ステージOF-1がアンロックされていない場合は、チェックしないでください。
優先購入(セミコロンで区切)
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index b929ae27e8..3e65d84a46 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -120,6 +120,8 @@
오리지늄 조각 자동 보충
응접실 게시판에서 크레딧 수집
단서 교환 수행
+ 단서 보내기
+ 인프라 교대 필요
스킬 훈련 완료 시 이어서 훈련 시도
훈련실이 비어 있습니다
훈련 완료
@@ -459,7 +461,6 @@ MAA는 비설치형 응용 프로그램으로, 삭제 시 레지스트리 항목
크레딧 구매
크레딧 수급 (지원유닛)
OF-1 스테이지에서 지원유닛을 사용, 클리어하여 30 크레딧을 획득합니다.
-이 작업은 하루에 한 번만 실행할 수 있습니다.
현재 스테이지가 「{key=DefaultStage}」으로 설정되어 있을 경우, 이 기능은 작동하지 않습니다.
OF-1 스테이지가 개방되지 않은 경우에는 선택하지 마세요.
구매 우선 항목 (「;」 로 구분)
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index 017a56b0ac..a2fd68db99 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -120,6 +120,8 @@
源石碎片自动补货
会客室信息板收取信用
进行线索交流
+ 赠送线索
+ 需执行基建换班
训练完成后继续尝试专精当前技能
训练室空闲中
训练完成
@@ -459,7 +461,6 @@
一日只执行一次
借助战打 OF-1 赚信用
访问好友后借助战打一把 OF-1 赚 30 信用。
-一日只执行一次。
关卡选择为 「{key=DefaultStage}」 时此功能无效。
别传 「火蓝之心」 关卡OF-1未解锁时请勿勾选。
优先购买 子串即可 分号分隔
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index 606e0b7415..9e169833fd 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -120,6 +120,8 @@
源石碎片自動補貨
會客室資訊板收取信用
進行線索交流
+ 贈送線索
+ 需執行基建換班
訓練完成後繼續嘗試專精目前技能
訓練室空閒中
訓練完成
@@ -459,7 +461,6 @@
一日只執行一次
借助戰打 OF-1 賺信用
訪問好友後借助戰打一把 OF-1 賺 30 信用。
-一日只執行一次。
關卡選擇爲 「{key=DefaultStage}」 時此功能無效。
別傳 「火藍之心」 關卡 OF-1 未解鎖時請勿勾選。
優先購買 子串即可 分號分隔
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs
index d80350f464..a73659ea2e 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs
@@ -245,6 +245,17 @@ public class InfrastSettingsUserControlModel : TaskViewModel
}
}
+ private bool _receptionSendClue = ConfigurationHelper.GetValue(ConfigurationKeys.InfrastReceptionSendClue, true);
+
+ public bool ReceptionSendClue
+ {
+ get => _receptionSendClue;
+ set {
+ SetAndNotify(ref _receptionSendClue, value);
+ ConfigurationHelper.SetValue(ConfigurationKeys.InfrastReceptionSendClue, value.ToString());
+ }
+ }
+
private bool _continueTraining = ConfigurationHelper.GetValue(ConfigurationKeys.ContinueTraining, false);
///
@@ -618,6 +629,7 @@ public class InfrastSettingsUserControlModel : TaskViewModel
OriginiumShardAutoReplenishment = OriginiumShardAutoReplenishment,
ReceptionMessageBoard = ReceptionMessageBoardReceive,
ReceptionClueExchange = ReceptionClueExchange,
+ ReceptionSendClue = ReceptionSendClue,
Filename = CustomInfrastFile,
};
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs
index 0b408354d9..543ccdd91d 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs
@@ -65,7 +65,21 @@ public class MallSettingsUserControlModel : TaskViewModel
}
}
- private bool _creditFightTaskEnabled = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.CreditFightTaskEnabled, bool.FalseString));
+ private bool _creditFightOnceADay = ConfigurationHelper.GetValue(ConfigurationKeys.CreditFightOnceADay, true);
+
+ ///
+ /// Gets or sets a value indicating whether to bypass the daily limit for credit fight.
+ ///
+ public bool CreditFightOnceADay
+ {
+ get => _creditFightOnceADay;
+ set {
+ SetAndNotify(ref _creditFightOnceADay, value);
+ ConfigurationHelper.SetValue(ConfigurationKeys.CreditFightOnceADay, value.ToString());
+ }
+ }
+
+ private bool _creditFightTaskEnabled = ConfigurationHelper.GetValue(ConfigurationKeys.CreditFightTaskEnabled, false);
///
/// Gets or sets a value indicating whether credit fight task is enabled.
@@ -73,19 +87,20 @@ public class MallSettingsUserControlModel : TaskViewModel
public bool CreditFightTaskEnabled
{
get {
+ if (!CreditFightOnceADay)
+ {
+ return _creditFightTaskEnabled;
+ }
+
try
{
- if (DateTime.UtcNow.ToYjDate() > DateTime.ParseExact(_lastCreditFightTaskTime.Replace('-', '/'), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture))
- {
- return _creditFightTaskEnabled;
- }
+ return DateTime.UtcNow.ToYjDate() > DateTime.ParseExact(_lastCreditFightTaskTime.Replace('-', '/'), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture)
+ && _creditFightTaskEnabled;
}
catch
{
return _creditFightTaskEnabled;
}
-
- return false;
}
set {
@@ -152,7 +167,7 @@ public class MallSettingsUserControlModel : TaskViewModel
public bool CreditVisitFriendsEnabled
{
get {
- if (!_creditVisitOnceADay)
+ if (!CreditVisitOnceADay)
{
return _creditVisitFriendsEnabled;
}
@@ -318,27 +333,8 @@ public class MallSettingsUserControlModel : TaskViewModel
return false;
}
- var creditFight = mall.CreditFight;
- var visitFriends = mall.VisitFriends;
-
- var lastCreditFightTaskTime = GetTaskConfig()?.CreditFightLastTime ?? string.Empty;
- bool creditVisitOnceADay = GetTaskConfig()?.VisitFriendsOnceADay ?? default;
- var lastCreditVisitFriendsTime = GetTaskConfig()?.VisitFriendsLastTime ?? string.Empty;
- try
- {
- creditFight &= DateTime.UtcNow.ToYjDate() > DateTime.ParseExact(lastCreditFightTaskTime.Replace('-', '/'), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
- }
- catch
- {
- }
-
- try
- {
- visitFriends &= !creditVisitOnceADay || DateTime.UtcNow.ToYjDate() > DateTime.ParseExact(lastCreditVisitFriendsTime.Replace('-', '/'), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
- }
- catch
- {
- }
+ var creditFight = mall.IsCreditFightAvailable;
+ var visitFriends = mall.IsVisitFriendsAvailable;
var task = new AsstMallTask() {
CreditFight = creditFight && !fightStage,
diff --git a/src/MaaWpfGui/Views/UserControl/TaskQueue/InfrastSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/TaskQueue/InfrastSettingsUserControl.xaml
index 907dbcbc80..6ecfa46af2 100644
--- a/src/MaaWpfGui/Views/UserControl/TaskQueue/InfrastSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/TaskQueue/InfrastSettingsUserControl.xaml
@@ -217,6 +217,9 @@
+
+
+
diff --git a/src/MaaWpfGui/Views/UserControl/TaskQueue/MallSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/TaskQueue/MallSettingsUserControl.xaml
index a72d60233e..481c714adf 100644
--- a/src/MaaWpfGui/Views/UserControl/TaskQueue/MallSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/TaskQueue/MallSettingsUserControl.xaml
@@ -19,23 +19,26 @@
-
-
+
+
+
+
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/MaaWpfGui/Views/UserControl/TaskQueue/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/TaskQueue/RoguelikeSettingsUserControl.xaml
index 8497abbca7..30666ad86c 100644
--- a/src/MaaWpfGui/Views/UserControl/TaskQueue/RoguelikeSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/TaskQueue/RoguelikeSettingsUserControl.xaml
@@ -306,19 +306,20 @@
Grid.Column="1"
TooltipText="{DynamicResource RoguelikeRequireStartingCoreChar}" />
-
-
-
+
+
+
+