示例#1
0
    void SwitchToAngry()
    {
        SfxManager.instance.PlaySFX(angry, true);
        sprite.SetTrigger("angry");
        state = VenusState.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);
    }
示例#2
0
 private void ResetAttackTime()
 {
     elapsedSinceLastAttack = 0;
     state = VenusState.IDLE;
 }
示例#3
0
 void SwitchToDying()
 {
     SfxManager.instance.PlaySFX(dying, true);
     state = VenusState.DYING;
 }
示例#4
0
 void SwitchToIdle()
 {
     sprite.SetTrigger("idle");
     state = VenusState.IDLE;
 }
示例#5
0
    void UpdateIdle()
    {
        elapsedSinceLastAttack += Time.deltaTime * GameManager.instance.speed;

        int range = 2;

        if (halfway)
        {
            range = 3;
        }

        if (elapsedSinceLastAttack > timeBetweenShots)
        {
            int r = Random.Range(0, range);

            switch (r)
            {
            case 0:
                DoIdleBlasts();
                break;

            case 1:
                DoSweep();
                break;

            case 2:
                DoCross();
                break;
            }

            SfxManager.instance.PlaySFX(attack);
            state = VenusState.ATTACK1;
            //sprite.SetTrigger("attack");
        }

        if (!halfway)
        {
            float diff = GetComponent <Damageable>().maxHealth - GetComponent <Damageable>().currentHealth;
            if (diff >= GetComponent <Damageable>().maxHealth * 0.5f)
            {
                halfway = true;
                SwitchToAngry();
                GameManager.instance.AddTimer(2, SwitchToIdle);
            }
        }

        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?
        }
    }