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; } }