From f2ee18b9f04b89304ed21abe431e2347b6be5baa Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Tue, 19 Dec 2023 21:19:08 +0800
Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=82=89?=
=?UTF-8?q?=E9=B8=BD=E5=8D=95=E7=8B=AC=E5=87=B9=E7=B2=BE=E4=BA=8C=E6=A8=A1?=
=?UTF-8?q?=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/协议文档/集成文档.md | 1 +
src/MaaCore/Task/Roguelike/RoguelikeConfig.h | 3 ++-
.../Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp | 12 ++++++++----
src/MaaWpfGui/Res/Localizations/en-us.xaml | 1 +
src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 1 +
src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 1 +
src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 1 +
src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 1 +
src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs | 1 +
.../UserControl/RoguelikeSettingsUserControl.xaml | 5 +++--
10 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/docs/协议文档/集成文档.md b/docs/协议文档/集成文档.md
index 56d0edb329..d0d56f31bc 100644
--- a/docs/协议文档/集成文档.md
+++ b/docs/协议文档/集成文档.md
@@ -215,6 +215,7 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
// 2 - 【即将弃用】两者兼顾,投资过后再退出,没有投资就继续往后打
// 3 - 开发中...
// 4 - 烧热水,到达第三层后直接退出
+ // 5 - 凹精二,不进行后续作战
"starts_count": int, // 开始探索 次数,可选,默认 INT_MAX。达到后自动停止任务
"investment_enabled": bool, // 是否投资源石锭,默认开
"investments_count": int,
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
index ce0b650aef..bf4814354e 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
+++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
@@ -13,6 +13,7 @@ namespace asst
// 2 - 【已移除】两者兼顾,投资过后再退出,没有投资就继续往后打
// 3 - 尝试通关,激进策略(TODO)
Collectible = 4, // 4 - 刷开局藏品,以获得热水壶或者演讲稿开局,不期而遇采用保守策略
+ StartEliteTwo = 5, // 5 - 只刷直升,有直升就结束任务
};
class RoguelikeTheme
@@ -41,7 +42,7 @@ namespace asst
static constexpr bool is_valid_mode(RoguelikeMode mode)
{
return mode == RoguelikeMode::Exp || mode == RoguelikeMode::Investment ||
- mode == RoguelikeMode::Collectible;
+ mode == RoguelikeMode::Collectible || mode == RoguelikeMode::StartEliteTwo;
}
public:
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
index 10dad87db4..affb7a7729 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
@@ -431,6 +431,8 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string&
bool start_with_elite_two = m_config->get_start_with_elite_two();
// 当前肉鸽难度
int difficulty = m_config->get_difficulty();
+ // 当前肉鸽模式
+ RoguelikeMode mode = m_config->get_mode();
for (; i != SwipeTimes; ++i) {
if (need_exit()) {
@@ -453,14 +455,16 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string&
Log.info(__FUNCTION__, "| Oper list:", oper_names);
if (it != chars.cend()) {
- // 需要凹直升且当前为max难度时
- if (start_with_elite_two && difficulty == INT_MAX) {
+ // 需要凹直升且当前为max难度或者为凹直升模式时
+ if (mode == RoguelikeMode::StartEliteTwo || (start_with_elite_two && difficulty == INT_MAX)) {
if (it->elite == 2) {
m_task_ptr->set_enable(false);
}
else {
- // 重置难度并放弃
- m_config->set_difficulty(0);
+ // 烧开水模式时重置难度并放弃
+ if (mode == RoguelikeMode::Collectible) {
+ m_config->set_difficulty(0);
+ }
ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ExitThenAbandon" })
.set_times_limit("Roguelike@Abandon", 0)
.run();
diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml
index 4c9925e1f2..f06b337f3e 100644
--- a/src/MaaWpfGui/Res/Localizations/en-us.xaml
+++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml
@@ -103,6 +103,7 @@
Gain Experience Points, clear as many nodes as possible
Invests coins, exits after arriving at the second floor
Fight to obtain starting rewards, reach the third floor then exit
+ Repeat for Starting Operator Elite 2
Starting Squad
Starting Roles
Starting Operator (CN name only)
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index f48a9488bb..e388678402 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -103,6 +103,7 @@
経験値を取得し、できるだけクリア
源石錐の収集、2階到着後終了
序盤の報酬を得るために戦い、3階到着後終了
+ 凹精二、後続作戦は行わない
最初の分隊
最初の職業
最初のオペレーター(一人だけ、中国名のみを入力可能)
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index e4158239a6..13f91386aa 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -103,6 +103,7 @@
레벨 우선, 최대한 많은 구역 클리어
오리지늄각뿔 우선, 2번째 구역 도달 즉시 탐험 중도 포기
전기주전자 획득, 3번째 구역 도달 즉시 탐험 중도 포기
+ 요정 2 는 후속 작전 을 하지 않는다
시작 분대
모집 조합
시작 오퍼레이터 (1명)
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index be586cad85..26d068afe9 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -103,6 +103,7 @@
刷等级,尽可能稳定地打更多层数
刷源石锭,到达第二层后直接退出
烧热水,到达第三层后直接退出
+ 凹精二,不进行后续作战
开局分队
开局职业组
开局干员 (单个)
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index 82154f2da5..e49261b106 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -103,6 +103,7 @@
刷等級,盡可能穩定地打更多層數
刷源石錠,到達第二層後直接退出
燒熱水,到達第三層後直接退出
+ 凹靜二,不進行後續作戰
開局分隊
開局職業組
開局幹員(單個)
diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
index 49140d3610..380bdc3585 100644
--- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
@@ -260,6 +260,7 @@ namespace MaaWpfGui.ViewModels.UI
// new CombData { Display = "两者兼顾,投资过后退出", Value = "2" } // 弃用
// new CombData { Display = Localization.GetString("3"), Value = "3" }, // 开发中
new CombinedData { Display = LocalizationHelper.GetString("RoguelikeLastReward"), Value = "4" },
+ new CombinedData { Display = LocalizationHelper.GetString("RoguelikeStartEliteTwo"), Value = "5" },
};
RoguelikeThemeList = new List
diff --git a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
index 95a8e97779..a4ad9e6bdb 100644
--- a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
@@ -125,8 +125,9 @@
ToolTip="{DynamicResource StartingCoreCharTip}" />
+ IsChecked="{c:Binding 'RoguelikeStartWithEliteTwo or RoguelikeMode == "5"'}"
+ IsEnabled="{c:Binding 'RoguelikeMode != "5"'}"
+ Visibility="{c:Binding '(RoguelikeMode == "4" or RoguelikeMode == "5") and RoguelikeTheme != "Phantom"'}">
Date: Tue, 19 Dec 2023 21:33:37 +0800
Subject: [PATCH 2/7] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E6=84=9A?=
=?UTF-8?q?=E8=A0=A2=E7=9A=84=E6=97=A5=E8=AF=AD=E7=BF=BB=E8=AF=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index e388678402..a24d893014 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -103,7 +103,7 @@
経験値を取得し、できるだけクリア
源石錐の収集、2階到着後終了
序盤の報酬を得るために戦い、3階到着後終了
- 凹精二、後続作戦は行わない
+ 戦闘せずに昇進招集までリセマラする
最初の分隊
最初の職業
最初のオペレーター(一人だけ、中国名のみを入力可能)
From 29e1333cea9f20e325d6c04ad653ba0a5bba0e10 Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Thu, 21 Dec 2023 14:54:51 +0800
Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=E5=B0=86=E5=8F=AA=E5=87=B9?=
=?UTF-8?q?=E7=9B=B4=E5=8D=87=E6=94=B9=E4=B8=BA=E4=B8=80=E4=B8=AA=E9=80=89?=
=?UTF-8?q?=E9=A1=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/协议文档/集成文档.md | 3 +--
src/MaaCore/Task/Interface/RoguelikeTask.cpp | 1 +
src/MaaCore/Task/Roguelike/RoguelikeConfig.h | 8 ++++---
...RoguelikeDifficultySelectionTaskPlugin.cpp | 4 +++-
.../Roguelike/RoguelikeRecruitTaskPlugin.cpp | 11 +++++-----
src/MaaWpfGui/Constants/ConfigurationKeys.cs | 1 +
src/MaaWpfGui/Main/AsstProxy.cs | 4 +++-
src/MaaWpfGui/Res/Localizations/en-us.xaml | 2 +-
src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 2 +-
src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 2 +-
src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 4 ++--
src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 4 ++--
.../ViewModels/UI/SettingsViewModel.cs | 21 ++++++++++++++++++-
.../ViewModels/UI/TaskQueueViewModel.cs | 2 +-
.../RoguelikeSettingsUserControl.xaml | 14 +++++++++++--
15 files changed, 59 insertions(+), 24 deletions(-)
diff --git a/docs/协议文档/集成文档.md b/docs/协议文档/集成文档.md
index d0d56f31bc..840bf2d71f 100644
--- a/docs/协议文档/集成文档.md
+++ b/docs/协议文档/集成文档.md
@@ -214,8 +214,7 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
// 1 - 刷源石锭,第一层投资完就退出
// 2 - 【即将弃用】两者兼顾,投资过后再退出,没有投资就继续往后打
// 3 - 开发中...
- // 4 - 烧热水,到达第三层后直接退出
- // 5 - 凹精二,不进行后续作战
+ // 4 - 刷开局,到达第三层后直接退出
"starts_count": int, // 开始探索 次数,可选,默认 INT_MAX。达到后自动停止任务
"investment_enabled": bool, // 是否投资源石锭,默认开
"investments_count": int,
diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp
index f17e0165ec..0627575e9e 100644
--- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp
+++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp
@@ -95,6 +95,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
m_roguelike_config_ptr->set_difficulty(0);
// 是否凹指定干员开局直升
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));
// 设置层数选点策略,相关逻辑在 RoguelikeStrategyChangeTaskPlugin
{
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
index bf4814354e..80361a8dab 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
+++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h
@@ -12,8 +12,7 @@ namespace asst
Investment = 1, // 1 - 刷源石锭,第一层投资完就退出,不期而遇采用保守策略
// 2 - 【已移除】两者兼顾,投资过后再退出,没有投资就继续往后打
// 3 - 尝试通关,激进策略(TODO)
- Collectible = 4, // 4 - 刷开局藏品,以获得热水壶或者演讲稿开局,不期而遇采用保守策略
- StartEliteTwo = 5, // 5 - 只刷直升,有直升就结束任务
+ Collectible = 4, // 4 - 刷开局,以获得热水壶或者演讲稿开局或只凹直升,不期而遇采用保守策略
};
class RoguelikeTheme
@@ -42,7 +41,7 @@ namespace asst
static constexpr bool is_valid_mode(RoguelikeMode mode)
{
return mode == RoguelikeMode::Exp || mode == RoguelikeMode::Investment ||
- mode == RoguelikeMode::Collectible || mode == RoguelikeMode::StartEliteTwo;
+ mode == RoguelikeMode::Collectible;
}
public:
@@ -54,12 +53,15 @@ namespace asst
int get_difficulty() { return m_difficulty; }
void set_start_with_elite_two(bool start_with_elite_two) { m_start_with_elite_two = start_with_elite_two; }
bool get_start_with_elite_two() { return m_start_with_elite_two; }
+ void set_only_start_with_elite_two(bool only_start_with_elite_two) { m_only_start_with_elite_two = only_start_with_elite_two; }
+ bool get_only_start_with_elite_two() { return m_only_start_with_elite_two; }
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;
/* 以下为每次重置 */
public:
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp
index f064606737..97fb858510 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp
@@ -37,7 +37,9 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::_run()
// 当前难度
int difficulty = m_config->get_difficulty();
- if (m_config->get_theme() != RoguelikeTheme::Phantom && mode == RoguelikeMode::Collectible) {
+ // 是否只凹直升
+ bool only_start_with_elite_two = m_config->get_only_start_with_elite_two();
+ if (m_config->get_theme() != RoguelikeTheme::Phantom && mode == RoguelikeMode::Collectible && !only_start_with_elite_two) {
if (difficulty == INT_MAX) {
ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ChooseDifficulty_Hardest" }).run();
}
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
index affb7a7729..dbea5c195c 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
@@ -429,10 +429,9 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string&
int i = 0;
// 是否凹直升
bool start_with_elite_two = m_config->get_start_with_elite_two();
+ bool only_start_with_elite_two = m_config->get_only_start_with_elite_two();
// 当前肉鸽难度
int difficulty = m_config->get_difficulty();
- // 当前肉鸽模式
- RoguelikeMode mode = m_config->get_mode();
for (; i != SwipeTimes; ++i) {
if (need_exit()) {
@@ -455,14 +454,14 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string&
Log.info(__FUNCTION__, "| Oper list:", oper_names);
if (it != chars.cend()) {
- // 需要凹直升且当前为max难度或者为凹直升模式时
- if (mode == RoguelikeMode::StartEliteTwo || (start_with_elite_two && difficulty == INT_MAX)) {
+ // 需要凹直升且当前为max难度或者只凹直升时
+ if (start_with_elite_two && (difficulty == INT_MAX || only_start_with_elite_two)) {
if (it->elite == 2) {
m_task_ptr->set_enable(false);
}
else {
- // 烧开水模式时重置难度并放弃
- if (mode == RoguelikeMode::Collectible) {
+ // 非只凹直升时重置难度并放弃
+ if (!only_start_with_elite_two) {
m_config->set_difficulty(0);
}
ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ExitThenAbandon" })
diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
index bb1962da62..3e0a0b7e22 100644
--- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs
+++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
@@ -103,6 +103,7 @@ namespace MaaWpfGui.Constants
public const string RoguelikeRoles = "Roguelike.Roles";
public const string RoguelikeCoreChar = "Roguelike.CoreChar";
public const string RoguelikeStartWithEliteTwo = "Roguelike.RoguelikeStartWithEliteTwo";
+ public const string RoguelikeOnlyStartWithEliteTwo = "Roguelike.RoguelikeOnlyStartWithEliteTwo";
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 9cc32ff935..4e511b5fbf 100644
--- a/src/MaaWpfGui/Main/AsstProxy.cs
+++ b/src/MaaWpfGui/Main/AsstProxy.cs
@@ -1972,13 +1972,14 @@ namespace MaaWpfGui.Main
/// TODO.
/// TODO.
/// 是否凹开局直升
+ /// 是否只凹开局直升,不进行作战
/// 是否core_char使用好友助战
/// 是否允许使用非好友助战
/// 肉鸽名字。["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 useSupport, bool enableNonFriendSupport, string theme, bool refreshTraderWithDice)
+ string squad, string roles, string coreChar, bool startWithEliteTwo, bool onlyStartWithEliteTwo, bool useSupport, bool enableNonFriendSupport, string theme, bool refreshTraderWithDice)
{
var taskParams = new JObject
{
@@ -2012,6 +2013,7 @@ namespace MaaWpfGui.Main
}
taskParams["start_with_elite_two"] = startWithEliteTwo;
+ taskParams["only_start_with_elite_two"] = onlyStartWithEliteTwo;
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 f06b337f3e..eb9ab05464 100644
--- a/src/MaaWpfGui/Res/Localizations/en-us.xaml
+++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml
@@ -103,12 +103,12 @@
Gain Experience Points, clear as many nodes as possible
Invests coins, exits after arriving at the second floor
Fight to obtain starting rewards, reach the third floor then exit
- Repeat for Starting Operator Elite 2
Starting Squad
Starting Roles
Starting Operator (CN name only)
Only supports the CN name of a single operator, default if not filled.
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
Stops after clearing the combat
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index a24d893014..5d7280d4d2 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -103,12 +103,12 @@
経験値を取得し、できるだけクリア
源石錐の収集、2階到着後終了
序盤の報酬を得るために戦い、3階到着後終了
- 戦闘せずに昇進招集までリセマラする
最初の分隊
最初の職業
最初のオペレーター(一人だけ、中国名のみを入力可能)
一人のオペレーターの中国名のみをサポートします。入力されていない場合はデフォルトになります。
「最初のオペレーター」直接昇進
+ 指定オペレーターの昇進招集までリセマラし、戦闘を行わない
「最初のオペレーター」をサポートから選択
フレンド以外のサポートの使用を許可
戦闘クリアで止まる
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index 13f91386aa..6bee2d516e 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -103,12 +103,12 @@
레벨 우선, 최대한 많은 구역 클리어
오리지늄각뿔 우선, 2번째 구역 도달 즉시 탐험 중도 포기
전기주전자 획득, 3번째 구역 도달 즉시 탐험 중도 포기
- 요정 2 는 후속 작전 을 하지 않는다
시작 분대
모집 조합
시작 오퍼레이터 (1명)
단일 오퍼레이터의 중국어 이름만 지원하며, 입력하지 않으면 기본값이 선택됩니다.
시초 에 간부 가 직진 하다
+ 시작 요원'만 2 위로 승진하고, 작전은 하지 않는다
시작 오퍼레이터로 지원 유닛 사용
친구가 아니어도 지원 유닛 사용
전투 클리어 후 정지
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index 26d068afe9..b4b21d1c41 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -102,13 +102,13 @@
若启用自定义换班,该字段仅针对 autofill 和使用干员编组的房间有效
刷等级,尽可能稳定地打更多层数
刷源石锭,到达第二层后直接退出
- 烧热水,到达第三层后直接退出
- 凹精二,不进行后续作战
+ 刷开局,到达第三层后直接退出
开局分队
开局职业组
开局干员 (单个)
仅支持单个干员中文名,不填写则默认选择。
凹「开局干员」直升精二
+ 只凹「开局干员」直升精二,不进行作战
「开局干员」使用助战
可以使用非好友助战
在战斗结束前延迟「停止」动作
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index e49261b106..2118c58fa5 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -102,13 +102,13 @@
若啟用自定義換班,該欄位僅針對 autofill 和 幹員編組 的房間有效
刷等級,盡可能穩定地打更多層數
刷源石錠,到達第二層後直接退出
- 燒熱水,到達第三層後直接退出
- 凹靜二,不進行後續作戰
+ 刷開局,到達第三層後直接退出
開局分隊
開局職業組
開局幹員(單個)
僅支持單個幹員中文名,不填寫則預設選擇。
凹「開局幹員」直升精二
+ 只凹「開局幹員」直升精二,不進行作戰
「開局幹員」使用助戰
可以使用非好友助戰
中止行為等待至當前戰鬥結束後
diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
index 380bdc3585..1365e079fe 100644
--- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
@@ -260,7 +260,6 @@ namespace MaaWpfGui.ViewModels.UI
// new CombData { Display = "两者兼顾,投资过后退出", Value = "2" } // 弃用
// new CombData { Display = Localization.GetString("3"), Value = "3" }, // 开发中
new CombinedData { Display = LocalizationHelper.GetString("RoguelikeLastReward"), Value = "4" },
- new CombinedData { Display = LocalizationHelper.GetString("RoguelikeStartEliteTwo"), Value = "5" },
};
RoguelikeThemeList = new List
@@ -1921,11 +1920,31 @@ namespace MaaWpfGui.ViewModels.UI
RoguelikeUseSupportUnit = false;
}
+ if (!value && RoguelikeOnlyStartWithEliteTwo)
+ {
+ RoguelikeOnlyStartWithEliteTwo = false;
+ }
+
SetAndNotify(ref _roguelikeStartWithEliteTwo, value.ToString());
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeStartWithEliteTwo, value.ToString());
}
}
+ private string _roguelikeOnlyStartWithEliteTwo = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeOnlyStartWithEliteTwo, false.ToString());
+
+ ///
+ /// Gets or sets a value indicating whether use support unit.
+ ///
+ public bool RoguelikeOnlyStartWithEliteTwo
+ {
+ get => bool.Parse(_roguelikeOnlyStartWithEliteTwo);
+ set
+ {
+ SetAndNotify(ref _roguelikeOnlyStartWithEliteTwo, value.ToString());
+ ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeOnlyStartWithEliteTwo, value.ToString());
+ }
+ }
+
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 cd262e353b..d7e0bc58e1 100644
--- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
@@ -1350,7 +1350,7 @@ 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, Instances.SettingsViewModel.RoguelikeCoreChar,
- Instances.SettingsViewModel.RoguelikeStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeUseSupportUnit,
+ Instances.SettingsViewModel.RoguelikeStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeOnlyStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeUseSupportUnit,
Instances.SettingsViewModel.RoguelikeEnableNonfriendSupport, Instances.SettingsViewModel.RoguelikeTheme, Instances.SettingsViewModel.RoguelikeRefreshTraderWithDice);
}
diff --git a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
index a4ad9e6bdb..d4d6bae8bf 100644
--- a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
@@ -125,14 +125,24 @@
ToolTip="{DynamicResource StartingCoreCharTip}" />
+ Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme != "Phantom"'}">
+
+
+
Date: Thu, 21 Dec 2023 15:46:34 +0800
Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=E6=94=B9=E4=BA=86=E4=B8=8B=E9=9F=A9?=
=?UTF-8?q?=E8=AF=AD=E7=BF=BB=E8=AF=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index 6bee2d516e..9ab0046ac4 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -108,7 +108,7 @@
시작 오퍼레이터 (1명)
단일 오퍼레이터의 중국어 이름만 지원하며, 입력하지 않으면 기본값이 선택됩니다.
시초 에 간부 가 직진 하다
- 시작 요원'만 2 위로 승진하고, 작전은 하지 않는다
+ 오로지 시초 오퍼레이터의 직진만을 요구하고 전투를 진행하지 않음
시작 오퍼레이터로 지원 유닛 사용
친구가 아니어도 지원 유닛 사용
전투 클리어 후 정지
From b96ce13fd0b72aaaae4e06f068d795f31158551b Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Thu, 21 Dec 2023 16:25:20 +0800
Subject: [PATCH 5/7] =?UTF-8?q?fix:=20=E5=8A=A0=E5=85=A5=E4=BA=86=E9=81=97?=
=?UTF-8?q?=E6=BC=8F=E7=9A=84=E5=88=A4=E5=AE=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/协议文档/集成文档.md | 2 ++
src/MaaWpfGui/Main/AsstProxy.cs | 4 ++--
.../Views/UserControl/RoguelikeSettingsUserControl.xaml | 3 +--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/协议文档/集成文档.md b/docs/协议文档/集成文档.md
index 840bf2d71f..d54412502e 100644
--- a/docs/协议文档/集成文档.md
+++ b/docs/协议文档/集成文档.md
@@ -224,6 +224,8 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
"squad": string, // 开局分队,可选,例如 "突击战术分队" 等,默认 "指挥分队"
"roles": string, // 开局职业组,可选,例如 "先手必胜" 等,默认 "取长补短"
"core_char": string, // 开局干员名,可选,仅支持单个干员中!文!名!。默认识别练度自动选择
+ "start_with_elite_two": bool // 是否在刷开局模式下凹开局干员精二直升,可选,默认 false
+ "only_start_with_elite_two": bool // 是否只凹开局干员精二直升且不进行作战,可选,默认 false,start_with_elite_two为true时有效
"use_support": bool, // 开局干员是否为助战干员,可选,默认 false
"use_nonfriend_support": bool, // 是否可以是非好友助战干员,可选,默认 false,use_support为true时有效
"refresh_trader_with_dice": bool // 是否用骰子刷新商店购买特殊商品,目前支持水月肉鸽的指路鳞,可选,默认 false
diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs
index 4e511b5fbf..6db5aaaf32 100644
--- a/src/MaaWpfGui/Main/AsstProxy.cs
+++ b/src/MaaWpfGui/Main/AsstProxy.cs
@@ -2012,8 +2012,8 @@ namespace MaaWpfGui.Main
taskParams["core_char"] = coreChar;
}
- taskParams["start_with_elite_two"] = startWithEliteTwo;
- taskParams["only_start_with_elite_two"] = onlyStartWithEliteTwo;
+ taskParams["start_with_elite_two"] = theme != "Phantom" && startWithEliteTwo;
+ taskParams["only_start_with_elite_two"] = theme != "Phantom" && onlyStartWithEliteTwo;
taskParams["use_support"] = useSupport;
taskParams["use_nonfriend_support"] = enableNonFriendSupport;
taskParams["refresh_trader_with_dice"] = theme == "Mizuki" && refreshTraderWithDice;
diff --git a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
index d4d6bae8bf..4af1092898 100644
--- a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml
@@ -126,7 +126,6 @@
Date: Thu, 21 Dec 2023 16:54:32 +0800
Subject: [PATCH 6/7] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E9=81=97=E6=BC=8F?=
=?UTF-8?q?=E7=9A=84=E5=88=A4=E5=AE=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/MaaWpfGui/Main/AsstProxy.cs | 4 ++--
src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs
index 6db5aaaf32..6e56299565 100644
--- a/src/MaaWpfGui/Main/AsstProxy.cs
+++ b/src/MaaWpfGui/Main/AsstProxy.cs
@@ -2012,8 +2012,8 @@ namespace MaaWpfGui.Main
taskParams["core_char"] = coreChar;
}
- taskParams["start_with_elite_two"] = theme != "Phantom" && startWithEliteTwo;
- taskParams["only_start_with_elite_two"] = theme != "Phantom" && onlyStartWithEliteTwo;
+ taskParams["start_with_elite_two"] = mode == 4 && theme != "Phantom" && startWithEliteTwo;
+ taskParams["only_start_with_elite_two"] = mode == 4 && theme != "Phantom" && startWithEliteTwo && onlyStartWithEliteTwo;
taskParams["use_support"] = useSupport;
taskParams["use_nonfriend_support"] = enableNonFriendSupport;
taskParams["refresh_trader_with_dice"] = theme == "Mizuki" && refreshTraderWithDice;
diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
index 1365e079fe..c429df14e2 100644
--- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
@@ -1908,7 +1908,7 @@ namespace MaaWpfGui.ViewModels.UI
private string _roguelikeStartWithEliteTwo = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeStartWithEliteTwo, false.ToString());
///
- /// Gets or sets a value indicating whether use support unit.
+ /// Gets or sets a value indicating whether core char need start with elite two.
///
public bool RoguelikeStartWithEliteTwo
{
@@ -1933,7 +1933,7 @@ namespace MaaWpfGui.ViewModels.UI
private string _roguelikeOnlyStartWithEliteTwo = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeOnlyStartWithEliteTwo, false.ToString());
///
- /// Gets or sets a value indicating whether use support unit.
+ /// Gets or sets a value indicating whether only need with elite two's core char.
///
public bool RoguelikeOnlyStartWithEliteTwo
{
From b004c23dc70d48dcf1429a9aadebdb0e902f51df Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Fri, 22 Dec 2023 13:21:12 +0800
Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=E6=9B=B4=E6=94=B9=E8=82=89?=
=?UTF-8?q?=E9=B8=BD=E6=A8=A1=E5=BC=8F=E4=BB=8B=E7=BB=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 2 +-
src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index b4b21d1c41..179b7d6a90 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -102,7 +102,7 @@
若启用自定义换班,该字段仅针对 autofill 和使用干员编组的房间有效
刷等级,尽可能稳定地打更多层数
刷源石锭,到达第二层后直接退出
- 刷开局,到达第三层后直接退出
+ 刷开局,刷取热水壶或精二干员开局
开局分队
开局职业组
开局干员 (单个)
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index 2118c58fa5..d38c8a26d2 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -102,7 +102,7 @@
若啟用自定義換班,該欄位僅針對 autofill 和 幹員編組 的房間有效
刷等級,盡可能穩定地打更多層數
刷源石錠,到達第二層後直接退出
- 刷開局,到達第三層後直接退出
+ 刷開局,刷取熱水壺或精二幹員開局
開局分隊
開局職業組
開局幹員(單個)