예제 #1
0
    void Update()
    {
        if (!Collected)
        {
            SendMessage("BlinkColor", SpecialFX.GetDefaultOptionsBlink(Renderer), SendMessageOptions.DontRequireReceiver);
        }
        else
        {
            Renderer.enabled = BeingUsed && !HideWhenShoot &&
                               (EquipType == EquipableType.Weapon ||
                                EquipType == EquipableType.Shield);

            if (Owner && Owner.transform)
            {
                transform.position = new Vector2(Owner.transform.position.x + (Owner.transform.localScale.x / WeaponXScaleEquiped), Owner.transform.position.y + WeaponYOffsetEquiped);

                if (!OwnerIsEnemy)
                {
                    transform.localScale = new Vector2(Owner.transform.localScale.x < 0 ? -1f * Mathf.Abs(transform.localScale.x) : Mathf.Abs(transform.localScale.x), transform.localScale.y);
                }

                if (transform.rotation.eulerAngles.z != 0f)
                {
                    transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, Mathf.Sign(Owner.transform.localScale.x) < 0f ? 45f : -45f));
                }
            }
        }
    }
예제 #2
0
        public static BaseSpecialEffect CreateInstance(
            this SpecialFX type,
            IPoint3D start,
            Map map,
            int range         = 5,
            int repeat        = 0,
            TimeSpan?interval = null,
            Action <EffectInfo> effectHandler = null,
            Action callback = null)
        {
            switch (type)
            {
            case SpecialFX.None:
                return(null);

            case SpecialFX.FirePentagram:
                return(new FirePentagramEffect(start, map, range, repeat, interval, effectHandler, callback));

            /*case SpecialFX.FireSpiral:
             * return new FireSpiralEffect(start, map, range, repeat, interval, effectHandler, callback);*/
            default:
            {
                var rfx = (SpecialFX[])Enum.GetValues(typeof(SpecialFX));

                do
                {
                    type = rfx.GetRandom();
                }while (type == SpecialFX.Random || type == SpecialFX.None);

                return(CreateInstance(type, start, map, range, repeat, interval, effectHandler, callback));
            }
            }
        }
예제 #3
0
 void Update()
 {
     if (!IsOpen)
     {
         SendMessage("BlinkColor", SpecialFX.GetDefaultOptionsBlink(rend), SendMessageOptions.DontRequireReceiver);
     }
 }