Beispiel #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)));
        }
    }
Beispiel #2
0
 public static void aplicaDano(Criature X,int dano)
 {
     if(X.cAtributos[0].Corrente-dano>0)
         X.cAtributos[0].Corrente -= (uint)dano;
     else
         X.cAtributos[0].Corrente = 0;
 }
Beispiel #3
0
    public static Vector3 useOEmissor(Criature Y, golpe G, Transform T)
    {
        float maisEmissao = 0;
        float acimaDoChao = 0;

        if (Y.distanciaEmissora != null)
        {
            if (Y.distanciaEmissora.ContainsKey(G.nomeID))
            {
                maisEmissao = Y.distanciaEmissora[G.nomeID];
            }
        }

        if (Y.acimaDoChao != null)
        {
            if (Y.acimaDoChao.ContainsKey(G.nomeID))
            {
                acimaDoChao = Y.acimaDoChao[G.nomeID];
            }
        }

        Vector3 posInicial = T.Find(Y.emissor).position
                             + T.forward * (G.DistanciaDeEmissao + maisEmissao)
                             + Vector3.up * acimaDoChao;

        return(posInicial);
    }
Beispiel #4
0
    public static void statusAoGerente(GameObject G, int i)
    {
        Criature   C       = G.GetComponent <umCriature>().X;
        GameObject gerente = GameObject.Find("elementosDoJogo");

        foreach (statusTemporario sT in C.statusTemporarios)
        {
            switch (sT.esseStatus)
            {
            case tipoStatus.envenenado:
                envenenadoFora eF = gerente.AddComponent <envenenadoFora>();
                eF.oAfetado              = C;
                eF.forcaDoDano           = sT.forcaDoDano;
                eF.tempoAteOProximoApply = sT.tempoAteOProximoApply * 2;
                break;

            case tipoStatus.amedrontado:
                amedrontado a = G.GetComponent <amedrontado>();
                a.atualizaTempoParaTroca();
                sT.tempoAteOProximoApply = a.tempoAteOProximoApply;
                break;

            case tipoStatus.paralisado:
                paralisado p = G.GetComponent <paralisado>();
                p.atualizaTempoParaTroca();
                sT.tempoAteOProximoApply = p.tempoAteOProximoApply;
                break;
            }
        }
    }
Beispiel #5
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)));
        }
    }
Beispiel #6
0
    void perfeicao(int quem)
    {
        Criature C = H.criaturesAtivos[quem];

        atributos[] aH = C.cAtributos;
        if ((aH[0].Corrente < aH[0].Maximo
             ||
             aH[1].Corrente < aH[1].Maximo)
            &&
            aH[0].Corrente > 0
            )
        {
            estadoPerfeito(C, quem);
        }
        else if (H.criaturesAtivos[quem].cAtributos[0].Corrente > 0)
        {
            acaoAtual = "eleNaoPrecisa";
        }
        else
        {
            acaoAtual    = "naoUsar";
            mensCorrente = string.Format(textos[2], H.criaturesAtivos[quem].Nome);
            proxAcao     = "naoUsarQuemAberta";
        }
    }
Beispiel #7
0
    private void descarteGolpe()
    {
        mens.entrando       = false;
        passoDaAnimaInicial = 0;

        Criature    X         = fim.vencedor;
        nomesGolpes nomeGolpe = golpeAprendido.nomeID;


        if (menu.escolha != 4)
        {
            mens.mensagem                    = X.Nome + textinhos[2] + X.Golpes[menu.escolha].Nome;
            X.Golpes[menu.escolha]           = new pegaUmGolpe(nomeGolpe).OGolpe();
            X.Golpes[menu.escolha].Basico   += (uint)X.verificaNovoGolpe().mod;
            X.Golpes[menu.escolha].Corrente += (uint)X.verificaNovoGolpe().mod;
            X.Golpes[menu.escolha].Maximo   += (uint)(2 * X.verificaNovoGolpe().mod);
            Invoke("volteMens", 0.15f);
        }
        else
        {
            mens.mensagem = X.Nome + textinhos[3] +
                            new pegaUmGolpe(nomeGolpe).OGolpe().Nome;
            Invoke("preparaVoltaPasseio", 0.15f);
        }

        menu.fechaJanela();
    }
Beispiel #8
0
    void criatureVerificaTrocaGolpe(Criature X)
    {
        if (Input.GetButtonDown("trocaGolpe") && !variaveisChave.shift["TrocaGolpes"])
        {
            int aux = X.golpeEscolhido;
            if (aux < X.Golpes.Length - 1)
            {
                X.golpeEscolhido++;
            }
            else
            {
                X.golpeEscolhido = 0;
            }

            if (!Camera.main.GetComponent <HUDGolpes>())
            {
                HUDGolpes HUD = GameObject.FindGameObjectWithTag("MainCamera").AddComponent <HUDGolpes>();
                HUD.zeraTempo();
            }
            else
            {
                Camera.main.GetComponent <HUDGolpes>().zeraTempo();
            }
        }
    }
Beispiel #9
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);
 }
Beispiel #10
0
    public static void aplicaStatus(Transform T,Criature X,golpe ativa,Criature Y)
    {
        int numStatus;

        switch(ativa.nomeID)
        {
        case nomesGolpes.agulhaVenenosa:
        case nomesGolpes.ondaVenenosa:
        case nomesGolpes.chuvaVenenosa:
            if(recebeStatus(X,ativa,Y))
            {
                envenenado e;
                numStatus = statusTemporarioBase.contemStatus(tipoStatus.envenenado,X);
                if(numStatus==-1)
                {
                    e = T.gameObject.AddComponent<envenenado>();
                    e.forcaDoDano = 2;
                }else
                {
                    e = T.GetComponent<envenenado>();
                    e.forcaDoDano++;
                    e.tempoAteOProximoApply*=(14f/15f);
                    X.statusTemporarios[numStatus].forcaDoDano++;
                    X.statusTemporarios[numStatus].tempoAteOProximoApply*=(14f/15f);
                }
            }
        break;
        case nomesGolpes.olharMal:
            amedrontado a;
            numStatus = statusTemporarioBase.contemStatus(tipoStatus.amedrontado,X);
            if(numStatus == -1)
            {
             	a = T.gameObject.AddComponent<amedrontado>();
                a.tempoAteOProximoApply = 37;
                a.oAfetado = X;
            }else
            {
                a = T.GetComponent<amedrontado>();
                a.tempoAteOProximoApply += 36;
            }
        break;
        case nomesGolpes.olharParalisante:
            print("aqyui");
            paralisado p;
            numStatus = statusTemporarioBase.contemStatus(tipoStatus.paralisado,X);
            if(numStatus == -1)
            {
                p = T.gameObject.AddComponent<paralisado>();
                p.tempoAteOProximoApply = 30;
                p.oAfetado = X;
            }else
            {
                p = T.GetComponent<paralisado>();
                p.tempoAteOProximoApply += 25;
            }
            break;
        }
    }
    public static float verifiqueAtrasoDeAnimacao(Criature Y, nomesGolpes nomeID)
    {
        float atraso = 0;

        if (Y.tempoDeInstancia.ContainsKey(nomeID))
        {
            atraso = Y.tempoDeInstancia[nomeID];
        }
        return(atraso);
    }
Beispiel #12
0
 public static void estadoPerfeito(Criature C,int quem)
 {
     atributos[] aH = C.cAtributos;
     aH[0].Corrente = aH[0].Maximo;
     aH[1].Corrente = aH[1].Maximo;
     statusTemporarioBase.limpaStatus(C,quem);
     if(quem==0)
         statusTemporarioBase.retiraComponenteStatus(tipoStatus.todos,GameObject.Find("CriatureAtivo"));
     else
         statusTemporarioBase.retiraStatusDoGerente(C);
 }
Beispiel #13
0
 bool temGolpeEmRecarga(Criature C)
 {
     bool retorno = false;
     for (int i = 0; i < C.Golpes.Length; i++)//G.UltimoUso < Time.time -  G.TempoReuso
         if (Time.time - C.Golpes[i].UltimoUso < C.Golpes[i].TempoReuso && C.Golpes[i].TempoReuso > 2)
         {
             retorno = true;
             //			print(C.Golpes[i].nomeID);
         }
     return retorno;
 }
    protected void mostraOSelecionado(GameObject G, Criature C, int escolha = 1)
    {
        vidaEmLuta w = G.AddComponent <vidaEmLuta>();

        w.negativo = true;
        w.doMenu   = C;
        w.nomeVida = "escolha" + escolha.ToString();
        w.posX     = 0.74f;
        w.posY     = 0.01f;

        w.n = (int)escolha + 3;
    }
    public void aoCriature()
    {
        if (!GetComponent <cameraPrincipal> ())
        {
            //umCriature criature = GetComponent<umCriature>();

            GameObject heroiX = GameObject.FindGameObjectWithTag("Player");
            heroiX.AddComponent <gravidadeGambiarra>();
            Criature        X  = heroiX.GetComponent <heroi>().criaturesAtivos[0];
            movimentoBasico mB = heroiX.GetComponent <movimentoBasico> ();

            mB.enabled = false;

            heroiX.GetComponent <cameraPrincipal> ().enabled = false;

            cameraPrincipal cameraP = gameObject.AddComponent <cameraPrincipal> ();
            //print(criature+" : "+criature.X+" : "+criature.X.alturaCamera);
            cameraP.altura    = X.alturaCamera;
            cameraP.distancia = X.distanciaCamera;

            cameraP.yMinLimit = -20;
//			cameraP.velocidadeMaxAngular = X.velocidadeMaxAngular;

            if (GetComponent <sigaOLider> ())
            {
                GetComponent <sigaOLider> ().enabled = false;
            }
            if (GetComponent <UnityEngine.AI.NavMeshAgent> ())
            {
                GetComponent <UnityEngine.AI.NavMeshAgent> ().enabled = false;
            }


            gameObject.AddComponent <movimentoBasico> ();

            menuInTravel2 mIT2 = Camera.main.GetComponent <menuInTravel2>();
            if (mIT2)
            {
                mIT2.enabled = false;
            }

            if (!heroi.emLuta && !variaveisChave.shift["TrocaGolpes"])
            {
                vidaEmLuta v = GameObject.Find("Terrain").AddComponent <vidaEmLuta> ();
                v.minhaLuta = true;
                v.doMenu    = GetComponent <umCriature>().X;
                v.nomeVida  = "meuCriature";
                v.n         = 2;
                v.posX      = 0.74f;
                v.posY      = 0.78f;
            }
        }
    }
Beispiel #16
0
    public void remendoDeBug()
    {
        C = GetComponent <umCriature>().X;
        //		print("nivel IA: "+C.mNivel.Nivel);
        defineAlvo();
        C.golpeEscolhido = proximoGolpe();

        for (int i = 0; i < C.Golpes.Length; i++)
        {
            roletaDeGolpes += C.Golpes[i].taxaDeUso;
        }
    }
Beispiel #17
0
    public void remendoDeBug()
    {
        C = GetComponent<umCriature>().X;
        //		print("nivel IA: "+C.mNivel.Nivel);
        defineAlvo();
        C.golpeEscolhido = proximoGolpe();

        for(int i=0;i<C.Golpes.Length;i++)
        {
            roletaDeGolpes += C.Golpes[i].taxaDeUso;
        }
    }
Beispiel #18
0
    Vector2 embaralhaDeMedo(Criature C, int indiceDoMedo, float h, float v)
    {
        Vector2 r = new Vector3(h, v);

        switch ((int)C.statusTemporarios[indiceDoMedo].forcaDoDano)
        {
        case 0:
            r.x = -h;
            r.y = -v;
            break;

        case 1:
        case 9:
            r.x = v;
            r.y = h;
            break;

        case 2:
        case 7:
        case 8:
            r.x = -v;
            r.y = h;
            break;

        case 3:
        case 10:
            r.x = v;
            r.y = -h;
            break;

        case 4:
            r.x = -v;
            r.y = -h;
            break;

        case 5:
            r.x = -h;
            r.y = v;
            break;

        case 6:
            r.x = h;
            r.y = -v;
            break;

        default:
            Debug.LogWarning("Nenhuma das opçoes de embaralhamento foram selecionadas");
            break;
        }

        return(r);
    }
Beispiel #19
0
    void recebePontosDaVitoria()
    {
        Criature vencedor   = X.GetComponent <umCriature> ().criature();
        uint     derrotadoM = inimigoUC.criature().cAtributos[0].Maximo;
        heroi    H          = oHeroi.GetComponent <heroi> ();

        vencedor.mNivel.XP += (uint)Mathf.Round((float)((double)derrotadoM / (double)2));
        if (vencedor.mNivel.verificaPassaNivel(vencedor.cAtributos))
        {
            passoDePassarDeNivel();
        }
        H.cristais += derrotadoM;
    }
Beispiel #20
0
    // Use this for initialization
    void Start()
    {
        controle = GetComponent<CharacterController>();
        heroi H = GameObject.FindGameObjectWithTag ("Player").GetComponent<heroi> ();

        if(GetComponent<sigaOLider>()){
            X = H.criaturesAtivos [0];
            nomeCriature = X.nomeID;
            statusTemporarioBase.colocaStatus(gameObject,X.statusTemporarios);
            statusTemporarioBase.retiraStatusDoGerente(X);
        }
        else
            X = new cCriature (nomeCriature,nivelCriature).criature();
    }
Beispiel #21
0
    void Start()
    {
        skin          = elementosDoJogo.el.skin;
        destaque      = elementosDoJogo.el.destaque;
        coisas        = GameObject.Find("elementosDoJogo").GetComponent <elementosDoJogo>();
        criatureAtivo = GameObject.Find("CriatureAtivo");
        criature      = criatureAtivo.GetComponent <umCriature>().criature();
        posX          = 0.28f;
        posY          = 0.78f;
        aCaixa        = 0.15f;
        lCaixa        = 0.45f;

        posYrr = 2 * Screen.height;
    }
Beispiel #22
0
    public void aprendeuGolpeForaDoEncontro(Criature C, nivelGolpe novoGolpe)
    {
        if (!fim)
        {
            fim           = gameObject.AddComponent <apresentaFim>();
            fim.vencedor  = C;
            fim.derrotado = C;
            fim.fecharML  = false;
        }

        aprendendoGolpeFora = true;

        aprendizadoDeGolpe(novoGolpe);
    }
Beispiel #23
0
    public static Vector3 ataqueEmissor(
        movimentoBasico mB,
        IA_inimigo IA,
        Transform T,
        out Vector3 posInicial,
        Animator A, golpe G, Criature Y)
    {
        acaoDeGolpeRegenerate.paraliseNoTempo(mB, IA);
        Vector3 forwardInicial = T.forward;

        posInicial = useOEmissor(Y, G, T);
        acaoDeGolpeRegenerate.anime("emissor", A);
        return(forwardInicial);
    }
Beispiel #24
0
    public void aprendeuGolpeForaDoEncontro(Criature C,nivelGolpe novoGolpe)
    {
        if(!fim)
        {
            fim = gameObject.AddComponent<apresentaFim>();
            fim.vencedor = C;
            fim.derrotado = C;
            fim.fecharML = false;
        }

        aprendendoGolpeFora = true;

        aprendizadoDeGolpe(novoGolpe);
    }
Beispiel #25
0
 public static void estadoPerfeito(Criature C, int quem)
 {
     atributos[] aH = C.cAtributos;
     aH[0].Corrente = aH[0].Maximo;
     aH[1].Corrente = aH[1].Maximo;
     statusTemporarioBase.limpaStatus(C, quem);
     if (quem == 0)
     {
         statusTemporarioBase.retiraComponenteStatus(tipoStatus.todos, GameObject.Find("CriatureAtivo"));
     }
     else
     {
         statusTemporarioBase.retiraStatusDoGerente(C);
     }
 }
Beispiel #26
0
    public static int contemStatus(tipoStatus esseStatus, Criature X)
    {
        int retorno = -1;

        if (X.statusTemporarios.Count > 0)
        {
            foreach (statusTemporario sT in X.statusTemporarios)
            {
                if (sT.esseStatus == esseStatus)
                {
                    retorno = X.statusTemporarios.IndexOf(sT);
                }
            }
        }

        return(retorno);
    }
Beispiel #27
0
    public static void retiraStatusTemporario(int quem, tipoStatus nomeStatus, heroi H)
    {
        Criature C = H.criaturesAtivos[quem];

        if (quem == 0)
        {
            statusTemporarioBase.retiraComponenteStatus(
                nomeStatus,
                GameObject.Find("CriatureAtivo"));
        }
        else
        {
            statusTemporarioBase.retiraStatusDoGerente(C, tipoStatus.envenenado);
        }

        statusTemporarioBase.tiraStatus(nomeStatus, C.statusTemporarios);
    }
Beispiel #28
0
    public static int contemStatus(tipoStatus esseStatus,Criature X)
    {
        int retorno = -1;
        if(X.statusTemporarios.Count>0)
        {
            foreach(statusTemporario sT in X.statusTemporarios )
            {
                if(sT.esseStatus == esseStatus)
                {
                    retorno = X.statusTemporarios.IndexOf(sT);

                }
            }
        }

        return retorno;
    }
Beispiel #29
0
    // Use this for initialization
    void Start()
    {
        controle = GetComponent <CharacterController>();
        heroi H = GameObject.FindGameObjectWithTag("Player").GetComponent <heroi> ();

        if (GetComponent <sigaOLider>())
        {
            X            = H.criaturesAtivos [0];
            nomeCriature = X.nomeID;
            statusTemporarioBase.colocaStatus(gameObject, X.statusTemporarios);
            statusTemporarioBase.retiraStatusDoGerente(X);
        }
        else
        {
            X = new cCriature(nomeCriature, nivelCriature).criature();
        }
    }
Beispiel #30
0
    void trocaCriatures()
    {
        uint indice1 = retornaMenu("organizaCriatures").escolha;
        uint indice2 = retornaMenu("segundaOrganizaçao").escolha;

//		print (indice2+" : "+indice1);
        indice2 = (indice1 <= indice2) ? indice2 + 1: indice2;
//		print (indice2+" : "+indice1);
        if ((indice1 == 0 && H.criaturesAtivos [(int)indice2].cAtributos[0].Corrente > 0)
            ||
            ((indice2 == 0 && H.criaturesAtivos [(int)indice1].cAtributos[0].Corrente > 0))
            ||
            (indice1 != 0 && indice2 != 0))
        {
            Criature aux = H.criaturesAtivos[(int)indice1];
            H.criaturesAtivos [(int)indice1] = H.criaturesAtivos [(int)indice2];
            H.criaturesAtivos [(int)indice2] = aux;

            if (indice1 == 0 || indice2 == 0)
            {
                animaTroca();
            }
            else
            {
                retornaParaOrganizacao();
            }
        }
        else
        {
            Criature daMens;
            if (indice1 == 0)
            {
                daMens = H.criaturesAtivos[(int)indice2];
            }
            else
            {
                daMens = H.criaturesAtivos[(int)indice1];
            }
            mensS          = gameObject.AddComponent <mensagemBasica>();
            mensS.posY     = 0.68f;
            mensS.skin     = skin;
            mensS.mensagem = tMIT2["mitSoltos"][1] + daMens.Nome + tMIT2["mitSoltos"][2];
            nomeMenu       = "mensagemOrganizacaoFail";
        }
    }
 // Use this for initialization
 void Start()
 {
     controle = GetComponent<CharacterController>();
     animator = GetComponent<Animator>();
     C = dono.GetComponent<umCriature>().X;
     if(dono.name=="inimigo")
     {
         IA = dono.GetComponent<IA_inimigo>();
         mB = GameObject.Find("CriatureAtivo").GetComponent<movimentoBasico>();
     }else
     {
         GameObject G = GameObject.Find("inimigo");
         if(G)
             IA = G.GetComponent<IA_inimigo>();
         mB = dono.GetComponent<movimentoBasico>();
     }
     noImpacto = "impactoDeGosma";
 }
Beispiel #32
0
    public static void limpaStatus(Criature X,int i)
    {
        //		List<statusTemporario> sT = X.statusTemporarios;

        statusTemporarioBase[] sTs;

        if(i==0)
        {
            GameObject G = GameObject.Find("CriatureAtivo");

            /*
            foreach(statusTemporario st in sT)
            {
                switch(st.esseStatus)
                {
                case tipoStatus.envenenado:

                    envenenado e = G.GetComponent<envenenado> ();
                    if(e)
                        e.destrua();
                    break;
                }
            }*/

            sTs = G.GetComponents<statusTemporarioBase>();
            foreach(statusTemporarioBase sTb in sTs)
            {
                sTb.destrua ();
            }

        }else
        {
            sTs = GameObject.Find("elementosDoJogo").GetComponents<statusTemporarioBase>();
            foreach(statusTemporarioBase sTb in sTs)
            {
                if(sTb.oAfetado == X)
                {
                    Destroy(sTb);
                }
            }
        }

        X.statusTemporarios.Clear();
    }
Beispiel #33
0
    public static void limpaStatus(Criature X, int i)
    {
//		List<statusTemporario> sT = X.statusTemporarios;

        statusTemporarioBase[] sTs;

        if (i == 0)
        {
            GameObject G = GameObject.Find("CriatureAtivo");

            /*
             * foreach(statusTemporario st in sT)
             * {
             *      switch(st.esseStatus)
             *      {
             *      case tipoStatus.envenenado:
             *
             *              envenenado e = G.GetComponent<envenenado> ();
             *              if(e)
             *                      e.destrua();
             *              break;
             *      }
             * }*/

            sTs = G.GetComponents <statusTemporarioBase>();
            foreach (statusTemporarioBase sTb in sTs)
            {
                sTb.destrua();
            }
        }
        else
        {
            sTs = GameObject.Find("elementosDoJogo").GetComponents <statusTemporarioBase>();
            foreach (statusTemporarioBase sTb in sTs)
            {
                if (sTb.oAfetado == X)
                {
                    Destroy(sTb);
                }
            }
        }

        X.statusTemporarios.Clear();
    }
Beispiel #34
0
    public void finalisaAprendeGolpe()
    {
        int      quem = (int)retornaMenu("perguntaQuem").escolha;
        Criature C    = H.criaturesAtivos[quem];

        nomesGolpes[] nomeDoGolpeDesseItem = golpeDesseItem();

        if (C.NosMeusGolpes(nomeDoGolpeDesseItem))
        {
            acaoAtual = "animandoNovoGolpe";
        }
        else
        {
            retornaMenusEscondidos();
            acaoAtual    = "naoUsar";
            mensCorrente = string.Format(textos[7], C.Nome, item.nomeEmLinguas(nomeItem));
            proxAcao     = "naoUsarQuemAberta";
        }
    }
Beispiel #35
0
    public static void retiraStatusDoGerente(Criature C, tipoStatus tipo = tipoStatus.todos)
    {
        statusTemporarioBase[] sTs = GameObject.Find("elementosDoJogo").GetComponents <statusTemporarioBase>();

        foreach (statusTemporarioBase sT in sTs)
        {
            if (sT.oAfetado == C)
            {
                if (tipo == tipoStatus.todos)
                {
                    Destroy(sT);
                }
                else
                if (tipo == sT.esseStatus)
                {
                    Destroy(sT);
                }
            }
        }
    }
Beispiel #36
0
    protected void morreuEmLuta()
    {
        contadorDeTempo += Time.deltaTime;
        if (contadorDeTempo > 0.25f)
        {
            Criature X1 = X.GetComponent <umCriature>().criature();
            dead = X.GetComponent <morteEmLuta>();
            if (!dead)
            {
                dead = X.AddComponent <morteEmLuta>();
            }

            X.AddComponent <gravidadeGambiarra>();
            //dead.Inimigo = Inimigo;
            dead.Ia = IA;
            //dead.criature = X;
            dead.oMOrto = X1;

            passoAposAMorte();
        }
    }
 // Use this for initialization
 void Start()
 {
     controle = GetComponent <CharacterController>();
     animator = GetComponent <Animator>();
     C        = dono.GetComponent <umCriature>().X;
     if (dono.name == "inimigo")
     {
         IA = dono.GetComponent <IA_inimigo>();
         mB = GameObject.Find("CriatureAtivo").GetComponent <movimentoBasico>();
     }
     else
     {
         GameObject G = GameObject.Find("inimigo");
         if (G)
         {
             IA = G.GetComponent <IA_inimigo>();
         }
         mB = dono.GetComponent <movimentoBasico>();
     }
     noImpacto = "impactoDeGosma";
 }
    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);
    }
Beispiel #39
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;
    }
Beispiel #40
0
    protected void verifiqueVida()
    {
        Criature M = inimigoUC.criature();

        if (!meuCriatureUC)
        {
            meuCriatureUC = X.GetComponent <umCriature> ();
        }

        Criature X1 = meuCriatureUC.criature();

        contadorDeTempo = 0;

        if (M.cAtributos[0].Corrente <= 0 && X1.cAtributos[0].Corrente > 0)
        {
            umaVitoria();
        }

        if (X1.cAtributos[0].Corrente <= 0)
        {
            umaDerrota();
        }
    }
Beispiel #41
0
    public static void retiraStatusDoGerente(Criature C,tipoStatus tipo = tipoStatus.todos)
    {
        statusTemporarioBase[] sTs = GameObject.Find("elementosDoJogo").GetComponents<statusTemporarioBase>();

        foreach(statusTemporarioBase sT in sTs)
        {
            if(sT.oAfetado == C)
            {
                if(tipo == tipoStatus.todos)
                    Destroy(sT);
                else
                    if(tipo == sT.esseStatus)
                        Destroy(sT);
            }
        }
    }
Beispiel #42
0
    protected void mostraOSelecionado(GameObject G,Criature C,int escolha = 1)
    {
        vidaEmLuta w = G.AddComponent<vidaEmLuta>();
        w.negativo = true;
        w.doMenu = C;
        w.nomeVida = "escolha"+escolha.ToString();
        w.posX = 0.74f;
        w.posY = 0.01f;

        w.n = (int)escolha+3;
    }
Beispiel #43
0
 public void defineAlvo()
 {
     alvo = GameObject.Find("CriatureAtivo").transform;
     criatureAlvo = alvo.GetComponent<umCriature>().criature();
 }
Beispiel #44
0
    // Use this for initialization
    void Start()
    {
        if(GetComponent<umCriature>())
            umC = GetComponent<umCriature>();
        if(umC)
            Y = umC.criature();
        animator = GetComponent<Animator> ();
        nomeParaCancelamento = ativa.nomeID;
        elementos = GameObject.Find ("elementosDoJogo").GetComponent<elementosDoJogo> ();
        switch(ativa.nomeID)
        {
        case nomesGolpes.rajadaDeAgua:
            ataqueRajadaDeAgua();
        break;
        case nomesGolpes.gosmaAcida:
        case nomesGolpes.ondaVenenosa:
        case nomesGolpes.furacaoDeFolhas:
        case nomesGolpes.turboDeAgua:
        case nomesGolpes.rajadaDeFogo:
        case nomesGolpes.ventania:
        case nomesGolpes.ventosCortantes:
        case nomesGolpes.eletricidade:
        case nomesGolpes.eletricidadeConcentrada:
        case nomesGolpes.gosmaDeInseto:
        case nomesGolpes.agulhaVenenosa:
        case nomesGolpes.laminaDeFolha:
        case nomesGolpes.cascalho:
        case nomesGolpes.pedregulho:
        case nomesGolpes.rajadaDeTerra:
        case nomesGolpes.vingancaDaTerra:
        case nomesGolpes.psicose:
        case nomesGolpes.bolaPsiquica:
        case nomesGolpes.anelDoOlhar:
        case nomesGolpes.olharMal:
        case nomesGolpes.olharParalisante:
        case nomesGolpes.rajadaDeGas:
        case nomesGolpes.bombaDeGas:

        case nomesGolpes.sabreDeAsa:
        case nomesGolpes.sabreDeBastao:
        case nomesGolpes.sabreDeEspada:
        case nomesGolpes.sabreDeNadadeira:
            ataqueEmissor();
        break;

        case nomesGolpes.multiplicar:
        case nomesGolpes.garra:
        case nomesGolpes.tapa:
        case nomesGolpes.chute:
        case nomesGolpes.chicoteDeMao:
        case nomesGolpes.espada:
        case nomesGolpes.chicoteDeCalda:
        case nomesGolpes.dentada:
        case nomesGolpes.bico:
        case nomesGolpes.cabecada:
        case nomesGolpes.sobreSalto:
        case nomesGolpes.hidroBomba:
        case nomesGolpes.tosteAtaque:
        case nomesGolpes.tempestadeDeFolhas:
        case nomesGolpes.tempestadeEletrica:
        case nomesGolpes.chifre:
        case nomesGolpes.avalanche:
        case nomesGolpes.bastao:
            impactoBasico(ativa.nomeID.ToString());
        break;

        case nomesGolpes.sobreVoo:
            instanciaVentoDano();
            impactoBasico(ativa.nomeID.ToString());
        break;

        case nomesGolpes.bolaDeFogo:
            ataqueBolaDeFogo();
        break;

        case nomesGolpes.energiaDeGarras:
            paralisaTudo();
        break;

        case nomesGolpes.cortinaDeTerra:
        case nomesGolpes.cortinaDeFumaca:
        case nomesGolpes.teletransporte:
            desapareceAntesDoHit();
        break;

        case nomesGolpes.chuvaVenenosa:
            posInicial = transform.position;
            Destroy(Instantiate(elementos.retorna("impulsoVenenoso"),transform.position,Quaternion.identity),3);
            impactoBasico("chuvaVenenosa");
        break;
        default:
            Destroy(this);
        break;
        }
    }
Beispiel #45
0
    public void calculaDano(Transform T,Criature Y)
    {
        if(Y == null)
        {
            Y = new Criature();
        }
        Criature X = T.GetComponent<umCriature>().criature();
        //golpe golpeDeDano = resgataGolpe(ativa, Y);
        int dano;
        float multiplicador = 1;

        for (uint i=0;i<X.contraTipos.Length;i++)
        {
            if(ativa.Tipo.ToString() == X.contraTipos[i].Nome)
            {
                multiplicador*=X.contraTipos[i].Mod;
            }
        }

        //		print (multiplicador+" :  tipo"+ativa.Tipo+ " : nome X"+X.Nome);

        int pod = (ativa.CaracGolpe != caracGolpe.colisao )
            ?
                Mathf.RoundToInt (Y.cAtributos [2].Basico + (Y.cAtributos [2].Corrente - Y.cAtributos [2].Basico) * Random.Range(0.85f,1))
            :
                Mathf.RoundToInt (Y.cAtributos [3].Basico + (Y.cAtributos [3].Corrente - Y.cAtributos [3].Basico) * Random.Range(0.85f,1))	;

        //		print(Y.cAtributos [2].Basico+" : "+ (Y.cAtributos [2].Corrente - Y.cAtributos [2].Basico).ToString()+" : "+pod);
        //		print(Y.cAtributos [3].Basico+" : "+ (Y.cAtributos [3].Corrente - Y.cAtributos [3].Basico).ToString()+" : "+pod);

        dano = Mathf.Abs(Mathf.RoundToInt( multiplicador * (ativa.Corrente+ativa.mod+ pod)));

        //		print(dano+" : "+multiplicador+" :  "+ativa.Corrente+" : "+ativa.mod);

        int defesa = Mathf.RoundToInt(X.cAtributos[4].Corrente*Random.value);

        //		print(defesa);
        if(defesa<0.75f*dano)
            dano-=defesa;
        else
            dano = (int)(0.25f*dano)>0?(int)(0.25f*dano):1;

        if(dano>ativa.Maximo && multiplicador<=1)
            dano = (int)ativa.Maximo;

        if(elementos==null)
            elementos = GameObject.Find ("elementosDoJogo").GetComponent<elementosDoJogo> ();

        mostraDano(elementos,T,dano);

        aplicaDano(X,dano);
        if(X.cAtributos[0].Corrente > 0 )
            aplicaStatus(T,X,ativa,Y);
    }
Beispiel #46
0
    void OnGUI()
    {
        /*
        if(criatureAtivo!=null){
        if(criature != null)//.Golpes;)
        {
            G = criature.Golpes;
        }else{
            criature = criatureAtivo.GetComponent<umCriature>().criature();
                if(criature.Golpes!= null)
                    G = criature.Golpes
            }*/

        if(criatureAtivo!=null){
            if(criature!= null)//.Golpes;)
            {
                //criature = criatureAtivo.GetComponent<umCriature>().criature();
                G = criature.Golpes;
            }else
                G = null;

        if(G!=null){

        deslizar();

        Rect R = new Rect(posXrr,posYrr,lCr,aCr+0.06f*Screen.height);

        GUILayout.BeginArea(R);

        //GUI.Box(new Rect(0,0,lCr,aCr),"",skin.box);
        GUI.Box(new Rect(0,aCr,lCr,0.06f*Screen.height),"",skin.box);

        tempStyle = new GUIStyle(skin.label);
        tempStyle.alignment = TextAnchor.MiddleCenter;
        GUI.Label(new Rect(0,aCr,lCr,0.06f*Screen.height),G[criature.golpeEscolhido].Nome,tempStyle);

        float ladoQuadrado = Mathf.Min(0.1f*Screen.width,aCr-0.02f*Screen.height);
        for(int i=0;i<4;i++)
        {
            R = new Rect(
                0.01f*Screen.width+0.11f*Screen.width*i,
                0.01f*Screen.height,
                ladoQuadrado,
                ladoQuadrado);
            GUI.Box(R,"",(criature.golpeEscolhido != i )?   skin.box  :   destaque.box);

        if(G.Length>i){
                        if(G[i].UltimoUso > Time.time -  G[i].TempoReuso)
                        {
                            tempStyle = new GUIStyle((criature.golpeEscolhido != i )? skin.box : destaque.box);
                            tempStyle.fontSize = 12;
                            R = new Rect(
                                0.01f*Screen.width+0.11f*Screen.width*i,
                                0.01f*Screen.height+1.05f*ladoQuadrado,
                                ladoQuadrado,
                                0.03f*Screen.height
                                );
                            GUI.Box(R,
                                    (comandos.mostradorDeTempo(-Time.time+G[i].UltimoUso+G[i].TempoReuso))
                                    ,tempStyle);
                        }
            tempStyle = new GUIStyle((criature.golpeEscolhido != i )? skin.box : destaque.box);

            texturaSacana = coisas.retornaMini(G[i].Nome,"golpe");
            tempStyle.normal.background  = texturaSacana;
            tempStyle.hover.background = texturaSacana;
            tempStyle.active .background = texturaSacana;

            R = new Rect(
                0.02f*Screen.width+0.11f*Screen.width*i,
                0.02f*Screen.height,
                ladoQuadrado - 0.02f*Screen.width,
                ladoQuadrado - 0.02f*Screen.width);
            GUI.Box(R,"",tempStyle);

            }
        }

        GUILayout.EndArea();
        }
        }else
        posYrr = 2*Screen.height;
        criatureAtivo = GameObject.Find("CriatureAtivo");
        criature = criatureAtivo.GetComponent<umCriature>().criature();
    }
Beispiel #47
0
    public void calculaDano_PokemonCalc(Transform T,Criature Y)
    {
        if(Y == null)
        {
            Y = new Criature();
        }
        Criature X = T.GetComponent<umCriature>().criature();

        float efetividade = 1;

        for (uint i=0;i<X.contraTipos.Length;i++)
        {
            if(ativa.Tipo.ToString() == X.contraTipos[i].Nome)
            {
                efetividade*=X.contraTipos[i].Mod;
            }
        }

        int variacao = Random.Range(85,101);
        int nivel  = (int)Y.mNivel.Nivel;
        int ataque = (ativa.CaracGolpe != caracGolpe.colisao )
            ?
                (int)Y.cAtributos[2].Corrente
                :
                (int)Y.cAtributos[3].Corrente;
        float poderDoAtaque = ativa.Corrente+ativa.mod;

        int defesa = (int)X.cAtributos[4].Corrente;
        float danoX = (0.01f*efetividade*variacao*((0.2f*nivel+1)*ataque*poderDoAtaque/(25*defesa)));
        int dano = (int)danoX;

        print(defesa+" : "+efetividade+" : "+variacao+" : "+ataque+" : "+poderDoAtaque+" : "+" eu "+danoX);
        if(elementos==null)
            elementos = GameObject.Find ("elementosDoJogo").GetComponent<elementosDoJogo> ();

        GameObject visaoDeDano = elementos.retorna("visaoDeDano");
        visaoDeDano = (GameObject)Instantiate(visaoDeDano,T.position,Quaternion.identity);
        visaoDeDano.GetComponent<danoAparecendo>().dano = dano;

        if(X.cAtributos[0].Corrente-dano>0)
            X.cAtributos[0].Corrente -= (uint)dano;
        else
            X.cAtributos[0].Corrente = 0;
    }
Beispiel #48
0
    static bool recebeStatus(Criature X/*O que recebe o Status*/,golpe ativa,Criature Y)
    {
        bool retorno = false;
        switch(ativa.nomeID)
        {
        case nomesGolpes.agulhaVenenosa:
        case nomesGolpes.ondaVenenosa:
        case nomesGolpes.chuvaVenenosa:
            float ff = ativa.Corrente*
                Mathf.Max(1,
                          Random.Range(0.75f,1f)*Y.cAtributos[(int)nomesAtributos.Poder].Corrente-
                          Random.Range(0,0.75f)*X.cAtributos[(int)nomesAtributos.Defesa].Corrente);
            if(X.contraTipos[(int)nomeTipos.Veneno].Mod*ff+Random.Range(0,100)>80)
                retorno = true;
        break;
        }

        return retorno;
    }
Beispiel #49
0
 bool temGolpeEmRecarga(Criature C)
 {
     bool retorno = false;
     for(int i = 0;i<C.Golpes.Length;i++)//G.UltimoUso < Time.time -  G.TempoReuso
         if(Time.time-C.Golpes[i].UltimoUso<C.Golpes[i].TempoReuso && C.Golpes [i].TempoReuso>2)
     {
             retorno = true;
     //			print(C.Golpes[i].nomeID);
     }
     return retorno;
 }
Beispiel #50
0
    Vector2 embaralhaDeMedo(Criature C,int indiceDoMedo,float h,float v)
    {
        Vector2 r = new Vector3(h,v);
        switch((int)C.statusTemporarios[indiceDoMedo].forcaDoDano)
        {
        case 0:
            r.x = -h;
            r.y = -v;
        break;
        case 1:
        case 9:
            r.x = v;
            r.y = h;
        break;
        case 2:
        case 7:
        case 8:
            r.x = -v;
            r.y = h;
        break;
        case 3:
        case 10:
            r.x = v;
            r.y = -h;
        break;
        case 4:
            r.x = -v;
            r.y = -h;
        break;
        case 5:
            r.x = -h;
            r.y = v;
        break;
        case 6:
            r.x = h;
            r.y = -v;
        break;
        default:
            Debug.LogWarning("Nenhuma das opçoes de embaralhamento foram selecionadas");
        break;
        }

        return r;
    }
Beispiel #51
0
    void Start()
    {
        skin = elementosDoJogo.el.skin;
        destaque = elementosDoJogo.el.destaque;
        coisas = GameObject.Find("elementosDoJogo").GetComponent<elementosDoJogo>();
        criatureAtivo = GameObject.Find("CriatureAtivo");
        criature = criatureAtivo.GetComponent<umCriature>().criature();
        posX = 0.28f;
        posY = 0.78f;
        aCaixa = 0.15f;
        lCaixa = 0.45f;

        posYrr = 2*Screen.height;
    }
Beispiel #52
0
    void criatureVerificaTrocaGolpe(Criature X)
    {
        if(Input.GetButtonDown("trocaGolpe")&&!variaveisChave.shift["TrocaGolpes"])
        {

            int aux = X.golpeEscolhido;
            if(aux < X.Golpes.Length-1 )
                X.golpeEscolhido++;
            else
                X.golpeEscolhido = 0;

            if(!Camera.main.GetComponent<HUDGolpes>())
            {

                HUDGolpes HUD = GameObject.FindGameObjectWithTag("MainCamera") .AddComponent<HUDGolpes>();
                HUD.zeraTempo();
            }else
                Camera.main.GetComponent<HUDGolpes>().zeraTempo();

        }
    }
Beispiel #53
0
    public cCriature(nomesCriatures nome,uint nivel=1)
    {
        switch(nome)
        {
        case nomesCriatures.Xuash:
            X = new Xuash(nivel);
        break;
        case nomesCriatures.Florest:
            X = new Florest(nivel);
        break;
        case nomesCriatures.Marak:
            X = new Marak(nivel);
        break;
        case nomesCriatures.PolyCharm:
            X = new PolyCharm(nivel);
        break;
        case nomesCriatures.FelixCat:
            X = new FelixCat(nivel);
        break;
        case nomesCriatures.Babaucu:
            X = new Babaucu(nivel);
        break;
        case nomesCriatures.Arpia:
            X = new Arpia(nivel);
        break;
        case nomesCriatures.Iruin:
            X = new Iruin(nivel);
        break;
        case nomesCriatures.Steal:
            X = new Steal(nivel);
        break;
        case nomesCriatures.Escorpion:
            X = new Escorpion(nivel);
        break;
        case nomesCriatures.Escorpirey:
            X = new Escorpirey(nivel);
        break;
        case nomesCriatures.Aladegg:
            X = new Aladegg(nivel);
        break;
        case nomesCriatures.Onarac:
            X = new Onarac(nivel);
        break;
        case nomesCriatures.Wisks:
            X = new Wisks(nivel);
        break;

        case nomesCriatures.Serpente:
            X = new Serpente(nivel);
        break;

        case nomesCriatures.Nessei:
            X = new Nessei(nivel);
        break;

        case nomesCriatures.Rabitler:
            X = new Rabitler(nivel);
        break;

        case nomesCriatures.Rocketler:
            X = new Rocketler(nivel);
        break;

        case nomesCriatures.Cabecu:
            X = new Cabecu(nivel);
        break;

        case nomesCriatures.Vampire:
            X = new Vampire(nivel);
        break;

        case nomesCriatures.Fajin:
            X = new Fajin(nivel);
        break;
        case nomesCriatures.Flam:
            X = new Flam(nivel);
        break;
        case nomesCriatures.Croc:
            X = new Croc(nivel);
        break;
        case nomesCriatures.Oderc:
            X = new Oderc(nivel);
        break;

        case nomesCriatures.Abutre:
            X = new Abutre(nivel);
        break;

        case nomesCriatures.Urkan:
            X = new Urkan(nivel);
        break;

        case nomesCriatures.Baratarab:
            X = new Baratarab(nivel);
        break;

        case nomesCriatures.DogMour:
            X = new DogMour(nivel);
        break;
        case nomesCriatures.Izicuolo:
            X = new Izicuolo(nivel);
        break;

        }

        if(X!=null)
            X.nomeID = nome;

        float sum = 0;
        for(int i=0;i<5;i++)
            sum+=X.cAtributos[i].Taxa;

        if(sum!=1)
        {
            Debug.LogWarning("O Criature "+X.nomeID+" nao tem a soma das taxas igual a 1");
        }
    }