Exemplo n.º 1
0
    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?
        }
    }
Exemplo n.º 2
0
    void SwitchToIdle()
    {
        //sprite.SetTrigger("idle");
        state = TheSunState.IDLE;

        if (halfway)
        {
        }
    }
Exemplo n.º 3
0
    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();
    }
Exemplo n.º 4
0
    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);
    }
Exemplo n.º 5
0
 private void ResetAttackTime()
 {
     elapsedSinceLastAttack = 0;
     state = TheSunState.IDLE;
 }