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;
    }
Exemple #2
0
        public static void AdicionaOColisor(GameObject G,
                                            PetAttackBase golpeAtivo,
                                            ImpactFeatures caracteristica,
                                            float tempoDecorrido)
        {
            GameObject view = Resources.Load <GameObject>("DamageColliders/" + caracteristica.nomeTrail.ToString());
            //GameObject view = GameController.g.El.retornaColisor(caracteristica.nomeTrail);
            //		print(nomeColisor);
            colisor C = GetCollider(G, golpeAtivo.Nome);// = new colisor();

            GameObject view2 = (GameObject)MonoBehaviour.Instantiate(view, C.deslColisor, Quaternion.identity);

            view2.transform.localRotation = view.transform.rotation;


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

            view2.transform.localPosition             = C.deslTrail;
            view2.transform.localRotation             = view.transform.rotation;
            view2.GetComponent <BoxCollider>().center = C.deslColisor;
            view2.name = "colisor" + golpeAtivo.Nome.ToString();
            view2.transform.localScale *= (golpeAtivo.ColisorScale * C.ColisorScale);


            /*
             *      PARA DESTUIR O COLISOR .
             *      QUANDO O GOLPE ERA INTERROMPIDO
             *      O COLISOR PERMANECIA NO PERSONAGEM
             */
            MonoBehaviour.Destroy(view2, golpeAtivo.TempoDeDestroy - tempoDecorrido);


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


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

            proj.velocidadeProjetil = 0f;
            proj.noImpacto          = caracteristica.noImpacto;
            proj.dono      = G;
            proj.esseGolpe = golpeAtivo;
            //			proj.forcaDoDano = 25f;
            //addView = true;
        }
Exemple #3
0
    public static void AdicionaOColisor(GameObject G,
                                        IGolpeBase golpeAtivo,
                                        CaracteristicasDeImpacto caracteristica,
                                        float tempoDecorrido)
    {
        GameObject view = elementosDoJogo.el.retornaColisor(caracteristica.nomeTrail);
        //		print(nomeColisor);
        colisor C = pegueOColisor(G, golpeAtivo.Nome);// = new colisor();

        GameObject view2 = (GameObject)MonoBehaviour.Instantiate(view, C.deslColisor, view.transform.rotation);


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

        view2.transform.localPosition             = C.deslTrail;
        view2.transform.localRotation             = view.transform.rotation;
        view2.GetComponent <BoxCollider>().center = C.deslColisor;
        view2.name = "colisor" + golpeAtivo.Nome.ToString();
        view2.transform.localScale *= (golpeAtivo.ColisorScale * C.ColisorScale);


        /*
         *                      PARA DESTUIR O COLISOR .
         *                      QUANDO O GOLPE ERA INTERROMPIDO
         *                      O COLISOR PERMANECIA NO PERSONAGEM
         */
        MonoBehaviour.Destroy(view2, golpeAtivo.TempoDeDestroy - tempoDecorrido);


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


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

        proj.velocidadeProjetil = 0f;
        proj.noImpacto          = caracteristica.noImpacto;
        proj.dono      = G;
        proj.esseGolpe = golpeAtivo;
        //			proj.forcaDoDano = 25f;
        //addView = true;
    }
    public static colisor pegueOColisor(nomesGolpes nomeColisor, Criature XX)
    {
        colisor C = new colisor();

        /*
         *      Quando e feito um saveGame o Criature e salvo em essencia como esta no script,
         *      isso inclui os colisores,
         *      se algum golpe for inserido apos esse save e um novo colisor for inserido
         *      o novo colisor nao aparece no jogo salvo
         *
         *      Para corrigir isso inseri essa linha que questiona a existencia do colisor
         */

        if (XX.colisores.ContainsKey(nomeColisor))
        {
            C = XX.colisores[nomeColisor];
        }
        else
        {
            Criature XXX = new cCriature(XX.nomeID).criature();

            /*
             *      Essa linha verifica a existencia do colisor no script desse Criature,
             *      se existir insere no criature que lançou o golpe
             *      se nao existir da uma mensagem de atençao
             */

            if (XXX.colisores.ContainsKey(nomeColisor))
            {
                XX.colisores.Add(nomeColisor, XXX.colisores[nomeColisor]);
            }
            else
            {
                Debug.LogWarning("O Colisor com o nome \"" + nomeColisor + "\" nao foi encontrado para " + XX.Nome);
                return(new colisor("erroColisor"));
            }
        }

        return(C);
    }
Exemple #5
0
 public colisor(string _osso, float colisorScale)
 {
     this = new colisor(_osso, Vector3.zero, Vector3.zero, colisorScale);
 }
Exemple #6
0
    colisor pegueOColisor(nomesGolpes nomeColisor)
    {
        colisor C = new colisor();
        Criature XX = GetComponent<umCriature>().criature();

        /*
            Quando e feito um saveGame o Criature e salvo em essencia como esta no script,
            isso inclui os colisores,
            se algum golpe for inserido apos esse save e um novo colisor for inserido
            o novo colisor nao aparece no jogo salvo

            Para corrigir isso inseri essa linha que questiona a existencia do colisor
         */

        if(XX.colisores.ContainsKey(nomeColisor))
            C = XX.colisores[nomeColisor];
        else{
            Criature XXX = new cCriature(XX.nomeID).criature();

            /*
                Essa linha verifica a existencia do colisor no script desse Criature,
                se existir insere no criature que lançou o golpe
                se nao existir da uma mensagem de atençao
             */

            if(XXX.colisores.ContainsKey(nomeColisor))
                XX.colisores.Add(nomeColisor,XXX.colisores[nomeColisor] );
            else{
                Debug.LogWarning("O Colisor com o nome \""+nomeColisor+"\" nao foi encontrado para "+XX.Nome);
                return new colisor("erroColisor");
            }

        }

        return C;
    }