public override void OnLaneClear() { var mode = Features.First(it => it.NameFeature == "Lane Clear"); var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => Q.IsInRange(m)); if (!minions.Any()) { return; } if (Q.IsReady() && mode.IsChecked("laneclear.q")) { Q.Cast(minions.FirstOrDefault()); } if (W.IsReady() && mode.IsChecked("laneclear.e")) { var minionsW = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => W.IsInRange(m)).Select(m => m.ServerPosition.To2D()).ToList(); if (!minionsW.Any()) { return; } var predictinClear = _predictionutil.GetBestLineFarmLocation(minionsW, W.Width, W.Range); if (predictinClear.MinionsHit >= 2) { W.Cast(predictinClear.Position.To3D()); } } if (E.IsReady() && mode.IsChecked("laneclear.e")) { var minionsE = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => E.IsInRange(m)).Select(m => m.ServerPosition.To2D()).ToList(); if (!minionsE.Any()) { return; } var predictinClear = _predictionutil.GetBestCircularFarmLocation(minionsE, E.Width, E.Range); if (predictinClear.MinionsHit >= 2) { W.Cast(predictinClear.Position.To3D()); } } }
public override void OnJungleClear() { var minions = EntityManager.MinionsAndMonsters.Monsters.Where(t => t.IsValidTarget(1000)); var jungleclear = Features.Find(f => f.NameFeature == "Jungle Clear"); if (minions == null || !minions.Any(t => t.IsValidTarget(1000)) || jungleclear.SliderValue("jungleclear.mana") > Player.Instance.ManaPercent) { return; } var Q = ((Spell.Chargeable)Spells[0]); var W = ((Spell.Skillshot)Spells[1]); var E = ((Spell.Skillshot)Spells[2]); if (jungleclear.IsChecked("jungleclear.q") && Q.IsReady()) { var bestFarmPostion = PredictionUtil.GetBestLineFarmLocation(minions.Select(o => o.ServerPosition.To2D()).ToList(), Q.Width, Q.MaximumRange); if (!Q.IsCharging) { Q.StartCharging(); } else if (Q.Range == Q.MaximumRange) { if (Q.Cast(minions.FirstOrDefault().ServerPosition)) { } } else { if (bestFarmPostion.Position.Distance(Player.Instance) > Q.Range && Q.IsCharging) { return; } Q.Cast(bestFarmPostion.Position.To3D()); } } if (Q.IsCharging) { return; } if (jungleclear.IsChecked("jungleclear.w") && W.IsReady()) { var bestFarmPosition = PredictionUtil.GetBestCircularFarmLocation(minions.Select(o => o.ServerPosition.To2D()).ToList(), W.Width, W.Range); W.Cast(bestFarmPosition.Position.To3D()); } if (jungleclear.IsChecked("jungleclear.e") && E.IsReady() && E.IsInRange(minions.FirstOrDefault())) { var predictionE = E.GetPrediction(minions.FirstOrDefault()); if (predictionE.HitChancePercent >= 85) { E.Cast(predictionE.CastPosition); } } }