public void SetSlotsData(int selectedPokemon) { int pokedexID = selectedPokemon - 4; for (int i = 0; i < pokemonSlots.Count; i++) { pokemonSlots[i].SetData(pokedex.GetPokemonById(pokedexID)); pokedexID++; } SetData(pokedex.GetPokemonById(selectedPokemon));//suponemos que este nunca es null (ya que de serlo no podriamos haber llamado a este metodo) }
private static async Task <Embed> QueryPokedex(int id) { var pokemon = await Pokedex.GetPokemonById(id); var form = await Pokedex.GetPokemonForm(id); string name = pokemon.Name.Capitalize(); double height = (double)pokemon.Height / 10; double weight = (double)pokemon.Weight / 10; IList <string> abilities = new List <string>(); foreach (var ability in pokemon.Abilities.OrderBy(a => a.Slot)) { string appendix = ability.Hidden ? " (Hidden)" : ""; abilities.Add($"#{ability.Slot}: {ability.Actual.Name.Capitalize()}{appendix}"); } IList <string> items = pokemon.Items.Select(item => item.Name).ToList(); IList <string> types = pokemon.Types.OrderBy(t => t.Slot) .Select(type => $"#{type.Slot}: {type.ToEmoji()} {type.Name}").ToList(); string joinAbilities = string.Join("\n", abilities); joinAbilities = string.IsNullOrWhiteSpace(joinAbilities) ? "/" : joinAbilities; string joinItems = string.Join("\n", items); joinItems = string.IsNullOrWhiteSpace(joinItems) ? "/" : joinItems; string joinTypes = string.Join("\n", types); joinTypes = string.IsNullOrWhiteSpace(joinTypes) ? "/" : joinTypes; var builder = new EmbedBuilder { Author = new EmbedAuthorBuilder { Name = "National Pokédex", IconUrl = Information.PokedexUrl }, Footer = new EmbedFooterBuilder { Text = "Powered by pokeapi.co", IconUrl = "http://pokeapi.co" }, Color = new Color(255, 64, 64), ThumbnailUrl = form.Sprites.Front }; builder.AddInlineField("Name", $"[{name}](https://bulbapedia.bulbagarden.net/wiki/{name})"); builder.AddInlineField("ID", $"#{pokemon.Id}"); builder.AddInlineField("Height", $"{height} m"); builder.AddInlineField("Weight", $"{weight} kg"); builder.AddInlineField("Base Exp.", pokemon.BaseExperience); builder.AddInlineField("Abilities", joinAbilities); builder.AddInlineField("Default", pokemon.Default ? "Yes" : "No"); builder.AddInlineField("Order", pokemon.Order); builder.AddInlineField("Held Items", joinItems); builder.AddInlineField("Type", joinTypes); return(builder.Build()); }