using UnityEngine; public class ZombieFairy : Enemy { [SerializeField] private Ability deathAbility; [SerializeField] private bool hasDiedOnce; [SerializeField] private float disappearanceTime; [SerializeField] private Color disappearanceColor; [SerializeField] private BoxCollider2D boxCollider; private float currentDisappearanceTime; protected override void OnDeath() { if (!hasDiedOnce) { health = maxHealth; invulnerable = true; isStalled = true; hasDiedOnce = true; boxCollider.enabled = false; currentDisappearanceTime = disappearanceTime; sprite.color = disappearanceColor; } else { Destroy(gameObject); WaveManager.instance.enemiesInPlay.Remove(this); WaveManager.instance.UpdateKills(); } deathAbility.TryAbility(); } protected override void Update() { base.Update(); if (currentDisappearanceTime > 0) { currentDisappearanceTime -= Time.deltaTime; if (currentDisappearanceTime <= 0) { boxCollider.enabled = true; invulnerable = false; isStalled = false; sprite.color = Color.white; } } } }