예제 #1
0
        //Method where the player will approach the exit of the museum to get outside
        //The player will encounter whatever Griffin they did not encounter the first time
        public void ApproachMuseumExit()
        {
            //If the player encountered Nubby, the game will create Neville
            if (NubbyOrNeville is GreatPlainsGriffin)
            {
                NubbyOrNeville = new ImperialHighGriffin();


                Console.WriteLine("As " + SetUp.GetPlayerName + " got closer to the exit, " + SetUp.GetPlayerSubject + " saw something. It was another griffin.\nThis one wasn't an adult, but neither was it a baby. It was an adolescent.");
                Console.WriteLine("There was something majestic about the about the way that it stood, proud and tall.\n" + SetUp.GetPlayerName + " found themselves frozen, their breath taken away by the griffin.");
                Console.WriteLine("\"Don't tell me you want to get closer, " + SetUp.GetPlayerName + "! We're so close to the exit!\"");
                Console.WriteLine("1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                touchGriffin = Console.ReadLine();

                checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);

                while (checkTouchGriffin == false || touchGriffinNum > 3)
                {
                    Console.WriteLine("Your input was invalid. Please choose to:\n1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                    touchGriffin = Console.ReadLine();

                    checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);
                }

                switch (touchGriffinNum)
                {
                case 1:
                    //Touch griffin
                    Console.WriteLine("Ignoring their guide's warning, " + SetUp.GetPlayerName + " approached the griffin and reached out to pet it.");
                    NubbyOrNeville.GriffinAttack();
                    break;

                case 2:
                    //Avoid Griffin and immediately move on
                    Console.WriteLine("Resisting the tempation, " + SetUp.GetPlayerName + " ignored the griffin and kept on moving towards the exit.");
                    break;

                case 3:
                    //quit game
                    Config.QuitGame();
                    break;

                default:
                    //quit game
                    Config.QuitGame();
                    break;
                }
            }

            //If the player encountered Neville, the game will create Nubby
            if (NubbyOrNeville is ImperialHighGriffin)
            {
                NubbyOrNeville = new GreatPlainsGriffin();

                Console.WriteLine("As " + SetUp.GetPlayerName + " walked towards the exit, " + SetUp.GetPlayerPersonal + " heard a sound of some sort.\n" + SetUp.GetPlayerPersonal + " stopped in " + SetUp.GetPlayerPossess + " tracks and looked around. Eventually, " + SetUp.GetPlayerPossess + " eyes fell upon another Griffin. \nThis one was much smaller, and pecking around at the ground.");
                Console.WriteLine("It was incredibly small, perhaps a baby even. There was something cute about it and its squeaky chirps.\n" + SetUp.GetPlayerName + " found themselves staring at the griffin lovingly.");
                Console.WriteLine("\"Don't tell me you find the thing cute, " + SetUp.GetPlayerName + "! The exit is right in front of you!\"");
                Console.WriteLine("1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                touchGriffin = Console.ReadLine();

                checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);

                while (checkTouchGriffin == false || touchGriffinNum > 3)
                {
                    Console.WriteLine("Your input was invalid. Please choose to:\n1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                    touchGriffin = Console.ReadLine();

                    checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);
                }

                switch (touchGriffinNum)
                {
                case 1:
                    //Touch griffin
                    Console.WriteLine("\nIgnoring their guide's warning, " + SetUp.GetPlayerName + " approached the griffin and reached out to pet it.");
                    NubbyOrNeville.GriffinAttack();
                    break;

                case 2:
                    //Avoid Griffin and immediately move on
                    Console.WriteLine("\nResisting the tempation, " + SetUp.GetPlayerName + " ignored the griffin and kept on towards the exit.");
                    break;

                case 3:
                    //quit game
                    Config.QuitGame();
                    break;

                default:
                    //quit game
                    Config.QuitGame();
                    break;
                }
            }

            //If the player encountered neither, the game will roll to see what the player encounters
            else if (!(NubbyOrNeville is GreatPlainsGriffin) && !(NubbyOrNeville is ImperialHighGriffin))
            {
                //Rolls for either Nubby the Great Plains Griffin or Neville, the Imperial High Griffin
                griffinRoll = Config.RollDie(1, 3);

                if (griffinRoll == 1)
                {
                    //Great Plains Griffin Attack Scenario
                    NubbyOrNeville = new GreatPlainsGriffin();

                    Console.WriteLine("As " + SetUp.GetPlayerName + " walked towards the exit, " + SetUp.GetPlayerPersonal + " heard a sound of some sort.\n" + SetUp.GetPlayerPersonal + " stopped in " + SetUp.GetPlayerPossess + " tracks and looked around. Eventually, " + SetUp.GetPlayerPossess + " eyes fell upon another Griffin. \nThis one was much smaller, and pecking around at the ground.");
                    Console.WriteLine("It was incredibly small, perhaps a baby even. There was something cute about it and its squeaky chirps.\n" + SetUp.GetPlayerName + " found themselves staring at the griffin lovingly.");
                    Console.WriteLine("\"Don't tell me you find the thing cute, " + SetUp.GetPlayerName + "! The exit is right in front of you!\"");
                    Console.WriteLine("1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                    touchGriffin = Console.ReadLine();

                    checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);

                    while (checkTouchGriffin == false || touchGriffinNum > 3)
                    {
                        Console.WriteLine("Your input was invalid. Please choose to:\n1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                        touchGriffin = Console.ReadLine();

                        checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);
                    }

                    switch (touchGriffinNum)
                    {
                    case 1:
                        //Touch griffin
                        Console.WriteLine("\nIgnoring their guide's warning, " + SetUp.GetPlayerName + " approached the griffin and reached out to pet it.");
                        NubbyOrNeville.GriffinAttack();
                        break;

                    case 2:
                        //Avoid Griffin and immediately move on
                        Console.WriteLine("\nResisting the tempation, " + SetUp.GetPlayerName + " ignored the griffin and kept on moving towards their destination.");
                        break;

                    case 3:
                        //quit game
                        Config.QuitGame();
                        break;

                    default:
                        //quit game
                        Config.QuitGame();
                        break;
                    }
                }
                else
                {
                    //Imperial High Griffin Attack Scenario
                    NubbyOrNeville = new ImperialHighGriffin();

                    Console.WriteLine("As " + SetUp.GetPlayerName + " got closer to the exit, " + SetUp.GetPlayerSubject + " saw something. It was another griffin.\nThis one wasn't an adult, but neither was it a baby. It was an adolescent.");
                    Console.WriteLine("There was something majestic about the about the way that it stood, proud and tall.\n" + SetUp.GetPlayerName + " found themselves frozen, their breath taken away by the griffin.");
                    Console.WriteLine("\"Don't tell me you want to get closer, " + SetUp.GetPlayerName + "! We're so close to the exit!\"");
                    Console.WriteLine("1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                    touchGriffin = Console.ReadLine();

                    checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);

                    while (checkTouchGriffin == false || touchGriffinNum > 3)
                    {
                        Console.WriteLine("Your input was invalid. Please choose to:\n1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                        touchGriffin = Console.ReadLine();

                        checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);
                    }

                    switch (touchGriffinNum)
                    {
                    case 1:
                        //Touch griffin
                        Console.WriteLine("Ignoring their guide's warning, " + SetUp.GetPlayerName + " approached the griffin and reached out to pet it.");
                        NubbyOrNeville.GriffinAttack();
                        break;

                    case 2:
                        //Avoid Griffin and immediately move on
                        Console.WriteLine("Resisting the tempation, " + SetUp.GetPlayerName + " ignored the griffin and kept on moving towards their destination.");
                        break;

                    case 3:
                        //quit game
                        Config.QuitGame();
                        break;

                    default:
                        //quit game
                        Config.QuitGame();
                        break;
                    }
                }
            }
        }
예제 #2
0
        //Uses the integer returned from the conversion method to determine which exhibit the player approaches
        //And which trial they first have to overcome.
        public int ApproachExhibit(int ffRoomSelectNum, string playername)
        {
            /*frenziedDog = new Wolf();
             * frenziedDog.health = 35;
             * frenziedDog.eyes = 2;
             * frenziedDog.eyeColor = "deep brown";
             * frenziedDog.furColor = "brown";
             * frenziedDog.legs = 4;
             * frenziedDog.tails = 1;*/

            switch (ffRoomSelectNum)
            {
            case 1:
                //West Scouring Exhibit
                if (scouring == 0)
                {
                    Console.WriteLine("The western exhibit was fairly close to the stairs. " + playername + " started towards it.");
                    Console.WriteLine("As " + SetUp.GetPlayerPersonal + " approached, " + SetUp.GetPlayerPersonal + " saw that there was some rubble blocking it. It didn't look too torturous.\nLike something that could easily be scaled or destroyed.");
                    Console.WriteLine(playername + " thought that " + SetUp.GetPlayerPersonal + " could hear something from the rubble. Almost like a faint whimper.");
                    Console.WriteLine("1. Climb over the rocks\n2. Blow them up");
                    approachWestExhibit = Console.ReadLine().Trim();
                    Console.ReadLine().Trim();

                    bool west = int.TryParse(approachWestExhibit, out approachWestExhibitNum);

                    //Prompts the player to enter a 1 - 4 assuming their original input was invalid
                    while (west == false || approachWestExhibitNum >= 3)
                    {
                        Console.WriteLine("Your entry was invalid. Please enter a 1, 2, 3 or 4. Where would you like to go?");
                        Console.WriteLine("1. Climb over the rocks\n2. Blow them up");
                        approachWestExhibit = Console.ReadLine().Trim();
                        west = int.TryParse(approachWestExhibit, out approachWestExhibitNum);
                    }

                    if (approachWestExhibitNum == 1)
                    {
                        //Climb, uncover frenzied dog, die
                        Console.WriteLine(playername + " started to climb the rubble. " + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " were making good progress, and things seemed fine.");
                        Console.WriteLine("The sound that " + SetUp.GetPlayerPersonal + " heard earlier steadily grew louder, until one of the pieces of rubble started to shake.");
                        Console.WriteLine(playername + " placed " + SetUp.GetPlayerPossess + " hand on it, and it came loose. " + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " went stumbling down to the ground, landing with a thud.");
                        Console.WriteLine("Sitting up, a dog was before " + SetUp.GetPlayerSubject + ", frantically looking around. One of its legs looked broken, and it's fur was dirty.");
                        Console.WriteLine(playername + " tried to reach for the dog, but it turned and started barking ferociously.\nThe frenzied creature let out a low growl, then lunged right at " + playername + ".");
                        Config.GameEnd(playername);
                    }
                    if (approachWestExhibitNum == 2)
                    {
                        //blow up rubble, kill dog
                        Console.WriteLine(playername + " backed up away a bit from the rubble and conjured an explosion to blast it away.");
                        Console.WriteLine("The whimpering " + SetUp.GetPlayerPersonal + " had heard earlier turned into yelp,\nAnd something flew out of the rubble only to land with on the ground with a smack.");
                        Console.WriteLine("\"What was that?!\"");
                        Console.WriteLine(playername + " ran over to see what it was. It was a dog, that now lay still.\nIt must've been caught under the rubble when the museum collapsed.");
                        Console.WriteLine("\"The poor thing. Perhaps we can come back and get it to give it a proper burial once you've escaped.\"\n\"For now, though, you have to keep moving.\"");
                    }
                }
                scouring++;
                return(scouring);

            case 2:
                //East World War Exhibit
                if (world == 0)
                {
                    //Rolls for either Nubby the Great Plains Griffin or Neville, the Imperial High Griffin
                    griffinRoll = Config.RollDie(1, 3);

                    if (griffinRoll == 1)
                    {
                        //Great Plains Griffin Attack Scenario
                        NubbyOrNeville = new GreatPlainsGriffin();

                        Console.WriteLine("As " + SetUp.GetPlayerName + " walked towards the eastern exhibit, " + SetUp.GetPlayerPersonal + " heard a sound of some sort.\n" + SetUp.GetPlayerPersonal + " stopped in " + SetUp.GetPlayerPossess + " tracks and looked around. Eventually, " + SetUp.GetPlayerPossess + " eyes fell upon a small Griffin pecking at the ground.");
                        Console.WriteLine("It was incredibly small, perhaps a baby even. There was something cute about the small griffin and its squeaky chirps.\n" + SetUp.GetPlayerName + " found themselves staring at the griffin lovingly.");
                        Console.WriteLine("\"Don't tell me you find the thing cute, " + SetUp.GetPlayerName + "! It's a wild animal!\"");
                        Console.WriteLine("1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                        touchGriffin = Console.ReadLine();

                        checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);

                        while (checkTouchGriffin == false || touchGriffinNum > 3)
                        {
                            Console.WriteLine("Your input was invalid. Please choose to:\n1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                            touchGriffin = Console.ReadLine();

                            checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);
                        }

                        switch (touchGriffinNum)
                        {
                        case 1:
                            //Touch griffin
                            Console.WriteLine("\nIgnoring their guide's warning, " + SetUp.GetPlayerName + " approached the griffin and reached out to pet it.");
                            NubbyOrNeville.GriffinAttack();
                            break;

                        case 2:
                            //Avoid Griffin and immediately move on
                            Console.WriteLine("\nResisting the tempation, " + SetUp.GetPlayerName + " ignored the griffin and kept on moving towards their destination.");
                            break;

                        case 3:
                            //quit game
                            Config.QuitGame();
                            break;

                        default:
                            //quit game
                            Config.QuitGame();
                            break;
                        }
                    }
                    else
                    {
                        //Imperial High Griffin Attack Scenario
                        NubbyOrNeville = new ImperialHighGriffin();

                        Console.WriteLine("As " + SetUp.GetPlayerName + " walked towards the eastern exhibit, " + SetUp.GetPlayerSubject + " saw something. It was a griffin of some sort.\nIt wasn't an adult, but neither was it a baby. It was an adolescent griffin of some sort.");
                        Console.WriteLine("There was something majestic about the about the way that it stood, proud and tall.\n" + SetUp.GetPlayerName + " found themselves frozen, their breath taken away by the griffin.");
                        Console.WriteLine("\"Don't tell me you want to get closer, " + SetUp.GetPlayerName + "! It's a wild animal!\"");
                        Console.WriteLine("1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                        touchGriffin = Console.ReadLine();

                        checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);

                        while (checkTouchGriffin == false || touchGriffinNum > 3)
                        {
                            Console.WriteLine("Your input was invalid. Please choose to:\n1. Touch the Griffin\n2. Avoid the Griffin\nOr\n3. Quit");
                            touchGriffin = Console.ReadLine();

                            checkTouchGriffin = int.TryParse(touchGriffin, out touchGriffinNum);
                        }

                        switch (touchGriffinNum)
                        {
                        case 1:
                            //Touch griffin
                            Console.WriteLine("Ignoring their guide's warning, " + SetUp.GetPlayerName + " approached the griffin and reached out to pet it.");
                            NubbyOrNeville.GriffinAttack();
                            break;

                        case 2:
                            //Avoid Griffin and immediately move on
                            Console.WriteLine("Resisting the tempation, " + SetUp.GetPlayerName + " ignored the griffin and kept on moving towards their destination.");
                            break;

                        case 3:
                            //quit game
                            Config.QuitGame();
                            break;

                        default:
                            //quit game
                            Config.QuitGame();
                            break;
                        }
                    }

                    Console.WriteLine("The path to the east was clear. The only issue was the giant pillar that had fallen in front of the door.");
                    Console.WriteLine(playername + " approached it to try and get a better look; see what " + SetUp.GetPlayerPersonal + " could do.");
                    Console.WriteLine("After inspecting the pillar for a bit, they decide to:");
                    Console.WriteLine("1. Blow up the slab\n2. Force it aside with magic");
                    approachEastExhibit = Console.ReadLine().Trim();
                    Console.ReadLine();

                    bool east = int.TryParse(approachEastExhibit, out approachEastExhibitNum);

                    //Prompts the player to enter a 1 or 2 assuming their original input was invalid
                    while (east == false || approachEastExhibitNum >= 3)
                    {
                        Console.WriteLine("Your entry was invalid. Please enter a 1 or 2.");
                        Console.WriteLine("1. Blow up the slab\n2. Force it aside with magic");
                        approachEastExhibit = Console.ReadLine().Trim();
                        east = int.TryParse(approachEastExhibit, out approachEastExhibitNum);
                    }

                    if (approachEastExhibitNum == 1)
                    {
                        //Blow it up and succeed
                        //Perhaps include player health and have them injure themselves, reducing that health a bit.
                        Console.WriteLine("Moving back a bit, " + playername + " got ready to blow up the pillar.\n" + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " closed " + SetUp.GetPlayerPossess + " eyes and concentrated. " + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " heard a loud boom and the clatter of stone against stone.");
                        Console.WriteLine("Opening " + SetUp.GetPlayerPossess + ", " + SetUp.GetPlayerPersonal + " saw that the way was now clear, and walked into the exhibit.");
                    }
                    if (approachEastExhibitNum == 2)
                    {
                        //Try to pull it, get overwhelmed by size, crush yourself
                        Console.WriteLine(playername + " took a deep breath and rubbed " + SetUp.GetPlayerPossess + " hands together. " + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " began gesturing with " + SetUp.GetPlayerPossess + " hands at the pillar.");
                        Console.WriteLine("The pillar slowly sidled forwards out of the doorway.");
                        Console.WriteLine("It was incredibly difficult, trying to move something so large. Still, " + playername + " was managing.");
                        Console.WriteLine("The pillar was almost entirely out of the doorway. Excited, " + playername + " forgot about it for just a moment.\nIn that moment, the pillar was once again at the mercy of gravity. It fell towards " + playername + ".");
                        Console.WriteLine("In a matter of seconds, all " + SetUp.GetPlayerPersonal + " saw was the white of the pillar's marble.");
                        Config.GameEnd(playername);
                    }
                }
                world++;
                return(world);

            case 3:
                //Northwest Dracomoprhi Exhibit
                if (gold == 0)
                {
                    Console.WriteLine("The Northwestern Exhibit is the furthest away. " + playername + " begins walking towards it.");
                    Console.WriteLine("As " + SetUp.GetPlayerPersonal + " walked towards it, the ground shook violently.\nSeveral pillars that had been shaken loose give way once the trembling stops.");
                    Console.WriteLine("What do you do?\n1. Blow them up so the small fragments don't hurt as badly\n2. Make a break for it");
                    approachNWExhibit = Console.ReadLine().Trim();
                    Console.ReadLine();

                    bool NW = int.TryParse(approachNWExhibit, out approachNWExhibitNum);

                    //Prompts the player to enter a 1 or 2 assuming their original input was invalid
                    while (NW == false || approachNWExhibitNum >= 5)
                    {
                        Console.WriteLine("Your entry was invalid. Please enter a 1 or 2.");
                        Console.WriteLine("What do you do?\n1. Blow them up so the small fragments don't hurt as badly\n2. Make a break for it");
                        approachNWExhibit = Console.ReadLine().Trim();
                        NW = int.TryParse(approachNWExhibit, out approachNWExhibitNum);
                    }

                    if (approachNWExhibitNum == 1)
                    {
                        //Blow up pillars; large chunk hits players in the head
                        Console.WriteLine("As the pillars came falling, " + playername + " blew them apart with all the force " + SetUp.GetPlayerPersonal + " could.");
                        Console.WriteLine("Small chunks of marble fell at " + SetUp.GetPlayerPossess + " feet. Some of the chunks hit " + SetUp.GetPlayerSubject + ", but they were so small it didn't matter.");
                        Console.WriteLine("\"Good work! It looks like you're in the-\"");
                        Console.WriteLine("A large chunk of marble comes flying right at " + playername + ". " + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " thought that any chunks would have\nBeen too small to be dangerous.");
                        Console.WriteLine("As that chunk grew closer, though, " + SetUp.GetPlayerPersonal + " knew " + SetUp.GetPlayerPersonal + " had made a mistake. The chunk hit " + SetUp.GetPlayerSubject + " hard,\nAnd " + SetUp.GetPlayerPersonal + " collapsed onto the ground.");
                        Config.GameEnd(playername);
                    }
                    if (approachNWExhibitNum == 2)
                    {
                        //Runs for it, narrowly makes it
                        Console.WriteLine("As the pillars fell, " + playername + " started sprinting in the direction of the exhibit's door.");
                        Console.WriteLine(SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " could hear the sound of the pillars falling behind " + SetUp.GetPlayerSubject + ", but didn't dare to look back.");
                        Console.WriteLine("When the door was close, " + playername + " took a chance and dove for it.\n" + SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " landed right past the doorway as another pillar crashed outside.");
                        Console.WriteLine(SetUp.UppercaseFirst(SetUp.GetPlayerPersonal) + " waited a moment before getting up, relieved to have survived that ordeal.");
                    }
                }
                gold++;
                return(gold);

            case 4:
                Config.QuitGame();
                gold++;
                return(gold);

            default:
                Config.QuitGame();
                gold++;
                return(gold);
            }
        }