Esempio n. 1
0
    // Update is called once per frame
    public void Update(Controlador controlador, int pontosDeMana, bool noChao, DadosDoJogador dados)
    {
        if (CommandReader.PressionadoBotao(2, controlador) && noChao)
        {
            if (!particulaDaCura.activeSelf)
            {
                tempoEmRecuperacao -= Time.deltaTime;
            }

            if (tempoEmRecuperacao < 0)
            {
                TempoPressionado += Time.deltaTime;

                if (EmTempoDeRecarga && pontosDeMana >= custoParaRecarga)
                {
                    if (!particulaDaCura.activeSelf)
                    {
                        EventAgregator.Publish(new StandardSendGameEvent(EventKey.disparaSom, somDoIniciaCura));
                    }

                    particulaDaCura.SetActive(true);
                }
                else if (pontosDeMana < custoParaRecarga)
                {
                    tempoEmRecuperacao = coolDownRecharge;
                    //som de não tem magia
                }

                if (TempoPressionado > tempoParaRecarga)
                {
                    TempoPressionado   = 0;
                    tempoEmRecuperacao = coolDownRecharge;
                    particulaDaCura.SetActive(false);
                    VerifiqueRecarga(pontosDeMana);
                }
            }
        }
        else if (!CommandReader.PressionadoBotao(2, controlador))
        {
            tempoEmRecuperacao -= Time.deltaTime;
        }


        if (CommandReader.ButtonUp(2, controlador))
        {
            if (dados.TemDownArrowJump && CommandReader.VetorDirecao(controlador).z < -0.25f && !noChao)
            {
                VerifiqueDownArrowJump(pontosDeMana);
            }
            else if (TempoPressionado > tempoDaParticula)
            {
                tempoEmRecuperacao = coolDownRecharge;
                EventAgregator.Publish(new StandardSendGameEvent(null, EventKey.curaCancelada));
            }
            else
            {
                if (tempoEmRecuperacao <= -1 && dados.TemMagicAttack)
                {
                    VerifiqueMagicAttack(pontosDeMana);
                }
            }

            TempoPressionado = 0;
            particulaDaCura.SetActive(false);
        }
    }