/// <summary> /// Returns a Pokemon species entry for the given Pokemon species. /// </summary> protected override async Task <PokemonSpeciesEntry> ConvertToEntry(PokemonSpecies species) { var primaryVariety = await PokemonService.Upsert(species.Varieties[0].Pokemon); var displayNames = species.Names.Localise(); var genera = species.Genera.Localise(); var flavourTextEntries = await GetFlavourTextEntries(species); var varieties = await GetVarieties(species); var generation = await GetGeneration(species); var evolutionChain = await GetEvolutionChain(species); var validity = await GetValidity(species); return(new PokemonSpeciesEntry { Key = species.Id, Name = species.Name, SpriteUrl = primaryVariety.SpriteUrl, ShinySpriteUrl = primaryVariety.ShinySpriteUrl, DisplayNames = displayNames.ToList(), Genera = genera.ToList(), FlavourTextEntries = flavourTextEntries.ToList(), Types = primaryVariety.Types.ToList(), BaseStats = primaryVariety.BaseStats.ToList(), Varieties = varieties.ToList(), Generation = generation, EvolutionChain = evolutionChain, Validity = validity.ToList(), CatchRate = species.CaptureRate }); }
/// <summary> /// Returns the efficacy of the Pokemon with the given ID in the version group with the /// given ID. /// </summary> public async Task <EfficacySet> GetTypeEfficacyByPokemonId(int pokemonId, int versionGroupId) { var pokemon = await PokemonService.Upsert(pokemonId); return(await TypesService.GetTypesEfficacySet(pokemon.Types.Select(t => t.Id), versionGroupId)); }