Ejemplo n.º 1
0
    void ComportamentoDoMago()
    {
        switch (fase)
        {
        case faseDoMago.rirDoHeroi:
            ProcureRisada();
            break;

        case faseDoMago.rindoDoHeroi:
            tempoDecorrido += Time.deltaTime;
            if (tempoDecorrido > TEMPO_RINDO)
            {
                OcupandoPosicao();
            }

            break;

        case faseDoMago.ocupandoPosicao:
            if (Vector3.Distance(transform.position, pontoDeGuarda) < 3f)
            {
                fase = faseDoMago.emPOsicaoDeAtaque;
            }
            break;

        case faseDoMago.emPOsicaoDeAtaque:
            RotinaDeAtaque();
            break;
        }

        animator.SetFloat("velocidade", nav.velocity.magnitude);
        transform.LookAt(tHeroi);

        transform.position =
            Vector3.Lerp(transform.position, transform.parent.position, Time.deltaTime * VELOCIDADE_PARA_VOLTAR_AO_PAI);
    }
Ejemplo n.º 2
0
 void ProcureRisada()
 {
     if (Vector3.Distance(transform.position, tHeroi.position) > DISTANCIA_PARA_RIR)
     {
         nav.destination = tHeroi.position;
     }
     else
     {
         nav.destination = transform.position;
         animator.SetTrigger("darRisada");
         audioX.clip = risadas[Mathf.Clamp(Random.Range(-2, 2), 0, 1)];
         audioX.Play();
         fase           = faseDoMago.rindoDoHeroi;
         tempoDecorrido = 0;
     }
 }
Ejemplo n.º 3
0
 void OcupandoPosicao()
 {
     fase            = faseDoMago.ocupandoPosicao;
     nav.destination = pontoDeGuarda;
 }