Ejemplo n.º 1
0
        public static bool IsGoodEndPosition(this Vector3 position)
        {
            for (int i = 1; i <= 300f; i+= 300 / 5)
            {
                if (ObjectManager.Player.ServerPosition.Extend(position, i).IsWall())
                    return false;
            }

            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
            {
                return false;
            }

            var maxEnemies = 3;
            var enemiesEndPosition = position.CountEnemiesInRange(600);

            if (maxEnemies > enemiesEndPosition)
            {
                return true;
            }

            var enemiesAtPlayerPosition = ObjectManager.Player.CountEnemiesInRange(400);

            if (enemiesEndPosition <= enemiesAtPlayerPosition)
            {
                return true;
            }

            return false;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Determines whether the position is not into enemies.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <returns></returns>
        public static bool IsNotIntoEnemies(this Vector3 position)
        {
            if (!MenuExtensions.GetItemValue<bool>("solo.vayne.misc.tumble.smartQ") &&
                !MenuExtensions.GetItemValue<bool>("solo.vayne.misc.tumble.noqintoenemies"))
            {
                return true;
            }

            var enemyPoints = TumbleHelper.GetEnemyPoints();
            if (enemyPoints.ToList().Contains(position.To2D()) && !enemyPoints.Contains(ObjectManager.Player.ServerPosition.To2D()))
            {
                return false;
            }

            var closeEnemies =
                HeroManager.Enemies.FindAll(
                    en =>
                        en.IsValidTarget(1500f) &&
                        !(en.Distance(ObjectManager.Player.ServerPosition) < en.AttackRange + 65f));
            if (closeEnemies.All(enemy => position.CountEnemiesInRange(enemy.AttackRange > 350 ? enemy.AttackRange : 400) == 0))
            {
                return true;
            }

            return false;
        }
Ejemplo n.º 3
0
        public static bool IsSafePosition(this Vector3 position, bool considerAllyTurrets = true, bool considerLhEnemies = true)
        {
            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
            {
                return false;
            }

            var allies = position.CountAlliesInRange(ObjectManager.Player.AttackRange);
            var enemies = position.CountEnemiesInRange(ObjectManager.Player.AttackRange);
            var lhEnemies = considerLhEnemies ? position.GetLhEnemiesNear(ObjectManager.Player.AttackRange, 15).Count() : 0;

            if (enemies <= 1) ////It's a 1v1, safe to assume I can Q
            {
                return true;
            }

            if (position.UnderAllyTurret())
            {
                var nearestAllyTurret = ObjectManager.Get<Obj_AI_Turret>().Where(h => h.IsAlly).OrderBy(d => d.Distance(position, true)).FirstOrDefault();

                if (nearestAllyTurret != null)
                {
                    ////We're adding more allies, since the turret adds to the firepower of the team.
                    allies += 2;
                }
            }

            ////Adding 1 for my Player
            return (allies + 1 > enemies - lhEnemies);
        }
Ejemplo n.º 4
0
        public static bool IsSafe(this Vector3 position, float range)
        {
            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
            {
                return false;
            }

            var allies = position.CountAlliesInRange(ObjectManager.Player.AttackRange);
            var enemies = position.CountEnemiesInRange(ObjectManager.Player.AttackRange);
            var lhEnemies = position.GetLhEnemiesNear(ObjectManager.Player.AttackRange, 15).Count();

            if (enemies <= 1) ////It's a 1v1, safe to assume I can Q
            {
                return true;
            }

            if (position.UnderAllyTurret())
            {
                var nearestAllyTurret = ObjectManager.Get<Obj_AI_Turret>().Where(a => a.IsAlly).OrderBy(d => d.Distance(position, true)).FirstOrDefault();

                if (nearestAllyTurret != null)
                {
                    ////We're adding more allies, since the turret adds to the firepower of the team.
                    allies += 2;
                }
            }

            var normalCheck = (allies + 1 > enemies - lhEnemies);
            var PositionEnemiesCheck = true;

            var Vector2Position = position.To2D();
            var enemyPoints = PositioningHelper.GetEnemyZoneList(false);
            if (enemyPoints.Contains(Vector2Position))
            {
                PositionEnemiesCheck = false;
            }
            var closeEnemies = PositioningHelper.EnemiesClose;

            if (!closeEnemies.All(
                    enemy =>
                        position.CountEnemiesInRange(enemy.AttackRange) <= 1))
            {
                PositionEnemiesCheck = false;
            }

            return normalCheck && PositionEnemiesCheck;
        }
Ejemplo n.º 5
0
 public static bool InDanger(this AIHeroClient target)
 {
     if (Player.Instance.IsInShopRange()) return false;
     if (TakeDangerSpell) return true;
     if (TakeAA || TakeSpell || TakeSS)
     {
         if (target.HealthPercent <= DamageEngine["HPDangerSlider"].Cast<Slider>().CurrentValue)
         {
             if (target.CountEnemiesInRange(DamageEngine["EnemiesDangerRange"].Cast<Slider>().CurrentValue) >= DamageEngine["EnemiesDangerSlider"].Cast<Slider>().CurrentValue) return true;
             //else return false;
         }
         //else return false;
     }
     return false;
 }
Ejemplo n.º 6
0
        public static bool OkToQ(this Vector3 position)
        {
            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
                return false;
            var allies = position.CountAlliesInRange(ObjectManager.Player.AttackRange);
            var enemies = position.CountEnemiesInRange(ObjectManager.Player.AttackRange);
            var lhEnemies = GetLhEnemiesNearPosition(position, ObjectManager.Player.AttackRange).Count();

            if (enemies == 1) //It's a 1v1, safe to assume I can E
            {
                return true;
            }

            //Adding 1 for the Player
            return (allies + 1 > enemies - lhEnemies);
        }
Ejemplo n.º 7
0
        public static bool IsSafe(this Vector3 position, bool noQIntoEnemiesCheck = false)
        {
            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
            {
                return false;
            }

            var allies = position.CountAlliesInRange(ObjectManager.Player.AttackRange);
            var enemies = position.CountEnemiesInRange(ObjectManager.Player.AttackRange);
            var lhEnemies = position.GetLhEnemiesNear(ObjectManager.Player.AttackRange, 15).Count();

            if (enemies <= 1) ////It's a 1v1, safe to assume I can Q
            {
                return true;
            }

            if (position.UnderAllyTurret())
            {
                var nearestAllyTurret = ObjectManager.Get<Obj_AI_Turret>().Where(a => a.IsAlly).OrderBy(d => d.Distance(position, true)).FirstOrDefault();

                if (nearestAllyTurret != null)
                {
                    ////We're adding more allies, since the turret adds to the firepower of the team.
                    allies += 2;
                }
            }

            ////Adding 1 for my Player
            var normalCheck = (allies + 1 > enemies - lhEnemies);
            var QEnemiesCheck = true;

            if (MenuExtensions.GetItemValue<bool>("dz191.vhr.misc.tumble.noqenemies") && noQIntoEnemiesCheck)
            {
                var Vector2Position = position.To2D();
                var enemyPoints = MenuExtensions.GetItemValue<bool>("dz191.vhr.misc.tumble.dynamicqsafety") ? GetEnemyPoints() : GetEnemyPoints(false);
                if (enemyPoints.Contains(Vector2Position) &&
                    !MenuExtensions.GetItemValue<bool>("dz191.vhr.misc.tumble.qspam"))
                {
                    QEnemiesCheck = false;
                }
            }

            return normalCheck && QEnemiesCheck;
        }
Ejemplo n.º 8
0
        public static bool IsSafe(this Vector3 position, bool noQIntoEnemiesCheck = false)
        {
            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
            {
                return false;
            }

            var allies = position.CountAlliesInRange(ObjectManager.Player.AttackRange);
            var enemies = position.CountEnemiesInRange(ObjectManager.Player.AttackRange);
            var lhEnemies = position.GetLhEnemiesNear(ObjectManager.Player.AttackRange, 15).Count();

            if (enemies <= 1) ////It's a 1v1, safe to assume I can Q
            {
                return true;
            }

            if (position.UnderAllyTurret_Ex())
            {
                var nearestAllyTurret = ObjectManager.Get<Obj_AI_Turret>().Where(a => a.IsAlly).OrderBy(d => d.LSDistance(position, true)).FirstOrDefault();

                if (nearestAllyTurret != null)
                {
                    ////We're adding more allies, since the turret adds to the firepower of the team.
                    allies += 2;
                }
            }

            ////Adding 1 for my Player
            var normalCheck = (allies + 1 > enemies - lhEnemies);
            var QEnemiesCheck = true;

            if (getCheckBoxItem(MenuGenerator.miscMenu, "dz191.vhr.misc.tumble.noqenemies") && noQIntoEnemiesCheck)
            {
                if (!getCheckBoxItem(MenuGenerator.miscMenu, "dz191.vhr.misc.tumble.noqenemies.old"))
                {
                    var Vector2Position = position.LSTo2D();
                    var enemyPoints = getCheckBoxItem(MenuGenerator.miscMenu, "dz191.vhr.misc.tumble.dynamicqsafety")
                        ? GetEnemyPoints()
                        : GetEnemyPoints(false);
                    if (enemyPoints.Contains(Vector2Position) &&
                        !getCheckBoxItem(MenuGenerator.miscMenu, "dz191.vhr.misc.tumble.qspam"))
                    {
                        QEnemiesCheck = false;
                    }

                    var closeEnemies =
                    HeroManager.Enemies.FindAll(en => en.LSIsValidTarget(1500f) && !(en.LSDistance(ObjectManager.Player.ServerPosition) < en.AttackRange + 65f))
                    .OrderBy(en => en.LSDistance(position));

                    if (
                        !closeEnemies.All(
                            enemy =>
                                position.CountEnemiesInRange(
                                    getCheckBoxItem(MenuGenerator.miscMenu, "dz191.vhr.misc.tumble.dynamicqsafety")
                                        ? enemy.AttackRange
                                        : 405f) <= 1))
                    {
                        QEnemiesCheck = false;
                    }
                }
                else
                {
                    var closeEnemies =
                    HeroManager.Enemies.FindAll(en => en.LSIsValidTarget(1500f)).OrderBy(en => en.LSDistance(position));
                    if (closeEnemies.Any())
                    {
                        QEnemiesCheck =
                            !closeEnemies.All(
                                enemy =>
                                    position.CountEnemiesInRange(
                                        getCheckBoxItem(MenuGenerator.miscMenu, "dz191.vhr.misc.tumble.dynamicqsafety")
                                            ? enemy.AttackRange
                                            : 405f) <= 1);
                    }
                }

            }

            return normalCheck && QEnemiesCheck;
        }
Ejemplo n.º 9
0
        public static bool IsTotallySafe(this Vector3 position, bool noQIntoEnemiesCheck = false)
        {
            if (Variables.UnderEnemyTower((Vector2)position) && !Variables.UnderEnemyTower((Vector2)Variables._Player.Position))
            {
                return false;
            }

            var allies = position.CountAlliesInRange(Variables._Player.AttackRange);
            var enemies = position.CountEnemiesInRange(Variables._Player.AttackRange);
            var lhEnemies = position.GetLhEnemiesNear(Variables._Player.AttackRange, 15).Count();

            if (enemies <= 1) ////It's a 1v1, safe to assume I can Q
            {
                return true;
            }

            if (position.UnderAllyTurret_Ex())
            {
                var nearestAllyTurret = ObjectManager.Get<Obj_AI_Turret>().Where(a => a.IsAlly).OrderBy(d => d.Distance(position, true)).FirstOrDefault();

                if (nearestAllyTurret != null)
                {
                    ////We're adding more allies, since the turret adds to the firepower of the team.
                    allies += 2;
                }
            }

            ////Adding 1 for my Player
            var normalCheck = (allies + 1 > enemies - lhEnemies);
            var QEnemiesCheck = true;

            if (Manager.MenuManager.DontuseQintoenemies && noQIntoEnemiesCheck)
            {
                if (!Manager.MenuManager.DontuseQintoenemies)
                {
                    var Vector2Position = position.To2D();
                    var enemyPoints = Manager.MenuManager.Dynamicsafety
                        ? GetEnemyPoints()
                        : GetEnemyPoints(false);
                    if (enemyPoints.Contains(Vector2Position) &&
                        !Manager.MenuManager.SpamQ)
                    {
                        QEnemiesCheck = false;
                    }

                    var closeEnemies =
                    EntityManager.Heroes.Enemies.FindAll(en => en.IsValidTarget(1500f) && !(en.Distance(Variables._Player.ServerPosition) < en.AttackRange + 65f))
                    .OrderBy(en => en.Distance(position));

                    if (
                        !closeEnemies.All(
                            enemy =>
                                position.CountEnemiesInRange(
                                    Manager.MenuManager.Dynamicsafety
                                        ? enemy.AttackRange
                                        : 405f) <= 1))
                    {
                        QEnemiesCheck = false;
                    }
                }
                else
                {
                    var closeEnemies =
                    EntityManager.Heroes.Enemies.FindAll(en => en.IsValidTarget(1500f)).OrderBy(en => en.Distance(position));
                    if (closeEnemies.Any())
                    {
                        QEnemiesCheck =
                            !closeEnemies.All(
                                enemy =>
                                    position.CountEnemiesInRange(
                                        Manager.MenuManager.Dynamicsafety
                                            ? enemy.AttackRange
                                            : 405f) <= 1);
                    }
                }

            }

            return normalCheck && QEnemiesCheck;
        }
Ejemplo n.º 10
0
        /// <summary>
        ///     Determines whether the position is not into enemies.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <returns></returns>
        public static bool IsNotIntoEnemies(this Vector3 position)
        {
            if (!MenuGenerator.QMenu["TDVaynemisctumblesmartQ"].Cast<CheckBox>().CurrentValue &&
                !MenuGenerator.QMenu["TDVaynemisctumblenoqintoenemies"].Cast<CheckBox>().CurrentValue)
            {
                return true;
            }

            var enemyPoints = TumbleHelper.GetEnemyPoints();
            if (enemyPoints.ToArray().Contains(position.To2D()) &&
                !enemyPoints.Contains(ObjectManager.Player.ServerPosition.To2D()))
            {
                return false;
            }

            var closeEnemies =
                EntityManager.Heroes.Enemies.FindAll(
                    en =>
                        en.IsValidTarget(1500f) &&
                        !(en.Distance(ObjectManager.Player.ServerPosition) < en.AttackRange + 65f));
            if (
                closeEnemies.All(
                    enemy => position.CountEnemiesInRange(enemy.AttackRange > 350 ? enemy.AttackRange : 400) == 0))
            {
                return true;
            }

            return false;
        }
Ejemplo n.º 11
0
 public static bool OkToQ2(this Vector3 Position)
 {
     if (!MenuHelper.isMenuEnabled("dz191.vhr.misc.tumble.mirin"))
     {
         var closeEnemies =
             HeroManager.Enemies.FindAll(en => en.IsValidTarget(1500f)).OrderBy(en => en.Distance(Position));
         if (closeEnemies.Any())
         {
             return
                 closeEnemies.All(
                     enemy =>
                         Position.CountEnemiesInRange(
                             MenuHelper.isMenuEnabled("dz191.vhr.misc.tumble.dynamicqsafety")
                                 ? enemy.AttackRange
                                 : 405f) < 1);
         }
         return true;
     }
     else
     {
         if (Position.CountEnemiesInRange(360f) >= 1)
         {
             return false;
         }
         return true;
     }
 }
Ejemplo n.º 12
0
        public static bool IsSafeQPosition(this Vector3 position)
        {
            if (position.UnderTurret(true) && !ObjectManager.Player.UnderTurret(true))
            {
                return false;
            }

            var allies = position.CountAlliesInRange(AutoAttackRange);
            var enemies = position.CountEnemiesInRange(AutoAttackRange);
            var lhEnemies = position.GetNearbyLowHealthEnemies(AutoAttackRange).Count;

            if (enemies == 1)
            {
                return true;
            }

            return (allies + 1 > enemies - lhEnemies);
        }
Ejemplo n.º 13
0
        public static bool IsNotIntoEnemies2(this Vector2 position)
        {

            var enemyPoints = DashHelper.GetEnemyPoints();
            if (enemyPoints.ToList().Contains(position) &&
                !enemyPoints.Contains(ObjectManager.Player.ServerPosition.To2D()))
            {
                return false;
            }

            var closeEnemies =
                EntityManager.Heroes.Enemies.FindAll(
                    en =>
                        en.IsValidTarget(1500f) &&
                        !(en.Distance(ObjectManager.Player.ServerPosition) < en.AttackRange + 65f));
            if (!closeEnemies.All(enemy => position.CountEnemiesInRange(enemy.AttackRange) <= 1))
            {
                return false;
            }

            return true;
        }
Ejemplo n.º 14
0
 public static bool InDanger(this AIHeroClient target, bool execute = false)
 {
     if (!Damages.ContainsKey(target.NetworkId)) return false;
     if (execute && DamageEngine["DisableExecuteCheck"].Cast<CheckBox>().CurrentValue) execute = false;
     return Damages[target.NetworkId].Damage > target.Health 
         || !execute && DamageEngine["HPDanger"].Cast<CheckBox>().CurrentValue && target.HealthPercent <= DamageEngine["HPDangerSlider"].Cast<Slider>().CurrentValue && (!DamageEngine["EnemiesDanger"].Cast<CheckBox>().CurrentValue || target.CountEnemiesInRange(DamageEngine["EnemiesDangerRange"].Cast<Slider>().CurrentValue) >= DamageEngine["EnemiesDangerSlider"].Cast<Slider>().CurrentValue) 
         || (Damages[target.NetworkId].Damage/target.MaxHealth) > 0.15 && !execute 
         || target.NetworkId == Player.Instance.NetworkId && Damages[target.NetworkId].DangerousSpells.Any() && !execute;
 }
Ejemplo n.º 15
0
        /// <summary>
        /// Returns if this passes the 'No Q into enemies mode'
        /// </summary>
        /// <param name="Position">The Position</param>
        /// <returns></returns>
        public static bool PassesNoQIntoEnemiesCheck(this Vector3 Position)
        {
            if (!VHR.VHRMenu["dz191.vhr.misc"]["dz191.vhr.misc.tumble"]["noqenemies"].GetValue<MenuBool>().Value || VHR.VHRMenu["dz191.vhr.misc"]["dz191.vhr.misc.tumble"]["qspam"].GetValue<MenuBool>().Value)
            {
                return true;
            }

            if (!VHR.VHRMenu["dz191.vhr.misc"]["dz191.vhr.misc.general"]["lightweight"].GetValue<MenuBool>().Value)
            {
                var Vector2Position = Position.ToVector2();
                if (EnemiesClose.Count() <= 1)
                {
                    return true;
                }

                if (GetEnemyPoints().Contains(Vector2Position) &&
                    !VHR.VHRMenu["dz191.vhr.misc"]["dz191.vhr.misc.tumble"]["qspam"].GetValue<MenuBool>().Value)
                {
                    return false;
                }
                return true;
            }

            var closeEnemies = GameObjects.EnemyHeroes.Where(en => en.IsValidTarget(1500f)).OrderBy(en => en.Distance(Position));
            if (closeEnemies.Any())
            {
                if (closeEnemies.Count() <= 1)
                {
                    return true;
                }

                return closeEnemies.All(enemy => Position.CountEnemiesInRange(VHR.VHRMenu["dz191.vhr.misc"]["dz191.vhr.misc.tumble"]["dynamicqsafety"].GetValue<MenuBool>().Value ? enemy.AttackRange : 405f) < 1);
            }
            return true;
        }