diff --git a/resource/tasks.json b/resource/tasks.json
index 6b9c1003f3..0b25d6b4a6 100644
--- a/resource/tasks.json
+++ b/resource/tasks.json
@@ -5829,6 +5829,17 @@
"ClueGiveTo1stConfirm"
]
},
+ "InfrastOperListTabSkillUnClicked": {
+ "action": "ClickSelf",
+ "roi": [
+ 818,
+ 0,
+ 128,
+ 115
+ ],
+ "templThreshold": 0.7,
+ "rearDelay": 1500
+ },
"BattleStageName": {
"algorithm": "OcrDetect",
"cache": false,
diff --git a/resource/template/InfrastOperListTabSkillUnClicked.png b/resource/template/InfrastOperListTabSkillUnClicked.png
new file mode 100644
index 0000000000..9e99e5bbb2
Binary files /dev/null and b/resource/template/InfrastOperListTabSkillUnClicked.png differ
diff --git a/src/MeoAssistant/InfrastAbstractTask.cpp b/src/MeoAssistant/InfrastAbstractTask.cpp
index 31a514d209..303aca0f54 100644
--- a/src/MeoAssistant/InfrastAbstractTask.cpp
+++ b/src/MeoAssistant/InfrastAbstractTask.cpp
@@ -152,10 +152,22 @@ void asst::InfrastAbstractTask::await_swipe()
sleep(extra_delay);
}
-bool asst::InfrastAbstractTask::swipe_and_select_custom_opers()
+bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool order_by_skill)
{
LogTraceFunction;
+ {
+ json::value cb_info = basic_info_with_what("CustomInfrastRoomOperators");
+ auto& details = cb_info["details"];
+ details["names"] = json::array(m_current_room_custom_config.names);
+ details["candidates"] = json::array(m_current_room_custom_config.candidates);
+ callback(AsstMsg::SubTaskExtraInfo, cb_info);
+ }
+
+ if (order_by_skill) {
+ ProcessTask(*this, { "InfrastOperListTabSkillUnClicked", "Stop" }).run();
+ }
+
while (true) {
if (need_exit()) {
return false;
diff --git a/src/MeoAssistant/InfrastAbstractTask.h b/src/MeoAssistant/InfrastAbstractTask.h
index 5d9adc6fb7..4169b64250 100644
--- a/src/MeoAssistant/InfrastAbstractTask.h
+++ b/src/MeoAssistant/InfrastAbstractTask.h
@@ -37,7 +37,7 @@ namespace asst
void async_swipe_of_operlist(bool reverse = false);
void await_swipe();
bool is_use_custom_config();
- bool swipe_and_select_custom_opers();
+ bool swipe_and_select_custom_opers(bool order_by_skill = true);
bool select_custom_opers();
virtual bool click_bottom_left_tab(); // 点击进入设施后,左下角的tab(我也不知道这玩意该叫啥)
diff --git a/src/MeoAssistant/InfrastDormTask.cpp b/src/MeoAssistant/InfrastDormTask.cpp
index a995df9b0f..9c0530e4a4 100644
--- a/src/MeoAssistant/InfrastDormTask.cpp
+++ b/src/MeoAssistant/InfrastDormTask.cpp
@@ -47,7 +47,7 @@ bool asst::InfrastDormTask::_run()
click_clear_button();
if (is_use_custom_config()) {
- swipe_and_select_custom_opers();
+ swipe_and_select_custom_opers(false);
}
else {
opers_choose();
@@ -218,4 +218,4 @@ bool asst::InfrastDormTask::opers_choose()
//
// ProcessTask task(*this, { "InfrastDormConfirmButton" });
// return task.run();
-// }
\ No newline at end of file
+// }
diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs
index b693d6ccf1..e6bbf1fca9 100644
--- a/src/MeoAsstGui/Helper/AsstProxy.cs
+++ b/src/MeoAsstGui/Helper/AsstProxy.cs
@@ -909,6 +909,10 @@ namespace MeoAsstGui
case "UnsupportedLevel":
copilotModel.AddLog(Localization.GetString("UnsupportedLevel"), LogColor.Error);
break;
+
+ case "CustomInfrastRoomOperators":
+ mainModel.AddLog(subTaskDetails["names"].ToString());
+ break;
}
}
diff --git a/src/MeoAsstGui/Resources/Localizations/en-us.xaml b/src/MeoAsstGui/Resources/Localizations/en-us.xaml
index 9584f61ea4..65816cbbd8 100644
--- a/src/MeoAsstGui/Resources/Localizations/en-us.xaml
+++ b/src/MeoAsstGui/Resources/Localizations/en-us.xaml
@@ -259,7 +259,7 @@
- Depot tool alpha
+ Depot tool beta
This function is still a test version, please check if the recognition result is correct before using it. If there is an error, please submit the issue by compressing the debug/depot folder in the working path.
Start to identify
Export to Arkplanner
diff --git a/src/MeoAsstGui/Resources/Localizations/ja-jp.xaml b/src/MeoAsstGui/Resources/Localizations/ja-jp.xaml
index e9a070783a..ca98d0ca34 100644
--- a/src/MeoAsstGui/Resources/Localizations/ja-jp.xaml
+++ b/src/MeoAsstGui/Resources/Localizations/ja-jp.xaml
@@ -36,7 +36,8 @@
製造所-源石の欠片
製造所-中級SoC
宿舎の空き位置で信頼を上げる
- 作業中のオペレーターを宿舎に移動しない
+ 作業中のオペレーターを宿舎に移動しない
+
源石の欠片は自動で補充する
一般モード
@@ -134,15 +135,18 @@
純正源石使用確認画面で理性が1回復するのを待って、純正源石を使用します
FP交換
- 優先購入(中国名/セミコロンで区切)
- ブラックリスト(中国名/セミコロンで区切)
+ 優先購入(中国名/セミコロンで区切)
+
+ ブラックリスト(中国名/セミコロンで区切)
+
飲み物はいかがですか🍷?ドクター
ドローンの使用
最小化した際にトレイに表示
重要な通知をポップアップする
- 代替ステージを選択可能にする
+ 代替ステージを選択可能にする
+
当日開放されないステージを隠す
スタート画面に表示する便利ボタン
ステージ名を入力する
@@ -183,12 +187,15 @@
MAAとエミューレータを終了し、PCをスリープさせる*
シャットダウン*
- Link Start!
+ Link Start!
+
止める
- 理性剤使用数
- 割る源石の数*
+ 理性剤使用数
+
+ 割る源石の数*
+
周回数指定*
素材を限定
ドロップ数
@@ -199,12 +206,17 @@
現在/前回
- イベント終了
+ イベント終了
+
1-7
- 龍門幣-6/5(CE-6)
- 購買資格証-5(AP-5)
- アーツ学-5(CA-5)
- 作戦記録-6/5(LS-6)
+ 龍門幣-6/5(CE-6)
+
+ 購買資格証-5(AP-5)
+
+ アーツ学-5(CA-5)
+
+ 作戦記録-6/5(LS-6)
+
医療/重装SoC・初
医療/重装SoC・中
@@ -259,7 +271,7 @@
- 倉庫アイテム認識 Alpha
+ 倉庫アイテム認識 beta
この機能はまだテスト版です。倉庫を開いた後、素材のタブを選択してから認識を行い、結果が正しいかどうか確認してください。エラーが発生した場合は、debug/depotフォルダを作業パスに圧縮して、issueを提出してください。
認識開始
Arkplannerへ出力
@@ -278,12 +290,14 @@
ファイル選択
攻略ファイルはマウスで直接ドラッグして取り込むことがきます(o゚v゚)ノ
自動編成
- 自動編成では、一時的に「戦術要員」オペレーターを認識できません
+ 自動編成では、一時的に「戦術要員」オペレーターを認識できません
+
開始
攻略ファイル・シェアステーション
- ビデオハイパーリンク
+ ビデオハイパーリンク
+
ヒント:
@@ -322,7 +336,8 @@
すべてのタスクが完了しました!
クライアントを開くのに失敗しました。構成ファイルを確認してください
エラー発生
- 戻った
+ 戻った
+
ドロップ認識エラー
Penguin-Statsへのアップロードをあきらめました
ステージ報酬がないため停止します
@@ -410,4 +425,4 @@
つ、次は飲みすぎないようにしないと……
Hello World!
-
+
\ No newline at end of file
diff --git a/src/MeoAsstGui/Resources/Localizations/zh-cn.xaml b/src/MeoAsstGui/Resources/Localizations/zh-cn.xaml
index 8950126345..4ec01141fa 100644
--- a/src/MeoAsstGui/Resources/Localizations/zh-cn.xaml
+++ b/src/MeoAsstGui/Resources/Localizations/zh-cn.xaml
@@ -38,7 +38,7 @@
宿舍空余位置蹭信赖
不将已进驻的干员放入宿舍
源石碎片自动补货
- 启用自定义基建配置
+ 启用自定义基建配置(Alpha)
自定义基建配置文件
自定义基建配置文件解析错误!
自定义基建配置:
@@ -264,7 +264,7 @@
- 仓库识别 Alpha
+ 仓库识别 beta
该功能尚处于测试阶段,请检查结果是否准确再行使用。若有误,欢迎打包 debug/depot 文件夹后向我们提交 issue ~
开始识别
导出至企鹅物流刷图规划