From 4fe6ce0eb4c5cc883d8ea38fa92e29fc777cf270 Mon Sep 17 00:00:00 2001 From: DavidWang19 Date: Sat, 13 Jul 2024 14:34:36 +0100 Subject: [PATCH] feat: WPF Gui support for roguelike collapsal paradigm task plugin (#9648) * feat: WPF Gui support for roguelike collapsal paradigm task plugin --- src/MaaWpfGui/Main/AsstProxy.cs | 17 +++++++ src/MaaWpfGui/Res/Localizations/en-us.xaml | 5 ++ src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 5 ++ src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 5 ++ src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 5 ++ src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 5 ++ .../ViewModels/UI/SettingsViewModel.cs | 46 +++++++++++++++---- 7 files changed, 78 insertions(+), 10 deletions(-) diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index fc164b692b..c9a93c660a 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1566,6 +1566,23 @@ namespace MaaWpfGui.Main case "AccountSwitch": Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("AccountSwitch") + $" {subTaskDetails["current_account"]} -->> {subTaskDetails["account_name"]}", UiLogColor.Info); break; + case "RoguelikeCollapsalParadigms": + int deepen_or_weaken = (int)subTaskDetails["deepen_or_weaken"]; + string cur = subTaskDetails["cur"].ToString(); + string prev = subTaskDetails["prev"].ToString(); + if (deepen_or_weaken == 1 && prev == "") { + Instances.TaskQueueViewModel.AddLog(string.Format(LocalizationHelper.GetString("RoguelikeGainParadigm"), cur, prev), UiLogColor.Info); + } + else if (deepen_or_weaken == 1 && prev != "") { + Instances.TaskQueueViewModel.AddLog(string.Format(LocalizationHelper.GetString("RoguelikeDeepenParadigm"), cur, prev), UiLogColor.Info); + } + else if (deepen_or_weaken == -1 && cur == "") { + Instances.TaskQueueViewModel.AddLog(string.Format(LocalizationHelper.GetString("RoguelikeLoseParadigm"), cur, prev), UiLogColor.Info); + } + else if (deepen_or_weaken == -1 && cur != "") { + Instances.TaskQueueViewModel.AddLog(string.Format(LocalizationHelper.GetString("RoguelikeWeakenParadigm"), cur, prev), UiLogColor.Info); + } + break; } } diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index 7d5e9a310a..1c1d0efa08 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -115,6 +115,7 @@ Gain Experience Points, clear as many nodes as possible Invests coins, exits after arriving at the second floor Grind to obtain Hot Water Kettle or Elite II operators + Try trigger rare collapsal paradigms Starting Squad Starting Roles Starting Operator (single) @@ -679,6 +680,10 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla FoldartalForesee: Invested {1}(+{0}), deposit: {2} Roguelike Settlement: {0}\nExplore: {1} Floor {2} Step\nCombat: {3} / {4} Emergency / {5} BOSS\nRecruit: {6}\nCollectibles: {7}\nDifficulty: {8}\nScore: {9}\nExp: {10}, Skill: {11} + Collapsal Paradigm Deepening: {0} + Collapsal Paradigm {0} Deepened to {1} + Collapsal Paradigm Regression: {1} + Collapsal Paradigm {1} Regressed to {0} Current times Nothing Drops: diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 004bb462cc..b94f8d173f 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -115,6 +115,7 @@ 経験値を取得し、できるだけクリア 源石錐の収集、2階到着後終了 序盤の報酬を得るために戦い、3階到着後終了 + 希少な崩壊パラダイムを引き起こしてみてください 最初の分隊 最初の職業 最初のオペレーター(一人だけ) @@ -680,6 +681,10 @@ 予見暗号文板: 投資しました: {1}(+{0})、デポジット: {2} ローグライク決済: {0}\n探検する: {1} 床 {2} ステップ\n戦闘: {3} / {4} 緊急 / {5} BOSS\nリクルート: {6}\nコレクション: {7}\n困難: {8}\nスコア: {9}\n経験値: {10}, スキル: {11} + 崩壊パラダイムの深化: {0} + 崩壊パラダイム {0} が {1} に深化した + 崩壊パラダイムの消退: {1} + 崩壊パラダイム {1} が {0} に退行した 現在の回数 ドロップなし ドロップ: diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index ac7ec8c2a9..9ab2509f07 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -115,6 +115,7 @@ 레벨 우선, 최대한 많은 구역 클리어 오리지늄각뿔 우선, 2번째 구역 도달 시 탐험 중도 포기 전기주전자 획득까지 반복, 3번째 구역 도달 시 탐험 중도 포기 + 희귀한 붕괴 패러다임을 유도해 보세요 시작 분대 모집 조합 시작 오퍼레이터 (1명) @@ -680,6 +681,10 @@ OF-1을 해금하지 않았다면 선택하지 말아 주세요. 예견 밀문판: 각뿔 투자함: {1}(+{0}), 예금: {2} 로그라이크 종착점: {0}\n클리어 : {1} 구역 {2} 노드\n전투 횟수: {3} 일반 / {4} 정예 / {5} 리더\n모집 횟수 : {6} 회\n수집: {7}\n난이도: {8}\n점수: {9}\n경험치: {10}, 스킬: {11} + 붕괴 패러다임 심화: {0} + 붕괴 패러다임 {0}가 {1}로 심화되었다 + 붕괴 패러다임 소멸: {1} + 붕괴 패러다임 {1}이(가) {0}으로 퇴화되었습니다 현재 횟수 없음 드롭: diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index 0024392a4f..c4860cb4e4 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -115,6 +115,7 @@ 刷等级,尽可能稳定地打更多层数 刷源石锭,到达第二层后直接退出 刷开局,刷取热水壶或精二干员开局 + 尝试触发稀有的坍缩范式 开局分队 开局职业组 开局干员 (单个) @@ -679,6 +680,10 @@ 预见: 已投资 {1}(+{0}), 存款: {2} 肉鸽结算: {0}\n探索: {1} 层 {2} 步\n战斗: {3}/{4} 紧急/{5} BOSS\n招募: {6} 收藏品: {7}\n难度: {8} 得分: {9}\nExp: {10} Skill: {11} + 坍缩范式加深: {0} + 坍缩范式 {0} 加深为 {1} + 坍缩范式消退: {1} + 坍缩范式 {1} 消退为 {0} 当前次数 本次掉落: diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index 573d93d0ac..0f28225765 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -111,6 +111,7 @@ 刷等級,盡可能穩定地打更多層數 刷源石錠,到達第二層後直接退出 刷開局,刷取熱水壺或精二幹員開局 + 嘗試觸發稀有的坍縮範式 開局分隊 開局職業組 開局幹員(單個) @@ -671,6 +672,10 @@ 預見: 已投資 {1}(+{0}), 存款: {2} 肉鴿結算: {0}\n探索: {1} 层 {2} 步\n戰鬥: {3}/{4} 緊急/{5} BOSS\n招募: {6} 收藏品: {7}\n難度: {8} 得分: {9}\nExp: {10} Skill: {11} + 坍縮範式加深: {0} + 坍縮範式 {0} 加深為 {1} + 坍縮範式消退: {1} + 坍縮範式 {1} 消退為 {0} 目前次數 本次掉落: diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs index 90fb4a4bff..1bbbe29c9b 100644 --- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs @@ -181,6 +181,7 @@ namespace MaaWpfGui.ViewModels.UI private void InitRoguelike() { + UpdateRoguelikeModeList(); UpdateRoguelikeSquadList(); UpdateRoguelikeCoreCharList(); } @@ -1758,6 +1759,32 @@ namespace MaaWpfGui.ViewModels.UI #region 肉鸽设置 + private void UpdateRoguelikeModeList() + { + var roguelikeMode = RoguelikeMode; + + RoguelikeModeList = + [ + new() { Display = LocalizationHelper.GetString("RoguelikeStrategyExp"), Value = "0" }, + new() { Display = LocalizationHelper.GetString("RoguelikeStrategyGold"), Value = "1" }, + + // new CombData { Display = "两者兼顾,投资过后退出", Value = "2" } // 弃用 + // new CombData { Display = Localization.GetString("3"), Value = "3" }, // 开发中 + new() { Display = LocalizationHelper.GetString("RoguelikeStrategyLastReward"), Value = "4" }, + ]; + + switch (RoguelikeTheme) + { + case "Sami": + + RoguelikeModeList.Add(new() { Display = LocalizationHelper.GetString("RoguelikeStrategyCollapse"), Value = "5" }); + + break; + } + + RoguelikeMode = RoguelikeModeList.Any(x => x.Value == roguelikeMode) ? roguelikeMode : "0"; + } + private void UpdateRoguelikeSquadList() { var roguelikeSquad = RoguelikeSquad; @@ -1829,7 +1856,7 @@ namespace MaaWpfGui.ViewModels.UI RoguelikeSquadList.Add(item); } - _roguelikeSquad = RoguelikeSquadList.Any(x => x.Value == roguelikeSquad) ? roguelikeSquad : string.Empty; + RoguelikeSquad = RoguelikeSquadList.Any(x => x.Value == roguelikeSquad) ? roguelikeSquad : string.Empty; } private void UpdateRoguelikeCoreCharList() @@ -1891,18 +1918,16 @@ namespace MaaWpfGui.ViewModels.UI new() { Display = LocalizationHelper.GetString("RoguelikeThemeSami"), Value = "Sami" }, ]; + private ObservableCollection _roguelikeModeList = new(); + /// /// Gets the list of roguelike modes. /// - public List RoguelikeModeList { get; } = - [ - new() { Display = LocalizationHelper.GetString("RoguelikeStrategyExp"), Value = "0" }, - new() { Display = LocalizationHelper.GetString("RoguelikeStrategyGold"), Value = "1" }, - - // new CombData { Display = "两者兼顾,投资过后退出", Value = "2" } // 弃用 - // new CombData { Display = Localization.GetString("3"), Value = "3" }, // 开发中 - new() { Display = LocalizationHelper.GetString("RoguelikeStrategyLastReward"), Value = "4" }, - ]; + public ObservableCollection RoguelikeModeList + { + get => _roguelikeModeList; + set => SetAndNotify(ref _roguelikeModeList, value); + } private ObservableCollection _roguelikeSquadList = new(); @@ -1940,6 +1965,7 @@ namespace MaaWpfGui.ViewModels.UI set { SetAndNotify(ref _roguelikeTheme, value); + UpdateRoguelikeModeList(); UpdateRoguelikeSquadList(); UpdateRoguelikeCoreCharList(); ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeTheme, value);