public virtual void Damage(float value)
        {
            if (IsDead)
            {
                return;
            }

            if (!loadedHPBar)
            {
                GameEntry.Event.Fire(this, ShowEntityInLevelEventArgs.Create(
                                         (int)EnumEntity.HPBar,
                                         typeof(EntityHPBar),
                                         OnLoadHpBarSuccess,
                                         EntityDataFollower.Create(hpBarRoot)));

                loadedHPBar = true;
            }

            hp -= value;

            if (entityHPBar)
            {
                entityHPBar.UpdateHealth(hp / MaxHP);
            }


            if (hp <= 0)
            {
                hp = 0;
                Dead();
            }
        }
 private void OnLoadHpBarSuccess(Entity entity)
 {
     entityHPBar = entity.Logic as EntityHPBar;
     if (IsDead || !Available)
     {
         HideHpBar();
     }
     else
     {
         entityHPBar.UpdateHealth(hp / MaxHP);
     }
 }