diff --git a/resource/roguelike/Sami/encounter_for_deposit.json b/resource/roguelike/Sami/encounter_for_deposit.json
index 425fcf3705..3b751ed6d8 100644
--- a/resource/roguelike/Sami/encounter_for_deposit.json
+++ b/resource/roguelike/Sami/encounter_for_deposit.json
@@ -523,7 +523,7 @@
{
"name": "前行的林地",
"option_num": 2,
- "choose": 2,
+ "choose": 1,
"choice_require": [
{
"name": "树上就不能走吗?",
diff --git a/resource/tasks.json b/resource/tasks.json
index 939df7fae0..ffd04d4137 100644
--- a/resource/tasks.json
+++ b/resource/tasks.json
@@ -14707,6 +14707,7 @@
],
"next": [
"Sami@Roguelike@FoldartalGain",
+ "Sami@Roguelike@LastRewardChoose",
"Sami@Roguelike@SquadConfirm#next"
]
},
@@ -14772,6 +14773,10 @@
"黜",
"黜人"
],
+ [
+ "满",
+ "萨满"
+ ],
[
"\"",
""
@@ -14813,6 +14818,10 @@
[
"开始告",
"开始宣告"
+ ],
+ [
+ "^开始宣.*",
+ "开始宣告"
]
]
},
@@ -14951,6 +14960,20 @@
"Sami@Roguelike@LastReward2": {},
"Sami@Roguelike@LastReward3": {},
"Sami@Roguelike@LastReward4": {},
+ "Sami@Roguelike@LastRewardChoose": {
+ "action": "DoNothing",
+ "template": "Sami@Roguelike@LastRewardChoose.png",
+ "cache": false,
+ "roi": [
+ 485,
+ 4,
+ 368,
+ 119
+ ],
+ "next": [
+ "Sami@Roguelike@SquadConfirm#next"
+ ]
+ },
"Sami@Roguelike@LastRewardConfirm": {},
"Sami@Roguelike@LastRewardRand": {},
"Sami@Roguelike@MapObject": {
diff --git a/resource/template/Sami@Roguelike@LastRewardChoose.png b/resource/template/Sami@Roguelike@LastRewardChoose.png
new file mode 100644
index 0000000000..e4c46048e0
Binary files /dev/null and b/resource/template/Sami@Roguelike@LastRewardChoose.png differ
diff --git a/src/MaaCore/MaaCore.vcxproj b/src/MaaCore/MaaCore.vcxproj
index 2a423e8619..98a2b31cec 100644
--- a/src/MaaCore/MaaCore.vcxproj
+++ b/src/MaaCore/MaaCore.vcxproj
@@ -93,6 +93,7 @@
+
@@ -271,6 +272,7 @@
+
diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters
index 90b08de49c..1d0ccc2368 100644
--- a/src/MaaCore/MaaCore.vcxproj.filters
+++ b/src/MaaCore/MaaCore.vcxproj.filters
@@ -696,6 +696,9 @@
Source\Task\Roguelike
+
+ Source\Task\Roguelike
+
@@ -1160,5 +1163,8 @@
Source\Task\Roguelike
+
+ Source\Task\Roguelike
+
\ No newline at end of file
diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp
index ef412e3d41..a0a7fb5737 100644
--- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp
+++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp
@@ -12,8 +12,10 @@
#include "Task/Roguelike/RoguelikeDebugTaskPlugin.h"
#include "Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.h"
#include "Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.h"
+#include "Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.h"
#include "Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.h"
#include "Task/Roguelike/RoguelikeFormationTaskPlugin.h"
+#include "Task/Roguelike/RoguelikeInvestTaskPlugin.h"
#include "Task/Roguelike/RoguelikeLastRewardTaskPlugin.h"
#include "Task/Roguelike/RoguelikeRecruitTaskPlugin.h"
#include "Task/Roguelike/RoguelikeResetTaskPlugin.h"
@@ -22,7 +24,6 @@
#include "Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.h"
#include "Task/Roguelike/RoguelikeStageEncounterTaskPlugin.h"
#include "Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.h"
-#include "Task/Roguelike/RoguelikeInvestTaskPlugin.h"
#include "Utils/Logger.hpp"
@@ -66,6 +67,7 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst
m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr);
m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr);
+ m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr);
// 这个任务如果卡住会放弃当前的肉鸽并重新开始,所以多添加一点。先这样凑合用
for (int i = 0; i != 100; ++i) {
@@ -98,9 +100,26 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
// 是否凹指定干员开局直升
m_roguelike_config_ptr->set_start_with_elite_two(params.get("start_with_elite_two", false));
m_roguelike_config_ptr->set_only_start_with_elite_two(params.get("only_start_with_elite_two", false));
+
+ // 是否生活队凹开局板子
+ m_roguelike_config_ptr->set_start_foldartal(params.contains("start_foldartal_list"));
+
+ if (auto opt = params.find("start_foldartal_list"); opt) {
+ std::vector list;
+ for (const auto& name : *opt) {
+ if (std::string name_str = name.as_string(); !name_str.empty()) {
+ list.emplace_back(name_str);
+ }
+ }
+ if (list.empty()) {
+ Log.error(__FUNCTION__, "| Empty start_foldartal_list");
+ return false;
+ }
+ m_roguelike_config_ptr->set_start_foldartal_list(std::move(list));
+ }
+
m_roguelike_config_ptr->set_invest_maximum(params.get("investments_count", INT_MAX));
m_roguelike_config_ptr->set_invest_stop_when_full(params.get("stop_when_investment_full", false));
-
// 设置层数选点策略,相关逻辑在 RoguelikeStrategyChangeTaskPlugin
{
Task.set_task_base(theme + "@Roguelike@Stages", theme + "@Roguelike@Stages_default");
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
index b2a623c002..6b1af3b701 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
+++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
@@ -51,23 +51,29 @@ namespace asst
RoguelikeMode get_mode() const { return m_mode; }
void set_difficulty(int difficulty) { m_difficulty = difficulty; }
int get_difficulty() const { return m_difficulty; }
- void set_start_with_elite_two(bool start_with_elite_two) { m_start_with_elite_two = start_with_elite_two; }
+ void set_start_with_elite_two(bool value) { m_start_with_elite_two = value; }
bool get_start_with_elite_two() const { return m_start_with_elite_two; }
void set_only_start_with_elite_two(bool value) { m_only_start_with_elite_two = value; }
bool get_only_start_with_elite_two() const { return m_only_start_with_elite_two; }
+ void set_start_foldartal(bool start_foldartal) { m_start_foldartal = start_foldartal; }
+ bool get_start_foldartal() const { return m_start_foldartal; }
+ void set_start_foldartal_list(std::vector string) { m_start_foldartal_list = string; }
+ std::vector get_start_foldartal_list() const { return m_start_foldartal_list; }
void set_invest_maximum(int value) { m_invest_maximum = value; }
int get_invest_maximum() const { return m_invest_maximum; }
void set_invest_stop_when_full(bool value) { m_invest_stop_when_full = value; }
bool get_invest_stop_when_full() const { return m_invest_stop_when_full; }
private:
- std::string m_theme; // 主题
- RoguelikeMode m_mode = RoguelikeMode::Exp; // 模式
- int m_difficulty = 0; // 难度
- bool m_start_with_elite_two = false; // 在刷开局模式下凹开局干员精二直升
- bool m_only_start_with_elite_two = false; // 只凹开局干员精二直升且不进行作战
- int m_invest_maximum = 0; // 投资次数上限
- bool m_invest_stop_when_full = false; // 存款满了就停止
+ std::string m_theme; // 主题
+ RoguelikeMode m_mode = RoguelikeMode::Exp; // 模式
+ int m_difficulty = 0; // 难度
+ bool m_start_with_elite_two = false; // 在刷开局模式下凹开局干员精二直升
+ bool m_only_start_with_elite_two = false; // 只凹开局干员精二直升且不进行作战
+ bool m_start_foldartal = false; // 生活队凹开局密文板
+ std::vector m_start_foldartal_list; // 需要凹的板子
+ int m_invest_maximum = 0; // 投资次数上限
+ bool m_invest_stop_when_full = false; // 存款满了就停止
/* 以下为每次重置 */
public:
@@ -98,8 +104,8 @@ namespace asst
int m_recruitment_count = 0; // 招募次数
bool m_recruitment_starts_complete = false; // 开局干员是否已经招募
bool m_recruitment_team_complete = false; // 阵容是否完备
- bool m_trader_no_longer_buy = false;
- std::string m_core_char; // 开局干员名
+ bool m_trader_no_longer_buy = false; // 不再购买藏品
+ std::string m_core_char; // 开局干员名
bool m_team_full_without_rookie = false;
bool m_use_support = false; // 开局干员是否为助战干员
bool m_use_nonfriend_support = false; // 是否可以是非好友助战干员
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.cpp
new file mode 100644
index 0000000000..1b6c464af9
--- /dev/null
+++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.cpp
@@ -0,0 +1,69 @@
+#include "RoguelikeFoldartalStartTaskPlugin.h"
+
+#include "Config/TaskData.h"
+#include "Status.h"
+#include "Task/ProcessTask.h"
+#include "Utils/Logger.hpp"
+
+bool asst::RoguelikeFoldartalStartTaskPlugin::verify(AsstMsg msg, const json::value& details) const
+{
+ if (msg != AsstMsg::SubTaskStart || details.get("subtask", std::string()) != "ProcessTask") {
+ return false;
+ }
+
+ if (!RoguelikeConfig::is_valid_theme(m_config->get_theme())) {
+ Log.error("Roguelike name doesn't exist!");
+ return false;
+ }
+ if (m_config->get_theme() != RoguelikeTheme::Sami || m_config->get_difficulty() != INT_MAX ||
+ !m_config->get_start_foldartal()) {
+ return false;
+ }
+ const std::string roguelike_name = m_config->get_theme() + "@";
+ const std::string& task = details.get("details", "task", "");
+ std::string_view task_view = task;
+
+ if (task_view.starts_with(roguelike_name)) {
+ task_view.remove_prefix(roguelike_name.length());
+ }
+ if (task_view == "Roguelike@LastRewardChoose") {
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
+bool asst::RoguelikeFoldartalStartTaskPlugin::_run()
+{
+ LogTraceFunction;
+
+ auto mode = m_config->get_mode();
+ bool start_foldartal_checked = check_foldartals();
+
+ // 没有刷到需要的板子,退出重开
+ if (mode == RoguelikeMode::Collectible && !start_foldartal_checked) {
+ m_config->set_difficulty(0);
+ Task.set_task_base("Roguelike@LastReward", "Roguelike@LastReward_restart");
+ Task.set_task_base("Roguelike@LastReward4", "Roguelike@LastReward_restart");
+ }
+ return true;
+}
+
+bool asst::RoguelikeFoldartalStartTaskPlugin::check_foldartals()
+{
+ // 用户输入的需要的板子字符串
+ const auto& extracted_foldartals = m_config->get_start_foldartal_list();
+ const auto& all_foldartal = m_config->get_foldartal();
+
+ // 查找板子
+ for (const auto& foldartal : extracted_foldartals) {
+ if (std::find(all_foldartal.begin(), all_foldartal.end(), foldartal) == all_foldartal.end()) {
+ // 如果板子没有找到,返回false
+ return false;
+ }
+ }
+
+ // 如果所有板子都找到了,停止
+ return true;
+}
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.h
new file mode 100644
index 0000000000..eb2a63eb23
--- /dev/null
+++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalStartTaskPlugin.h
@@ -0,0 +1,21 @@
+#pragma once
+#include "AbstractRoguelikeTaskPlugin.h"
+
+namespace asst
+{
+ class RoguelikeFoldartalStartTaskPlugin : public AbstractRoguelikeTaskPlugin
+ {
+ public:
+ using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin;
+ virtual ~RoguelikeFoldartalStartTaskPlugin() override = default;
+
+ public:
+ virtual bool verify(AsstMsg msg, const json::value& details) const override;
+
+ protected:
+ virtual bool _run() override;
+
+ private:
+ bool check_foldartals();
+ };
+}
diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
index c3b5988e65..5481fbd37e 100644
--- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs
+++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
@@ -105,6 +105,8 @@ namespace MaaWpfGui.Constants
public const string RoguelikeCoreChar = "Roguelike.CoreChar";
public const string RoguelikeStartWithEliteTwo = "Roguelike.RoguelikeStartWithEliteTwo";
public const string RoguelikeOnlyStartWithEliteTwo = "Roguelike.RoguelikeOnlyStartWithEliteTwo";
+ public const string Roguelike3NewSquad2StartingFoldartal = "Roguelike.Roguelike3NewSquad2StartingFoldartal";
+ public const string Roguelike3NewSquad2StartingFoldartals = "Roguelike.Roguelike3NewSquad2StartingFoldartals";
public const string RoguelikeUseSupportUnit = "Roguelike.RoguelikeUseSupportUnit";
public const string RoguelikeEnableNonfriendSupport = "Roguelike.RoguelikeEnableNonfriendSupport";
public const string RoguelikeDelayAbortUntilCombatComplete = "Roguelike.RoguelikeDelayAbortUntilCombatComplete";
diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs
index b7ba885ab4..f2dc189e50 100644
--- a/src/MaaWpfGui/Main/AsstProxy.cs
+++ b/src/MaaWpfGui/Main/AsstProxy.cs
@@ -2029,13 +2029,15 @@ namespace MaaWpfGui.Main
/// TODO.
/// 是否凹开局直升
/// 是否只凹开局直升,不进行作战
+ /// 是否在萨米肉鸽生活队凹开局板子
+ /// 需要凹的板子,用;连接的字符串
/// 是否core_char使用好友助战
/// 是否允许使用非好友助战
- /// 肉鸽名字。["Phantom", "Mizuki", "Sami"]
+ /// 肉鸽主题["Phantom", "Mizuki", "Sami"]
/// 是否用骰子刷新商店购买特殊商品,目前支持水月肉鸽的指路鳞
/// 是否成功。
public bool AsstAppendRoguelike(int mode, int starts, bool investmentEnabled, bool investmentEnterSecondFloor, int invests, bool stopWhenFull,
- string squad, string roles, string coreChar, bool startWithEliteTwo, bool onlyStartWithEliteTwo, bool useSupport, bool enableNonFriendSupport, string theme, bool refreshTraderWithDice)
+ string squad, string roles, string coreChar, bool startWithEliteTwo, bool onlyStartWithEliteTwo, bool roguelike3NewSquad2StartingFoldartal, string roguelike3NewSquad2StartingFoldartals, bool useSupport, bool enableNonFriendSupport, string theme, bool refreshTraderWithDice)
{
var taskParams = new JObject
{
@@ -2069,6 +2071,11 @@ namespace MaaWpfGui.Main
taskParams["start_with_elite_two"] = mode == 4 && theme != "Phantom" && startWithEliteTwo;
taskParams["only_start_with_elite_two"] = mode == 4 && theme != "Phantom" && startWithEliteTwo && onlyStartWithEliteTwo;
+ if (mode == 4 && theme == "Sami" && roguelike3NewSquad2StartingFoldartal && roguelike3NewSquad2StartingFoldartals.Length > 0)
+ {
+ taskParams["start_foldartal_list"] = new JArray(roguelike3NewSquad2StartingFoldartals.Trim().Split(';').Where(i => !string.IsNullOrEmpty(i)).Take(3));
+ }
+
taskParams["use_support"] = useSupport;
taskParams["use_nonfriend_support"] = enableNonFriendSupport;
taskParams["refresh_trader_with_dice"] = theme == "Mizuki" && refreshTraderWithDice;
diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml
index 88238dbb8f..51b7cc1dff 100644
--- a/src/MaaWpfGui/Res/Localizations/en-us.xaml
+++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml
@@ -115,6 +115,8 @@
The agent entered「{0}」is not in battle_data. Check that the name entered is correct, or check the maa resource version.
Repeat for「Starting Operator」Elite 2
Only Repeat for「Starting Operator」Elite 2, No Battle
+
Select 「Starting Operator」 from support unit list
Enable non-friend support
Don't abort Auto IS until the end of battle
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index 16541e4ff3..1ecba433b0 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -115,6 +115,8 @@
入力のスタッフ「{0}」がbattle_dataにありません。入力の名前が正しいか、maaリソースのバージョンをチェックしてください。
「最初のオペレーター」直接昇進
指定オペレーターの昇進招集までリセマラし、戦闘を行わない
+ 生活队凹开局密文板
+ 最多写三个,并用英文分号;隔开
「最初のオペレーター」をサポートから選択
フレンド以外のサポートの使用を許可
戦闘終了まえに「停止」を遅らせる
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index 09c31632cd..8996df9387 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -115,6 +115,8 @@
입력한 하프「{0}」는 battle_data에 없습니다. 입력한 이름이 올바른지 확인하거나 maa 리소스 버전을 확인하십시오.
시작 오퍼레이터 2정예화까지 반복
시작 오퍼레이터 2정예화까지 반복(전투 X)
+ 生活队凹开局密文板
+ 最多写三个,并用英文分号;隔开
시작 오퍼레이터로 지원 유닛 사용
친구가 아니어도 지원 유닛 사용
정지 시 전투 클리어 후 정지
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index df35584904..0bc3671c50 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -115,6 +115,8 @@
输入的干员「{0}」未在 battle_data 中,请检查输入的名称是否正确,或检查 maa 资源版本。
凹「开局干员」直升精二
只凹「开局干员」直升精二,不进行作战
+ 生活队凹开局密文板
+ 最多写三个,并用英文分号;隔开
「开局干员」使用助战
可以使用非好友助战
在战斗结束前延迟「停止」动作
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index 6d6d9f3259..0b2f231afa 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -115,6 +115,8 @@
輸入的幹員「{0}」未在 battle_data 中,請檢查輸入的名稱是否正確,或檢查 maa 資源版本。
凹「開局幹員」直升精二
只凹「開局幹員」直升精二,不進行作戰
+ 生活隊凹開局密文板
+ 最多寫三個,並用英文分號;隔開
「開局幹員」使用助戰
可以使用非好友助戰
在戰斗結束前延遲「停止」動作
diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
index dedb4d666a..b6ca0e37d2 100644
--- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
@@ -1987,6 +1987,33 @@ namespace MaaWpfGui.ViewModels.UI
}
}
+ private string _roguelike3NewSquad2StartingFoldartal = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartal, false.ToString());
+
+ ///
+ /// Gets or sets a value indicating whether core char need start with elite two.
+ ///
+ public bool Roguelike3NewSquad2StartingFoldartal
+ {
+ get => bool.Parse(_roguelike3NewSquad2StartingFoldartal);
+ set
+ {
+ SetAndNotify(ref _roguelike3NewSquad2StartingFoldartal, value.ToString());
+ ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartal, value.ToString());
+ }
+ }
+
+ private string _roguelike3NewSquad2StartingFoldartals = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartals, string.Empty);
+
+ public string Roguelike3NewSquad2StartingFoldartals
+ {
+ get => _roguelike3NewSquad2StartingFoldartals;
+ set
+ {
+ SetAndNotify(ref _roguelike3NewSquad2StartingFoldartals, value);
+ ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartals, value);
+ }
+ }
+
private string _roguelikeUseSupportUnit = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeUseSupportUnit, false.ToString());
///
diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
index fc830e9752..6321b735e8 100644
--- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
@@ -1393,8 +1393,8 @@ namespace MaaWpfGui.ViewModels.UI
mode, Instances.SettingsViewModel.RoguelikeStartsCount,
Instances.SettingsViewModel.RoguelikeInvestmentEnabled, Instances.SettingsViewModel.RoguelikeInvestmentEnterSecondFloor, Instances.SettingsViewModel.RoguelikeInvestsCount, Instances.SettingsViewModel.RoguelikeStopWhenInvestmentFull,
Instances.SettingsViewModel.RoguelikeSquad, Instances.SettingsViewModel.RoguelikeRoles, DataHelper.GetCharacterByNameOrAlias(Instances.SettingsViewModel.RoguelikeCoreChar)?.Name ?? Instances.SettingsViewModel.RoguelikeCoreChar,
- Instances.SettingsViewModel.RoguelikeStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeOnlyStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeUseSupportUnit,
- Instances.SettingsViewModel.RoguelikeEnableNonfriendSupport, Instances.SettingsViewModel.RoguelikeTheme, Instances.SettingsViewModel.RoguelikeRefreshTraderWithDice);
+ Instances.SettingsViewModel.RoguelikeStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeOnlyStartWithEliteTwo, Instances.SettingsViewModel.Roguelike3NewSquad2StartingFoldartal, Instances.SettingsViewModel.Roguelike3NewSquad2StartingFoldartals,
+ Instances.SettingsViewModel.RoguelikeUseSupportUnit, Instances.SettingsViewModel.RoguelikeEnableNonfriendSupport, Instances.SettingsViewModel.RoguelikeTheme, Instances.SettingsViewModel.RoguelikeRefreshTraderWithDice);
}
private static bool AppendReclamation()
diff --git a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
index 585fbd343c..02a51402bf 100644
--- a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
@@ -123,7 +123,7 @@
+ Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme != "Phantom" and RoguelikeSquad == "突击战术分队" or RoguelikeSquad == "堡垒战术分队" or RoguelikeSquad == "远程战术分队" or RoguelikeSquad == "破坏战术分队"'}">
-
+
+
+
+
+