public void Hurt(int damage, float force, Transform obj) { // show healthbar canvas.enabled = true; // minus current health by damage mCurrentHealth -= damage; SetHealth(); DamagePopUp.CreateEnemy(transform.position, damage); // animate hurt animation FindObjectOfType <AudioManager>().Play("Hurt"); animator.SetTrigger("Hurt"); StartCoroutine(Knockback(knockbackDuration, obj, force)); // if current drop below 0, play die animation and set enable to boc collider and scripts to // false if (mCurrentHealth <= 0) { Die(); if (enemySpawner != null) // if was spawned by an enemySpawner { enemySpawner.GetComponent <EnemySpawner>().ifEnemyDied(); // run ifEnemyDied } } }
IEnumerator DamageOverTimeCoroutine(int damageAmount, int damageTime) { isPoisoned = true; while (damageTime > 0) { mRenderer.color = Color.green; mCurrentHealth -= damageAmount; SetHealth(); DamagePopUp.CreateEnemy(transform.position, damageAmount); if (mCurrentHealth < 1) { mRenderer.color = Color.white; Die(); } yield return(new WaitForSecondsRealtime(0.25f)); mRenderer.color = Color.white; yield return(new WaitForSecondsRealtime(0.75f)); damageTime--; } isPoisoned = false; }