rft: Minigame ToolboxViewModel (#14951)

* rft: Minigame ToolboxViewModel

* fix: Invalid Task Name

* feat: Invalid Task Tip

* fix: key name
This commit is contained in:
晓丶梦丶仁
2025-12-05 17:07:46 +08:00
committed by GitHub
parent df9f458a6f
commit bdeebe80e0
10 changed files with 49 additions and 13 deletions

View File

@@ -1,5 +1,6 @@
{
"MiniGame@AT@ConversationRoom": {
"doc": "墟 - 相谈室·御影",
"algorithm": "JustReturn",
"next": ["MiniGame@AT@OpenForBusiness", "MiniGame@AT@CanNotOpenForBusiness"]
},

View File

@@ -1,5 +1,6 @@
{
"MiniGame@OS@Begin": {
"doc": "雪山降临1101 - 喀兰贸易技术研发部",
"algorithm": "JustReturn",
"next": ["MiniGame@OS@StartRebuild"]
},

View File

@@ -1,5 +1,6 @@
{
"MiniGame@PV@Begin": {
"doc": "揭幕者们 - 烟花筹委会",
"algorithm": "JustReturn",
"next": [
"MiniGame@PV@01",

View File

@@ -1,5 +1,6 @@
{
"MiniGame@SPA@Begin": {
"doc": "卫戍协议:盟约",
"algorithm": "JustReturn",
"next": ["MiniGame@SPA@EnterIndependent"]
},

View File

@@ -795,6 +795,7 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla
<!-- !Peep -->
<!-- 小游戏 -->
<system:String x:Key="MiniGameName">Mini Game Name</system:String>
<system:String x:Key="MiniGameNameEmptyTip">Select a mini-game from above to start running.</system:String>
<system:String x:Key="MiniGame@PV">PV - Fireworks Organizing Committee</system:String>
<system:String x:Key="MiniGame@PVTip">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.</system:String>
<system:String x:Key="MiniGame@SPA">Stronghold Protocol: Alliance</system:String>

View File

@@ -795,6 +795,7 @@ C:\\leidian\\LDPlayer9
<!-- !Peep -->
<!-- 小游戏 -->
<system:String x:Key="MiniGameName">ミニゲーム名</system:String>
<system:String x:Key="MiniGameNameEmptyTip">上からミニゲームを選択して実行を開始してください。</system:String>
<system:String x:Key="MiniGame@PV">PV-花火実行委員会</system:String>
<system:String x:Key="MiniGame@PVTip">選択したステージから自動でクリアします。最初のステージを選んだ場合は、イベントページの最左側から開始してください。その他のステージを選んだ場合は、位置を校正するために前のステージに一度入ってから戻ってください。</system:String>
<system:String x:Key="MiniGame@SPA">ガードプロトコル:盟約</system:String>

View File

@@ -796,6 +796,7 @@ C:\\leidian\\LDPlayer9
<!-- !Peep -->
<!-- 미니게임 -->
<system:String x:Key="MiniGameName">미니 게임 이름</system:String>
<system:String x:Key="MiniGameNameEmptyTip">위에서 미니 게임을 선택하여 실행을 시작하세요.</system:String>
<system:String x:Key="MiniGame@PV">PV-불꽃놀이 집행위원회</system:String>
<system:String x:Key="MiniGame@PVTip">선택한 스테이지부터 자동으로 클리어합니다. 첫 번째 스테이지를 선택한 경우에는 이벤트 페이지의 가장 왼쪽에서 시작하세요. 다른 스테이지를 선택한 경우에는 위치 보정을 위해 이전 스테이지에 먼저 들어갔다가 돌아오세요.</system:String>
<system:String x:Key="MiniGame@SPA">위수 협의: 맹약</system:String>

View File

@@ -795,6 +795,7 @@ C:\\leidian\\LDPlayer9。\n
<!-- !牛牛监控 -->
<!-- 小游戏 -->
<system:String x:Key="MiniGameName">小游戏名称</system:String>
<system:String x:Key="MiniGameNameEmptyTip">在上方选择小游戏以开始运行。</system:String>
<system:String x:Key="MiniGame@PV">PV-烟花筹委会</system:String>
<system:String x:Key="MiniGame@PVTip">从所选关卡开始并自动通关。若选择第一关,则从活动页最左侧开始;若选择其他关卡,请先进入上一关再返回以校准位置。</system:String>
<system:String x:Key="MiniGame@SPA">卫戍协议:盟约</system:String>
@@ -812,7 +813,7 @@ C:\\leidian\\LDPlayer9。\n
<system:String x:Key="MiniGame@ALL@GreenGrass">争锋频道:青草城</system:String>
<system:String x:Key="MiniGame@ALL@GreenGrassTip" xml:space="preserve">手动跳过教程对话,然后可以直接退出。&#10;在活动主界面(右下角有 「加入赛事」 处)开始任务。&#10;&#10;跟着鸭总喝口汤。</system:String>
<system:String x:Key="MiniGame@ALL@HoneyFruit">争锋频道:蜜果城</system:String>
<system:String x:Key="MiniGame@ALL@HoneyFruitTip" xml:space="preserve">{key=MiniGame@ALL@GreenGrassTip}</system:String>
<system:String x:Key="MiniGame@ALL@HoneyFruitTip" xml:space="preserve">手动跳过教程对话,然后可以直接退出。&#10;在活动主界面(右下角有 「加入赛事」 处)开始任务。&#10;&#10;跟着鸭总喝口汤。</system:String>
<system:String x:Key="MiniGameNameGreenTicketStore">绿票商店</system:String>
<system:String x:Key="MiniGameNameGreenTicketStoreTip" xml:space="preserve">1层全买。&#10;2层买寻访凭证和招聘许可。</system:String>
<system:String x:Key="MiniGameNameYellowTicketStore">黄票商店</system:String>

View File

@@ -796,6 +796,7 @@ C:\\leidian\\LDPlayer9。\n
<!-- !牛牛監控 -->
<!-- 小游戏 -->
<system:String x:Key="MiniGameName">小遊戲名稱</system:String>
<system:String x:Key="MiniGameNameEmptyTip">在上方選擇小遊戲以開始運行。</system:String>
<system:String x:Key="MiniGame@PV">PV-煙花籌委會</system:String>
<system:String x:Key="MiniGame@PVTip">從所選關卡開始並自動通關。若選擇第一關,則從活動頁面最左側開始;若選擇其他關卡,請先進入上一關再返回以校準位置。</system:String>
<system:String x:Key="MiniGame@SPA">衛戍協議:盟約</system:String>

View File

@@ -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,
};
}