private static void takeAction(Character character, int enemy) { int position = 0; int posMax = 2; bool turnTaken = false; while (!turnTaken) { Console.Clear(); Console.WriteLine(" Attacking: {0}", character.getName()); if (position == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" Attack"); Console.ForegroundColor = ConsoleColor.White; } else { Console.WriteLine(" Attack"); } if (position == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" Cast Spell"); Console.ForegroundColor = ConsoleColor.White; } else { Console.WriteLine(" Cast Spell"); } if (position == 2) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" Defend"); Console.ForegroundColor = ConsoleColor.White; } else { Console.WriteLine(" Defend"); } //Read Key Input ConsoleKeyInfo keypressed = Console.ReadKey(false); if ((int)keypressed.Key == (char)ConsoleKey.DownArrow && position < posMax) { position += 1; } else if ((int)keypressed.Key == (char)ConsoleKey.UpArrow && position > 0) { position -= 1; } else if ((int)keypressed.Key == (char)ConsoleKey.Enter) { if (position == 0) { character.Attack(bTeam.roster[enemy]); turnTaken = true; } else if (position == 1) { bool success = character.CastSpell(bTeam.roster[enemy]); if (success) { turnTaken = true; } else { turnTaken = false; } } else if (position == 2) { character.setDefenseFlag(true); turnTaken = true; } } } }