Пример #1
0
    private void Awake()
    {
        StartCoroutine(FadeOut(screen));//  Realiza o Fade ao entrar na cena de combate
        enemy  = enemyGO.GetComponent <Enemy>();
        betaGO = GameObject.Find("Beta");
        beta   = betaGO.GetComponent <Player>();

        ataqueSelecionado      = 0;
        ataque0_select.enabled = true;
        ataque1_select.enabled = false;
        ataque2_select.enabled = false;

        enemyVidaText.text = enemy.GetMaxVida() + " / " + enemy.GetMaxVida(); //   Inicializa textos da cena que mostram a vida atual tanto do beta quanto do inimigo
        betaVidaText.text  = beta.GetMaxVida() + " / " + beta.GetMaxVida();
        battleEvents.text  = "";
        pressedButton      = false;
        Random.InitState((int)Time.time);   //gera semente para valores randomicos
        turnoAtual = TURNOS.START;
    }
Пример #2
0
    private void Update()
    {
        Debug.Log(turnoAtual);
        switch (turnoAtual)
        {
        case TURNOS.START:
            beta.RecarregaAtributos();     //Recarrega todos os atributos (cur..) para seu valor maximo, por exemplo, curVida = maxVida.
            //   Decide se o inimigo ou o beta vai comecar a batalha
            if (beta.GetCurVelocidade() + Random.Range(0, 5) >= enemy.GetCurVelocidade() + Random.Range(0, 5))
            {
                turnoAtual        = TURNOS.PLAYER_TURN;
                battleEvents.text = "O Beta ataca primeiro!";
            }
            else
            {
                turnoAtual        = TURNOS.ENEMY_TURN;
                battleEvents.text = "O inimigo ataca primeiro!";
            }

            break;

        case TURNOS.PLAYER_TURN:
            Debug.Log(ataqueSelecionado);
            switch (ataqueSelecionado)
            {
            case 0:
                ataqueSelecionado = NavegaAtaques(0);
                if (Input.GetKeyDown(KeyCode.Z))
                {
                    Ataque0Selected();
                    turnoAtual = TURNOS.ENEMY_TURN;
                }
                break;

            case 1:
                ataqueSelecionado = NavegaAtaques(1);
                if (Input.GetKeyDown(KeyCode.Z))
                {
                    Ataque1Selected();
                    turnoAtual = TURNOS.ENEMY_TURN;
                }
                break;

            case 2:
                ataqueSelecionado = NavegaAtaques(2);
                if (Input.GetKeyDown(KeyCode.Z))
                {
                    Ataque2Selected();
                    turnoAtual = TURNOS.ENEMY_TURN;
                }
                break;
            }
            if (enemy.IsDead())
            {
                turnoAtual         = TURNOS.WIN;
                enemyVidaText.text = "0 / " + enemy.GetMaxVida();
            }
            else
            {
                enemyVidaText.text = enemy.GetCurVida() + " / " + enemy.GetMaxVida();
            }


            break;

        case TURNOS.ENEMY_TURN:
            battleEvents.text = "O inimigo atacou!";
            beta.TakeDamage(Random.Range(0, 5) + enemy.GetAtaque());

            turnoAtual = TURNOS.PLAYER_TURN;
            if (beta.IsDead())
            {
                turnoAtual        = TURNOS.LOSE;
                betaVidaText.text = "0 / " + beta.GetMaxVida();
            }
            else
            {
                betaVidaText.text = beta.GetCurVida() + " / " + beta.GetMaxVida();
            }
            break;

        case TURNOS.WIN:
            battleEvents.text = "Beta venceu! Pressione qualquer tecla para continuar...";
            if (Input.anyKey)
            {
                StartCoroutine(FadeIn(screen, "Icmc"));
            }
            break;

        case TURNOS.LOSE:
            battleEvents.text = "Beta foi derrotado! Pressione qualquer tecla para continuar...";
            if (Input.anyKey)
            {
                StartCoroutine(FadeIn(screen, "Icmc"));
            }
            break;
        }
    }