43 lines
918 B
C#
43 lines
918 B
C#
using UnityEngine;
|
|
|
|
public class ZombieFairy : Enemy
|
|
{
|
|
[SerializeField] private Ability deathAbility;
|
|
[SerializeField] private bool hasDiedOnce;
|
|
[SerializeField] private float disappearanceTime;
|
|
private float currentDisappearanceTime;
|
|
protected override void OnDeath()
|
|
{
|
|
if (!hasDiedOnce)
|
|
{
|
|
hasDiedOnce = true;
|
|
health = maxHealth;
|
|
invulnerable = true;
|
|
isStalled = true;
|
|
currentDisappearanceTime = disappearanceTime;
|
|
sprite.color = Color.black;
|
|
}
|
|
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)
|
|
{
|
|
invulnerable = false;
|
|
isStalled = false;
|
|
sprite.color = Color.white;
|
|
}
|
|
}
|
|
}
|
|
}
|