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