public void Execute() { if (!needUpdate) { return; } needUpdate = false; HealthPointsMessagePack actualValues = messagePacks.Last(); foreach (var pair in actualValues.entityIdToValue) { ushort entityId = pair.Key; float health = pair.Value; var entity = gameContext.GetEntityWithId(entityId); if (entity == null) { log.Debug("Нет сущности с id " + entityId); continue; } if (!entity.hasHealthPoints) { entity.isNeedHealthBar = true; entity.AddHealthPoints((int)health); } else if (Math.Abs(entity.healthPoints.value - health) > 0.01f) { entity.ReplaceHealthPoints((int)health); } // log.Debug("Обновление хп "+health); } }
public void SetNewHealthPoints(HealthPointsMessagePack message) { messagePacks.Add(message); needUpdate = true; }