protected override void Combo() { var useQ = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(); var useW = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>() && W.IsReady(); var useE = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(); var useR = _ultimate.IsActive(UltimateModeType.Combo) && R.IsReady(); if (useR) { var target = TargetSelector.GetTarget(R.Range, R.DamageType); if (target != null) { if (!RLogic(UltimateModeType.Combo, target)) { RLogicSingle(UltimateModeType.Combo); } } } if (useE) { var target = TargetSelector.GetTarget((E.Range + Player.AttackRange) * 0.9f, E.DamageType); if (target != null) { var pos = Menu.Item(Menu.Name + ".combo.e-mode").GetValue <StringList>().SelectedIndex == 0 ? Utils.GetDashPosition( E, target, Menu.Item(Menu.Name + ".combo.e-safety").GetValue <Slider>().Value) : Player.Position.Extend( Game.CursorPos, Math.Min(E.Range, Player.Position.Distance(Game.CursorPos))); if (!pos.Equals(Vector3.Zero) && !pos.IsUnderTurret(false)) { E.Cast(pos); } } } if (useQ) { Casting.SkillShot(Q, Q.GetHitChance("combo")); } if (useW) { var target = TargetSelector.GetTarget(W); var best = CPrediction.Circle(W, target, W.GetHitChance("combo")); if (best.TotalHits > 0 && !best.CastPosition.Equals(Vector3.Zero)) { W.Cast(best.CastPosition); } } }
protected override void Combo() { var useQ = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(); var useW = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>() && W.IsReady(); var useE = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(); var useR = Ultimate.IsActive(UltimateModeType.Combo) && R.IsReady(); if (useR) { var target = TargetSelector.GetTarget(R.Range, R.DamageType); if (target != null) { if (!RLogic(UltimateModeType.Combo, target)) { RLogicSingle(UltimateModeType.Combo); } } } if (useE && !Player.Spellbook.IsAutoAttacking && !IsReloading()) { var target = TargetSelector.GetTarget( E.Range + Player.AttackRange + Player.BoundingRadius, E.DamageType); if (target != null) { var pos = Menu.Item(Menu.Name + ".combo.e-mode").GetValue <StringList>().SelectedIndex == 0 ? Utils.GetDashPosition( E, target, Menu.Item(Menu.Name + ".combo.e-safety").GetValue <Slider>().Value) : Player.Position.Extend( Game.CursorPos, Math.Min(E.Range, Player.Position.Distance(Game.CursorPos))); if (!pos.Equals(Vector3.Zero)) { if (GetAmmoCount() == 1 && !pos.IsUnderTurret(false) || (!GameObjects.EnemyHeroes.Any(e => e.IsValidTarget() && Orbwalking.InAutoAttackRange(e)) && GameObjects.EnemyHeroes.Any( e => e.IsValidTarget() && pos.Distance(e.Position) < Orbwalking.GetRealAutoAttackRange(e)) && target.Health < Player.GetAutoAttackDamage(target) * 2)) { E.Cast(pos); } } } } if (useQ) { QLogic(Q.GetHitChance("combo")); } if (useW) { var target = TargetSelector.GetTarget(W); if (target != null) { var best = CPrediction.Circle(W, target, W.GetHitChance("combo")); if (best.TotalHits > 0 && !best.CastPosition.Equals(Vector3.Zero)) { W.Cast(best.CastPosition); } } } }
protected override void Combo() { var useQ = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(); var useW = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>() && W.IsReady(); var useE = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(); var useR = Ultimate.IsActive(UltimateModeType.Combo) && R.IsReady(); if (useR) { var target = TargetSelector.GetTarget(R.Range, R.DamageType); if (target != null) { if (!RLogic(UltimateModeType.Combo, target)) { RLogicSingle(UltimateModeType.Combo); } } } if (useE) { var target = TargetSelector.GetTarget((E.Range + Q.Range) * 0.9f, E.DamageType); if (target != null) { var safety = Menu.Item(Menu.Name + ".combo.e-safety").GetValue <Slider>().Value; var playerEnemies = GameObjects.EnemyHeroes.Where(e => e.IsValidTarget() && e.Distance(Player) < safety).ToList(); if (playerEnemies.Count >= 2 || playerEnemies.Count == 1 && playerEnemies.First().HealthPercent > Player.HealthPercent) { var pos = Menu.Item(Menu.Name + ".combo.e-mode").GetValue <StringList>().SelectedIndex == 0 ? Utils.GetDashPosition( E, target, Menu.Item(Menu.Name + ".combo.e-safety").GetValue <Slider>().Value) : Player.Position.Extend( Game.CursorPos, Math.Min(E.Range, Player.Position.Distance(Game.CursorPos))); if (!pos.Equals(Vector3.Zero)) { E.Cast(pos); } } else { var newPosition = Player.Position.Extend(target.Position, E.Range); var enemies = GameObjects.EnemyHeroes.Where( e => e.IsValidTarget() && e.Distance(newPosition) < safety * 1.25f).ToList(); var allies = GameObjects.AllyHeroes.Where( e => e.IsValidTarget(float.MaxValue, false) && e.Distance(newPosition) < safety) .ToList(); var avgEnemyHealth = enemies.Average(e => e.HealthPercent); if (enemies.Count - allies.Count <= 1 || enemies.Count - allies.Count <= 2 && allies.Average(e => e.HealthPercent) > avgEnemyHealth && (Player.HealthPercent >= 50 || avgEnemyHealth < 30)) { E.Cast(newPosition); } } } } if (useQ) { QLogic(Q.GetHitChance("combo")); } if (useW) { var target = TargetSelector.GetTarget(W); if (target != null) { var best = CPrediction.Line(W, target, W.GetHitChance("combo")); if (best.TotalHits > 0 && !best.CastPosition.Equals(Vector3.Zero)) { W.Cast(best.CastPosition); } } } }