void LoadPokemonList() { GenerationClass gen = GenerationClass.Instance; Dex dex = Dex.Instance; PokemonClassManager pkcm = PokemonClassManager.Instance; pokemonList = new ObservableCollection <Pokemon>(); int pokeLimit; if (DexActive) { pokeLimit = gen.GenerationLimit[dex.Generation]; } else { pokeLimit = gen.GenerationLimit[gen.GenerationLimit.Length - 1]; } int last = 0; foreach (Pokemon p in pkcm.PokemonList) { if (p.Number != last && p.Number <= pokeLimit) { pokemonList.Add(p); last = p.Number; } } PokemonList = pokemonList; }
/// <summary> /// Metodo che crea la lista di Pokémon a partire da una lista di stringhe /// </summary> /// <param name="lines">Lista di stringhe contenente i Pokémon</param> public void GetPokemonList(List <string> lines) { pokemonList = new ObservableCollection <Pokemon>(); GenerationClass gen = GenerationClass.Instance; while (lines.Count > 0) { try { Pokemon p = new Pokemon(lines[0]); if (p.Number > gen.GenerationLimit[gen.ActualGeneration]) { break; } pokemonList.Add(p); } catch (ProgramException) { } lines.RemoveAt(0); } }
/// <summary> /// Ottieni le evoluzioni del Pokémon selezionato /// </summary> /// <param name="index">Numero del Pokémon</param> /// <returns>Lista di evoluzioni</returns> public List <Evolution> GetEvos(int index) { List <Evolution> evos = new List <Evolution>(); Evolution pre = new Evolution(); foreach (Evolution e in listaEvo) { if (e.Higher == index) { pre = e; break; } } if (pre.Lower != 0) // esiste una preevoluzione { foreach (Evolution e in listaEvo) { if (e.Higher == pre.Lower) // se index è il terzo stadio { evos.Add(e); break; } } evos.Add(pre); } bool hasPostEvo = false; foreach (Evolution e in listaEvo) { if (e.Lower == index) { evos.Add(e); hasPostEvo = true; } } if (hasPostEvo) { for (int i = 0; i < evos.Count; i++) { if (evos[i].Lower == index) { foreach (Evolution e in listaEvo) { if (e.Lower == evos[i].Higher) { evos.Add(e); } } } } } GenerationClass gen = GenerationClass.Instance; for (int i = evos.Count - 1; i >= 0; i--) {//Se è una evoluzione futura rimuovila if (evos[i].Lower > gen.GenerationLimit[gen.ActualGeneration] || evos[i].Higher > gen.GenerationLimit[gen.ActualGeneration]) { evos.RemoveAt(i); } } return(evos); }