Esempio n. 1
0
    //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;
    }
Esempio n. 2
0
    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();
        }
    }