Example #1
0
 public void StartDash()
 {
     SFXManager.Instance.Play(SFXType.Dash, transform.position);
     hitFlasher.FixColor(dashFlashIntensity, totalDashTime);
     dashTimer = 0f;
     dashPuff.Play();
     dashTrail.GetComponent <TrailRenderer>().enabled = true;
 }
Example #2
0
    protected override void DoWeaponActions()
    {
        blasterEffect.Play();
        DiceBlock diceBlock = SpawnDiceAndRoll(bulletSpawnPoint.forward);

        if (diceBlock)
        {
            diceBlock.PrimeExplosion(armTimeTilExplosion);
        }
    }
Example #3
0
    void ShowVFX()
    {
        vfx.gameObject.SetActive(true);
        //foreach (ParticleSystem ps in particleSystems)
        //{
        //    ps.Play();
        //}
        vfx.Play();
        line.widthMultiplier = activeWidth;
        line.material        = activeMaterial;

        SFXManager.Instance.Play(SFXType.LandmarkBlast, transform.position);
    }
Example #4
0
    public void SetPulseProjectileStats(float newScaleRate, float newMaxScale, float newDamage)
    {
        scaleRate = newScaleRate;
        maxScale  = newMaxScale;
        damage    = newDamage;
        VFXOneOff vfx = ps.GetComponent <VFXOneOff>();

        vfx.Stop();
        ParticleSystem.MainModule main = ps.main;
        float newDuration = (maxScale / scaleRate) - main.startLifetime.constantMax;

        main.duration = newDuration;
        vfx.Play();
    }
Example #5
0
        void Update()
        {
            var dt = Time.deltaTime;
            List <IDamageable> objectsInTrap = new List <IDamageable>();

            Physics.OverlapBox(transform.position, new Vector3(2.5f, 2.5f, 2.5f)).ToList().ForEach(collider =>
            {
                var damageable = collider.gameObject.GetComponent <IDamageable>();
                if (damageable.IsNull())
                {
                    return;
                }

                if (!objectsInTrap.Contains(damageable))
                {
                    objectsInTrap.Add(damageable);
                    if (mode == Mode.PressureTrigger && currentState == State.Closed)
                    {
                        Open();
                    }
                }
            });

            if (objectsInTrap.Count == 0)
            {
                Close();
            }

            switch (currentState)
            {
            case State.Closing:
                if (t >= dt)
                {
                    t -= dt;
                }
                else
                {
                    t            = 0f;
                    currentState = State.Closed;

                    if (mode == Mode.ContinuousOpenClose)
                    {
                        stateTimer = stayClosedTime;
                    }
                }

                DrawFrame(t / closeTime);
                break;

            case State.Opening:
                if (t <= openTime - dt)
                {
                    t += dt;
                }
                else
                {
                    t            = openTime;
                    currentState = State.Open;

                    if (fireEffect != null)
                    {
                        fireEffect.Play();
                    }

                    if (mode == Mode.ContinuousOpenClose)
                    {
                        stateTimer = stayOpenTime;
                    }
                }

                DrawFrame(t / openTime);
                break;

            case State.Open:
                damageTimer -= dt;
                if (damageTimer <= 0f)
                {
                    DoDamage(objectsInTrap);
                    damageTimer += 1f;
                }

                if (mode == Mode.ContinuousOpenClose)
                {
                    stateTimer -= dt;
                    if (stateTimer <= 0f)
                    {
                        Close();
                    }
                }
                break;

            case State.Closed:
                if (mode == Mode.ContinuousOpenClose)
                {
                    stateTimer -= dt;
                    if (stateTimer <= 0f)
                    {
                        Open();
                    }
                }
                break;
            }
        }