Exemple #1
0
        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);
            }
        }
Exemple #2
0
 public void SetNewHealthPoints(HealthPointsMessagePack message)
 {
     messagePacks.Add(message);
     needUpdate = true;
 }