IEnumerator PlayerAttack(bool special) { playerUnit.isDefending = false; var mydamage = playerUnit.damage; if (special) { mydamage *= 2; playerUnit.useMana(playerUnit.special_mana_cost); playerHUD.setMana(playerUnit.currentMana); } if (enemyUnit.isDefending) { Debug.Log("Enemy is defending"); mydamage = mydamage / 60; enemyUnit.isDefending = false; } Debug.Log("Damage given: " + mydamage); bool isDead = enemyUnit.takeDamage(mydamage); enemyHUD.setHP(enemyUnit.currentHP); dialogueText.text = player_special_attack + " attack!"; Handheld.Vibrate(); var music = PlayerPrefs.GetString("Music", "Default value"); if (music == "yes") { player_attack.Play(); } attackbar.SetActive(false); actionbar.SetActive(true); yield return(new WaitForSeconds(2f)); if (isDead) { state = BattleState.WON; StartCoroutine(EndBattle()); } else { state = BattleState.ENEMYTURN; StartCoroutine(EnemyTurn()); } yield return(new WaitForSeconds(2f)); }
IEnumerator EnemyTurn() { enemyUnit.isDefending = false; int random = UnityEngine.Random.Range(0, 3); bool isDead = false; var mydamage = enemyUnit.damage; Debug.Log("Random is: " + random); if (random == 1 || random == 0) { if (random == 1) { if (enemyUnit.currentMana > enemyUnit.special_mana_cost) { mydamage *= 2; enemyUnit.useMana(enemyUnit.special_mana_cost); enemyHUD.setMana(enemyUnit.currentMana); } } var music = PlayerPrefs.GetString("Music", "Default value"); if (music == "yes") { enemy_attack.Play(); } dialogueText.text = enemyUnit.unitName + " uses " + enemy_special_attack + "!"; Handheld.Vibrate(); if (playerUnit.isDefending) { playerUnit.isDefending = false; mydamage = mydamage / 60; } isDead = playerUnit.takeDamage(mydamage); playerHUD.setHP(playerUnit.currentHP); } if (random == 2) { enemyUnit.isDefending = true; enemyUnit.currentMana += 30; if (enemyUnit.currentMana > 100) { enemyUnit.currentMana = 100; } enemyHUD.setMana(enemyUnit.currentMana); dialogueText.text = enemyUnit.unitName + " defense mode!"; } yield return(new WaitForSeconds(1f)); if (isDead) { state = BattleState.LOST; Debug.Log("Player is dead"); StartCoroutine(EndBattle()); } else { state = BattleState.PLAYERTURN; playerTurn(); } }