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); } }
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; } }