Example #1
0
        /// <summary>
        /// Gets the ward polygon.
        /// </summary>
        /// <param name="w">The ward.</param>
        /// <returns></returns>
        private static List <Vector2> GetWardPolygon(Ward w)
        {
            var position     = w.Position;
            var closeWards   = GetWardsCloseTo(w);
            var polygonsList = closeWards.Select(enemy => new Utility.Geometry.Circle(position.LSTo2D(), w.WardTypeW.WardVisionRange).ToPolygon()).ToList();
            var pathList     = Utility.Geometry.ClipPolygons(polygonsList);
            var pointList    = pathList.SelectMany(path => path, (path, point) => new Vector2(point.X, point.Y)).Where(currentPoint => !currentPoint.LSIsWall()).ToList();

            return(pointList);
        }
Example #2
0
 /// <summary>
 /// Gets the wards close to another ward.
 /// </summary>
 /// <param name="w">The ward.</param>
 /// <returns></returns>
 private static List<Ward> GetWardsCloseTo(Ward w)
 {
     return WardTrackerVariables.detectedWards.Where(m => m.Position.Distance(w.Position, true) <= Math.Pow(w.WardTypeW.WardVisionRange, 2)).ToList();
 }
Example #3
0
 /// <summary>
 /// Gets the ward polygon.
 /// </summary>
 /// <param name="w">The ward.</param>
 /// <returns></returns>
 private static List<Vector2> GetWardPolygon(Ward w)
 {
     var position = w.Position;
     var closeWards = GetWardsCloseTo(w);
     var polygonsList = closeWards.Select(enemy => new Utility.Geometry.Circle(position.To2D(), w.WardTypeW.WardVisionRange).ToPolygon()).ToList();
     var pathList = Utility.Geometry.ClipPolygons(polygonsList);
     var pointList = pathList.SelectMany(path => path, (path, point) => new Vector2(point.X, point.Y)).Where(currentPoint => !currentPoint.IsWall()).ToList();
     return pointList;
 }
Example #4
0
 /// <summary>
 /// Gets the wards close to another ward.
 /// </summary>
 /// <param name="w">The ward.</param>
 /// <returns></returns>
 private static List <Ward> GetWardsCloseTo(Ward w)
 {
     return(WardTrackerVariables.detectedWards.Where(m => m.Position.LSDistance(w.Position, true) <= Math.Pow(w.WardTypeW.WardVisionRange, 2)).ToList());
 }