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