//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; } } } }
//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); } }