Esempio n. 1
0
    StoryTree MelodyAcknowledged()
    {
        StoryTree tree = new StoryTree();

        StoryTreeUtils.InsertTextIntoTree(tree, SHHHH, DONT_TELL_FATHER);
        return(tree);
    }
 public static void InsertTextIntoTree(StoryTree tree, params string[] list) {
     tree.text = new string[list.Length];
     for (int i = 0; i < list.Length; i++)
     {
         tree.text[i] = i18n.__(list[i]);
     }
 }
Esempio n. 3
0
    StoryTree TigerlilyFirstText()
    {
        StoryTree tree = new StoryTree();

        StoryTreeUtils.InsertTextIntoTree(tree, ELLIPSIS, DISMISSIVE);
        return(tree);
    }
Esempio n. 4
0
    StoryTree TigerlilyFirstTextWithChoices()
    {
        StoryTree tree   = new StoryTree();
        Action    action = delegate() { this.context.MentionedMelody = true; };

        StoryTreeUtils.InsertTextIntoTree(tree, ELLIPSIS, DISMISSIVE);
        StoryTree choice1tree = StoryTreeUtils.CreateChoiceAndReplies(MELODY_SAYS_HI, action, OH, YOU_KNOW_HER);
        StoryTree choice2tree = StoryTreeUtils.CreateChoiceAndReplies(SAY_NOTHING);

        StoryTreeUtils.AddChoicesToTree(tree, choice1tree, choice2tree);
        return(tree);
    }
    public static StoryTree CreateChoiceAndReplies(string choice, Action action, params string[] list) {
        StoryTree choicetree = new StoryTree();
        if (action == null) {
            action = delegate() {};
        }
        choicetree.action = action;
        choicetree.selected = i18n.__(choice);

        if (list == null) {
            list = new string[] {};
        }
        InsertTextIntoTree(choicetree, list);
        return choicetree;
    }
 public void SetSelectedChoice(string selectedChoice)
 {
     foreach (StoryTree choice in storyTree.choices)
     {
         if (choice.selected == selectedChoice)
         {
             storyTree = choice;
             if (storyTree.action != null)
             {
                 storyTree.action();
             }
             return;
         }
     }
 }
Esempio n. 7
0
        public void TestStoryTree_ExpectedBehaviour_FollowsPath()
        {
            // 0
            StoryTree myStory = new StoryTree("A");

            myStory.AddLevel();

            // 1
            myStory.AddNode(() => { return(new StorySwitch(1)); });


            //0
            myStory.AddLevel();
            myStory.AddNode(new StoryNodeDefault(() =>
            {
                return(new StorySwitch(1));
            }));

            myStory.AddNode(new StoryNodeDefault(() =>
            {
                return(new StorySwitch(0));
            }));
            /////////////////////////////////////////

            //1
            myStory.AddLevel();
            myStory.AddNode(() => { return(new StorySwitch(1)); });
            myStory.AddNode(() => { return(new StorySwitch(0)); });

            //7
            myStory.AddLevel();
            myStory.AddNode(() => { return(new StorySwitch(6)); });
            myStory.AddNode(() => { return(new StorySwitch(7)); });
            myStory.AddNode(() => { return(new StorySwitch(8)); });

            myStory.Start();

            List <IStoryNode> test = myStory.TraversePath();

            List <int> expected = new List <int> {
                0, 1, 0, 1, 7
            };

            for (int i = 0; i < test.Count; i++)
            {
                Assert.IsTrue(test[i].getResult().option == expected[i]);
            }
        }
Esempio n. 8
0
        public static void adventure1()
        {
            StoryTree root = new StoryTree("Journey");

            StoryTree myStory = root.branch("The Beginning");

            myStory.AddLevel();

            myStory.AddNode(() =>
            {
                return(new StorySwitch(UI.promptForOptions("Would You Like To go Left or Right",
                                                           new List <string>()
                {
                    "Left", "Right"
                })));
            });

            myStory.AddLevel();

            myStory.AddNode(() =>
            {
                Console.WriteLine("You Are Eaten By a Bear!");
                return(new StorySwitch(false));
            });

            myStory.AddNode(() =>
            {
                Console.WriteLine("You continue on the right path");
                Console.WriteLine("The path Splits 3 ways Each has a sign leading to Camelot, Babylon and Constantinople");
                Console.WriteLine("You are growing slightly fatigued and feel like taking a nap also...");

                return(new StorySwitch(UI.promptForOptions("Which Way do you choose to go?",
                                                           new List <string>()
                {
                    "Camelot", "Babylon", "Constantinople", "Nap"
                })));
            });

            myStory.AddLevel();

            myStory.AddNode(() =>
            {
                UI.printAndWait("You walk to Camelot...", 1000);
                Console.WriteLine("They send you back on a Sick Horse.");
                UI.printAndWait("You make it back and the horse dies", 600);
                Console.WriteLine("You are back to the beginning and go left");
                return(new StorySwitch(1, 0));
            });

            myStory.AddNode(() =>
            {
                UI.printAndWait("You Pace 2000 steps to Babylon...", 1000);
                Console.WriteLine("They Murder you for Trespassing!");
                return(new StorySwitch(false));
            });


            myStory.AddNode(() =>
            {
                UI.printAndWait("You Start Your merry Way to Constantinople", 1000);
                myStory.changeChapter("Skipping along to Constantinople");
                return(new StorySwitch(0));
            });

            StoryTree constantinople = myStory.branch("Skipping along to Constantinople");

            constantinople.AddLevel();

            constantinople.AddNode(() =>
            {
                Console.WriteLine("The king of Constantinople greets you");
                Console.WriteLine("What do you do?");
                return(new StorySwitch(UI.promptForOptions("Shake Hand / Bow",
                                                           new List <string>()
                {
                    "Shake", "Bow"
                })));
            });

            constantinople.AddLevel();

            constantinople.AddNode(() =>
            {
                UI.printAndWait("King: How dare thee!", 400);
                Console.WriteLine("You are Beheaded");
                return(new StorySwitch(false));
            });

            constantinople.AddNode(() =>
            {
                Console.Write("King: Welcome Traveler.");
                return(new StorySwitch(0));
            });

            constantinople.AddLevel();

            constantinople.AddNode(() =>
            {
                return(new StorySwitch(UI.promptForOptions("The king asks you the meaning of life is. What do you say?",
                                                           new List <string>()
                {
                    "I don't know", "42", "Music", "Food"
                })));
            });

            constantinople.AddLevel(new List <IStoryNode> {
                new StoryNodeDefault(() =>
                {
                    UI.printAndWait("King: Not much of a philosopher", 1000);
                    Console.WriteLine("Let's try again");
                    return(new StorySwitch(1, 1));
                }),
                new StoryNodeDefault(() =>
                {
                    Console.WriteLine("You are abducted by Aliens");
                    return(new StorySwitch(1, 1));
                }),
                new StoryNodeDefault(() =>
                {
                    Console.WriteLine("Join me for merry making in the mess hall");
                    return(new StorySwitch(1));
                }),
                new StoryNodeDefault(() =>
                {
                    Console.WriteLine("Join me for food in the mess hall");
                    constantinople = new StoryTree("");
                    constantinople.changeChapter("apple");
                    return(new StorySwitch(false));
                })
            });


            myStory.AddNode(() =>
            {
                Console.WriteLine("You Walk into the Woods to take a nap");
                Console.WriteLine("You wake up feeling Refreshed in the morning and don't feel like leaving");
                return(new StorySwitch(false));
            });


            myStory.Start();
        }
Esempio n. 9
0
        public static void dinosaurLand()
        {
            StoryTree root = new StoryTree("Journey");

            StoryTree myStory = root.branch("Dinosaur Land");

            myStory.AddLevel();
            myStory.AddNode(() =>
            {
                Console.WriteLine("Welcome to Dinosaur Land. There are a lot of Dinosaurs");
                return(new StorySwitch(0));
            });

            myStory.AddLevel();

            myStory.AddNode(() =>
            {
                return(new StorySwitch(UI.promptForOptions("Would You Like To go Left or Right",
                                                           new List <string>()
                {
                    "Left", "Right"
                })));
            });


            myStory.AddLevel(new List <IStoryNode> {
                new StoryNodeDefault(() =>
                {
                    Console.WriteLine("Look out there are a bunch of evil dogs after you");
                    Console.WriteLine("What Do You Do?");

                    return(new StorySwitch(UI.promptForOptions("Run, Fight",
                                                               new List <string>()
                    {
                        "Run", "Fight"
                    })));
                }),
                new StoryNodeDefault(() =>
                {
                    Console.Clear();
                    UI.printAndWait("A Volcano Erupts..", 500);
                    UI.printAndWait("You Run For Cover", 500);
                    Console.WriteLine("You are buried in ash and die");
                    return(new StorySwitch(false));
                })
            });

            myStory.AddLevel(new List <IStoryNode> {
                new StoryNodeDefault(() =>
                {
                    Console.Clear();
                    UI.printAndWait("The dogs catch you", 750);
                    Console.WriteLine("You are Torn to Shreds");

                    return(new StorySwitch(false));
                }),
                new StoryNodeDefault(() =>
                {
                    UI.printAndWait("You manage to fight off the dogs", 500);
                    Console.WriteLine("The Dogs flee");
                    return(new StorySwitch(0));
                })
            });

            myStory.AddLevel();
            myStory.AddNode(() =>
            {
                Console.Clear();
                UI.printAndWait("You continue walking", 2000);
                UI.printAndWait("You begin to feel Very tired from walking", 500);
                Console.WriteLine("You see a cave");
                return(UI.yesNo("would you like to go in the cave") ? new StorySwitch(0) : new StorySwitch(1));
            });

            myStory.AddLevel(new List <IStoryNode>()
            {
                new StoryNodeDefault(() => {
                    Console.Clear();
                    UI.printAndWait("You go Into the cave", 300);
                    Console.WriteLine("You see a fire that's surrounded by cavemen");
                    Console.WriteLine("You Walk up to the fire");
                    myStory.changeChapter("fire with the cavemen");
                    return(new StorySwitch(0));
                }),
                new StoryNodeDefault(() => {
                    return(new StorySwitch(false));
                })
            });

            StoryTree fire = myStory.branch("fire with the cavemen");

            fire.AddLevel(new List <IStoryNode>()
            {
                new StoryNodeDefault(() => { UI.printTitle("Fire with the cavemen");
                                             return(new StorySwitch(0)); })
            });
            myStory.Start();
        }
 public ConversationHelper(string json)
 {
     storyTree = JsonUtility.FromJson <StoryTree>(json);
 }
 public ConversationHelper(StoryTree tree)
 {
     storyTree = tree;
 }
 public static void AddChoicesToTree(StoryTree tree, params StoryTree[] list) {
     tree.choices = list;
 }