public IEnumerator CycleNextTurn() { switch (currentAnimalTurn) { case CurrentAnimalTurn.PlayerSelection: yield return(new WaitForSeconds(0)); playerAttacks.TurnOffButtons(); currentAnimalTurn = CurrentAnimalTurn.PlayerAttack; break; case CurrentAnimalTurn.PlayerAttack: yield return(new WaitForSeconds(timeBtwStates)); currentAnimalTurn = CurrentAnimalTurn.PlayerDamage; break; case CurrentAnimalTurn.PlayerDamage: playerAttacks.PlayerAttackDamage(); yield return(new WaitForSeconds(timeBtwStates)); currentAnimalTurn = CurrentAnimalTurn.EnemySelection; break; case CurrentAnimalTurn.EnemySelection: playerAttacks.ClearPlayerAttackText(); yield return(new WaitForSeconds(timeBtwStates)); currentAnimalTurn = CurrentAnimalTurn.EnemyAttack; break; case CurrentAnimalTurn.EnemyAttack: enemyAttacks.AttackPlayer(); yield return(new WaitForSeconds(timeBtwStates)); currentAnimalTurn = CurrentAnimalTurn.EnemyDamage; break; case CurrentAnimalTurn.EnemyDamage: enemyAttacks.EnemyAttackDamageStep(); yield return(new WaitForSeconds(timeBtwStates)); playerAttacks.TurnOnButtons(); enemyAttacks.ClearEnemyAttackText(); currentAnimalTurn = CurrentAnimalTurn.PlayerSelection; break; default: break; } StopCoroutine("CycleNextTurn"); InvokeCycle(); }