feat: WPF Gui support for roguelike collapsal paradigm task plugin (#9648)

* feat: WPF Gui support for roguelike collapsal paradigm task plugin
This commit is contained in:
DavidWang19
2024-07-13 14:34:36 +01:00
committed by GitHub
parent 54dd30cf79
commit 4fe6ce0eb4
7 changed files with 78 additions and 10 deletions

View File

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

View File

@@ -115,6 +115,7 @@
<system:String x:Key="RoguelikeStrategyExp">Gain Experience Points, clear as many nodes as possible</system:String>
<system:String x:Key="RoguelikeStrategyGold">Invests coins, exits after arriving at the second floor</system:String>
<system:String x:Key="RoguelikeStrategyLastReward">Grind to obtain Hot Water Kettle or Elite II operators</system:String>
<system:String x:Key="RoguelikeStrategyCollapse">Try trigger rare collapsal paradigms</system:String>
<system:String x:Key="StartingSquad">Starting Squad</system:String>
<system:String x:Key="StartingRoles">Starting Roles</system:String>
<system:String x:Key="StartingCoreChar">Starting Operator (single)</system:String>
@@ -679,6 +680,10 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla
<system:String x:Key="FoldartalGainOcrNextLevel">FoldartalForesee:</system:String>
<system:String x:Key="RoguelikeInvestment">Invested {1}(+{0}), deposit: {2}</system:String>
<system:String x:Key="RoguelikeSettlement">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}</system:String>
<system:String x:Key="RoguelikeGainParadigm">Collapsal Paradigm Deepening: {0}</system:String>
<system:String x:Key="RoguelikeDeepenParadigm">Collapsal Paradigm {0} Deepened to {1}</system:String>
<system:String x:Key="RoguelikeLoseParadigm">Collapsal Paradigm Regression: {1}</system:String>
<system:String x:Key="RoguelikeWeakenParadigm">Collapsal Paradigm {1} Regressed to {0}</system:String>
<system:String x:Key="CurTimes">Current times</system:String>
<system:String x:Key="NoDrop">Nothing</system:String>
<system:String x:Key="Drop" xml:space="preserve">Drops: </system:String>

View File

@@ -115,6 +115,7 @@
<system:String x:Key="RoguelikeStrategyExp">経験値を取得し、できるだけクリア</system:String>
<system:String x:Key="RoguelikeStrategyGold">源石錐の収集、2階到着後終了</system:String>
<system:String x:Key="RoguelikeStrategyLastReward">序盤の報酬を得るために戦い、3階到着後終了</system:String>
<system:String x:Key="RoguelikeStrategyCollapse">希少な崩壊パラダイムを引き起こしてみてください</system:String>
<system:String x:Key="StartingSquad">最初の分隊</system:String>
<system:String x:Key="StartingRoles">最初の職業</system:String>
<system:String x:Key="StartingCoreChar">最初のオペレーター(一人だけ)</system:String>
@@ -680,6 +681,10 @@
<system:String x:Key="FoldartalGainOcrNextLevel">予見暗号文板:</system:String>
<system:String x:Key="RoguelikeInvestment">投資しました: {1}(+{0})、デポジット: {2}</system:String>
<system:String x:Key="RoguelikeSettlement">ローグライク決済: {0}\n探検する: {1} 床 {2} ステップ\n戦闘: {3} / {4} 緊急 / {5} BOSS\nリクルート: {6}\nコレクション: {7}\n困難: {8}\nスコア: {9}\n経験値: {10}, スキル: {11}</system:String>
<system:String x:Key="RoguelikeGainParadigm">崩壊パラダイムの深化: {0}</system:String>
<system:String x:Key="RoguelikeDeepenParadigm">崩壊パラダイム {0} が {1} に深化した</system:String>
<system:String x:Key="RoguelikeLoseParadigm">崩壊パラダイムの消退: {1}</system:String>
<system:String x:Key="RoguelikeWeakenParadigm">崩壊パラダイム {1} が {0} に退行した</system:String>
<system:String x:Key="CurTimes">現在の回数</system:String>
<system:String x:Key="NoDrop">ドロップなし</system:String>
<system:String x:Key="Drop" xml:space="preserve">ドロップ: </system:String>

View File

@@ -115,6 +115,7 @@
<system:String x:Key="RoguelikeStrategyExp">레벨 우선, 최대한 많은 구역 클리어</system:String>
<system:String x:Key="RoguelikeStrategyGold">오리지늄각뿔 우선, 2번째 구역 도달 시 탐험 중도 포기</system:String>
<system:String x:Key="RoguelikeStrategyLastReward">전기주전자 획득까지 반복, 3번째 구역 도달 시 탐험 중도 포기</system:String>
<system:String x:Key="RoguelikeStrategyCollapse">희귀한 붕괴 패러다임을 유도해 보세요</system:String>
<system:String x:Key="StartingSquad">시작 분대</system:String>
<system:String x:Key="StartingRoles">모집 조합</system:String>
<system:String x:Key="StartingCoreChar">시작 오퍼레이터 (1명)</system:String>
@@ -680,6 +681,10 @@ OF-1을 해금하지 않았다면 선택하지 말아 주세요.</system:String>
<system:String x:Key="FoldartalGainOcrNextLevel">예견 밀문판:</system:String>
<system:String x:Key="RoguelikeInvestment">각뿔 투자함: {1}(+{0}), 예금: {2}</system:String>
<system:String x:Key="RoguelikeSettlement">로그라이크 종착점: {0}\n클리어 : {1} 구역 {2} 노드\n전투 횟수: {3} 일반 / {4} 정예 / {5} 리더\n모집 횟수 : {6} 회\n수집: {7}\n난이도: {8}\n점수: {9}\n경험치: {10}, 스킬: {11}</system:String>
<system:String x:Key="RoguelikeGainParadigm">붕괴 패러다임 심화: {0}</system:String>
<system:String x:Key="RoguelikeDeepenParadigm">붕괴 패러다임 {0}가 {1}로 심화되었다</system:String>
<system:String x:Key="RoguelikeLoseParadigm">붕괴 패러다임 소멸: {1}</system:String>
<system:String x:Key="RoguelikeWeakenParadigm">붕괴 패러다임 {1}이(가) {0}으로 퇴화되었습니다</system:String>
<system:String x:Key="CurTimes">현재 횟수</system:String>
<system:String x:Key="NoDrop">없음</system:String>
<system:String x:Key="Drop" xml:space="preserve">드롭: </system:String>

View File

@@ -115,6 +115,7 @@
<system:String x:Key="RoguelikeStrategyExp">刷等级,尽可能稳定地打更多层数</system:String>
<system:String x:Key="RoguelikeStrategyGold">刷源石锭,到达第二层后直接退出</system:String>
<system:String x:Key="RoguelikeStrategyLastReward">刷开局,刷取热水壶或精二干员开局</system:String>
<system:String x:Key="RoguelikeStrategyCollapse">尝试触发稀有的坍缩范式</system:String>
<system:String x:Key="StartingSquad">开局分队</system:String>
<system:String x:Key="StartingRoles">开局职业组</system:String>
<system:String x:Key="StartingCoreChar">开局干员 (单个)</system:String>
@@ -679,6 +680,10 @@
<system:String x:Key="FoldartalGainOcrNextLevel">预见:</system:String>
<system:String x:Key="RoguelikeInvestment">已投资 {1}(+{0}), 存款: {2}</system:String>
<system:String x:Key="RoguelikeSettlement">肉鸽结算: {0}\n探索: {1} 层 {2} 步\n战斗: {3}/{4} 紧急/{5} BOSS\n招募: {6} 收藏品: {7}\n难度: {8} 得分: {9}\nExp: {10} Skill: {11}</system:String>
<system:String x:Key="RoguelikeGainParadigm">坍缩范式加深: {0}</system:String>
<system:String x:Key="RoguelikeDeepenParadigm">坍缩范式 {0} 加深为 {1}</system:String>
<system:String x:Key="RoguelikeLoseParadigm">坍缩范式消退: {1}</system:String>
<system:String x:Key="RoguelikeWeakenParadigm">坍缩范式 {1} 消退为 {0}</system:String>
<system:String x:Key="CurTimes">当前次数</system:String>
<system:String x:Key="NoDrop">无</system:String>
<system:String x:Key="Drop" xml:space="preserve">本次掉落: </system:String>

View File

@@ -111,6 +111,7 @@
<system:String x:Key="RoguelikeStrategyExp">刷等級,盡可能穩定地打更多層數</system:String>
<system:String x:Key="RoguelikeStrategyGold">刷源石錠,到達第二層後直接退出</system:String>
<system:String x:Key="RoguelikeStrategyLastReward">刷開局,刷取熱水壺或精二幹員開局</system:String>
<system:String x:Key="RoguelikeStrategyCollapse">嘗試觸發稀有的坍縮範式</system:String>
<system:String x:Key="StartingSquad">開局分隊</system:String>
<system:String x:Key="StartingRoles">開局職業組</system:String>
<system:String x:Key="StartingCoreChar">開局幹員(單個)</system:String>
@@ -671,6 +672,10 @@
<system:String x:Key="FoldartalGainOcrNextLevel">預見:</system:String>
<system:String x:Key="RoguelikeInvestment">已投資 {1}(+{0}), 存款: {2}</system:String>
<system:String x:Key="RoguelikeSettlement">肉鴿結算: {0}\n探索: {1} 层 {2} 步\n戰鬥: {3}/{4} 緊急/{5} BOSS\n招募: {6} 收藏品: {7}\n難度: {8} 得分: {9}\nExp: {10} Skill: {11}</system:String>
<system:String x:Key="RoguelikeGainParadigm">坍縮範式加深: {0}</system:String>
<system:String x:Key="RoguelikeDeepenParadigm">坍縮範式 {0} 加深為 {1}</system:String>
<system:String x:Key="RoguelikeLoseParadigm">坍縮範式消退: {1}</system:String>
<system:String x:Key="RoguelikeWeakenParadigm">坍縮範式 {1} 消退為 {0}</system:String>
<system:String x:Key="CurTimes">目前次數</system:String>
<system:String x:Key="NoDrop">無</system:String>
<system:String x:Key="Drop" xml:space="preserve">本次掉落: </system:String>

View File

@@ -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<CombinedData> _roguelikeModeList = new();
/// <summary>
/// Gets the list of roguelike modes.
/// </summary>
public List<CombinedData> 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<CombinedData> RoguelikeModeList
{
get => _roguelikeModeList;
set => SetAndNotify(ref _roguelikeModeList, value);
}
private ObservableCollection<CombinedData> _roguelikeSquadList = new();
@@ -1940,6 +1965,7 @@ namespace MaaWpfGui.ViewModels.UI
set
{
SetAndNotify(ref _roguelikeTheme, value);
UpdateRoguelikeModeList();
UpdateRoguelikeSquadList();
UpdateRoguelikeCoreCharList();
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeTheme, value);