private Geometry.Polygon.Sector GetSimplePolygon(bool predictPosition = false) { var basePos = predictPosition ? SpellManager.Q.GetPrediction(Target).UnitPosition : Target.ServerPosition; var pos = basePos + GetPassiveOffset(); var r = Passive == PassiveType.UltPassive ? 400 : PolygonRadius; var sector = new Geometry.Polygon.Sector(basePos, pos, Geometry.DegreeToRadian(PolygonAngle), r); sector.UpdatePolygon(); return sector; }
/// <summary> /// Called when the game draws itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> private static void OnDraw(EventArgs args) { try { if (Player.IsDead) { return; } if (IsActive("GFUELTalon.Draw.W") && W.IsReady()) { var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (target.IsValidTarget() == false) { return; } var polygon = new Geometry.Polygon.Sector( ObjectManager.Player.Position, target.Position, 54 * (float)Math.PI / 180, 700); polygon.UpdatePolygon(); polygon.Draw(Color.Aqua); } } catch (Exception exception) { Console.WriteLine(exception); } }
private Geometry.Polygon GetFilledPolygon(bool predictPosition = false) { var basePos = predictPosition ? SpellManager.Q.GetPrediction(Target).UnitPosition : Target.ServerPosition; var pos = basePos + GetPassiveOffset(); //var polygons = new List<Geometry.Polygon>(); var list = new List<Vector2>(); var r = Passive == PassiveType.UltPassive ? 400 : PolygonRadius; var angle = Geometry.DegreeToRadian(PolygonAngle); for (var i = 100; i < r; i += 10) { if (i > r) { break; } var sector = new Geometry.Polygon.Sector(basePos, pos, angle, i); sector.UpdatePolygon(); list.AddRange(sector.Points); //polygons.Add(sector); } return new Geometry.Polygon { Points = list.Distinct().ToList() }; //return polygons.JoinPolygons().FirstOrDefault(); }
private Geometry.Polygon GetFilledPolygon(bool predictPosition = false) { var basePos = predictPosition ? SpellManager.Q.GetPrediction(Target).UnitPosition : Target.ServerPosition; var pos = basePos + GetPassiveOffset(); var points = new List<Vector2>(); for (var i = 100; i < PolygonRadius; i += 10) { if (i > PolygonRadius) { break; } var calcRads = PolygonAngle; //PolygonRadius - i < 50 ? PolygonAngle - 20 : PolygonAngle; var sector = new Geometry.Polygon.Sector(basePos, pos, Geometry.DegreeToRadian(calcRads), i, 30); sector.UpdatePolygon(); points.AddRange(sector.Points); } points.RemoveAll(p => p.Distance(basePos) < 100); return new Geometry.Polygon { Points = points.Distinct().ToList() }; }