public static bool RetirarUmItem(
        CharacterManager gerente,
        MbItens nomeItem,
        FluxoDeRetorno fluxo = FluxoDeRetorno.heroi)
    {
        int indice = gerente.Dados.Itens.IndexOf(nomeItem);

        if (indice > -1)
        {
            if (gerente.Dados.Itens[indice].Estoque >= 1)
            {
                gerente.Dados.Itens[indice].Estoque--;
                Debug.Log("remove ai vai");
                if (gerente.Dados.Itens[indice].Estoque == 0)
                {
                    Debug.Log("Tira daí");
                    gerente.Dados.Itens.Remove(gerente.Dados.Itens[indice]);

                    if (fluxo == FluxoDeRetorno.menuCriature || fluxo == FluxoDeRetorno.menuHeroi)
                    {
                        GameController.g.StartCoroutine(VoltarDosItensQuandoNaoTemMais());
                    }
                }
                return(true);
            }
        }

        return(false);
    }
示例#2
0
        public void StartReplace(Transform hero, Transform alvo, FluxoDeRetorno fluxo, PetBase petToGoOut)
        {
            this.fluxo      = fluxo;
            this.petToGoOut = petToGoOut;
            this.hero       = hero;
            #region suprimido
            //List<CriatureBase> lista = manager.Dados.CriaturesAtivos;
            //CriatureBase temp = lista[0];
            //lista[0] = lista[manager.Dados.CriatureSai + 1];
            //lista[manager.Dados.CriatureSai + 1] = temp;

            //manager.Estado = EstadoDePersonagem.parado;
            //manager.CriatureAtivo.PararCriatureNoLocal();
            //manager.Mov.Animador.PararAnimacao();

            //GameController.g.HudM.ModoLimpo();
            //GameController.g.HudM.Painel.EsconderMensagem();

            //estouTrocandoDeCriature = true;
            #endregion
            animaB = new AnimateArm(hero, alvo);
            MessageAgregator <MsgStartReplacePet> .Publish(new MsgStartReplacePet()
            {
                dono = hero.gameObject
            });
        }
示例#3
0
    void FuncaoDoUseiItem(int indice)
    {
        FluxoDeRetorno fluxo = manager.Estado == EstadoDePersonagem.comMeuCriature
                    ? FluxoDeRetorno.criature
                    : FluxoDeRetorno.heroi;

        FuncaoDoUseiItem(indice, fluxo);
    }
示例#4
0
 public override void IniciaUsoDeMenu(GameObject dono)
 {
     if (!GameController.g.estaEmLuta)
     {
         fluxo = FluxoDeRetorno.menuCriature;
         GameController.g.HudM.Menu_Basico.IniciarHud(OpcaoDeArmagedomescolhida, OpcoesDeArmagedom());
         Estado = EstadoDeUsoDeItem.selecaoDeItem;
     }
     else
     {
         Estado = EstadoDeUsoDeItem.emEspera;
         GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(FecharMensagem, BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.mensLuta));
     }
 }
示例#5
0
    public void FuncaoTrocarCriature(int indice, FluxoDeRetorno fluxo, bool bugDoTesteChao = false)
    {
        if (EmEstadoDeAcao(bugDoTesteChao))
        {
            if (estaEmLuta)
            {
                encontros.InimigoAtivo.PararCriatureNoLocal();
            }

            manager.Dados.CriatureSai = indice;

            replace = new ReplaceManager(manager, manager.CriatureAtivo.transform, fluxo);
        }
    }
    public static bool RetirarUmItem(
        CharacterManager gerente,
        MbItens nomeItem,
        int quantidade       = 1,
        FluxoDeRetorno fluxo = FluxoDeRetorno.heroi)
    {
        bool retorno = true;

        for (int i = 0; i < quantidade; i++)
        {
            retorno &= RetirarUmItem(gerente, ProcuraItemNaLista(nomeItem.ID), fluxo);
        }

        return(retorno);
    }
示例#7
0
 void FuncaoTrocarCriatureSemMenu(int indice)
 {
     if (Manager.Dados.CriaturesAtivos[indice + 1].CaracCriature.meusAtributos.PV.Corrente > 0)
     {
         FluxoDeRetorno fluxo = manager.Estado == EstadoDePersonagem.comMeuCriature ? FluxoDeRetorno.criature : FluxoDeRetorno.heroi;
         FuncaoTrocarCriature(indice + 1, fluxo);
     }
     else
     {
         GameController.g.HudM.Painel.AtivarNovaMens(string.Format(
                                                         BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.criatureParaMostrador)[1],
                                                         Manager.Dados.CriaturesAtivos[indice + 1].NomeEmLinguas
                                                         ), 30, 5);
         GameController.g.FinalizaHuds();
     }
 }
示例#8
0
    public void FuncaoDoUseiItem(int indice, FluxoDeRetorno fluxo)
    {
        if (EmEstadoDeAcao())
        {
            if (!usoDeItens.EstouUsandoItem)
            {
                manager.Dados.itemSai = indice;

                // hudM.MenuDeI.FinalizarHud();

                usoDeItens.Start(manager, fluxo);

                if (fluxo != FluxoDeRetorno.menuCriature && fluxo != FluxoDeRetorno.menuHeroi)
                {
                    manager.Estado = EstadoDePersonagem.parado;
                }
            }
        }
    }
示例#9
0
    public ReplaceManager(CharacterManager manager, Transform alvo, FluxoDeRetorno fluxo)
    {
        this.fluxo   = fluxo;
        this.manager = manager;
        List <CriatureBase> lista = manager.Dados.CriaturesAtivos;
        CriatureBase        temp  = lista[0];

        lista[0] = lista[manager.Dados.CriatureSai];
        lista[manager.Dados.CriatureSai] = temp;

        manager.Estado = EstadoDePersonagem.parado;
        manager.CriatureAtivo.PararCriatureNoLocal();
        manager.Mov.Animador.PararAnimacao();

        GameController.g.HudM.MenuDeI.FinalizarHud();
        PainelMensCriature.p.EsconderMensagem();

        estouTrocandoDeCriature = true;
        animaB = new AnimaBraco(manager, alvo);
    }
示例#10
0
        public static bool RetirarUmItem(
            MbItens nomeItem,
            CharacterManager gerente,
            FluxoDeRetorno fluxo = FluxoDeRetorno.heroi)
        {
            int indice = gerente.Dados.Itens.IndexOf(nomeItem);

            if (indice > -1)
            {
                if (gerente.Dados.Itens[indice].Estoque >= 1)
                {
                    gerente.Dados.Itens[indice].Estoque--;
                    GameController g = GameController.g;
                    if (g.UsarTempoDeItem == UsarTempoDeItem.sempre || (g.UsarTempoDeItem == UsarTempoDeItem.emLuta && g.estaEmLuta))
                    {
                        gerente.Dados.TempoDoUltimoUsoDeItem = Time.time;
                    }

                    Debug.Log("remove ai vai");
                    if (gerente.Dados.Itens[indice].Estoque == 0)
                    {
                        Debug.Log("Tira daí");
                        g.FinalizaHuds();
                        gerente.Dados.Itens.Remove(gerente.Dados.Itens[indice]);

                        if (gerente.Dados.itemSai > gerente.Dados.Itens.Count - 1)
                        {
                            gerente.Dados.itemSai = 0;
                        }

                        if (fluxo == FluxoDeRetorno.menuCriature || fluxo == FluxoDeRetorno.menuHeroi)
                        {
                            GameController.g.StartCoroutine(VoltarDosItensQuandoNaoTemMais());
                        }
                    }
                    return(true);
                }
            }

            return(false);
        }
示例#11
0
    public override void IniciaUsoComCriature(GameObject dono)
    {
        fluxo = FluxoDeRetorno.heroi;
        if (GameController.g.estaEmLuta)
        {
            GameController.g.HudM.Painel.AtivarNovaMens(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.mensLuta)[0], 25, 2);
            Estado = EstadoDeUsoDeItem.finalizaUsaItem;
        }
        else
        {
            Estado = EstadoDeUsoDeItem.selecaoDeItem;

            if (GameController.g.Manager.Estado == EstadoDePersonagem.comMeuCriature)
            {
                GameController.g.Manager.CriatureAtivo.Estado = CreatureManager.CreatureState.parado;
            }

            GameController.EntrarNoFluxoDeTexto();
            GameController.g.HudM.Menu_Basico.IniciarHud(OpcaoDeArmagedomescolhida, OpcoesDeArmagedom());
        }
    }
示例#12
0
        // Use this for initialization
        public void StartFields(GameObject dono, List <ItemBase> lista, int indexOfUse, FluxoDeRetorno fluxo)
        {
            EstouUsandoItem = true;
            this.dono       = dono;

            esseItem   = (ItemBase)lista[indexOfUse].Clone();
            this.fluxo = fluxo;

            switch (fluxo)
            {
            case FluxoDeRetorno.criature:
                esseItem.IniciaUsoComCriature(dono, lista);
                break;

            case FluxoDeRetorno.heroi:
                esseItem.IniciaUsoDeHeroi(dono, lista);
                break;

            case FluxoDeRetorno.menuHeroi:
            case FluxoDeRetorno.menuCriature:
                esseItem.IniciaUsoDeMenu(dono, lista);
                break;
            }
        }
    // Use this for initialization
    public void Start(CharacterManager manager, FluxoDeRetorno fluxo)
    {
        retorno       = false;
        retornoDeFora = true;
        gerente       = manager;
        esseItem      = gerente.Dados.Itens[gerente.Dados.itemSai];
        this.fluxo    = fluxo;

        switch (fluxo)
        {
        case FluxoDeRetorno.criature:
            esseItem.IniciaUsoComCriature(gerente.gameObject);
            break;

        case FluxoDeRetorno.heroi:
            esseItem.IniciaUsoDeHeroi(gerente.gameObject);
            break;

        case FluxoDeRetorno.menuHeroi:
        case FluxoDeRetorno.menuCriature:
            esseItem.IniciaUsoDeMenu(gerente.gameObject);
            break;
        }
    }
示例#14
0
 public void FinalizaUsaItemDeFora()
 {
     retorno         = false;
     EstouUsandoItem = false;
     fluxo           = FluxoDeRetorno.heroi;
 }
 public void FinalizaUsaItemDeFora()
 {
     retorno       = false;
     retornoDeFora = false;
     fluxo         = FluxoDeRetorno.heroi;
 }