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