//Handles what happens when an enemy dies public IEnumerator EnemyDeath(int enemyAttacked, EnemyCombatBehaviour enemy) { //decrease the number o f enemies left _enemiesLeft -= 1; //Death Sound AudioManager.instance.SFX.clip = AudioManager.instance.enemySFX[AudioManager.instance.enemySFX.Count - 1]; AudioManager.instance.SFX.Play(); //turin off health bar CombatController.instance.enemyHealthBars[enemyAttacked].gameObject.SetActive(false); enemy.EnemyDeath(); yield return(new WaitForSecondsRealtime(1f)); Debug.Log("Enemy Dead"); //Destroy Enemy Destroy(CombatController.instance._inBattle[enemyAttacked].gameObject); Debug.Log("Enemy Dead: " + CombatController.instance._inBattle[enemyAttacked].name); //remove enemy from list(s) CombatController.instance._inBattle[enemyAttacked] = null; }
public IEnumerator HitEnemy(EnemyCombatBehaviour e) { e.EnemyHit(); StartCoroutine(AudioManager.instance.WaitUntilNextBeat(Math.Round(AudioManager.instance.songPositionInBeats, MidpointRounding.AwayFromZero))); yield return(new WaitUntil(() => AudioManager.instance.nextBeat)); AudioManager.instance.nextBeat = false; if (e.healthSlider.value <= 0) { e.EnemyDeath(); } else { e.Idle(); } }