Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        if (entrada == Teclas.CANCEL)
        {
            entrada = 0;
            gs.PlaySoundMenuCancel();
            if (estado == SELECAO_ITEM)
            {
                VoltarAoMenuDeBatalha();
            }
            else if (estado == SELECAO_ACAO)
            {
                LimparAcoes();
                estado = SELECAO_ITEM;
            }
        }
        else if (entrada == Teclas.ACTION)
        {
            entrada = 0;
            bool somErro = false;
            if (estado == SELECAO_ITEM)
            {
                Item itemAtual = unid.inventario[posItemSelecionado];
                if (itemAtual != null)
                {
                    itemSelecionado = itemAtual;
                    estado          = SELECAO_ACAO;
                    MostrarAcoes();
                }
                else
                {
                    somErro = true;
                }
            }
            else if (estado == SELECAO_ACAO)
            {
                if (posAcaoSelecionada == 0)
                {
                    if (acoes[0].text == "> Desequipar <")
                    {
                        unid.arma = DefinesArmas.armas["Punho"];
                        gs.AtualizarMenuBatalha();
                    }
                    else if (acoes[0].text == "> Equipar <")
                    {
                        //equipar a arma que tem o mesmo nome do item selecionado
                        unid.arma = DefinesArmas.armas[itemSelecionado.nome];
                        gs.AtualizarMenuBatalha();
                    }
                    else
                    {
                        if (itemSelecionado == null || itemSelecionado.efeitoUso == null)
                        {
                            somErro = true;
                            //print("não pode usar habilidade");
                        }
                        else
                        {
                            unid.itemAtual               = itemSelecionado;
                            unid.posItemAtual            = posItemSelecionado;
                            gerenciadorInput.cursorAtivo = 0;
                            canvasAlvo.GetComponent <Canvas>().enabled = true;
                            //o jogo ficará circulando entre os alvos permitidos, então começaremos
                            //movendo para o primeiro alvo encontrado (viés para o canto inferior esquerdo)
                            cursor.GetComponent <ControleCursor>().IrParaPrimeiroAlvoItem();
                            cursor.GetComponent <ControleCursor>().MostrarOverlaysItem();
                            gameObject.GetComponent <Canvas>().enabled = false;
                        }
                        gs.PlaySoundMenuSelect(somErro);
                    }
                }
                else if (posAcaoSelecionada == 1)
                {
                    if (!unid.ExistemPersonagensAlvos(1, 1, true))
                    {
                        somErro = true;
                        //print("não pode trocar item");
                    }
                    else
                    {
                        gerenciadorInput.cursorAtivo = 0;
                        canvasAlvo.GetComponent <Canvas>().enabled = true;
                        //o jogo ficará circulando entre os alvos permitidos, então começaremos
                        //movendo para o primeiro alvo encontrado (viés para o canto inferior esquerdo)
                        cursor.GetComponent <ControleCursor>().IrParaPrimeiroAlvoTroca();
                        cursor.GetComponent <ControleCursor>().MostrarOverlaysItem();
                        cursor.GetComponent <ControleCursor>().indiceItemSelecionado = posItemSelecionado;
                        gameObject.GetComponent <Canvas>().enabled = false;
                    }
                }
                else if (posAcaoSelecionada == 2)
                {
                    //TODO: melhor pedir um diálogo de confirmação
                    //TODO: som de descarte

                    unid.DescartarItem(posItemSelecionado);
                    gs.AtualizarMenuBatalha();
                    itemSelecionado = null;
                    estado          = SELECAO_ITEM;
                    LimparAcoes();
                }
                MostrarItens();
                if (itemSelecionado != null)
                {
                    MostrarAcoes();
                }
                MostrarArmaEquipada();
            }
            gs.PlaySoundMenuSelect(somErro);
        }
        else if (entrada == Teclas.DPAD)
        {
            entrada = 0;
            gs.PlaySoundMenuChange();
            if (estado == SELECAO_ITEM)
            {
                posItemSelecionado = posItemSelecionado - (int)direcao.y;
                posItemSelecionado = (slots.Length + posItemSelecionado) % slots.Length;
                MostrarItens();
            }
            else if (estado == SELECAO_ACAO)
            {
                posAcaoSelecionada = posAcaoSelecionada - (int)direcao.y;
                posAcaoSelecionada = (acoes.Length + posAcaoSelecionada) % acoes.Length;
                MostrarAcoes();
            }
        }
    }