/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { /// <summary> /// The Soulbound declaration. /// </summary> if (Vars.SoulBound == null) { Vars.SoulBound = GameObjects.AllyHeroes.Find(t => t.HasBuff("kalistacoopstrikeally")); } else { /// <summary> /// The Automatic R Logic. /// </summary> if (Vars.R.IsReady() && Vars.SoulBound.CountEnemyHeroesInRange(800f) > 0 && Vars.SoulBound.LSIsValidTarget(Vars.R.Range, false) && Health.GetPrediction(Vars.SoulBound, (int)(1000 + Game.Ping / 2f)) <= 0 && Vars.getCheckBoxItem(Vars.RMenu, "lifesaver")) { Vars.R.Cast(); } } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady() && !GameObjects.Player.LSIsRecalling() && !GameObjects.Player.IsUnderEnemyTurret() && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None) && GameObjects.Player.CountEnemyHeroesInRange(1500f) == 0 && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "logical")) && Vars.getSliderItem(Vars.WMenu, "logical") != 101) { foreach (var loc in Vars.Locations.Where( l => GameObjects.Player.Distance(l) < Vars.W.Range && !ObjectManager.Get <Obj_AI_Minion>().Any( m => m.Distance(l) < 1000f && m.CharData.BaseSkinName.Equals("kalistaspawn")))) { Vars.W.Cast(loc); } } /// <summary> /// The Automatic E Logics. /// </summary> if (Vars.E.IsReady()) { /// <summary> /// The E Before death Logic. /// </summary> if (Health.GetPrediction(GameObjects.Player, (int)(1000 + Game.Ping / 2f)) <= 0 && Vars.getCheckBoxItem(Vars.EMenu, "ondeath")) { Vars.E.Cast(); } /// <summary> /// The E Minion Harass Logic. /// </summary> if (GameObjects.EnemyHeroes.Any(t => Bools.IsPerfectRendTarget(t)) && Vars.getSliderItem(Vars.EMenu, "harass") != 101 && Targets.Minions.Any( m => Bools.IsPerfectRendTarget(m) && Vars.GetRealHealth(m) < EDamage(m))) { /// <summary> /// Check for Mana Manager if not in combo mode and the killable minion is only one, else do not use it. /// </summary> if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && Targets.Minions.Count( m => Bools.IsPerfectRendTarget(m) && Vars.GetRealHealth(m) < EDamage(m)) == 1) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "harass"))) { return; } } /// <summary> /// Check for E Whitelist if the harassable target is only one and there is only one killable minion, else do not use the whitelist. /// </summary> if (GameObjects.EnemyHeroes.Count(t => Bools.IsPerfectRendTarget(t)) == 1 && Targets.Minions.Count(m => Bools.IsPerfectRendTarget(m) && Vars.GetRealHealth(m) < EDamage(m)) == 1) { if (!Vars.getCheckBoxItem(Vars.WhiteListMenu, GameObjects.EnemyHeroes.FirstOrDefault(t => Bools.IsPerfectRendTarget(t)).ChampionName.ToLower())) { return; } } /// <summary> /// Check for invulnerability through all the harassable targets. /// </summary> foreach (var target in GameObjects.EnemyHeroes.Where(t => Bools.IsPerfectRendTarget(t))) { if (Invulnerable.Check(target, DamageType.True, false)) { return; } } Vars.E.Cast(); } /// <summary> /// The E JungleClear Logic. /// </summary> if (Vars.getCheckBoxItem(Vars.EMenu, "junglesteal")) { foreach (var minion in Targets.JungleMinions.Where( m => Bools.IsPerfectRendTarget(m) && m.Health < EDamage(m))) { Vars.E.Cast(); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { if (GameObjects.Player.LSIsRecalling()) { return; } /// <summary> /// The Semi-Automatic R Management. /// </summary> if (Vars.R.IsReady() && Vars.getCheckBoxItem(Vars.RMenu, "bool")) { if (!GameObjects.Player.HasBuff("AbsoluteZero") && GameObjects.Player.CountEnemyHeroesInRange(Vars.R.Range) > 0 && Vars.getKeyBindItem(Vars.RMenu, "key")) { Vars.R.Cast(); } if (GameObjects.Player.HasBuff("AbsoluteZero") && !Vars.getKeyBindItem(Vars.RMenu, "key")) { Orbwalker.MoveTo(Game.CursorPos); Vars.R.Cast(); } } /// <summary> /// The JungleClear Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "jungleclear")) { if (Targets.JungleMinions.Any()) { foreach (var minion in Targets.JungleMinions.Where( m => m.LSIsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q))) { Vars.Q.CastOnUnit(minion); } } } /// <summary> /// The Automatic Q Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Minions.Any() && Vars.getCheckBoxItem(Vars.QMenu, "logical")) { if (GameObjects.Player.MaxHealth > GameObjects.Player.Health + (30 + 45 * GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).Level) + GameObjects.Player.TotalMagicalDamage * 0.75) { foreach (var minion in Targets.Minions.Where(m => m.LSIsValidTarget(Vars.Q.Range))) { Vars.Q.CastOnUnit(minion); } } } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady() && Vars.getSliderItem(Vars.WMenu, "logical") != 101) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "logical")) && !GameObjects.Player.Buffs.Any(b => b.Name.Equals("visionary"))) { return; } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { /// <summary> /// The Ally W Combo Logic. /// </summary> if (GameObjects.AllyHeroes.Any(a => !a.IsMe && a.LSIsValidTarget(Vars.W.Range, false) && Vars.getCheckBoxItem(Vars.WhiteListMenu, a.ChampionName.ToLower()))) { Vars.W.CastOnUnit(GameObjects.AllyHeroes.Where(a => !a.IsMe && a.LSIsValidTarget(Vars.W.Range, false) && Vars.getCheckBoxItem(Vars.WhiteListMenu, a.ChampionName.ToLower())).OrderBy(o => o.TotalAttackDamage).First()); } /// <summary> /// The Normal W Combo Logic. /// </summary> else { if (Targets.Target.LSIsValidTarget()) { Vars.W.CastOnUnit(GameObjects.Player); } } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { /// <summary> /// Use if There are Enemy Minions in range. /// </summary> if (Targets.Minions.Any() || Targets.JungleMinions.Any()) { Vars.W.CastOnUnit(GameObjects.Player); } } /// <summary> /// The W Pushing Logic. /// </summary> if (Targets.Minions.Any() && GameObjects.AllyMinions.Any()) { /// <summary> /// Use if there are Super or Siege minions in W Range. /// </summary> foreach (var minion in GameObjects.AllyMinions.Where(m => m.LSIsValidTarget(Vars.W.Range, false))) { if (minion.GetMinionType() == MinionTypes.Super || minion.GetMinionType() == MinionTypes.Siege) { Vars.W.CastOnUnit(minion); } } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() && Targets.Target.IsValidTarget(Vars.AaRange)) { return; } /// <summary> /// The W Combo Logic. /// </summary> if (Vars.W.IsReady() && GameObjects.EnemyHeroes.Any(t => t.IsValidTarget(Vars.W.Range)) && Vars.Menu["spells"]["w"]["combo"].GetValue <MenuBool>().Value) { Vars.W.Cast(); } if (!Targets.Target.IsValidTarget() || Targets.Target.IsValidTarget(Vars.AaRange) || Invulnerable.Check(Targets.Target, DamageType.Magical, false)) { return; } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range)) { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition); } /// <summary> /// The R Logics. /// </summary> if (Vars.R.IsReady()) { /// <summary> /// The R Combo Logics. /// </summary> if (Targets.Target.IsValidTarget(Vars.R.Range) && Vars.Menu["spells"]["r"]["combo"].GetValue <MenuBool>().Value) { /// <summary> /// The R Normal Combo Logic. /// </summary> if (Targets.Target.HasBuff("dianamoonlight") && Vars.Menu["spells"]["r"]["whitelist"][Targets.Target.ChampionName.ToLower()] .GetValue <MenuBool>().Value) { if (!Targets.Target.IsUnderEnemyTurret() || Vars.GetRealHealth(Targets.Target) < (float)GameObjects.Player.GetSpellDamage(Targets.Target, SpellSlot.Q) * 2 + (float)GameObjects.Player.GetSpellDamage(Targets.Target, SpellSlot.R) * 2 || !Vars.Menu["miscellaneous"]["safe"].GetValue <MenuBool>().Value) { Vars.R.CastOnUnit(Targets.Target); return; } } /// <summary> /// The Second R Combo Logic. /// </summary> if (!Vars.Q.IsReady() && !Targets.Target.HasBuff("dianamoonlight") && Vars.Menu["miscellaneous"]["rcombo"].GetValue <MenuBool>().Value && Vars.Menu["spells"]["r"]["whitelist"][Targets.Target.ChampionName.ToLower()] .GetValue <MenuBool>().Value) { DelayAction.Add( 1000, () => { if (!Vars.Q.IsReady() && !Targets.Target.HasBuff("dianamoonlight")) { Vars.R.CastOnUnit(Targets.Target); } }); } } /// <summary> /// The R Gapclose Logic. /// </summary> else if (Targets.Target.IsValidTarget(Vars.Q.Range * 2) && !Targets.Target.IsValidTarget(Vars.Q.Range + 200) && Vars.Menu["miscellaneous"]["gapclose"].GetValue <MenuBool>().Value) { if ( Targets.Minions.Any( m => m.IsValidTarget(Vars.Q.Range) && m.Distance(Targets.Target) < Vars.Q.Range && Vars.GetRealHealth(m) > (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q))) { Vars.Q.Cast( Targets.Minions.Where( m => m.IsValidTarget(Vars.Q.Range) && m.Distance(Targets.Target) < Vars.Q.Range && Vars.GetRealHealth(m) > (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q)) .OrderBy(o => o.DistanceToPlayer()) .Last()); } if ( Targets.Minions.Any( m => m.HasBuff("dianamoonlight") && m.IsValidTarget(Vars.R.Range) && m.Distance(Targets.Target) < Vars.Q.Range)) { Vars.R.CastOnUnit( Targets.Minions.Where( m => m.HasBuff("dianamoonlight") && m.IsValidTarget(Vars.R.Range) && m.Distance(Targets.Target) < Vars.Q.Range) .OrderBy(o => o.DistanceToPlayer()) .Last()); } } } if (Vars.Q.IsReady() && Vars.R.IsReady()) { return; } /// <summary> /// The Automatic E Logic. /// </summary> if (Vars.E.IsReady() && !Targets.Target.IsValidTarget(Vars.AaRange) && Targets.Target.IsValidTarget(Vars.E.Range - 25) && Vars.Menu["spells"]["e"]["logical"].GetValue <MenuBool>().Value) { Vars.E.Cast(); } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal E Logic. /// </summary> if (Vars.E.IsReady() && GameObjects.Player.Spellbook.GetSpell(SpellSlot.E).ToggleState == 1 && Vars.getCheckBoxItem(Vars.EMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.LSIsValidTarget(Vars.E.Range) && !Invulnerable.Check(t, DamageType.Magical) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.E))) { Vars.E.Cast(Vars.E.GetPrediction(target).CastPosition); return; } } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.LSIsValidTarget(Vars.Q.Range) && !Invulnerable.Check(t, DamageType.Magical) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(target).CollisionObjects.Any()) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); return; } } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.getCheckBoxItem(Vars.RMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.LSIsValidTarget(Vars.R.Range) && !Invulnerable.Check(t, DamageType.Magical) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.R))) { if (Bools.IsImmobile(target) || !target.LSIsValidTarget(Vars.AARange)) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal E Logic. /// </summary> if (Vars.E.IsReady() && Vars.getCheckBoxItem(Vars.EMenu, "killsteal")) { if (GameObjects.EnemyHeroes.Any(t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.E.Range) && Vars.GetRealHealth(t) < EDamage(t))) { Vars.E.Cast(); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Harass(EventArgs args) { /// <summary> /// The E Harass Logic. /// </summary> if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["harass"].GetValue <MenuSliderButton>().BValue && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["harass"])) { if ( GameObjects.EnemyHeroes.Any( t => t.IsValidTarget(Vars.E.Range) && (t.HasBuffOfType(BuffType.Poison) || !Vars.Menu["spells"]["e"]["harasspoison"].GetValue <MenuBool>().Value) && !Invulnerable.Check(t, DamageType.Magical))) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.E.Range) && (t.HasBuffOfType(BuffType.Poison) || !Vars.Menu["spells"]["e"]["harasspoison"].GetValue <MenuBool>().Value) && !Invulnerable.Check(t, DamageType.Magical))) { DelayAction.Add( Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value, () => { Vars.E.CastOnUnit(target); }); } } else { DelayAction.Add( Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value, () => { foreach (var minion in Targets.Minions.Where( m => Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E) + (m.HasBuffOfType(BuffType.Poison) ? (float) GameObjects.Player.GetSpellDamage( m, SpellSlot.E, DamageStage.Empowered) : 0))) { Vars.E.CastOnUnit(minion); } }); } } if (!Targets.Target.IsValidTarget() || Invulnerable.Check(Targets.Target, DamageType.Magical, false)) { return; } /// <summary> /// The Q Harass Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["harass"]) && Vars.Menu["spells"]["q"]["harass"].GetValue <MenuSliderButton>().BValue) { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition); return; } /// <summary> /// The W Harass Logic. /// </summary> DelayAction.Add( 1000, () => { if (Vars.W.IsReady() && Targets.Target.IsValidTarget(Vars.W.Range) && !Targets.Target.IsValidTarget(500f) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["harass"]) && Vars.Menu["spells"]["w"]["harass"].GetValue <MenuSliderButton>().BValue) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).CastPosition); } }); }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { if (GameObjects.Player.LSIsRecalling()) { return; } /// <summary> /// The R Automatic Logic. /// </summary> if (Vars.R.IsReady() && Vars.R.Instance.Name.Equals("JhinRShot") && Vars.getCheckBoxItem(Vars.RMenu, "logical")) { if (GameObjects.EnemyHeroes.Any( t => t.IsValidTarget(Vars.R.Range) && !Vars.Cone.IsOutside((Vector2)t.ServerPosition))) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.R.Range) && !Vars.Cone.IsOutside((Vector2)t.ServerPosition))) { if (Vars.getCheckBoxItem(Vars.RMenu, "nearmouse")) { Vars.R.Cast(Vars.R.GetPrediction(GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.R.Range) && !Vars.Cone.IsOutside((Vector2)t.ServerPosition)).OrderBy( o => o.Distance(Game.CursorPos)).First()).UnitPosition); return; } Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); return; } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { Vars.R.Cast(Game.CursorPos); } } if (Vars.R.Instance.Name.Equals("JhinRShot")) { return; } /// <summary> /// The Automatic Q LastHit Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.HasBuff("JhinPassiveReload") && !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "lasthit")) && Vars.getSliderItem(Vars.QMenu, "lasthit") != 101 && !Vars.R.Instance.Name.Equals("JhinRShot")) { foreach (var minion in Targets.Minions.Where( m => m.LSIsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q))) { Vars.Q.CastOnUnit(minion); } } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady() && !GameObjects.Player.IsUnderEnemyTurret() && Vars.getCheckBoxItem(Vars.WMenu, "logical") && !Vars.R.Instance.Name.Equals("JhinRShot")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.HasBuff("jhinespotteddebuff") && t.IsValidTarget(Vars.W.Range - 150f) && !t.IsValidTarget(Vars.AARange + 50f) && Vars.getCheckBoxItem(Vars.WhiteListMenu, t.ChampionName.ToLower()))) { if (!Vars.W.GetPrediction(target).CollisionObjects.Any(c => !c.HasBuff("jhinespotteddebuff"))) { if (Bools.IsImmobile(target)) { if (Vars.E.IsReady() && target.LSIsValidTarget(Vars.E.Range)) { Vars.E.Cast(target.ServerPosition); } Vars.W.Cast(target.ServerPosition); return; } if (Vars.E.IsReady() && target.LSIsValidTarget(Vars.E.Range)) { Vars.E.Cast(Vars.E.GetPrediction(target).UnitPosition); } Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); } } } /// <summary> /// The Automatic E Logic. /// </summary> if (Vars.E.IsReady() && Vars.getCheckBoxItem(Vars.EMenu, "logical") && !Vars.R.Instance.Name.Equals("JhinRShot")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => Bools.IsImmobile(t) && !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.E.Range))) { Vars.E.Cast(GameObjects.Player.ServerPosition.LSExtend( target.ServerPosition, GameObjects.Player.Distance(target) + target.BoundingRadius * 2)); } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The LaneClear Q Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["laneclear"]) && Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuSliderButton>().BValue) { foreach (var minion in Targets.Minions.Where(m => m.IsValidTarget(Vars.Q.Range))) { if (minion.HasBuff("RyzeE") && Vars.GetRealHealth(minion) > (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.E) && Vars.GetRealHealth(minion) < (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.Q) * (1 + (minion.HasBuff("RyzeE") ? new double[] { 40, 55, 70, 85, 100 }[ GameObjects.Player.Spellbook.GetSpell(SpellSlot.E).Level - 1] / 100 : 0))) { Vars.Q.Cast(minion); } } } /// <summary> /// The LaneClear E Logic. /// </summary> if (Vars.E.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) && Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue) { foreach (var minion in Targets.Minions.Where(m => m.IsValidTarget(Vars.E.Range))) { if (minion.HasBuff("RyzeE") || Vars.GetRealHealth(minion) < (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.E) && Vars.GetRealHealth(minion) > (float)GameObjects.Player.GetAutoAttackDamage(minion)) { Vars.E.CastOnUnit(minion); return; } Vars.E.CastOnUnit(Targets.Minions.First(m => m.IsValidTarget(Vars.E.Range))); } } foreach (var minion in Targets.JungleMinions) { /// <summary> /// The JungleClear E Logic. /// </summary> if (Targets.JungleMinions.Any(m => !m.HasBuff("RyzeE"))) { if (Vars.E.IsReady() && minion.IsValidTarget(Vars.E.Range) && !GameObjects.JungleSmall.Contains(minion) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["jungleclear"]) && Vars.Menu["spells"]["e"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { Vars.E.CastOnUnit(minion); } } else { /// <summary> /// The JungleClear Q Logic. /// </summary> if (Vars.Q.IsReady() && minion.IsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(minion) > (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.E) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["jungleclear"]) && Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { Vars.Q.Cast(minion.ServerPosition); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() && Targets.Target.IsValidTarget(Vars.AaRange) || !Targets.Target.IsValidTarget() || Invulnerable.Check(Targets.Target, DamageType.Magical, false)) { return; } /// <summary> /// The W->E Combo Logic. /// </summary> if (Vars.W.IsReady() && Targets.Target.IsValidTarget(Vars.W.Range) && Vars.Menu["spells"]["w"]["combo"].GetValue <MenuBool>().Value && (Vars.E.IsReady() || !Vars.Menu["spells"]["w"]["combofull"].GetValue <MenuBool>().Value)) { switch ( Vars.Menu["spells"]["w"]["selection"][Targets.Target.ChampionName.ToLower()].GetValue <MenuList>() .Index) { case 0: Vars.W.Cast( Vars.W.GetPrediction(Targets.Target).CastPosition, GameObjects.Player.ServerPosition); break; case 1: Vars.W.Cast( Vars.W.GetPrediction(Targets.Target).CastPosition, GameObjects.Player.ServerPosition.Extend( Targets.Target.ServerPosition, GameObjects.Player.Distance(Targets.Target) * 2)); break; default: Vars.W.Cast( Vars.W.GetPrediction(Targets.Target).CastPosition, Vars.GetRealHealth(Targets.Target) < (float)GameObjects.Player.GetSpellDamage(Targets.Target, SpellSlot.Q) * (Taliyah.TerrainObject != null ? 1 : 3) + (float)GameObjects.Player.GetSpellDamage(Targets.Target, SpellSlot.W) + (float)GameObjects.Player.GetSpellDamage(Targets.Target, SpellSlot.E) ? GameObjects.Player.ServerPosition : GameObjects.Player.ServerPosition.Extend( Targets.Target.ServerPosition, GameObjects.Player.Distance(Targets.Target) * 2)); break; } } if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["combo"].GetValue <MenuBool>().Value) { return; } /// <summary> /// The E Combo Logic. /// </summary> if (Vars.E.IsReady() && Targets.Target.IsValidTarget(Vars.W.Range) && Vars.Menu["spells"]["e"]["combo"].GetValue <MenuBool>().Value) { Vars.E.Cast(Targets.Target.ServerPosition); } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && !Vars.E.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range - 50f) && Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value) { if (Taliyah.TerrainObject != null && Vars.Menu["spells"]["q"]["combofull"].GetValue <MenuBool>().Value) { return; } Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).UnitPosition); } }
/// <summary> /// Loads the drawings. /// </summary> public static void Initialize() { Drawing.OnDraw += delegate { if (Vars.E.IsReady()) { if (!Vars.getCheckBoxItem(Vars.DrawingsMenu, "edmg")) { return; } ObjectManager.Get <Obj_AI_Base>().Where( h => h.LSIsValidTarget() && Bools.IsPerfectRendTarget(h) && (h is AIHeroClient || Vars.JungleList.Contains(h.CharData.BaseSkinName))).ToList().ForEach(unit => { /// <summary> /// Defines what HPBar Offsets it should display. /// </summary> var mobOffset = Vars.JungleHpBarOffsetList.FirstOrDefault(x => x.BaseSkinName.Equals(unit.CharData.BaseSkinName)); var width = (int)(Vars.JungleList.Contains(unit.CharData.BaseSkinName) ? mobOffset.Width : Vars.Width); var height = (int)(Vars.JungleList.Contains(unit.CharData.BaseSkinName) ? mobOffset.Height : Vars.Height); var xOffset = (int)(Vars.JungleList.Contains(unit.CharData.BaseSkinName) ? mobOffset.XOffset : Vars.XOffset); var yOffset = (int)(Vars.JungleList.Contains(unit.CharData.BaseSkinName) ? mobOffset.YOffset : Vars.YOffset); var barPos = unit.HPBarPosition; { barPos.X += xOffset; barPos.Y += yOffset; } var drawEndXPos = barPos.X + width * (unit.HealthPercent / 100); var drawStartXPos = barPos.X + (Vars.GetRealHealth(unit) > (float)GameObjects.Player.LSGetSpellDamage(unit, SpellSlot.E) + (float)GameObjects.Player.LSGetSpellDamage(unit, SpellSlot.E, DamageStage.Buff) ? width * (((Vars.GetRealHealth(unit) - ((float)GameObjects.Player.LSGetSpellDamage(unit, SpellSlot.E) + (float)GameObjects.Player.LSGetSpellDamage(unit, SpellSlot.E, DamageStage.Buff))) / unit.MaxHealth * 100) / 100) : 0); Drawing.DrawLine( drawStartXPos, barPos.Y, drawEndXPos, barPos.Y, height, Vars.GetRealHealth(unit) < (float)GameObjects.Player.LSGetSpellDamage(unit, SpellSlot.E) + (float)GameObjects.Player.LSGetSpellDamage(unit, SpellSlot.E, DamageStage.Buff) ? Color.Blue : Color.Orange ); Drawing.DrawLine( drawStartXPos, barPos.Y, drawStartXPos, barPos.Y + height + 1, 1, Color.Lime ); } ); } }; }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The Q KillSteal Logic. /// </summary> if (Vars.Q.IsReady()) { /// <summary> /// Normal Q KillSteal Logic. /// </summary> if (Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); } } var passiveMultiplier = GameObjects.Player.Level < 4 ? 0.25 : GameObjects.Player.Level < 7 ? 0.3 : GameObjects.Player.Level < 9 ? 0.35 : GameObjects.Player.Level < 11 ? 0.4 : GameObjects.Player.Level < 13 ? 0.45 : 0.5; /// <summary> /// Extended Q KillSteal Logic. /// </summary> if (Vars.Menu["spells"]["q"]["extended"]["exkillsteal"].GetValue <MenuBool>().Value) { /// <summary> /// Through enemy minions. /// </summary> foreach (var minion in from minion in Targets.Minions.Where(m => m.IsValidTarget(Vars.Q.Range)) let polygon = new Geometry.Sector( (Vector2)minion.ServerPosition, (Vector2) minion.ServerPosition.Extend( GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)), 40f * (float)Math.PI / 180f, Vars.Q2.Range - Vars.Q.Range - 50f) let target = GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q, DamageStage.SecondForm) + GameObjects.Player.TotalAttackDamage * passiveMultiplier + (Vars.GetRealHealth(minion) < (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.Q) + (MissFortune.PassiveTarget == null || minion.NetworkId != MissFortune.PassiveTarget?.NetworkId ? GameObjects.Player.TotalAttackDamage * passiveMultiplier : 0) ? (float) GameObjects.Player.GetSpellDamage(t, SpellSlot.Q, DamageStage.SecondForm) / 2 : 0) && (t.NetworkId == MissFortune.PassiveTarget?.NetworkId || Targets.Minions.All(m => polygon.IsOutside((Vector2)m.ServerPosition)))) where target != null where !polygon.IsOutside((Vector2)target.ServerPosition) && !polygon.IsOutside( (Vector2) Movement.GetPrediction( target, GameObjects.Player.Distance(target) / Vars.Q.Speed + Vars.Q.Delay).UnitPosition) select minion) { Vars.Q.CastOnUnit(minion); } /// <summary> /// Through enemy heroes. /// </summary> foreach (var target in from target in GameObjects.EnemyHeroes.Where(t => t.IsValidTarget(Vars.Q.Range)) let polygon = new Geometry.Sector( (Vector2)target.ServerPosition, (Vector2) target.ServerPosition.Extend( GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)), 40f * (float)Math.PI / 180f, Vars.Q2.Range - Vars.Q.Range - 50f) let target2 = GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q, DamageStage.SecondForm) + GameObjects.Player.TotalAttackDamage * passiveMultiplier && (t.NetworkId == MissFortune.PassiveTarget?.NetworkId || Targets.Minions.All(m => polygon.IsOutside((Vector2)m.ServerPosition)))) where target2 != null where !polygon.IsOutside((Vector2)target2.ServerPosition) && !polygon.IsOutside( (Vector2) Movement.GetPrediction( target2, GameObjects.Player.Distance(target) / Vars.Q.Speed + Vars.Q.Delay).UnitPosition) select target) { Vars.Q.CastOnUnit(target); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.W.Range) && !t.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.W))) { Vars.W.Cast(Vars.W.GetPrediction(target).CastPosition); return; } } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range) && !t.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && !Vars.AnyWallInBetween( GameObjects.Player.ServerPosition, Vars.Q.GetPrediction(t).UnitPosition) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); return; } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.Menu["spells"]["r"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.R.Range + 150f) && Vars.GetRealHealth(t) < (float) GameObjects.Player.GetSpellDamage( t, SpellSlot.R, t.IsValidTarget(Vars.R.Range) ? DamageStage.Default : DamageStage.Detonation))) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); if (Vars.E.IsReady() && Vars.Menu["miscellaneous"]["cancel"].GetValue <MenuBool>().Value) { Vars.E.Cast( GameObjects.Player.ServerPosition.Extend(Game.CursorPos, GameObjects.Player.BoundingRadius)); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.getCheckBoxItem(Vars.WMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.W.Range) && !t.LSIsValidTarget(Vars.AARange) && t.IsVisible && t.IsHPBarRendered && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.W))) { Vars.W.Cast(Vars.W.GetPrediction(target).CastPosition); return; } } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range) && !t.LSIsValidTarget(Vars.AARange) && t.IsVisible && t.IsHPBarRendered && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); return; } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.getCheckBoxItem(Vars.RMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !t.LSIsValidTarget(Vars.AARange) && t.LSIsValidTarget(Vars.R.Range + 150f) && t.IsVisible && t.IsHPBarRendered && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.R, (t.LSIsValidTarget(Vars.R.Range) ? DamageStage.Default : DamageStage.Detonation)))) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The E Clear Logics. /// </summary> if (Vars.E.IsReady()) { /// <summary> /// The E JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["jungleclear"]) && Vars.Menu["spells"]["e"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { DelayAction.Add( Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value, () => { Vars.E.CastOnUnit(Targets.JungleMinions[0]); }); } /// <summary> /// The E LaneClear Logics. /// </summary> else if (Targets.Minions.Any()) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["lasthit"]) && Vars.Menu["spells"]["e"]["lasthit"].GetValue <MenuSliderButton>().BValue) { DelayAction.Add( Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value, () => { foreach (var minion in Targets.Minions.Where( m => Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E) + (m.HasBuffOfType(BuffType.Poison) ? (float) GameObjects.Player.GetSpellDamage( m, SpellSlot.E, DamageStage.Empowered) : 0))) { Vars.E.CastOnUnit(minion); } }); } else if (GameObjects.Player.ManaPercent >= ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) && Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue) { DelayAction.Add( Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value, () => { foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison))) { Vars.E.CastOnUnit(minion); } }); } } } /// <summary> /// The Q Clear Logic. /// </summary> if (Vars.Q.IsReady()) { var qFarmLocation = Vars.Q.GetCircularFarmLocation( Targets.Minions.Where(m => !m.HasBuffOfType(BuffType.Poison)).ToList(), Vars.Q.Width); /// <summary> /// The Q JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["jungleclear"]) && Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition); } /// <summary> /// The Q LaneClear Logic. /// </summary> else if (qFarmLocation.MinionsHit >= 2 && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["laneclear"]) && Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuSliderButton>().BValue) { Vars.Q.Cast(qFarmLocation.Position); } } /// <summary> /// The W Clear Logic. /// </summary> if (Vars.W.IsReady()) { var wFarmLocation = Vars.W.GetCircularFarmLocation( Targets.Minions.Where(m => !m.HasBuffOfType(BuffType.Poison)).ToList(), Vars.W.Width); /// <summary> /// The W JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["jungleclear"]) && Vars.Menu["spells"]["w"]["jungleclear"].GetValue <MenuSliderButton>().BValue && !Targets.JungleMinions[0].IsValidTarget(500)) { Vars.W.Cast(Targets.JungleMinions[0].ServerPosition); } /// <summary> /// The W LaneClear Logic. /// </summary> else if (wFarmLocation.MinionsHit >= 3 && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) && Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue) { Vars.W.Cast(wFarmLocation.Position); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { if (GameObjects.Player.IsRecalling()) { return; } /// <summary> /// The Q LastHit Logic. /// </summary> if (Vars.Q.IsReady() && Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["farmhelper"]) && Vars.Menu["spells"]["q"]["farmhelper"].GetValue <MenuSliderButton>().BValue) { foreach (var minion in Targets.Minions.Where( m => !m.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && Vars.GetRealHealth(m) > GameObjects.Player.GetAutoAttackDamage(m) && Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q)) .OrderBy(o => o.MaxHealth)) { if (!Vars.Q.GetPrediction(minion).CollisionObjects.Any()) { Vars.Q.Cast(Vars.Q.GetPrediction(minion).UnitPosition); } } } /// <summary> /// The Tear Stacking Logic. /// </summary> if (Vars.Q.IsReady() && !Targets.Minions.Any() && Bools.HasTear(GameObjects.Player) && Variables.Orbwalker.ActiveMode == OrbwalkingMode.None && GameObjects.Player.CountEnemyHeroesInRange(1500) == 0 && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["miscellaneous"]["tear"]) && Vars.Menu["miscellaneous"]["tear"].GetValue <MenuSliderButton>().BValue) { Vars.Q.Cast(Game.CursorPos); } /// <summary> /// The Semi-Automatic R Logic. /// </summary> if (Vars.R.IsReady() && Vars.Menu["spells"]["r"]["bool"].GetValue <MenuBool>().Value && Vars.Menu["spells"]["r"]["key"].GetValue <MenuKeyBind>().Active) { var target = GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t, DamageType.Magical, false) && t.IsValidTarget(2000f) && Vars.Menu["spells"]["r"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>().Value) .OrderBy(o => o.Health) .FirstOrDefault(); if (target != null) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); } } if (GameObjects.Player.TotalAttackDamage < GameObjects.Player.TotalMagicalDamage) { return; } /// <summary> /// Initializes the orbwalkingmodes. /// </summary> switch (Variables.Orbwalker.ActiveMode) { case OrbwalkingMode.Combo: if (!GameObjects.EnemyHeroes.Contains(Variables.Orbwalker.GetTarget())) { return; } break; case OrbwalkingMode.LaneClear: if (!(Variables.Orbwalker.GetTarget() is Obj_HQ) && !(Variables.Orbwalker.GetTarget() is Obj_AI_Turret) && !(Variables.Orbwalker.GetTarget() is Obj_BarracksDampener)) { return; } break; default: if (!GameObjects.Jungle.Contains(Variables.Orbwalker.GetTarget()) && !GameObjects.EnemyHeroes.Contains(Variables.Orbwalker.GetTarget()) && !(Variables.Orbwalker.GetTarget() is Obj_HQ) && !(Variables.Orbwalker.GetTarget() is Obj_AI_Turret) && !(Variables.Orbwalker.GetTarget() is Obj_BarracksDampener)) { return; } break; } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["logical"]) && Vars.Menu["spells"]["w"]["logical"].GetValue <MenuSliderButton>().BValue) { foreach (var target in GameObjects.AllyHeroes.Where( t => !t.IsMe && t.Spellbook.IsAutoAttacking && t.IsValidTarget(Vars.W.Range, false))) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Orianna.BallPosition == null) { return; } /// <summary> /// The W Combo Logic. /// </summary> if (Vars.W.IsReady() && GameObjects.EnemyHeroes.Any( t => t.Distance((Vector2)Orianna.BallPosition) < Vars.W.Range) && Vars.Menu["spells"]["w"]["combo"].GetValue <MenuBool>().Value) { Vars.W.Cast(); return; } /// <summary> /// The E Combo Logic. /// </summary> if (Vars.E.IsReady() && GameObjects.Player.Mana - Vars.E.Instance.ManaCost > Vars.Q.Instance.ManaCost + Vars.W.Instance.ManaCost && Vars.Menu["spells"]["e"]["combo"].GetValue <MenuBool>().Value) { foreach ( var ally in GameObjects.AllyHeroes.OrderBy(o => o.Health).Where(t => t.IsValidTarget(Vars.E.Range, false))) { var polygon = new Geometry.Rectangle( ally.ServerPosition, ally.ServerPosition.Extend( (Vector2)Orianna.BallPosition, ally.Distance((Vector2)Orianna.BallPosition)), Vars.Q.Width); var objAiHero = GameObjects.EnemyHeroes.FirstOrDefault( t => t.IsValidTarget() && !Invulnerable.Check(t, DamageType.Magical) && !polygon.IsOutside((Vector2)t.ServerPosition)); if (objAiHero != null) { Vars.E.CastOnUnit(ally); return; } } } /// <summary> /// The Combo R Logic. /// </summary> if (Vars.R.IsReady() && GameObjects.EnemyHeroes.Any( t => t.Distance((Vector2)Orianna.BallPosition) < Vars.R.Range - 25f && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.R) + (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q) * 2 && Vars.Menu["spells"]["r"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>().Value) && Vars.Menu["spells"]["r"]["combo"].GetValue <MenuBool>().Value) { Vars.R.Cast(); } if (Bools.HasSheenBuff() && Targets.Target.IsValidTarget(Vars.AaRange) || !Targets.Target.IsValidTarget() || Invulnerable.Check(Targets.Target, DamageType.Magical)) { return; } /// <summary> /// The Combo Q Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range) && Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value) { if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["logical"].GetValue <MenuBool>().Value && ((Vector2)Orianna.BallPosition).Distance((Vector2)GameObjects.Player.ServerPosition) > Vars.AaRange && ((Vector2)Orianna.BallPosition).Distance((Vector2)Targets.Target.ServerPosition) > ((Vector2)Orianna.BallPosition).Distance((Vector2)GameObjects.Player.ServerPosition)) { Vars.E.Cast(GameObjects.Player); } Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition); } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { /// <summary> /// The Soulbound declaration. /// </summary> if (Vars.SoulBound == null) { Vars.SoulBound = GameObjects.AllyHeroes.Find( a => a.Buffs.Any(b => b.Caster.IsMe && b.Name.Contains("kalistacoopstrikeally"))); } else { /// <summary> /// The Automatic R Logic. /// </summary> if (Vars.R.IsReady() && Vars.SoulBound.HealthPercent < 10 && Vars.SoulBound.CountEnemyHeroesInRange(800f) > 0 && Vars.SoulBound.IsValidTarget(Vars.R.Range, false) && Vars.Menu["spells"]["r"]["lifesaver"].GetValue <MenuBool>().Value) { Vars.R.Cast(); } } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady() && !GameObjects.Player.IsRecalling() && !GameObjects.Player.IsUnderEnemyTurret() && Variables.Orbwalker.ActiveMode == OrbwalkingMode.None && GameObjects.Player.CountEnemyHeroesInRange(1500f) == 0 && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["logical"]) && Vars.Menu["spells"]["w"]["logical"].GetValue <MenuSliderButton>().BValue) { foreach (var loc in Vars.Locations.Where( l => GameObjects.Player.Distance(l) < Vars.W.Range && !ObjectManager.Get <Obj_AI_Minion>() .Any(m => m.Distance(l) < 1000f && m.CharData.BaseSkinName.Equals("kalistaspawn")))) { Vars.W.Cast(loc); } } /// <summary> /// The Automatic E Logics. /// </summary> if (Vars.E.IsReady()) { /// <summary> /// The E Before death Logic. /// </summary> if (Health.GetPrediction(GameObjects.Player, (int)(1000 + Game.Ping / 2f)) <= 0 && Vars.Menu["spells"]["e"]["ondeath"].GetValue <MenuBool>().Value) { Vars.E.Cast(); } /// <summary> /// The E Minion Harass Logic. /// </summary> if (GameObjects.EnemyHeroes.Any(Bools.IsPerfectRendTarget) && Vars.Menu["spells"]["e"]["harass"].GetValue <MenuSliderButton>().BValue && Targets.Minions.Any( m => Bools.IsPerfectRendTarget(m) && Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E) + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff))) { /// <summary> /// Check for Mana Manager if not in combo mode and the killable minion is only one, else do not use it. /// </summary> if (Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && Targets.Minions.Count( m => Bools.IsPerfectRendTarget(m) && Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E) + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff)) == 1) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["harass"])) { return; } } /// <summary> /// Check for E Whitelist if the harassable target is only one and there is only one killable minion, else do not use the whitelist. /// </summary> if (GameObjects.EnemyHeroes.Count(Bools.IsPerfectRendTarget) == 1 && Targets.Minions.Count( m => Bools.IsPerfectRendTarget(m) && Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E) + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff)) == 1) { var hero = GameObjects.EnemyHeroes.FirstOrDefault(Bools.IsPerfectRendTarget); if (hero != null && !Vars.Menu["spells"]["e"]["whitelist"][hero.ChampionName.ToLower()].GetValue <MenuBool>() .Value) { return; } } /// <summary> /// Check for invulnerability through all the harassable targets. /// </summary> if ( GameObjects.EnemyHeroes.Where(Bools.IsPerfectRendTarget) .Any(target => Invulnerable.Check(target))) { return; } Vars.E.Cast(); } /// <summary> /// The E JungleClear Logic. /// </summary> if (Vars.Menu["spells"]["e"]["junglesteal"].GetValue <MenuBool>().Value) { if ( Targets.JungleMinions.Any( m => Bools.IsPerfectRendTarget(m) && m.Health < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E) + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff))) { Vars.E.Cast(); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !t.LSIsValidTarget(Vars.AARange) && t.LSIsValidTarget(Vars.Q.Range - 100f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(target).CollisionObjects.Any(c => Targets.Minions.Contains(c))) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); return; } } } /// <summary> /// The KillSteal E Logic. /// </summary> if (Vars.E.IsReady() && Vars.getCheckBoxItem(Vars.EMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !t.LSIsValidTarget(Vars.AARange) && t.LSIsValidTarget(Vars.E.Range - 100f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.E))) { Vars.E.Cast(Vars.E.GetPrediction(target).UnitPosition); return; } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.getCheckBoxItem(Vars.RMenu, "killstealC") && Vars.getSliderItem(Vars.RMenu, "killsteal") > GameObjects.Player.GetBuffCount("kogmawlivingartillerycost")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.R.Range) && !t.LSIsValidTarget(Vars.W.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.R))) { Vars.R.Cast(Vars.R.GetPrediction(target).CastPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.R.Instance.Name.Equals("JhinRShot") && Vars.Menu["spells"]["r"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !Jhin.Cone.IsOutside((Vector2)t.ServerPosition) && t.IsValidTarget(Vars.R.Range) && Vars.GetRealHealth(t) < (float) GameObjects.Player.GetSpellDamage( t, SpellSlot.R, Jhin.ShotsCount == 3 ? DamageStage.Empowered : DamageStage.Default))) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); return; } } if (Vars.R.Instance.Name.Equals("JhinRShot")) { return; } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); return; } } /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !t.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && t.IsValidTarget(Vars.W.Range - 100f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.W, DamageStage.Empowered))) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Harass(EventArgs args) { /// <summary> /// The Extended Q Mixed Harass Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["extended"]["mixed"]) && Vars.Menu["spells"]["q"]["extended"]["mixed"].GetValue <MenuSliderButton>().BValue) { var passiveMultiplier = GameObjects.Player.Level < 4 ? 0.25 : GameObjects.Player.Level < 7 ? 0.3 : GameObjects.Player.Level < 9 ? 0.35 : GameObjects.Player.Level < 11 ? 0.4 : GameObjects.Player.Level < 13 ? 0.45 : 0.5; /// <summary> /// Through enemy minions. /// </summary> foreach (var minion in from minion in Targets.Minions.Where( m => m.IsValidTarget(Vars.Q.Range) && (!Vars.Menu["spells"]["q"]["extended"]["mixedkill"].GetValue <MenuBool>().Value || Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q) + (MissFortune.PassiveTarget == null || m.NetworkId != MissFortune.PassiveTarget?.NetworkId ? GameObjects.Player.TotalAttackDamage * passiveMultiplier : 0))) let polygon = new Geometry.Sector( (Vector2)minion.ServerPosition, (Vector2) minion.ServerPosition.Extend(GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)), 40f * (float)Math.PI / 180f, Vars.Q2.Range - Vars.Q.Range - 50f) let target = GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q2.Range) && (t.NetworkId == MissFortune.PassiveTarget?.NetworkId || Targets.Minions.All(m => polygon.IsOutside((Vector2)m.ServerPosition))) && Vars.Menu["spells"]["q"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>() .Value) where target != null where !polygon.IsOutside((Vector2)target.ServerPosition) && !polygon.IsOutside((Vector2)Vars.Q.GetPrediction(target).UnitPosition) select minion) { Vars.Q.CastOnUnit(minion); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { /// <summary> /// The Automatic Q LastHit Logics. /// </summary> if (Vars.Q.IsReady() && !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && GameObjects.Player.HealthPercent > ManaManager.GetNeededHealth(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "logical")) && Vars.getSliderItem(Vars.QMenu, "logical") != 101) { foreach (var minion in GameObjects.EnemyMinions.Where( m => m.LSIsValidTarget(Vars.Q.Range) && !m.LSIsValidTarget(Vars.AARange) && Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(minion).CollisionObjects.Any(c => Targets.Minions.Contains(c))) { Vars.Q.Cast(minion.ServerPosition); } } } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady()) { /// <summary> /// If the player doesn't have the W Buff. /// </summary> if (!GameObjects.Player.HasBuff("BurningAgony")) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { if (GameObjects.Player.HealthPercent >= ManaManager.GetNeededHealth(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "clear")) && Vars.getSliderItem(Vars.WMenu, "clear") != 101) { if (Targets.JungleMinions.Any() || Targets.Minions.Count() >= 2) { Vars.W.Cast(); } } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { if (GameObjects.Player.CountEnemyHeroesInRange(Vars.W.Range) > 0 && Vars.getCheckBoxItem(Vars.WMenu, "combo")) { Vars.W.Cast(); } } } /// <summary> /// If the player has the W Buff. /// </summary> else { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { if (GameObjects.Player.HealthPercent < ManaManager.GetNeededHealth(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "clear")) || !Targets.JungleMinions.Any() && Targets.Minions.Count() < 2 || Vars.getSliderItem(Vars.WMenu, "clear") == 101) { Vars.W.Cast(); } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { if (GameObjects.Player.CountEnemyHeroesInRange(Vars.W.Range) == 0 || !Vars.getCheckBoxItem(Vars.WMenu, "combo")) { Vars.W.Cast(); } } } } /// <summary> /// The R Lifesaver Logic. /// </summary> if (Vars.R.IsReady() && GameObjects.Player.CountEnemyHeroesInRange(700) > 0 && Vars.getCheckBoxItem(Vars.RMenu, "lifesaver") && Health.GetPrediction(GameObjects.Player, (int)(250 + Game.Ping / 2f)) <= GameObjects.Player.MaxHealth / 5) { Vars.R.Cast(); } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { /// <summary> /// The R Manager. /// </summary> Orbwalker.DisableAttacking = Vars.R.Instance.Name.Equals("JhinRShot"); Orbwalker.DisableMovement = Vars.R.Instance.Name.Equals("JhinRShot"); if (GameObjects.Player.LSIsRecalling()) { return; } /* * /// <summary> * /// The Automatic R Logic. * /// </summary> * if (!Targets.Target.LSIsValidTarget() && * Vars.R.Instance.Name.Equals("JhinRShot")) * { * GameObjects.Player.IssueOrder(GameObjectOrder.MoveTo, GameObjects.Player.ServerPosition); * } */ if (Vars.R.Instance.Name.Equals("JhinRShot")) { return; } /// <summary> /// The Automatic Q LastHit Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.HasBuff("JhinPassiveReload") && !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "lasthit")) && Vars.getSliderItem(Vars.QMenu, "lasthit") != 101) { foreach (var minion in Targets.Minions.Where( m => m.LSIsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q))) { Vars.Q.CastOnUnit(minion); } } /// <summary> /// The Automatic W Logic. /// </summary> if (Vars.W.IsReady() && !GameObjects.Player.IsUnderEnemyTurret() && Vars.getCheckBoxItem(Vars.WMenu, "logical")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.HasBuff("jhinespotteddebuff") && t.LSIsValidTarget(Vars.W.Range - 150f) && !t.LSIsValidTarget(Vars.AARange + 50f) && !Vars.W.GetPrediction(t).CollisionObjects.Any( c => !c.HasBuff("jhinespotteddebuff") && GameObjects.EnemyHeroes.Contains(c)) && Vars.getCheckBoxItem(Vars.WhiteListMenu, t.ChampionName.ToLower()))) { if (Bools.IsImmobile(target)) { Vars.W.Cast(target.ServerPosition); return; } else { if (!target.LSIsFacing(GameObjects.Player) && GameObjects.Player.LSIsFacing(target)) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); return; } if (target.LSIsFacing(GameObjects.Player) && !GameObjects.Player.LSIsFacing(target) && !GameObjects.EnemyHeroes.Any( t => t.LSIsValidTarget(Vars.Q.Range + 50f))) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); } } } } /// <summary> /// The Automatic E Logic. /// </summary> if (Vars.E.IsReady() && Vars.getCheckBoxItem(Vars.EMenu, "logical")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => Bools.IsImmobile(t) && !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.E.Range))) { Vars.E.Cast(GameObjects.Player.ServerPosition.LSExtend( target.ServerPosition, GameObjects.Player.Distance(target) + target.BoundingRadius * 2)); } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { /// <summary> /// The Q Extended Harass Logic. /// </summary> if (Vars.Q.IsReady()) { /// <summary> /// The Q Minion Harass Logic. /// </summary> if (GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["extended"]["exlaneclear"]) && Vars.Menu["spells"]["q"]["extended"]["exlaneclear"].GetValue <MenuSliderButton>().BValue) { var passiveMultiplier = GameObjects.Player.Level < 4 ? 0.25 : GameObjects.Player.Level < 7 ? 0.3 : GameObjects.Player.Level < 9 ? 0.35 : GameObjects.Player.Level < 11 ? 0.4 : GameObjects.Player.Level < 13 ? 0.45 : 0.5; foreach (var minion in from minion in Targets.Minions.Where( m => m.IsValidTarget(Vars.Q.Range) && (!Vars.Menu["spells"]["q"]["extended"]["exlaneclearkill"].GetValue <MenuBool>().Value || Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q) + (MissFortune.PassiveTarget == null || m.NetworkId != MissFortune.PassiveTarget?.NetworkId ? GameObjects.Player.TotalAttackDamage * passiveMultiplier : 0))) let polygon = new Geometry.Sector( (Vector2)minion.ServerPosition, (Vector2) minion.ServerPosition.Extend( GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)), 40f * (float)Math.PI / 180f, Vars.Q2.Range - Vars.Q.Range - 50f) let target = GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q2.Range) && (t.NetworkId == MissFortune.PassiveTarget?.NetworkId || Targets.Minions.All(m => polygon.IsOutside((Vector2)m.ServerPosition))) && Vars.Menu["spells"]["q"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>() .Value) where target != null where !polygon.IsOutside((Vector2)target.ServerPosition) && !polygon.IsOutside((Vector2)Vars.Q.GetPrediction(target).UnitPosition) select minion) { Vars.Q.CastOnUnit(minion); } } } /// <summary> /// The W Clear Logics. /// </summary> if (Vars.W.IsReady()) { /// <summary> /// The W JungleClear Logics. /// </summary> if (Targets.JungleMinions.Contains(Variables.Orbwalker.GetTarget() as Obj_AI_Minion) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["jungleclear"]) && Vars.Menu["spells"]["w"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { Vars.W.Cast(); } /// <summary> /// The W LaneClear Logics. /// </summary> else if (Targets.Minions.Contains(Variables.Orbwalker.GetTarget() as Obj_AI_Minion) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) && Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue) { Vars.W.Cast(); } } /// <summary> /// The E Clear Logics. /// </summary> if (Vars.E.IsReady()) { /// <summary> /// The E JungleClear Logics. /// </summary> if (Targets.JungleMinions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["jungleclear"]) && Vars.Menu["spells"]["e"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { Vars.E.Cast(Targets.JungleMinions[0]); } /// <summary> /// The E LaneClear Logics. /// </summary> else if (Targets.Minions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) && Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue && Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).MinionsHit >= 4) { Vars.E.Cast(Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).Position); } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The Q LaneClear Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Minions.Any() && Vars.getSliderItem(Vars.QMenu, "laneclear") != 101) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "laneclear")) && !GameObjects.Player.Buffs.Any(b => b.Name.Equals("visionary"))) { return; } Vars.Q.CastOnUnit(Targets.Minions.FirstOrDefault( m => Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q))); } /// <summary> /// The E Clear Logics. /// </summary> if (Vars.E.IsReady() && Vars.getSliderItem(Vars.EMenu, "clear") != 101) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) && !GameObjects.Player.Buffs.Any(b => b.Name.Equals("visionary"))) { return; } /// <summary> /// The E LaneClear Logic. /// </summary> foreach (var minion in Targets.Minions.Where( m => m.LSIsValidTarget(Vars.E.Range) && Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E))) { Vars.E.CastOnUnit(minion); } /// <summary> /// The E JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any()) { Vars.E.CastOnUnit(Targets.JungleMinions[0]); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range) && !t.LSIsValidTarget(Vars.AARange) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(target).CollisionObjects.Any()) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); return; } } } /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.getCheckBoxItem(Vars.WMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.W.Range) && !t.LSIsValidTarget(Vars.AARange) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.W))) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); return; } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && GameObjects.Player.CountEnemyHeroesInRange(Vars.AARange) == 0 && Vars.getCheckBoxItem(Vars.RMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.R.Range) && Vars.GetRealHealth(t) > (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.R))) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { if (GameObjects.Player.HealthPercent <= Vars.Menu["spells"]["q"]["shield"].GetValue <MenuSliderButton>().SValue && Vars.Menu["spells"]["q"]["shield"].GetValue <MenuSliderButton>().BValue) { return; } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.Q.Range - 50f) && !Invulnerable.Check(t, DamageType.Magical) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q) * (1 + (t.HasBuff("RyzeE") ? new double[] { 40, 55, 70, 85, 100 }[ GameObjects.Player.Spellbook.GetSpell(SpellSlot.E).Level - 1] / 100 : 0)))) { if (!Vars.Q.GetPrediction(target).CollisionObjects.Any()) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); } } } /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.W.Range) && !Invulnerable.Check(t, DamageType.Magical, false) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.W))) { Vars.W.CastOnUnit(target); } } /// <summary> /// The KillSteal E Logic. /// </summary> if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.E.Range) && !Invulnerable.Check(t, DamageType.Magical, false) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.E))) { Vars.E.CastOnUnit(target); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The Q KillSteal Logic. /// </summary> if (Vars.Q.IsReady()) { /// <summary> /// Normal Q KilLSteal Logic. /// </summary> if (Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); } } /// <summary> /// Extended Q KillSteal Logic. /// </summary> if (Vars.getCheckBoxItem(Vars.Q2Menu, "exkillsteal")) { /// <summary> /// Through enemy minions. /// </summary> foreach (var minion in from minion in Targets.Minions.Where(m => m.LSIsValidTarget(Vars.Q.Range)) let polygon = new Geometry.Sector( (Vector2)minion.ServerPosition, (Vector2)minion.ServerPosition.LSExtend(GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)), 40f * (float)Math.PI / 180f, (Vars.Q2.Range - Vars.Q.Range) - 50f) let target = GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (Vars.GetRealHealth(minion) < (float)GameObjects.Player.LSGetSpellDamage(minion, SpellSlot.Q) ? (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q) : 0) + (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q, DamageStage.SecondForm) && ((Vars.PassiveTarget.LSIsValidTarget() && t.NetworkId == Vars.PassiveTarget.NetworkId) || !Targets.Minions.Any(m => !polygon.IsOutside((Vector2)m.ServerPosition)))) where target != null where !polygon.IsOutside((Vector2)target.ServerPosition) && !polygon.IsOutside( (Vector2)Movement.GetPrediction( target, GameObjects.Player.Distance(target) / Vars.Q.Speed + Vars.Q.Delay).UnitPosition) select minion) { Vars.Q.CastOnUnit(minion); } /// <summary> /// Through enemy heroes. /// </summary> foreach (var target in from target in GameObjects.EnemyHeroes.Where(t => t.LSIsValidTarget(Vars.Q.Range)) let polygon = new Geometry.Sector( (Vector2)target.ServerPosition, (Vector2)target.ServerPosition.LSExtend(GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)), 40f * (float)Math.PI / 180f, (Vars.Q2.Range - Vars.Q.Range) - 50f) let target2 = GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (Vars.GetRealHealth(target) < (float)GameObjects.Player.LSGetSpellDamage(target, SpellSlot.Q) ? (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q) : 0) + (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q, DamageStage.SecondForm) && ((Vars.PassiveTarget.LSIsValidTarget() && t.NetworkId == Vars.PassiveTarget.NetworkId) || !Targets.Minions.Any(m => !polygon.IsOutside((Vector2)m.ServerPosition)))) where target2 != null where !polygon.IsOutside((Vector2)target2.ServerPosition) && !polygon.IsOutside( (Vector2)Movement.GetPrediction( target2, GameObjects.Player.Distance(target) / Vars.Q.Speed + Vars.Q.Delay).UnitPosition) select target) { Vars.Q.CastOnUnit(target); } } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The Clear W Logic. /// </summary> if (Vars.W.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) && Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue) { if ( GameObjects.EnemyHeroes.Any( t => !Invulnerable.Check(t, DamageType.Magical, false) && t.IsValidTarget(Vars.W.Range - 150f))) { return; } if (Vars.W.GetLineFarmLocation(Targets.Minions, Vars.W.Width).MinionsHit >= 4) { Vars.W.Cast(Vars.W.GetLineFarmLocation(Targets.Minions, Vars.W.Width).Position); } } /// <summary> /// The Clear Q Logic. /// </summary> if (Vars.Q.IsReady()) { /// <summary> /// The LaneClear Q Logic. /// </summary> if (Targets.Minions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["laneclear"]) && Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuSliderButton>().BValue) { foreach (var minion in Targets.Minions.Where( m => m.IsValidTarget(Vars.Q.Range) && Targets.Minions.Count(m2 => m2.Distance(m) < 350f) >= 3 && Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q))) { Vars.Q.CastOnUnit(minion); } } /// <summary> /// The JungleClear Q Logic. /// </summary> else if (Targets.JungleMinions.Any() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["jungleclear"]) && Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuSliderButton>().BValue) { Vars.Q.CastOnUnit(Targets.JungleMinions[0]); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The Q Killsteal Logic. /// </summary> if (Vars.Q.IsReady()) { /// <summary> /// Normal Q KilLSteal Logic. /// </summary> if (Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); } } if ( !GameObjects.EnemyHeroes.Any( t => !Invulnerable.Check(t) && !t.IsValidTarget(Vars.Q.Range) && t.IsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { return; } /// <summary> /// Extended Q KilLSteal Logic. /// </summary> if (Vars.Menu["spells"]["q"]["extended"]["exkillsteal"].GetValue <MenuBool>().Value) { /// <summary> /// Through enemy minions. /// </summary> foreach (var minion in from minion in Targets.Minions.Where(m => m.IsValidTarget(Vars.Q.Range)) let polygon = new Geometry.Rectangle( GameObjects.Player.ServerPosition, GameObjects.Player.ServerPosition.Extend(minion.ServerPosition, Vars.Q2.Range - 50f), Vars.Q2.Width) where !polygon.IsOutside( (Vector2) Vars.Q2.GetPrediction( GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && !t.IsValidTarget(Vars.Q.Range) && t.IsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))).UnitPosition) select minion) { Vars.Q.CastOnUnit(minion); } /// <summary> /// Through enemy heroes. /// </summary> foreach (var target in from target in GameObjects.EnemyHeroes.Where(t => t.IsValidTarget(Vars.Q.Range)) let polygon = new Geometry.Rectangle( GameObjects.Player.ServerPosition, GameObjects.Player.ServerPosition.Extend(target.ServerPosition, Vars.Q2.Range - 50f), Vars.Q2.Width) where !polygon.IsOutside( (Vector2) Vars.Q2.GetPrediction( GameObjects.EnemyHeroes.FirstOrDefault( t => !Invulnerable.Check(t) && !t.IsValidTarget(Vars.Q.Range) && t.IsValidTarget(Vars.Q2.Range - 50f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))).UnitPosition) select target) { Vars.Q.CastOnUnit(target); } } } /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.W.Range) && !t.IsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.W))) { if (!Vars.W.GetPrediction(target).CollisionObjects.Any()) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.R.Instance.Name.Equals("JhinRShot") && Vars.getCheckBoxItem(Vars.RMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.R.Range) && GameObjects.Player.LSIsFacing(t) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.R, (Vars.ShotsCount == 3 ? DamageStage.Empowered : DamageStage.Default)))) { if (!Vars.R.GetPrediction(target).CollisionObjects.Any(c => GameObjects.EnemyHeroes.Contains(c))) { Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition); return; } } } if (Vars.R.Instance.Name.Equals("JhinRShot")) { return; } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); return; } } /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.getCheckBoxItem(Vars.WMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !t.LSIsValidTarget(Vars.AARange) && t.LSIsValidTarget(Vars.W.Range - 100f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.W, DamageStage.Empowered))) { Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition); } } }