46 lines
930 B
Go
46 lines
930 B
Go
|
|
package main
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
|
||
|
|
"gopkg.in/yaml.v2"
|
||
|
|
)
|
||
|
|
|
||
|
|
type PokemonInspectOutput struct {
|
||
|
|
Name string
|
||
|
|
Height int
|
||
|
|
Weight int
|
||
|
|
Stats map[string]int
|
||
|
|
Types []string
|
||
|
|
}
|
||
|
|
|
||
|
|
func commandInspect(p *PokedexConfig, a *string) error {
|
||
|
|
found := false
|
||
|
|
for _, pokemon := range p.CaughtPokemon {
|
||
|
|
if pokemon.Name == *a {
|
||
|
|
found = true
|
||
|
|
stats := map[string]int{}
|
||
|
|
types := []string{}
|
||
|
|
for _, pokeStat := range pokemon.PokeStats {
|
||
|
|
stats[pokeStat.PokeStat.Name] = pokeStat.BaseStat
|
||
|
|
}
|
||
|
|
for _, pokeType := range pokemon.PokeTypes {
|
||
|
|
types = append(types, pokeType.PokeType.Name)
|
||
|
|
}
|
||
|
|
pokemonInspectOutput := PokemonInspectOutput{
|
||
|
|
Name: pokemon.Name,
|
||
|
|
Height: pokemon.Height,
|
||
|
|
Weight: pokemon.Weight,
|
||
|
|
Stats: stats,
|
||
|
|
Types: types,
|
||
|
|
}
|
||
|
|
data, _ := yaml.Marshal(pokemonInspectOutput)
|
||
|
|
fmt.Println(string(data))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if !found {
|
||
|
|
fmt.Println("you have not caught that pokemon")
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|