private bool PickSwitch(bool dead = false) { //Write a function to list switchable pokes //var alive = Trainer1.Party.Where(p => p.IsAlive == true).ToList(); //if (alive.Count > 1) // Displayer.DisplayPokesToSwitch(alive.ConvertAll(x => (Pokemon)x)); Displayer.DisplayPokesToSwitch(Trainer1.Party.ConvertAll(x => (Pokemon)x)); int selection = Input_Handler(); if (selection > Trainer1.Party.Count || Trainer1.Party[selection] == Trainer1CurrentPoke || !Trainer1.Party[selection].IsAlive) { return(false); } else { Trainer1CurrentPoke = Trainer1.Party[selection]; Trainer1.Switch(selection, Trainer1CurrentPoke); if (!dead) { Displayer.TrainerSwitchedPokemon(Trainer1.Name, Trainer1CurrentPoke.Name); } else { Displayer.RelayMessage($"Trainer threw out {Trainer1CurrentPoke.Name}"); } return(true); } }