private Vector3 GetJungleSafeTumblePos(Obj_AI_Minion target) { var cursorPos = Game.CursorPos; if (IsSafeTumblePos(cursorPos)) { return(cursorPos); } if (!target.IsValidTarget()) { return(Vector3.Zero); } var targetPosition = target.ServerPosition; var myTumbleRangeCircle = new Geometry.Circle(ObjectManager.Player.ServerPosition.To2D(), 300).ToPolygon().ToClipperPath(); var goodCandidates = from p in myTumbleRangeCircle select new Vector2(p.X, p.Y).To3D() into v3 let dist = v3.Distance(targetPosition) where dist > menu.Item("QMinDist", true).GetValue <Slider>().Value&& dist < 500 select v3; return(goodCandidates.OrderByDescending(candidate => candidate.Distance(cursorPos)).FirstOrDefault()); }
private Vector3 GetSafeTumblePos(Obj_AI_Hero target) { if (!target.IsValidTarget()) return Vector3.Zero; var targetPosition = target.ServerPosition; var myTumbleRangeCircle = new Geometry.Circle(ObjectManager.Player.ServerPosition.To2D(), 300).ToPolygon().ToClipperPath(); var goodCandidates = from p in myTumbleRangeCircle select new Vector2(p.X, p.Y).To3D() into v3 let dist = v3.Distance(targetPosition) where dist > menu.Item("QMinDist", true).GetValue<Slider>().Value && dist < 500 select v3; return goodCandidates.OrderBy(candidate => candidate.Distance(Game.CursorPos)).FirstOrDefault(); }