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);
        }
    }
Esempio n. 2
0
        public void AtualizeImagemDeAtivos()
        {
            DadosDoPersonagem dados = GameController.g.Manager.Dados;

            if (cDeAtivos.imgGolpes.transform.parent.gameObject.activeSelf)
            {
                GerenciadorDeGolpes gg = GameController.g.Manager.CriatureAtivo.MeuCriatureBase.GerenteDeGolpes;
                cDeAtivos.imgGolpes.texture = GameController.g.El.RetornaMini(gg.meusGolpes[gg.golpeEscolhido].Nome);
            }

            if (dados.CriaturesAtivos.Count > 1)
            {
                cDeAtivos.imgCriature.transform.parent.gameObject.SetActive(true);
                cDeAtivos.imgCriature.texture = GameController.g.El.RetornaMini(dados.CriaturesAtivos[dados.CriatureSai + 1].NomeID);
            }
            else
            {
                cDeAtivos.imgCriature.transform.parent.gameObject.SetActive(false);
            }

            if (dados.Itens.Count > 0)
            {
                cDeAtivos.imgItens.transform.parent.gameObject.SetActive(true);
                cDeAtivos.imgItens.texture = GameController.g.El.RetornaMini(dados.Itens[dados.itemSai].ID);
                cDeAtivos.numItens.text    = dados.Itens[dados.itemSai].Estoque.ToString();
            }
            else
            {
                cDeAtivos.imgItens.transform.parent.gameObject.SetActive(false);
            }

            cDeAtivos.cristais.text = dados.Cristais.ToString();
        }
Esempio n. 3
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);
    }
Esempio n. 4
0
 public void ImagemDoAtaque(CharacterManager manager)
 {
     if (manager.CriatureAtivo)
     {
         GerenciadorDeGolpes gg = manager.CriatureAtivo.MeuCriatureBase.GerenteDeGolpes;
         imgDoAtaque.texture = elementosDoJogo.el.RetornaMini(gg.meusGolpes[gg.golpeEscolhido].Nome);
     }
 }
    protected override void AplicaIaDeAtaque()
    {
        if (PodeAtualizar)
        {
            coolDown += Time.deltaTime;
        }

        Atributos           A  = meuCriature.MeuCriatureBase.CaracCriature.meusAtributos;
        GerenciadorDeGolpes gg = meuCriature.MeuCriatureBase.GerenteDeGolpes;

        if (criatureDoJogador
            &&
            A.PV.Corrente > 0
            &&
            coolDown > TEMPO_DE_COOLDOWN
            &&
            gg.meusGolpes.Count > 0
            &&
            podeAtualizar
            )
        {
            GolpeBase GB = gg.meusGolpes[gg.golpeEscolhido];

            if (GB.Caracteristica == caracGolpe.colisao || GB.Caracteristica == caracGolpe.colisaoComPow)
            {
                {
                    VerifiqueSigaOuAtaque(GB, A);
                }
            }
            else
            {
                Disparador(GB, A);
            }
        }
        else if (gg.meusGolpes.Count <= 0)
        {
            Debug.Log("lista de golpes vazia. POr que??? nivel" + meuCriature.MeuCriatureBase.CaracCriature.mNivel.Nivel);
            BugDaListaVazia();
        }
        else if (A.PV.Corrente <= 0)
        {
            siga.PareAgora();
        }
        else if (coolDown < TEMPO_DE_COOLDOWN)
        {
            AproximeEnquantoEspera();
        }
        else if (!criatureDoJogador && !procurando)
        {
            ProcuraCriatureDoJogador();
        }
    }
 // Update is called once per frame
 void Update()
 {
     if (GameController.g)
     {
         GerenciadorDeGolpes gg = GameController.g.Manager.Dados.CriaturesAtivos[0].GerenteDeGolpes;
         GolpeBase           gb = gg.meusGolpes[gg.golpeEscolhido];
         if (-Time.time + gb.UltimoUso + gb.TempoDeReuso > 0)
         {
             imgDoTexto.gameObject.SetActive(true);
             texto.text = comandos.mostradorDeTempo(-Time.time + gb.UltimoUso + gb.TempoDeReuso, "s", false);
             texto.text = (texto.text == "0") ? "0." : texto.text;
         }
         else
         {
             imgDoTexto.gameObject.SetActive(false);
         }
     }
 }
Esempio n. 7
0
    public static int Sorteia(nomesCriatures nome, GerenciadorDeGolpes GG)
    {
        //bool foi = false;
        float roletaDeGolpes = 0;

        for (int i = 0; i < GG.meusGolpes.Count; i++)
        {
            roletaDeGolpes += GG.ProcuraGolpeNaLista(nome, GG.meusGolpes[i].Nome).TaxaDeUso;
        }

        float roleta  = Random.Range(0, roletaDeGolpes);
        float sum     = 0;
        int   retorno = -1;

        //while(!foi){
        for (int i = 0; i < GG.meusGolpes.Count; i++)
        {
            sum += GG.ProcuraGolpeNaLista(nome, GG.meusGolpes[i].Nome).TaxaDeUso;


            if (roleta <= sum && retorno == -1)
            {
                retorno = i;
            }
        }


        retorno = retorno == -1 ? 0 : retorno;
        if (GG.meusGolpes[retorno].UltimoUso >= Time.time - GG.meusGolpes[retorno].TempoDeReuso)
        {
            for (int i = 0; i < GG.meusGolpes.Count; i++)
            {
                if (GG.meusGolpes[i].UltimoUso < Time.time - GG.meusGolpes[i].TempoDeReuso)
                {
                    retorno = i;
                }
            }
        }

        //}

        return(retorno == -1 ? 0 : retorno);
    }
Esempio n. 8
0
    public void BotaoMaisAtaques(int i)
    {
        if (PodeAbrirMenuDeImagem())
        {
            VerificaSetarManager();
            //hudM.MenuDeI.IniciarHud(manager.Dados, TipoDeDado.golpe, manager.Dados.CriaturesAtivos[0].GerenteDeGolpes.meusGolpes.Count,

            GerenciadorDeGolpes gg = manager.Dados.CriaturesAtivos[0].GerenteDeGolpes;
            if (i > 0)
            {
                if (gg.meusGolpes.Count > gg.golpeEscolhido + i)
                {
                    gg.golpeEscolhido += i;
                }
                else
                {
                    gg.golpeEscolhido = 0;
                }
            }
            else if (i < 0)
            {
                if (gg.golpeEscolhido + i >= 0)
                {
                    gg.golpeEscolhido += i;
                }
                else
                {
                    gg.golpeEscolhido = gg.meusGolpes.Count - 1;
                }
            }

            imgMenu.Acionada(TipoHud.golpes);
            HudM.AtualizeImagemDeAtivos();
            //hudM.MenuDeI.FinalizarHud();
            //hudM.Btns.ImagemDoAtaque(manager);
            //},5
            //);
        }
    }
    void ProcureColisao()
    {
        GerenciadorDeGolpes gg = meuCriature.MeuCriatureBase.GerenteDeGolpes;
        bool foi = false;

        for (int i = 0; i < gg.meusGolpes.Count; i++)
        {
            if (gg.meusGolpes[i].CustoPE == 0)
            {
                foi = true;
                gg.golpeEscolhido = i;
            }
        }

        if (foi)
        {
            coolDown = 0;
        }
        else
        {
            meuCriature.MeuCriatureBase.CaracCriature.meusAtributos.PE.AumentaAoMaximo();
        }
    }
Esempio n. 10
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();
        }
Esempio n. 11
0
        void AtualizaDadosDeHUD()
        {
            if (contadorDeItens.Count > 0)
            {
                VerificaNumeroDeElementos();


                int    indiceEscolhido = -1;
                string nome            = "";

                if (dados != null)
                {
                    for (int i = 0; i < numeroDeElementos; i++)
                    {
                        Texture2D textura = null;
                        contadorDeItens[i].transform.parent.gameObject.SetActive(false);
                        switch (tipo)
                        {
                        case TipoHud.criatures:
                            textura = GameController.g.El.RetornaMini(dados.CriaturesAtivos[i + 1].NomeID);
                            if (i == dados.CriatureSai)
                            {
                                indiceEscolhido = i;
                                nome            = dados.CriaturesAtivos[i + 1].NomeEmLinguas;
                            }
                            break;

                        case TipoHud.golpes:
                            GerenciadorDeGolpes gB = GameController.g.Manager.CriatureAtivo.MeuCriatureBase.GerenteDeGolpes;
                            textura = GameController.g.El.RetornaMini(gB.meusGolpes[i].Nome);
                            if (i == gB.golpeEscolhido)
                            {
                                indiceEscolhido = i;
                                nome            = gB.meusGolpes[i].NomeEmLinguas();
                            }
                            break;

                        case TipoHud.items:
                            textura = GameController.g.El.RetornaMini(dados.Itens[i].ID);
                            if (i == dados.itemSai)
                            {
                                nome            = MbItens.NomeEmLinguas(dados.Itens[i].ID);
                                indiceEscolhido = i;
                            }
                            contadorDeItens[i].transform.parent.gameObject.SetActive(true);
                            contadorDeItens[i].text = dados.Itens[i].Estoque.ToString();
                            break;
                        }

                        if (numeroDeElementos > i)
                        {
                            raw[i].texture = textura;
                            raw[i].color   = new Color(1, 1, 1, 1);
                        }
                        else
                        {
                            raw[i].color = new Color(1, 1, 1, 0);
                        }

                        if (i == indiceEscolhido)
                        {
                            imagensDePainel[i].sprite = GameController.g.El.uiDestaque;
                        }
                        else
                        {
                            imagensDePainel[i].sprite = GameController.g.El.uiDefault;
                        }
                    }
                }

                textoDoItem.text = nome;
            }
        }