Exemple #1
0
        private static void BeginStory()
        {
            if (loadedStory == null)
            {
                Console.WriteLine("No story loaded.");
                WaitForEnter();
                return;
            }
            int usedRootChapterCount = loadedStory.GetUsedRootChapterCount();

            if (usedRootChapterCount == 0)
            {
                Console.WriteLine("No root chapters founds found.");
                WaitForEnter();
                return;
            }
            else if (usedRootChapterCount > 1)
            {
                Console.WriteLine("Choose a beginning:");
                Dictionary <string, ushort> validChoiceMap = new Dictionary <string, ushort>();
                for (int i = 0; i < loadedStory.RootChapters.Count; i++)
                {
                    if (loadedStory.RootChapters[i] != 0xFFFF)
                    {
                        Console.WriteLine(i + ") " + loadedStory.Chapters[loadedStory.RootChapters[i]].Title);
                        validChoiceMap.Add(i.ToString(), loadedStory.RootChapters[i]);
                    }
                }
                bool inputValid = false;
                while (!inputValid)
                {
                    Console.Write("Enter choice: ");
                    string choice = Console.ReadLine();
                    if (validChoiceMap.ContainsKey(choice))
                    {
                        inputValid = true;
                        ExploreStory(validChoiceMap[choice]);
                    }
                    else
                    {
                        Console.WriteLine("Invalid input");
                    }
                }
            }
            else
            {
                foreach (ushort rc in loadedStory.RootChapters)
                {
                    if (rc != 0xFFFF)
                    {
                        ExploreStory(rc);
                        return;
                    }
                }
            }
        }