internal static bool CheckPath(Vector3[] vectors, bool withoutChamps = false) { var list = vectors.ToList(); for (var i = 0; i < list.Count; i++) { if (i < list.Count - 1 && list[i].Distance(list[i + 1]) > 800) { if ((i > 1 && list[i - 1].Distance(list[i]) > 150) && ((list[i].CountEnemiesInRange(GameInfo.ChampionRange) > 0 || !withoutChamps) && (list[i].UnderTurret(true) || AvoidLane(list[i])))) { return false; } list.Insert(i + 1, list[i].Extend(list[i + 1], list[i].Distance(list[i + 1]) / 2)); i--; } } mod = list; return true; }
public static Vector3[] SortPointsByDistance(Vector3 origin, Vector3[] points) { var pointList = points.ToList(); pointList.Sort((a, b) => a.Distance(origin).CompareTo(b.Distance(origin))); return pointList.ToArray(); }