/// <summary> /// display the text in the message box of the game screen /// </summary> /// <param name="headerText"></param> /// <param name="messageText"></param> private void DisplayMessageBox(string headerText, string messageText) { // // display the outline for the message box // Console.BackgroundColor = ConsoleTheme.MessageBoxBackgroundColor; Console.ForegroundColor = ConsoleTheme.MessageBoxBorderColor; ConsoleWindowHelper.DisplayBoxOutline( ConsoleLayout.MessageBoxPositionTop, ConsoleLayout.MessageBoxPositionLeft, ConsoleLayout.MessageBoxWidth, ConsoleLayout.MessageBoxHeight); // // display message box header // Console.BackgroundColor = ConsoleTheme.MessageBoxBorderColor; Console.ForegroundColor = ConsoleTheme.MessageBoxForegroundColor; Console.SetCursorPosition(ConsoleLayout.MessageBoxPositionLeft + 2, ConsoleLayout.MessageBoxPositionTop + 1); Console.Write(ConsoleWindowHelper.Center(headerText, ConsoleLayout.MessageBoxWidth - 4)); // // display the text for the message box // Console.BackgroundColor = ConsoleTheme.MessageBoxBackgroundColor; Console.ForegroundColor = ConsoleTheme.MessageBoxForegroundColor; List <string> messageTextLines = new List <string>(); messageTextLines = ConsoleWindowHelper.MessageBoxWordWrap(messageText, ConsoleLayout.MessageBoxWidth - 4); int startingRow = ConsoleLayout.MessageBoxPositionTop + 3; int endingRow = startingRow + messageTextLines.Count(); int row = startingRow; foreach (string messageTextLine in messageTextLines) { Console.SetCursorPosition(ConsoleLayout.MessageBoxPositionLeft + 2, row); Console.Write(messageTextLine); row++; } }
/// <summary> /// display the correct menu in the menu box of the game screen /// </summary> /// <param name="menu">menu for current game state</param> private void DisplayMenuBox(Menu menu) { Console.BackgroundColor = ConsoleTheme.MenuBackgroundColor; Console.ForegroundColor = ConsoleTheme.MenuBorderColor; // // display menu box border // ConsoleWindowHelper.DisplayBoxOutline( ConsoleLayout.MenuBoxPositionTop, ConsoleLayout.MenuBoxPositionLeft, ConsoleLayout.MenuBoxWidth, ConsoleLayout.MenuBoxHeight); // // display menu box header // Console.BackgroundColor = ConsoleTheme.MenuBorderColor; Console.ForegroundColor = ConsoleTheme.MenuForegroundColor; Console.SetCursorPosition(ConsoleLayout.MenuBoxPositionLeft + 2, ConsoleLayout.MenuBoxPositionTop + 1); Console.Write(ConsoleWindowHelper.Center(menu.MenuTitle, ConsoleLayout.MenuBoxWidth - 4)); // // display menu choices // Console.BackgroundColor = ConsoleTheme.MenuBackgroundColor; Console.ForegroundColor = ConsoleTheme.MenuForegroundColor; int topRow = ConsoleLayout.MenuBoxPositionTop + 3; foreach (KeyValuePair <char, TravelerAction> menuChoice in menu.MenuChoices) { if (menuChoice.Value != TravelerAction.None) { string formatedMenuChoice = ConsoleWindowHelper.ToLabelFormat(menuChoice.Value.ToString()); Console.SetCursorPosition(ConsoleLayout.MenuBoxPositionLeft + 3, topRow++); Console.Write($"{menuChoice.Key}. {formatedMenuChoice}"); } } }