private PokemonSprite GeneratePokemon(User u, int level) { var list = PokemonMain.Instance.pokemonClasses.Where(x => x.evolveLevel != -1).ToList(); var speciesIndex = rng.Next(0, list.Count() - 1); var species = list[speciesIndex]; PokemonSprite sprite = new PokemonSprite { SpeciesId = species.number, HP = species.baseStats["hp"], Level = 1, NickName = species.name, OwnerId = (long)u.Id, XP = 0, Attack = species.baseStats["attack"], Defense = species.baseStats["defense"], SpecialAttack = species.baseStats["special-attack"], SpecialDefense = species.baseStats["special-defense"], Speed = species.baseStats["speed"], MaxHP = species.baseStats["hp"] }; while (sprite.Level < level - 1) { sprite.LevelUp(); } sprite.XP = sprite.XPRequired(); sprite.LevelUp(); return(sprite); }
public static int Reward(this PokemonSprite pkm, PokemonSprite defeated) { var reward = CalcXPReward(pkm, defeated); pkm.XP += reward; if (pkm.XP > pkm.XPRequired()) { pkm.LevelUp(); } return(reward); }