示例#1
0
 void Awake()
 {
     thisSprite    = gameObject.GetComponent <SpriteRenderer> ();
     gm            = GameObject.Find("GM").GetComponent <GM> ();
     thisCollider  = gameObject.GetComponent <Collider2D> ();
     pickupTrigger = GameObject.FindWithTag("Player").GetComponent <PickupTrigger>();
 }
        public static CampaignNode InitializeCampaign()
        {
            //Initialize Tutorial Mission Instantiators
            WinCondition            winCon    = new WinCondition();
            TutorialMoneyInitialier moneyInit = new TutorialMoneyInitialier();

            //Initialize Tutorial Missin Triggers
            WinTrigger    win = new WinTrigger();
            SpeakTrigger  tutorial_First_Mayor       = new SpeakTrigger(SpeakerType.Mayor, 1, "I will get your medicine");
            SpeakTrigger  tutorial_First_Shopkeeper  = new SpeakTrigger(SpeakerType.ShopKeeper, 1, "Do you know where to find money?");
            PickupTrigger tutorialMoneyCollection    = new PickupTrigger("Money", 5);
            SpeakTrigger  tutorial_Second_Shopkeeper = new SpeakTrigger(SpeakerType.ShopKeeper, 1, "Here is the money you asked for");
            PickupTrigger pickUpMedicine             = new PickupTrigger("Mayor_Medicine", 1);
            SpeakTrigger  tutorial_Second_Mayor      = new SpeakTrigger(SpeakerType.Mayor, 1, "Here is your medicine");

            CampaignNode temp;
            CampaignNode next;

            //Contruct the campaign tree
            next = new CampaignNode(null, null, win, 7, "You Win!", winCon);
            temp = new CampaignNode(next, null, tutorial_Second_Mayor, 6, "Return to the Mayor to give him his medicine");
            //next = temp;
            //temp = new CampaignNode(next, null, pickUpMedicine, 5, "Pickup Medicine from the Shopkeeper");
            next = temp;
            temp = new CampaignNode(next, null, tutorial_Second_Shopkeeper, 4, "Return to the Shopkeeper with the money");
            next = temp;
            temp = new CampaignNode(next, null, tutorialMoneyCollection, 3, "Collect 5 money to pay the Shopkeeper for the Mayor's medicine", moneyInit);
            next = temp;
            temp = new CampaignNode(next, null, tutorial_First_Shopkeeper, 2, "Talk to the Shopkeeper about the Mayor's medicine");
            next = temp;
            temp = new CampaignNode(next, null, tutorial_First_Mayor, 1, "Talk to the Mayor");
            return(temp);
        }
示例#3
0
        public override void OnCarryStart(Entity carrier)
        {
            base.OnCarryStart(carrier);

            if (PickupTrigger.IsValid())
            {
                PickupTrigger.EnableTouch = false;
            }
        }
示例#4
0
    public override void Spawn()
    {
        base.Spawn();

        SetModel("weapons/rust_pistol/rust_pistol.vmdl");

        PickupTrigger          = new PickupTrigger();
        PickupTrigger.Parent   = this;
        PickupTrigger.Position = Position;
    }
示例#5
0
        public override void OnCarryDrop(Entity dropper)
        {
            LastDropOwner     = Owner;
            TimeSinceLastDrop = 0f;

            base.OnCarryDrop(dropper);

            if (PickupTrigger.IsValid())
            {
                PickupTrigger.EnableTouch = true;
            }
        }
示例#6
0
    public override void Spawn()
    {
        base.Spawn();

        SetModel("weapons/rust_pistol/rust_pistol.vmdl");

        PickupTrigger = new PickupTrigger
        {
            Parent      = this,
            Position    = Position,
            EnableTouch = true
        };
    }
示例#7
0
    public override void Spawn()
    {
        base.Spawn();

        PickupTrigger = new PickupTrigger
        {
            Parent               = this,
            Position             = Position,
            EnableTouch          = true,
            EnableSelfCollisions = false
        };

        PickupTrigger.PhysicsBody.AutoSleep = false;
    }
示例#8
0
        public override void Spawn()
        {
            base.Spawn();

            SetModel("models/potato/ball.vmdl");
            SetupPhysicsFromModel(PhysicsMotionType.Dynamic, false);
            Scale       = 1;
            RenderColor = Color.Random.ToColor32();

            PickupTrigger = new PickupTrigger
            {
                Parent      = this,
                Position    = Position,
                EnableTouch = true
            };
        }
示例#9
0
    public void AddNewItem(int id, float dur = -4.65664672E+11f)
    {
        Inventory.uniqid++;
        if (TutorialManager.status)
        {
            PickupTrigger[] array         = UnityEngine.Object.FindObjectsOfType <PickupTrigger>();
            PickupTrigger   pickupTrigger = null;
            foreach (PickupTrigger pickupTrigger2 in array)
            {
                if ((pickupTrigger2.filter == -1 || pickupTrigger2.filter == id) && (pickupTrigger == null || pickupTrigger2.prioirty < pickupTrigger.prioirty))
                {
                    pickupTrigger = pickupTrigger2;
                }
            }
            try
            {
                if (pickupTrigger != null)
                {
                    pickupTrigger.Trigger(id);
                }
            }
            catch
            {
                MonoBehaviour.print("Error");
            }
        }
        Item item = new Item(this.availableItems[id]);

        if (this.items.Count < 8 || item.noEquipable)
        {
            if (dur != -4.65664672E+11f)
            {
                item.durability = dur;
            }
            this.items.Add(new Inventory.SyncItemInfo
            {
                id         = item.id,
                durability = item.durability,
                uniq       = Inventory.uniqid
            });
        }
    }
示例#10
0
        private void InitializeObjects()
        {
            for (int i = 0; i < 5; i++)
            {
                normalBlocks[i] = new GeneralObject(1)
                {
                    GroupIDs = new int[] { i + 1 },
                    Color1ID = i + 1,
                    Color2ID = i + 21,
                };

                moveTriggers[i] = new MoveTrigger(0, i + 1);

                pickupItems[i] = new PickupItem(1275)
                {
                    TargetItemID = i + 1,
                };

                pickupTriggers[i] = new PickupTrigger(i + 1, 0);

                colorTriggers[i] = new ColorTrigger(i + 1)
                {
                    CopiedColorID = i + 21,
                };

                instantCountTriggers[i] = new InstantCountTrigger(i + 1, i + 1, 0);

                collisionBlocks[i] = new CollisionBlock
                {
                    BlockID = i + 1,
                };

                collisionTriggers[i] = new CollisionTrigger(i + 1, i + 21, i + 1);
            }

            allObjects = new LevelObjectCollection(normalBlocks.Concat(moveTriggers).Concat(pickupItems).Concat(pickupTriggers).Concat(colorTriggers).Concat(instantCountTriggers).Concat(collisionBlocks).Concat(collisionTriggers));
        }
示例#11
0
        public void GetUsedIDs()
        {
            // Part 0
            var moveTrigger = new MoveTrigger();

            moveTrigger.GroupIDs         = groupIDs;
            moveTrigger.TargetGroupID    = 163;
            moveTrigger.TargetPosGroupID = 321;

            var used = moveTrigger.UsedGroupIDs;

            Assert.IsTrue(used.AssignedIDs.Contains(4));
            Assert.IsTrue(used.AssignedIDs.Contains(1));
            Assert.IsTrue(used.AssignedIDs.Contains(412));
            Assert.IsTrue(used.AssignedIDs.Contains(3));
            Assert.AreEqual(163, used.PrimaryID);
            Assert.AreEqual(321, used.SecondaryID);

            var block = new GeneralObject();

            block.GroupIDs = groupIDs;

            used = block.UsedGroupIDs;
            Assert.IsTrue(used.AssignedIDs.Contains(4));
            Assert.IsTrue(used.AssignedIDs.Contains(1));
            Assert.IsTrue(used.AssignedIDs.Contains(412));
            Assert.IsTrue(used.AssignedIDs.Contains(3));
            Assert.AreEqual(0, used.PrimaryID);
            Assert.AreEqual(0, used.SecondaryID);

            // Part 1
            var pulse      = new PulseTrigger();
            var pickupItem = new PickupItem(ObjectLists.PickupItemList[0]);
            var pickup     = new PickupTrigger();
            var collision  = new CollisionTrigger();

            pulse.PulseTargetType = PulseTargetType.Group;
            pulse.TargetGroupID   = 3;
            var groups = pulse.UsedGroupIDs;

            pulse.PulseTargetType = PulseTargetType.ColorChannel;
            pulse.TargetColorID   = 4;
            pulse.CopiedColorID   = 5;
            var colors = pulse.UsedColorIDs;

            pickupItem.TargetItemID = 41;
            pickup.TargetItemID     = 42;
            var items0 = pickupItem.UsedItemIDs;
            var items1 = pickup.UsedItemIDs;

            collision.PrimaryBlockID   = 50;
            collision.SecondaryBlockID = 51;
            var blocks = collision.UsedBlockIDs;

            Assert.AreEqual(3, groups.PrimaryID);
            Assert.AreEqual(0, groups.SecondaryID);
            Assert.AreEqual(4, colors.PrimaryID);
            Assert.AreEqual(5, colors.SecondaryID);
            Assert.AreEqual(41, items0.PrimaryID);
            Assert.AreEqual(0, items0.SecondaryID);
            Assert.AreEqual(42, items1.PrimaryID);
            Assert.AreEqual(0, items1.SecondaryID);
            Assert.AreEqual(50, blocks.PrimaryID);
            Assert.AreEqual(51, blocks.SecondaryID);
        }
示例#12
0
        public TestSceneIDMigrationBackend()
        {
            Children = new Drawable[]
            {
                new SpriteText
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Font   = new FontUsage(size: 26),
                    Text   = "Nothing to see here, too bored to make friendly visualized messages indicating test cases"
                }
            };

            var normalBlocks         = new GeneralObject[5];
            var moveTriggers         = new MoveTrigger[5];
            var pickupItems          = new PickupItem[5];
            var pickupTriggers       = new PickupTrigger[5];
            var colorTriggers        = new ColorTrigger[5];
            var instantCountTriggers = new InstantCountTrigger[5];
            var collisionBlocks      = new CollisionBlock[5];
            var collisionTriggers    = new CollisionTrigger[5];

            for (var i = 0; i < 5; i++)
            {
                normalBlocks[i] = new GeneralObject(1)
                {
                    GroupIDs = new[] { i + 1 },
                    Color1ID = i + 1,
                    Color2ID = i + 21
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                moveTriggers[i] = new MoveTrigger(0, i + 1);
            }
            for (var i = 0; i < 5; i++)
            {
                pickupItems[i] = new PickupItem(1275)
                {
                    TargetItemID = i + 1
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                pickupTriggers[i] = new PickupTrigger(i + 1, 0);
            }
            for (var i = 0; i < 5; i++)
            {
                colorTriggers[i] = new ColorTrigger(i + 1)
                {
                    CopiedColorID = i + 21
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                instantCountTriggers[i] = new InstantCountTrigger(i + 1, i + 1, 0);
            }
            for (var i = 0; i < 5; i++)
            {
                collisionBlocks[i] = new CollisionBlock
                {
                    BlockID = i + 1
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                collisionTriggers[i] = new CollisionTrigger(i + 1, i + 21, i + 1);
            }

            var allObjects = new LevelObjectCollection(normalBlocks.Concat(moveTriggers).Concat(pickupItems)
                                                       .Concat(pickupTriggers).Concat(colorTriggers).Concat(instantCountTriggers).Concat(collisionBlocks)
                                                       .Concat(collisionTriggers).ToList());

            var level = new Level
            {
                Name         = "ID Migration Test Level",
                Description  = "This is a test level to help testing the ID migration feature in the backend",
                LevelObjects = allObjects
            };

            var editor = new Editor(level);

            var step0 = new SourceTargetRange(1, 5, 6);
            var step1 = new SourceTargetRange(21, 25, 46);
            var step2 = new SourceTargetRange(1, 25, 26);
            var step3 = new SourceTargetRange(8, 8, 10);

            AddStep("Perform Group ID migration 1-5 > 6-10",
                    () => editor.PerformGroupIDMigration(new List <SourceTargetRange> {
                step0
            }));
            AddAssert("Verify Group ID migration", () => VerifyGroupIDMigration(step0.TargetFrom));
            AddStep("Perform Color ID migration 1-25 > 26-50",
                    () => editor.PerformColorIDMigration(new List <SourceTargetRange> {
                step2
            }));
            AddAssert("Verify Color ID migration", () => VerifyColorIDMigration(step2.TargetFrom, step1.TargetFrom));
            AddStep("Perform Item ID migration 1-5 > 6-10",
                    () => editor.PerformItemIDMigration(new List <SourceTargetRange> {
                step0
            }));
            AddAssert("Verify Item ID migration", () => VerifyItemIDMigration(step0.TargetFrom));
            AddStep("Perform Block ID migration 21-25 > 46-50",
                    () => editor.PerformBlockIDMigration(new List <SourceTargetRange> {
                step1
            }));
            AddAssert("Verify Block ID migration", () => VerifyBlockIDMigration(step0.SourceFrom, step1.TargetFrom));
            // TODO: Add more test steps with multiple step ID migrations

            bool VerifyGroupIDMigration(int targetFrom)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].GetGroupID(0) != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (moveTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (instantCountTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyColorIDMigration(int targetFromA, int targetFromB)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].Color1ID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (normalBlocks[i].Color2ID != i + targetFromB)
                    {
                        return(false);
                    }
                }

                for (var i = 0; i < 5; i++)
                {
                    if (colorTriggers[i].TargetColorID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (colorTriggers[i].CopiedColorID != i + targetFromB)
                    {
                        return(false);
                    }
                }

                return(true);
            }

            bool VerifyItemIDMigration(int targetFrom)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (pickupItems[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (pickupTriggers[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyBlockIDMigration(int targetFromA, int targetFromB)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (collisionBlocks[i].BlockID != i + targetFromA)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].PrimaryBlockID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (collisionTriggers[i].SecondaryBlockID != i + targetFromB)
                    {
                        return(false);
                    }
                }

                return(true);
            }
        }
    }
}
示例#13
0
        public void IDMigration()
        {
            var normalBlocks         = new GeneralObject[5];
            var moveTriggers         = new MoveTrigger[5];
            var pickupItems          = new PickupItem[5];
            var pickupTriggers       = new PickupTrigger[5];
            var colorTriggers        = new ColorTrigger[5];
            var instantCountTriggers = new InstantCountTrigger[5];
            var collisionBlocks      = new CollisionBlock[5];
            var collisionTriggers    = new CollisionTrigger[5];

            for (int i = 0; i < 5; i++)
            {
                normalBlocks[i] = new GeneralObject(1)
                {
                    GroupIDs = new int[] { i + 1 },
                    Color1ID = i + 1,
                    Color2ID = i + 21,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                moveTriggers[i] = new MoveTrigger(0, i + 1);
            }
            for (int i = 0; i < 5; i++)
            {
                pickupItems[i] = new PickupItem(1275)
                {
                    TargetItemID = i + 1,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                pickupTriggers[i] = new PickupTrigger(i + 1, 0);
            }
            for (int i = 0; i < 5; i++)
            {
                colorTriggers[i] = new ColorTrigger(i + 1)
                {
                    CopiedColorID = i + 21,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                instantCountTriggers[i] = new InstantCountTrigger(i + 1, i + 1, 0);
            }
            for (int i = 0; i < 5; i++)
            {
                collisionBlocks[i] = new CollisionBlock
                {
                    BlockID = i + 1,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                collisionTriggers[i] = new CollisionTrigger(i + 1, i + 21, i + 1);
            }

            var allObjects = new LevelObjectCollection(normalBlocks.Concat(moveTriggers).Concat(pickupItems).Concat(pickupTriggers).Concat(colorTriggers).Concat(instantCountTriggers).Concat(collisionBlocks).Concat(collisionTriggers).ToList());

            var level = new Level
            {
                Name         = "ID Migration Test Level",
                Description  = "This is a test level to help testing the ID migration feature in the backend",
                LevelObjects = allObjects,
            };

            var editor = new Editor(level);

            var step0 = new SourceTargetRange(1, 5, 6);
            var step1 = new SourceTargetRange(21, 25, 46);
            var step2 = new SourceTargetRange(1, 25, 26);
            var step3 = new SourceTargetRange(8, 8, 10);

            editor.PerformGroupIDMigration(new List <SourceTargetRange> {
                step0
            });
            Assert.IsTrue(VerifyGroupIDMigration(step0.TargetFrom));
            editor.PerformColorIDMigration(new List <SourceTargetRange> {
                step2
            });
            Assert.IsTrue(VerifyColorIDMigration(step2.TargetFrom, step1.TargetFrom));
            editor.PerformItemIDMigration(new List <SourceTargetRange> {
                step0
            });
            Assert.IsTrue(VerifyItemIDMigration(step0.TargetFrom));
            editor.PerformBlockIDMigration(new List <SourceTargetRange> {
                step1
            });
            Assert.IsTrue(VerifyBlockIDMigration(step0.SourceFrom, step1.TargetFrom));
            // TODO: Add more test steps with multiple step ID migrations

            bool VerifyGroupIDMigration(int targetFrom)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].GetGroupID(0) != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (moveTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (instantCountTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyColorIDMigration(int targetFromA, int targetFromB)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].Color1ID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (normalBlocks[i].Color2ID != i + targetFromB)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (colorTriggers[i].TargetColorID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (colorTriggers[i].CopiedColorID != i + targetFromB)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyItemIDMigration(int targetFrom)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (pickupItems[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (pickupTriggers[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyBlockIDMigration(int targetFromA, int targetFromB)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (collisionBlocks[i].BlockID != i + targetFromA)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].PrimaryBlockID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (collisionTriggers[i].SecondaryBlockID != i + targetFromB)
                    {
                        return(false);
                    }
                }
                return(true);
            }
        }
    }
}