/// <summary> /// get a SwampLocation object using an ID /// </summary> /// <param name="ID">swamp location ID</param> /// <returns>requested swamp location</returns> public SwampLocation GetSwampLocationByID(int ID) { SwampLocation swamp = null; // // run through the space-time location list and grab the correct one // foreach (SwampLocation location in SwampLocations) { if (location.SwampLocationID == ID) { swamp = location; } } // // the specified ID was not found in the universe // throw and exception // if (swamp == null) { string feedbackMessage = $"The Swamp Location ID {ID} does not exist in the current Kingdom."; throw new ArgumentException(ID.ToString(), feedbackMessage); } return(swamp); }
/// <summary> /// get and validate the player's TARDIS destination /// </summary> /// <returns>space-time location</returns> public SwampLocation DisplayGetOgresNewDestination() { bool validResponse = false; int swampID; SwampLocation nextSwampLocation = new SwampLocation(); while (!validResponse) { // // display header // ConsoleUtil.HeaderText = "Swamp Destination"; ConsoleUtil.DisplayReset(); // // display a table of space-time locations // DisplaySwampDestinationsTable(); // // get and validate user's response for a space-time location // ConsoleUtil.DisplayPromptMessage("Choose your swamp location by using its ID: "); // // user's response is an integer // if (int.TryParse(Console.ReadLine(), out swampID)) { ConsoleUtil.DisplayMessage(""); try { nextSwampLocation = _gameKingdom.GetSwampLocationByID(swampID); ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage($"You have indicated {nextSwampLocation.Name} as your destination."); ConsoleUtil.DisplayMessage(""); if (nextSwampLocation.Accessable == true) { validResponse = true; ConsoleUtil.DisplayMessage("Your journey continues."); } else { ConsoleUtil.DisplayMessage("It appears this destination is not available to you at this time."); ConsoleUtil.DisplayMessage("Please make another choice."); } } // // user's response was not in the correct range // catch (ArgumentOutOfRangeException ex) { ConsoleUtil.DisplayMessage("It appears you entered an invalid location ID."); ConsoleUtil.DisplayMessage(ex.Message); ConsoleUtil.DisplayMessage("Please try again."); } } // // user's response was not an integer // else { ConsoleUtil.DisplayMessage("It appears you did not enter a number for the location ID."); ConsoleUtil.DisplayMessage("Please try again."); } DisplayContinuePrompt(); } return(nextSwampLocation); }