private void BossBattle_OnDamaged(object sender, System.EventArgs e)
    {
        switch (_currentStage)
        {
        case Stage.Stage_1:
            if (_bossHealthShield.GetShieldPct() <= 0.5f)
            {
                // Boss under 50% shield
                StartNextStage();


                SpawnEnemy();
                SpawnEnemy();
            }
            break;

        case Stage.Stage_2:
            if (_bossHealthShield.GetShieldPct() <= 0.0f)
            {
                // Boss with no shield
                StartNextStage();


                SpawnEnemy();
                SpawnEnemy();

                SpawnHealthPickup();
                SpawnHealthPickup();
            }
            break;

        case Stage.Stage_3:
            if (_bossHealthShield.GetHealthPct() <= 0.5f)
            {
                // Boss under 50% health
                StartNextStage();

                SpawnShieldPickup();
                SpawnShieldPickup();

                SpawnHealthPickup();
                SpawnHealthPickup();

                SpawnEnemy();
                SpawnEnemy();
            }
            break;
        }
    }
Exemple #2
0
    public void SetHealthShield(EnemyHealthShield healthShield)
    {
        _healthShield = healthShield;
        _healthShield.OnHealthPctChanged += HandleHealthChanged;
        _healthShield.OnShieldPctChanged += HandleShieldChanged;

        _healthBarImage.fillAmount = healthShield.GetHealthPct();
        _shieldBarImage.fillAmount = healthShield.GetShieldPct();

        if (!healthShield.HasShield())
        {
            _shieldBackgroundImage.gameObject.SetActive(false);
        }
    }