diff --git a/resource/tasks/MiniGame/AT.json b/resource/tasks/MiniGame/AT.json
index a73ab35372..3c4134a732 100644
--- a/resource/tasks/MiniGame/AT.json
+++ b/resource/tasks/MiniGame/AT.json
@@ -1,5 +1,6 @@
{
"MiniGame@AT@ConversationRoom": {
+ "doc": "墟 - 相谈室·御影",
"algorithm": "JustReturn",
"next": ["MiniGame@AT@OpenForBusiness", "MiniGame@AT@CanNotOpenForBusiness"]
},
diff --git a/resource/tasks/MiniGame/OS.json b/resource/tasks/MiniGame/OS.json
index f0323c80a5..5fce9c45a9 100644
--- a/resource/tasks/MiniGame/OS.json
+++ b/resource/tasks/MiniGame/OS.json
@@ -1,5 +1,6 @@
{
"MiniGame@OS@Begin": {
+ "doc": "雪山降临1101 - 喀兰贸易技术研发部",
"algorithm": "JustReturn",
"next": ["MiniGame@OS@StartRebuild"]
},
diff --git a/resource/tasks/MiniGame/PV-Reproduction.json b/resource/tasks/MiniGame/PV-Reproduction.json
index 6bc6f04b22..bf3fc6381b 100644
--- a/resource/tasks/MiniGame/PV-Reproduction.json
+++ b/resource/tasks/MiniGame/PV-Reproduction.json
@@ -1,5 +1,6 @@
{
"MiniGame@PV@Begin": {
+ "doc": "揭幕者们 - 烟花筹委会",
"algorithm": "JustReturn",
"next": [
"MiniGame@PV@01",
diff --git a/resource/tasks/MiniGame/SPA.json b/resource/tasks/MiniGame/SPA.json
index 710be20232..88b427da6e 100644
--- a/resource/tasks/MiniGame/SPA.json
+++ b/resource/tasks/MiniGame/SPA.json
@@ -1,5 +1,6 @@
{
"MiniGame@SPA@Begin": {
+ "doc": "卫戍协议:盟约",
"algorithm": "JustReturn",
"next": ["MiniGame@SPA@EnterIndependent"]
},
diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml
index 40c83890a9..77a57a2d32 100644
--- a/src/MaaWpfGui/Res/Localizations/en-us.xaml
+++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml
@@ -795,6 +795,7 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla
Mini Game Name
+ Select a mini-game from above to start running.
PV - Fireworks Organizing Committee
Automatically clear from the selected stage. If you choose the first stage, start from the leftmost side of the event page; for other stages, enter the previous stage and then return to calibrate the position.
Stronghold Protocol: Alliance
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index d8333a9472..7a47c45e92 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -795,6 +795,7 @@ C:\\leidian\\LDPlayer9
ミニゲーム名
+ 上からミニゲームを選択して実行を開始してください。
PV-花火実行委員会
選択したステージから自動でクリアします。最初のステージを選んだ場合は、イベントページの最左側から開始してください。その他のステージを選んだ場合は、位置を校正するために前のステージに一度入ってから戻ってください。
ガードプロトコル:盟約
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index 8ff24a9480..36b54663bf 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -796,6 +796,7 @@ C:\\leidian\\LDPlayer9
미니 게임 이름
+ 위에서 미니 게임을 선택하여 실행을 시작하세요.
PV-불꽃놀이 집행위원회
선택한 스테이지부터 자동으로 클리어합니다. 첫 번째 스테이지를 선택한 경우에는 이벤트 페이지의 가장 왼쪽에서 시작하세요. 다른 스테이지를 선택한 경우에는 위치 보정을 위해 이전 스테이지에 먼저 들어갔다가 돌아오세요.
위수 협의: 맹약
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index 32389cb0e2..6fc9713a5d 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -795,6 +795,7 @@ C:\\leidian\\LDPlayer9。\n
小游戏名称
+ 在上方选择小游戏以开始运行。
PV-烟花筹委会
从所选关卡开始并自动通关。若选择第一关,则从活动页最左侧开始;若选择其他关卡,请先进入上一关再返回以校准位置。
卫戍协议:盟约
@@ -812,7 +813,7 @@ C:\\leidian\\LDPlayer9。\n
争锋频道:青草城
手动跳过教程对话,然后可以直接退出。
在活动主界面(右下角有 「加入赛事」 处)开始任务。
跟着鸭总喝口汤。
争锋频道:蜜果城
- {key=MiniGame@ALL@GreenGrassTip}
+ 手动跳过教程对话,然后可以直接退出。
在活动主界面(右下角有 「加入赛事」 处)开始任务。
跟着鸭总喝口汤。
绿票商店
1层全买。
2层买寻访凭证和招聘许可。
黄票商店
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index d3ce87c14d..dff50e4d28 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -796,6 +796,7 @@ C:\\leidian\\LDPlayer9。\n
小遊戲名稱
+ 在上方選擇小遊戲以開始運行。
PV-煙花籌委會
從所選關卡開始並自動通關。若選擇第一關,則從活動頁面最左側開始;若選擇其他關卡,請先進入上一關再返回以校準位置。
衛戍協議:盟約
diff --git a/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs b/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs
index e3f2d80983..57778eb57e 100644
--- a/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs
@@ -73,6 +73,8 @@ public class ToolboxViewModel : Screen
LoadDepotDetails();
LoadOperBoxDetails();
OperBoxSelectedIndex = OperBoxNotHaveList.Count > 0 ? 0 : 1;
+
+ UpdateMiniGameTaskList();
}
private bool _idle;
@@ -1235,22 +1237,41 @@ public class ToolboxViewModel : Screen
[
// 固定
- new() { Display = LocalizationHelper.GetString("MiniGameNameSsStore"), Value = "SS@Store@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGameNameGreenTicketStore"), Value = "GreenTicket@Store@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGameNameYellowTicketStore"), Value = "YellowTicket@Store@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGameNameRAStore"), Value = "RA@Store@Begin" },
+ new() { Display = LocalizationHelper.GetString("MiniGameNameSsStore"), Value = "SS@Store@Begin" }, // 活动商店
+ new() { Display = LocalizationHelper.GetString("MiniGameNameGreenTicketStore"), Value = "GreenTicket@Store@Begin" }, // 绿票商店
+ new() { Display = LocalizationHelper.GetString("MiniGameNameYellowTicketStore"), Value = "YellowTicket@Store@Begin" }, // 黄票商店
+ new() { Display = LocalizationHelper.GetString("MiniGameNameRAStore"), Value = "RA@Store@Begin" }, // 生息演算商店
// 活动
- new() { Display = LocalizationHelper.GetString("MiniGame@PV"), Value = "MiniGame@PV@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGame@SPA"), Value = "MiniGame@SPA@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGame@OS"), Value = "MiniGame@OS@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGame@RM-TR-1"), Value = "MiniGame@RM-TR-1@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGame@RM-1"), Value = "MiniGame@RM-1@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGame@AT@ConversationRoom"), Value = "MiniGame@AT@ConversationRoom" },
- new() { Display = LocalizationHelper.GetString("MiniGame@ALL@HoneyFruit"), Value = "MiniGame@ALL@GreenGrass@HoneyFruit@Begin" },
- new() { Display = LocalizationHelper.GetString("MiniGame@ALL@GreenGrass"), Value = "MiniGame@ALL@GreenGrass@DuelChannel@Begin" },
+ // new() { Display = LocalizationHelper.GetString("MiniGame@PV"), Value = "MiniGame@PV@Begin" }, // 揭幕者们 - 烟花筹委会
+ // new() { Display = LocalizationHelper.GetString("MiniGame@SPA"), Value = "MiniGame@SPA@Begin" }, // 卫戍协议:盟约
+ // new() { Display = LocalizationHelper.GetString("MiniGame@ALL@GreenGrass"), Value = "MiniGame@ALL@GreenGrass@DuelChannel@Begin" }, // 争锋频道 - 青草城
+ // new() { Display = LocalizationHelper.GetString("MiniGame@ALL@HoneyFruit"), Value = "MiniGame@ALL@HoneyFruit@DuelChannel@Begin" }, // 争锋频道 - 蜜果城
+ // new() { Display = LocalizationHelper.GetString("MiniGame@OS"), Value = "MiniGame@OS@Begin" }, // 雪山降临1101 - 喀兰贸易技术研发部
+ // new() { Display = LocalizationHelper.GetString("MiniGame@RM-TR-1"), Value = "MiniGame@RM-TR-1@Begin" }, // 次生预案
+ // new() { Display = LocalizationHelper.GetString("MiniGame@RM-1"), Value = "MiniGame@RM-1@Begin" }, // 次生预案
+ // new() { Display = LocalizationHelper.GetString("MiniGame@AT@ConversationRoom"), Value = "MiniGame@AT@ConversationRoom" }, // 墟 - 相谈室·御影
+
+ // 已完结活动
];
+ private static void UpdateMiniGameTaskList()
+ {
+ if (SettingsViewModel.GameSettings.ClientType is "Official" or "Bilibili")
+ {
+ MiniGameTaskList.Add(new CombinedData
+ { Display = LocalizationHelper.GetString("MiniGame@SPA"), Value = "MiniGame@SPA@Begin" });
+ }
+ else if (SettingsViewModel.GameSettings.ClientType is "YoStarEN" or "YoStarJP" or "YoStarKR")
+ {
+ }
+ else if (SettingsViewModel.GameSettings.ClientType is "txwy")
+ {
+ MiniGameTaskList.Add(new CombinedData
+ { Display = LocalizationHelper.GetString("MiniGame@ALL@GreenGrass"), Value = "MiniGame@ALL@GreenGrass@DuelChannel@Begin" });
+ }
+ }
+
private string _miniGameTaskName = ConfigurationHelper.GetGlobalValue(ConfigurationKeys.MiniGameTaskName, "SS@Store@Begin");
public string MiniGameTaskName
@@ -1278,6 +1299,11 @@ public class ToolboxViewModel : Screen
private static string GetMiniGameTip(string name)
{
+ if (string.IsNullOrEmpty(name) || !MiniGameTaskList.Any(item => item.Value == name))
+ {
+ return LocalizationHelper.GetString("MiniGameNameEmptyTip");
+ }
+
return name switch
{
// 固定
@@ -1294,6 +1320,7 @@ public class ToolboxViewModel : Screen
"MiniGame@RM-1@Begin" => LocalizationHelper.GetString("MiniGame@RM-1Tip"),
"MiniGame@AT@ConversationRoom" => LocalizationHelper.GetString("MiniGame@AT@ConversationRoomTip"),
"MiniGame@ALL@GreenGrass@DuelChannel@Begin" => LocalizationHelper.GetString("MiniGame@ALL@GreenGrassTip"),
+ "MiniGame@ALL@HoneyFruit@DuelChannel@Begin" => LocalizationHelper.GetString("MiniGame@ALL@HoneyFruitTip"),
_ => string.Empty,
};
}