protected override void Flee() { if (Menu.Item(Menu.Name + ".flee.w").GetValue <bool>()) { if (W.IsReady() || Cards.Status == SelectStatus.Ready) { var target = TargetSelector.GetTarget(W, false); if (target != null) { var best = GetBestCard(target, "flee"); if (best.Any()) { Cards.Select(best); Orbwalker.ForceTarget(target); } } } if (Player.CanAttack && (Cards.Has(CardColor.Red) || Cards.Has(CardColor.Gold))) { var target = GameObjects.EnemyHeroes.Where(e => Orbwalking.InAutoAttackRange(e) && e.IsValidTarget()) .OrderBy(e => e.Distance(Player)) .FirstOrDefault(); if (target != null) { Player.IssueOrder(GameObjectOrder.AttackUnit, target); } } } }
protected override void Harass() { var q = Menu.Item(Menu.Name + ".harass.q").GetValue <bool>(); var w = Menu.Item(Menu.Name + ".harass.w").GetValue <bool>(); if (w && W.IsReady()) { var target = TargetSelector.GetTarget(W, false); if (target != null) { var best = GetBestCard(target, "harass"); if (best.Any()) { Cards.Select(best); } } } if (ResourceManager.Check("harass") && q && Q.IsReady()) { var target = TargetSelector.GetTarget(Q, false); if (target != null) { { var best = BestQPosition( target, GameObjects.EnemyHeroes.Select(e => e as Obj_AI_Base).ToList(), Q.GetHitChance("harass")); if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1) { Q.Cast(best.Item2); } } } } }
private void SetupMenu() { try { SFXMenu = new Menu(Global.Name, "sfx", true); Menu = new Menu(Global.Prefix + Player.ChampionName, SFXMenu.Name + "." + Player.ChampionName, true); DrawingManager.AddToMenu(Menu.AddSubMenu(new Menu("Drawings", Menu.Name + ".drawing")), this); TargetSelector.AddToMenu(SFXMenu.AddSubMenu(new Menu("Target Selector", SFXMenu.Name + ".ts"))); Orbwalker = new Orbwalking.Orbwalker(SFXMenu.AddSubMenu(new Menu("Orbwalker", SFXMenu.Name + ".orb"))); KillstealManager.AddToMenu(SFXMenu.AddSubMenu(new Menu("Killsteal", SFXMenu.Name + ".killsteal"))); var itemMenu = SFXMenu.AddSubMenu(new Menu("Items", SFXMenu.Name + ".items")); TearStackManager.AddToMenu( itemMenu.AddSubMenu(new Menu("Tear Stacking", SFXMenu.Name + ".tear-stack." + Player.ChampionName)), Spells); ItemManager.AddToMenu(itemMenu, ItemFlags); SummonerManager.AddToMenu(SFXMenu.AddSubMenu(new Menu("Summoners", SFXMenu.Name + ".summoners"))); InfoMenu.AddToMenu(SFXMenu.AddSubMenu(new Menu("Info", SFXMenu.Name + ".info"))); DebugMenu.AddToMenu(SFXMenu, Spells); Menu.AddToMainMenu(); SFXMenu.AddToMainMenu(); try { AddToMenu(); } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
public static bool Check(string uniqueId, Spell spell, Obj_AI_Hero hero) { try { if (hero == null || !Enabled(uniqueId)) { return(true); } var bestTarget = TargetSelector.GetTarget(spell); if (bestTarget == null || hero.NetworkId.Equals(bestTarget.NetworkId)) { return(true); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
protected void ItemsSummonersLogic(Obj_AI_Hero ultimateTarget, bool single = true) { try { var range = Math.Max( 600, Math.Max( SummonerManager.SummonerSpells.Where(s => s.CastType == CastType.Target).Max(s => s.Range), ItemManager.Items.Where( i => i.EffectFlags.HasFlag(EffectFlags.Damage) && i.Flags.HasFlag(ItemFlags.Offensive)) .Max(i => i.Range))); if (ultimateTarget == null || Ultimate == null || !ultimateTarget.IsValidTarget(range)) { var target = TargetSelector.GetTarget(range); if (target != null) { if (ItemManager.CalculateComboDamage(target) + SummonerManager.CalculateComboDamage(target) > target.Health) { ItemManager.UseComboItems(target); SummonerManager.UseComboSummoners(target); } } } else { if (Ultimate.GetDamage(ultimateTarget, UltimateModeType.Combo, single ? 1 : 5) > ultimateTarget.Health) { ItemManager.UseComboItems(ultimateTarget); SummonerManager.UseComboSummoners(ultimateTarget); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
public static void TargetSkill(Spell spell) { TargetSkill(TargetSelector.GetTarget(spell), spell); }
public static void SkillShot(Spell spell, HitChance hitChance, bool boundingRadius = true, bool maxRange = true) { SkillShot(TargetSelector.GetTarget(spell), spell, hitChance); }
protected override void Combo() { var q = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>(); var w = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>(); if (w && W.IsReady()) { var target = TargetSelector.GetTarget(W, false); if (target != null) { var best = GetBestCard(target, "combo"); if (best.Any()) { Cards.Select(best); } } } if (q && Q.IsReady()) { var target = TargetSelector.GetTarget(Q); var goldCardTarget = _wTarget != null && _wTarget.IsValidTarget(Q.Range) && _wTargetEndTime > Game.Time; if (goldCardTarget) { target = _wTarget; } if (target == null || target.Distance(Player) < Player.BoundingRadius && !Utils.IsImmobile(target)) { return; } if (!goldCardTarget && (Cards.Has() || HasEBuff()) && GameObjects.EnemyHeroes.Any(e => Orbwalking.InAutoAttackRange(e) && e.IsValidTarget()) || Cards.Has(CardColor.Gold)) { return; } if (goldCardTarget) { if (target.Distance(Player) > 250 && !Utils.IsImmobile(target)) { return; } var best = BestQPosition( target, GameObjects.EnemyHeroes.Select(e => e as Obj_AI_Base).ToList(), Q.GetHitChance("combo")); if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1) { Q.Cast(best.Item2); _wTarget = null; _wTargetEndTime = 0; } } else if (Utils.IsImmobile(target) || (W.Instance.CooldownExpires - Game.Time) >= 2 || W.Level == 0) { var best = BestQPosition( target, GameObjects.EnemyHeroes.Select(e => e as Obj_AI_Base).ToList(), Q.GetHitChance("combo")); if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1) { Q.Cast(best.Item2); } } } }
private void OnOrbwalkingBeforeAttack(Orbwalking.BeforeAttackEventArgs args) { try { var hero = args.Target as Obj_AI_Hero; if (hero != null) { args.Process = Cards.Status != SelectStatus.Selecting && !Cards.ShouldWait; if (args.Process) { if (Cards.Has(CardColor.Gold)) { _wTarget = hero; _wTargetEndTime = Game.Time + 5f; var target = TargetSelector.GetTarget(W, false); if (target != null && !target.NetworkId.Equals(hero.NetworkId)) { Orbwalker.ForceTarget(target); args.Process = false; } } } } else { if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Flee && Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None) { if (Cards.Has(CardColor.Gold) || Cards.Has(CardColor.Blue)) { var targets = TargetSelector.GetTargets( Orbwalking.GetRealAutoAttackRange(null) * 1.25f, DamageType.Magical); if (targets != null) { var target = targets.FirstOrDefault(Orbwalking.InAutoAttackRange); if (target != null) { Orbwalker.ForceTarget(target); args.Process = false; } } } } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit) { if (Cards.Has(CardColor.Red)) { var target = Orbwalker.ForcedTarget(); if (target != null && target.NetworkId != args.Target.NetworkId) { args.Process = false; } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }