protected override void Combo() { var single = false; var q = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(); var e = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady() && ResourceManager.Check("combo-e"); var r = Ultimate.IsActive(UltimateModeType.Combo) && R.IsReady(); var rTarget = TargetSelector.GetTarget(R); if (r) { if (!RLogic(UltimateModeType.Combo, rTarget)) { RLogicSingle(UltimateModeType.Combo); single = true; } } if (q) { Casting.TargetSkill(Q); } if (e) { if (GetEHits().Item1 > 0) { E.Cast(); } } ItemsSummonersLogic(rTarget, single); }
protected override void Combo() { var q = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>(); var e = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>(); var r = Ultimate.IsActive(UltimateModeType.Combo); if (q && Q.IsReady()) { QLogic(); } if (e && E.IsReady()) { var target = TargetSelector.GetTarget(E); if (target != null) { ELogic(target, E.GetHitChance("combo")); } } if (r && R.IsReady()) { var target = TargetSelector.GetTarget(R); if (target != null) { if (!RLogic(UltimateModeType.Combo, R.GetHitChance("combo"), target)) { RLogicSingle(UltimateModeType.Combo, R.GetHitChance("combo")); } } } }
private bool RLogic(UltimateModeType mode, HitChance hitChance, Obj_AI_Hero target) { try { if (Q.IsCharging || target == null || !Ultimate.IsActive(mode)) { return(false); } var pred = R.GetPrediction(target); if (pred.Hitchance >= hitChance) { var hits = GameObjects.EnemyHeroes.Where(x => x.Distance(target) <= _rSpreadRadius).ToList(); if (Ultimate.Check(mode, hits)) { R.Cast(pred.CastPosition); return(true); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args) { try { if (args.UniqueId.Equals("e-gapcloser") && E.IsReady() && BestTargetOnlyManager.Check("e-gapcloser", E, args.Hero)) { if (args.End.Distance(Player.Position) <= E.Range) { E.Cast(args.End); } } if (string.IsNullOrEmpty(args.UniqueId)) { if (Ultimate.IsActive(UltimateModeType.Gapcloser, args.Hero) && BestTargetOnlyManager.Check("r-gapcloser", R, args.Hero)) { RLogic(UltimateModeType.Gapcloser, HitChance.High, args.Hero); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private bool RLogic(UltimateModeType mode, HitChance hitChance, Obj_AI_Hero target) { try { if (target == null || !Ultimate.IsActive(mode)) { return(false); } var pred = CPrediction.Circle(R, target, hitChance); if (pred.TotalHits > 0) { if (Ultimate.Check(mode, pred.Hits)) { _lastRCast = Game.Time; _lastRPosition = pred.CastPosition; R.Cast(pred.CastPosition); return(true); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
protected override void Combo() { var single = false; var q = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(); var w = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>() && W.IsReady(); var e = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(); var r = Ultimate.IsActive(UltimateModeType.Combo) && R.IsReady(); if (q) { QLogic(Q.GetHitChance("combo")); } if (w) { WLogic(W.GetHitChance("combo")); } if (e) { ELogic(); } if (r) { if (!RLogic(UltimateModeType.Combo, R.GetHitChance("combo"))) { RLogicSingle(UltimateModeType.Combo, R.GetHitChance("combo")); single = true; } } ItemsSummonersLogic(null, single); }
protected override void Combo() { var q = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>(); var e = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>(); var r = Ultimate.IsActive(UltimateModeType.Combo); if (e && !Q.IsCharging && E.IsReady()) { var target = TargetSelector.GetTarget(E); if (target != null) { var stacks = W.Level == 0 && Menu.Item(Menu.Name + ".combo.e-settings.stacks").GetValue <Slider>().Value > 0; if (Menu.Item(Menu.Name + ".combo.e-settings.always").GetValue <bool>() || stacks || GetWStacks(target) >= Menu.Item(Menu.Name + ".combo.e-settings.stacks").GetValue <Slider>().Value || E.IsKillable(target) || CPrediction.Circle(E, target, E.GetHitChance("combo")).TotalHits >= Menu.Item(Menu.Name + ".combo.e-settings.min").GetValue <Slider>().Value) { ELogic(target, E.GetHitChance("combo")); } } } if (q && Q.IsReady()) { var target = TargetSelector.GetTarget((Q.ChargedMaxRange + Q.Width) * 1.1f, Q.DamageType); if (target != null) { var stacks = W.Level == 0 && Menu.Item(Menu.Name + ".combo.q-settings.stacks").GetValue <Slider>().Value > 0; if (Q.IsCharging || Menu.Item(Menu.Name + ".combo.q-settings.always").GetValue <bool>() || target.Distance(Player) > Orbwalking.GetRealAutoAttackRange(target) * 1.2f || stacks || GetWStacks(target) >= Menu.Item(Menu.Name + ".combo.q-settings.stacks").GetValue <Slider>().Value || CPrediction.Line(Q, target, Q.GetHitChance("combo")).TotalHits >= Menu.Item(Menu.Name + ".combo.q-settings.min").GetValue <Slider>().Value || Q.IsKillable(target)) { QLogic( target, Q.GetHitChance("combo"), Menu.Item(Menu.Name + ".combo.q-settings.fast-cast-min").GetValue <Slider>().Value); } } } if (r && R.IsReady()) { var target = TargetSelector.GetTarget(R); if (target != null) { if (!RLogic(UltimateModeType.Combo, R.GetHitChance("combo"), target)) { RLogicSingle(UltimateModeType.Combo, R.GetHitChance("combo")); } } } }
protected override void OnPostUpdate() { if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit && !Player.Spellbook.IsAutoAttacking && Menu.Item(Menu.Name + ".lasthit.q").GetValue <bool>() && Q.IsReady()) { var m = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly) .FirstOrDefault( e => e.HealthPercent <= 75 && (_lastAaMinion == null || e.NetworkId != _lastAaMinion.NetworkId || Game.Time > _lastAaMinionEndTime) && HealthPrediction.GetHealthPrediction(e, (int)(Q.Delay * 1000f)) < Q.GetDamage(e)); if (m != null) { Casting.TargetSkill(m, Q); } } if (Ultimate.IsActive(UltimateModeType.Assisted) && R.IsReady()) { if (Ultimate.ShouldMove(UltimateModeType.Assisted)) { Orbwalking.MoveTo(Game.CursorPos); } var target = TargetSelector.GetTarget(R); if (target != null && !RLogic(UltimateModeType.Assisted, target)) { RLogicSingle(UltimateModeType.Assisted); } } if (Ultimate.IsActive(UltimateModeType.Auto) && R.IsReady()) { var target = TargetSelector.GetTarget(R); if (target != null && !RLogic(UltimateModeType.Auto, target)) { RLogicSingle(UltimateModeType.Auto); } } if (Menu.Item(Menu.Name + ".miscellaneous.e-auto").GetValue <bool>() && E.IsReady() && ResourceManager.Check("auto-e") && !Player.IsRecalling() && !Player.InFountain()) { var buff = GetEBuff(); if (buff == null || buff.EndTime - Game.Time <= Game.Ping / 2000f + 0.5f) { E.Cast(); } } }
private void OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args) { try { if (sender.IsEnemy && args.DangerLevel == Interrupter2.DangerLevel.High && Ultimate.IsActive(UltimateModeType.Interrupt, sender) && sender.IsFacing(Player)) { Casting.SkillShot(sender, R, HitChance.High); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private bool RLogic(UltimateModeType mode, Obj_AI_Hero target) { try { if (Ultimate.IsActive(mode)) { var pred = CPrediction.Line(R, target, R.GetHitChance("combo")); if (pred.TotalHits > 0 && Ultimate.Check(mode, pred.Hits)) { R.Cast(pred.CastPosition); return(true); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
private bool RLogic(UltimateModeType mode, AIHeroClient target) { try { if (Ultimate.IsActive(mode)) { var pred = CPrediction.Circle(R, target, HitChance.High, false); if (pred.TotalHits > 0 && Ultimate.Check(mode, pred.Hits)) { R.Cast(pred.CastPosition); return(true); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
private bool RLogic(UltimateModeType mode, Obj_AI_Hero target) { try { if (Ultimate.IsActive(mode)) { var hits = GetRHits(target); if (Ultimate.Check(mode, hits.Item2) && (hits.Item2.Any(h => R.GetDamage(h) * 0.95f > h.Health) || hits.Item2.Any(h => h.Distance(Player) + 300 < Orbwalking.GetRealAutoAttackRange(h) * 0.9f))) { R.Cast(hits.Item3); return(true); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
protected override void OnPostUpdate() { if (Ultimate.IsActive(UltimateModeType.Assisted) && R.IsReady()) { if (Ultimate.ShouldMove(UltimateModeType.Assisted)) { Orbwalking.MoveTo(Game.CursorPos); } if (!RLogic(UltimateModeType.Assisted, R.GetHitChance("combo"), TargetSelector.GetTarget(R))) { RLogicSingle(UltimateModeType.Assisted, R.GetHitChance("combo")); } } if (Ultimate.IsActive(UltimateModeType.Auto) && R.IsReady()) { if (!RLogic(UltimateModeType.Auto, R.GetHitChance("combo"), TargetSelector.GetTarget(R))) { RLogicSingle(UltimateModeType.Auto, R.GetHitChance("combo")); } } }
protected override void OnPostUpdate() { if (Ultimate.IsActive(UltimateModeType.Assisted) && R.IsReady()) { if (Ultimate.ShouldMove(UltimateModeType.Assisted)) { Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius); } if (!RLogic(UltimateModeType.Assisted, TargetSelector.GetTarget(R))) { RLogicSingle(UltimateModeType.Assisted); } } if (Ultimate.IsActive(UltimateModeType.Auto) && R.IsReady()) { if (!RLogic(UltimateModeType.Auto, TargetSelector.GetTarget(R))) { RLogicSingle(UltimateModeType.Auto); } } }
private bool RLogic(UltimateModeType mode, HitChance hitChance) { try { if (Ultimate.IsActive(mode)) { var maxHits = GetMaxRHits(hitChance); if (maxHits.Item1.Count > 0 && !maxHits.Item2.Equals(Vector3.Zero)) { if (Ultimate.Check(mode, maxHits.Item1)) { R.Cast(maxHits.Item2); return(true); } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
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.IsWindingUp && !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); } } } }
private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args) { try { if (args.UniqueId.Equals("q-gapcloser") && Q.IsReady() && BestTargetOnlyManager.Check("q-gapcloser", Q, args.Hero)) { if (args.End.Distance(Player.Position) <= Q.Range) { var delay = (int)(args.EndTime - Game.Time - Q.Delay - 0.1f); if (delay > 0) { Utility.DelayAction.Add(delay * 1000, () => Q.Cast(args.End)); } else { Q.Cast(args.End); } } } if (args.UniqueId.Equals("w-gapcloser") && W.IsReady() && BestTargetOnlyManager.Check("w-gapcloser", W, args.Hero)) { if (args.End.Distance(Player.Position) <= W.Range) { var delay = (int)(args.EndTime - Game.Time - W.Delay - 0.1f); if (delay > 0) { Utility.DelayAction.Add(delay * 1000, () => W.Cast(args.End)); } else { W.Cast(args.End); } } } if (string.IsNullOrEmpty(args.UniqueId)) { if (Ultimate.IsActive(UltimateModeType.Gapcloser, args.Hero) && BestTargetOnlyManager.Check("r-gapcloser", R, args.Hero)) { if (args.End.Distance(Player.Position) <= R.Range) { if (args.EndTime - Game.Time > R.Delay) { Utility.DelayAction.Add( (int)((args.EndTime - Game.Time - R.Delay) * 1000), () => R.Cast(args.End)); } else { R.Cast(args.End); } } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void OnPostUpdate() { if (Ultimate.IsActive(UltimateModeType.Flash) && R.IsReady() && SummonerManager.Flash.IsReady()) { if (Ultimate.ShouldMove(UltimateModeType.Flash)) { Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius); } var targets = Targets.Where( t => t.Distance(Player) < (R.Range + R.Width + SummonerManager.Flash.Range) * 1.5f && !t.IsDashing() && (t.IsFacing(Player) ? t.Distance(Player) : R.GetPrediction(t).UnitPosition.Distance(Player.Position)) > R.Range); var backwards = Menu.Item(Menu.Name + ".ultimate.backwards").GetValue <bool>(); foreach (var target in targets) { var flashPos = Player.Position.Extend(target.Position, SummonerManager.Flash.Range); var maxHits = GetMaxRHits(HitChance.High, flashPos); if (maxHits.Item1.Count > 0) { var castPos = backwards ? Player.Position.Extend(maxHits.Item2, -(Player.Position.Distance(maxHits.Item2) * 2)) : Player.Position.Extend(maxHits.Item2, Player.Position.Distance(maxHits.Item2)); if (Ultimate.Check(UltimateModeType.Flash, maxHits.Item1)) { if (R.Cast(castPos)) { Utility.DelayAction.Add(300 + Game.Ping / 2, () => SummonerManager.Flash.Cast(flashPos)); } } else if (Ultimate.ShouldSingle(UltimateModeType.Flash)) { if ( maxHits.Item1.Where(hit => Ultimate.CheckSingle(UltimateModeType.Flash, hit)) .Any(hit => R.Cast(castPos))) { Utility.DelayAction.Add(300 + Game.Ping / 2, () => SummonerManager.Flash.Cast(flashPos)); } } } } } if (Ultimate.IsActive(UltimateModeType.Assisted) && R.IsReady()) { if (Ultimate.ShouldMove(UltimateModeType.Assisted)) { Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius); } if (!RLogic(UltimateModeType.Assisted, R.GetHitChance("combo"))) { RLogicSingle(UltimateModeType.Assisted, R.GetHitChance("combo"), false); } } if (Ultimate.IsActive(UltimateModeType.Auto) && R.IsReady()) { if (!RLogic(UltimateModeType.Auto, R.GetHitChance("combo"))) { RLogicSingle(UltimateModeType.Auto, R.GetHitChance("combo")); } } if (HeroListManager.Enabled("w-immobile") && W.IsReady()) { var target = Targets.FirstOrDefault( t => HeroListManager.Check("w-immobile", t) && BestTargetOnlyManager.Check("w-immobile", W, t) && Utils.IsImmobile(t)); if (target != null) { Casting.SkillShot(target, W, HitChance.High); } } }