public override void Execute()
        {
            var jgminion =
                EntityManager.MinionsAndMonsters.GetJungleMonsters()
                .OrderByDescending(j => j.Health)
                .FirstOrDefault(j => j.IsValidTarget(E.Range));

            if (jgminion == null)
            {
                return;
            }

            var minionE =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(
                    m =>
                    m.IsValidTarget(E.Range) &&
                    Prediction.Health.GetPrediction(m, E.CastDelay) <= SpellDamage.GetRealDamage(SpellSlot.E, m) &&
                    Prediction.Health.GetPrediction(m, E.CastDelay) > 10);

            if (minionE != null)
            {
                E.Cast(minionE);
            }

            if (Q.IsReady() && jgminion.IsValidTarget(Q.Range) && Settings.UseQ && Player.Instance.IsFacing(jgminion) &&
                Player.Instance.Mana <= 60)
            {
                Q.Cast();
            }
        }
示例#2
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(E.Range));

            if (minion == null)
            {
                return;
            }

            if (E.IsReady() && minion.IsValidTarget(E.Range) && Settings.UseE)
            {
                var minionE =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(E.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.E, m));

                if (minionE != null)
                {
                    E.Cast(minionE);
                }
            }
        }
示例#3
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            //if (minion == null || Settings.ManaLast >= Player.Instance.ManaPercent) return;

            if (E.IsReady() && minion.IsValidTarget(E.Range) && Settings.UseE && Settings.LastMana < Player.Instance.ManaPercent)
            {
                var minionE =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(E.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.E, m));
                if (minionE != null)
                {
                    E.Cast(minion);
                }
            }

            if (Q.IsReady() && minion.IsValidTarget(Q.Range) && Settings.UseQ && Settings.LastMana < Player.Instance.ManaPercent)
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(E.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));
                if (minionQ != null)
                {
                    Q.Cast(minion);
                }
            }
        }
示例#4
0
        public override void Execute()
        {
            if (Q.IsReady() && Settings.UseQ && Player.Instance.ManaPercent >= Settings.ManaLane)
            {
                var minionq =
                    EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault(
                        m => m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));

                if (minionq != null)
                {
                    Q.Cast(minionq);
                }
            }

            if (EventsManager.CanW && Settings.UseW && Player.Instance.ManaPercent >= Settings.ManaLane)
            {
                var minionw =
                    EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault(
                        m => m.IsValidTarget(Player.Instance.GetAutoAttackRange()));

                if (minionw != null)
                {
                    W.Cast();
                }
            }
        }
示例#5
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            if (minion == null)
            {
                return;
            }

            if (Settings.UseQ && Q.IsReady())
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .FirstOrDefault(
                        m =>
                        m.IsValidTarget(Q.Range) && m.IsEnemy &&
                        m.Health < SpellDamage.GetRealDamage(SpellSlot.Q, m));
                if (minionQ != null)
                {
                    Q.Cast(minionQ);
                }
            }
        }
示例#6
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            if (minion == null)
            {
                return;
            }


            //TODO TEST THIS CODE
            if (E.IsReady() && minion.IsValidTarget(E.Range) && Settings.UseE)
            {
                var minions =
                    EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy,
                                                                    Player.Instance.ServerPosition, E.Range, false).ToArray();
                if (minions.Length == 0)
                {
                    return;
                }

                var farmLocation = EntityManager.MinionsAndMonsters.GetCircularFarmLocation(minions, W.Range,
                                                                                            (int)E.Range);

                if (farmLocation.HitNumber >= 3)
                {
                    E.Cast(farmLocation.CastPosition);
                }
            }

            if (W.IsReady() && minion.IsValidTarget(W.Range) && Settings.UseW)
            {
                var minionW =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(E.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.W, m));
                if (minionW != null)
                {
                    W.Cast();
                }
            }

            if (Q.IsReady() && minion.IsValidTarget(Q.Range) && Settings.UseQ)
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(E.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));
                if (minionQ != null)
                {
                    Q.Cast(minion);
                }
            }
        }
示例#7
0
        public override void Execute()
        {
            if (Settings.UseR && R.IsReady())
            {
                var hero =
                    EntityManager.Heroes.Enemies.OrderByDescending(e => e.Distance(Player.Instance)).FirstOrDefault(
                        e => e.IsVisible && e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Knockup) ||
                        e.HasBuffOfType(BuffType.Snare));

                if (hero != null)
                {
                    R.Cast(hero);
                }

                var target = TargetSelector.GetTarget(Settings.maxR, DamageType.Physical);
                if (target == null || target.IsZombie)
                {
                    return;
                }

                if (!target.IsInRange(Player.Instance, Settings.minR) &&
                    target.Health <= SpellDamage.GetRealDamage(SpellSlot.R, target) &&
                    target.Health >= Settings.MinHealthR)
                {
                    R.Cast(target);
                }
            }

            if (Configs.UseQ && Q.IsReady() && Configs.ManaAutoHarass <= Player.Instance.ManaPercent)
            {
                var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (target == null || target.IsZombie)
                {
                    return;
                }

                if (target.IsValidTarget(Q.Range))
                {
                    Q.Cast(target);
                }
            }

            if (Configs.UseW && W.IsReady() && Configs.ManaAutoHarass <= Player.Instance.ManaPercent)
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                if (target == null || target.IsZombie)
                {
                    return;
                }

                if (target.IsValidTarget(W.Range))
                {
                    W.Cast(target);
                }
            }
        }
示例#8
0
        public override void Execute()
        {
            if (Player.Instance.CanAttack && Settings.UseAA)
            {
                var targetAutoAttack = TargetSelector.GetTarget(Player.Instance.AttackRange * 2, DamageType.Physical);
                if (targetAutoAttack != null)
                {
                    if (targetAutoAttack.HasBuff("caitlynyordletrapinternal"))
                    {
                        Player.IssueOrder(GameObjectOrder.AttackUnit, targetAutoAttack);
                    }
                }
            }

            if (Settings.UseQCC && Q.IsReady())
            {
                var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

                if (target != null)
                {
                    if (target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Snare) ||
                        target.HasBuffOfType(BuffType.Knockup))
                    {
                        Q.Cast(target);
                    }
                }
            }

            if (Settings.UseWCC && _lastW + 1500 > Environment.TickCount && W.IsReady())
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                if (target != null)
                {
                    if (target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Snare) ||
                        target.HasBuffOfType(BuffType.Knockup))
                    {
                        W.Cast(target);
                        _lastW = Environment.TickCount;
                    }
                }
            }

            if (R.IsReady() && Settings.KeyR)
            {
                var targetR = TargetSelector.GetTarget(SpellManager.R.Range, DamageType.Physical);
                if (targetR != null)
                {
                    if (targetR.IsValidTarget(R.Range) &&
                        targetR.Health < SpellDamage.GetRealDamage(SpellSlot.R, targetR))
                    {
                        R.Cast(targetR);
                    }
                }
            }
        }
示例#9
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(E.Range, DamageType.Magical);

            if (target != null && !target.IsZombie && !target.HasUndyingBuff())
            {
                if (E.IsReady() && target.IsValidTarget(E.Range) && Settings.UseE &&
                    (Functions.ShouldOverload(SpellSlot.E) || Player.Instance.Mana < 80))
                {
                    var pred = E.GetPrediction(target);
                    if (pred.HitChance >= HitChance.Medium)
                    {
                        E.Cast(E.GetPrediction(target).CastPosition);
                    }
                }

                if (Player.Instance.Spellbook.GetSpell(SpellSlot.E).ToggleState == 1)
                {
                    var pred = E.GetPrediction(target);
                    if (pred.HitChance >= HitChance.Medium)
                    {
                        E.Cast(E.GetPrediction(target).CastPosition);
                    }
                }

                if (Q.IsReady() && target.IsValidTarget(Q.Range) && Settings.UseQ && Player.Instance.IsFacing(target) &&
                    (Functions.ShouldOverload(SpellSlot.Q) || Player.Instance.Mana < 80))
                {
                    Q.Cast();
                }
            }


            var targetR = TargetSelector.GetTarget(R.Range, DamageType.Magical);

            if (targetR == null || targetR.IsZombie || targetR.HasUndyingBuff())
            {
                return;
            }

            if (R.IsReady() && targetR.IsValidTarget(R.Range) && Settings.UseR &&
                !targetR.IsInRange(Player.Instance, E.Range) && !targetR.IsFacing(Player.Instance))
            {
                if (Settings.UseRKillable &&
                    Prediction.Health.GetPrediction(targetR, R.CastDelay) <=
                    SpellDamage.GetRealDamage(SpellSlot.R, targetR))
                {
                    Functions.CastR(targetR, Settings.MinR);
                }
                else
                {
                    Functions.CastR(targetR, Settings.MinR);
                }
            }
        }
示例#10
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (target == null || target.IsZombie || target.HasUndyingBuff())
            {
                return;
            }
            //RKS
            if (SpellManager.R.IsReady() && target.IsValidTarget(R.Range) &&
                Prediction.Health.GetPrediction(target, R.CastDelay) <= SpellDamage.GetRealDamage(SpellSlot.R, target) && Prediction.Health.GetPrediction(target, R.CastDelay) > Misc.OverkillR)
            {
                R.Cast(target);
            }
            //RKS
            //AutoHarass
            var tower = EntityManager.Turrets.Allies.FirstOrDefault(t => t.IsInRange(Player.Instance, 920));

            if (tower == null && Settings.KeyAutoHarass)
            {
                if (Q.IsReady() && E.IsReady() && target.IsValidTarget(QE.Range) && Settings.UseAutoQ && Settings.UseAutoE && Player.Instance.ManaPercent > Settings.ManaAutoHarass)
                {
                    Functions.QE(QE.GetPrediction(target).CastPosition);
                }
                else
                {
                    if (Q.IsReady() && target.IsValidTarget(Q.Range) && Settings.UseAutoQ && Player.Instance.ManaPercent > Settings.ManaAutoHarass)
                    {
                        Q.Cast(target);
                    }

                    if (E.IsReady() && target.IsValidTarget(E.Range) && Settings.UseAutoE && Player.Instance.ManaPercent > Settings.ManaAutoHarass)
                    {
                        E.Cast(target);
                    }
                }

                if (W.IsReady() && target.IsValidTarget(W.Range) && Settings.UseAutoE && Player.Instance.ManaPercent > Settings.ManaAutoHarass)
                {
                    if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).ToggleState != 2 && lastWCast + 1000 < Environment.TickCount)
                    {
                        W.Cast(Functions.GrabWPost(false));
                        lastWCast = Environment.TickCount;
                    }
                    if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).ToggleState == 2 &&
                        lastWCast + 500 < Environment.TickCount)
                    {
                        W.Cast(W.GetPrediction(target).CastPosition);
                    }
                }
            }
        }
示例#11
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(R.Range, DamageType.Magical);

            if (target == null || target.IsZombie)
            {
                return;
            }

            if (R.IsReady() && target.IsValidTarget(R.Range) && target.Health <= SpellDamage.GetRealDamage(SpellSlot.R, target))
            {
                R.Cast(target);
            }
        }
示例#12
0
        public override void Execute()
        {
            if (Q.IsReady() && Settings.UseQ && Player.Instance.ManaPercent >= Settings.LastMana)
            {
                var minionq =
                    EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault(
                        m => m.IsValidTarget(Q.Range) && m.Health < SpellDamage.GetRealDamage(SpellSlot.Q, m));

                if (minionq != null)
                {
                    Q.Cast(minionq);
                }
            }
        }
示例#13
0
        public override void Execute()
        {
            var enemy =
                EntityManager.Heroes.Enemies.FirstOrDefault(
                    e =>
                    e.Health <=
                    SpellDamage.GetRealDamage(SpellSlot.Q, e) + SpellDamage.GetRealDamage(SpellSlot.W, e));

            if (W.IsReady() && Q.IsReady() && Settings.QWKillSteal &&
                Player.Instance.ManaPercent >= Settings.KillStealMana && enemy.IsValidTarget(Q.Range))
            {
                W.Cast();
                Q.Cast(enemy);
            }
        }
示例#14
0
        public override void Execute()
        {
            var laneMinion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .FirstOrDefault(m => m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));

            if (laneMinion == null)
            {
                return;
            }

            if (Settings.UseQ && Q.IsReady() && Settings.LastMana <= Player.Instance.ManaPercent && !Player.Instance.IsInAutoAttackRange(laneMinion))
            {
                Q.Cast(laneMinion);
            }
        }
示例#15
0
        public override void Execute()
        {
            if (Q.IsReady() && Settings.UseQ)
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));

                if (minionQ != null && !Player.Instance.IsInAutoAttackRange(minionQ) && Player.Instance.ManaPercent > Settings.LastMana)
                {
                    Q.Cast(minionQ);
                }
            }
        }
示例#16
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(QE.Range, DamageType.Magical);

            if (target == null || target.IsZombie || target.HasUndyingBuff())
            {
                return;
            }

            if (R.IsReady() && target.IsValidTarget(R.Range) && Settings.UseR &&
                target.Health <= SpellDamage.GetRealDamage(SpellSlot.R, target) && target.Health > Misc.OverkillR)
            {
                R.Cast(target);
            }

            if (Q.IsReady() && E.IsReady() && target.IsValidTarget(QE.Range) && Settings.UseQ && Settings.UseE)
            {
                Functions.QE(QE.GetPrediction(target).CastPosition);
            }
            else
            {
                if (Q.IsReady() && target.IsValidTarget(Q.Range) && Settings.UseQ)
                {
                    Q.Cast(target);
                }

                if (E.IsReady() && target.IsValidTarget(E.Range) && Settings.UseE)
                {
                    E.Cast(target);
                }
            }

            if (W.IsReady() && target.IsValidTarget(W.Range) && Settings.UseW)
            {
                if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).ToggleState != 2 &&
                    lastWCast + 650 < Environment.TickCount)
                {
                    W.Cast(Functions.GrabWPost(false));
                    lastWCast = Environment.TickCount;
                }
                if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).ToggleState == 2 &&
                    lastWCast + 300 < Environment.TickCount)
                {
                    W.Cast(W.GetPrediction(target).CastPosition);
                }
            }
        }
示例#17
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            if (minion == null)
            {
                return;
            }

            if (W.IsReady() && Settings.UseW)
            {
                W.Cast(Player.Instance.Position.Extend(minion.Position, W.Range).To3D());
            }

            if (E.IsReady() && minion.IsValidTarget(E.Range) && Settings.UseE)
            {
                var minionE =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(E.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.E, m));

                if (minionE != null)
                {
                    E.Cast(minionE);
                }
            }

            if (Q.IsReady() && minion.IsValidTarget(Q.Range) && Settings.UseQ)
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m => m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));

                if (minionQ != null)
                {
                    Q.Cast(minionQ);
                }
            }
        }
示例#18
0
        public override void Execute()
        {
            var laneMinion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(
                    m => m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m));

            if (laneMinion == null && Orbwalker.IsAutoAttacking)
            {
                return;
            }

            if (Settings.UseQ && Q.IsReady() && Settings.ManaLane <= Player.Instance.ManaPercent)
            {
                Q.Cast(laneMinion);
            }
        }
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            if (minion == null)
            {
                return;
            }

            if (Q.IsReady() && minion.IsValidTarget(Q.Range) && Settings.UseQ)
            {
                Q.Cast(minion);
            }

            var minions =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .Where(
                    m =>
                    m.Health <= SpellDamage.GetRealDamage(SpellSlot.E, m) && m.IsEnemy &&
                    m.IsValidTarget(E.Range))
                .ToArray();

            if (minions.Length == 0)
            {
                return;
            }

            var farmLocation = Prediction.Position.PredictCircularMissileAoe(minions, E.Range, E.Width,
                                                                             E.CastDelay, E.Speed).OrderByDescending(r => r.GetCollisionObjects <Obj_AI_Minion>().Length).FirstOrDefault();

            if (farmLocation != null && Settings.UseE && Settings.LastMana <= Player.Instance.ManaPercent)
            {
                var predictedMinion = farmLocation.GetCollisionObjects <Obj_AI_Minion>();
                if (predictedMinion.Length >= Settings.ECount)
                {
                    E.Cast(farmLocation.CastPosition);
                    PermaActive.CastedE = true;
                }
            }
        }
示例#20
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .FirstOrDefault(
                    m =>
                    m.IsValidTarget(Q.Range) && !m.IsInRange(Player.Instance, Player.Instance.AttackRange) &&
                    (m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m)));

            if (minion == null)
            {
                return;
            }

            if (Q.IsReady() && Settings.UseQ)
            {
                Q.Cast(minion);
            }
        }
示例#21
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            if (minion == null)
            {
                return;
            }

            if (Q.IsReady() && minion.IsValidTarget(Q.Range) && Settings.UseQ)
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m =>
                        m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.Q, m) &&
                        m.CountEnemiesInRange(400) >= 1);
                if (minionQ != null)
                {
                    Q.Cast(minion);
                }
            }

            if (EventsManager.CanW && minion.IsValidTarget(W.Range) && Settings.UseW)
            {
                var minionW =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .OrderByDescending(m => m.Health)
                    .FirstOrDefault(
                        m =>
                        m.IsValidTarget(Q.Range) && m.Health <= SpellDamage.GetRealDamage(SpellSlot.W, m) + Player.Instance.GetAutoAttackDamage(m) &&
                        m.CountEnemiesInRange(400) >= 1);
                if (minionW != null)
                {
                    W.Cast();
                }
            }
        }
示例#22
0
        public override void Execute()
        {
            var minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(m => m.IsValidTarget(Q.Range));

            if (minion == null)
            {
                return;
            }

            if (Settings.UseQ && Q.IsReady())
            {
                var minionQ =
                    EntityManager.MinionsAndMonsters.GetLaneMinions()
                    .FirstOrDefault(
                        m =>
                        m.IsValidTarget(Q.Range) && m.IsEnemy &&
                        m.Health < SpellDamage.GetRealDamage(SpellSlot.Q, m));
                if (minionQ != null)
                {
                    Q.Cast(minionQ);
                }
            }
            if (Settings.UseW && W.IsReady() && minion.IsValidTarget(W.Range) &&
                !Player.Instance.HasBuff("burningagony"))
            {
                {
                    W.Cast();
                }
            }
            if (Settings.UseE && E.IsReady() && minion.IsValidTarget(E.Range))
            {
                {
                    E.Cast();
                }
            }
        }
示例#23
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(R.Range, DamageType.Physical);

            if (target == null || target.IsZombie)
            {
                return;
            }

            if (R.IsReady() && Settings.UseR)
            {
                var stacks = target.GetBuffCount("tristanaecharge");
                if (stacks > 0)
                {
                    if (target.Health <= (SpellDamage.GetRealDamage(SpellSlot.E, target) * ((0.3 * stacks) + 1) +
                                          SpellDamage.GetRealDamage(SpellSlot.R, target)))
                    {
                        R.Cast(target);
                    }
                }
            }

            if (R.IsReady() && Settings.UseR)
            {
                if (target.Health <= (SpellDamage.GetRealDamage(SpellSlot.R, target)) && target.Health > Player.Instance.TotalAttackDamage)
                {
                    R.Cast(target);
                }
            }

            if (R.IsReady() /* && Settings.UseRTower*/)
            {
                if (target.RPos().AllyTower())
                {
                    R.Cast(target);
                }
            }
        }
示例#24
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(R.Range, DamageType.Magical);

            if (target == null || target.IsZombie)
            {
                return;
            }

            //Passive Follow target
            if (Player.Instance.IsDead)
            {
                Player.IssueOrder(GameObjectOrder.MoveTo, target);
            }
            //Passive Follow target

            //R KS
            if (R.IsReady() && target.IsValidTarget(R.Range) && target.Health <= SpellDamage.GetRealDamage(SpellSlot.R, target))
            {
                R.Cast(target);
            }
            //R KS
        }
示例#25
0
        public override void Execute()
        {
            if (CastedE)
            {
                if (Player.Instance.Spellbook.GetSpell(SpellSlot.E).ToggleState == 2 || Player.Instance.Spellbook.GetSpell(SpellSlot.E).ToggleState == 1)
                {
                    E.Cast(Player.Instance);
                    CastedE = false;
                }
                else
                {
                    CastedE = false;
                }
            }

            if (R.IsReady() && Settings.KillStealR && Player.Instance.ManaPercent >= Settings.KillStealMana)
            {
                var targetR = TargetSelector.GetTarget(R.Range, DamageType.Magical);
                if (targetR != null && !targetR.IsZombie && !targetR.HasUndyingBuff() && targetR.CountAlliesInRange(1000) < 3)
                {
                    var predHealth = Prediction.Health.GetPrediction(targetR, 1000);
                    if (predHealth <= SpellDamage.GetRealDamage(SpellSlot.R, targetR) &&
                        predHealth > +targetR.CountAlliesInRange(1000) * 50)
                    {
                        if (targetR.HasBuffOfType(BuffType.Snare) || targetR.HasBuffOfType(BuffType.Stun))
                        {
                            R.Cast(targetR.Position);
                        }
                        else
                        {
                            var pred = R.GetPrediction(targetR);
                            if (pred.HitChancePercent >= 85)
                            {
                                R.Cast(pred.CastPosition);
                            }
                        }
                    }
                }
            }

            if (W.IsReady() && Settings.WDefense && Player.Instance.Mana >= Settings.WMana)
            {
                if (Player.Instance.InDanger(85))
                {
                    W.Cast(Player.Instance);
                }

                var ally = EntityManager.Heroes.Allies.FirstOrDefault(a => a.InDanger(45));
                if (ally != null)
                {
                    W.Cast(ally.Position);
                }
            }

            if (Q.IsReady() && Settings.KillStealQ && Player.Instance.ManaPercent >= Settings.KillStealMana)
            {
                var targetQ = TargetSelector.GetTarget(Q.Range, DamageType.Magical);
                if (targetQ != null && !targetQ.IsZombie && !targetQ.HasUndyingBuff())
                {
                    if (Prediction.Health.GetPrediction(targetQ, Q.CastDelay) <= SpellDamage.GetRealDamage(SpellSlot.Q, targetQ) &&
                        !targetQ.IsInAutoAttackRange(Player.Instance) && targetQ.Health > Player.Instance.GetAutoAttackDamage(targetQ))
                    {
                        Q.Cast(Q.GetPrediction(targetQ).CastPosition);
                    }
                }
            }

            if (E.IsReady() && Settings.KillStealE && Player.Instance.ManaPercent >= Settings.KillStealMana)
            {
                var targetE = TargetSelector.GetTarget(E.Range, DamageType.Magical);
                if (targetE != null && !targetE.IsZombie && !targetE.HasUndyingBuff())
                {
                    if (Prediction.Health.GetPrediction(targetE, E.CastDelay) <= SpellDamage.GetRealDamage(SpellSlot.E, targetE) &&
                        !targetE.IsInAutoAttackRange(Player.Instance) && targetE.Health > Player.Instance.GetAutoAttackDamage(targetE))
                    {
                        E.Cast(E.GetPrediction(targetE).CastPosition);
                    }
                }
            }
            //JungleSteal
            if (R.IsReady() && Settings.JungleSteal)
            {
                var targetR = TargetSelector.GetTarget(R.Range, DamageType.Magical);
                if (targetR != null)
                {
                    if (Settings.JungleStealBlue)
                    {
                        var blue =
                            EntityManager.MinionsAndMonsters.GetJungleMonsters()
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m, R.CastDelay) <=
                                SpellDamage.GetRealDamage(SpellSlot.R, m) &&
                                m.IsValidTarget(R.Range) &&
                                m.BaseSkinName == "SRU_Blue" && m.IsInRange(targetR, 1500) &&
                                Prediction.Health.GetPrediction(m, 1000) > m.CountEnemiesInRange(1000) * 60);
                        if (blue != null)
                        {
                            var pred = R.GetPrediction(blue);
                            if (pred.HitChance >= HitChance.High)
                            {
                                R.Cast(pred.CastPosition);
                            }
                        }
                    }

                    if (Settings.JungleStealRed)
                    {
                        var red =
                            EntityManager.MinionsAndMonsters.GetJungleMonsters()
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m, R.CastDelay) <
                                SpellDamage.GetRealDamage(SpellSlot.R, m) &&
                                m.IsValidTarget(R.Range) &&
                                m.BaseSkinName == "SRU_Red" && m.IsInRange(targetR, 1500) &&
                                Prediction.Health.GetPrediction(m, 1000) > m.CountEnemiesInRange(1000) * 60);
                        if (red != null)
                        {
                            var pred = R.GetPrediction(red);
                            if (pred.HitChance >= HitChance.High)
                            {
                                R.Cast(pred.CastPosition);
                            }
                        }
                    }

                    if (Settings.JungleStealDrag)
                    {
                        var drag =
                            EntityManager.MinionsAndMonsters.GetJungleMonsters()
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m, R.CastDelay) <
                                SpellDamage.GetRealDamage(SpellSlot.R, m) &&
                                m.IsValidTarget(R.Range) &&
                                m.BaseSkinName == "SRU_Dragon" && m.IsInRange(targetR, 1500) &&
                                Prediction.Health.GetPrediction(m, 1000) > m.CountEnemiesInRange(1000) * 60);

                        if (drag != null)
                        {
                            var pred = R.GetPrediction(drag);
                            if (pred.HitChance >= HitChance.High)
                            {
                                R.Cast(pred.CastPosition);
                            }
                        }
                    }

                    if (Settings.JungleStealBaron)
                    {
                        var baron =
                            EntityManager.MinionsAndMonsters.GetJungleMonsters()
                            .FirstOrDefault(
                                m =>
                                Prediction.Health.GetPrediction(m, R.CastDelay) <
                                SpellDamage.GetRealDamage(SpellSlot.R, m) &&
                                m.IsValidTarget(R.Range) &&
                                m.BaseSkinName == "SRU_Baron" && m.IsInRange(targetR, 1500) &&
                                Prediction.Health.GetPrediction(m, 1000) > m.CountEnemiesInRange(1000) * 60);

                        if (baron != null)
                        {
                            var pred = R.GetPrediction(baron);
                            if (pred.HitChance >= HitChance.High)
                            {
                                R.Cast(pred.CastPosition);
                            }
                        }
                    }
                }
            }
        }
示例#26
0
文件: Combo.cs 项目: Taazuma/EB-T
        public static void Execute()
        {
            var target = TargetSelector.GetTarget(1700, DamageType.Magical);

            if (target == null || target.IsInvulnerable || target.MagicImmune)
            {
                return;
            }


            Core.DelayAction(delegate
            {
                if (target.IsValidTarget(E.Range) && E.IsReady() && ComboMenu.GetCheckBoxValue("eUse") && (Hitch.ShouldOverload(SpellSlot.E) || Player.Instance.Mana < 80))
                {
                    E.Cast(target.Position);
                }
            }, Edelay);

            Core.DelayAction(delegate
            {
                if (Player.Instance.Spellbook.GetSpell(SpellSlot.E).ToggleState == 1)
                {
                    E.Cast(target.Position);
                }
            }, Edelay);

            if (target.IsValidTarget(Q.Range) && Q.IsReady() && ComboMenu.GetCheckBoxValue("qUse") && Player.Instance.IsFacing(target) && (Hitch.ShouldOverload(SpellSlot.Q) || Player.Instance.Mana < 80))
            {
                Q.Cast();
            }

            if (W.IsReady() && ComboMenu.GetCheckBoxValue("wUse"))
            {
                W.Cast();
            }

            var targetR = TargetSelector.GetTarget(R.Range, DamageType.Magical);

            if (targetR == null || targetR.IsZombie || targetR.HasUndyingBuff())
            {
                return;
            }

            if (ComboMenu["rlog"].Cast <ComboBox>().CurrentValue == 0 && R.IsReady())
            {
                if (targetR.IsMoving)
                {
                    if (targetR.IsValidTarget(R.Range + 300))
                    {
                        R.Cast(target.Position - target.MoveSpeed);
                    }
                    else
                    {
                        R.Cast(target.Position - target.MoveSpeed / 2);
                    }
                }

                else if (R.IsReady() && targetR.IsValidTarget(R.Range + Q.Range) && ComboMenu["rlog"].Cast <ComboBox>().CurrentValue == 1 && !targetR.IsInRange(Player.Instance, E.Range) && !targetR.IsFacing(Player.Instance))
                {
                    if (ComboMenu.GetCheckBoxValue("rUse") && Prediction.Health.GetPrediction(targetR, R.CastDelay) <=
                        SpellDamage.GetRealDamage(SpellSlot.R, targetR))
                    {
                        Hitch.CastR(targetR, MiscMenu.GetSliderValue("minR"));
                    }
                    else
                    {
                        Hitch.CastR(targetR, MiscMenu.GetSliderValue("minR"));
                    }
                }

                else if (ComboMenu["rlog"].Cast <ComboBox>().CurrentValue == 2 && R.IsReady())
                {
                    if (targetR.IsValidTarget(R.Range + Q.Range))
                    {
                        var predr = R.GetPrediction(targetR);
                        if (predr.HitChance >= HitChance.High)
                        {
                            R.Cast(predr.CastPosition - 40);
                        }
                    }
                    else
                    {
                        var predictedHealth = Prediction.Health.GetPrediction(targetR, R.CastDelay + Game.Ping);
                        var predr           = R.GetPrediction(targetR);
                        var rDamage         = targetR.GetDamage(SpellSlot.R);
                        if (predictedHealth <= rDamage)
                        {
                            R.Cast(predr.CastPosition);
                        }
                    }
                }
            }
        }
示例#27
0
        public override void Execute()
        {
            var laneMinion =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .OrderByDescending(m => m.Health)
                .FirstOrDefault(
                    m => m.IsValidTarget(Q.Range) && Prediction.Health.GetPrediction(m, Q.CastDelay) <= SpellDamage.GetRealDamage(SpellSlot.Q, m) &&
                    Prediction.Health.GetPrediction(m, Q.CastDelay) > Player.Instance.GetAutoAttackDamage(m));

            if (laneMinion == null)
            {
                return;
            }

            if (Settings.UseQ && Q.IsReady() && Settings.LaneMana <= Player.Instance.ManaPercent)
            {
                Q.Cast(laneMinion);
            }
        }
示例#28
0
        public override void Execute()
        {
            var jgminion =
                EntityManager.MinionsAndMonsters.GetJungleMonsters()
                .OrderByDescending(j => j.Health)
                .FirstOrDefault(j => j.IsValidTarget(Q.Range));

            if (jgminion == null)
            {
                return;
            }

            if (Q.IsReady() && jgminion.IsValidTarget(Q.Range) && Settings.UseQ)
            {
                Q.Cast();
            }

            if (E.IsReady() && jgminion.IsValidTarget(E.Range) && Settings.UseE)
            {
                E.Cast();
            }

            if (W.IsReady() && jgminion.IsValidTarget(W.Range) && Settings.UseW && jgminion.Health <= SpellDamage.GetRealDamage(SpellSlot.W, jgminion))
            {
                W.Cast(jgminion);
            }
        }
示例#29
0
        public override void Execute()
        {
            var target = TargetSelector.GetTarget(E.Range, DamageType.Physical);

            if (target == null || target.IsZombie)
            {
                return;
            }

            if (E.IsReady() && target.IsValidTarget(E.Range) && Settings.UseE)
            {
                E.Cast(target);
            }

            if (Q.IsReady() && target.IsValidTarget(Q.Range) && Settings.UseQ)
            {
                Q.Cast();
            }

            if (W.IsReady() && target.IsValidTarget(W.Range) && Settings.UseW)
            {
                W.Cast();
            }

            if (R.IsReady() && target.IsValidTarget(R.Range) && Settings.UseR && target.Health < SpellDamage.GetRealDamage(SpellSlot.R, target))
            {
                R.Cast(target);
            }
        }
示例#30
0
        public override void Execute()
        {
            CheckUlt();
            var target = TargetSelector.GetTarget(SpellManager.Q.Range, DamageType.Magical);

            if (target == null)
            {
                return;
            }

            var qDamage = SpellDamage.GetRealDamage(SpellSlot.Q, target);
            var wDamage = SpellDamage.GetRealDamage(SpellSlot.W, target);
            var eDamage = SpellDamage.GetRealDamage(SpellSlot.E, target);

            //Simple KS
            if (SpellManager.Q.IsReady() && target.IsValidTarget(SpellManager.Q.Range) && target.Health <= qDamage &&
                Settings.UseQ)
            {
                SpellManager.Q.Cast(target);
            }

            if (SpellManager.E.IsReady() && target.IsValidTarget(SpellManager.E.Range) && target.Health <= eDamage &&
                Settings.UseE)
            {
                SpellManager.E.Cast(target);
            }

            if (SpellManager.W.IsReady() && target.IsValidTarget(SpellManager.W.Range) && target.Health <= wDamage &&
                Settings.UseW)
            {
                SpellManager.W.Cast();
            }

            //Smart KS

            //Q+W+Qmark
            if (SpellManager.Q.IsReady() && SpellManager.W.IsReady() && target.IsValidTarget(SpellManager.W.Range) &&
                target.Health <= (qDamage + wDamage + dmgQstack(target)) &&
                Settings.UseQ && Settings.UseW)
            {
                SpellManager.Q.Cast(target);
            }

            if (SpellManager.W.IsReady() && target.IsValidTarget(SpellManager.W.Range) &&
                target.HasBuff("KatarinaQMark") &&
                target.Health <= (wDamage + dmgQstack(target)) && Settings.UseW)
            {
                SpellManager.W.Cast();
            }
            //Q+W+Qmark

            //E+W
            if (SpellManager.E.IsReady() && SpellManager.W.IsReady() && target.IsValidTarget(SpellManager.E.Range) &&
                target.Health <= (eDamage + wDamage) &&
                target.CountEnemiesInRange(SpellManager.R.Range) <= 2 && Settings.UseE && Settings.UseW)
            {
                SpellManager.E.Cast(target);
            }
            //E+W

            //E+W+Q
            if (SpellManager.E.IsReady() && SpellManager.W.IsReady() && SpellManager.Q.IsReady() &&
                target.IsValidTarget(SpellManager.E.Range) &&
                target.Health <=
                (eDamage + wDamage + qDamage) &&
                target.CountEnemiesInRange(SpellManager.R.Range) <= 2 && Settings.UseQ && Settings.UseW && Settings.UseE)
            {
                SpellManager.E.Cast(target);
                SpellManager.W.Cast();
                SpellManager.Q.Cast(target);
            }
            //E+W+Q
        }