protected override void OnPostUpdate() { if (HeroListManager.Enabled("r-immobile") && R.IsReady()) { var target = GameObjects.EnemyHeroes.FirstOrDefault( t => t.IsValidTarget(R.Range) && HeroListManager.Check("r-immobile", t) && Utils.IsImmobile(t)); if (target != null) { Casting.SkillShot(target, R, HitChance.VeryHigh); } } if (W.Level > _wLevel) { _wLevel = W.Level; W.Range = Player.AttackRange + Player.BoundingRadius + GameObjects.EnemyHeroes.Select(e => e.BoundingRadius).DefaultIfEmpty(50).Average() + 20f * _wLevel; } if (R.Level > _rLevel) { _rLevel = R.Level; R.Range = 900f + 300f * _rLevel; } }
private void OnEnemyGapcloser(ActiveGapcloser args) { try { if (!args.Sender.IsEnemy) { return; } if (HeroListManager.Check("e-gapcloser", args.Sender) && args.End.Distance(Player.Position) < E.Range && E.IsReady()) { var target = TargetSelector.GetTarget(E.Range * 0.85f, E.DamageType); if (target == null || args.Sender.NetworkId.Equals(target.NetworkId)) { E.Cast(args.End); } } if (UltimateManager.Gapcloser(args.Sender)) { RLogic( args.Sender, HitChance.High, 1, Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(), Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady()); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnEnemyGapcloser(ActiveGapcloser args) { try { if (!args.Sender.IsEnemy) { return; } if (HeroListManager.Check("w-gapcloser", args.Sender)) { if (args.End.Distance(Player.Position) < W.Range) { W.Cast(args.End); } } if (HeroListManager.Check("e-gapcloser", args.Sender)) { E.Cast(args.End.Extend(Player.Position, args.End.Distance(Player.Position) + E.Range)); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
/// <summary> /// Setups the misc menu. /// </summary> private void SetupMiscMenu() { var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); var qImmobileMenu = miscMenu.AddSubMenu(new Menu("Q Immobile", $"{miscMenu.Name}.q-immobile")); HeroListManager.AddToMenu( qImmobileMenu, new HeroListManagerArgs("q-immobile") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(qImmobileMenu, "q-immobile", true); miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.q-range", "Q Range") .SetValue(new Slider((int)Q.Range, 500, (int)Q.Range)) ).ValueChanged += (sender, args) => { Q.Range = args.GetNewValue <Slider>().Value; }; miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.w-range", "Card Pick Distance") .SetValue(new Slider((int)W.Range, 500, 800)) ).ValueChanged += (sender, args) => { W.Range = args.GetNewValue <Slider>().Value; }; miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.w-delay", "Card Pick Delay") .SetValue(new Slider(150, 0, 400)) ).ValueChanged += (sender, args) => { Cards.Delay = args.GetNewValue <Slider>().Value; }; miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.mode", "W Mode") .SetValue(new StringList(new[] { "Burst", "Team" })) ); miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.r-card", "Pick Card on R").SetValue(true)); }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Combo"), Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu(Global.Lang.Get("F_MH"), comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, int> { { "Q", 2 } }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", Global.Lang.Get("G_UseW")).SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Harass"), Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu(Global.Lang.Get("F_MH"), harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, int> { { "Q", 2 } }); ManaManager.AddToMenu(harassMenu, "harass", ManaCheckType.Minimum, ManaValueType.Percent); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", Global.Lang.Get("G_UseW")).SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_LaneClear"), Menu.Name + ".lane-clear")); ManaManager.AddToMenu(laneclearMenu, "lane-clear-q", ManaCheckType.Minimum, ManaValueType.Percent, "Q"); ManaManager.AddToMenu(laneclearMenu, "lane-clear-w", ManaCheckType.Minimum, ManaValueType.Percent, "W"); laneclearMenu.AddItem( new MenuItem(laneclearMenu.Name + ".q-min", "Q " + Global.Lang.Get("G_Min")).SetValue( new Slider(3, 1, 5))); laneclearMenu.AddItem( new MenuItem(laneclearMenu.Name + ".w-min", "W " + Global.Lang.Get("G_Min")).SetValue( new Slider(3, 1, 5))); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", Global.Lang.Get("G_UseW")).SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Flee"), Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".r", Global.Lang.Get("G_UseR")).SetValue(false)); var shieldMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("Sivir_Shield"), Menu.Name + ".shield")); TargetSpellManager.AddToMenu( shieldMenu.AddSubMenu(new Menu(Global.Lang.Get("G_Whitelist"), shieldMenu.Name + ".whitelist")), false, true); ManaManager.AddToMenu(shieldMenu, "shield", ManaCheckType.Minimum, ManaValueType.Percent, null, 0); shieldMenu.AddItem(new MenuItem(shieldMenu.Name + ".enabled", Global.Lang.Get("G_Enabled")).SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Miscellaneous"), Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("Q " + Global.Lang.Get("G_Stunned"), miscMenu.Name + "q-stunned")), "q-stunned", false, false, true, false); IndicatorManager.AddToMenu(DrawingManager.GetMenu(), true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Finale(); }
protected override void AddToMenu() { UltimateManager.AddToMenu(Menu, true, false, false, false, false, false, true, true, true); var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.VeryHigh }, { "W", HitChance.VeryHigh }, { "R", HitChance.High } }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High } }); ManaManager.AddToMenu(harassMenu, "harass", ManaCheckType.Minimum, ManaValueType.Percent); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ManaManager.AddToMenu(laneclearMenu, "lane-clear", ManaCheckType.Minimum, ManaValueType.Percent); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(3, 1, 5))); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("W Gapcloser", miscMenu.Name + "w-gapcloser")), "w-gapcloser", false, false, true, false, false, false); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser")), "e-gapcloser", false, false, true, false); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Add(R); IndicatorManager.Finale(); }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Combo"), Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu(Global.Lang.Get("F_MH"), comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, int> { { "Q", 2 }, { "W", 1 }, { "R", 2 } }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", Global.Lang.Get("G_UseW")).SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", Global.Lang.Get("G_UseE")).SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Harass"), Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu(Global.Lang.Get("F_MH"), harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, int> { { "Q", 2 } }); ManaManager.AddToMenu(harassMenu, "harass", ManaCheckType.Minimum, ManaValueType.Percent); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_LaneClear"), Menu.Name + ".lane-clear")); ManaManager.AddToMenu(laneclearMenu, "lane-clear", ManaCheckType.Minimum, ManaValueType.Percent); laneclearMenu.AddItem( new MenuItem(laneclearMenu.Name + ".q-min", "Q " + Global.Lang.Get("G_Min")).SetValue( new Slider(3, 1, 5))); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); UltimateManager.AddToMenu(Menu, true, false, false, false, false, false, true, true, true); var killstealMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Killsteal"), Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Flee"), Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", Global.Lang.Get("G_UseE")).SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Miscellaneous"), Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("W " + Global.Lang.Get("G_Gapcloser"), miscMenu.Name + "w-gapcloser")), "w-gapcloser", false, false, true, false); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("E " + Global.Lang.Get("G_Gapcloser"), miscMenu.Name + "e-gapcloser")), "e-gapcloser", false, false, true, false); IndicatorManager.AddToMenu(DrawingManager.GetMenu(), true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Add(R); IndicatorManager.Finale(); }
private void OnObjAiBaseBuffAdd(Obj_AI_Base sender, Obj_AI_BaseBuffAddEventArgs args) { try { if (args.Buff.Caster.IsMe && sender.IsAlly && args.Buff.Name.Equals("kalistapaltarbuff", StringComparison.OrdinalIgnoreCase)) { var hero = sender as Obj_AI_Hero; if (hero != null) { SoulBound.Unit = hero; } } var target = sender as Obj_AI_Hero; if (target != null) { if (SoulBound.Unit != null && sender.IsEnemy && args.Buff.Caster.NetworkId == SoulBound.Unit.NetworkId && args.Buff.IsActive && SoulBound.Unit.Distance(Player) < R.Range && R.IsReady()) { if (args.Buff.Name.Equals("rocketgrab2", StringComparison.OrdinalIgnoreCase)) { if (Menu.Item(Menu.Name + ".ultimate.blitzcrank.r").GetValue <bool>() && !HeroListManager.Check("blitzcrank", target)) { if (!SoulBound.Unit.UnderTurret(false) && SoulBound.Unit.Distance(sender) > 750f && SoulBound.Unit.Distance(Player) > R.Range / 3f) { R.Cast(); } } } else if (args.Buff.Name.Equals("tahmkenchwdevoured", StringComparison.OrdinalIgnoreCase)) { if (Menu.Item(Menu.Name + ".ultimate.tahm-kench.r").GetValue <bool>() && !HeroListManager.Check("tahm-kench", target)) { if (!SoulBound.Unit.UnderTurret(false) && (SoulBound.Unit.Distance(sender) > Player.AttackRange || GameObjects.AllyHeroes.Where( a => a.NetworkId != SoulBound.Unit.NetworkId && a.NetworkId != Player.NetworkId) .Any(t => t.Distance(Player) > 600) || GameObjects.AllyTurrets.Any(t => t.Distance(Player) < 600))) { R.Cast(); } } } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
/// <summary> /// Post update. /// </summary> public void PostUpdate() { if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit) { if (Cards.Has(CardColor.Red)) { var range = Player.AttackRange + Player.BoundingRadius * 1.5f; var minions = MinionManager.GetMinions(range, MinionTypes.All, MinionTeam.NotAlly); var pred = MinionManager.GetBestCircularFarmLocation( minions.Select(m => m.Position.To2D()).ToList(), 500, range); var target = minions.OrderBy(m => m.Distance(pred.Position)).FirstOrDefault(); if (target != null) { Orbwalker.ForceTarget(target); } } } if (!Cards.ShouldWait && Cards.Status != SelectStatus.Selecting && Cards.Status != SelectStatus.Selected) { Orbwalker.ForceTarget(null); } if (Cards.Status != SelectStatus.Selected) { if (Menu.Item(Menu.Name + ".manual.blue").GetValue <KeyBind>().Active) { Cards.Select(CardColor.Blue); } if (Menu.Item(Menu.Name + ".manual.red").GetValue <KeyBind>().Active) { Cards.Select(CardColor.Red); } if (Menu.Item(Menu.Name + ".manual.gold").GetValue <KeyBind>().Active) { Cards.Select(CardColor.Gold); } } if (HeroListManager.Enabled("q-immobile") && Q.IsReady()) { var target = GameObjects.EnemyHeroes.FirstOrDefault( t => t.IsValidTarget(Q.Range) && HeroListManager.Check("q-immobile", t) && BestTargetOnlyManager.Check("q-immobile", W, t) && IsImmobile(t)); if (target != null) { var best = BestQPosition( target, GameObjects.EnemyHeroes.Select(e => e as Obj_AI_Base).ToList(), HitChance.High); if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1) { Q.Cast(best.Item2); } } } }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.VeryHigh } }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High } }); ManaManager.AddToMenu(harassMenu, "harass", ManaCheckType.Minimum, ManaValueType.Percent); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ManaManager.AddToMenu(laneclearMenu, "lane-clear-q", ManaCheckType.Minimum, ManaValueType.Percent, "Q", 50); ManaManager.AddToMenu(laneclearMenu, "lane-clear-w", ManaCheckType.Minimum, ManaValueType.Percent, "W", 40); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(4, 1, 5))); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w-min", "W Min.").SetValue(new Slider(3, 1, 5))); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".r", "Use R").SetValue(false)); var shieldMenu = Menu.AddSubMenu(new Menu("Shield", Menu.Name + ".shield")); SpellBlockManager.AddToMenu( shieldMenu.AddSubMenu(new Menu("Whitelist", shieldMenu.Name + ".whitelist")), false, true, false); shieldMenu.AddItem(new MenuItem(shieldMenu.Name + ".enabled", "Enabled").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("Q " + "Immobile", miscMenu.Name + "q-immobile")), "q-immobile", false, false, true, false); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Finale(); }
protected override void AddToMenu() { UltimateManager.AddToMenu(Menu, true, false, false, false, false, false, true, true, true); var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HealthManager.AddToMenu(comboMenu, "combo-e", HealthCheckType.Minimum, HealthValueType.Percent, "E", 0); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HealthManager.AddToMenu(harassMenu, "harass-e", HealthCheckType.Minimum, HealthValueType.Percent, "E"); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); HealthManager.AddToMenu( laneclearMenu, "lane-clear-e", HealthCheckType.Minimum, HealthValueType.Percent, "E"); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", "Use E").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 5))); var lasthitMenu = Menu.AddSubMenu(new Menu("Last Hit", Menu.Name + ".lasthit")); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".q", "Use Q").SetValue(true)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".q-unkillable", "Q Unkillable").SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".q", "Use Q").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("W Gapcloser", miscMenu.Name + "w-gapcloser")), "w-gapcloser", false, false, true, false, false, false); HealthManager.AddToMenu(miscMenu, "auto-e", HealthCheckType.Minimum, HealthValueType.Percent, "E", 65); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".e-auto", "Auto E Stacking").SetValue(false)); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(E); IndicatorManager.Add(R); IndicatorManager.Finale(); _eStacks = DrawingManager.Add("E " + "Stacks", true); }
protected override void OnPostUpdate() { if (Q.IsReady()) { var target = GameObjects.EnemyHeroes.OrderBy(e => e.Distance(Player)) .Where(e => Q.IsInRange(e)) .FirstOrDefault(t => HeroListManager.Check("q-immobile", t) && Utils.IsImmobile(t)); if (target != null) { Q.Cast(target.Position); } } }
private void OnUnitDash(Obj_AI_Base sender, Dash.DashItem args) { try { var hero = sender as Obj_AI_Hero; if (!sender.IsEnemy || hero == null) { return; } var endTick = Game.Time - Game.Ping / 2000f + (args.EndPos.Distance(args.StartPos) / args.Speed); var wCasted = false; if (HeroListManager.Check("w-gapcloser", hero) && Player.Distance(args.EndPos) <= W.Range && W.IsReady()) { var target = TargetSelector.GetTarget(W.Range * 0.85f, W.DamageType); if (target == null || sender.NetworkId.Equals(target.NetworkId)) { var delay = (int)(endTick - Game.Time - W.Delay - 0.1f); if (delay > 0) { Utility.DelayAction.Add(delay * 1000, () => W.Cast(args.EndPos)); } else { W.Cast(args.EndPos); } wCasted = true; } } if (!wCasted && HeroListManager.Check("q-gapcloser", hero) && Player.Distance(args.EndPos) <= Q.Range && Q.IsReady()) { var delay = (int)(endTick - Game.Time - Q.Delay - 0.1f); if (delay > 0) { Utility.DelayAction.Add(delay * 1000, () => Q.Cast(args.EndPos)); } else { Q.Cast(args.EndPos); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnEnemyGapcloser(ActiveGapcloser args) { try { if (!args.Sender.IsEnemy) { return; } if (HeroListManager.Check("w-gapcloser", args.Sender) && Player.Distance(args.End) <= W.Width * 0.9f && W.IsReady()) { W.Cast(); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnUnitDash(Obj_AI_Base sender, Dash.DashItem args) { try { var hero = sender as Obj_AI_Hero; if (!sender.IsEnemy || hero == null) { return; } if (HeroListManager.Check("w-gapcloser", hero) && Player.Distance(args.EndPos) <= W.Width * 0.9f && W.IsReady()) { W.Cast(); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
/// <summary> /// Post update /// </summary> protected override void OnPostUpdate() { // Assisted Ultimate if (_ultimateManager.IsActive(UltimateModeType.Assisted) && R.IsReady()) { if (_ultimateManager.ShouldMove(UltimateModeType.Assisted)) { Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius); } if (!CastUltimate(UltimateModeType.Assisted, TargetSelector.GetTarget(R))) { CastUltimateSingle(UltimateModeType.Assisted); } } // Auto Ultimate if (_ultimateManager.IsActive(UltimateModeType.Auto) && R.IsReady()) { if (!CastUltimate(UltimateModeType.Auto, TargetSelector.GetTarget(R))) { CastUltimateSingle(UltimateModeType.Auto); } } // E Immobile targets if (HeroListManager.Enabled("e-immobile") && E.IsReady()) { var target = GameObjects.EnemyHeroes.FirstOrDefault(t => t.IsValidTarget(E.Range) && HeroListManager.Check("e-immobile", t) && BestTargetOnlyManager.Check("e-immobile", E, t) && Utils.IsImmobile(t) ); if (target != null) { E.Cast(target); } } }
private void OnCorePostUpdate(EventArgs args) { try { if (Q.IsReady()) { var target = GameObjects.EnemyHeroes.OrderBy(e => e.Distance(Player)) .Where(e => Q.IsInRange(e)) .FirstOrDefault(t => HeroListManager.Check("q-stunned", t) && Utils.IsStunned(t)); if (target != null) { Q.Cast(target.Position); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void WLogic(HitChance hitChance) { try { var ts = Targets.FirstOrDefault( t => W.CanCast(t) && (_lastQPoisonDelay < Game.Time && GetPoisonBuffEndTime(t) < W.Delay * 1.2 || _lastQPoisonT == null || _lastQPoisonT.NetworkId != t.NetworkId || (HeroListManager.Check("w-fleeing", t) && BestTargetOnlyManager.Check("w-fleeing", W, t) && !t.IsFacing(Player) && t.IsMoving && t.Distance(Player) > 150))); if (ts != null) { Casting.SkillShot(ts, W, hitChance); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnUnitDash(Obj_AI_Base sender, Dash.DashItem args) { try { var hero = sender as Obj_AI_Hero; if (!sender.IsEnemy || hero == null) { return; } if (HeroListManager.Check("w-gapcloser", hero)) { if (args.EndPos.Distance(Player.Position) < W.Range) { W.Cast(args.EndPos); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnEnemyGapcloser(ActiveGapcloser args) { try { if (!args.Sender.IsEnemy) { return; } if (UltimateManager.Gapcloser(args.Sender)) { if (args.End.Distance(Player.Position) < R.Range) { R.Cast(args.End); } } var wCasted = false; if (HeroListManager.Check("w-gapcloser", args.Sender) && Player.Distance(args.End) <= W.Range && W.IsReady()) { var target = TargetSelector.GetTarget(W.Range * 0.85f, W.DamageType); if (target == null || args.Sender.NetworkId.Equals(target.NetworkId)) { W.Cast(args.End); wCasted = true; } } if (!wCasted && HeroListManager.Check("q-gapcloser", args.Sender) && Player.Distance(args.End) <= Q.Range && Q.IsReady()) { Q.Cast(args.End); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnUnitDash(Obj_AI_Base sender, Dash.DashItem args) { try { var hero = sender as Obj_AI_Hero; if (!sender.IsEnemy || hero == null) { return; } if (HeroListManager.Check("q-gapcloser", hero) && Player.Distance(args.EndPos) <= Q.Range && Q.IsReady()) { var target = TargetSelector.GetTarget(Q.Range * 0.85f, Q.DamageType); if (target == null || sender.NetworkId.Equals(target.NetworkId)) { Q.Cast(args.EndPos); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnAntiGapcloserEnemyGapcloser(ActiveGapcloser args) { try { if (!args.Sender.IsEnemy) { return; } if (HeroListManager.Check("q-gapcloser", args.Sender) && args.End.Distance(Player.Position) < Q.Range && Q.IsReady()) { var target = TargetSelector.GetTarget(Q.Range * 0.85f, Q.DamageType); if (target == null || args.Sender.NetworkId.Equals(target.NetworkId)) { Q.Cast(args.End); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnEnemyGapcloser(ActiveGapcloser args) { try { if (!args.Sender.IsEnemy) { return; } if (HeroListManager.Check("e-gapcloser", args.Sender) && E.IsInRange(args.End)) { E.Cast(args.End); } if (HeroListManager.Check("r-gapcloser", args.Sender) && R.IsInRange(args.End) && Menu.Item(Menu.Name + ".miscellaneous.r-max").GetValue <Slider>().Value > GetRBuffCount()) { R.Cast(args.End); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void QLogic(HitChance hitChance) { try { var ts = Targets.FirstOrDefault( t => Q.CanCast(t) && (GetPoisonBuffEndTime(t) < Q.Delay * 1.2f || (HeroListManager.Check("q-fleeing", t) && BestTargetOnlyManager.Check("q-fleeing", Q, t) && !t.IsFacing(Player) && t.IsMoving && t.Distance(Player) > 150))); if (ts != null) { _lastQPoisonDelay = Game.Time + Q.Delay; _lastQPoisonT = ts; Casting.SkillShot(ts, Q, hitChance); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void OnPostUpdate() { CheckSoulbound(); if (_soulbound != null && _soulbound.Distance(Player) < R.Range && R.IsReady()) { var blitz = Menu.Item(Menu.Name + ".ultimate.blitzcrank.r").GetValue <bool>(); var tahm = Menu.Item(Menu.Name + ".ultimate.tahm-kench.r").GetValue <bool>(); if (blitz || tahm) { foreach (var enemy in GameObjects.EnemyHeroes.Where(e => e.IsValidTarget(3000))) { if (blitz) { var blitzBuff = enemy.Buffs.FirstOrDefault( b => b.IsValid && b.IsActive && b.Caster.NetworkId.Equals(_soulbound.NetworkId) && b.Name.Equals("rocketgrab2", StringComparison.OrdinalIgnoreCase)); if (blitzBuff != null) { if (!HeroListManager.Check("blitzcrank", enemy)) { if (!_soulbound.UnderTurret(false) && _soulbound.Distance(enemy) > 750f && _soulbound.Distance(Player) > R.Range / 3f) { R.Cast(); } } return; } } if (tahm) { var tahmBuff = enemy.Buffs.FirstOrDefault( b => b.IsValid && b.IsActive && b.Caster.NetworkId.Equals(_soulbound.NetworkId) && b.Name.Equals("tahmkenchwdevoured", StringComparison.OrdinalIgnoreCase)); if (tahmBuff != null) { if (!HeroListManager.Check("tahm-kench", enemy)) { if (!_soulbound.UnderTurret(false) && (_soulbound.Distance(enemy) > Player.AttackRange || GameObjects.AllyHeroes.Where( a => a.NetworkId != _soulbound.NetworkId && a.NetworkId != Player.NetworkId) .Any(t => t.Distance(Player) > 600) || GameObjects.AllyTurrets.Any(t => t.Distance(Player) < 600))) { R.Cast(); } } return; } } } } } if (Menu.Item(Menu.Name + ".miscellaneous.w-baron").GetValue <KeyBind>().Active&& W.IsReady() && !Player.IsWindingUp && !Player.IsDashing() && Player.Distance(SummonersRift.River.Baron) <= W.Range) { W.Cast(SummonersRift.River.Baron); } if (Menu.Item(Menu.Name + ".miscellaneous.w-dragon").GetValue <KeyBind>().Active&& W.IsReady() && !Player.IsWindingUp && !Player.IsDashing() && Player.Distance(SummonersRift.River.Dragon) <= W.Range) { W.Cast(SummonersRift.River.Dragon); } }
protected override void AddToMenu() { var ultimateMenu = Menu.AddSubMenu(new Menu("Ultimate", Menu.Name + ".ultimate")); var blitzMenu = ultimateMenu.AddSubMenu(new Menu("Blitzcrank", ultimateMenu.Name + ".blitzcrank")); HeroListManager.AddToMenu( blitzMenu.AddSubMenu(new Menu("Blacklist", blitzMenu.Name + ".blacklist")), new HeroListManagerArgs("blitzcrank") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false, EnabledButton = false }); blitzMenu.AddItem(new MenuItem(blitzMenu.Name + ".r", "Enabled").SetValue(true)); var tahmMenu = ultimateMenu.AddSubMenu(new Menu("Tahm Kench", ultimateMenu.Name + ".tahm-kench")); HeroListManager.AddToMenu( tahmMenu.AddSubMenu(new Menu("Blacklist", tahmMenu.Name + ".blacklist")), new HeroListManagerArgs("tahm-kench") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false, EnabledButton = false }); tahmMenu.AddItem(new MenuItem(tahmMenu.Name + ".r", "Enabled").SetValue(true)); ultimateMenu.AddItem( new MenuItem(ultimateMenu.Name + ".save", "Save Mode").SetValue( new StringList(new[] { "None", "Auto", "Min. Health %" }, 1))).ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { Utils.UpdateVisibleTag(ultimateMenu, 1, args.GetNewValue <StringList>().SelectedIndex == 2); }; ultimateMenu.AddItem( new MenuItem(ultimateMenu.Name + ".save-health", "Min. Health %").SetValue(new Slider(10, 1, 50))) .SetTag(1); Utils.UpdateVisibleTag( ultimateMenu, 1, Menu.Item(Menu.Name + ".ultimate.save").GetValue <StringList>().SelectedIndex == 2); var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.VeryHigh } }); ResourceManager.AddToMenu( comboMenu, new ResourceManagerArgs( "combo-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "Q", DefaultValue = 10 }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e-min", "E Fleeing Min.").SetValue(new Slider(8, 1, 20))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".minions", "Attack Minions").SetValue(false)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High } }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "Q", DefaultValue = 30 }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass-e", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "E", DefaultValue = 30 }); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e-min", "E Min.").SetValue(new Slider(4, 1, 20))); var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ResourceManager.AddToMenu( laneClearMenu, new ResourceManagerArgs( "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 } }); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q", "Use Q").SetValue(true)); laneClearMenu.AddItem( new MenuItem(laneClearMenu.Name + ".q-min", "Q Min. Hits").SetValue(new Slider(3, 1, 5))); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".e", "Use E").SetValue(true)); var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear")); ResourceManager.AddToMenu( jungleClearMenu, new ResourceManagerArgs( "jungle-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 30, 10, 10 } }); jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".q", "Use Q").SetValue(true)); jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".e", "Use E").SetValue(true)); var lasthitMenu = Menu.AddSubMenu(new Menu("Last Hit", Menu.Name + ".lasthit")); ResourceManager.AddToMenu( lasthitMenu, new ResourceManagerArgs( "lasthit", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 } }); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-siege", "E Siege Minion").SetValue(true)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-unkillable", "E Unkillable").SetValue(true)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-turret", "E Under Turret").SetValue(true)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".separator", string.Empty)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-jungle", "E Jungle").SetValue(true)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-big", "E Dragon/Baron").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".e", "Use E").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); ResourceManager.AddToMenu( miscMenu, new ResourceManagerArgs("misc", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "E", DefaultValue = 30 }); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".e-reset", "E Harass Reset").SetValue(true)); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".e-death", "E Before Death").SetValue(true)); miscMenu.AddItem( new MenuItem(miscMenu.Name + ".w-baron", "Hotkey W Baron").SetValue(new KeyBind('J', KeyBindType.Press))); miscMenu.AddItem( new MenuItem(miscMenu.Name + ".w-dragon", "Hotkey W Dragon").SetValue( new KeyBind('K', KeyBindType.Press))); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q, true, false); IndicatorManager.Add(W, true, false); IndicatorManager.Add("E", Rend.GetDamage); IndicatorManager.Finale(); _ePercent = DrawingManager.Add("E Percent Damage", new Circle(false, Color.DodgerBlue)); var lowHealthWeight = TargetSelector.Weights.GetItem("low-health"); if (lowHealthWeight != null) { lowHealthWeight.ValueFunction = hero => hero.Health - Rend.GetDamage(hero); lowHealthWeight.Tooltip = "Low Health (Health - Rend Damage) = Higher Weight"; } TargetSelector.Weights.Register( new TargetSelector.Weights.Item( "w-stack", "W Stack", 10, false, hero => hero.HasBuff("kalistacoopstrikemarkally") ? 1 : 0, "Has W Debuff = Higher Weight")); }
protected override void AddToMenu() { var ultimateMenu = UltimateManager.AddToMenu(Menu, true, false, false, true, false, false, true, true, true); ultimateMenu.AddItem( new MenuItem(ultimateMenu.Name + ".radius", "Range").SetValue(new Slider(450, 100, 600))).ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { _rSpreadRadius = args.GetNewValue <Slider>().Value; }; _rSpreadRadius = Menu.Item(Menu.Name + ".ultimate.radius").GetValue <Slider>().Value; var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "E", HitChance.High }, { "R", HitChance.VeryHigh } }); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".q-fast-cast-min", "Fast Cast @ Health %").SetValue(new Slider(25))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q-range", "Q " + "Out of Range").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q-always", "Q " + "Always").SetValue(false)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q-stacks", "Q " + "Stacks >=")) .SetValue(new Slider(3, 1, 3)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(3, 1, 3))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e-always", "E " + "Always").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e-stacks", "E " + "Stacks >=")) .SetValue(new Slider(3, 1, 3)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 3))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "E", HitChance.High } }); ManaManager.AddToMenu(harassMenu, "harass", ManaCheckType.Minimum, ManaValueType.Percent); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".q-fast-cast-min", "Fast Cast @ Health %").SetValue(new Slider(25))); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q-range", "Q " + "Out of Range").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q-always", "Q " + "Always").SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q-stacks", "Q " + "Stacks >=")) .SetValue(new Slider(3, 1, 3)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(3, 1, 3))); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e-always", "E " + "Always").SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e-stacks", "E " + "Stacks >=")) .SetValue(new Slider(3, 1, 3)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 3))); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ManaManager.AddToMenu(laneclearMenu, "lane-clear", ManaCheckType.Minimum, ManaValueType.Percent); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", "Use E").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".min", "Min.").SetValue(new Slider(3, 1, 5))); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true)); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".range", "Out of Range").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser")), "e-gapcloser", false, false, true, false); Weights.AddItem(new Weights.Item("w-stacks", "W " + "Stacks", 13, true, t => GetWStacks(t) + 1)); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add("Q", hero => Q.IsReady() ? Q.GetDamage(hero, 1) : 0); IndicatorManager.Add(E); IndicatorManager.Add(R); IndicatorManager.Finale(); _wStacks = DrawingManager.Add("W " + "Stacks", true); }
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); } } }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Combo"), Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu(Global.Lang.Get("F_MH"), comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, int> { { "Q", 1 }, { "E", 1 }, { "R", 2 } }); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".q-fast-cast-min", Global.Lang.Get("Varus_FastCastMin")).SetValue( new Slider(25))); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".q-range", "Q " + Global.Lang.Get("G_OutOfRange")).SetValue(true)); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".q-always", "Q " + Global.Lang.Get("G_Always")).SetValue(false)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q-stacks", "Q " + Global.Lang.Get("G_StacksIsOrMore"))) .SetValue(new Slider(3, 1, 3)); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".q-min", "Q " + Global.Lang.Get("G_Min")).SetValue(new Slider(3, 1, 3))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".e-always", "E " + Global.Lang.Get("G_Always")).SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e-stacks", "E " + Global.Lang.Get("G_StacksIsOrMore"))) .SetValue(new Slider(3, 1, 3)); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".e-min", "E " + Global.Lang.Get("G_Min")).SetValue(new Slider(3, 1, 3))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", Global.Lang.Get("G_UseE")).SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Harass"), Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu(Global.Lang.Get("F_MH"), harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, int> { { "Q", 1 }, { "E", 1 } }); ManaManager.AddToMenu(harassMenu, "harass", ManaCheckType.Minimum, ManaValueType.Percent); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".q-fast-cast-min", Global.Lang.Get("Varus_FastCastMin")).SetValue( new Slider(25))); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".q-range", "Q " + Global.Lang.Get("G_OutOfRange")).SetValue(true)); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".q-always", "Q " + Global.Lang.Get("G_Always")).SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q-stacks", "Q " + Global.Lang.Get("G_StacksIsOrMore"))) .SetValue(new Slider(3, 1, 3)); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".q-min", "Q " + Global.Lang.Get("G_Min")).SetValue(new Slider(3, 1, 3))); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".e-always", "E " + Global.Lang.Get("G_Always")).SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e-stacks", "E " + Global.Lang.Get("G_StacksIsOrMore"))) .SetValue(new Slider(3, 1, 3)); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".e-min", "E " + Global.Lang.Get("G_Min")).SetValue(new Slider(3, 1, 3))); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", Global.Lang.Get("G_UseE")).SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_LaneClear"), Menu.Name + ".lane-clear")); ManaManager.AddToMenu(laneclearMenu, "lane-clear", ManaCheckType.Minimum, ManaValueType.Percent); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", Global.Lang.Get("G_UseE")).SetValue(true)); laneclearMenu.AddItem( new MenuItem(laneclearMenu.Name + ".min", Global.Lang.Get("G_Min")).SetValue(new Slider(3, 1, 5))); var ultimateMenu = UltimateManager.AddToMenu(Menu, true, false, false, true, false, false, true, true, true); ultimateMenu.AddItem( new MenuItem(ultimateMenu.Name + ".radius", Global.Lang.Get("G_Range")).SetValue( new Slider(450, 100, 600))).ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { _rSpreadRadius = args.GetNewValue <Slider>().Value; }; _rSpreadRadius = Menu.Item(Menu.Name + ".ultimate.radius").GetValue <Slider>().Value; var killstealMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Killsteal"), Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", Global.Lang.Get("G_UseQ")).SetValue(true)); killstealMenu.AddItem( new MenuItem(killstealMenu.Name + ".range", Global.Lang.Get("G_OutOfRange")).SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Flee"), Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", Global.Lang.Get("G_UseE")).SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu(Global.Lang.Get("G_Miscellaneous"), Menu.Name + ".miscellaneous")); HeroListManager.AddToMenu( miscMenu.AddSubMenu(new Menu("E " + Global.Lang.Get("G_Gapcloser"), miscMenu.Name + "e-gapcloser")), "e-gapcloser", false, false, true, false); TargetSelector.AddWeightedItem( new WeightedItem("w-stacks", "W " + Global.Lang.Get("G_Stacks"), 13, true, t => GetWStacks(t) + 1)); IndicatorManager.AddToMenu(DrawingManager.GetMenu(), true); IndicatorManager.Add("Q", hero => Q.IsReady() ? Q.GetDamage(hero, 1) : 0); IndicatorManager.Add(E); IndicatorManager.Add(R); IndicatorManager.Finale(); _wStacks = DrawingManager.Add("W " + Global.Lang.Get("G_Stacks"), true); }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.VeryHigh }, { "E", HitChance.VeryHigh }, { "R", HitChance.VeryHigh } }); ResourceManager.AddToMenu( comboMenu, new ResourceManagerArgs( "combo-r", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "R", DefaultValue = 30 }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".r", "Use R").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "R", HitChance.VeryHigh } }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { DefaultValue = 30 }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass-r", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "R", DefaultValue = 30 }); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".r", "Use R").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ResourceManager.AddToMenu( laneclearMenu, new ResourceManagerArgs( "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, MaxValue = 101, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 }, IgnoreJungleOption = true }); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", "Use E").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 5))); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".r", "Use R").SetValue(false)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".r-min", "R Min.").SetValue(new Slider(3, 1, 5))); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".r", "Use R").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser")); GapcloserManager.AddToMenu( eGapcloserMenu, new HeroListManagerArgs("e-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }, true); BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser"); var rImmobileMenu = miscMenu.AddSubMenu(new Menu("R Immobile", miscMenu.Name + "r-immobile")); HeroListManager.AddToMenu( rImmobileMenu, new HeroListManagerArgs("r-immobile") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(rImmobileMenu, "r-immobile", true); var rGapcloserMenu = miscMenu.AddSubMenu(new Menu("R Gapcloser", miscMenu.Name + "r-gapcloser")); GapcloserManager.AddToMenu( rGapcloserMenu, new HeroListManagerArgs("r-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(rGapcloserMenu, "r-gapcloser", true); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".r-max", "R Max. Stacks").SetValue(new Slider(5, 1, 10))); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Add(E); IndicatorManager.Add(R); IndicatorManager.Finale(); }