public static Pokemon Get(PokemonSaveData saveData) { var data = PokemonData.Get(saveData.id); var p = new Pokemon(data, saveData); p.Level = PokemonStatHelper.GetLevelForExperience(p._data.ExperienceType, p._saveData.experience); return(p); }
private void SetPokemon() { var entry = Controller.ActivePlayer.HallOfFame[_index]; var data = PokemonSaveData.GenerateNew(); data.dv = entry.dv; data.id = entry.id; data.nickname = entry.nickname; data.experience = entry.experience; _pokemon = Pokemon.Get(data); }
public static Pokemon Get(int id, int level) { // generate save data var saveData = PokemonSaveData.GenerateNew(); saveData.id = id; var p = Get(saveData); p.Experience = PokemonStatHelper.GetExperienceForLevel(p._data.ExperienceType, level); p.HP = p.MaxHP; // learn moves up to level var moves = p._data.moves .Where(m => !m.breeding && !m.tm && m.level <= level) .Select(m => m.ToPokemonMoveData()); var learned = p._saveData.moves.ToList(); var i = learned.Count; if (i == MAX_MOVES) { i = 0; } foreach (var learnMove in moves) { if (learned.All(m => m.name != learnMove.name)) { if (learned.Count < MAX_MOVES) { learned.Add(learnMove); } else { learned[i] = learnMove; } i++; if (i == MAX_MOVES) { i = 0; } } } p._saveData.moves = learned.ToArray(); return(p); }
private Pokemon(PokemonData data, PokemonSaveData saveData) { _data = data; _saveData = saveData; }