protected void EscolhiEmQuemUsar(
        int indice,
        bool vaiUsar,
        bool tipoCerto,
        TipoQuantitativo tipoQ,
        int valor,
        int corrente,
        int maximo,
        nomeTipos recuperaDoTipo)
    {
        CharacterManager manager = GameController.g.Manager;
        CriatureBase     C       = manager.Dados.CriaturesAtivos[indice];
        Atributos        A       = C.CaracCriature.meusAtributos;

        if (vaiUsar && tipoCerto)
        {
            RetirarUmItem(manager, this, 1, FluxoDeRetorno.menuHeroi);
            ItemQuantitativo.AplicacaoDoItemComMenu(manager, C, tipoQ, valor);
        }
        else if (!tipoCerto)
        {
            MensDeUsoDeItem.MensNaoTemOTipo(recuperaDoTipo.ToString());
        }
        else if (corrente >= maximo)
        {
            MensDeUsoDeItem.MensDeNaoPrecisaDesseItem(C.NomeEmLinguas);
        }
        else if (corrente <= 0)
        {
            MensDeUsoDeItem.MensDeMorto(C.NomeEmLinguas);
        }
    }
Exemplo n.º 2
0
    static void CalculaDano(CreatureManager doAtacado, GameObject atacante, IGolpeBase golpe)
    {
        float multiplicador = 1;

        for (int i = 0; i < doAtacado.MeuCriatureBase.CaracCriature.contraTipos.Length; i++)
        {
            if (golpe.Tipo.ToString() == doAtacado.MeuCriatureBase.CaracCriature.contraTipos[i].Nome)
            {
                multiplicador *= doAtacado.MeuCriatureBase.CaracCriature.contraTipos[i].Mod;
            }
        }

        CriatureBase cDoAtacante = atacante.GetComponent <CreatureManager>().MeuCriatureBase;
        Atributos    A           = cDoAtacante.CaracCriature.meusAtributos;

        int potenciaDoAtacante = (golpe.Caracteristica == caracGolpe.colisao)
            ?
                                 Mathf.RoundToInt(A.Ataque.Minimo + (A.Ataque.Corrente - A.Ataque.Minimo) * Random.Range(0.85f, 1))
            :
                                 Mathf.RoundToInt(A.Poder.Minimo + (A.Poder.Corrente - A.Poder.Minimo) * Random.Range(0.85f, 1));

        GolpePersonagem golpePersonagem = cDoAtacante.GerenteDeGolpes.ProcuraGolpeNaLista(cDoAtacante.NomeID, golpe.Nome);

        CalculoC(multiplicador, golpe, golpePersonagem, potenciaDoAtacante, doAtacado, cDoAtacante);
    }
Exemplo n.º 3
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;
        }


        animator.SetBool("travar", true);
        animator.SetBool("chama", false);
        animator.Play("capturou");
    }
    public override void IniciaUsoDeHeroi(GameObject dono)
    {
        CriatureBase C = GameController.g.Manager.CriatureAtivo.MeuCriatureBase;

        IniciaUsoDesseItem(dono,
                           ItemQuantitativo.UsaItemDeEnergia(C), C.CaracCriature.TemOTipo(recuperaDoTipo), recuperaDoTipo);
    }
    void EscolhidoDoArmagedom(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];
            indiceDoSubstituido = indice;
            hudM.UmaMensagem.ConstroiPainelUmaMensagem(MostraOsQueSaem,
                                                       string.Format(frasesDeArmagedom[4], C.NomeEmLinguas, C.CaracCriature.mNivel.Nivel)
                                                       );
            GameController.g.HudM.EntraCriaturesArmagedados.FinalizarHud();
        }
    }
    void SubstituiArmagedado(int indice)
    {
        GameController    g     = GameController.g;
        DadosDoPersonagem dados = g.Manager.Dados;
        CriatureBase      temp  = dados.CriaturesArmagedados[indiceDoSubstituido];

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

        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 = 0;
            g.HudM.EntraCriaturesArmagedados.FinalizarHud();
            PainelMensCriature.p.EsconderMensagem();
            replace = new ReplaceManager(g.Manager, g.Manager.CriatureAtivo.transform, FluxoDeRetorno.armagedom);
            fase    = fasesDoArmagedom.fazendoUmaTroca;
        }
        else
        {
            g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(VoltarDoEntraArmagedado, tempString);
        }
    }
Exemplo n.º 7
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 static bool Dispara(CriatureBase meuCriatureBase, GameObject gameObject)
    {
        Atributos           A   = meuCriatureBase.CaracCriature.meusAtributos;
        GerenciadorDeGolpes ggg = meuCriatureBase.GerenteDeGolpes;
        IGolpeBase          gg  = ggg.meusGolpes[ggg.golpeEscolhido];

        if (gg.UltimoUso + gg.TempoDeReuso < Time.time && A.PE.Corrente >= gg.CustoPE)
        {
            AplicadorDeGolpe aplG = gameObject.AddComponent <AplicadorDeGolpe>();
            A.PE.Corrente -= gg.CustoPE;
            gg.UltimoUso   = Time.time;
            aplG.esseGolpe = gg;

            if (!GameController.g.estaEmLuta)
            {
                GameController.g.HudM.AtualizaHudHeroi(meuCriatureBase);
            }

            return(true);
        }
        else
        {
            return(false);
        }
    }
Exemplo n.º 9
0
    public void SetarCriature(CriatureBase C, System.Action <int> ao)
    {
        cliqueDoPersonagem += ao;

        Atributos A = C.CaracCriature.meusAtributos;

        imgDoCriature.texture = elementosDoJogo.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";
        }
    }
Exemplo n.º 10
0
    public override void AcaoDoItemConsumivel(CriatureBase C)
    {
        List <CriatureBase> meusC = GameController.g.Manager.Dados.CriaturesAtivos;

        StatusTemporarioBase[] meusStatus = GameController.g.ContStatus.StatusDoHeroi.ToArray();
        StatusTemporarioBase   sTb        = null;

        for (int i = 0; i < meusStatus.Length; i++)
        {
            Debug.Log(meusC.IndexOf(meusStatus[i].OAfetado) + " :" + meusC.IndexOf(C) + " : " + meusStatus[i].Dados.Tipo + " : " + qualStatusRemover);
            if (meusC.IndexOf(meusStatus[i].OAfetado) == meusC.IndexOf(C) && meusStatus[i].Dados.Tipo == qualStatusRemover)
            {
                sTb = meusStatus[i];
            }
        }

        if (sTb != null)
        {
            sTb.RetiraComponenteStatus();
        }
        else
        {
            Debug.Log("Status foi alcançado como nulo");
        }
    }
 public void TodosCriaturesPerfeitos()
 {
     for (int i = 0; i < CriaturesAtivos.Count; i++)
     {
         CriatureBase.EnergiaEVidaCheia(CriaturesAtivos[i]);
     }
 }
Exemplo n.º 12
0
 public override void AcaoDoItemConsumivel(CriatureBase C)
 {
     ItemQuantitativo.RecuperaPV(C.CaracCriature.meusAtributos, valorDeRecuperacao);
     if (!GameController.g.estaEmLuta)
     {
         GameController.g.Salvador.SalvarAgora();
     }
 }
Exemplo n.º 13
0
    void BugDaListaVazia()
    {
        CriatureBase C = meuCriature.MeuCriatureBase;

        C.GerenteDeGolpes.meusGolpes.AddRange(
            C.GolpesAtivos(
                C.CaracCriature.mNivel.Nivel, C.GerenteDeGolpes.listaDeGolpes.ToArray()));
    }
Exemplo n.º 14
0
 public override void AcaoDoItemConsumivel(CriatureBase C)
 {
     AplicaEfeito(C);
     if (!GameController.g.estaEmLuta)
     {
         GameController.g.Salvador.SalvarAgora();
     }
 }
Exemplo n.º 15
0
    public static GolpePersonagem RetornaGolpePersonagem(GameObject G, nomesGolpes nomeDoGolpe)
    {
        CriatureBase        criatureBase = G.GetComponent <CreatureManager>().MeuCriatureBase;
        GerenciadorDeGolpes gg           = criatureBase.GerenteDeGolpes;
        GolpePersonagem     gP           = gg.ProcuraGolpeNaLista(criatureBase.NomeID, nomeDoGolpe);

        return(gP);
    }
Exemplo n.º 16
0
    bool VerificaPodeUsarStatus(CriatureBase C)
    {
        Atributos A         = C.CaracCriature.meusAtributos;
        int       temStatus = StatusTemporarioBase.ContemStatus(qualStatusRemover, C);
        bool      vivo      = A.PV.Corrente > 0;

        return(vivo && temStatus > -1);
    }
Exemplo n.º 17
0
 public PassouDeNivelEmLuta(CriatureBase oNivelado)
 {
     this.oNivelado = oNivelado;
     PainelMensCriature.p.AtivarNovaMens(
         string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.passouDeNivel),
                       oNivelado.NomeEmLinguas,
                       oNivelado.CaracCriature.mNivel.Nivel)
         , 20);
 }
Exemplo n.º 18
0
    System.Collections.IEnumerator MensComAtraso(CriatureBase C)
    {
        yield return(new WaitForSeconds(1f));

        GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(Finaliza,
                                                                    string.Format(
                                                                        textoDaMensInicial[1],
                                                                        C.NomeEmLinguas, C.G_XP.Nivel));
    }
Exemplo n.º 19
0
    protected override void AplicaEfeito(CriatureBase C)
    {
        AtributoInstrinsico A = C.CaracCriature.meusAtributos.Poder;

        A = ContaDeSubida(A);

        C.CaracCriature.meusAtributos.Poder = A;

        EntraNoModoFinalizacao(C);
    }
Exemplo n.º 20
0
    protected override void AplicaEfeito(CriatureBase C)
    {
        AtributoConsumivel A = C.CaracCriature.meusAtributos.PV;

        A = ContaDeSubida(A);

        C.CaracCriature.meusAtributos.PV = A;

        EntraNoModoFinalizacao(C);
    }
Exemplo n.º 21
0
    public static CreatureManager RetornaInimigoEmCampo(CriatureBase C)
    {
        CreatureManager retorno = ColocaCriatureEmCampo(C.NomeID.ToString());

        retorno.MeuCriatureBase = new CriatureBase(C.NomeID, C.CaracCriature.mNivel.Nivel);

        InsereIaAgressiva(retorno);

        return(retorno);
    }
Exemplo n.º 22
0
    public static GameObject InstanciaCriature(Transform transform, CriatureBase criature)
    {
        GameObject CA = elementosDoJogo.el.retorna(criature.NomeID.ToString(), "criature");

        CA = MonoBehaviour.Instantiate(CA, transform.position - 3 * transform.forward, Quaternion.identity)
             as GameObject;
        UnityEngine.SceneManagement.SceneManager.MoveGameObjectToScene(CA,
                                                                       UnityEngine.SceneManagement.SceneManager.GetSceneByName("comunsDeFase")
                                                                       );
        return(CA);
    }
Exemplo n.º 23
0
    protected override void EscolhiEmQuemUsar(int indice)
    {
        CriatureBase C = GameController.g.Manager.Dados.CriaturesAtivos[indice];
        Atributos    A = C.CaracCriature.meusAtributos;

        EscolhiEmQuemUsar(indice,
                          ItemQuantitativo.PrecisaDePerfeicao(C), true,
                          -1, A.PV.Corrente,
                          A.PV.Maximo,
                          NomeTipos.nulo);
    }
Exemplo n.º 24
0
    void AtualizaDadosDaHud(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;
    }
    protected virtual void iniciaApresentaInimigo()
    {
        CriatureBase C = inimigo.MeuCriatureBase;

        PainelMensCriature.p.AtivarNovaMens(
            string.Format(
                bancoDeTextos.falacoesComChave[heroi.linguaChave][ChaveDeTexto.apresentaInimigo][0],
                C.NomeID, C.G_XP.Nivel, C.CaracCriature.meusAtributos.PV.Corrente,
                C.CaracCriature.meusAtributos.PE.Corrente), 30
            );
    }
    protected override void EscolhiEmQuemUsar(int indice)
    {
        CriatureBase C = GameController.g.Manager.Dados.CriaturesAtivos[indice];
        Atributos    A = C.CaracCriature.meusAtributos;

        EscolhiEmQuemUsar(indice,
                          ItemQuantitativo.UsaItemDeRecuperacao(C),
                          true, TipoQuantitativo.PV,
                          valorDeRecuperacao, A.PV.Corrente,
                          A.PV.Maximo,
                          nomeTipos.nulo);
    }
    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);
        }
    }
Exemplo n.º 28
0
    protected override void EscolhiEmQuemUsar(int indice)
    {
        CriatureBase C = GameController.g.Manager.Dados.CriaturesAtivos[indice];
        Atributos    A = C.CaracCriature.meusAtributos;

        EscolhiEmQuemUsar(indice,
                          ItemQuantitativo.UsaItemDeEnergia(C),
                          C.CaracCriature.TemOTipo(recuperaDoTipo),
                          valorDeRecuperacao, A.PE.Corrente,
                          A.PE.Maximo,
                          recuperaDoTipo
                          );
    }
Exemplo n.º 29
0
    protected virtual void EntraNoModoFinalizacao(CriatureBase C)
    {
        Estado = EstadoDeUsoDeItem.emEspera;

        if (GameController.g.HudM.MenuDePause.EmPause)
        {
            Finaliza();
        }
        else
        {
            GameController.g.StartCoroutine(MensComAtraso(C));
        }
    }
Exemplo n.º 30
0
    protected virtual void iniciaApresentaInimigo()
    {
        CriatureBase C         = inimigo.MeuCriatureBase;
        string       textoBase = treinador
            ?string.Format(BancoDeTextos.falacoesComChave[BancoDeTextos.linguaChave][ChaveDeTexto.apresentaInimigo][1], nomeTreinador)
                                 + BancoDeTextos.falacoesComChave[BancoDeTextos.linguaChave][ChaveDeTexto.apresentaInimigo][2]
            : BancoDeTextos.falacoesComChave[BancoDeTextos.linguaChave][ChaveDeTexto.apresentaInimigo][0];

        GameController.g.HudM.Painel.AtivarNovaMens(
            string.Format(
                textoBase,
                C.NomeID, C.G_XP.Nivel, C.CaracCriature.meusAtributos.PV.Corrente,
                C.CaracCriature.meusAtributos.PE.Corrente), 30
            );
    }