using BetterGenshinImpact.Core.Config; using BetterGenshinImpact.Service; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.Json; namespace BetterGenshinImpact.GameTask.AutoFight.Config; public class DefaultAutoFightConfig { public static List CombatAvatars { get; set; } public static List CombatAvatarNames { get; set; } public static Dictionary CombatAvatarMap { get; set; } public static Dictionary CombatAvatarNameEnMap { get; set; } static DefaultAutoFightConfig() { var json = File.ReadAllText(Global.Absolute(@"GameTask\AutoFight\Assets\combat_avatar.json")); var config = Newtonsoft.Json.JsonConvert.DeserializeObject>(json); CombatAvatars = config ?? throw new Exception("combat_avatar.json deserialize failed"); CombatAvatarNames = config.Select(x => x.Name).ToList(); CombatAvatarMap = config.ToDictionary(x => x.Name); CombatAvatarNameEnMap = config.ToDictionary(x => x.NameEn); } public static string AvatarAliasToStandardName(string alias) { var avatar = CombatAvatars.Find(x => x.Alias.Contains(alias)) ?? throw new Exception($"角色名称校验失败:{alias}"); return avatar.Name; } }