Esempio n. 1
0
    public void Stop()
    {
        StopAllCoroutines();

        if (!keepcolor)
        {
            if (channelmode)
            {
                try
                {
                    pulseTrigger = pulseParent.getActiveTrigger(channel_id).GetComponent <PulseTrigger>();
                }
                catch { pulseTrigger = null; }
                activePulseTrigger = pulseTrigger != null && !pulseTrigger.getFinished();
                if (!activePulseTrigger)
                {
                    channel.Set(new_color);
                }
                else
                {
                    pulseTrigger.setOldColor(new_color);
                }
                //channel.Set(new_color);
            }
            else
            {
                foreach (GameObject obj in objects)
                {
                    if (obj.GetComponent <SpriteRenderer>() != null)
                    {
                        SpriteRenderer renderer = obj.GetComponent <SpriteRenderer>();
                        renderer.color = new_color;
                    }
                    else if (obj.GetComponent <Tilemap>() != null)
                    {
                        Tilemap renderer = obj.GetComponent <Tilemap>();
                        renderer.color = new_color;
                    }
                    else if (obj.GetComponent <Light2D>() != null)
                    {
                        Light2D renderer = obj.GetComponent <Light2D>();
                        renderer.color = new_color;
                    }
                    else if (obj.GetComponent <Graphic>() != null)
                    {
                        Graphic renderer = obj.GetComponent <Graphic>();
                        renderer.color = new_color;
                    }
                }
            }
        }

        inuse = false;

        if (oneuse)
        {
            Destroy(gameObject);
        }
    }
Esempio n. 2
0
    private IEnumerator ChangeColor(int index)
    {
        float      time = 0;
        Color      curr = curr_color[index];
        GameObject obj  = new GameObject();

        if (!channelmode)
        {
            obj = objects[index];
        }

        if (duration > 0)
        {
            while (curr != new_color)
            {
                //curr_color = Color.Lerp(curr_color, new_color, Mathf.PingPong(Time.time, 1/duration));
                curr = Color.Lerp(curr, new_color, time);

                if (channelmode)
                {
                    try
                    {
                        pulseTrigger = pulseParent.getActiveTrigger(channel_id).GetComponent <PulseTrigger>();
                    }
                    catch { pulseTrigger = null; }
                    activePulseTrigger = pulseTrigger != null && !pulseTrigger.getFinished();
                    if (!activePulseTrigger)
                    {
                        channel.Set(curr);
                    }
                    else
                    {
                        pulseTrigger.setOldColor(curr);
                    }
                }
                else
                {
                    if (obj.GetComponent <SpriteRenderer>() != null)
                    {
                        SpriteRenderer renderer = obj.GetComponent <SpriteRenderer>();
                        renderer.color = curr;
                    }
                    else if (obj.GetComponent <Tilemap>() != null)
                    {
                        Tilemap renderer = obj.GetComponent <Tilemap>();
                        renderer.color = curr;
                    }
                    else if (obj.GetComponent <Light2D>() != null)
                    {
                        Light2D renderer = obj.GetComponent <Light2D>();
                        renderer.color = curr;
                    }
                    else if (obj.GetComponent <Graphic>() != null)
                    {
                        Graphic renderer = obj.GetComponent <Graphic>();
                        renderer.color = curr;
                    }
                }

                time += Time.deltaTime / (duration * 100);
                yield return(null);
            }
        }

        if (channelmode)
        {
            try
            {
                pulseTrigger = pulseParent.getActiveTrigger(channel_id).GetComponent <PulseTrigger>();
            }
            catch { pulseTrigger = null; }
            activePulseTrigger = pulseTrigger != null && !pulseTrigger.getFinished();
            if (!activePulseTrigger)
            {
                channel.Set(new_color);
            }
            else
            {
                pulseTrigger.setOldColor(new_color);
            }
        }
        else
        {
            if (obj.GetComponent <SpriteRenderer>() != null)
            {
                SpriteRenderer renderer = obj.GetComponent <SpriteRenderer>();
                renderer.color = new_color;
            }
            else if (obj.GetComponent <Tilemap>() != null)
            {
                Tilemap renderer = obj.GetComponent <Tilemap>();
                renderer.color = new_color;
            }
            else if (obj.GetComponent <Light2D>() != null)
            {
                Light2D renderer = obj.GetComponent <Light2D>();
                renderer.color = new_color;
            }
            else if (obj.GetComponent <Graphic>() != null)
            {
                Graphic renderer = obj.GetComponent <Graphic>();
                renderer.color = new_color;
            }
        }

        //Debug.Log("COLOR: " + (channel.channelcolor == new_color));

        if (oneuse)
        {
            Destroy(gameObject);
        }

        inuse = false;
    }
Esempio n. 3
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);
        }