/// <summary> /// /// </summary> public void MoveEntity(AbstractEntity entity) { if (entity.MovementInterval == 0) { entity.MovementInterval = Util.Next(10000, 25000); } if (entity.NextMovementTime == 0) { entity.NextMovementTime = UpdateTime + entity.MovementInterval; } if (entity.NextMovementTime > UpdateTime) { return; } entity.NextMovementTime = UpdateTime + entity.MovementInterval; // Move only if there is a player on the map, else it is useless if (m_playerCount == 0) { return; } var cellId = entity.LastCellId; if (cellId < 1) { cellId = GetNearestMovementCell(entity.CellId); } if (entity.LastCellId == 0) { entity.LastCellId = entity.CellId; } else { entity.LastCellId = 0; } if (cellId < 1) { return; } Move(entity, entity.CellId, Pathmaker.FindPathAsString(entity.CellId, cellId, false)); entity.StopAction(GameActionTypeEnum.MAP_MOVEMENT); }