using System.Text.Json.Serialization; using RPG.GameCore.Enums; using RPG.GameCore.Excel.Attributes; using RPG.GameCore.Types; namespace RPG.GameCore.Excel; [ExcelTable("AvatarExcelTable.json", ExcelType.Avatar)] public class AvatarRow : ExcelRow { public override uint Id => AvatarID; public uint AvatarID { get; set; } // 0x10 public TextID AvatarName { get; set; } // 0x14 public TextID AvatarFullName { get; set; } // 0x18 public uint AdventurePlayerID { get; set; } // 0x1C public string? AvatarVOTag { get; set; } // 0x20 [JsonConverter(typeof(JsonStringEnumConverter))] public CombatPowerAvatarRarityType Rarity { get; set; } // 0x28 public string? JsonPath { get; set; } // 0x30 public uint NatureID { get; set; } // 0x38 [JsonConverter(typeof(JsonStringEnumConverter))] public AttackDamageType DamageType { get; set; } // 0x3C public FixPoint SPNeed { get; set; } // 0x40 public uint ExpGroup { get; set; } // 0x48 public uint MaxPromotion { get; set; } // 0x4C public uint MaxRank { get; set; } // 0x50 public uint[] RankIDList { get; set; } = []; // 0x58 public ItemConfig[] RewardList { get; set; } = []; // 0x60 public ItemConfig[] RewardListMax { get; set; } = []; // 0x68 public uint[] SkillList { get; set; } = []; // 0x70 [JsonConverter(typeof(JsonStringEnumConverter))] public AvatarBaseType AvatarBaseType { get; set; } // 0x78 public string? DefaultAvatarModelPath { get; set; } // 0x80 public string? DefaultAvatarHeadIconPath { get; set; } // 0x88 public string? AvatarSideIconPath { get; set; } // 0x90 public string? ActionAvatarHeadIconPath { get; set; } // 0x98 public string? AvatarBaseTypeIconPath { get; set; } // 0xA0 public string? AvatarDialogHalfImagePath { get; set; } // 0xA8 public string? UltraSkillCutInPrefabPath { get; set; } // 0xB0 public string? UIAvatarModelPath { get; set; } // 0xB8 public string? ManikinJsonPath { get; set; } // 0xC0 public TextID AvatarDesc { get; set; } // 0xC8 public string? AIPath { get; set; } // 0xD0 public string? SkilltreePrefabPath { get; set; } // 0xD8 public bool Release { get; set; } // 0xE8 public string? SideAvatarHeadIconPath { get; set; } // 0xF0 public string? WaitingAvatarHeadIconPath { get; set; } // 0xF8 public string? AvatarCutinImgPath { get; set; } // 0x100 public string? AvatarCutinBgImgPath { get; set; } // 0x108 public string? AvatarCutinFrontImgPath { get; set; } // 0x110 public TextID AvatarCutinIntroText { get; set; } // 0x118 public float[] GachaResultOffset { get; set; } = []; // 0x120 public float[] AvatarDropOffset { get; set; } = []; // 0x128 public float[] AvatarTrialOffset { get; set; } = []; // 0x130 }