Ejemplo n.º 1
0
    public void aplicaGolpe(Criature daki)
    {
        golpe G = daki.Golpes[daki.golpeEscolhido];

        System.GC.Collect();
        Resources.UnloadUnusedAssets();

/*
 *              print(G.UltimoUso+" : "+ Time.time+" : "+heroi.tempoNoJogo+" : "+G.TempoReuso);
 *
 *              print(G.UltimoUso < Time.time -  G.TempoReuso);
 */
        if (G.UltimoUso < Time.time - G.TempoReuso)
        {
            daki.cAtributos[1].Corrente -= daki.Golpes[daki.golpeEscolhido].CustoPE;

            G.UltimoUso = Time.time;
            acaoDeGolpe acao = gameObject.AddComponent <acaoDeGolpe> ();
            acao.ativa = G;
            //acao.emissor = emissor;
        }
        else if (gameObject.GetComponent <movimentoBasico>())
        {
            mensagemEmLuta mL = GetComponent <mensagemEmLuta>();
            if (mL)
            {
                mL.fechador();
            }
            mL          = gameObject.AddComponent <mensagemEmLuta>();
            mL.mensagem = string.Format(textos[1], mostradorDeTempo(G.UltimoUso - (Time.time - G.TempoReuso)));
        }
    }
Ejemplo n.º 2
0
 public override void Start(movimentoBasico mB,
                            IA_inimigo IA, Transform T, Animator A, acaoDeGolpe aG)
 {
     base.Start(mB, IA, T, A, aG);
     Y = aG.GetComponent <umCriature>().criature();
     acaoDeGolpeRegenerate.impactoBasico(nomeID.ToString(),
                                         mB, IA, T, A);
 }
 public static void adicionaOColisor(acaoDeGolpe aG, Transform T, float tempoDecorrido,
                                     nomesGolpes nomeColisor,
                                     string nomeTrail, float tempoDestroy,
                                     bool parentearNoOsso,
                                     Quaternion Q     = default(Quaternion),
                                     string noImpacto = "impactoComum")
 {
     adicionaOColisor(aG, T, tempoDecorrido, nomeColisor, nomeTrail, tempoDestroy, noImpacto, parentearNoOsso, Q);
 }
Ejemplo n.º 4
0
    protected void facaImpacto(GameObject emQ, bool colocaImpactos = false, bool destroiAqui = true, bool noTransform = false)
    {
        if (emQ.gameObject.tag == "eventoComGolpe")
        {
            eventoComGolpe eCG = emQ.GetComponent <eventoComGolpe>();
            acaoDeGolpe    aG2 = dono.GetComponent <acaoDeGolpe>();
            if (eCG && aG2)
            {
                eCG.disparaEvento(aG2.ativa.nomeID);
            }
        }

        GameObject impacto  = GameObject.Find("elementosDoJogo").GetComponent <elementosDoJogo>().retorna(noImpacto);
        GameObject impacto2 = null;

        if (!noTransform)
        {
            impacto2 = (GameObject)Instantiate(impacto, transform.position, Qparticles);
        }

        umCriature umC = emQ.transform.GetComponent <umCriature>();

        if (umC)
        {
            if (umC.criature().cAtributos[0].Corrente > 0)
            {
                if (dono.GetComponent <acaoDeGolpe>())
                {
                    acaoDeGolpe aG = dono.GetComponent <acaoDeGolpe>();
                    aG.tomaDanoUm(emQ.transform);

                    if (noTransform)
                    {
                        impacto2 = (GameObject)Instantiate(impacto, umC.transform.position, Qparticles);
                    }

                    if (colocaImpactos)
                    {
                        aG.impactos++;
                    }
                }
            }
        }

        if (impacto2)
        {
            Destroy(impacto2, 1.5f);
        }
        if (destroiAqui)
        {
            Destroy(gameObject);
        }
    }
    public static void adicionaOColisor(acaoDeGolpe aG, Transform T, float tempoDecorrido, nomesGolpes nomeColisor,
                                        string nomeTrail, float tempoDestroy,
                                        string noImpacto     = "impactoComum",
                                        bool parentearNoOsso = true,
                                        Quaternion Q         = default(Quaternion))
    {
        GameObject view = elementosDoJogo.el.retornaColisor(nomeTrail);
        //		print(nomeColisor);
        colisor C = pegueOColisor(nomeColisor, aG.GetComponent <umCriature>().X);      // = new colisor();

        if (C.osso == "erroColisor")
        {
            return;
        }

        GameObject view2 = aG.facaInstantiate(view, C.deslColisor, Q);


        if (parentearNoOsso)
        {
            view2.transform.parent = T.Find(C.osso).transform;
        }
        else
        {
            view2.transform.parent = T;
        }

        view2.transform.localPosition             = C.deslTrail;
        view2.transform.localRotation             = view.transform.rotation;
        view2.GetComponent <BoxCollider>().center = C.deslColisor;
        view2.name = "colisor" + nomeColisor;


        /*
         *              PARA DESTUIR O COLISOR .
         *              QUANDO O GOLPE ERA INTERROMPIDO
         *              O COLISOR PERMANECIA NO PERSONAGEM
         */
        aG.facaDestroy(view2, tempoDestroy - tempoDecorrido);


        /*************************************************************/


        projetil proj = view2.AddComponent <projetil>();

        proj.velocidadeProjetil = 0f;
        proj.noImpacto          = noImpacto;
        proj.dono = T.gameObject;
        //			proj.forcaDoDano = 25f;
        //addView = true;
    }
Ejemplo n.º 6
0
    //[System.NonSerialized]protected movimentoBasico mB;
    //[System.NonSerialized]protected IA_inimigo IA;
    //[System.NonSerialized]protected Animator A;

    public virtual void Start(movimentoBasico mB,
                              IA_inimigo IA, Transform T, Animator A, acaoDeGolpe aG)
    {
        //this.mB = mB;
        //this.IA = IA;
        this.T = T;
        //this.A = A;
        this.aG = aG;

        procurouAlvo   = false;
        addView        = false;
        tempoDecorrido = 0;
        retorno        = false;
    }
Ejemplo n.º 7
0
    void OnTriggerEnter(Collider emQ)
    {
        if (emQ.tag == "Criature" || emQ.tag == "Player")
        {
            bool dano   = true;
            bool deFogo = false;
            if (emQ.tag == "Criature")
            {
                string[] Tipos = emQ.transform.GetComponent <umCriature>().criature().meusTipos;
                for (int i = 0; i < Tipos.Length; i++)
                {
                    if (Tipos[i] == tipoImune.ToString())
                    {
                        dano   = false;
                        deFogo = true;
                    }
                }
            }
            else
            {
                dano = false;
            }

            if (!deFogo)
            {
                GameObject G = elementosDoJogo.el.retorna(noImpacto);
                G = (GameObject)Instantiate(G, emQ.transform.position, Quaternion.identity);

                Destroy(G, 0.75f);
            }

            if (dano)
            {
                acaoDeGolpe aG = gameObject.AddComponent <acaoDeGolpe>();
                aG.ativa = new golpe();
                aG.tomaDanoUm(emQ.transform);
            }

            if (!deFogo)
            {
                Destroy(gameObject);
            }
        }
    }
Ejemplo n.º 8
0
    public static void ColocaAddView(
        Vector3 posInicial, Vector3 forwardInicial, Criature Y, golpe G, Transform T,
        string tipo, float tempoDeAtraso, acaoDeGolpe aG, string nomeProjetil, float velocidade,
        string impacto = "impactoComum", float tempoDeGolpe = 10, float tempoDeScript = 2)
    {
        if (tempoDeAtraso > 0)
        {
            useOEmissor(Y, G, T);
        }
        GameObject KY = aG.instancieEDestrua(posInicial, forwardInicial, nomeProjetil, tempoDeGolpe, tempoDeScript);


        Iprojetil proj = null;

        switch (tipo)
        {
        case "rigido":
            proj = KY.AddComponent <projetilRigido>();
            break;

        case "basico":
            proj = KY.AddComponent <projetil>();
            break;

        case "status":
            proj = KY.AddComponent <projetilStatusExpansivel>();
            break;

        case "direcional":
            projetilDirecional projD = KY.AddComponent <projetilDirecional>();
            projD.alvo = (aG.gameObject.name == "inimigo")?GameObject.Find("CriatureAtivo"):GameObject.Find("inimigo");
            proj       = projD;
            break;
        }

        proj.velocidadeProjetil = velocidade;
        proj.noImpacto          = impacto;
        proj.dono = aG.gameObject;
    }