示例#1
0
        protected override void EntraNoModoFinalizacao(CriatureBase C)
        {
            Estado = EstadoDeUsoDeItem.emEspera;

            if (GameController.g.HudM.MenuDePause.EmPause)
            {
                Finaliza();
            }
            else if (!esqueceu)
            {
                nomesGolpes nomeDoGolpe = GolpePorAprender(C);
                GameController.g.HudM.Painel.AtivarNovaMens(
                    string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpe),
                                  C.NomeEmLinguas,
                                  GolpeBase.NomeEmLinguas(nomeDoGolpe))
                    , 30
                    );
                GameController.g.HudM.P_Golpe.Aciona(PegaUmGolpeG2.RetornaGolpe(nomeDoGolpe));
                estadoDoAprendeGolpe = EstadoDoAprendeGolpe.aprendiSemEsquecer;
            }
            else if (esqueceu)
            {
                GameController.g.StartCoroutine(TerminaDaquiAPouco());
            }
        }
示例#2
0
        void AoEscolherumCriature(int indice)
        {
            GameController    g     = GameController.g;
            DadosDoPersonagem dados = g.Manager.Dados;
            HudManager        hudM  = g.HudM;

            if (dados.CriaturesAtivos.Count < dados.maxCarregaveis)
            {
                CriatureBase C = dados.CriaturesArmagedados[indice];
                hudM.UmaMensagem.ConstroiPainelUmaMensagem(VoltarDoEntraArmagedado,
                                                           string.Format(frasesDeArmagedom[3], C.NomeEmLinguas, C.CaracCriature.mNivel.Nivel)
                                                           );
                dados.CriaturesArmagedados.Remove(C);
                dados.CriaturesAtivos.Add(C);
            }
            else
            {
                CriatureBase C = dados.CriaturesArmagedados[indice];
                Debug.Log(indice);
                indiceDoSubstituido = indice;
                Debug.Log(indiceDoSubstituido);
                hudM.UmaMensagem.ConstroiPainelUmaMensagem(MostraOsQueSaem,
                                                           string.Format(frasesDeArmagedom[4], C.NomeEmLinguas, C.CaracCriature.mNivel.Nivel)
                                                           );
                GameController.g.HudM.EntraCriatures.FinalizarHud();
            }
        }
示例#3
0
        public static void EnergiaEVidaCheia(CriatureBase C)
        {
            Atributos A = C.CaracCriature.meusAtributos;

            A.PV.Corrente = A.PV.Maximo;
            A.PE.Corrente = A.PE.Maximo;
        }
        public void SetarCriature(CriatureBase C, System.Action <int> ao, bool armagedom = false)
        {
            this.armagedom = armagedom;
            Acao          += ao;

            Atributos A = C.CaracCriature.meusAtributos;

            imgDoCriature.texture = GameController.g.El.RetornaMini(C.NomeID);
            nomeCriature.text     = C.NomeEmLinguas;
            txtNivelNum.text      = C.CaracCriature.mNivel.Nivel.ToString();
            txtPVnum.text         = A.PV.Corrente + " / " + A.PV.Maximo;
            txtPEnum.text         = A.PE.Corrente + " / " + A.PE.Maximo;
            txtListaDeStatus.text = "";

            if (A.PV.Corrente <= 0)
            {
                Text[] txtS = GetComponentsInChildren <Text>();

                for (int i = 1; i < txtS.Length - 2; i++)
                {
                    txtS[i].color = Color.gray;
                }

                txtS[0].color = new Color(1, 1, 0.75f);

                txtListaDeStatus.text = "derrotado";
            }
            else
            {
                txtListaDeStatus.text = "preparado";
            }
        }
示例#5
0
        protected override void EscolhiEmQuemUsar(int indice)
        {
            indiceDoEscolhido = indice;
            CriatureBase C     = GameController.g.Manager.Dados.CriaturesAtivos[indice];
            Atributos    A     = C.CaracCriature.meusAtributos;
            Usara        usara = VerificaUso(C);

            if (usara.diferenteDeNulo && !usara.jaTem || A.PV.Corrente <= 0)
            {
                if (C.GerenteDeGolpes.meusGolpes.Count >= 4 && A.PV.Corrente > 0)
                {
                    VerificaQualEsquecer(C, UsarOuNaoUsarMenu);
                    GameController.g.HudM.P_EscolheUsoDeItens.gameObject.SetActive(false);
                    GameController.g.HudM.MenuDePause.EsconderPainelDeItens();
                }
                else
                {
                    EscolhiEmQuemUsar(indice, A.PV.Corrente > 0, true);
                }
            }
            else if (!usara.diferenteDeNulo)
            {
                MensDeUsoDeItem.MensNaoPodeAprenderGolpe(NomeBasico, C.NomeEmLinguas);
            }
            else if (usara.jaTem)
            {
                MensDeUsoDeItem.MensjaConheceGolpe(C.NomeEmLinguas, NomeEmLinguas(ID), GolpeBase.NomeEmLinguas(GolpePorAprender(C)));
            }
        }
示例#6
0
        public static void AplicacaoDoItemComMenu(CharacterManager manager, CriatureBase C, int valor, System.Action umaAcao)
        {
            /*
             * Atributos A = C.CaracCriature.meusAtributos;
             *
             * switch (Q)
             * {
             *  case TipoQuantitativo.PV:
             *      RecuperaPV(A, valor);
             *  break;
             *  case TipoQuantitativo.PE:
             *      RecuperaPE(A, valor);
             *  break;
             *  case TipoQuantitativo.perfeicao:
             *      CriatureBase.EnergiaEVidaCheia(C);
             *  break;
             * }*/

            PainelStatus ps = GameController.g.HudM.P_EscolheUsoDeItens;

            GameController.g.HudM.AtualizaDadosDaHudVida(false);
            GameController.g.StartCoroutine(
                ParticulaDeCoisasBoas.ParticulasMaisBotao(ps.GetComponent <RectTransform>(),
                                                          () =>
            {
                ps.ReligarMeusBotoes();
                umaAcao();
            })
                );

            ps.DesligarMeusBotoes();
            ps.BtnMeuOutro(manager.Dados.CriaturesAtivos.IndexOf(C));
        }
示例#7
0
        void SubstituiArmagedado(int indice)
        {
            GameController    g     = GameController.g;
            DadosDoPersonagem dados = g.Manager.Dados;

            Debug.Log(indiceDoSubstituido);
            CriatureBase temp = dados.CriaturesArmagedados[indiceDoSubstituido];

            dados.CriaturesArmagedados[indiceDoSubstituido] = dados.CriaturesAtivos[indice];
            dados.CriaturesAtivos[indice] = temp;

            Debug.Log(dados.CriaturesAtivos[indice].NomeID + " : " + dados.CriaturesArmagedados[indiceDoSubstituido].NomeID + " : " + temp.NomeID);

            tempString = string.Format(frasesDeArmagedom[6], temp.NomeEmLinguas, temp.CaracCriature.mNivel.Nivel,
                                       dados.CriaturesArmagedados[indiceDoSubstituido].NomeEmLinguas,
                                       dados.CriaturesArmagedados[indiceDoSubstituido].CaracCriature.mNivel.Nivel
                                       );

            if (indice == 0)
            {
                dados.CriatureSai = -1;
                g.HudM.EntraCriatures.FinalizarHud();
                GameController.g.HudM.Painel.EsconderMensagem();
                replace = new ReplaceManager(g.Manager, g.Manager.CriatureAtivo.transform, FluxoDeRetorno.armagedom);
                fase    = fasesDoArmagedom.fazendoUmaTroca;
            }
            else
            {
                g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(VoltarDoEntraArmagedado, tempString);
            }
        }
示例#8
0
 protected override void AplicaEfeito(CriatureBase C)
 {
     if (!esqueceu)
     {
         C.GerenteDeGolpes.meusGolpes.Add(PegaUmGolpeG2.RetornaGolpe(GolpePorAprender(C)));
     }
     EntraNoModoFinalizacao(C);
 }
示例#9
0
        Usara VerificaUso(CriatureBase C)
        {
            nomesGolpes golpePorAprender = GolpePorAprender(C);


            return(new Usara()
            {
                diferenteDeNulo = golpePorAprender != nomesGolpes.nulo,
                jaTem = C.GerenteDeGolpes.TemEsseGolpe(golpePorAprender)
            });
        }
示例#10
0
        void AtualizaDadosDaHudVida(HudVida essaHud, CriatureBase C)
        {
            Atributos A = C.CaracCriature.meusAtributos;

            essaHud.PV.text                   = A.PV.Corrente + " \t/\t " + A.PV.Maximo;
            essaHud.PE.text                   = A.PE.Corrente + " \t/\t " + A.PE.Maximo;
            essaHud.nomeCriature.text         = C.NomeID.ToString();
            essaHud.nivel.text                = C.G_XP.Nivel.ToString();
            essaHud.barraDeVida.fillAmount    = (float)A.PV.Corrente / A.PV.Maximo;
            essaHud.barraDeEnergia.fillAmount = (float)A.PE.Corrente / A.PE.Maximo;
        }
示例#11
0
 public void TodosCriaturesPerfeitos()
 {
     for (int i = 0; i < CriaturesAtivos.Count; i++)
     {
         CriatureBase.EnergiaEVidaCheia(CriaturesAtivos[i]);
         int num = GameController.g.ContStatus.StatusDoHeroi.Count - 1;
         for (int j = num; j >= 0; j--)
         {
             GameController.g.ContStatus.StatusDoHeroi[j].RetiraComponenteStatus();
         }
     }
 }
示例#12
0
        public static bool UsaItemDeRecuperacao(CriatureBase meuCriature)
        {
            Atributos A = meuCriature.CaracCriature.meusAtributos;

            if (A.PV.Corrente < A.PV.Maximo && A.PV.Corrente > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#13
0
        protected override void OpcaoEscolhida(int escolha)
        {
            GameController g = GameController.g;
            CriatureBase   C = g.Manager.Dados.CriaturesAtivos[escolha];
            nomesGolpes    golpePorAprender = GolpePorAprender(C);

            indiceDoEscolhido = escolha;
            g.HudM.Painel.EsconderMensagem();

            /*
             * bool foi = false;
             * g.HudM.Painel.EsconderMensagem();
             *
             * if (golpePorAprender != nomesGolpes.nulo)
             *  foi = true;
             *
             * bool jaTem = C.GerenteDeGolpes.TemEsseGolpe(golpePorAprender);
             */

            Usara usara = VerificaUso(C);

            if (usara.diferenteDeNulo && !usara.jaTem)
            {
                if (C.GerenteDeGolpes.meusGolpes.Count >= 4)
                {
                    VerificaQualEsquecer(C, UsarOuNaoUsar);
                }
                else
                {
                    base.OpcaoEscolhida(escolha);
                }
            }
            else if (usara.jaTem)
            {
                g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(() => { Estado = EstadoDeUsoDeItem.finalizaUsaItem; },
                                                             string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.itens)[4],
                                                                           C.NomeEmLinguas, NomeEmLinguas(ID), GolpeBase.NomeEmLinguas(golpePorAprender)
                                                                           )
                                                             );
            }
            else if (!usara.diferenteDeNulo)
            {
                g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(() => { Estado = EstadoDeUsoDeItem.finalizaUsaItem; },
                                                             string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.itens)[5],
                                                                           C.NomeEmLinguas, NomeBasico
                                                                           )
                                                             );
            }

            g.HudM.Menu_Basico.FinalizarHud();
        }
示例#14
0
        public static void InsereStatusSimples(CreatureManager levou, StatusTemporarioBase S, int numStatus)
        {
            //int numStatus = StatusTemporarioBase.ContemStatus(TipoStatus.envenenado, C);
            CriatureBase C = levou.MeuCriatureBase;

            if (numStatus == -1)
            {
                InserindoNovoStatus(levou, C, S);
            }
            else
            {
                DatesForTemporaryStatus d = C.StatusTemporarios[numStatus];
                d.Quantificador       = Mathf.Max(S.Dados.Quantificador, d.Quantificador + 1);
                d.TempoSignificativo += 15f / 14f * S.Dados.TempoSignificativo;
            }
        }
示例#15
0
        public static int ContemStatus(TipoStatus esseStatus, CriatureBase X)
        {
            int retorno = -1;

            if (X.StatusTemporarios.Count > 0)
            {
                foreach (DatesForTemporaryStatus sT in X.StatusTemporarios)
                {
                    if (sT.Tipo == esseStatus)
                    {
                        retorno = X.StatusTemporarios.IndexOf(sT);
                    }
                }
            }

            return(retorno);
        }
示例#16
0
        /*
         * public bool SouOMesmoQue(CriatureBase C)
         * {
         *  bool retorno = false;
         *
         *  if (C.NomeID == nome
         *      &&
         *      C.CaracCriature.mNivel.Nivel==caracCriature.mNivel.Nivel
         *      &&
         *      C.CaracCriature.mNivel.XP == caracCriature.mNivel.XP
         *      &&
         *      C.CaracCriature.meusAtributos.PV.Corrente == caracCriature.meusAtributos.PV.Corrente
         *      &&
         *      C.CaracCriature.meusAtributos.PV.Maximo == caracCriature.meusAtributos.PV.Maximo
         *      &&
         *      C.CaracCriature.meusAtributos.PE.Corrente == caracCriature.meusAtributos.PE.Corrente
         *      &&
         *      C.CaracCriature.meusAtributos.PE.Maximo == caracCriature.meusAtributos.PE.Maximo
         *      )
         *  retorno = true;
         *  return retorno;
         * }*/

        public object Clone()
        {
            CriatureBase retorno =
                new CriatureBase()
            {
                NomeID              = NomeID,
                alturaCamera        = alturaCamera,
                distanciaCamera     = distanciaCamera,
                alturaCameraLuta    = alturaCameraLuta,
                distanciaCameraLuta = distanciaCameraLuta,
                CaracCriature       = new CaracteristicasDeCriature()
                {
                    meusTipos = (NomeTipos[])CaracCriature.meusTipos.Clone(),
                    distanciaFundamentadora = CaracCriature.distanciaFundamentadora,
                    meusAtributos           =
                    {
                        PV     = { Taxa = caracCriature.meusAtributos.PV.Taxa     },
                        PE     = { Taxa = caracCriature.meusAtributos.PE.Taxa     },
                        Ataque = { Taxa = caracCriature.meusAtributos.Ataque.Taxa },
                        Defesa = { Taxa = caracCriature.meusAtributos.Defesa.Taxa },
                        Poder  = { Taxa = caracCriature.meusAtributos.Poder.Taxa  }
                    },
                    contraTipos = caracCriature.contraTipos
                },
                GerenteDeGolpes = new GerenciadorDeGolpes()
                {
                    listaDeGolpes = gerenteG.listaDeGolpes,
                },
                Mov = new CaracteristicasDeMovimentacao()
                {
                    velocidadeAndando = mov.velocidadeAndando,
                    caracPulo         = new CaracteristicasDePulo()
                    {
                        alturaDoPulo                   = mov.caracPulo.alturaDoPulo,
                        tempoMaxPulo                   = mov.caracPulo.tempoMaxPulo,
                        velocidadeSubindo              = mov.caracPulo.velocidadeSubindo,
                        velocidadeDescendo             = mov.caracPulo.velocidadeDescendo,
                        velocidadeDuranteOPulo         = mov.caracPulo.velocidadeDuranteOPulo,
                        amortecimentoNaTransicaoDePulo = mov.caracPulo.amortecimentoNaTransicaoDePulo
                    }
                }
            };

            return(retorno);
        }
示例#17
0
        void VerificaQualEsquecer(CriatureBase C, System.Action <bool> acao)
        {
            Estado = EstadoDeUsoDeItem.emEspera;
            HudManager  hudM        = GameController.g.HudM;
            nomesGolpes nomeDoGolpe = GolpePorAprender(C);

            hudM.H_Tenta.Aciona(C, nomeDoGolpe,
                                string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.precisaEsquecer), C.NomeEmLinguas)
                                , acao);

            hudM.Painel.AtivarNovaMens(
                string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.tentandoAprenderGolpe),
                              C.NomeEmLinguas,
                              GolpeBase.NomeEmLinguas(nomeDoGolpe))
                , 24
                );

            hudM.P_Golpe.Aciona(PegaUmGolpeG2.RetornaGolpe(nomeDoGolpe));
        }
示例#18
0
        void UsarOuNaoUsarMenu(bool usou)
        {
            CriatureBase C = GameController.g.Manager.Dados.CriaturesAtivos[indiceDoEscolhido];

            esqueceu = usou;
            if (usou)
            {
                GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(TrocouComMenu,
                                                                            string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpeEsquecendo),
                                                                                          C.NomeEmLinguas,
                                                                                          "",
                                                                                          GolpeBase.NomeEmLinguas(GolpePorAprender(C))));
            }
            else
            {
                GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(DesistiuDeAprenderComMenu,
                                                                            string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.naoAprendeuGolpeNovo),
                                                                                          C.NomeEmLinguas,
                                                                                          GolpeBase.NomeEmLinguas(GolpePorAprender(C))));
            }
        }
示例#19
0
        public static void InserindoNovoStatus(
            CreatureManager levou,
            CriatureBase C,
            StatusTemporarioBase S, bool eLoad = false)
        {
            C.StatusTemporarios.Add(S.Dados);

            if (levou != null)
            {
                if (levou.name == "CriatureAtivo")
                {
                    GameController.g.ContStatus.AdicionaStatusAoHeroi(S);
                }
                else
                {
                    GameController.g.ContStatus.AdicionaStatusAoInimigo(S);
                }
            }
            else
            {
                GameController.g.ContStatus.AdicionaStatusAoHeroi(S);
            }
        }
示例#20
0
        protected void EscolhiEmQuemUsar(
            int indice,
            bool vaiUsar,
            bool tipoCerto,
            int valor                = 0,
            int corrente             = 0,
            int maximo               = 0,
            NomeTipos recuperaDoTipo = NomeTipos.nulo)
        {
            CharacterManager manager = GameController.g.Manager;
            CriatureBase     C       = manager.Dados.CriaturesAtivos[indice];

            if (vaiUsar && tipoCerto)
            {
                if (Consumivel)
                {
                    RetirarUmItem(manager, this, 1, FluxoDeRetorno.menuHeroi);
                }

                AcaoDoItemConsumivel(C);
                ItemQuantitativo.AplicacaoDoItemComMenu(manager, C, valor, VerificaTemMaisParaUsar);
            }
            else if (!tipoCerto)
            {
                MensDeUsoDeItem.MensNaoTemOTipo(recuperaDoTipo.ToString());
            }

            else if (corrente <= 0)
            {
                MensDeUsoDeItem.MensDeMorto(C.NomeEmLinguas);
            }
            else if (corrente >= maximo)
            {
                MensDeUsoDeItem.MensDeNaoPrecisaDesseItem(C.NomeEmLinguas);
            }
        }
示例#21
0
        public AnimaPoseDeCaptura(CriatureBase oCapturado)
        {
            this.oCapturado = oCapturado;
            animator        = GameController.g.Manager.GetComponent <Animator>();

            DadosDoPersonagem dados = GameController.g.Manager.Dados;

            if (dados.CriaturesAtivos.Count < dados.maxCarregaveis)
            {
                dados.CriaturesAtivos.Add(oCapturado);
                foiParaArmagedom = false;
            }
            else
            {
                dados.CriaturesArmagedados.Add(oCapturado);

                /*
                 * linhas para encher a vida e retirar status quando o Criature for para o Armagedom
                 */

                // statusTemporarioBase.limpaStatus(oCapturado, -1);
                Atributos A = oCapturado.CaracCriature.meusAtributos;
                A.PV.Corrente = A.PV.Maximo;
                A.PE.Corrente = A.PE.Maximo;

                /**************************************************/
                foiParaArmagedom = true;
            }

            //Trofeus.ProcurarTrofeuDeCriature(oCapturado.NomeID);


            animator.SetBool("travar", true);
            animator.SetBool("chama", false);
            animator.Play("capturou");
        }
示例#22
0
        public CriatureBase(nomesCriatures X, int nivel = 1)
        {
            CriatureBase Y = personagemG2.RetornaUmCriature(X); //(CriatureBase)(personagemG2.Criatures[X].Clone());

            caracCriature       = Y.CaracCriature;
            gerenteG            = Y.GerenteDeGolpes;
            mov                 = Y.Mov;
            alturaCamera        = Y.alturaCamera;
            distanciaCamera     = Y.distanciaCamera;
            alturaCameraLuta    = Y.alturaCameraLuta;
            distanciaCameraLuta = Y.distanciaCameraLuta;
            nome                = X;

            if (nivel > 1)
            {
                caracCriature.IncrementaNivel(nivel);
            }

            gerenteG.meusGolpes = new List <GolpeBase>();
            gerenteG.meusGolpes.AddRange(GolpesAtivos(nivel, gerenteG.listaDeGolpes.ToArray()));


            VerificaSomaDeTaxas();
        }
示例#23
0
 public virtual void AcaoDoItemConsumivel(CriatureBase C)
 {
     throw new System.NotImplementedException();
 }
示例#24
0
 public static bool PrecisaDePerfeicao(CriatureBase meuCriature)
 {
     return(UsaItemDeRecuperacao(meuCriature) || UsaItemDeEnergia(meuCriature) || meuCriature.StatusTemporarios.Count > 0);
 }
示例#25
0
 protected virtual nomesGolpes GolpePorAprender(CriatureBase C)
 {
     return(C.GerenteDeGolpes.ProcuraGolpeNaLista(C.NomeID, golpeDoPergaminho[0]).Nome);
 }