private static void SemiAutomaticE() { if (E.IsReady() && Config.Menu["Key"]["key.e"].GetValue <MenuKeyBind>().Active) { if (Config.Menu["Key"]["key.emode"].GetValue <MenuList>().Index == 1) { float lowest = 1600; Vector3 bPos = Vector3.Zero; foreach (Barrel barrel in AllBarrel) { if (barrel.GetBarrel().Distance(Game.CursorPos) < lowest) { bPos = barrel.GetBarrel().Position; lowest = barrel.GetBarrel().Distance(Game.CursorPos); } } if (lowest != 1600f) { E.Cast(bPos.Extend(Game.CursorPos, Math.Min(685, lowest))); } } else if (Config.Menu["Key"]["key.emode"].GetValue <MenuList>().Index == 2 && Q.IsReady()) { IEnumerable <Barrel> toExplode = AllBarrel.Where(b => b.CanQNow() && b.GetBarrel().Distance(Player) <= Q.Range); if (toExplode.Any()) { float lowest = 1600; Barrel bar = null; foreach (Barrel barrel in AllBarrel) { if (barrel.GetBarrel().Distance(Game.CursorPos) < lowest) { bar = barrel; lowest = barrel.GetBarrel().Distance(Game.CursorPos); } } if (bar != null) { E.Cast(bar.GetBarrel().Position.Extend(Game.CursorPos, Math.Min(685, lowest))); QDelay.Delay(bar.GetBarrel()); } } } } }
private static void Combo(bool extended = false, Obj_AI_Hero sender = null) { if (Config.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo) { return; } //if (Config.Item("combo.r").GetValue<bool>()) //{ // Obj_AI_Hero RTarget = HeroManager.Enemies.FirstOrDefault(t => t.CountAlliesInRange(660) > 0); // if (RTarget != null) // { // R.CastIfWillHit(RTarget, Config.Item("combo.rmin").GetValue<Slider>().Value); // } //} if (Config.Menu.Item("combo.qe").GetValue <bool>() && Q.IsReady()) { Obj_AI_Hero target = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Physical); if (target != null) { EnemyPosition = target.Position; Helper.GetPredPos(target); if (extended && target != sender) { extended = false; } foreach (var b in AllBarrel) { if (b.CanQNow() && (b.GetBarrel().Position.CannotEscape(b.GetBarrel().Position, target, extended) || GetBarrelsInRange(b).Any(bb => bb.GetBarrel().Position.CannotEscape(b.GetBarrel().Position, target, extended, true)))) { QDelay.Delay(b.GetBarrel()); break; } } if (E.IsReady() && !QDelay.Active()) { if (Config.Item("combo.doublee").GetValue <bool>()) { foreach (var b in AllBarrel) { if (b.CanQNow() && b.GetBarrel().Distance(Player) > 615 && b.GetBarrel().Distance(target) < 850) { Q.Cast(b.GetBarrel()); break; } } } if (Config.Item("combo.ex").GetValue <bool>()) { foreach (var b in AllBarrel) { var castPos = b.GetBarrel().Position.ExtendToMaxRange(Helper.PredPos.To3D(), 685); if (b.CanQNow() && castPos.Distance(Player.Position) < 1000 && castPos.CannotEscape(b.GetBarrel().Position, target, extended, true)) { E.Cast(castPos); QDelay.Delay(b.GetBarrel()); break; } } } } } } //Triple - Logic if (Q.IsReady() && E.Instance.Ammo >= 2 && Config.Item("combo.triplee").GetValue <bool>()) { List <Barrel> GetValidBarrels = AllBarrel.Where(b => b.CanQNow(400) && b.GetBarrel().Distance(Player) <= 625).ToList(); Obj_AI_Hero target = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Physical); if (target != null && GetValidBarrels.Any(b => b.GetBarrel().Distance(target) <= 1200)) { E.Cast(GetValidBarrels.First(b => b.GetBarrel().Distance(target) <= 1200).GetBarrel().Position.ExtendToMaxRange(Player.Position.ExtendToMaxRange(target.Position, 980), 685)); Utility.DelayAction.Add(600, () => QDelay.Delay(GetValidBarrels.First().GetBarrel())); } } if (Config.Item("combo.q").GetValue <bool>() && Q.IsReady()) { Obj_AI_Hero target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (target != null && (Config.Item("key.q").GetValue <KeyBind>().Active || (!E.IsReady() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(target.Position) < 600)))) { Q.Cast(target); } } if (E.IsReady() && E.Instance.Ammo > 1 && Config.Item("combo.e").GetValue <bool>() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(Player.Position) <= 1200)) { Obj_AI_Hero target = TargetSelector.GetTarget(1000, TargetSelector.DamageType.Physical); if (target == null) { return; } Helper.GetPredPos(target); Vector2 castPos = target.Position.Extend(Helper.PredPos.To3D(), 200).To2D(); if (Player.Distance(castPos) <= E.Range) { E.Cast(castPos); } else { E.Cast(Player.Position.Extend(castPos.To3D(), 1000)); } } }