using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Nodes; namespace PkmnLib.Dataloader.Models; public class SerializedSpecies { public string Species { get; set; } public ushort Id { get; set; } public float GenderRatio { get; set; } public string GrowthRate { get; set; } public byte BaseHappiness { get; set; } public byte CatchRate { get; set; } public string Color { get; set; } public bool GenderDifference { get; set; } public string[] EggGroups { get; set; } public int EggCycles { get; set; } public string[] Flags { get; set; } = []; public Dictionary Formes { get; set; } public SerializedEvolution[] Evolutions { get; set; } = []; } public class SerializedForm { public string[] Abilities { get; set; } public string[] HiddenAbilities { get; set; } = []; public SerializedStats BaseStats { get; set; } public SerializedStats EVReward { get; set; } public string[] Types { get; set; } public float Height { get; set; } public float Weight { get; set; } public uint BaseExp { get; set; } public bool IsMega { get; set; } public SerializedMoves Moves { get; set; } public string[] Flags { get; set; } = []; } public class SerializedEvolution { public string Species { get; set; } public string Method { get; set; } public JsonNode Data { get; set; } } public class SerializedStats { public ushort Hp { get; set; } public ushort Attack { get; set; } public ushort Defense { get; set; } public ushort SpecialAttack { get; set; } public ushort SpecialDefense { get; set; } public ushort Speed { get; set; } } public class SerializedLevelMove { public string Name { get; set; } public uint Level { get; set; } } public class SerializedMoves { public SerializedLevelMove[] LevelMoves { get; set; } public string[] EggMoves { get; set; } public string[] TutorMoves { get; set; } public string[] Machine { get; set; } }