public class PokeGam
{
private Pokemon[] starterPokemonArray = new Pokemon[]
{
new Pokemon("Charmander", 5, "A fire lizard", new Move[]
{
new Move("Scratch", 5),
new Move("Ember", 10),
null,
null
}),
new Pokemon("Bulbasaur", 5, "A grass dinosaur", new Move[]
{
new Move("Tackle", 5),
new Move("Vine Whip", 10),
null,
null
}),
new Pokemon("Squirtle", 5, "A water turtle", new Move[]
{
new Move("Tackle", 5),
new Move("Water Gun", 10),
null,
null
})
};
public void Start()
{
Console.WriteLine("Welcome to PokeGaam!");
Console.WriteLine("");
while(true)
{
Pokemon inspectedPokemon = InspectPokemon();
Console.WriteLine("");
Console.WriteLine("Press 'Y' to select this starter pokemon or press any other key to go back.");
ConsoleKeyInfo input = Console.ReadKey();
if(input.Key == ConsoleKey.Y)
{
Console.Clear();
Console.WriteLine($"You have selected {inspectedPokemon.Name} your starter pokemon!");
break;
}
Console.Clear();
}
}
private Pokemon InspectPokemon()
{
Console.WriteLine("Choose your pokemon!");
Pokemon chosenPokemon;
while (true)
{
chosenPokemon = RequestPokemon();
if (chosenPokemon != null)
{
PrintPokemonDetails(chosenPokemon);
break;
}
else
{
Console.Clear();
Console.WriteLine("That's not an option you dimwit. Try again.");
Console.WriteLine("");
Thread.Sleep(1000);
}
}
return chosenPokemon;
}
private Pokemon RequestPokemon()
{
Console.WriteLine("Enter a number to inspect the pokemon");
for(int i = 0; i < starterPokemonArray.Length; i++)
{
Console.WriteLine($"{i + 1}. {starterPokemonArray[i].Name}");
}
ConsoleKeyInfo input = Console.ReadKey();
try
{
int choiceInt = int.Parse(input.KeyChar.ToString());
if(choiceInt > starterPokemonArray.Length || choiceInt == 0)
{
return null;
}
return starterPokemonArray[choiceInt - 1];
}
catch (FormatException)
{
return null;
}
}
private void PrintPokemonDetails(Pokemon pokemon)
{
Console.Clear();
Console.WriteLine($"Name: {pokemon.Name}");
Console.WriteLine($"Level: {pokemon.Level}");
Console.WriteLine($"Description: {pokemon.Description}");
Console.WriteLine($"");
Console.WriteLine($"This pokemon has the following moves:");
foreach(Move move in pokemon.MoveArray)
{
if(move != null)
{
Console.WriteLine($"Move: {move.Name}");
}
}
}
}