Esempio n. 1
0
        public override void Execute()
        {
            if (Orbwalker.IsAutoAttacking || Me.Dashing())
            {
                return;
            }

            var canUseQ = FarmMenu.GetCheckBoxValue(Q, "last");
            var canUseE = FarmMenu.GetCheckBoxValue(E, "last");

            if (canUseQ && Me.CountEnemiesInRange(1200) >= 1 ? HasQ3() : Q.IsReady())
            {
                var minionQ =
                    EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Q.Range)).OrderBy(m => m.Health)
                    .FirstOrDefault(
                        m =>
                        Prediction.Health.GetPrediction(m,
                                                        Q.CastDelay + (E.IsReady() ? EDelay : 0) + Game.Ping) <=
                        m.GetQDamage() + (E.IsReady() ? m.GetEDamage() : 0f));

                Q.CastMinimumHitchance(minionQ, 10);
            }

            if (canUseE)
            {
                var minionE =
                    EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderBy(m => m.Health)
                    .FirstOrDefault(
                        m =>
                        Prediction.Health.GetPrediction(m, EDelay + Game.Ping) <= m.GetEDamage());
                minionE.CastE();
            }
        }
Esempio n. 2
0
        public override void Execute()
        {
            var minions =
                EntityManager.MinionsAndMonsters.Monsters.FirstOrDefault(
                    m => m.IsValidTarget(1000) && !m.BaseSkinName.Contains("Mini"));

            if (minions == null)
            {
                return;
            }
            if (FarmMenu.GetCheckBoxValue(Q, "jungleclear") && Q.IsReady() && minions.IsValidTarget(Q.Range))
            {
                Q.CastMinimumHitchance(minions, 5);
            }

            if (FarmMenu.GetCheckBoxValue(W, "jungleclear") && W.IsReady() && minions.IsValidTarget(Me.AttackRange + 50))
            {
                W.Cast();
            }

            if (FarmMenu.GetCheckBoxValue(E, "jungleclear") && E.IsReady() && minions.IsValidTarget(E.Range) &&
                minions.IsInRange(Me, E.Range + 50))
            {
                E.Cast();
            }
        }
Esempio n. 3
0
        public override void Execute()
        {
            if (Orbwalker.IsAutoAttacking)
            {
                return;
            }

            if (FarmMenu.GetCheckBoxValue(Q, "jungle"))
            {
                Q.SmartCast();
            }

            if (FarmMenu.GetCheckBoxValue(E, "jungle") && !EManager.IsNearWallJump())
            {
                E.SmartCast();
            }
        }
Esempio n. 4
0
        public override void Execute()
        {
            if (Orbwalker.IsAutoAttacking)
            {
                return;
            }

            var canUseQ = FarmMenu.GetCheckBoxValue(Q, "lane");
            var canUseE = FarmMenu.GetCheckBoxValue(E, "lane");

            //Normal Laneclear(safer)
            if (Me.CountEnemyChampionsInRange(1200) >= 1)
            {
                if (!Me.Dashing() && !HasQ3())
                {
                    if (canUseQ)
                    {
                        var minionQ =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Q.Range)).OrderBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m,
                                                                Q.CastDelay + (E.IsReady() ? EDelay : 0) + Game.Ping) <=
                                m.GetQDamage() + (E.IsReady() ? m.GetEDamage() : 0f));

                        if (!HasQ3())
                        {
                            Q.SmartCast(minionQ);
                        }
                    }

                    if (canUseE)
                    {
                        var minionE =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m, EDelay + Game.Ping) <= m.GetEDamage());
                        minionE.CastE();
                    }
                }
            }
            //Faster Laneclear(faster, not safe)
            else
            {
                if (!Me.Dashing())
                {
                    if (canUseQ)
                    {
                        var minionQ =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Q.Range)).OrderBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m,
                                                                Q.CastDelay + (E.IsReady() ? EDelay : 0) + Game.Ping) <=
                                m.GetQDamage() + (E.IsReady() && m.IsSafeToE() ? m.GetEDamage() : 0f));

                        Q.SmartCast(minionQ);
                    }
                    if (canUseE)
                    {
                        var minionE =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderByDescending(
                                m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange)).ThenBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m, EDelay + Game.Ping) <= m.GetEDamage());
                        minionE.CastE();
                    }
                }

                if (Me.CountAllyMinionsInRange(700) >= 5)
                {
                    if (canUseE)
                    {
                        //Fast
                        var minionEKinda =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderByDescending(
                                m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange)).ThenBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange) >= 1 &&
                                Prediction.Health.GetPrediction(m, +EDelay + Game.Ping) <= m.GetEDamage());

                        minionEKinda.CastE();
                    }
                    if (canUseQ)
                    {
                        //Fast
                        var minionQFast =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Me.Dashing() ? QCircleRange : (int)Q.Range)).OrderBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                DashManager.GetPlayerPosition().CountEnemyMinionsInRange(QCircleRange) >= 1);
                        Q.SmartCast(minionQFast);
                    }
                }

                if (Me.CountAllyMinionsInRange(700) <= 1)
                {
                    if (canUseE)
                    {
                        //Fast
                        var minionEFast =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderByDescending(
                                m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange)).ThenBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange) >= 1);

                        minionEFast.CastE();
                    }
                    if (canUseQ)
                    {
                        var minionQFast =
                            EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Me.Dashing() ? QCircleRange : (int)Q.Range)).OrderBy(m => m.Health)
                            .FirstOrDefault(
                                m =>
                                DashManager.GetPlayerPosition().CountEnemyMinionsInRange(QCircleRange) >= 1);
                        Q.SmartCast(minionQFast);
                        //Fast
                    }
                }
            }
        }