IEnumerator PlayerPoison() { CommandText.GetComponent <TextMeshProUGUI>().text = "Poisoning enemy"; yield return(new WaitForSeconds(2f)); EnemyIsPoisoned = true; EnemyPoisonCounter = 3; EnemyPoisonText.GetComponent <TextMeshProUGUI>().text = "Enemy is poisoned"; if (EnemyUnit.CurrentHP <= 0) { states = BattleStates.WON; EnemyDead = true; EndBattle(); } else { states = BattleStates.ENEMYTURN; StartCoroutine(EnemyTurn()); } }
IEnumerator EnemyTurn() { if (EnemyIsPoisoned) { EnemyUnit.CurrentHP--; EnemyHUD.SetHUD(EnemyUnit); if (EnemyPoisonCounter > 0) { EnemyPoisonCounter--; if (EnemyPoisonCounter == 0) { EnemyIsPoisoned = false; EnemyPoisonText.GetComponent <TextMeshProUGUI>().text = ""; } } } if (EnemyUnit.CurrentHP <= 0) { states = BattleStates.WON; } if (EnemyIsDefending) { EnemyIsDefending = false; } CommandText.GetComponent <TextMeshProUGUI>().text = "Enemy's turn"; if (EnemyCrippleCounter == 0) { EnemyIsCrippled = false; EnemyCrippleText.GetComponent <TextMeshProUGUI>().text = ""; } RandomEnemyAttack = Random.Range(1, 3); if (RandomEnemyAttack == 1) { EnemyDmg(); } if (RandomEnemyAttack == 2) { EnemyDefend(); } /* if(RandomEnemyAttack == 3) * { * EnemyHeal(); * } */ yield return(new WaitForSeconds(2f)); PlayerHUD.SetHUD(PlayerUnit); if (PlayerUnit.CurrentHP <= 0) { states = BattleStates.LOST; PlayerDead = true; EndBattle(); } else { states = BattleStates.PLAYERTURN; PlayerTurn(); } }