Exemple #1
0
    IEnumerator PlayerAttack()
    {
        bool playerEnergyTokenCheck = playerUnit.currentEnergyTokens > 0;

        if (playerEnergyTokenCheck)
        {
            playerUnit.ConsumeEnergyToken(1);
            dialoguePanel.GetComponentInChildren <Text>().text = "You strike " + enemyUnit.GetName();
        }
        else
        {
            dialoguePanel.GetComponentInChildren <Text>().text = "You are out of energy!\nYou should rest a little.";
            yield return(new WaitForSeconds(2f));

            PlayerTurn();
            yield break;
        }
        bool enemyDefeated = enemyUnit.TakeDamage(playerUnit.power);

        healthText.text      = "Health: " + playerUnit.currentHealth + "/" + playerUnit.maxHealth;
        energyTokenText.text = "Energy: " + playerUnit.currentEnergyTokens + "/" + playerUnit.maxEnergyTokens;
        attackButton.SetActive(false);
        restButton.SetActive(false);
        yield return(new WaitForSeconds(2f));

        if (enemyDefeated)
        {
            state = CombatState.WON;
            EndBattle();
        }
        else
        {
            state = CombatState.ENEMYTURN;
            StartCoroutine(EnemyTurn());
            yield break;
        }
    }