Ejemplo n.º 1
0
        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());
                }
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }