From 39fdfac0c192a536f012b325084c0913c1d5db91 Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Wed, 12 Feb 2025 21:47:38 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E8=B5=84=E6=BA=90=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=90=8E=E9=87=8D=E8=BD=BD=20BattleData=20(#11874)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Helper/DataHelper.cs | 30 +++++++++++-------- src/MaaWpfGui/Main/AsstProxy.cs | 1 + .../ViewModels/UI/TaskQueueViewModel.cs | 1 + .../ViewModels/UI/VersionUpdateViewModel.cs | 1 + .../VersionUpdateSettingsUserControlModel.cs | 1 + 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/MaaWpfGui/Helper/DataHelper.cs b/src/MaaWpfGui/Helper/DataHelper.cs index 152c52568b..4bb6ff6d92 100644 --- a/src/MaaWpfGui/Helper/DataHelper.cs +++ b/src/MaaWpfGui/Helper/DataHelper.cs @@ -47,11 +47,17 @@ namespace MaaWpfGui.Helper // 储存角色信息的字典 public static Dictionary Characters { get; } = new(); - public static HashSet CharacterNames { get; } = new(); + public static HashSet CharacterNames { get; } = []; public static Dictionary RecruitTags { get; private set; } = []; static DataHelper() + { + ReloadBattleData(); + InitRecruitTag(); + } + + public static void ReloadBattleData() { const string FilePath = "resource/battle_data.json"; if (!File.Exists(FilePath)) @@ -75,8 +81,6 @@ namespace MaaWpfGui.Helper characterNamesLangAdd.Invoke(value); characterNamesClientAdd.Invoke(value); } - - InitRecruitTag(); } private static void InitRecruitTag() @@ -99,10 +103,18 @@ namespace MaaWpfGui.Helper var displayTags = ParseRecruit(Path.Combine("resource", displayPath, "recruitment.json")); RecruitTags = clientTags.Keys - .Select(key => new KeyValuePair(key, (displayTags.TryGetValue(key, out var displayTag) ? displayTag : string.Empty, clientTags.TryGetValue(key, out var clientTag) ? clientTag : string.Empty))) + .Select(key => new KeyValuePair( + key, + (displayTags.TryGetValue(key, out var displayTag) + ? displayTag + : string.Empty, + clientTags.TryGetValue(key, out var clientTag) + ? clientTag + : string.Empty))) .Where(i => !string.IsNullOrEmpty(i.Value.ClientName)) .Select(i => !string.IsNullOrEmpty(i.Value.DisplayName) ? i : new(i.Key, (i.Value.ClientName, i.Value.ClientName))) .ToDictionary(); + return; static Dictionary ParseRecruit(string path) { @@ -149,14 +161,8 @@ namespace MaaWpfGui.Helper public static CharacterInfo? GetCharacterByNameOrAlias(string characterName) { return Characters.Values.FirstOrDefault( - character => new[] - { - character.Name, - character.NameEn, - character.NameJp, - character.NameKr, - character.NameTw, - }.Any(name => name?.Equals(characterName, StringComparison.OrdinalIgnoreCase) ?? false)); + character => new[] { character.Name, character.NameEn, character.NameJp, character.NameKr, character.NameTw, } + .Any(name => name?.Equals(characterName, StringComparison.OrdinalIgnoreCase) ?? false)); } public static string? GetLocalizedCharacterName(string? characterName, string? language = null) diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index ec7b0013df..3c09f74ad1 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1576,6 +1576,7 @@ namespace MaaWpfGui.Main if (ret == VersionUpdateViewModel.CheckUpdateRetT.OnlyGameResourceUpdated) { Instances.AsstProxy.LoadResource(); + DataHelper.ReloadBattleData(); ToastNotification.ShowDirect(LocalizationHelper.GetString("GameResourceUpdated")); } }); diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 44f311a8c9..7f21746b58 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -477,6 +477,7 @@ namespace MaaWpfGui.ViewModels.UI if (await ResourceUpdater.CheckAndDownloadResourceUpdate() == VersionUpdateViewModel.CheckUpdateRetT.OnlyGameResourceUpdated) { Instances.AsstProxy.LoadResource(); + DataHelper.ReloadBattleData(); ToastNotification.ShowDirect(LocalizationHelper.GetString("GameResourceUpdated")); } diff --git a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs index 894478f17f..158c622c34 100644 --- a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs @@ -486,6 +486,7 @@ public class VersionUpdateViewModel : Screen if (ret2 == CheckUpdateRetT.OnlyGameResourceUpdated) { Instances.AsstProxy.LoadResource(); + DataHelper.ReloadBattleData(); ToastNotification.ShowDirect(LocalizationHelper.GetString("GameResourceUpdated")); } } diff --git a/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs index ae3bce8db7..c1c36b641b 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/Settings/VersionUpdateSettingsUserControlModel.cs @@ -429,6 +429,7 @@ public class VersionUpdateSettingsUserControlModel : PropertyChangedBase if (success) { Instances.AsstProxy.LoadResource(); + DataHelper.ReloadBattleData(); ToastNotification.ShowDirect(LocalizationHelper.GetString("GameResourceUpdated")); }