private void LaneClear() { if (Me.ManaPercent >= Menu.Item("LaneClearMana", true).GetValue <Slider>().Value) { if (Menu.Item("LaneClearQ", true).GetValue <bool>() && Q.IsReady()) { var minions = MinionManager.GetMinions(Me.Position, Q.Range); if (minions.Any()) { var QFarm = MinionManager.GetBestLineFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (QFarm.MinionsHit >= Menu.Item("LaneClearQCount", true).GetValue <Slider>().Value) { Q.Cast(QFarm.Position); } } } } }
private static void LaneclearR() { var minion = MinionManager.GetMinions(Player.ServerPosition, r.Range).FirstOrDefault(); if (minion == null || minion.Name.ToLower().Contains("ward")) { return; } var farmLocation = MinionManager.GetBestLineFarmLocation( MinionManager.GetMinions(r.Range, MinionTypes.All, MinionTeam.Enemy) .Select(m => m.ServerPosition.To2D()) .ToList(), r.Width, r.Range); if (menu.Item("laneclearR").GetValue <bool>() && r.IsReady()) { r.Cast(farmLocation.Position); } }
private void LaneClear() { if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm) { if (Menu.GetBool("LaneClearQ") && Q.IsReady()) { var qMinions = MinionManager.GetMinions(Me.Position, Q.Range); if (qMinions.Any()) { var qFarm = MinionManager.GetBestLineFarmLocation(qMinions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (qFarm.MinionsHit >= Menu.GetSlider("LaneClearQCount")) { CastQ(null, qFarm.Position.To3D()); } } } if (Menu.GetBool("LaneClearE") && E.IsReady()) { var eMinions = MinionManager.GetMinions(Me.Position, E.Range); if (eMinions.Any()) { var eFarm = MinionManager.GetBestCircularFarmLocation(eMinions.Select(x => x.Position.To2D()).ToList(), E.Width, E.Range); if (eFarm.MinionsHit >= Menu.GetSlider("LaneClearECount")) { E.Cast(eFarm.Position); } } } } }
private void LaneClear() { if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm) { if (Menu.GetBool("LaneClearQ") && Q.IsReady()) { var Minions = MinionManager.GetMinions(Me.Position, Q.Range); if (Minions.Any()) { var QFarm = MinionManager.GetBestLineFarmLocation(Minions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (QFarm.MinionsHit >= Menu.GetSlider("LaneClearQCount")) { Q.Cast(QFarm.Position); } } } } }
private void LaneClear() { if (Me.ManaPercent >= Menu.Item("LaneClearMana", true).GetValue <Slider>().Value) { if (Menu.Item("LaneClearQ", true).GetValue <bool>() && Q.IsReady()) { var qMinions = MinionManager.GetMinions(Me.Position, Q.Range); if (qMinions.Any()) { var qFarm = MinionManager.GetBestLineFarmLocation(qMinions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (qFarm.MinionsHit >= Menu.Item("LaneClearQCount", true).GetValue <Slider>().Value) { CastQ(null, qFarm.Position.To3D()); } } } if (Menu.Item("LaneClearE", true).GetValue <bool>() && E.IsReady()) { var eMinions = MinionManager.GetMinions(Me.Position, E.Range); if (eMinions.Any()) { var eFarm = MinionManager.GetBestCircularFarmLocation(eMinions.Select(x => x.Position.To2D()).ToList(), E.Width, E.Range); if (eFarm.MinionsHit >= Menu.Item("LaneClearECount", true).GetValue <Slider>().Value) { E.Cast(eFarm.Position); } } } } }
internal static void Init() { var mobs = MinionManager.GetMinions(Me.ServerPosition, Q3.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var mob = mobs.FirstOrDefault(x => x.IsValidTarget(E.Range) && SpellManager.CanCastE(x)); if (Menu.Item("JungleClearE", true).GetValue <bool>() && E.IsReady() && mob != null && mob.IsValidTarget(E.Range)) { E.CastOnUnit(mob, true); } if (Menu.Item("JungleClearQ", true).GetValue <bool>() && Q.IsReady() && !SpellManager.HaveQ3) { var qFarm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (qFarm.MinionsHit >= 1) { Q.Cast(qFarm.Position, true); } } if (Menu.Item("JungleClearQ3", true).GetValue <bool>() && Q3.IsReady() && SpellManager.HaveQ3) { var q3Farm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q3.Width, Q3.Range); if (q3Farm.MinionsHit >= 1) { Q3.Cast(q3Farm.Position, true); } } } }
private void JungleClear() { if (ManaManager.HasEnoughMana(Menu.GetSlider("JungleClearMana")) && ManaManager.SpellFarm) { if (Menu.GetBool("JungleClearQ") && Q.IsReady()) { var mobs = MinionManager.GetMinions(Me.Position, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var QFarm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (QFarm.MinionsHit >= 1) { Q.Cast(QFarm.Position); } } } } }
private static void JungleClear() { if (JungleClearOption.HasEnouguMana) { if (JungleClearOption.UseQ && Q.IsReady()) { var mobs = MinionManager.GetMinions(Me.Position, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var QFarm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (QFarm.MinionsHit >= 1) { Q.Cast(QFarm.Position, true); } } } } }
private static void Farm() { var Minions = MinionManager.GetMinions(Player.Position, E.Range, MinionTypes.All, MinionTeam.NotAlly); if (Minions.Count == 0) { return; } if (Player.Mana / Player.MaxMana * 100 >= GetSlider("MP")) { if (GetBool("FQ") && Q.IsReady()) { var castPostion = MinionManager.GetBestLineFarmLocation(Minions.Select(minion => minion.ServerPosition.To2D()).ToList(), Q.Width, Q.Range); Q.Cast(castPostion.Position, GetBool("UsePacket")); } if (GetBool("FE") && E.IsReady()) { var castPostion = MinionManager.GetBestCircularFarmLocation(Minions.Select(minion => minion.ServerPosition.To2D()).ToList(), E.Width, E.Range); E.Cast(castPostion.Position, GetBool("UsePacket")); E.CastOnUnit(Player, GetBool("UsePacket")); } } }
public static MinionManager.FarmLocation?GetFarmLocation(this Spell spell, MinionTeam team = MinionTeam.Enemy, List <Obj_AI_Base> targets = null) { // Get minions if not set if (targets == null) { targets = MinionManager.GetMinions(spell.Range, MinionTypes.All, team, MinionOrderTypes.MaxHealth); } // Validate if (!spell.IsSkillshot || targets.Count == 0) { return(null); } // Predict minion positions var positions = MinionManager.GetMinionsPredictedPositions(targets, spell.Delay, spell.Width, spell.Speed, spell.From, spell.Range, spell.Collision, spell.Type); // Get best location to shoot for those positions var farmLocation = MinionManager.GetBestLineFarmLocation(positions, spell.Width, spell.Range); if (farmLocation.MinionsHit == 0) { return(null); } return(farmLocation); }
void LHSkills() { if (SpellSlot.Q.IsReady() && !Yasuo.LSIsDashing()) { if (!TornadoReady && GetBool("Farm.UseQ", YasuoMenu.FarmingM)) { var minion = ObjectManager.Get <Obj_AI_Minion>() .FirstOrDefault(x => x.IsValidMinion(Spells[Q].Range) && x.QCanKill()); if (minion != null) { Spells[Q].Cast(minion); } } else if (TornadoReady && GetBool("Farm.UseQ2", YasuoMenu.FarmingM)) { var minions = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.LSDistance(Yasuo) > Yasuo.AttackRange && x.IsValidMinion(Spells[Q2].Range) && (x.QCanKill())); var pred = MinionManager.GetBestLineFarmLocation(minions.Select(m => m.ServerPosition.LSTo2D()).ToList(), Spells[Q2].Width, Spells[Q2].Range); if (pred.MinionsHit >= GetSliderInt("Farm.Qcount", YasuoMenu.FarmingM)) { Spells[Q2].Cast(pred.Position); } } } if (Spells[E].IsReady() && GetBool("Farm.UseE", YasuoMenu.FarmingM)) { var minion = ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(x => x.IsDashable() && x.ECanKill() && (GetBool("Waveclear.ETower", YasuoMenu.WaveclearM) || ShouldDive(x))); if (minion != null) { Spells[E].Cast(minion); } } }
private void Farm() { if (!ManaManager.HasMana("LaneClear")) { return; } var minions = MinionManager.GetMinions(Player.Position, Q.Range); if (minions.Any()) { if (Menu.Item("UseQFarm", true).GetValue <bool>() && Q.IsReady()) { var pred = MinionManager.GetBestLineFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (pred.MinionsHit >= Menu.Item("MinFarm", true).GetValue <Slider>().Value) { Q.Cast(pred.Position); } } if (Menu.Item("UseEFarm", true).GetValue <bool>() && E.IsReady() && Player.CountEnemiesInRange(800) < 1) { var eMinion = minions.FirstOrDefault( x => x.IsValidTarget(E.Range + Player.AttackRange) && x.Health < E.GetDamage(x)); if (eMinion != null) { E.Cast(eMinion.Position); Player.IssueOrder(GameObjectOrder.AttackUnit, eMinion); } } } }
private void JungleClear() { if (Me.ManaPercent >= Menu.Item("JungleClearMana", true).GetValue <Slider>().Value) { if (Menu.Item("JungleClearQ", true).GetValue <bool>() && Q.IsReady()) { var mobs = MinionManager.GetMinions(Me.Position, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var QFarm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (QFarm.MinionsHit >= 1) { Q.Cast(QFarm.Position); } } } } }
private void CastEMinion() { if (!E.IsReady()) { return; } var minions = MinionManager.GetMinions(ObjectManager.Player.Position, E.Range, MinionTypes.All, MinionTeam.NotAlly); if (minions.Count == 0) { return; } var castPostion = MinionManager.GetBestLineFarmLocation(minions.Select(minion => minion.ServerPosition.To2D()).ToList(), E.Width, E.Range); E.Cast(castPostion.Position, Packets()); if (!Program.Menu.Item("useW_Passive").GetValue <bool>()) { return; } var pos = castPostion.Position.To3D(); Utility.DelayAction.Add(50, () => W.Cast(new Vector3(pos.X - 5, pos.Y - 5, pos.Z), Packets())); Utility.DelayAction.Add(150, () => W.Cast(new Vector3(pos.X + 5, pos.Y + 5, pos.Z), Packets())); }
public void Cast_BasicSkillshot_AOE_Farm(Spell spell, int extrawidth = 0) { if (!spell.IsReady()) { return; } var minions = MinionManager.GetMinions(ObjectManager.Player.Position, spell.Type == SkillshotType.SkillshotLine ? spell.Range : spell.Range + ((spell.Width + extrawidth) / 2), MinionTypes.All, MinionTeam.NotAlly); if (minions.Count == 0) { return; } var castPostion = new MinionManager.FarmLocation(); if (spell.Type == SkillshotType.SkillshotCircle) { castPostion = MinionManager.GetBestCircularFarmLocation(minions.Select(minion => minion.ServerPosition.To2D()).ToList(), spell.Width + extrawidth, spell.Range); } if (spell.Type == SkillshotType.SkillshotLine) { castPostion = MinionManager.GetBestLineFarmLocation(minions.Select(minion => minion.ServerPosition.To2D()).ToList(), spell.Width, spell.Range); } spell.Cast(castPostion.Position, UsePackets()); }
private static void LaneClear() { if (Player.ManaPercentage() < Menu.Config.Item("tehorianna.mana.manager").GetValue <Slider>().Value) { return; } if (Menu.Config.Item("tehorianna.laneclear.mode").GetValue <StringList>().SelectedIndex == 0) { if (Q.IsReady() && Menu.Config.Item("tehorianna.laneclear.q").GetValue <bool>()) { List <Obj_AI_Base> minionList = MinionManager.GetMinions(Q.Range); var qCast = MinionManager.GetBestLineFarmLocation(minionList.Select(minion => minion.Position.To2D()).ToList(), Q.Width, Q.Range); Q.Cast(qCast.Position); } } else if (Menu.Config.Item("tehorianna.laneclear.mode").GetValue <StringList>().SelectedIndex == 1) { if (Q.IsReady() && Menu.Config.Item("tehorianna.laneclear.q").GetValue <bool>()) { var minions = MinionManager.GetMinions(Game.CursorPos, 50f, MinionTypes.All, MinionTeam.Enemy); if (minions.Count() > 0) { Q.Cast(Game.CursorPos); } } } if (W.IsReady() && Menu.Config.Item("tehorianna.laneclear.w").GetValue <bool>()) { var minions = MinionManager.GetMinions(OriannasBall.BallPos, W.Range, MinionTypes.All, MinionTeam.Enemy); if (minions.Count() > 0) { W.Cast(); } } }
internal static void Execute() { if (ObjectManager.Player.ManaPercent < Config.GetSliderValue("manaToLC")) { return; } if (Config.IsChecked("useWinLC") && Spells.W.IsReady()) { var targetMinion = Mainframe.Orbwalker.GetTarget() as Obj_AI_Minion; if (targetMinion != null) { switch (Config.GetStringListValue("wModeLC")) { case 0: var combinedManaPercent = ObjectManager.Player.MaxMana / (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).SData.Mana + ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).SData.Mana); if (ObjectManager.Player.ManaPercent >= Math.Max(45, Config.GetSliderValue("manaToLC") + 10 + combinedManaPercent)) { /*var targetAoE = * ObjectManager.Get<Obj_AI_Minion>() * .Where(x => x.IsEnemy) * .Count(x => x.Distance(targetMinion) <= 250);*/ var targetAoE = MinionManager.GetMinions(targetMinion.Position, 250).Count; if (targetAoE > 2) { CardSelector.StartSelecting(Cards.Red); } } else { CardSelector.StartSelecting(Cards.Blue); } break; case 1: CardSelector.StartSelecting(Cards.Yellow); break; case 2: CardSelector.StartSelecting(Cards.Blue); break; case 3: CardSelector.StartSelecting(Cards.Red); break; } } } if (Config.IsChecked("useQinLC") && Spells.Q.IsReady()) { var minions = MinionManager.GetMinions(ObjectManager.Player.Position, Spells.Q.Range).Where(x => x.Type == GameObjectType.obj_AI_Minion && x.Team != ObjectManager.Player.Team).ToList(); if (!minions.Any() || minions.Count < 1) { return; } var minionPos = minions.Select(x => x.Position.To2D()).ToList(); var farm = MinionManager.GetBestLineFarmLocation(minionPos, Spells.Q.Width, Spells.Q.Range); if (farm.MinionsHit >= Config.GetSliderValue("qTargetsLC")) { Spells.Q.Cast(farm.Position); } } }
void Waveclear() { if (SpellSlot.Q.IsReady() && !Yasuo.LSIsDashing() && !InDash) { if (!TornadoReady && GetBool("Waveclear.UseQ", YasuoMenu.WaveclearM) && Orbwalker.IsAutoAttacking) { var minion = ObjectManager.Get <Obj_AI_Minion>() .Where(x => x.IsValidMinion(Spells[Q].Range) && ((x.IsDashable() && (x.Health - Yasuo.LSGetSpellDamage(x, SpellSlot.Q) >= GetProperEDamage(x))) || (x.Health - Yasuo.LSGetSpellDamage(x, SpellSlot.Q) >= 0.15 * x.MaxHealth || x.QCanKill()))).MaxOrDefault(x => x.MaxHealth); if (minion != null) { Spells[Q].Cast(minion); LastTornadoClearTick = Helper.TickCount; } } else if (TornadoReady && GetBool("Waveclear.UseQ2", YasuoMenu.WaveclearM)) { var minions = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.LSDistance(Yasuo) > Yasuo.AttackRange && x.IsValidMinion(Spells[Q2].Range) && ((x.IsDashable() && x.Health - Yasuo.LSGetSpellDamage(x, SpellSlot.Q) >= 0.85 * GetProperEDamage(x)) || (x.Health - Yasuo.LSGetSpellDamage(x, SpellSlot.Q) >= 0.10 * x.MaxHealth) || x.CanKill(SpellSlot.Q))); var pred = MinionManager.GetBestLineFarmLocation(minions.Select(m => m.ServerPosition.LSTo2D()).ToList(), Spells[Q2].Width, Spells[Q2].Range); if (pred.MinionsHit >= GetSliderInt("Waveclear.Qcount", YasuoMenu.WaveclearM)) { Spells[Q2].Cast(pred.Position); } } } if (Helper.TickCount - LastTornadoClearTick < 500) { return; } if (SpellSlot.E.IsReady() && GetBool("Waveclear.UseE", YasuoMenu.WaveclearM) && (!GetBool("Waveclear.Smart", YasuoMenu.WaveclearM) || isHealthy) && (Helper.TickCount - WCLastE) >= GetSliderInt("Waveclear.Edelay", YasuoMenu.WaveclearM)) { var minions = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.IsDashable() && ((GetBool("Waveclear.UseENK", YasuoMenu.WaveclearM) && (!GetBool("Waveclear.Smart", YasuoMenu.WaveclearM) || x.Health - GetProperEDamage(x) > GetProperEDamage(x) * 3)) || x.ECanKill()) && (GetBool("Waveclear.ETower", YasuoMenu.WaveclearM) || GetKeyBind("Misc.TowerDive", YasuoMenu.MiscM) || !GetDashPos(x).PointUnderEnemyTurret())); Obj_AI_Minion minion = null; minion = minions.OrderBy(x => x.ECanKill()).ThenBy(x => GetDashPos(x).MinionsInRange(200)).FirstOrDefault(); if (minion != null) { Spells[E].Cast(minion); WCLastE = Helper.TickCount; } } if (GetBool("Waveclear.UseItems", YasuoMenu.WaveclearM)) { if (GetBool("Waveclear.UseTIA", YasuoMenu.WaveclearM)) { Tiamat.minioncount = GetSliderInt("Waveclear.MinCountHDR", YasuoMenu.WaveclearM); Tiamat.Cast(null, true); } if (GetBool("Waveclear.UseTitanic", YasuoMenu.WaveclearM)) { Titanic.minioncount = GetSliderInt("Waveclear.MinCountHDR", YasuoMenu.WaveclearM); Titanic.Cast(null, true); } if (GetBool("Waveclear.UseHDR", YasuoMenu.WaveclearM)) { Hydra.minioncount = GetSliderInt("Waveclear.MinCountHDR", YasuoMenu.WaveclearM); Hydra.Cast(null, true); } if (GetBool("Waveclear.UseYMU", YasuoMenu.WaveclearM)) { Youmu.minioncount = GetSliderInt("Waveclear.MinCountYOU", YasuoMenu.WaveclearM); Youmu.Cast(null, true); } } }
internal static void AtoB(this Spell spell, Obj_AI_Base T, float Drag = 700f) //Coded By RL244 AtoB Drag 기본값 700f는 빅토르를 위한 것임. { if (T != null) { var TH = T as AIHeroClient; var TM = T as Obj_AI_Minion; if (TH != null) { var TH2 = HeroManager.Enemies.Where(x => x != TH && Func.CanHit(spell, x, Drag)).FirstOrDefault(); var THdelay = (Player.Distance(TH.ServerPosition) > spell.Range ? (Player.Distance(TH.ServerPosition) - spell.Range) / spell.Speed : 100f / spell.Speed); var pred = Prediction.GetPrediction(TH, THdelay + spell.Delay); var TH2delay = (TH2 != null ? (Player.Distance(TH.ServerPosition) > spell.Range ? (Player.Distance(TH2.ServerPosition) - spell.Range) / spell.Speed : TH2.ServerPosition.Distance(TH.ServerPosition) / spell.Speed) : 0f); var TH2pred = (TH2 != null ? Prediction.GetPrediction(TH2, TH2delay + spell.Delay) : null); SharpDX.Vector2 castVec = (pred.UnitPosition.To2D() + TH.ServerPosition.To2D()) / 2; SharpDX.Vector2 castVec2 = Player.ServerPosition.To2D() + SharpDX.Vector2.Normalize(pred.UnitPosition.To2D() - Player.Position.To2D()) * (spell.Range); SharpDX.Vector2 castVec3 = TH.ServerPosition.To2D() - SharpDX.Vector2.Normalize(pred.UnitPosition.To2D() - Player.Position.To2D()) * (100f); SharpDX.Vector2 EditedVec = pred.UnitPosition.To2D() - SharpDX.Vector2.Normalize(pred.UnitPosition.To2D() - TH.ServerPosition.To2D()) * (spell.Width * 2 / 5); SharpDX.Vector2 EditedCV2Vec = Player.ServerPosition.To2D() + SharpDX.Vector2.Normalize(EditedVec - Player.Position.To2D()) * (spell.Range); if (pred.Hitchance >= MenuProvider.Champion.Misc.SelectedHitchance) { if (TH.Distance(Player.ServerPosition) >= spell.Range) { if (Func.CanHit(spell, TH, Drag) && (pred.UnitPosition.Distance(TH.ServerPosition) <= spell.Width / 2 || TH.MoveSpeed * THdelay <= spell.Width / 2)) //if(Func.CanHit(spell,TH,Drag) && TH2 != null && TH2pred.Hitchance >= MenuProvider.Champion.Misc.SelectedHitchance)//별로 좋은 생각이 더 안나고 피곤해서 걍관둠. { spell.Cast(EditedCV2Vec, TH.ServerPosition.To2D()); //별로 좋은 생각이 더 안나고 피곤해서 걍관둠. } else if (Func.CanHit(spell, TH, Drag) && pred.UnitPosition.Distance(TH.ServerPosition) < 350) { if (pred.UnitPosition.Distance(Player.ServerPosition) > spell.Range) { spell.Cast(castVec2, EditedVec);//pred.UnitPosition.To2D()); } } } else { if (TH2 == null || !Func.CanHit(spell, TH2, Drag)) { if (castVec3.Distance(Player.ServerPosition) < TH.ServerPosition.Distance(Player.ServerPosition)) { spell.Cast(castVec3, TH.ServerPosition.To2D()); } else { spell.Cast(TH.ServerPosition.To2D(), castVec3); } } else if (TH2 != null && Func.CanHit(spell, TH2, Drag) && TH2pred.Hitchance >= MenuProvider.Champion.Misc.SelectedHitchance) { SharpDX.Vector2 castVec4 = TH.ServerPosition.To2D() - SharpDX.Vector2.Normalize(TH2pred.UnitPosition.To2D() - TH.ServerPosition.To2D()) * (80f); if (castVec4.Distance(Player.ServerPosition) < TH2pred.UnitPosition.Distance(Player.ServerPosition)) { spell.Cast(castVec4, TH2pred.UnitPosition.To2D()); } else { spell.Cast(TH2pred.UnitPosition.To2D(), castVec4); } } } } } if (TM != null) { var Minions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.IsValidTarget(spell.Range + Drag) && m.Team != ObjectManager.Player.Team).Cast <Obj_AI_Base>().ToList(); if (Minions.Count > 0) { //으.... //MinionManager.GetMinions(spell.Range+Drag, MinionTypes.All, MinionTeam.NotAlly); var FM = Minions.OrderBy(o => o.Distance(Player.ServerPosition)).FirstOrDefault().ServerPosition; var FFM = Minions.OrderBy(o => o.Distance(Player.ServerPosition)).Reverse().FirstOrDefault().ServerPosition; var P = MinionManager.GetMinionsPredictedPositions(Minions, spell.Delay, spell.Width, spell.Speed, FM, Drag, true, SkillshotType.SkillshotLine); var PP = MinionManager.GetBestLineFarmLocation(P, spell.Width, spell.Range + Drag); if (FM != null && FM.Distance(Player.ServerPosition) <= spell.Range) // && PP.MinionsHit >= Math.Min(Minions.Count,6)) //spell.Cast(FM.To2D(),PP.Position); { spell.Cast(FM.To2D(), FFM.To2D()); } } } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { var Minions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.IsValidTarget(spell.Range + Drag) && m.Team != ObjectManager.Player.Team).Cast <Obj_AI_Base>().ToList(); if (Minions.Count > 0) { //MinionManager.GetMinions(spell.Range+Drag, MinionTypes.All, MinionTeam.NotAlly); var FM = Minions.OrderBy(o => o.Distance(Player.ServerPosition)).FirstOrDefault().ServerPosition; var FFM = Minions.OrderBy(o => o.Distance(Player.ServerPosition)).Reverse().FirstOrDefault().ServerPosition; var P = MinionManager.GetMinionsPredictedPositions(Minions, spell.Delay, spell.Width, spell.Speed, FM, Drag, true, SkillshotType.SkillshotLine); var PP = MinionManager.GetBestLineFarmLocation(P, spell.Width, spell.Range + Drag); if (FM != null && FM.Distance(Player.ServerPosition) <= spell.Range)// && PP.MinionsHit >= Math.Min(Minions.Count,6)) //spell.Cast(FM.To2D(),PP.Position); { spell.Cast(FM.To2D(), FFM.To2D()); } } } }
private static void WaveClearHandler() { var Minions = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.IsValidTarget() && (Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells["Q"].Range || Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells["W"].Range || Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells["E"].Range)); if (SpellSlot.Q.IsReady() && getCheckBoxItem(clearMenu, "Waveclear.UseQ")) { var qminions = Minions.Where( m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells["Q"].Range && m.IsValidTarget()); var QLocation = MinionManager.GetBestLineFarmLocation(qminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells["Q"].Width, Spells["Q"].Range); if (QLocation.Position != null && QLocation.MinionsHit > 1) { Spells["Q"].Cast(QLocation.Position); } } if (SpellSlot.E.IsReady() && getCheckBoxItem(clearMenu, "Waveclear.UseE")) { if (LissEMissile == null && !LissUtils.CanSecondE()) { var Eminions = Minions.Where( m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells["E"].Range); var ELocation = MinionManager.GetBestLineFarmLocation(Eminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells["E"].Width, Spells["E"].Range); if (ELocation.Position != null && ELocation.MinionsHit > 0) { Spells["E"].Cast(ELocation.Position); } } else if (LissEMissile != null && getCheckBoxItem(clearMenu, "Waveclear.UseE2") && Vector2.Distance(MissilePosition, LissEMissile.EndPosition.To2D()) <= 15 && SpellSlot.E.IsReady()) { if (LissUtils.PointUnderEnemyTurret(MissilePosition) && getCheckBoxItem(miscMenu, "Misc.DontETurret")) { return; } Spells["E"].CastOnUnit(Player); } } if (SpellSlot.W.IsReady() && getCheckBoxItem(clearMenu, "Waveclear.UseW")) { var wminions = Minions.Where( m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells["W"].Range && m.IsValidTarget()); if (wminions.Count() > getSliderItem(clearMenu, "Waveclear.Wcount")) { Spells["W"].CastOnUnit(Player); } } }
private static void WaveClear() { var Minions = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.IsValidTarget() && (Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.R].Range)); if (SpellSlot.Q.IsReady() && LuxUtils.Active("Waveclear.UseQ")) { var qminions = Minions.Where( m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.Q].Range && m.IsValidTarget()); MinionManager.FarmLocation QLocation = MinionManager.GetBestLineFarmLocation( qminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.Q].Width, Spells[SpellSlot.Q].Range); if (QLocation.MinionsHit > 1) { Spells[SpellSlot.Q].Cast(QLocation.Position); } } if (SpellSlot.E.IsReady() && LuxUtils.Active("Waveclear.UseE")) { if (LuxE == null) { var Eminions = Minions.Where( m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.E].Range + Spells[SpellSlot.E].Width); MinionManager.FarmLocation ELocation = MinionManager.GetBestCircularFarmLocation( Eminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.E].Width, Spells[SpellSlot.E].Range); if (ELocation.MinionsHit >= 2) { Spells[SpellSlot.E].Cast(ELocation.Position); } } if (LuxUtils.Active("Waveclear.UseE2") && LuxE != null && LuxE.Position == LuxE.EndPosition) { Spells[SpellSlot.E].Cast(); } } if (SpellSlot.R.IsReady() && LuxUtils.Active("Waveclear.UseR")) { MinionManager.FarmLocation RLocation = MinionManager.GetBestLineFarmLocation( Minions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.R].Width, Spells[SpellSlot.R].Range); if (RLocation.MinionsHit > LuxUtils.GetSlider("Waveclear.Rcount")) { Spells[SpellSlot.R].Cast(RLocation.Position); } } }
/// <summary> /// Uses the spell. /// </summary> /// <param name="entry">The entry.</param> /// <param name="mode">The mode.</param> /// <exception cref="System.ArgumentOutOfRangeException"></exception> public void UseSpell(SpellDatabaseEntry entry, Orbwalking.OrbwalkingMode mode) { var spell = entry.GetSpell(); var castType = entry.CastType.First(); // Disable activated abilites if (mode == Orbwalking.OrbwalkingMode.None) { if (castType == CastType.Activate || castType == CastType.Toggle) { entry.GetSpell().Cast(); } return; } switch (castType) { case CastType.EnemyChampions: if (mode == Orbwalking.OrbwalkingMode.Combo) { spell.Cast(TargetSelector.GetTarget(spell.Range, TargetSelector.DamageType.True)); } break; case CastType.EnemyMinions: if (mode == Orbwalking.OrbwalkingMode.LaneClear) { var position = MinionManager.GetBestLineFarmLocation( MinionManager.GetMinions(spell.Range).Select(x => x.ServerPosition.To2D()).ToList(), spell.Width, spell.Range); if (position.MinionsHit > 2) { spell.Cast(position.Position); } } break; case CastType.EnemyTurrets: spell.Cast( ObjectManager.Get <Obj_AI_Turret>() .Where(x => x.IsEnemy && !x.IsDead && x.IsValid) .OrderBy(x => x.Distance(ObjectManager.Player)) .FirstOrDefault()); break; case CastType.AllyChampions: spell.Cast( HeroManager.Allies.Where(x => x.IsValidTarget(spell.Range, false)) .OrderBy(x => x.Distance(ObjectManager.Player)) .FirstOrDefault()); break; case CastType.AllyMinions: spell.Cast(MinionManager.GetMinions(spell.Range, MinionTypes.All, MinionTeam.Ally).FirstOrDefault()); break; case CastType.AllyTurrets: spell.Cast( ObjectManager.Get <Obj_AI_Turret>() .Where(x => x.IsAlly && !x.IsDead && x.IsValid) .OrderBy(x => x.Distance(ObjectManager.Player)) .FirstOrDefault()); break; case CastType.HeroPets: // todo REKSAI break; case CastType.Position: spell.Cast(TargetSelector.GetTarget(spell.Range, TargetSelector.DamageType.True)); break; case CastType.Direction: spell.Cast(TargetSelector.GetTarget(spell.Range, TargetSelector.DamageType.True)); break; case CastType.Self: spell.Cast(); break; case CastType.Charging: spell.Cast(); break; case CastType.Toggle: spell.Cast(); break; case CastType.Activate: spell.Cast(); break; default: throw new ArgumentOutOfRangeException(); } }
private void JungleClear() { if (!ManaManager.HasMana("JungleClear")) { return; } var mobs = MinionManager.GetMinions(Player.Position, 800, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var mob = mobs.FirstOrDefault(); if (!IsMelee) { if (Menu.Item("UseEJungle", true).GetValue <bool>() && E.IsReady() && Menu.Item("UseQJungle", true).GetValue <bool>() && Q.IsReady()) { var gateVector = Player.ServerPosition + Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 50; if (mob != null && mob.IsValidTarget(QExtend.Range)) { E.Cast(gateVector); QExtend.Cast(mob.Position); } } if (Menu.Item("UseQJungle", true).GetValue <bool>() && Q.IsReady()) { var qFarm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (qFarm.MinionsHit >= 1) { Q.Cast(qFarm.Position); } } if (Menu.Item("UseWJungle", true).GetValue <bool>() && W.IsReady()) { if (mob.Distance(Player) <= 550) { W.Cast(); } } if (Menu.Item("UseRJungle", true).GetValue <bool>() && R.IsReady()) { if (Qcd != 0 && Wcd != 0 && Ecd != 0) { R.Cast(); } } } else { if (Menu.Item("UseWJungleHam", true).GetValue <bool>() && W2.IsReady() && mob.IsValidTarget(300)) { W2.Cast(); } if (Menu.Item("UseQJungleHam", true).GetValue <bool>() && Q2.IsReady() && mob.IsValidTarget(Q2.Range)) { Q2.CastOnUnit(mob); } if (Menu.Item("UseEJungleHam", true).GetValue <bool>() && E2.IsReady() && mob.IsValidTarget(E2.Range)) { E2.CastOnUnit(mob); } if (Menu.Item("UseRJungle", true).GetValue <bool>() && R.IsReady()) { if (Q1Cd != 0 && W1Cd != 0 && E1Cd != 0) { R.Cast(); } } } } }
private static void WaveClear() { var Minions = ObjectManager.Get <Obj_AI_Minion>() .Where( m => (m.IsValidTarget()) && (Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.R].Range)); if (SpellSlot.Q.IsReady() && CassioUtils.Active("Waveclear.UseQ")) { var qminions = Minions.Where( m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.Q].Range); MinionManager.FarmLocation QLocation = MinionManager.GetBestCircularFarmLocation( qminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.Q].Width, Spells[SpellSlot.Q].Range); if (QLocation.MinionsHit >= 1) { Spells[SpellSlot.Q].Cast(QLocation.Position); } } if (SpellSlot.W.IsReady() && CassioUtils.Active("Waveclear.UseW")) { var wminions = Minions.Where(m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.W].Range); MinionManager.FarmLocation WLocation = MinionManager.GetBestCircularFarmLocation( wminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.W].Width, Spells[SpellSlot.W].Range); if (WLocation.MinionsHit >= 1) { Spells[SpellSlot.W].Cast(WLocation.Position); } } if (SpellSlot.E.IsReady() && CassioUtils.Active("Waveclear.UseE")) { Obj_AI_Minion KillableMinionE = null; var eminions = Minions.Where(m => Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.E].Range); if (CassioUtils.Active("Waveclear.useekillable")) { KillableMinionE = eminions.FirstOrDefault(m => m.Health < Player.GetSpellDamage(m, SpellSlot.E)); } else { KillableMinionE = eminions.OrderBy(x => x.Health).FirstOrDefault(); } if (KillableMinionE != null) { if (CassioUtils.Active("Waveclear.useepoison")) { if (KillableMinionE.isPoisoned()) { Spells[SpellSlot.E].Cast(KillableMinionE); } } else { Spells[SpellSlot.E].Cast(KillableMinionE); } } } if (SpellSlot.R.IsReady() && CassioUtils.Active("Waveclear.UseR")) { MinionManager.FarmLocation RLocation = MinionManager.GetBestLineFarmLocation( Minions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.R].Width, Spells[SpellSlot.R].Range); if (RLocation.MinionsHit > CassioUtils.GetSlider("Waveclear.Rcount")) { Spells[SpellSlot.R].Cast(RLocation.Position); DontMove = true; Utility.DelayAction.Add(200, () => DontMove = false); } } }
/// <summary> /// Get Line Farm Location /// </summary> /// <param name="minionPositions">Minion Positions</param> /// <param name="overrideWidth">Override Width</param> /// <returns>Farm Location. <seealso cref="MinionManager.FarmLocation" /></returns> public MinionManager.FarmLocation GetLineFarmLocation(List <Vector2> minionPositions, float overrideWidth = -1) { return(MinionManager.GetBestLineFarmLocation( minionPositions, overrideWidth >= 0 ? overrideWidth : Width, Range)); }
internal static void Init() { var minions = MinionManager.GetMinions(Me.Position, Q3.Range); if (minions.Any()) { if (Menu.Item("LaneClearItems", true).GetValue <bool>()) { foreach (var min in minions.Where(x => x.DistanceToPlayer() <= 400)) { SpellManager.UseItems(min); } } if (Menu.Item("LaneClearE", true).GetValue <bool>() && E.IsReady()) { foreach ( var min in minions.Where( x => x.DistanceToPlayer() <= E.Range && SpellManager.CanCastE(x) && x.Health <= (Q.IsReady() ? Q.GetDamage(x) + E.GetDamage(x) : E.GetDamage(x)))) { if (Menu.Item("LaneClearETurret", true).GetValue <bool>() || !UnderTower(PosAfterE(min))) { E.CastOnUnit(min, true); } } } if (Menu.Item("LaneClearQ", true).GetValue <bool>() && Q.IsReady() && !SpellManager.HaveQ3) { if (!IsDashing) { var qFarm = MinionManager.GetBestLineFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (qFarm.MinionsHit >= 1) { Q.Cast(qFarm.Position, true); } } else { var qminions = MinionManager.GetMinions(Me.Position, 220); if (qminions.Count >= 3) { Q.Cast(Me.Position, true); } } } if (Menu.Item("LaneClearQ3", true).GetValue <bool>() && Q3.IsReady() && SpellManager.HaveQ3) { if (!IsDashing) { var q3Farm = MinionManager.GetBestLineFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), Q3.Width, Q3.Range); if (q3Farm.MinionsHit >= Menu.Item("LaneClearQ3count", true).GetValue <Slider>().Value) { Q3.Cast(q3Farm.Position, true); } } else if (lastEPos.DistanceToPlayer() <= 200) { var q3minions = MinionManager.GetMinions(Me.Position, 220); if (q3minions.Count >= 3) { Q3.Cast(Me.Position, true); } } } } }
private void Waveclear() { if (SpellSlot.Q.IsReady() && !Yasuo.IsDashing()) { if (!TornadoReady && YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseQ")) { var minion = ObjectManager.Get <Obj_AI_Minion>() .Where( x => x.IsValidMinion(Spells[Q].Range) && ((x.IsDashable() && (x.Health - Yasuo.GetSpellDamage(x, SpellSlot.Q) >= GetProperEDamage(x))) || x.Health - Yasuo.GetSpellDamage(x, SpellSlot.Q) >= 0.15 * x.MaxHealth || x.QCanKill())) .MaxOrDefault(x => x.MaxHealth); if (minion != null) { Spells[Q].Cast(minion.ServerPosition); } } else if (TornadoReady && YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseQ2")) { var minions = ObjectManager.Get <Obj_AI_Minion>() .Where( x => x.Distance(Yasuo) > Yasuo.AttackRange && x.IsValidMinion(Spells[Q2].Range) && ((x.IsDashable() && x.Health - Yasuo.GetSpellDamage(x, SpellSlot.Q) >= 0.85 * GetProperEDamage(x)) || (x.Health - Yasuo.GetSpellDamage(x, SpellSlot.Q) >= 0.10 * x.MaxHealth) || x.CanKill(SpellSlot.Q))); var pred = MinionManager.GetBestLineFarmLocation(minions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[Q2].Width, Spells[Q2].Range); if (pred.MinionsHit >= YasuoMenu.getSliderItem(YasuoMenu.WaveclearA, "Waveclear.Qcount")) { Spells[Q2].Cast(pred.Position); } } } if (SpellSlot.E.IsReady() && YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseE") && (!YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.Smart") || isHealthy)) { var minions = ObjectManager.Get <Obj_AI_Minion>() .Where( x => x.IsDashable() && ((YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseENK") && (!YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.Smart") || x.Health - GetProperEDamage(x) > GetProperEDamage(x) * 3)) || x.ECanKill()) && (YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.ETower") || YasuoMenu.getKeyBindItem(YasuoMenu.MiscA, "Misc.TowerDive") || !GetDashPos(x).PointUnderEnemyTurret())); Obj_AI_Minion minion = null; minion = minions.MaxOrDefault(x => GetDashPos(x).MinionsInRange(200)); if (minion != null) { Spells[E].Cast(minion); } } if (YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseItems")) { if (YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseTIA")) { Tiamat.minioncount = YasuoMenu.getSliderItem(YasuoMenu.WaveclearA, "Waveclear.MinCountHDR"); Tiamat.Cast(null, true); } if (YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseHDR")) { Hydra.minioncount = YasuoMenu.getSliderItem(YasuoMenu.WaveclearA, "Waveclear.MinCountHDR"); Hydra.Cast(null, true); } if (YasuoMenu.getCheckBoxItem(YasuoMenu.WaveclearA, "Waveclear.UseYMU")) { Youmu.minioncount = YasuoMenu.getSliderItem(YasuoMenu.WaveclearA, "Waveclear.MinCountYOU"); Youmu.Cast(null, true); } } }
private static void Game_OnUpdate(EventArgs args) { if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear) { return; } //LaneClear if (BadaoYasuoVariables.LaneQ.GetValue <bool>() && BadaoMainVariables.Q.IsReady() && BadaoYasuoVariables.LaneE.GetValue <bool>() && BadaoMainVariables.E.IsReady()) { var minions = MinionManager.GetMinions(BadaoMainVariables.E.Range).Where(x => !MinionManager.IsWard(x as Obj_AI_Minion)); var minion = minions.Where(x => minions.Where(y => y.Distance(BadaoYasuoHelper.GetEDashEnd(x)) <= 250).Count() >= 2) .MaxOrDefault(x => minions.Where(y => y.Distance(BadaoYasuoHelper.GetEDashEnd(x)) <= 250).Count()); if (minion.IsValidTarget()) { BadaoMainVariables.E.Cast(minion); LeagueSharp.Common.Utility.DelayAction.Add(100, () => BadaoMainVariables.Q.Cast(ObjectManager.Player.Position)); } } if (BadaoYasuoVariables.LaneQ.GetValue <bool>() && BadaoMainVariables.Q.IsReady() && !ObjectManager.Player.IsDashing()) { var minions = MinionManager.GetMinions(BadaoYasuoHelper.GetQRange()).Where(x => !MinionManager.IsWard(x as Obj_AI_Minion)); var minion = minions.Where(x => BadaoYasuoHelper.GetQDamage(x) + BadaoYasuoHelper.GetEDamage(x) >= x.Health).FirstOrDefault(); if (minion.IsValidTarget()) { BadaoMainVariables.Q.Cast(minion); } var farm = MinionManager.GetBestLineFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), 70, BadaoYasuoHelper.GetQRange()); if (farm.MinionsHit >= 2) { BadaoMainVariables.Q.Cast(farm.Position); } } if (BadaoYasuoVariables.LaneE.GetValue <bool>() && BadaoMainVariables.E.IsReady()) { var minion = MinionManager.GetMinions(BadaoMainVariables.E.Range).Where(x => !MinionManager.IsWard(x as Obj_AI_Minion) && BadaoYasuoHelper.GetEDamage(x) >= x.Health).FirstOrDefault(); if (minion.IsValidTarget()) { BadaoMainVariables.E.Cast(minion); } } // JungleClear if (BadaoYasuoVariables.JungQ.GetValue <bool>() && BadaoMainVariables.Q.IsReady() && BadaoYasuoVariables.JungE.GetValue <bool>() && BadaoMainVariables.E.IsReady()) { var minions = MinionManager.GetMinions(BadaoMainVariables.E.Range, MinionTypes.All, MinionTeam.Neutral).Where(x => !MinionManager.IsWard(x as Obj_AI_Minion)); var minion = minions.Where(x => minions.Where(y => y.Distance(BadaoYasuoHelper.GetEDashEnd(x)) <= 250).Count() >= 2) .MaxOrDefault(x => minions.Where(y => y.Distance(BadaoYasuoHelper.GetEDashEnd(x)) <= 250).Count()); if (minion.IsValidTarget()) { BadaoMainVariables.Q.Cast(minion); } } if (BadaoYasuoVariables.JungQ.GetValue <bool>() && BadaoMainVariables.Q.IsReady() && !ObjectManager.Player.IsDashing()) { var minions = MinionManager.GetMinions(BadaoYasuoHelper.GetQRange(), MinionTypes.All, MinionTeam.Neutral).OrderByDescending(x => x.MaxHealth) .Where(x => !MinionManager.IsWard(x as Obj_AI_Minion)); var minion = minions.FirstOrDefault(); if (minion.IsValidTarget()) { BadaoMainVariables.Q.Cast(minion); } var farm = MinionManager.GetBestLineFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), 70, BadaoYasuoHelper.GetQRange()); if (farm.MinionsHit >= 2) { BadaoMainVariables.Q.Cast(farm.Position); } } if (BadaoYasuoVariables.JungE.GetValue <bool>() && BadaoMainVariables.E.IsReady()) { var minion = MinionManager.GetMinions(BadaoMainVariables.E.Range, MinionTypes.All, MinionTeam.Neutral).Where(x => !MinionManager.IsWard(x as Obj_AI_Minion) && BadaoYasuoHelper.GetEDamage(x) >= x.Health).FirstOrDefault(); if (minion.IsValidTarget()) { BadaoMainVariables.E.Cast(minion); LeagueSharp.Common.Utility.DelayAction.Add(100, () => BadaoMainVariables.Q.Cast(ObjectManager.Player.Position)); } } }