Example #1
0
 public static EloBuddy.SDK.Geometry.Polygon ToPolygon(this List<IntPoint> v)
 {
     var polygon = new EloBuddy.SDK.Geometry.Polygon();
     foreach (var point in v)
     {
         polygon.Add(new Vector2(point.X, point.Y));
     }
     return polygon;
 }
Example #2
0
        public static EloBuddy.SDK.Geometry.Polygon ToPolygon(this List <IntPoint> v)
        {
            var polygon = new EloBuddy.SDK.Geometry.Polygon();

            foreach (var point in v)
            {
                polygon.Add(new Vector2(point.X, point.Y));
            }
            return(polygon);
        }
Example #3
0
        public static EloBuddy.SDK.Geometry.Polygon GetPolyFromVector(Vector3 from, Vector3 to, float width)
        {
            var POS       = to.Extend(from, from.Distance(to)).To3DWorld();
            var direction = (POS.To2D() - to.To2D()).Normalized();

            var pos1 = (to.To2D() - direction.Perpendicular() * width / 2f).To3D();

            var pos2 =
                (POS.To2D() + (POS.To2D() - to.To2D()).Normalized() + direction.Perpendicular() * width / 2f).To3D();

            var pos3 = (to.To2D() + direction.Perpendicular() * width / 2f).To3D();

            var pos4 =
                (POS.To2D() + (POS.To2D() - to.To2D()).Normalized() - direction.Perpendicular() * width / 2f).To3D();
            var poly = new EloBuddy.SDK.Geometry.Polygon();

            poly.Add(pos1);
            poly.Add(pos3);
            poly.Add(pos2);
            poly.Add(pos4);
            return(poly);
        }
Example #4
0
        private static IEnumerable <NavMeshCell> CellsAnalyze(Vector2 pos, EloBuddy.SDK.Geometry.Polygon poly)
        {
            var sourceGrid = pos.ToNavMeshCell();
            var cellCount  = 50f;
            var startPos   = new NavMeshCell(sourceGrid.GridX - (short)Math.Floor(cellCount), sourceGrid.GridY - (short)Math.Floor(cellCount));

            var cells = new List <NavMeshCell> {
                startPos
            };

            for (var y = startPos.GridY; y < startPos.GridY + cellCount; y++)
            {
                for (var x = startPos.GridX; x < startPos.GridX + cellCount; x++)
                {
                    if (x == startPos.GridX && y == startPos.GridY)
                    {
                        continue;
                    }
                    if (x == sourceGrid.GridX && y == sourceGrid.GridY)
                    {
                        if (poly.IsInside(sourceGrid.WorldPosition))
                        {
                            cells.Add(sourceGrid);
                        }
                    }
                    else
                    {
                        if (poly.IsInside(new NavMeshCell(x, y).WorldPosition))
                        {
                            cells.Add(new NavMeshCell(x, y));
                        }
                    }
                }
            }
            return(cells.Where(c => c.WorldPosition.IsBuilding() || c.WorldPosition.IsWall()));
        }
Example #5
0
        private EloBuddy.SDK.Geometry.Polygon GetPoly(Vector3 pos)
        {
            var POS       = player.ServerPosition.Extend(pos, Q.ChargedMaxRange).To3DWorld();
            var direction = (POS.To2D() - player.ServerPosition.To2D()).Normalized();

            var pos1 = (player.ServerPosition.To2D() - direction.Perpendicular() * qWidth / 2f).To3D();

            var pos2 =
                (POS.To2D() + (POS.To2D() - player.ServerPosition.To2D()).Normalized() +
                 direction.Perpendicular() * qWidth / 2f).To3D();

            var pos3 = (player.ServerPosition.To2D() + direction.Perpendicular() * qWidth / 2f).To3D();

            var pos4 =
                (POS.To2D() + (POS.To2D() - player.ServerPosition.To2D()).Normalized() -
                 direction.Perpendicular() * qWidth / 2f).To3D();
            var poly = new EloBuddy.SDK.Geometry.Polygon();

            poly.Add(pos1);
            poly.Add(pos3);
            poly.Add(pos2);
            poly.Add(pos4);
            return(poly);
        }
Example #6
0
        public static EloBuddy.SDK.Geometry.Polygon GetPoly(Vector3 pos, float range, float widht)
        {
            var POS       = player.ServerPosition.Extend(pos, range).To3DWorld();
            var direction = (POS.To2D() - player.ServerPosition.To2D()).Normalized();

            var pos1 = (player.ServerPosition.To2D() - direction.Perpendicular() * widht / 2f).To3D();

            var pos2 =
                (POS.To2D() + (POS.To2D() - player.ServerPosition.To2D()).Normalized() +
                 direction.Perpendicular() * widht / 2f).To3D();

            var pos3 = (player.ServerPosition.To2D() + direction.Perpendicular() * widht / 2f).To3D();

            var pos4 =
                (POS.To2D() + (POS.To2D() - player.ServerPosition.To2D()).Normalized() -
                 direction.Perpendicular() * widht / 2f).To3D();
            var poly = new EloBuddy.SDK.Geometry.Polygon();

            poly.Add(pos1);
            poly.Add(pos3);
            poly.Add(pos2);
            poly.Add(pos4);
            return(poly);
        }