public void StartDash() { SFXManager.Instance.Play(SFXType.Dash, transform.position); hitFlasher.FixColor(dashFlashIntensity, totalDashTime); dashTimer = 0f; dashPuff.Play(); dashTrail.GetComponent <TrailRenderer>().enabled = true; }
protected override void DoWeaponActions() { blasterEffect.Play(); DiceBlock diceBlock = SpawnDiceAndRoll(bulletSpawnPoint.forward); if (diceBlock) { diceBlock.PrimeExplosion(armTimeTilExplosion); } }
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); }
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(); }
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; } }