/// <summary> /// SCREEN: update monster /// </summary> /// <param name="monsters">list of monsters</param> /// static void DisplayUpdateMonster(List <Monster> monsters) { //--TODO Validate Test //-- bool validResponse = false; Monster selectedMonster = null; do { DisplayScreenHeader("Update Monster"); // // display all monster names // Console.WriteLine("\tMonster Names"); Console.WriteLine("\t-------------"); foreach (Monster monster in monsters) { Console.WriteLine("\t" + monster.Name); } // get user monster choice Console.WriteLine(); Console.Write("\tEnter name:"); string monsterName = Console.ReadLine(); // get monster object foreach (Monster monster in monsters) { if (monster.Name == monsterName) { selectedMonster = monster; validResponse = true; break; } } // feedback for wrong name choice if (!validResponse) { Console.WriteLine("\tPlease select a correct name."); DisplayContinuePrompt(); } // update monster } while (!validResponse); // update monster properties string userResponse; Console.WriteLine(); Console.WriteLine("\tReady to update. Press the Enter to keep the current info."); Console.WriteLine(); Console.Write($"\tCurrent Name: {selectedMonster.Name} New Name: "); userResponse = Console.ReadLine(); if (userResponse != "") { selectedMonster.Name = userResponse; } Console.Write($"\tCurrent Age: {selectedMonster.Age} New Age: "); userResponse = Console.ReadLine(); if (userResponse != "") { int.TryParse(userResponse, out int age); selectedMonster.Age = age; } Console.Write($"\tCurrent Attitude: {selectedMonster.Attitude} New Attitude: "); userResponse = Console.ReadLine(); if (userResponse != "") { Enum.TryParse(userResponse, out Monster.EmotionalState attitude); selectedMonster.Attitude = attitude; } //--todo add Tribe and Active //-- Done Console.Write($"\tCurrent Tribe: {selectedMonster.Tribe} New Tribe: "); userResponse = Console.ReadLine(); if (userResponse != "") { Enum.TryParse(userResponse, out Monster.TribeName tribe); selectedMonster.Tribe = tribe; } Console.Write($"\tCurrently Active: {selectedMonster.Active} Are you Active[true or false]: "); userResponse = Console.ReadLine(); if (userResponse != "") { bool.TryParse(userResponse, out bool active); selectedMonster.Active = active; } // echo updated monster properties Console.WriteLine(); Console.WriteLine("\tNew Monster's Properties"); Console.WriteLine("\t-------------"); MonsterInfo(selectedMonster); Console.WriteLine(); Console.WriteLine("\t-------------"); DisplayContinuePrompt(); }