public virtual void Initialize()
 {
     Health    = _unit.UnitData.MaxHealth;
     MaxHealth = Health;
     OnCurrentHealthChanged?.Invoke(Health);
     OnMaxHealthChanged?.Invoke(MaxHealth);
 }
 public virtual void TakeDamage(int damage, DamageType damageType, Unit attacker)
 {
     Health -= damage;
     OnCurrentHealthChanged?.Invoke(Health);
     if (Health <= 0)
     {
         OnDefeated?.Invoke();
     }
     OnTakeDamage?.Invoke(damage, damageType, attacker);
 }