public void next(Player player, List <Stage> NormalLevels, List <Stage> ExplainLevels, List <Stage> HardcoreLevels, List <Stage> Interaptions, Stage stageI) { Console.Clear(); WritingText(Path.Value); Console.WriteLine(); Console.WriteLine("enter 'U' to go to the next screen, or D to go to the previous screen"); Console.WriteLine(); if (stageI.Mode.ToUpper() == "I") { Console.WriteLine("In order to view the list of moves for hardcore mode, enter H"); Console.WriteLine(); Console.WriteLine("In order to view the list of moves for explain mode, enter E"); Console.WriteLine(); } MainMeunMessage(); Console.WriteLine(); Input = Console.ReadLine(); if (ShouldIReturnToMainMeun(Input)) { return; } if (stageI.Mode.ToUpper() == "M") { while (Input.ToUpper() != "D" && Input.ToUpper() != "U") { Console.WriteLine(); Console.WriteLine("Invalid input. Enter again: "); Console.WriteLine(); Input = Console.ReadLine(); if (ShouldIReturnToMainMeun(Input)) { return; } } } else if (stageI.Mode.ToUpper() == "I") { while (Input.ToUpper() != "D" && Input.ToUpper() != "U" && Input.ToUpper() != "E" && Input.ToUpper() != "H") { Console.WriteLine(); Console.WriteLine("Invalid input. Enter again: "); Console.WriteLine(); Input = Console.ReadLine(); if (ShouldIReturnToMainMeun(Input)) { return; } } } switch (Input.ToUpper()) { case "D": Path = RecentScreen.Element("PreviousScreen"); break; case "U": Path = RecentScreen.Element("NextScreen"); break; case "H": if (stageI.Mode.ToUpper() == "I") { Console.Clear(); WritingText(@"DebateGame\hardcoreGame\intro.txt"); Console.WriteLine(); Console.WriteLine("Enter any key to go back to the stage"); Console.WriteLine(); Console.ReadLine(); next(player, NormalLevels, ExplainLevels, HardcoreLevels, Interaptions, stageI); return; } break; case "E": if (stageI.Mode.ToUpper() == "I") { Console.Clear(); WritingText(@"DebateGame\ExplainGame\list.txt"); Console.WriteLine(); Console.WriteLine("Enter any key to go back to the stage"); Console.WriteLine(); Console.ReadLine(); next(player, NormalLevels, ExplainLevels, HardcoreLevels, Interaptions, stageI); return; } break; } if (string.IsNullOrEmpty(Path.Value)) { return; } foreach (var screen in Screens) { if (screen.Element("Path").Value == Path.Value) { RecentScreen = screen; } } next(player, NormalLevels, ExplainLevels, HardcoreLevels, Interaptions, stageI); }
public void next(string mode) { if (UnlockedScreens.Count() == 0 && (mode.ToLower() == "tip" || mode.ToLower() == "enrichment")) { return; } Console.Clear(); WritingText(Path.Value); Console.WriteLine(); Console.WriteLine($"enter 'n' to go to the next {mode}, or 'p' to go to the previous {mode}."); Console.WriteLine(); Console.WriteLine("(Those are shortcuts for 'next'[n] and 'previous'[p], by the way)"); Console.WriteLine(); MainMeunMessage(); Console.WriteLine(); string input = Console.ReadLine(); while (input.ToLower() != "n" && input.ToLower() != "p" && input.ToLower() != "m") { Console.WriteLine(); Console.WriteLine("Invalid input. Enter again:"); Console.WriteLine(); input = Console.ReadLine(); } if (ShouldIReturnToMeunByEndingFunction(input)) { return; } switch (input.ToLower()) { case "p": if (mode.ToLower() == "manual") { Path = RecentScreen.Element("PreviousScreen"); } else if (mode == "tip" || mode == "enrichment") { int index = IndexOfCurrentScreen(UnlockedScreens, RecentScreen); if (index > 0) { RecentScreen = UnlockedScreens.ElementAt(index - 1); Path = RecentScreen.Element("Path"); } else { return; } } break; case "n": if (mode.ToLower() == "manual") { Path = RecentScreen.Element("NextScreen"); } else if (mode == "tip" || mode == "enrichment") { int index = IndexOfCurrentScreen(UnlockedScreens, RecentScreen); if (index + 1 == UnlockedScreens.Count()) { return; } else { RecentScreen = UnlockedScreens.ElementAt(index + 1); Path = RecentScreen.Element("Path"); } } break; } if (string.IsNullOrEmpty(Path.Value)) // this is after the "m" input because path needs to update in the switch { return; } if (mode == "manual") { foreach (var screen in Screens) { if (screen.Element("Path").Value == Path.Value) { RecentScreen = screen; } } } next(mode); }