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; }
/// <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; }
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); }
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; }
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; }
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); }
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; }
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; }
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; }
/// <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; }
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; } }
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); }
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; }
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; }
/// <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; }