public override void KillSteal() { foreach (var enemy in EntityManager.Heroes.Enemies.Where(e => e.IsKillable())) { if (Q.IsReady() && Q.WillKill(enemy) && enemy.IsKillable(Q.Range) && KillStealMenu.CheckBoxValue(SpellSlot.Q)) { Q.Cast(enemy); } if (R.IsReady() && enemy.Distance(user) >= Q.Range + 1000 && KillStealMenu.CheckBoxValue(SpellSlot.R) && R.WillKill(enemy, KillStealMenu.SliderValue("Rdmg"), Rdamage(enemy))) { Player.CastSpell(R.Slot, R.GetPrediction(enemy).CastPosition); } if (KillStealMenu.CheckBoxValue(SpellSlot.E)) { foreach (var a in BarrelsList) { if (BarrelKill(enemy)) { if (KillableBarrel(a) != null) { if (KillableBarrel(a)?.Distance(enemy) <= E.Width) { Q.Cast(KillableBarrel(a)); } if (BarrelsList.Any(b => b.Barrel.Distance(KillableBarrel(a)) <= ConnectionRange && enemy.Distance(b.Barrel) <= E.Width)) { Q.Cast(KillableBarrel(a)); } } } } } } }
private static void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args) { if (sender.Owner.IsMe && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { if (BarrelsList.All(b => b?.Barrel.NetworkId != args.Target?.NetworkId)) { return; } var target = EntityManager.Heroes.Enemies.FirstOrDefault(e => e.IsKillable() && BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.SetSkillshot().Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.SetSkillshot().Width)))) ?? TargetSelector.GetTarget(E.Range, DamageType.Physical); var position = Vector3.Zero; var startposition = Vector3.Zero; if (args.Slot == SpellSlot.Q && E.IsReady()) { var barrel = BarrelsList.FirstOrDefault(b => b.Barrel.NetworkId == args.Target.NetworkId); var Secondbarrel = BarrelsList.FirstOrDefault(b => b.Barrel.NetworkId != barrel?.Barrel.NetworkId && b.Barrel.Distance(args.Target) <= ConnectionRange); if (barrel != null) { startposition = Secondbarrel?.Barrel.ServerPosition ?? barrel.Barrel.ServerPosition; } if (startposition != Vector3.Zero) { if (target != null && target.IsKillable(E.Range + E.SetSkillshot().Radius)) { if (target.Distance(startposition) <= ConnectionRange + E.SetSkillshot().Radius&& target.Distance(startposition) > E.SetSkillshot().Width - 75) { var extended = startposition.Extend(E.GetPrediction(target).CastPosition, ConnectionRange).To3D(); position = !E.IsInRange(extended) ? E.GetPrediction(target).CastPosition : extended; } } else { target = EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(Game.CursorPos)).FirstOrDefault(e => e.IsKillable(E.Range)); if (target != null) { var extended = startposition.Extend(E.GetPrediction(target).CastPosition, ConnectionRange).To3D(); position = !E.IsInRange(extended) ? E.GetPrediction(target).CastPosition : extended; } } if (position != Vector3.Zero) { if (BarrelsList.Count(b => b.Barrel.Distance(position) <= E.SetSkillshot().Width) < 1) { E.Cast(position); } } } } } }
public override void KillSteal() { foreach (var enemy in EntityManager.Heroes.Enemies.Where(e => e.IsKillable())) { if (Q.IsReady() && Q.WillKill(enemy) && enemy.IsKillable(Q.Range) && KillStealMenu.CheckBoxValue(SpellSlot.Q)) { Q.Cast(enemy); } if (R.IsReady() && enemy.CountEnemiesInRange(1000) >= enemy.CountAlliesInRange(1000) && enemy.Distance(user) >= Q.Range + 1000 && KillStealMenu.CheckBoxValue(SpellSlot.R)) { if (KillStealMenu.CheckBoxValue("RSwitch") && Rdamage(enemy) > 0 ? Rdamage(enemy) >= enemy.TotalShieldHealth() : R.WillKill(enemy, KillStealMenu.SliderValue("Rdmg"), Rdamage(enemy))) { if (KillStealMenu.CheckBoxValue("RSwitch") && Rdamage(enemy) > 0) { Player.CastSpell(SpellSlot.R, enemy.PredictPosition()); } else { R.SetSkillshot().CastAOE(1, R.Range); } } } if (KillStealMenu.CheckBoxValue(SpellSlot.E)) { foreach (var a in BarrelsList) { if (BarrelKill(enemy)) { if (KillableBarrel(a) != null) { if (KillableBarrel(a)?.Distance(enemy) <= E.SetSkillshot().Width) { Q.Cast(KillableBarrel(a)); } if (BarrelsList.Any(b => b.Barrel.Distance(KillableBarrel(a)) <= ConnectionRange && enemy.Distance(b.Barrel) <= E.SetSkillshot().Width)) { Q.Cast(KillableBarrel(a)); } } } } } } }
public override void LaneClear() { Orbwalker.ForcedTarget = null; if (Q.IsReady()) { if (E.IsReady() && LaneClearMenu.CheckBoxValue(SpellSlot.E)) { foreach (var minion in EntityManager.MinionsAndMonsters.EnemyMinions.OrderBy(m => m.Health).Where(m => m.IsKillable(E.Range))) { var pred = E.GetPrediction(minion); if (EntityManager.MinionsAndMonsters.EnemyMinions.Count(e => e.Distance(pred.CastPosition) <= E.SetSkillshot().Width&& BarrelKill(e)) >= LaneClearMenu.SliderValue("EKill")) { if (BarrelsList.Count(b => b.Barrel.IsInRange(pred.CastPosition, E.SetSkillshot().Width)) < 1 || (BarrelsList.Count(b => b.Barrel.IsInRange(pred.CastPosition, ConnectionRange)) > 0 && BarrelsList.Count(b => b.Barrel.IsInRange(pred.CastPosition, E.SetSkillshot().Width)) < 1)) { E.Cast(pred.CastPosition); return; } } } } if (LaneClearMenu.CheckBoxValue(SpellSlot.Q)) { var barrel = BarrelsList.OrderByDescending(b => b.Barrel.CountEnemyMinionsInRange(E.SetSkillshot().Width)).FirstOrDefault(m => KillableBarrel(m) != null && m.Barrel.CountEnemyMinionsInRange(E.SetSkillshot().Width) > 0 && (KillableBarrel(m).IsValidTarget(Q.Range) || KillableBarrel(m).IsInRange(user, user.GetAutoAttackRange()))); if (barrel != null) { var EkillMinions = EntityManager.MinionsAndMonsters.EnemyMinions.Count(m => BarrelKill(m) && BarrelsList.Any(b => b.Barrel.IsInRange(m, E.SetSkillshot().Width)) && m.IsValidTarget()) >= LaneClearMenu.SliderValue("EKill"); var EHitMinions = EntityManager.MinionsAndMonsters.EnemyMinions.Count(m => BarrelsList.Any(b => b.Barrel.IsInRange(m, E.SetSkillshot().Width)) && m.IsValidTarget()) >= LaneClearMenu.SliderValue("EHits"); if (KillableBarrel(barrel).IsValidTarget(user.GetAutoAttackRange())) { Orbwalker.ForcedTarget = KillableBarrel(barrel); } else { if (KillableBarrel(barrel).IsValidTarget(Q.Range) && (EkillMinions || EHitMinions)) { Q.Cast(barrel.Barrel); } } } else { if (LaneClearMenu.CompareSlider("Qmana", user.ManaPercent)) { foreach (var minion in EntityManager.MinionsAndMonsters.EnemyMinions.OrderByDescending(m => m.Distance(user)).Where(m => m.IsKillable(Q.Range) && Q.WillKill(m) && !BarrelsList.Any(b => b.Barrel.Distance(m) <= E.SetSkillshot().Width))) { Q.Cast(minion); } } } } } }
public override void Combo() { Orbwalker.ForcedTarget = null; if (R.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.R)) { R.SetSkillshot().CastAOE(ComboMenu.SliderValue("RAOE"), 3000); } var target = EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() && BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.SetSkillshot().Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.SetSkillshot().Width)))) ?? TargetSelector.GetTarget(E.Range, DamageType.Physical); if (target == null || !target.IsKillable()) { return; } var pred = target.PredictPosition(); var castpos = E.GetPrediction(target).CastPosition; if (AABarrel(target) != null) { var extended = AABarrel(target).ServerPosition.Extend(pred, ConnectionRange).To3D(); castpos = !E.IsInRange(extended) ? pred : extended; Orbwalker.ForcedTarget = AABarrel(target); if (E.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.E)) { if (BarrelsList.Count(b => b.Barrel.Distance(user) <= Q.Range) > 0 && BarrelsList.Count(b => b.Barrel.Distance(castpos) <= E.SetSkillshot().Width) < 1) { E.Cast(castpos); } } Player.IssueOrder(GameObjectOrder.AttackUnit, AABarrel(target)); return; } if (Q.IsReady()) { if (ComboMenu.CheckBoxValue(SpellSlot.Q)) { if (((BarrelsList.Count(b => b.Barrel.IsInRange(target, E.SetSkillshot().Radius + ConnectionRange)) < 1 && (!E.IsReady() || E.Handle.Ammo < 1)) || Q.WillKill(target)) && target.IsKillable(Q.Range)) { Q.Cast(target); } foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target))) { if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range)) { if (pred.IsInRange(KillableBarrel(A), E.SetSkillshot().Width)) { Q.Cast(KillableBarrel(A)); } var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange); if (Secondbarrel != null) { if (pred.IsInRange(Secondbarrel.Barrel, E.SetSkillshot().Width)) { Q.Cast(KillableBarrel(A)); } if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.SetSkillshot().Width) > 0)) { Q.Cast(KillableBarrel(A)); } } else { if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.SetSkillshot().Width) > 0)) { Q.Cast(KillableBarrel(A)); } } } } } if (E.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.E)) { if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Count(b => b.Barrel.IsInRange(target, E.SetSkillshot().Width)) < 1) { if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Count(b => b.Barrel.IsInRange(target, E.SetSkillshot().Radius + ConnectionRange)) > 0) { var targetbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => KillableBarrel(b) != null && (b.Barrel.IsValidTarget(Q.Range) || b.Barrel.IsValidTarget(user.GetAutoAttackRange())) && b.Barrel.IsInRange(target, E.SetSkillshot().Radius + ConnectionRange)); if (KillableBarrel(targetbarrel) != null) { var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != targetbarrel?.Barrel.NetworkId && b.Barrel.Distance(targetbarrel?.Barrel) <= ConnectionRange); if (Secondbarrel != null) { var extended = Secondbarrel.Barrel.ServerPosition.Extend(pred, ConnectionRange).To3D(); castpos = !E.IsInRange(extended) ? pred : extended; } if ((castpos.Distance(KillableBarrel(targetbarrel)) <= ConnectionRange || Secondbarrel?.Barrel.Distance(castpos) <= ConnectionRange) && E.IsInRange(castpos)) { E.Cast(castpos); } } } else { if (E.Handle.Ammo > 1 && ComboMenu.CheckBoxValue("FB")) { if (Q.IsInRange(castpos)) { if (HPTiming() <= 1000 || target.IsCC()) { E.Cast(castpos); } } else { if (E.IsInRange(castpos)) { E.Cast(castpos.Extend(user, ConnectionRange - 300).To3D()); } } var circle = new Geometry.Polygon.Circle(castpos, ConnectionRange); foreach (var point in circle.Points) { circle = new Geometry.Polygon.Circle(point, E.SetSkillshot().Width); var grass = circle.Points.OrderBy(p => p.Distance(castpos)).FirstOrDefault(p => p.IsGrass() && Q.IsInRange(p.To3D()) && p.Distance(castpos) <= ConnectionRange); if (grass != null) { E.Cast(grass.To3D()); } } } } } } } }
public override void Active() { if (AutoMenu.CheckBoxValue("AutoQ") && Q.IsReady()) { var target = EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() && BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.SetSkillshot().Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.SetSkillshot().Width)))) ?? TargetSelector.GetTarget(E.Range, DamageType.Physical); if (target == null) { return; } foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target))) { if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range)) { if (target.IsInRange(KillableBarrel(A), E.SetSkillshot().Width)) { Q.Cast(KillableBarrel(A)); } var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange); if (Secondbarrel != null) { if (target.IsInRange(Secondbarrel.Barrel, E.SetSkillshot().Width)) { Q.Cast(KillableBarrel(A)); } if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.SetSkillshot().Width) > 0)) { Q.Cast(KillableBarrel(A)); } } } } } }
public override void LastHit() { if (LaneClearMenu.CheckBoxValue("QLH") && Q.IsReady()) { var barrel = BarrelsList.OrderByDescending(b => b.Barrel.CountEnemyMinionsInRange(E.Width)).FirstOrDefault(m => KillableBarrel(m) != null && m.Barrel.CountEnemyMinionsInRange(E.Width) > 0 && (KillableBarrel(m).IsValidTarget(Q.Range) || KillableBarrel(m).IsInRange(user, user.GetAutoAttackRange()))); if (barrel != null) { var EkillMinions = EntityManager.MinionsAndMonsters.EnemyMinions.Count(m => BarrelKill(m) && BarrelsList.Any(b => b.Barrel.IsInRange(m, E.Width)) && m.IsValidTarget()) >= LaneClearMenu.SliderValue("EKill"); if (KillableBarrel(barrel).IsValidTarget(user.GetAutoAttackRange())) { Orbwalker.ForcedTarget = KillableBarrel(barrel); } else { if (KillableBarrel(barrel).IsValidTarget(Q.Range) && EkillMinions) { Q.Cast(barrel.Barrel); } } } else { if (LaneClearMenu.CompareSlider("Qmana", user.ManaPercent)) { foreach (var minion in EntityManager.MinionsAndMonsters.EnemyMinions.OrderByDescending(m => m.Distance(user)).Where(m => m.IsKillable(Q.Range) && Q.WillKill(m) && !BarrelsList.Any(b => b.Barrel.Distance(m) <= E.Width))) { Q.Cast(minion); } } } } }
public override void Active() { if (AutoMenu.KeyBindValue("EQMOUSE")) { var target = EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(Game.CursorPos)).FirstOrDefault(e => e.IsKillable(E.Range)); if (target != null) { var targetedbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(user)).FirstOrDefault(b => KillableBarrel(b) != null && KillableBarrel(b).IsValidTarget(Q.Range)); if (targetedbarrel != null && Q.IsReady() && E.IsReady()) { var castpos = target.IsInRange(targetedbarrel.Barrel, ConnectionRange) ? E.GetPrediction(target).CastPosition : targetedbarrel.Barrel.ServerPosition.Extend(E.GetPrediction(target).CastPosition, ConnectionRange).To3D(); if (castpos.IsInRange(target, E.Width) && E.IsInRange(castpos)) { Q.Cast(targetedbarrel.Barrel); } } } } if (AutoMenu.CheckBoxValue("AutoQ") && Q.IsReady()) { var target = EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() && BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.Width)))) ?? TargetSelector.GetTarget(E.Range, DamageType.Physical); if (target == null) { return; } foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target))) { if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range)) { if (target.IsInRange(KillableBarrel(A), E.Width)) { Q.Cast(KillableBarrel(A)); } var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange); if (Secondbarrel != null) { if (target.IsInRange(Secondbarrel.Barrel, E.Width)) { Q.Cast(KillableBarrel(A)); } if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.Width) > 0)) { Q.Cast(KillableBarrel(A)); } } } } } }