public override void Execute()
        {
            var rocket = Scene.Find("Rocket");
            var emily = Scene.Find("Emily");
            GenericEvent startWaves = () =>
            {
                emily.Get<EmilyAI>().FixRocket();

                var waveGO = Scene.Find("Final Wave");
                var wave = waveGO.Get<FinalWave>();
                wave.StartWave();

                wave.Midtime += this.StartMidtimeConversation;

                wave.Ended += () =>
                {
                    this.StartEnterRocketConversation();
                    rocket.Get<Rocket>().SetEnterable();
                };
            };

            emily.Get<EmilyAI>().LookAtJack();
            Scene.Find("Door To Rocket Response").Get<Door>().ExecuteOff();
            var speakers = new Speaker[2] { new Speaker("Jack"), new Speaker("Emily") };
            var conversation = new ConversationPiece[]
            {
                new ConversationPiece(1, "Damnit! It's broken\n"),
                new ConversationPiece(1, "It will take a while to repair it.\n" +
                                         "Keep me safe while I'll fix it", startWaves),
            };

            Conversation.Instance.StartConversation(speakers, new ConversationLog(conversation), null);
        }
        private void StartMidtimeConversation()
        {
            var speakers = new Speaker[2] { new Speaker("Jack"), new Speaker("Emily") };
            var conversation = new ConversationPiece[]
            {
                new ConversationPiece(1, "Just a little while longer Jack!"),
            };

            Conversation.Instance.StartConversation(speakers, new ConversationLog(conversation), null);
        }
        public override void Execute()
        {
            GenericEvent openDoorEvent = () =>
            {
                var doorGO = Scene.Find("Door To Break Room");
                var door = doorGO.Get<Door>();
                door.Execute();
            };

            GenericEvent openDoorToRocketEvent = () =>
            {
                var doorGO = Scene.Find("Door To Rocket Response");
                var door = doorGO.Get<Door>();
                Scene.Find("Emily").Get<EmilyAI>().StartRunning();
                door.Execute();
            };

            var speakers = new Speaker[2] { new Speaker("Jack"), new Speaker("Emily") };
            var conversation = new ConversationPiece[]
            {
                new ConversationPiece(0, "Emily? Are you there?\n" +
                                         "Open the door"),

                new ConversationPiece(1, "Jack? Jack!\n" +
                                         "You are finally here, thank god!", openDoorEvent),

                new ConversationPiece(0, "Yeah.. it wasn't easy,\n" +
                                         "but I guess I somehow made it"),

                new ConversationPiece(0, "Are you okay?"),
                new ConversationPiece(1, "Yeah.. I'm.. I'm fine"),

                new ConversationPiece(0, "I don't think anyone can be \"fine\"\n" +
                                         "in this situation, but glad to hear"),

                new ConversationPiece(0, "Do you know what happened\n" +
                                         "to Catalina? Did she make it?"),

                new ConversationPiece(1, "I.. I saw her body from the window.."),
                new ConversationPiece(0, "Damn.. So it's just me and you.\n"),
                new ConversationPiece(0, "We need to get away from here.\n" +
                                         "Is the landing rocket still working?"),

                new ConversationPiece(1, "I'm not sure..."),

                new ConversationPiece(1, "But it's our only way to get out, \n" +
                                         "so we better hope that it's working"),

                new ConversationPiece(1, "Let's go check it.\n" +
                                         "Follow me", openDoorToRocketEvent),
            };

            Conversation.Instance.StartConversation(speakers, new ConversationLog(conversation), null);
        }
        public override void Execute()
        {
            Scene.Find("PirisijaAlku").DestroyIfNotNull();
            Scene.Find("Help & Instructions").DestroyIfNotNull();
            var speakers = new Speaker[2] { new Speaker("Jack"), new Speaker("Emily") };
            var conversation = new ConversationPiece[]
            {
                new ConversationPiece(0, "Hey, it's Jack"),
                new ConversationPiece(1, "Jack? Jack?!?\n" +
                                         "Can you hear me?!"),
                new ConversationPiece(0, "Yeah I can hear you, Emily!\nWhat's wrong?!"),

                new ConversationPiece(1, "Something.. something is out there!\n" +
                                         "They attacked Catalina and Ben!"),

                new ConversationPiece(0, "What do you mean?\nSomething is out there?"),
                new ConversationPiece(0, "We're the only ones on this planet!"),

                new ConversationPiece(1, "I don't know...\nSomething came under the ground.."),
                new ConversationPiece(1, "Oh my god Jack!\nThey just killed Ben!"),
                new ConversationPiece(1, "They are eating him!!\nThey're going to kill me!!"),
                new ConversationPiece(1, "What do I do Jack??\nWhat do I do?!?!"),

                new ConversationPiece(0, "Okay... Holy..\nUmm.. umm... ummm.."),
                new ConversationPiece(0, "We should be together.\nIt's safer that way"),
                new ConversationPiece(0, "Where are you?\nAre you still at the break room?"),

                new ConversationPiece(1, "Yeah I'm at the break room!\nI managed to lock the door."),
                new ConversationPiece(1, "I'm not sure how long\nit will last though.."),
                new ConversationPiece(1, "Those things look strong..."),

                new ConversationPiece(1, "Come here as fast as you can\n"),
                new ConversationPiece(1, "You must go outside to reach\n" +
                                         "this building, so be careful"),

                new ConversationPiece(1, "You should also lock the all\n" +
                                         "the doors on the way"),

                new ConversationPiece(1, "There are already some of \n" +
                                         "those things inside the base"),

                new ConversationPiece(1, "Locking the doors should\n" +
                                         "keep rest of them out."),

                new ConversationPiece(1, "You still have your pistol, right?\n"),
                new ConversationPiece(1, "It's enough for now but try to\n" +
                                         "find something stronger if you can"),
            };

            Conversation.Instance.StartConversation(speakers, new ConversationLog(conversation),
                () => Scene.Find("FirstDoor").GetComponentInChildren<Door>().Execute());
        }
        private void StartEnterRocketConversation()
        {
            var rocket = Scene.Find("Rocket");
            var speakers = new Speaker[2] { new Speaker("Jack"), new Speaker("Emily") };
            var conversation = new ConversationPiece[]
            {
                new ConversationPiece(1, "Jack! Jack! I did it!\n" +
                                         "The rocket is working now!"),

                new ConversationPiece(1, "Come here!\n" +
                                         "Let's leave this place!"),
            };

            Conversation.Instance.StartConversation(speakers, new ConversationLog(conversation),  () => rocket.Get<Rocket>().SetEnterable());
        }