public override void IniciaGolpe(GameObject G)
 {
     addView          = false;
     tempoDecorrido   = 0;
     carac.posInicial = Emissor.UseOEmissor(G, this.Nome);
     DirDeREpulsao    = G.transform.forward;
     AnimadorCriature.AnimaAtaque(G, "emissor");
 }
Ejemplo n.º 2
0
    public override void IniciaGolpe(GameObject G)
    {
        if (aImpacto == null)
        {
            aImpacto = new AtualizadorDeImpactoAereo();
        }

        aImpacto.ReiniciaAtualizadorDeImpactos(G);
        DirDeREpulsao = G.transform.forward;
        AnimadorCriature.AnimaAtaque(G, "emissor");

        GameObject instancia = elementosDoJogo.el.retorna(carac.prepara.ToString());

        MonoBehaviour.Destroy(
            MonoBehaviour.Instantiate(instancia, G.transform.position, Quaternion.LookRotation(G.transform.forward)), 5);
    }
Ejemplo n.º 3
0
    public void ImpactoAtivo(GameObject G, IGolpeBase ativa, CaracteristicasDeImpactoComSalto caracteristica, float colocarColisor = 0)
    {
        tempoDecorrido += Time.deltaTime;

        if (!procurouAlvo)
        {
            alvoProcurado = CriaturesPerto.procureUmBomAlvo(G);
            procurouAlvo  = true;
            // Debug.Log(alvoProcurado + "  esse é o alvo");
            AtualizadorDeImpactos.ajudaAtaque(alvoProcurado, G.transform);
            if (alvoProcurado != null)
            {
                ativa.DirDeREpulsao = (Vector3.ProjectOnPlane(alvoProcurado.position - G.transform.position, Vector3.up)).normalized;
            }

            AnimadorCriature.AnimaAtaque(G, ativa.Nome.ToString());

            /* aproveitado da geração 1 de scripts*/
            ao        = G.AddComponent <impactoAoChao>();
            ao.aoChao = caracteristica.toque.ToString();
            /* ******************* */
        }

        if (!adview && tempoDecorrido > colocarColisor)
        {
            ColisorDeGolpe.AdicionaOColisor(G, ativa, caracteristica.deImpacto, tempoDecorrido + ativa.TempoDeMoveMin);

            adview = true;
        }

        if (caracteristica.final == ImpactoAereoFinal.MaisAltoQueOAlvo)
        {
            MaisAltoQueOAlvo(G, ativa);
        }
        else
        {
            AvanceEPareAbaixo(G, ativa);
        }


        if (tempoDecorrido > ativa.TempoDeMoveMax)
        {
            nav.enabled = estavaParada;
        }
    }
Ejemplo n.º 4
0
    public override void IniciaGolpe(GameObject G)
    {
        addView        = false;
        tempoDecorrido = 0;
        procurouAlvo   = false;
        posInicial     = G.transform.position;
        DirDeREpulsao  = G.transform.forward;

        AnimadorCriature.AnimaAtaque(G, Nome.ToString());

        MonoBehaviour.Destroy(
            MonoBehaviour.Instantiate(
                elementosDoJogo.el.retorna("subindoSobreVoo"),
                G.transform.position,
                Quaternion.identity), 0.5f);

        nav         = G.GetComponent <NavMeshAgent>();
        ligaNav     = nav.enabled;
        nav.enabled = false;
    }
Ejemplo n.º 5
0
 public override void IniciaGolpe(GameObject G)
 {
     aImpacto = new AtualizadorDeImpactos();
     aImpacto.ReiniciaAtualizadorDeImpactos();
     AnimadorCriature.AnimaAtaque(G, Nome.ToString());
 }