Exemplo n.º 1
0
        private Vector3 GetTumblePos(EloBuddy.Obj_AI_Base target)
        {
            if (!EloBuddy.SDK.Orbwalker.ActiveModesFlags.HasFlag(EloBuddy.SDK.Orbwalker.ActiveModes.Combo))
                return GetAggressiveTumblePos(target);

            var cursorPos = EloBuddy.Game.CursorPos;
            var targetCrowdControl = from tuplet in CachedCrowdControl
                                     where tuplet.Item1 == target.CharData.BaseSkinName
                                     select tuplet.Item2;

            if (!IsDangerousPosition(cursorPos) && !(targetCrowdControl.FirstOrDefault() != null && targetCrowdControl.Any(
                        crowdControlEntry =>
                            target.Spellbook.GetSpell(crowdControlEntry.Slot).IsReady()))) return cursorPos;

            //if the target is not a melee and he's alone he's not really a danger to us, proceed to 1v1 him :^ )
            if (!target.IsMelee && EloBuddy.ObjectManager.Player.CountEnemyHeroesInRange(800) == 1) return cursorPos;
            var targetWaypoints = LeagueSharp.SDK.Core.Utils.MathUtils.GetWaypoints(target);
            if (targetWaypoints[targetWaypoints.Count - 1].Distance(EloBuddy.ObjectManager.Player.ServerPosition) > 550)
                return Vector3.Zero;

            var aRC =
                new Geometry.Circle(EloBuddy.ObjectManager.Player.ServerPosition.ToVector2(), 300).ToPolygon().ToClipperPath();
            var targetPosition = target.ServerPosition;
            var pList = (from p in aRC
                         select new Vector2(p.X, p.Y).ToVector3()
                             into v3
                         let dist = v3.Distance(targetPosition)
                         where !IsDangerousPosition(v3) && dist < 500
                         select v3).ToList();

            if (EloBuddy.ObjectManager.Player.UnderTurret() || EloBuddy.ObjectManager.Player.CountEnemyHeroesInRange(800) == 1 ||
                cursorPos.CountEnemyHeroesInRange(450) <= 1)
            {
                return pList.Count > 1 ? pList.OrderBy(el => el.Distance(cursorPos)).FirstOrDefault() : Vector3.Zero;
            }
            return pList.Count > 1
                ? pList.OrderByDescending(el => el.Distance(cursorPos)).FirstOrDefault()
                : Vector3.Zero;
        }
Exemplo n.º 2
0
        private Vector3 GetAggressiveTumblePos(EloBuddy.Obj_AI_Base target)
        {
            var cursorPos = EloBuddy.Game.CursorPos;

            if (!IsDangerousPosition(cursorPos)) return cursorPos;
            //if the target is not a melee and he's alone he's not really a danger to us, proceed to 1v1 him :^ )
            if (!target.IsMelee && EloBuddy.ObjectManager.Player.CountEnemyHeroesInRange(800) == 1) return cursorPos;

            var aRC =
                new Geometry.Circle(EloBuddy.ObjectManager.Player.ServerPosition.ToVector2(), 300).ToPolygon().ToClipperPath();
            var targetPosition = target.ServerPosition;

            foreach (var p in aRC)
            {
                var v3 = new Vector2(p.X, p.Y).ToVector3();
                var dist = v3.Distance(targetPosition);
                if (dist > 325 && dist < 450)
                {
                    return v3;
                }
            }
            return Vector3.Zero;
        }