static void Main(string[] args) //All methods are called here, as well as some of the logic that only needs to happen once { SoundPlayer backgroundMusic = new SoundPlayer(); //plays background music backgroundMusic.SoundLocation = AppDomain.CurrentDomain.BaseDirectory + "\\theme.wav"; backgroundMusic.PlayLooping(); Console.ForegroundColor = ConsoleColor.Green; beginning: scene scene = new scene(); //object to call scene methods method method = new method(); //object to call logic methods bool weaponObtained = false; //string to keep track of whether the use found a weapon scene.one(); //displays the welcome screen method.input(); //checks for user input (this is used a ton) switch (method.selectedOption) //this switch case checks what option the user selected { case "X": //displays info screen { Console.Clear(); scene.two(); method.input(); if (method.selectedOption == "Z") { Console.Clear(); goto beginning; } break; } case "Z": //starts game { Console.Clear(); goto startgame; } case "Escape": //exits to windows { Environment.Exit(0); break; } } startgame: Console.Clear(); scene.four(); //launches the first part of the game method.input(); switch (method.selectedOption) { case "Z": //user decides to explore vault { Console.Clear(); scene.five(); method.input(); if (method.selectedOption == "Z") //user gets some info about the vault { method.random(); if (method.randomOutput > 2) //decides whether to give the user a weapon based on random number generation { Console.Clear(); scene.seven(); weaponObtained = true; method.input(); if (method.selectedOption == "Z") { Console.Clear(); goto outside; } } else //forces the user to go outside of the vault regardless of whether they found a weapon { Console.Clear(); scene.eight(); method.input(); if (method.selectedOption == "Z") { goto outside; } } } break; } case "X": //takes the user outside of the vault since they didn't explore { Console.Clear(); goto outside; } case "Escape": //takes the user back to the main menu { Console.Clear(); goto beginning; } } outside: Console.Clear(); scene.nine(); //user exits the vault, and hears a noise coming from his old neighborhood. user has to decide whether to investigate method.input(); switch (method.selectedOption) { case "Z": //user decides not to investigate { Console.Clear(); scene.ten(); method.input(); if (method.selectedOption == "X") //user dies and has to start from beginning { Console.Clear(); scene.eleven(); method.input(); if (method.selectedOption == "Escape") { Console.Clear(); goto beginning; } } break; } case "X": { goto walktonoise; //user decides to investigate } } walktonoise: Console.Clear(); scene.twelve(); method.input(); switch (method.selectedOption) //user discovers raiders { case "Z": //tries to befriend raiders { Console.Clear(); scene.thirteen(); method.input(); if (method.selectedOption == "ESC") //dies { Console.Clear(); goto beginning; } break; } case "X": //sneaks up on raiders { Console.Clear(); goto killraiders; //jumps to killing raiders } } killraiders: if (weaponObtained == true) //checks if you got the weapon { method.random(); if (method.randomOutput > 2) //random number generator for odds of killing raiders { Console.Clear(); scene.fourteen(); method.input(); if (method.selectedOption == "Z") //gonna shoot the weapon { Console.Clear(); scene.sixteen(); method.input(); if (method.selectedOption == "Z") //kill the raiders { Console.Clear(); scene.eighteen(); //read note method.input(); if (method.selectedOption == "Escape") //go back to main screen { Console.Clear(); goto beginning; } } } } else { Console.Clear(); scene.fourteen(); //doesnt kill raiders method.input(); if (method.selectedOption == "Z") { Console.Clear(); scene.seventeen(); method.input(); if (method.selectedOption == "Escape") //dies { Console.Clear(); scene.one(); goto beginning; //back to main screen } } } } else { method.random(); if (method.randomOutput > 4) //user didn't find weapon, lowers odds of killing raiders { Console.Clear(); scene.fifteen(); method.input(); if (method.selectedOption == "Z") //kill raiders { Console.Clear(); scene.sixteen(); method.input(); if (method.selectedOption == "Z") //throw rock { Console.Clear(); scene.eighteen(); method.input(); if (method.selectedOption == "Escape") //finish game { Console.Clear(); goto beginning; } } } } else { Console.Clear(); scene.fifteen(); method.input(); if (method.selectedOption == "Z") //throw rock { if (method.selectedOption == "Escape") //die { Console.Clear(); goto beginning; } } } } }