void Update() { if (this._entity == null || !this._entity.gameObject.activeInHierarchy) { this.Disconnect(); base.enabled = false; } if (this.killable != null && this.realMeter != null) { float maxHp = this.killable.MaxHp; if (this.oldMaxHp != maxHp) { this.oldMaxHp = maxHp; this.realMeter.SetMaxHealth(maxHp, false); } this.realMeter.SetHealth(this.killable.CurrentHp, false); } for (int i = this.healthMeters.Count - 1; i >= 0; i--) { EntityHUD.ConnectedHealthMeter connectedHealthMeter = this.healthMeters[i]; if (connectedHealthMeter.Update()) { connectedHealthMeter.Stop(false); this.healthMeters.RemoveAt(i); } } }
void DisconnectHealthMeter(EntityHUD.ConnectedHealthMeter meter) { int num = this.healthMeters.IndexOf(meter); if (num != -1) { this.healthMeters.RemoveAt(num); meter.Stop(false); } }
public void Stop() { EntityHUD entityHUD = this.owner; EntityHUD.ConnectedHealthMeter connectedHealthMeter = this.meter; this.owner = null; this.meter = null; if (entityHUD != null && connectedHealthMeter != null) { entityHUD.DisconnectHealthMeter(connectedHealthMeter); } }
public EntityHUD.HealthMeterTag ConnectHealthMeter(Entity ent, string meterId) { this.Setup(); HealthMeterBase healthMeterForId = this._data.GetHealthMeterForId(meterId); Killable entityComponent = ent.GetEntityComponent <Killable>(); if (healthMeterForId != null && entityComponent != null) { HealthMeterBase pooledWindow = OverlayWindow.GetPooledWindow <HealthMeterBase>(healthMeterForId); EntityHUD.ConnectedHealthMeter connectedHealthMeter = new EntityHUD.ConnectedHealthMeter(ent, entityComponent, pooledWindow); this.healthMeters.Add(connectedHealthMeter); if (this.ShouldHideStuff()) { connectedHealthMeter.Hide(); } return(new EntityHUD.HealthMeterTag(this, connectedHealthMeter)); } return(null); }
public HealthMeterTag(EntityHUD owner, EntityHUD.ConnectedHealthMeter meter) { this.owner = owner; this.meter = meter; }