diff --git a/cis237assignment3/DroidCollection.cs b/cis237assignment3/DroidCollection.cs index 2a738d623e13f54a01192bddb869b2c03695813e..39dcab790dc38b701f48f79f4120c8259d81feb4 100644 --- a/cis237assignment3/DroidCollection.cs +++ b/cis237assignment3/DroidCollection.cs @@ -8,24 +8,11 @@ using System.Threading.Tasks; namespace cis237assignment3 { - static class DroidCollection + class DroidCollection { #region Variables - // Variables for getting/saving user input. - private string userInput; - - private string selectedMaterialString; - protected string selectedModelString; - private string selectedColorString; - private int selectedLanguageInt; - private bool ToolBoxBool; - private bool computerConnectionBool; - private bool armBool; - private bool trashCompactorBool; - private bool vacuumBool; - private bool fireExtinguisherBool; - private int selectedNumberOfShipsInt; + #endregion @@ -42,10 +29,11 @@ namespace cis237assignment3 } - public DroidCollection(int userSelection) + public DroidCollection(IDroid aDroid) { } + #endregion @@ -61,192 +49,7 @@ namespace cis237assignment3 #region Private Methods - private void TypeSelection() - { - UserInterface.DisplayTypeSelectionMenu(); - userInput = UserInterface.GetUserInput(); - - switch (userInput) - { - case "1": - PurchaseProtocol(); - break; - case "2": - PurchaseUtility(); - break; - case "3": - PurchaseJanitor(); - break; - case "4": - PurchaseAstromech(); - break; - case "esc": - break; - default: - break; - } - } - - private void PurchaseGeneric() - { - ModelSelection(); - MaterialSelection(); - ColorSelection(); - - } - - private void PurchaseProtocol() - { - PurchaseGeneric(); - LanguageSelection(); - - } - - private void PurchaseUtility() - { - PurchaseGeneric(); - ToolBoxSelection(); - CompConnectionSelection(); - ArmSelection(); - } - - private void PurchaseJanitor() - { - PurchaseUtility(); - - } - - private void PurchaseAstromech() - { - PurchaseUtility(); - - } - - #region Individual Feature Selections - - private void ModelSelection() - { - UserInterface.DisplayModelSelectionMenu(Droid_Generic.MODEL_1_STRING, Droid_Generic.MODEL_2_STRING); - userInput = UserInterface.GetUserInput(); - - switch (userInput) - { - case "1": - selectedModelString = Droid_Generic.MODEL_1_STRING; - break; - case "2": - selectedModelString = Droid_Generic.MODEL_2_STRING; - break; - case "3": - break; - case "4": - break; - case "esc": - break; - default: - break; - } - } - - private void MaterialSelection() - { - UserInterface.DisplayMaterialSelectionMenu(Droid_Generic.MATERIAL_1_STRING, Droid_Generic.MATERIAL_2_STRING, Droid_Generic.MATERIAL_3_STRING, Droid_Generic.MATERIAL_4_STRING, Droid_Generic.MATERIAL_5_STRING); - userInput = UserInterface.GetUserInput(); - - switch (userInput) - { - case "1": - selectedMaterialString = Droid_Generic.MATERIAL_1_STRING; - break; - case "2": - selectedMaterialString = Droid_Generic.MATERIAL_2_STRING; - break; - case "3": - selectedMaterialString = Droid_Generic.MATERIAL_3_STRING; - break; - case "4": - selectedMaterialString = Droid_Generic.MATERIAL_4_STRING; - break; - case "5": - selectedMaterialString = Droid_Generic.MATERIAL_5_STRING; - break; - case "esc": - break; - default: - break; - } - } - - private void ColorSelection() - { - UserInterface.DisplayColorSelectionMenu(Droid_Generic.COLOR_1_STRING, Droid_Generic.COLOR_2_STRING, Droid_Generic.COLOR_3_STRING, Droid_Generic.COLOR_4_STRING, Droid_Generic.COLOR_5_STRING); - userInput = UserInterface.GetUserInput(); - - switch (userInput) - { - case "1": - selectedColorString = Droid_Generic.COLOR_1_STRING; - break; - case "2": - selectedColorString = Droid_Generic.COLOR_2_STRING; - break; - case "3": - selectedColorString = Droid_Generic.COLOR_3_STRING; - break; - case "4": - selectedColorString = Droid_Generic.COLOR_4_STRING; - break; - case "5": - selectedColorString = Droid_Generic.COLOR_5_STRING; - break; - case "esc": - break; - default: - break; - } - } - - private void LanguageSelection() - { - - } - - private void ToolBoxSelection() - { - - } - - private void CompConnectionSelection() - { - - } - - private void ArmSelection() - { - - } - - private void TrashCompactorSelection() - { - - } - - private void VacuumSelection() - { - - } - - private void FireExtinguisherSelection() - { - - } - - private void NumberOfShipsSelection() - { - - } - - #endregion + #endregion diff --git a/cis237assignment3/Droid_Generic.cs b/cis237assignment3/Droid_Generic.cs index 246091cc4b2182fd225abdde7d39d4d3292d98f8..c971ed02b27f5a8a7f839891283d6399fdfc593a 100644 --- a/cis237assignment3/Droid_Generic.cs +++ b/cis237assignment3/Droid_Generic.cs @@ -18,11 +18,11 @@ namespace cis237assignment3 // All the necessary variables for material selection. private string selectedMaterialString; private decimal selectedMaterialDecimal; - public static const string MATERIAL_1_STRING = "Tin"; - public static const string MATERIAL_2_STRING = "Steel"; - public static const string MATERIAL_3_STRING = "Titanium"; - public static const string MATERIAL_4_STRING = "Mythril"; - public static const string MATERIAL_5_STRING = "Unobtanium"; + public static string MATERIAL_1_STRING = "Tin"; + public static string MATERIAL_2_STRING = "Steel"; + public static string MATERIAL_3_STRING = "Titanium"; + public static string MATERIAL_4_STRING = "Mythril"; + public static string MATERIAL_5_STRING = "Unobtanium"; private decimal material1Decimal; private decimal material2Decimal; private decimal material3Decimal; @@ -32,19 +32,19 @@ namespace cis237assignment3 // All the necessary variables for model selection. protected string selectedModelString; protected decimal selectedModelDecimal; - public static const string MODEL_1_STRING = "TI-84"; - public static const string MODEL_2_STRING = "TI-84"; + public static string MODEL_1_STRING = "TI-84"; + public static string MODEL_2_STRING = "TI-84"; private decimal model1Decimal; private decimal model2Decimal; // All the necessary variables for color selection. private string selectedColorString; private decimal selectedColorDecimal; - public static const string COLOR_1_STRING = "White"; - public static const string COLOR_2_STRING = "Black"; - public static const string COLOR_3_STRING = "Blue"; - public static const string COLOR_4_STRING = "Red"; - public static const string COLOR_5_STRING = "Green"; + public static string COLOR_1_STRING = "White"; + public static string COLOR_2_STRING = "Black"; + public static string COLOR_3_STRING = "Blue"; + public static string COLOR_4_STRING = "Red"; + public static string COLOR_5_STRING = "Green"; private decimal color1Decimal; private decimal color2Decimal; private decimal color3Decimal; @@ -97,7 +97,7 @@ namespace cis237assignment3 #region Private Methods - + /* EXTRA FUNCTIONALITY. WORK ON LAST. /// <summary> /// Sets a clearance int for the program. This is the permanent discount for all items on clearance. /// </summary> @@ -257,6 +257,8 @@ namespace cis237assignment3 color5Decimal = baseColorCost + AddCents(); } } + * + * */ #endregion @@ -282,7 +284,12 @@ namespace cis237assignment3 public override void CalculateTotalCost() { - throw new NotImplementedException(); + totalCostDecimal = selectedModelDecimal + selectedMaterialDecimal + selectedColorDecimal; + } + + public override string DisplayShortToString() + { + return "aaa"; } #endregion diff --git a/cis237assignment3/Droid_Protocol.cs b/cis237assignment3/Droid_Protocol.cs index 7a70b6bf88a752807fa61c0f426b509bed2d1322..4e5d5872f649f88cea7af6b61ee35571f34488e8 100644 --- a/cis237assignment3/Droid_Protocol.cs +++ b/cis237assignment3/Droid_Protocol.cs @@ -12,7 +12,7 @@ namespace cis237assignment3 /// Class for Droids of type Protocol. /// Inherits only from Droid. /// </summary> - class Droid_Protocol : Droid + class Droid_Protocol : Droid_Generic { #region Variables @@ -20,6 +20,12 @@ namespace cis237assignment3 protected const decimal COST_PER_LANGUAGE = 1; // Temp cost placeholder. protected decimal totalLanguageDecimal; + // Language selection constants + public const int LANGUAGE_SELECTION_1 = 1; + public const int LANGUAGE_SELECTION_2 = 3; + public const int LANGUAGE_SELECTION_3 = 7; + public const int LANGUAGE_SELECTION_4 = 15; + #endregion @@ -87,7 +93,7 @@ namespace cis237assignment3 public override void CalculateTotalCost() { - throw new NotImplementedException(); + base.CalculateTotalCost(); //+ totalLanguageDecimal; } /// <summary> diff --git a/cis237assignment3/Droid_Utility.cs b/cis237assignment3/Droid_Utility.cs index c8cb9625502e4d6d835266d3d38356ccd0e1b006..9ad038bbc67f74b62015822c1f217d1f3b798db1 100644 --- a/cis237assignment3/Droid_Utility.cs +++ b/cis237assignment3/Droid_Utility.cs @@ -12,7 +12,7 @@ namespace cis237assignment3 /// Class for Droids of type Utility. /// Inherits only from Droid. /// </summary> - class Droid_Utility : Droid + class Droid_Utility : Droid_Generic { #region Variables @@ -110,7 +110,7 @@ namespace cis237assignment3 public override void CalculateTotalCost() { - throw new NotImplementedException(); + base.CalculateTotalCost(); } /// <summary> diff --git a/cis237assignment3/RunProgram.cs b/cis237assignment3/RunProgram.cs index 0f83ecd918247ea5d410359aa91875cf2e185839..c5dbdcf6dfe8b4b1103d19a4967ff38ff06036de 100644 --- a/cis237assignment3/RunProgram.cs +++ b/cis237assignment3/RunProgram.cs @@ -16,17 +16,36 @@ namespace cis237assignment3 #region Variables private bool runProgram; - private string inputString; + private bool menusBool; // Used to exit back to main menu if user decides to. True to stay in menus. False if user typed to exit. + // Variables for getting/saving user input. + private string userInputString; + + private string selectedMaterialString; + private string selectedModelString; + private string selectedColorString; + private int selectedLanguageInt; + private bool toolBoxBool; + private bool computerConnectionBool; + private bool armBool; + private bool trashCompactorBool; + private bool vacuumBool; + private bool fireExtinguisherBool; + private int selectedNumberOfShipsInt; + #endregion #region Constructor + /// <summary> + /// Base constructor. + /// </summary> public RunProgram() { runProgram = true; + Run(); } #endregion @@ -50,15 +69,18 @@ namespace cis237assignment3 { while (runProgram) { - UserInterface.DisplayMainMenu(); - inputString = UserInterface.GetUserInput(); + // Resets/initializes menu bool to allow user to stay in menus. + menusBool = true; + + UserInterface.Menus.DisplayMainMenu(); + userInputString = UserInterface.GetUserInput(); MainMenuSelection(); } } private void MainMenuSelection() { - switch (inputString) + switch (userInputString) { case "1": PurchaseDroid(); @@ -82,7 +104,7 @@ namespace cis237assignment3 private void PurchaseDroid() { - + DroidTypeSelection(); } private void DisplayReciept() @@ -100,6 +122,434 @@ namespace cis237assignment3 runProgram = false; } + private void DroidTypeSelection() + { + UserInterface.Menus.DisplayTypeSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + PurchaseProtocol(); + break; + case "2": + PurchaseUtility(); + break; + case "3": + PurchaseJanitor(); + break; + case "4": + PurchaseAstromech(); + break; + case "esc": + break; + default: + break; + } + } + + /// <summary> + /// Methods to run if purchasing any kind of droid at all (generic). + /// </summary> + private void PurchaseGeneric() + { + if (menusBool) + { + ModelSelection(); + } + if (menusBool) + { + MaterialSelection(); + } + if (menusBool) + { + ColorSelection(); + } + + } + + /// <summary> + /// Methods to run if purchasing a droid of type Protocol. + /// </summary> + private void PurchaseProtocol() + { + if (menusBool) + { + PurchaseGeneric(); + } + if (menusBool) + { + LanguageSelection(); + } + if (menusBool) + { + IDroid aDroid = new Droid_Protocol(selectedMaterialString, selectedModelString, selectedColorString, selectedLanguageInt); + } + } + + /// <summary> + /// Methods to run if purchasing a droid of type Utility. + /// </summary> + private void PurchaseUtility() + { + if (menusBool) + { + PurchaseGeneric(); + } + if (menusBool) + { + ToolBoxSelection(); + } + if (menusBool) + { + CompConnectionSelection(); + } + if (menusBool) + { + ArmSelection(); + } + if (menusBool) + { + IDroid aDroid = new Droid_Utility(selectedMaterialString, selectedModelString, selectedColorString, toolBoxBool, computerConnectionBool, armBool); + } + } + + /// <summary> + /// Methods to run if purchasing a droid of type Janitor. + /// </summary> + private void PurchaseJanitor() + { + if (menusBool) + { + PurchaseUtility(); + } + if (menusBool) + { + TrashCompactorSelection(); + } + if (menusBool) + { + VacuumSelection(); + } + if (menusBool) + { + IDroid aDroid = new Droid_Janitor(selectedMaterialString, selectedModelString, selectedColorString, toolBoxBool, computerConnectionBool, armBool, trashCompactorBool, vacuumBool); + } + } + + /// <summary> + /// Methods to run if purchasing a droid of type Astromech. + /// </summary> + private void PurchaseAstromech() + { + if (menusBool) + { + PurchaseUtility(); + } + if (menusBool) + { + FireExtinguisherSelection(); + } + if (menusBool) + { + NumberOfShipsSelection(); + } + if (menusBool) + { + IDroid aDroid = new Droid_Astromech(selectedMaterialString, selectedModelString, selectedColorString, toolBoxBool, computerConnectionBool, armBool, fireExtinguisherBool, selectedNumberOfShipsInt); + } + } + + #region Individual Feature Selections + + /// <summary> + /// Handles user selection of droid Model. + /// </summary> + private void ModelSelection() + { + UserInterface.Menus.DisplayModelSelectionMenu(Droid_Generic.MODEL_1_STRING, Droid_Generic.MODEL_2_STRING); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + selectedModelString = Droid_Generic.MODEL_1_STRING; + break; + case "2": + selectedModelString = Droid_Generic.MODEL_2_STRING; + break; + case "3": + break; + case "4": + break; + case "esc": + menusBool = false; + break; + default: + break; + } + } + + /// <summary> + /// Handles user selection of droid Material. + /// </summary> + private void MaterialSelection() + { + UserInterface.Menus.DisplayMaterialSelectionMenu(Droid_Generic.MATERIAL_1_STRING, Droid_Generic.MATERIAL_2_STRING, Droid_Generic.MATERIAL_3_STRING, Droid_Generic.MATERIAL_4_STRING, Droid_Generic.MATERIAL_5_STRING); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + selectedMaterialString = Droid_Generic.MATERIAL_1_STRING; + break; + case "2": + selectedMaterialString = Droid_Generic.MATERIAL_2_STRING; + break; + case "3": + selectedMaterialString = Droid_Generic.MATERIAL_3_STRING; + break; + case "4": + selectedMaterialString = Droid_Generic.MATERIAL_4_STRING; + break; + case "5": + selectedMaterialString = Droid_Generic.MATERIAL_5_STRING; + break; + case "esc": + menusBool = false; + break; + default: + break; + } + } + + /// <summary> + /// Handles user selection of droid Color. + /// </summary> + private void ColorSelection() + { + UserInterface.Menus.DisplayColorSelectionMenu(Droid_Generic.COLOR_1_STRING, Droid_Generic.COLOR_2_STRING, Droid_Generic.COLOR_3_STRING, Droid_Generic.COLOR_4_STRING, Droid_Generic.COLOR_5_STRING); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + selectedColorString = Droid_Generic.COLOR_1_STRING; + break; + case "2": + selectedColorString = Droid_Generic.COLOR_2_STRING; + break; + case "3": + selectedColorString = Droid_Generic.COLOR_3_STRING; + break; + case "4": + selectedColorString = Droid_Generic.COLOR_4_STRING; + break; + case "5": + selectedColorString = Droid_Generic.COLOR_5_STRING; + break; + case "esc": + menusBool = false; + break; + default: + break; + } + } + + /// <summary> + /// Handles user selection of droid Language. + /// </summary> + private void LanguageSelection() + { + UserInterface.Menus.DisplayLanguageSelectionMenu(Droid_Protocol.LANGUAGE_SELECTION_1, Droid_Protocol.LANGUAGE_SELECTION_2, Droid_Protocol.LANGUAGE_SELECTION_3, Droid_Protocol.LANGUAGE_SELECTION_4); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + selectedLanguageInt = Droid_Protocol.LANGUAGE_SELECTION_1; + break; + case "2": + selectedLanguageInt = Droid_Protocol.LANGUAGE_SELECTION_2; + break; + case "3": + selectedLanguageInt = Droid_Protocol.LANGUAGE_SELECTION_3; + break; + case "4": + selectedLanguageInt = Droid_Protocol.LANGUAGE_SELECTION_4; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Tool Box. + /// </summary> + private void ToolBoxSelection() + { + UserInterface.Menus.DisplayToolBoxSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + toolBoxBool = true; + break; + case "2": + toolBoxBool = false; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Computer Connection. + /// </summary> + private void CompConnectionSelection() + { + UserInterface.Menus.DisplayComputerConnectionSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + computerConnectionBool = true; + break; + case "2": + computerConnectionBool = false; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Arm. + /// </summary> + private void ArmSelection() + { + UserInterface.Menus.DisplayArmSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + armBool = true; + break; + case "2": + armBool = false; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Trash Compactor. + /// </summary> + private void TrashCompactorSelection() + { + UserInterface.Menus.DisplayTrashCompactorSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + trashCompactorBool = true; + break; + case "2": + trashCompactorBool = false; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Vacuum. + /// </summary> + private void VacuumSelection() + { + UserInterface.Menus.DisplayVacuumSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + vacuumBool = true; + break; + case "2": + vacuumBool = false; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Fire Extinguisher. + /// </summary> + private void FireExtinguisherSelection() + { + UserInterface.Menus.DisplayFireExtinguisherSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + switch (userInputString) + { + case "1": + fireExtinguisherBool = true; + break; + case "2": + fireExtinguisherBool = false; + break; + case "esc": + menusBool = false; + break; + } + } + + /// <summary> + /// Handles user selection of droid Ship-outfitting number. + /// </summary> + private void NumberOfShipsSelection() + { + while (menusBool) + { + UserInterface.Menus.DisplayNumberOfShipsSelectionMenu(); + userInputString = UserInterface.GetUserInput(); + + // If user does not want to back out of menu. + if (userInputString != "esc") + { + // Attempt to convert user input to int. + try + { + selectedNumberOfShipsInt = Convert.ToInt32(userInputString); + } + catch + { + UserInterface.DisplayError("Not a valid number."); + NumberOfShipsSelection(); + } + } + else + { + menusBool = false; + } + } + } + + #endregion + + #endregion } diff --git a/cis237assignment3/UserInterface.cs b/cis237assignment3/UserInterface.cs index 9fe2a17b1ddd5a14513db1f5a1ee4147211c47d3..1127bb1a0383191dd5909ba15d3bc5829b45134b 100644 --- a/cis237assignment3/UserInterface.cs +++ b/cis237assignment3/UserInterface.cs @@ -11,12 +11,18 @@ namespace cis237assignment3 /// <summary> /// Handles all display to user and reading of user input. /// Having one class handle everything UI helps create consistency. + /// + /// Note: Having the interface methods accept parameters instead of directly calling static variables prevents the + /// interface from having to directly access multiple classes itself. Only RunProgram will access multiple classes + /// due to it being the "binding" between all the classes. + /// + /// Instead, Interface just tells RunProgram what it needs to work and never deals directly with other classes. /// </summary> static class UserInterface { #region Variables - + private static string userInputString; #endregion @@ -40,7 +46,35 @@ namespace cis237assignment3 #region Private Methods + /// <summary> + /// Sets cursor position for menus. + /// </summary> + private static void SetMenuCursor() + { + Console.SetCursorPosition(0, 1); + } + private static void ResetMenuDisplay() + { + // Section to remove everything currently displayed. + SetMenuCursor(); + Console.WriteLine( + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine + + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine + + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine + + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine + + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine + + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine + + "".PadRight(Console.WindowWidth - 1) + Environment.NewLine); + + // Section to add back "esc to go back" display section. + // Recreated each time incase a menu string at some point is too long and writes over it. + SetMenuCursor(); + Console.WriteLine("Type 'esc' at any point to exit out. ".PadLeft(Console.WindowWidth - 1)); + + // Sets cursor for new menu to actually display. + SetMenuCursor(); + } #endregion @@ -54,7 +88,15 @@ namespace cis237assignment3 /// <returns>String of user's input.</returns> public static string GetUserInput() { - return Console.ReadLine().Trim().ToLower(); + Console.SetCursorPosition(1, 9); + + userInputString = Console.ReadLine().Trim().ToLower(); + + // Removing of user input after recieving it. + Console.SetCursorPosition(0, 9); + Console.WriteLine("".PadRight(Console.WindowWidth - 1)); + + return userInputString; } @@ -63,6 +105,21 @@ namespace cis237assignment3 Console.WriteLine(displayString); } + + public static void DisplayError(string displayString) + { + Console.SetCursorPosition(1, 8); + + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine(displayString.PadRight(Console.WindowWidth - 1)); + Console.ForegroundColor = ConsoleColor.Gray; + } + + public static void ClearDisplayLine() + { + + } + /// <summary> /// Struct to hold overbloated list of menus. /// </summary> @@ -73,6 +130,8 @@ namespace cis237assignment3 /// </summary> public static void DisplayMainMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Select an option: " + Environment.NewLine + "" + Environment.NewLine + @@ -82,8 +141,13 @@ namespace cis237assignment3 " 4) Exit"); } + /// <summary> + /// Displays droid Type selection to user. + /// </summary> public static void DisplayTypeSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Select a Droid Type: " + Environment.NewLine + "" + Environment.NewLine + @@ -93,8 +157,15 @@ namespace cis237assignment3 " 4) Astromech Droid" + Environment.NewLine); } + /// <summary> + /// Displays droid Model selection to user. + /// </summary> + /// <param name="model1">Droid Model 1.</param> + /// <param name="model2">Droid Model 2.</param> public static void DisplayModelSelectionMenu(string model1, string model2) { + ResetMenuDisplay(); + Console.WriteLine( " Select a Droid Model: " + Environment.NewLine + "" + Environment.NewLine + @@ -102,8 +173,18 @@ namespace cis237assignment3 " 2) " + model2 + Environment.NewLine); } + /// <summary> + /// Displays droid Material selection to user. + /// </summary> + /// <param name="material1">Droid Material 1.</param> + /// <param name="material2">Droid Material 2.</param> + /// <param name="material3">Droid Material 3.</param> + /// <param name="material4">Droid Material 4.</param> + /// <param name="material5">Droid Material 5.</param> public static void DisplayMaterialSelectionMenu(string material1, string material2, string material3, string material4, string material5) { + ResetMenuDisplay(); + Console.WriteLine( " Select a Droid Material: " + Environment.NewLine + "" + Environment.NewLine + @@ -114,8 +195,18 @@ namespace cis237assignment3 " 5) " + material5 + Environment.NewLine); } + /// <summary> + /// Displays droid Color selection to user. + /// </summary> + /// <param name="color1">Droid Color 1.</param> + /// <param name="color2">Droid Color 2.</param> + /// <param name="color3">Droid Color 3.</param> + /// <param name="color4">Droid Color 4.</param> + /// <param name="color5">Droid Color 5.</param> public static void DisplayColorSelectionMenu(string color1, string color2, string color3, string color4, string color5) { + ResetMenuDisplay(); + Console.WriteLine( " Select a Droid Color: " + Environment.NewLine + "" + Environment.NewLine + @@ -126,19 +217,33 @@ namespace cis237assignment3 " 5) " + color5 + Environment.NewLine); } - public static void DisplayLanguageSelectionMenu() + /// <summary> + /// Displays droid Language selection to user. + /// </summary> + /// <param name="langSelection1">Droid Language 1.</param> + /// <param name="langSelection2">Droid Language 2.</param> + /// <param name="langSelection3">Droid Language 3.</param> + /// <param name="langSelection4">Droid Language 4.</param> + public static void DisplayLanguageSelectionMenu(int langSelection1, int langSelection2, int langSelection3, int langSelection4) { + ResetMenuDisplay(); + Console.WriteLine( " Select number of Built in Languages: " + Environment.NewLine + "" + Environment.NewLine + - " 1) 1" + Environment.NewLine + - " 2) 3" + Environment.NewLine + - " 3) 7" + Environment.NewLine + - " 4) 12" + Environment.NewLine); + " 1) " + langSelection1 + Environment.NewLine + + " 2) " + langSelection2 + Environment.NewLine + + " 3) " + langSelection3 + Environment.NewLine + + " 4) " + langSelection4 + Environment.NewLine); } + /// <summary> + /// Displays droid Tool Box selection to user. + /// </summary> public static void DisplayToolBoxSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Add Toolbox Functionality? " + Environment.NewLine + "" + Environment.NewLine + @@ -146,17 +251,27 @@ namespace cis237assignment3 " 2) No" +Environment.NewLine); } + /// <summary> + /// Displays droid Computer Connection selection to user. + /// </summary> public static void DisplayComputerConnectionSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( - " Add Computer Connection Functionality? " + Environment.NewLine + + " Add Network Functionality? " + Environment.NewLine + "" + Environment.NewLine + " 1) Yes" + Environment.NewLine + " 2) No" + Environment.NewLine); } + /// <summary> + /// Displays droid Arm selection to user. + /// </summary> public static void DisplayArmSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Add Mechanical Arm Functionality? " + Environment.NewLine + "" + Environment.NewLine + @@ -164,8 +279,13 @@ namespace cis237assignment3 " 2) No" + Environment.NewLine); } + /// <summary> + /// Displays droid Color selection to user. + /// </summary> public static void DisplayTrashCompactorSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Add Trash Compactor Functionality? " + Environment.NewLine + "" + Environment.NewLine + @@ -173,8 +293,13 @@ namespace cis237assignment3 " 2) No" + Environment.NewLine); } + /// <summary> + /// Displays droid Vacuum selection to user. + /// </summary> public static void DisplayVacuumSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Add Vacuum Functionality? " + Environment.NewLine + "" + Environment.NewLine + @@ -182,8 +307,13 @@ namespace cis237assignment3 " 2) No" + Environment.NewLine); } + /// <summary> + /// Displays droid Fire Extinguisher selection to user. + /// </summary> public static void DisplayFireExtinguisherSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( " Add built in Fire Extinguisher? " + Environment.NewLine + "" + Environment.NewLine + @@ -191,14 +321,17 @@ namespace cis237assignment3 " 2) No" + Environment.NewLine); } + /// <summary> + /// Displays droid Ship-outfitting Number selection to user. + /// </summary> public static void DisplayNumberOfShipsSelectionMenu() { + ResetMenuDisplay(); + Console.WriteLine( - " How many ships do you need to outfit this kind of droid onto? " + Environment.NewLine + - "" + Environment.NewLine + - " 1)"); + " Outfit onto how many ships? " + Environment.NewLine + + "" + Environment.NewLine); } - } #endregion