Exemplo n.º 1
0
        //so originally the mod wasn't going to involve a normal terraria world at all, and the played would be dumped into a now-cut level (some of the content of which has ended up in the desert arena)
        //this is what would have happened before the player was dropped in

        static SequenceQueue ConstructIntroSequence(Player player)
        {
            Vector2       destination = 16 * new Vector2(259, 1726);
            SequenceQueue queue       = new SequenceQueue(Sequence.IntroCutscene);
            PlayerFixer   pf          = player.GetModPlayer <PlayerFixer>();

            queue.Append(new ImmobiliseItem());
            queue.Append(new PlayerHolderItem(player, new Vector2(4756 * 16, 249 * 16)));
            queue.Append(new ChangeMountItem(player, ModContent.GetInstance <StartingShip>().Type));
            queue.Append(new SpawnChangeItem(destination, player));
            queue.Append(new PauseItem(300));
            queue.Append(new SpeechItem(new SpeechBubble("Hmmm, this doesn't look anything like my starmap...so it was a left at the Crab Nebula, right at the supermassive black hole, right at the...", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 480), pf, new Vector2(100, -100)));
            queue.Append(new SpeechItem(new SpeechBubble("Oh my mistake that should have been a left at the Crab Nebula, which means on the map I should be...", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 300), pf, new Vector2(100, -100)));
            queue.Append(new SpeechItem(new SpeechBubble("...off the edge of it. Which makes me lost.", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 300), pf, new Vector2(100, -100)));
            queue.Append(new PauseItem(240));
            queue.Append(new SpeechItem(new SpeechBubble("I wonder what's on the radio in these parts...", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 300), pf, new Vector2(100, -100)));
            queue.Append(new SoundEffectItem(665, "Sounds/RadioSound"));
            queue.Append(new SpeechItem(new SpeechBubble("Gosh they've got some weird music around here.", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 180), pf, new Vector2(100, -100)));
            queue.Append(new SpeechItem(new SpeechBubble("ERROR: ENGINE FAILURE!", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 180), pf, new Vector2(-400, -100)));
            queue.Append(new SpaceShipCrashItem(player));
            queue.Append(new SpeechItem(new SpeechBubble("This is not at all good...", (int)pf.GetScreenPosition().X, (int)pf.GetScreenPosition().Y, 400, 180), pf, new Vector2(100, -100)));
            queue.Append(new SpaceShipCrashItem(player));
            queue.Append(new PlayerHolderItem(player, destination));
            queue.Append(new PauseItem(240));
            queue.Append(new SpaceShipCrashItem(player));
            queue.Append(new ChangeMountItem(player));
            queue.Append(new PlayerHolderItem(player));
            queue.Append(new MobiliseItem());

            return(queue);
        }
Exemplo n.º 2
0
        //If origin == destination don't do the space sequence
        //Change spawn, takeoff, teleport, inflight, teleport, landing, changemount, mobilise
        public static SequenceQueue ConstructSpaceSequence(Dimensions.Dimensions origin, Dimensions.Dimensions destination, Player player, Vector2 destLoc, bool addPlatform = false)
        {
            SequenceQueue queue = new SequenceQueue(Sequence.InSpace);

            queue.Append(new ImmobiliseItem());
            queue.Append(new SpawnChangeItem(destLoc, player));
            queue.Append(new ShipTakeOffItem(player));
            if (origin != destination)
            {
                queue.Append(new ChangeDimensionItem(Dimensions.Dimensions.Travel));
                queue.Append(new TeleportItem(spaceLocation, player));
                queue.Append(new ShipTravelItem((origin, destination), player));
                queue.Append(new ChangeDimensionItem(destination));
            }
            if (addPlatform)
            {
                queue.Append(new AddPlatformItem(destLoc / 16f, destination));
            }
            queue.Append(new TeleportItem(destLoc, player));

            queue.Append(new ShipLandItem(player));
            queue.Append(new ChangeMountItem(player));
            queue.Append(new MobiliseItem());
            return(queue);
        }
Exemplo n.º 3
0
        public object Clone()
        {
            SequenceQueue queue = new SequenceQueue(sequence);

            foreach (SequenceQueueElement s in elements)
            {
                queue.Append((SequenceQueueElement)s.Clone());
            }
            return(queue);
        }
Exemplo n.º 4
0
        public static SequenceQueue ConstructBasicShopSequence(Character src, string introText, params ShopItem[] items)
        {
            SequenceQueue queue = new SequenceQueue(Sequence.ShopTalk);

            queue.Append(new StopAIItem(src));
            queue.Append(new ClearAmbientTextItem());
            queue.Append(new CancellableSpeechItem(introText, src, new Vector2(40, -40), 400, 60));
            queue.Append(new ShopSeqItem(src, items, items));
            queue.Append(new SpeechItem(Main.rand.Next(goodbyeText), src, new Vector2(40, -40), 400, 60));
            queue.Append(new StartAIItem(src));
            return(queue);
        }
Exemplo n.º 5
0
        public static SequenceQueue ConstructTestShopSequence(Character src, string introText, params ShopItem[] items)
        {
            /*
             * SequenceQueue queue = new SequenceQueue(Sequence.ShopTalk);
             * queue.Append(new StopAIItem(src));
             * queue.Append(new ClearAmbientTextItem());
             * queue.Append(new SelectionSpeechItem("How can I help you today?", src, new Vector2(40, -40), 400, new SpeechOption("Who are you?", ))
             * queue.Append(new CancellableSpeechItem(introText, src, new Vector2(40, -40), 400, 60));
             * queue.Append(new ShopSeqItem(src, items, items));
             * queue.Append(new SpeechItem(Main.rand.Next(goodbyeText), src, new Vector2(40, -40), 400, 60));
             * queue.Append(new StartAIItem(src));
             */
            SequenceQueue queue = new SequenceQueue(Sequence.InSpace);

            return(queue);
        }
Exemplo n.º 6
0
 public SequenceTrigger(Rectangle rect, Sequence seq)
 {
     sequence      = SequenceBuilder.CloneSequence(seq);
     triggerRegion = rect;
 }