Beispiel #1
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #5
0
        /// <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);
        }