internal static void ToJson(this IPBEPokemon pkmn, JsonTextWriter w) { w.WriteStartObject(); w.WritePropertyName(nameof(IPBEPokemon.Species)); PBESpecies species = pkmn.Species; w.WriteValue(species.ToString()); if (PBEDataUtils.HasForms(species, true)) { w.WritePropertyName(nameof(IPBEPokemon.Form)); w.WriteValue(PBEDataUtils.GetNameOfForm(species, pkmn.Form)); } w.WritePropertyName(nameof(IPBEPokemon.Nickname)); w.WriteValue(pkmn.Nickname); w.WritePropertyName(nameof(IPBEPokemon.Level)); w.WriteValue(pkmn.Level); w.WritePropertyName(nameof(IPBEPokemon.EXP)); w.WriteValue(pkmn.EXP); w.WritePropertyName(nameof(IPBEPokemon.Friendship)); w.WriteValue(pkmn.Friendship); w.WritePropertyName(nameof(IPBEPokemon.Shiny)); w.WriteValue(pkmn.Shiny); w.WritePropertyName(nameof(IPBEPokemon.Pokerus)); w.WriteValue(pkmn.Pokerus); w.WritePropertyName(nameof(IPBEPokemon.Ability)); w.WriteValue(pkmn.Ability.ToString()); w.WritePropertyName(nameof(IPBEPokemon.Nature)); w.WriteValue(pkmn.Nature.ToString()); w.WritePropertyName(nameof(IPBEPokemon.CaughtBall)); w.WriteValue(pkmn.CaughtBall.ToString()); w.WritePropertyName(nameof(IPBEPokemon.Gender)); w.WriteValue(pkmn.Gender.ToString()); w.WritePropertyName(nameof(IPBEPokemon.Item)); w.WriteValue(pkmn.Item.ToString()); w.WritePropertyName(nameof(IPBEPokemon.EffortValues)); pkmn.EffortValues.ToJson(w); w.WritePropertyName(nameof(IPBEPokemon.IndividualValues)); pkmn.IndividualValues.ToJson(w); w.WritePropertyName(nameof(IPBEPokemon.Moveset)); pkmn.Moveset.ToJson(w); w.WriteEndObject(); }