/// <summary> /// get a action menu choice from the user /// </summary> /// <returns>action menu choice</returns> public AdventurerAction GetActionMenuChoice(Menu menu) { AdventurerAction choosenAction = AdventurerAction.None; Console.CursorVisible = false; // // create an array of valid keys from menu dictionary // char[] validKeys = menu.MenuChoices.Keys.ToArray(); // // validate keys pressed as in MenuChoices dictionary // char keyPressed; do { ConsoleKeyInfo keyPressedInfo = Console.ReadKey(true); keyPressed = keyPressedInfo.KeyChar; } while (!validKeys.Contains(keyPressed)); choosenAction = menu.MenuChoices[keyPressed]; Console.CursorVisible = true; return(choosenAction); }
private AdventurerAction GetNextAdventurerAction() { AdventurerAction adventurerActionChoice = AdventurerAction.None; switch (ActionMenu.currentMenu) { case ActionMenu.CurrentMenu.MainMenu: adventurerActionChoice = _gameConsoleView.GetActionMenuChoice(ActionMenu.MainMenu); break; case ActionMenu.CurrentMenu.ObjectMenu: adventurerActionChoice = _gameConsoleView.GetActionMenuChoice(ActionMenu.ObjectMenu); break; case ActionMenu.CurrentMenu.NpcMenu: adventurerActionChoice = _gameConsoleView.GetActionMenuChoice(ActionMenu.NpcMenu); break; case ActionMenu.CurrentMenu.AdventurerMenu: adventurerActionChoice = _gameConsoleView.GetActionMenuChoice(ActionMenu.AdventurerMenu); break; case ActionMenu.CurrentMenu.AdminMenu: adventurerActionChoice = _gameConsoleView.GetActionMenuChoice(ActionMenu.AdminMenu); break; default: break; } return(adventurerActionChoice); }
/// <summary> /// method to manage the application setup and game loop /// </summary> private void ManageGameLoop() { AdventurerAction travelerActionChoice = AdventurerAction.None; // // display splash screen // _playingGame = _gameConsoleView.DisplaySpashScreen(); // // player chooses to quit // if (!_playingGame) { Environment.Exit(1); } // // display introductory message // _gameConsoleView.DisplayGamePlayScreen("Mission Intro", Text.AdventureIntro(), ActionMenu.MissionIntro, ""); _gameConsoleView.GetContinueKey(); // // initialize the mission traveler // InitializeMission(); // // prepare game play screen // _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrrentLocationInfo(), ActionMenu.MainMenu, ""); // // game loop // while (_playingGame) { travelerActionChoice = _gameConsoleView.GetActionMenuChoice(ActionMenu.MainMenu); // // choose an action based on the user's menu choice // switch (travelerActionChoice) { case AdventurerAction.None: break; case AdventurerAction.AdventurerInfo: _gameConsoleView.DisplayTravelerInfo(); break; case AdventurerAction.Exit: _playingGame = false; break; default: break; } } // // close the application // Environment.Exit(1); }
/// <summary> /// method to manage the application setup and game loop /// </summary> private void ManageGameLoop() { AdventurerAction travelerActionChoice = AdventurerAction.None; // // display splash screen // _playingGame = _gameConsoleView.DisplaySpashScreen(); // // player chooses to quit // if (!_playingGame) { Environment.Exit(1); } // // display introductory message // _gameConsoleView.DisplayGamePlayScreen("Mission Intro", Text.QuestIntro(), ActionMenu.QuestIntro, ""); _gameConsoleView.GetContinueKey(); // // initialize the mission adventurer // InitializeMission(); // // prepare game play screen // _currentLocation = _gameDungeon.GetSpaceTimeLocationById(_gameAdventurer.DungeonLocationID); _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrrentLocationInfo(), ActionMenu.MainMenu, ""); // // game loop // while (_playingGame) { // // process all flags, events, and stats // UpdateGameStatus(); // // get next game action from player // travelerActionChoice = GetNextAdventurerAction(); // // choose an action based on the player's menu choice // switch (travelerActionChoice) { case AdventurerAction.None: break; case AdventurerAction.AdventurerInfo: _gameConsoleView.DisplayAdventurerInfo(); break; case AdventurerAction.ListDungeonLocations: _gameConsoleView.DisplayListOfDungeonLocations(); break; case AdventurerAction.LookAround: _gameConsoleView.DisplayLookAround(); break; case AdventurerAction.Travel: // // get new location choice and update the current location property // _gameAdventurer.DungeonLocationID = _gameConsoleView.DisplayGetNextDungeonLocation(); _currentLocation = _gameDungeon.GetSpaceTimeLocationById(_gameAdventurer.DungeonLocationID); // // set the game play screen to the current location info format // _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrentLocationInfo(_currentLocation), ActionMenu.MainMenu, ""); // // play sound when you travel // //_gameSound.PlaySoundTravel(); break; case AdventurerAction.AdventurerLocationsVisited: _gameConsoleView.DisplayLocationsVisited(); break; case AdventurerAction.ListGameObjects: _gameConsoleView.DisplayListOfAllGameObjects(); break; case AdventurerAction.ListNonPlayerCharacters: _gameConsoleView.DisplayListOfAllNpcObjects(); break; case AdventurerAction.LookAt: LookAtAction(); break; case AdventurerAction.PickUp: PickUpAction(); break; case AdventurerAction.PutDown: PutDownAction(); break; case AdventurerAction.TalkTo: TalkToAction(); //_gameSound.PlaySoundTalkTo(); break; case AdventurerAction.Inventory: _gameConsoleView.DisplayInventory(); //_gameSound.PlaySoundInventory(); break; case AdventurerAction.EditAdventurerInfo: _gameConsoleView.DisplayEditAdventurerInfo(_gameAdventurer); break; case AdventurerAction.AdminMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.AdminMenu; _gameConsoleView.DisplayGamePlayScreen("Admin Menu", "Select an operation from the menu.", ActionMenu.AdminMenu, ""); break; case AdventurerAction.ReturnToMainMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.MainMenu; _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrentLocationInfo(_currentLocation), ActionMenu.MainMenu, ""); break; case AdventurerAction.AdventurerMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.AdventurerMenu; _gameConsoleView.DisplayGamePlayScreen("Adventurer Menu", "Select an operation from the menu.", ActionMenu.AdventurerMenu, ""); break; case AdventurerAction.ObjectMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.ObjectMenu; _gameConsoleView.DisplayGamePlayScreen("Object Menu", "Select an operation from the menu.", ActionMenu.ObjectMenu, ""); break; case AdventurerAction.NonPlayerCharacterMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.NpcMenu; _gameConsoleView.DisplayGamePlayScreen("NPC Menu", "Select an operation from the menu.", ActionMenu.NpcMenu, ""); break; case AdventurerAction.Exit: //_gameSound.PlaySoundExit(); _playingGame = false; break; default: break; } } // // close the application // Environment.Exit(1); }
/// <summary> /// method to manage the application setup and game loop /// </summary> private void ManageGameLoop() { AdventurerAction adventurerActionChoice = AdventurerAction.None; // // display splash screen // _playingGame = _gameConsoleView.DisplaySpashScreen(); // // player chooses to quit // if (!_playingGame) { Environment.Exit(1); } // // display introductory message // _gameConsoleView.DisplayGamePlayScreen("Mission Intro", Text.AdventureIntro(), ActionMenu.AdventureIntro, ""); _gameConsoleView.GetContinueKey(); // // initialize the mission adventurer // InitializeMission(); // // prepare game play screen // _currentLocation = _gameWorld.GetWorldAreaLocationById(_gameAdventurer.WorldAreaLocationID); _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrentLocationInfo(_currentLocation), ActionMenu.MainMenu, ""); // // game loop // while (_playingGame) { // // process all flags, events, and stats // UpdateGameStatus(); // // get next game action from player // adventurerActionChoice = GetNextAdventurerAction(); // // choose an action based on the player's menu choice // switch (adventurerActionChoice) { case AdventurerAction.None: break; case AdventurerAction.AdventurerInfo: _gameConsoleView.DisplayAdventurerInfo(); break; case AdventurerAction.LookAround: _gameConsoleView.DisplayLookAround(); break; case AdventurerAction.Travel: TravelAction(); break; case AdventurerAction.AdventurerLocationsVisited: _gameConsoleView.DisplayLocationsVisited(); break; case AdventurerAction.LookAt: LookAtAction(); break; case AdventurerAction.PickUp: PickUpAction(); break; case AdventurerAction.PutDown: PutDownAction(); break; case AdventurerAction.Inventory: _gameConsoleView.DisplayInventory(); break; case AdventurerAction.ListWorldAreaLocations: _gameConsoleView.DisplayListOfWorldAreaLocations(); break; case AdventurerAction.ListGameObjects: _gameConsoleView.DisplayListOfAllGameObjects(); break; case AdventurerAction.AdminMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.AdminMenu; _gameConsoleView.DisplayGamePlayScreen("Admin Menu", "Select an operation from the menu.", ActionMenu.AdminMenu, ""); break; case AdventurerAction.ReturnToMainMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.MainMenu; _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrentLocationInfo(_currentLocation), ActionMenu.MainMenu, ""); break; case AdventurerAction.ListNonplayerCharacters: _gameConsoleView.DisplayListOfAllNpcObjects(); break; case AdventurerAction.TravelMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.AdventurerMenu; _gameConsoleView.DisplayGamePlayScreen("Adventurer Menu", "Select an operation from the menu.", ActionMenu.AdventurerMenu, ""); break; case AdventurerAction.ObjectMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.ObjectMenu; _gameConsoleView.DisplayGamePlayScreen("Object Menu", "Select an operation from the menu.", ActionMenu.ObjectMenu, ""); break; case AdventurerAction.NonplayerCharacterMenu: ActionMenu.currentMenu = ActionMenu.CurrentMenu.NpcMenu; _gameConsoleView.DisplayGamePlayScreen("NPC Menu", "Select an operation from the menu.", ActionMenu.NpcMenu, ""); break; case AdventurerAction.TalkTo: TalkToAction(); break; case AdventurerAction.Battle: bool survived = BattleAction(); if (!survived) { _playingGame = false; } else { ActionMenu.currentMenu = ActionMenu.CurrentMenu.MainMenu; _gameConsoleView.DisplayGamePlayScreen("Current Location", Text.CurrentLocationInfo(_currentLocation), ActionMenu.MainMenu, ""); } break; case AdventurerAction.Exit: _playingGame = false; break; default: break; } } // // close the application // Environment.Exit(1); }