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")); }