new void Start()
    {
        if (ExistenciaDoController.AgendaExiste(Start, this))
        {
            KeyVar keys = GameController.g.MyKeys;


            Debug.Log("Conversou primeiro com Derek: " + keys.VerificaAutoShift(KeyShift.conversouPrimeiroComDerek) +
                      " - venceu Derek: " + keys.VerificaAutoShift(KeyShift.venceuDerekPrimeiraVez));


            if (keys.VerificaAutoShift(KeyShift.conversouPrimeiroComDerek) && keys.VerificaAutoShift(KeyShift.venceuDerekPrimeiraVez))
            {
                if (keys.VerificaAutoShift(KeyShift.entreouCanetaDeIan))
                {
                    npc = npcIan;
                }
                else
                {
                    MbItens.RetirarUmItem(GameController.g.Manager, PegaUmItem.Retorna(nomeIDitem.canetaSagradaDeLog), 1);
                }
            }
            else if (!keys.VerificaAutoShift(KeyShift.conversouPrimeiroComDerek) && !keys.VerificaAutoShift(KeyShift.venceuDerekPrimeiraVez))
            {
                Debug.Log("Ué....");
                npc = npcMov;
            }

            base.Start();
        }
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
 public void BtnOrganizar()
 {
     if (!modoOrganizar)
     {
         if (oSelecionado < 0)
         {
             infos.text = BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.selecioneParaOrganizar);
         }
         else
         {
             infos.text = string.Format(
                 BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.selecioneParaOrganizar)[1],
                 MbItens.NomeEmLinguas(meusItens[oSelecionado].ID));
         }
         EntrarNoModoOrganizar();
     }
     else
     {
         SairDoModoOrganizar();
         if (oSelecionado > -1)
         {
             infos.text = BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.shopInfoItem)[(int)(meusItens[oSelecionado].ID)];
         }
         else
         {
             infos.text = "Toque sobre um item para seleciona-lo";
         }
     }
 }
Esempio n. 4
0
    void AoClique(int i)
    {
        if (!modoOrganizar)
        {
            infos.text = BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.shopInfoItem)[(int)(meusItens[i].ID)];
            MudaSpriteDoItem(i);
        }
        else
        {
            if (oSelecionado >= 0)
            {
                insereI.FinalizarHud();
                TrocarDePosicao(oSelecionado, i);
                infos.text = BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.selecioneParaOrganizar);

                gameObject.SetActive(true);
            }
            else
            {
                MudaSpriteDoItem(i);
                infos.text = string.Format(
                    BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.selecioneParaOrganizar)[1],
                    MbItens.NomeEmLinguas(meusItens[oSelecionado].ID));
            }
        }
    }
    void TrocarDePosicao(int a, int b)
    {
        MbItens temp = (MbItens)meusItens[a].Clone();

        meusItens[a] = (MbItens)meusItens[b].Clone();
        meusItens[b] = temp;

        GameController.g.Manager.Dados.Itens = new System.Collections.Generic.List <MbItens>();
        GameController.g.Manager.Dados.Itens.AddRange(meusItens);
    }
Esempio n. 6
0
    static MbItens ProcuraItemNaLista(nomeIDitem nome)
    {
        MbItens retorno = new MbItens(new ContainerDeCaracteristicasDeItem());

        for (int i = GameController.g.Manager.Dados.Itens.Count - 1; i > -1; i--)
        {
            if (GameController.g.Manager.Dados.Itens[i].ID == nome)
            {
                retorno = GameController.g.Manager.Dados.Itens[i];
            }
        }
        return(retorno);
    }
Esempio n. 7
0
    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);
    }
 public void BotaoComprar()
 {
     if (comprar)
     {
         if (dados.Cristais >= quantidade * esseItem.Valor)
         {
             dados.AdicionaItem(esseItem.ID, quantidade);
             dados.Cristais -= quantidade * esseItem.Valor;
             GameController.g.HudM.AtualizeImagemDeAtivos();
             EntrarNaFraseAgradecer();
             //gameObject.SetActive(false);
         }
         else if (dados.Cristais < esseItem.Valor)
         {
             DesligaBotoes();
             GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(ReligarBotoes,
                 string.Format(textos[11], dados.Cristais / esseItem.Valor, MbItens.NomeEmLinguas(esseItem.ID))
                 );
             AtualizaQuantidade(1, esseItem.Valor);
         }
         else
         {
             DesligaBotoes();
             GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(ReligarBotoes,
                 string.Format(textos[7], dados.Cristais / esseItem.Valor, MbItens.NomeEmLinguas(esseItem.ID))
                 );
             AtualizaQuantidade(dados.Cristais / esseItem.Valor, esseItem.Valor);
         }
     }
     else
     {
         if (quantidade <= dados.TemItem(esseItem.ID))
         {
             MbItens.RetirarUmItem(GameController.g.Manager, esseItem, quantidade, FluxoDeRetorno.armagedom);
             dados.Cristais += (quantidade * Mathf.Max(1, esseItem.Valor / 4));
             GameController.g.HudM.AtualizeImagemDeAtivos();
             EntrarNaFraseAgradecer();//gameObject.SetActive(false);
         }
         else
         {
             DesligaBotoes();
             GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(ReligarBotoes,
                 string.Format(textos[8], dados.TemItem(esseItem.ID), MbItens.NomeEmLinguas(esseItem.ID))
                 );
             AtualizaQuantidade(dados.TemItem(esseItem.ID), Mathf.Max(1, esseItem.Valor / 4));
         }
     }
 }
Esempio n. 9
0
    string[] RetornaArgumentosPreVenda()
    {
        string[] retorno = new string[3];
        KeyVar   keys    = GameController.g.MyKeys;

        retorno[0] = !indice1?MbItens.NomeEmLinguas(nomeIDitem.pergSinara) : MbItens.NomeEmLinguas(nomeIDitem.pergAlana);

        retorno[1] = !indice1
            ? Mathf.Pow(2, keys.VerificaAutoCont(KeyCont.pergSinaraComprados)).ToString()
            : Mathf.Pow(2, keys.VerificaAutoCont(KeyCont.pergAlanaComprados)).ToString();

        retorno[2] = !indice1
            ? (100 * Mathf.Pow(2, keys.VerificaAutoCont(KeyCont.pergSinaraComprados))).ToString()
            : (100 * Mathf.Pow(2, keys.VerificaAutoCont(KeyCont.pergAlanaComprados))).ToString();
        return(retorno);
    }
    public void IniciarEssaHud(MbItens itemAlvo, bool comprar = true)
    {
        this.comprar = comprar;
        gameObject.SetActive(true);
        esseItem   = itemAlvo;
        dados      = GameController.g.Manager.Dados;
        quantidade = 1;

        labelCristais.text = textos[0] + dados.Cristais;
        mensagem.text      = string.Format(comprar ? textos[3] : textos[4], item.nomeEmLinguas(itemAlvo.ID));
        infos.text         = bancoDeTextos.falacoes[heroi.lingua]["shopInfoItem"][(int)(itemAlvo.ID)];
        quantidadeTXt.text = quantidade.ToString();

        valorAPagar.text         = (itemAlvo.Valor / (comprar?1:4)).ToString();
        labelValorAPagar.text    = comprar ? textos[1] : textos[2];
        labelDoBotaoComprar.text = comprar ? textos[5] : textos[6];
    }
Esempio n. 11
0
    public PergOlharMal(int estoque = 1) : base(new ContainerDeCaracteristicasDeItem(nomeIDitem.pergOlharMal)
    {
        valor = 333
    })
    {
        Estoque = estoque;
        TextoDaMensagemInicial = new string[2]
        {
            string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.emQuem), MbItens.NomeEmLinguas(nomeIDitem.pergOlharMal)),
            BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpe),
        };
        Particula = DoJogo.particulaDoAtaquePergaminhoFora;

        golpeDoPergaminho = new nomesGolpes[1]
        {
            nomesGolpes.olharMal,
        };
    }
 void VerificaMais(int tanto)
 {
     if (comprar)
     {
         if ((quantidade + tanto) * esseItem.Valor > dados.Cristais && dados.Cristais >= esseItem.Valor)
         {
             DesligaBotoes();
             estado = EstadoDaqui.emEspera;
             GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(ReligarBotoes,
                 string.Format(textos[7], dados.Cristais / esseItem.Valor, MbItens.NomeEmLinguas(esseItem.ID))
                 );
             AtualizaQuantidade(Mathf.Max(dados.Cristais / esseItem.Valor, 1), esseItem.Valor);
         }
         else if (dados.Cristais < esseItem.Valor)
         {
             DesligaBotoes();
             estado = EstadoDaqui.emEspera;
             GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(ReligarBotoes,
                 string.Format(textos[11], dados.Cristais / esseItem.Valor, MbItens.NomeEmLinguas(esseItem.ID))
                 );
             AtualizaQuantidade(1, esseItem.Valor);
         }
         else
         {
             AtualizaQuantidade(quantidade + tanto, esseItem.Valor);
         }
     }
     else
     {
         if (quantidade + tanto > dados.TemItem(esseItem.ID))
         {
             DesligaBotoes();
             estado = EstadoDaqui.emEspera;
             GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(ReligarBotoes,
                 string.Format(textos[8], dados.TemItem(esseItem.ID), MbItens.NomeEmLinguas(esseItem.ID))
                 );
             AtualizaQuantidade(dados.TemItem(esseItem.ID), Mathf.Max(1,esseItem.Valor / 4));
         }
         else
         {
             AtualizaQuantidade(quantidade + tanto, Mathf.Max(1, esseItem.Valor / 4));
         }
     }
 }
    public void IniciarEssaHud(MbItens itemAlvo, bool comprar = true)
    {
        this.comprar = comprar;
        BtnsManager.ReligarBotoes(gameObject);
        ActionManager.ModificarAcao(transform, BotaoComprar);
        estado = EstadoDaqui.botoesAtivos;
        gameObject.SetActive(true);
        esseItem = itemAlvo;
        dados = GameController.g.Manager.Dados;
        quantidade = 1;

        labelCristais.text = textos[0] + dados.Cristais;
        mensagem.text = string.Format(comprar ? textos[3] : textos[4], MbItens.NomeEmLinguas(itemAlvo.ID));
        infos.text = BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.shopInfoItem)[(int)(itemAlvo.ID)];
        quantidadeTXt.text = (comprar)?quantidade.ToString():quantidade+" / "+ dados.TemItem(esseItem.ID);

        valorAPagar.text = (itemAlvo.Valor / (comprar ? 1 : 4)).ToString();
        labelValorAPagar.text = comprar ? textos[1] : textos[2];
        labelDoBotaoComprar.text = comprar ? textos[5] : textos[6];
    }
Esempio n. 14
0
    void ComprarOuNaoComprar(int indice)
    {
        GameController.g.HudM.Menu_Basico.FinalizarHud();
        DisparaTexto      disparaT = GameController.g.HudM.DisparaT;
        KeyVar            keys     = GameController.g.MyKeys;
        DadosDoPersonagem dados    = GameController.g.Manager.Dados;

        disparaT.DesligarPaineis();


        int val = !indice1
            ? (int)Mathf.Pow(2, keys.VerificaAutoCont(KeyCont.pergSinaraComprados))
            : (int)Mathf.Pow(2, keys.VerificaAutoCont(KeyCont.pergAlanaComprados));

        switch (indice)
        {
        case 0:
            if (dados.TemItem(nomeIDitem.tinteiroSagradoDeLog) >= val && dados.Cristais >= 100 * val)
            {
                dados.Cristais -= 100 * val;
                GameController.g.HudM.AtualizeImagemDeAtivos();
                MbItens.RetirarUmItem(GameController.g.Manager, nomeIDitem.tinteiroSagradoDeLog, val);
                dados.AdicionaItem(indice1 ? nomeIDitem.pergAlana : nomeIDitem.pergSinara);
                disparaT.ReligarPaineis();
                disparaT.Dispara(conversa[2], fotoDoNPC);
                estadoInterno = EstadoInterno.fraseDeBoaCompra;
                keys.SomaCont(indice1 ? KeyCont.pergAlanaComprados : KeyCont.pergSinaraComprados, 1);
            }
            else
            {
                disparaT.ReligarPaineis();
                disparaT.Dispara(conversa[1], fotoDoNPC);
                estadoInterno = EstadoInterno.fraseInsuficiente;
            }
            break;

        case 1:
            EntraNasEscolhas();
            break;
        }
    }
Esempio n. 15
0
    public PergDeSabre(int estoque = 1) : base(new ContainerDeCaracteristicasDeItem(nomeIDitem.pergSabre)
    {
        valor      = 0,
        consumivel = false
    })
    {
        Estoque = estoque;
        TextoDaMensagemInicial = new string[2]
        {
            string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.emQuem), MbItens.NomeEmLinguas(nomeIDitem.pergSabre)),
            BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpe),
        };
        Particula  = DoJogo.particulaDoPoderPergaminhoFora;
        nomeBasico = "Sabre";

        golpeDoPergaminho = new nomesGolpes[4]
        {
            nomesGolpes.sabreDeAsa,
            nomesGolpes.sabreDeBastao,
            nomesGolpes.sabreDeEspada,
            nomesGolpes.sabreDeNadadeira
        };
    }
    public void AdicionaItem(nomeIDitem nomeItem)
    {
        MbItens I   = PegaUmItem.Retorna(nomeItem);
        bool    foi = false;

        if (I.Acumulavel > 1)
        {
            int ondeTem = -1;
            for (int i = 0; i < Itens.Count; i++)
            {
                if (Itens[i].ID == I.ID)
                {
                    if (Itens[i].Estoque < Itens[i].Acumulavel)
                    {
                        if (!foi)
                        {
                            ondeTem = i;
                            foi     = true;
                        }
                    }
                }
            }

            if (foi)
            {
                Itens[ondeTem].Estoque++;
            }
            else
            {
                Itens.Add(PegaUmItem.Retorna(nomeItem));
            }
        }
        else
        {
            Itens.Add(PegaUmItem.Retorna(nomeItem));
        }
    }
    // 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;
        }
    }
Esempio n. 18
0
    public static MbItens Retorna(nomeIDitem nomeItem, int estoque = 1)
    {
        MbItens retorno = new MbItens(new ContainerDeCaracteristicasDeItem());

        switch (nomeItem)
        {
        case nomeIDitem.maca:
            retorno = new MbMaca(estoque);
            break;

        case nomeIDitem.cartaLuva:
            retorno = new MbCartaLuva(estoque);
            break;

        case nomeIDitem.gasolina:
            retorno = new MbGasolina(estoque);
            break;

        case nomeIDitem.aguaTonica:
            retorno = new MbAguaTonica(estoque);
            break;

        case nomeIDitem.aura:
            retorno = new MbAura(estoque);
            break;

        case nomeIDitem.regador:
            retorno = new MbRegador(estoque);
            break;

        case nomeIDitem.ventilador:
            retorno = new MbVentilador(estoque);
            break;

        case nomeIDitem.inseticida:
            retorno = new MbInseticida(estoque);
            break;

        case nomeIDitem.pilha:
            retorno = new MbPilha(estoque);
            break;

        case nomeIDitem.estrela:
            retorno = new MbEstrela(estoque);
            break;

        case nomeIDitem.seiva:
            retorno = new MbSeiva(estoque);
            break;

        case nomeIDitem.quartzo:
            retorno = new MbQuartzo(estoque);
            break;

        case nomeIDitem.adubo:
            retorno = new MbAdubo(estoque);
            break;

        case nomeIDitem.repolhoComOvo:
            retorno = new MbRepolhoComOvo(estoque);
            break;

        case nomeIDitem.pergArmagedom:
            retorno = new MbPergaminhoDeArmagedom(estoque);
            break;

        case nomeIDitem.pergaminhoDePerfeicao:
            retorno = new MbPergaminhoDePerfeicao(estoque);
            break;

        case nomeIDitem.pergaminhoDeFuga:
            retorno = new MbPergaminhoDeFuga(estoque);
            break;

        case nomeIDitem.tinteiroSagradoDeLog:
            retorno = new TinteiroSagradaDeLog(estoque);
            break;

        case nomeIDitem.pergaminhoDeLaurense:
            retorno = new PergaminhoDeLaurense(estoque);
            break;

        case nomeIDitem.pergaminhoDeAnanda:
            retorno = new PergaminhoDeAnanda(estoque);
            break;

        case nomeIDitem.pergaminhoDeBoutjoi:
            retorno = new PergaminhoDeBoutjoi(estoque);
            break;

        case nomeIDitem.canetaSagradaDeLog:
            retorno = new CanetaSagradaDeLog(estoque);
            break;

        case nomeIDitem.pergSinara:
            retorno = new PergaminhoDeSinara(estoque);
            break;

        case nomeIDitem.pergAlana:
            retorno = new PergaminhoDeAlana(estoque);
            break;

        case nomeIDitem.pergSabre:
            retorno = new PergDeSabre(estoque);
            break;

        case nomeIDitem.pergMultiplicar:
            retorno = new PergDoMultiplicar(estoque);
            break;

        case nomeIDitem.antidoto:
            retorno = new Antidoto(estoque);
            break;

        case nomeIDitem.amuletoDaCoragem:
            retorno = new AmuletoDaCoragem(estoque);
            break;

        case nomeIDitem.tonico:
            retorno = new Tonico(estoque);
            break;

        case nomeIDitem.pergOlharEnfraquecedor:
            retorno = new PergOlharEnfraquecedor(estoque);
            break;

        case nomeIDitem.pergOlharMal:
            retorno = new PergOlharMal(estoque);
            break;

        case nomeIDitem.pergFuracaoDeFolhas:
            retorno = new PergFuracaoDeFolhas(estoque);
            break;

        case nomeIDitem.pergVentosCortantes:
            retorno = new PergVentosCortantes(estoque);
            break;

        case nomeIDitem.pergGosmaAcida:
            retorno = new PergGosmaAcida(estoque);
            break;
        }
        return(retorno);
    }
Esempio n. 19
0
    public static MbItens Retorna(nomeIDitem nomeItem, int estoque = 1)
    {
        MbItens retorno = new MbItens(new ContainerDeCaracteristicasDeItem());

        switch (nomeItem)
        {
        case nomeIDitem.maca:
            retorno = new MbMaca(estoque);
            break;

        case nomeIDitem.cartaLuva:
            retorno = new MbCartaLuva(estoque);
            break;

        case nomeIDitem.gasolina:
            retorno = new MbGasolina(estoque);
            break;

        case nomeIDitem.aguaTonica:
            retorno = new MbAguaTonica(estoque);
            break;

        case nomeIDitem.aura:
            retorno = new MbAura(estoque);
            break;

        case nomeIDitem.regador:
            retorno = new MbRegador(estoque);
            break;

        case nomeIDitem.ventilador:
            retorno = new MbVentilador(estoque);
            break;

        case nomeIDitem.inseticida:
            retorno = new MbInseticida(estoque);
            break;

        case nomeIDitem.pilha:
            retorno = new MbPilha(estoque);
            break;

        case nomeIDitem.estrela:
            retorno = new MbEstrela(estoque);
            break;

        case nomeIDitem.seiva:
            retorno = new MbSeiva(estoque);
            break;

        case nomeIDitem.quartzo:
            retorno = new MbQuartzo(estoque);
            break;

        case nomeIDitem.adubo:
            retorno = new MbAdubo(estoque);
            break;

        case nomeIDitem.repolhoComOvo:
            retorno = new MbRepolhoComOvo(estoque);
            break;
        }
        return(retorno);
    }
Esempio n. 20
0
    void VerificaItem()
    {
        ItemDeBau ii = recompensas[indiceDoEnviado];

        GameController.g.HudM.Painel.AtivarNovaMens(string.Format(conversa[3], ii.Quantidade, MbItens.NomeEmLinguas(ii.Item)), 25);
        GameController.g.HudM.MostrarItem.IniciarPainel(ii.Item, ii.Quantidade);
        GameController.g.Manager.Dados.AdicionaItem(ii.Item, ii.Quantidade);

        indiceDoEnviado++;
    }