private IEnumerator StandardAttack() { animationController.Play("Attack Animation"); yield return(new WaitForSeconds(1)); if (turnController.GetForestConversion()) { damageText.text = "FOREST CONVERSION"; damageText.enabled = true; yield return(new WaitForSeconds(1)); StartCoroutine(TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2)), false)); yield return(new WaitForSeconds(1)); damageText.enabled = false; turnController.SetForestConversion(true); } else { chance = Random.Range(1, 3); switch (chance) { case 1: paladinController.StartCoroutine(paladinController.TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2)))); break; case 2: valkyrieController.StartCoroutine(valkyrieController.TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2)))); break; case 3: sageController.StartCoroutine(sageController.TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2)))); break; } } }
public IEnumerator TakeDamage(int damage) { if (turnController.GetForestConversion()) { increaseText.text = "forest conversion"; } else { damage -= (damage * (defencePower)) / 100; increaseText.color = Color.white; health -= damage; damageStart = damage - 50; animationController.Play("Damaged Animation"); takeDamageSound.Play(); increaseText.enabled = true; while (damageStart != damage + 1) { increaseText.text = " " + damageStart; damageStart++; yield return(new WaitForSeconds(0.00000001f)); } chance = Random.Range(0, 99); if (chance > 80) { special += 2; } else if (chance > 50) { special++; } if (special > MAX_SPECIAL) { special = MAX_SPECIAL; } if (health <= 0) { b_isDead = true; health = 0; if (b_isWounded) { woundedImage.enabled = false; b_isWounded = false; } else { spriteImage.material.color = transparent; } deadImage.enabled = true; } else if (health < (MAX_HEALTH * 20) / 100) { b_isWounded = true; spriteImage.material.color = transparent; woundedImage.enabled = true; } UpdateStats(); } yield return(new WaitForSeconds(1)); increaseText.enabled = false; }