void UpdateIdle() { elapsedSinceLastAttack += Time.deltaTime * GameManager.instance.speed; if (elapsedSinceLastAttack > timeBetweenShots) { int r = Random.Range(0, 3); switch (r) { case 0: CreateLeftWave(); break; case 1: CreateDownWave(); break; case 2: CreateSplosionCharge(); break; case 3: CreateBigWave(); break; } state = TheSunState.ATTACK1; //sprite.SetTrigger("attack"); } if (!halfway) { float diff = GetComponent <Damageable>().maxHealth - GetComponent <Damageable>().currentHealth; if (diff >= GetComponent <Damageable>().maxHealth * 0.5f) { halfway = true; timeBetweenShots = timeBetweenShots * 0.8f; } } if (GetComponent <Damageable>().died) { GameManager.instance.AddTimer(1, StartFalling); SwitchToDying(); sprite.SetTrigger("sad"); GetComponent <ContactDamager>().enabled = false; GameManager.instance.AddTimer(0f, AddSoundBlast); GameManager.instance.AddTimer(0.25f, AddSoundBlast); GameManager.instance.AddTimer(0.4f, AddSoundBlast); GameManager.instance.AddTimer(0.65f, AddSoundBlast); GameManager.instance.AddTimer(0.8f, AddSoundBlast); GameManager.instance.AddTimer(0.95f, AddSoundBlast); // add explosions here? } }
void SwitchToIdle() { //sprite.SetTrigger("idle"); state = TheSunState.IDLE; if (halfway) { } }
public void SwitchToDying() { state = TheSunState.DYING; /*foreach (SpinningRing r in FindObjectsOfType<SpinningRing>()) * { * r.End(); * }*/ leftWave.GetComponent <LeftWaveSpawner>().Deactivate(); downWave.GetComponent <LeftWaveSpawner>().Deactivate(); smallSplosion.GetComponent <LeftWaveSpawner>().Deactivate(); }
void SwitchToAngry() { sprite.SetTrigger("angry"); state = TheSunState.ANGRY; GameManager.instance.AddTimer(1, MakeCameraShake); GameManager.instance.AddTimer(2, SwitchToIdle); GameManager.instance.AddTimer(1f, AddSoundBlast); GameManager.instance.AddTimer(1.25f, AddSoundBlast); GameManager.instance.AddTimer(1.4f, AddSoundBlast); GameManager.instance.AddTimer(1.65f, AddSoundBlast); GameManager.instance.AddTimer(1.8f, AddSoundBlast); GameManager.instance.AddTimer(1.95f, AddSoundBlast); }
private void ResetAttackTime() { elapsedSinceLastAttack = 0; state = TheSunState.IDLE; }