private void SortRequests() { var pathRequestsTempList = _pathRequests.ToList(); for (var i = 0; i < pathRequestsTempList.Count - 1; i++) { var swapped = false; for (var j = 0; j < pathRequestsTempList.Count - i - 1; j++) { if (PathTypeComparison.PriorityLevel(pathRequestsTempList[i].PathValues.PathType) > PathTypeComparison.PriorityLevel(pathRequestsTempList[j + 1].PathValues.PathType)) { var temp = pathRequestsTempList[j]; pathRequestsTempList[j] = pathRequestsTempList[j + 1]; pathRequestsTempList[j + 1] = temp; swapped = true; } } if (!swapped) { break; } } _pathRequests.Clear(); foreach (var request in pathRequestsTempList) { _pathRequests.Enqueue(request); } }
public void Tick() { if (_pathRequestTracker.HasRequests() && _unitEnemyMover.CurrentRequest != null && PathTypeComparison.PriorityLevel(_pathRequestTracker.PeekNextRequest().PathValues.PathType) < PathTypeComparison.PriorityLevel(_unitEnemyMover.CurrentRequest.PathValues.PathType)) { _unitEnemyMover.FilterRequest(_pathRequestTracker.GetNextPathRequest()); return; } if (PathManagementPaused()) { return; } _unitEnemyMover.FilterRequest(_pathRequestTracker.GetNextPathRequest()); }