From 9e062722fdfcb530e9d6bf55ccd0a8a3ebb34829 Mon Sep 17 00:00:00 2001 From: DavidWang19 Date: Wed, 16 Jul 2025 18:18:37 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8E=BB=E6=8E=89=E7=95=8C=E5=9B=AD?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=9A=84=E5=88=B72=E5=B8=8C=E6=9C=9B?= =?UTF-8?q?=E5=BC=80=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RoguelikeSettingsUserControlModel.cs | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs index a284e7149e..9966568620 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs @@ -399,7 +399,9 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel if (RoguelikeDifficulty != -1 && RoguelikeDifficulty != int.MaxValue && RoguelikeDifficulty > maxDifficulty) { RoguelikeDifficulty = -1; // Set to "Current" if not supported - } // 确保在更新列表之前先更新相关属性 + } + + // 确保在更新列表之前先更新相关属性 UpdateRoguelikeDifficultyList(); UpdateRoguelikeModeList(); UpdateRoguelikeRolesList(); @@ -593,7 +595,9 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel SetAndNotify(ref _roguelikeOnlyStartWithEliteTwo, value); ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeOnlyStartWithEliteTwo, value.ToString()); } - } /// + } + + /// /// Gets a value indicating whether only need with elite two's core char. /// public bool RoguelikeOnlyStartWithEliteTwo => _roguelikeOnlyStartWithEliteTwo && _roguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional; @@ -603,25 +607,36 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel /// /// Gets the available start with rewards dictionary based on current theme. /// - public Dictionary RoguelikeStartWithAllDict => _roguelikeStartWithAllDict; private void UpdateRoguelikeStartWithAllDict() + public Dictionary RoguelikeStartWithAllDict => _roguelikeStartWithAllDict; + + private void UpdateRoguelikeStartWithAllDict() { var baseDict = new Dictionary { { "Roguelike@LastReward", LocalizationHelper.GetString("RoguelikeStartWithKettle") }, { "Roguelike@LastReward2", LocalizationHelper.GetString("RoguelikeStartWithShield") }, { "Roguelike@LastReward3", LocalizationHelper.GetString("RoguelikeStartWithIngot") }, - { "Roguelike@LastReward4", LocalizationHelper.GetString("RoguelikeStartWithHope") }, { "Roguelike@LastRewardRand", LocalizationHelper.GetString("RoguelikeStartWithRandomReward") }, }; switch (RoguelikeTheme) { + case Theme.Phantom: + baseDict["Roguelike@LastReward4"] = LocalizationHelper.GetString("RoguelikeStartWithHope"); + break; + case Theme.Mizuki: + baseDict["Roguelike@LastReward4"] = LocalizationHelper.GetString("RoguelikeStartWithHope"); baseDict["Mizuki@Roguelike@LastReward5"] = LocalizationHelper.GetString("RoguelikeStartWithKey"); baseDict["Mizuki@Roguelike@LastReward6"] = LocalizationHelper.GetString("RoguelikeStartWithDice"); break; + case Theme.Sami: + baseDict["Roguelike@LastReward4"] = LocalizationHelper.GetString("RoguelikeStartWithHope"); + break; + case Theme.Sarkaz: + baseDict["Roguelike@LastReward4"] = LocalizationHelper.GetString("RoguelikeStartWithHope"); baseDict["Sarkaz@Roguelike@LastReward5"] = LocalizationHelper.GetString("RoguelikeStartWithIdea"); break; @@ -634,9 +649,17 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel OnPropertyChanged(nameof(RoguelikeStartWithAllDict)); } - private object[] _roguelikeStartWithSelectListRaw = Array.Empty(); private void UpdateRoguelikeStartWithSelectList() + private object[] _roguelikeStartWithSelectListRaw = Array.Empty(); + + private void UpdateRoguelikeStartWithSelectList() { - _roguelikeStartWithSelectListRaw = ConfigurationHelper.GetGlobalValue(ConfigurationKeys.RoguelikeStartWithSelectList, "Roguelike@LastReward Roguelike@LastReward4") + string lastRewardString = "Roguelike@LastReward"; + if (RoguelikeTheme != Theme.JieGarden) + { + lastRewardString += " Roguelike@LastReward4"; + } + + _roguelikeStartWithSelectListRaw = ConfigurationHelper.GetGlobalValue(ConfigurationKeys.RoguelikeStartWithSelectList, lastRewardString) .Split(' ') .Where(s => RoguelikeStartWithAllDict.ContainsKey(s.ToString())) .Select(s => (object)new KeyValuePair(s, RoguelikeStartWithAllDict[s])) @@ -1140,8 +1163,8 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel // 刷开局 CollectibleModeSquad = RoguelikeCollectibleModeSquad, CollectibleModeShopping = RoguelikeCollectibleModeShopping, - StartWithEliteTwo = RoguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional && RoguelikeTheme== Theme.Mizuki || RoguelikeTheme== Theme.Sami, - StartWithEliteTwoNonBattle = RoguelikeOnlyStartWithEliteTwo && RoguelikeTheme== Theme.Mizuki || RoguelikeTheme== Theme.Sami, + StartWithEliteTwo = (RoguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional && RoguelikeTheme == Theme.Mizuki) || RoguelikeTheme == Theme.Sami, + StartWithEliteTwoNonBattle = (RoguelikeOnlyStartWithEliteTwo && RoguelikeTheme == Theme.Mizuki) || RoguelikeTheme == Theme.Sami, // 月度小队 MonthlySquadAutoIterate = RoguelikeMonthlySquadAutoIterate,