示例#1
0
        public override void LaneClear()
        {
            if (IsCastingR)
            {
                return;
            }

            var Qready = LaneClearMenu.checkbox("Q") && Q.Mana(LaneClearMenu) && Q.IsReady();
            var Wready = LaneClearMenu.checkbox("W") && W.Mana(LaneClearMenu) && W.IsReady();
            var Eready = LaneClearMenu.checkbox("E") && E.Mana(LaneClearMenu) && E.IsReady();

            if (Wready)
            {
                var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m.IsKillable() && m.IsKillable(W.Range));

                if (minions != null)
                {
                    var location =
                        Prediction.Position.PredictCircularMissileAoe(minions.Cast <Obj_AI_Base>().ToArray(), W.Range, W.Radius + 100, W.CastDelay, W.Speed)
                        .OrderByDescending(r => r.GetCollisionObjects <Obj_AI_Minion>().Length)
                        .FirstOrDefault();

                    if (location != null && location.CollisionObjects.Length >= 2)
                    {
                        W.Cast(location.CastPosition);
                    }
                }
            }

            if (Qready)
            {
                var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m.IsKillable() && m.IsKillable(Q.Range + 50));

                if (minions != null)
                {
                    var location =
                        Prediction.Position.PredictCircularMissileAoe(minions.Cast <Obj_AI_Base>().ToArray(), Q.Range, Q.Radius + 50, Q.CastDelay, Q.Speed)
                        .OrderByDescending(r => r.GetCollisionObjects <Obj_AI_Minion>().Length)
                        .FirstOrDefault();

                    if (location != null && location.CollisionObjects.Length >= 2)
                    {
                        Q.Cast(location.CastPosition);
                    }
                }
            }

            if (Eready)
            {
                var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m.IsKillable() && m.IsKillable(E.Range));

                if (minions != null)
                {
                    foreach (var minion in minions.Where(minion => E.GetDamage(minion) >= minion?.TotalShield()))
                    {
                        E.Cast(minion);
                    }
                }
            }
        }
示例#2
0
文件: Kindred.cs 项目: jitart/adc
            public static void Orbwalker_OnUnkillableMinion(Obj_AI_Base target, Orbwalker.UnkillableMinionArgs args)
            {
                if (!Common.orbmode(Orbwalker.ActiveModes.LaneClear) || !Common.orbmode(Orbwalker.ActiveModes.LastHit) || target == null)
                {
                    return;
                }

                var useQ = LaneClearMenu.checkbox(Q.Slot.ToString()) && Q.IsReady() && target.IsKillable(Q.Range) && Q.GetDamage(target) > Prediction.Health.GetPrediction(target, Q.CastDelay);

                if (useQ)
                {
                    Q.Cast(target);
                }
            }
示例#3
0
文件: Brand.cs 项目: jitart/adc
        private static void Orbwalker_OnUnkillableMinion(Obj_AI_Base target, Orbwalker.UnkillableMinionArgs args)
        {
            if (target == null || !Common.orbmode(Orbwalker.ActiveModes.LaneClear))
            {
                return;
            }

            var Eready = LaneClearMenu.checkbox("E") && E.IsReady() && target.IsKillable(E.Range) && E.Mana(LaneClearMenu);

            if (Eready && E.GetDamage(target) >= Prediction.Health.GetPrediction(target, E.CastDelay))
            {
                E.Cast(target);
            }
        }
示例#4
0
        private static void Orbwalker_OnUnkillableMinion(Obj_AI_Base target, Orbwalker.UnkillableMinionArgs args)
        {
            if (target == null)
            {
                return;
            }

            if (Common.orbmode(Orbwalker.ActiveModes.LaneClear))
            {
                var Eready = LaneClearMenu.checkbox("E") && E.IsReady();
                if (Eready && E.GetDamage(target) >= args.RemainingHealth)
                {
                    E.Cast(target);
                }
            }
        }
示例#5
0
文件: AurelionSol.cs 项目: jitart/adc
        public override void LaneClear()
        {
            var useQ    = LaneClearMenu.checkbox(Q.Slot.ToString()) && Q.IsReady() && Q.Mana(LaneClearMenu);
            var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m.IsKillable(Q.Range));

            if (!useQ || minions == null)
            {
                return;
            }

            foreach (var minion in minions)
            {
                if (minion.CountEnemyMinions(180) > 2)
                {
                    Q.Cast(minion);
                }
            }
        }
示例#6
0
文件: Kindred.cs 项目: jitart/adc
        public override void LaneClear()
        {
            var Etarget = EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault(m => m.IsKillable(user.GetAutoAttackRange()) && m.Buffs.Any(buff => buff.Name == "KindredERefresher"));

            if (Etarget != null)
            {
                Orbwalker.ForcedTarget = Etarget;
            }

            if (Orbwalker.IsAutoAttacking)
            {
                return;
            }

            var useQ = LaneClearMenu.checkbox(Q.Slot.ToString()) && Q.IsReady() && Q.Mana(LaneClearMenu);
            var useW = LaneClearMenu.checkbox(W.Slot.ToString()) && W.IsReady() && W.Mana(LaneClearMenu);
            var useE = LaneClearMenu.checkbox(E.Slot.ToString()) && E.IsReady() && E.Mana(LaneClearMenu);

            var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m.IsKillable());

            foreach (var minion in minions)
            {
                var aakill = user.GetAutoAttackDamage(minion) > Prediction.Health.GetPrediction(minion, (int)user.AttackDelay);

                if (useQ && minion.CountEnemyMinions(400) >= 2)
                {
                    Q.Cast(minion);
                }

                if (useE && !aakill && E.GetDamage(minion) > Prediction.Health.GetPrediction(minion, 1000))
                {
                    E.Cast(minion);
                }

                if (useW && user.CountEnemyMinions(W.Range) > 2 && W.Handle.ToggleState != 2)
                {
                    W.Cast();
                }
            }
        }
示例#7
0
        public override void LaneClear()
        {
            var useQ = LaneClearMenu.checkbox("Q") && Q.IsReady() && Q.Mana(LaneClearMenu);

            var useW = LaneClearMenu.checkbox("W") && W.IsReady() && W.Mana(LaneClearMenu);

            var useE = LaneClearMenu.checkbox("E") && E.IsReady() && E.Mana(LaneClearMenu);

            var allMinionsQ = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m != null && m.IsKillable(Q.MaximumRange));

            var allMinionsW = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m != null && m.IsKillable(W.Range));

            var objAiMinionsQ = allMinionsQ as Obj_AI_Minion[] ?? allMinionsQ.ToArray();

            if (useQ && allMinionsQ != null)
            {
                var Qpos = EntityManager.MinionsAndMonsters.GetLineFarmLocation(objAiMinionsQ.ToArray(), Q.Width, (int)Q.MaximumRange);

                var useQi = LaneClearMenu.combobox(Q.Slot + "mode");

                if (useQi == 0 || useQi == 2)
                {
                    if (Q.IsCharging)
                    {
                        var locQ = Qpos.CastPosition;
                        if (Qpos.HitNumber >= 1)
                        {
                            Q.Cast(locQ);
                        }
                    }
                    else if (Qpos.HitNumber > 0)
                    {
                        Q.StartCharging();
                    }
                }

                if (useQi == 1 || useQi == 2)
                {
                    var minion = objAiMinionsQ.FirstOrDefault(m => Q.GetDamage(m) >= Prediction.Health.GetPrediction(m, Q.CastDelay));
                    if (Q.IsCharging && minion != null)
                    {
                        Q.Cast(minion);
                    }
                    else if (minion != null)
                    {
                        Q.StartCharging();
                    }
                }
            }

            if (useW && allMinionsW != null)
            {
                var objAiMinions = allMinionsW as Obj_AI_Minion[] ?? allMinionsW.ToArray();
                var Wpos         = EntityManager.MinionsAndMonsters.GetCircularFarmLocation(objAiMinions.ToArray(), W.Width, (int)W.Range, W.CastDelay, W.Speed);
                var useWi        = LaneClearMenu.combobox(W.Slot + "mode");

                if (useWi == 0 || useWi == 2)
                {
                    var locW = Wpos.CastPosition;
                    if (Wpos.HitNumber >= 1)
                    {
                        W.Cast(locW);
                    }
                }

                if (useWi == 1 || useWi == 2)
                {
                    var minion = objAiMinions.FirstOrDefault(m => W.GetDamage(m) >= Prediction.Health.GetPrediction(m, W.CastDelay));
                    if (minion != null)
                    {
                        W.Cast(minion);
                    }
                }
            }

            if (useE)
            {
                var useEi = LaneClearMenu.combobox(E.Slot + "mode");
                foreach (var minion in EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m != null && m.IsKillable(E.Range)))
                {
                    if (minion != null && (useEi == 0 || useEi == 2))
                    {
                        E.Cast(minion);
                    }

                    if (minion != null && (useEi == 1 || useEi == 2))
                    {
                        if (E.GetDamage(minion) >= Prediction.Health.GetPrediction(minion, E.CastDelay))
                        {
                            E.Cast(minion);
                        }
                    }
                }
            }
        }