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);
        }
Exemplo n.º 2
0
        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);
        }