예제 #1
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseQ && Q.IsReady() && AxeCount < 2 && !Orbwalker.CanAttack())// TODO !Me.Spellbook.IsAutoAttacking)
                {
                    var minions = MinionManager.GetMinions(Me.Position, 600);

                    if (minions.Any() && minions.Count >= 2)
                    {
                        Q.Cast();
                    }
                }

                if (LaneClearOption.UseE && E.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, E.Range);

                    if (minions.Any())
                    {
                        var eFarm = E.GetLineFarmLocation(minions, E.Width);

                        if (eFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearECount"))
                        {
                            E.Cast(eFarm.Position);
                        }
                    }
                }
            }
        }
예제 #2
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                var minions = MinionManager.GetMinions(Me.Position, E.Range);

                if (minions.Any())
                {
                    if (LaneClearOption.UseE && E.IsReady())
                    {
                        var eFarm =
                            MinionManager.GetBestCircularFarmLocation(minions.Select(x => x.Position.To2D()).ToList(),
                                                                      E.Width, E.Range);

                        if (eFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearECount"))
                        {
                            E.Cast(eFarm.Position);
                        }
                    }

                    if (LaneClearOption.UseQ && Q.IsReady() && minions.Count > 2)
                    {
                        Q.Cast(minions.FirstOrDefault());
                    }
                }
            }
        }
예제 #3
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) && x.IsMinion()).ToList();

                    if (minions.Any())
                    {
                        var qFarm = Q.GetLineFarmLocation(minions, 60);

                        if (qFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                        {
                            Q.Cast(qFarm.Position);
                        }
                    }
                }

                if (LaneClearOption.UseW && W.IsReady())
                {
                    var minions =
                        GameObjects.EnemyMinions.Where(
                            x => x.IsValidTarget(Me.AttackRange + Me.BoundingRadius + 80) && x.IsMinion()).ToList();

                    if (minions.Any())
                    {
                        var wFarm = FarmPrediction.GetBestCircularFarmLocation(minions.Select(x => x.Position.ToVector2()).ToList(),
                                                                               Me.AttackRange + Me.BoundingRadius + 80, 280);

                        if (LaneClearOption.GetBool("LaneClearWRed").Enabled&& wFarm.MinionsHit >= 3)
                        {
                            var min = minions.FirstOrDefault(x => x.Distance(wFarm.Position) <= 80);

                            if (min != null)
                            {
                                HumanizerCardSelect.StartSelecting(HumanizerCards.Red);

                                Orbwalker.ForceTarget = min;
                                LastForcusTime        = Variables.GameTimeTickCount;
                            }
                        }
                        else if (LaneClearOption.GetBool("LaneClearWBlue").Enabled)
                        {
                            var min = minions.FirstOrDefault(x => x.Health < Me.GetSpellDamage(x, SpellSlot.W) + Me.GetAutoAttackDamage(x));

                            if (min != null && min.InAutoAttackRange())
                            {
                                HumanizerCardSelect.StartSelecting(HumanizerCards.Blue);

                                Orbwalker.ForceTarget = min;
                                LastForcusTime        = Variables.GameTimeTickCount;
                            }
                        }
                    }
                }
            }
        }
예제 #4
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var qMinions = MinionManager.GetMinions(Me.Position, 1600f);

                    if (qMinions.Any())
                    {
                        var qFarm =
                            MinionManager.GetBestLineFarmLocation(qMinions.Select(x => x.Position.To2D()).ToList(),
                                                                  Q.Width, 1600f);

                        if (qFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount"))
                        {
                            if (Q.IsCharging && qFarm.Position.DistanceToPlayer() <= Q.ChargedMaxRange)
                            {
                                Q.Cast(qFarm.Position, true);
                            }
                            else
                            {
                                if (qFarm.Position.DistanceToPlayer() <= Q.Range)
                                {
                                    Q.Cast(qFarm.Position, true);
                                }
                                else
                                {
                                    Q.StartCharging();
                                }
                            }
                        }
                    }
                }

                if (Q.IsCharging)
                {
                    return;
                }

                if (LaneClearOption.UseE && E.IsReady())
                {
                    var eMinions = MinionManager.GetMinions(Me.Position, E.Range);

                    if (eMinions.Any())
                    {
                        var eFarm =
                            MinionManager.GetBestCircularFarmLocation(eMinions.Select(x => x.Position.To2D()).ToList(),
                                                                      E.Width, E.Range);

                        if (eFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearECount"))
                        {
                            E.Cast(eFarm.Position);
                        }
                    }
                }
            }
        }
예제 #5
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                var minions = MinionManager.GetMinions(Me.Position, R.Range);

                if (minions.Any())
                {
                    if (LaneClearOption.UseR && R.IsReady() && LaneClearOption.GetSlider("LaneClearRLimit") >= GetRCount)
                    {
                        var rMinion =
                            minions.FirstOrDefault(x => x.DistanceToPlayer() > Orbwalker.GetRealAutoAttackRange(Me));

                        if (rMinion != null && MinionHealthPrediction.GetHealthPrediction(rMinion, 250) > 0)
                        {
                            R.Cast(rMinion);
                        }
                    }

                    if (LaneClearOption.UseE && E.IsReady())
                    {
                        var eMinions = MinionManager.GetMinions(Me.Position, E.Range);
                        var eFarm    =
                            MinionManager.GetBestLineFarmLocation(eMinions.Select(x => x.Position.To2D()).ToList(),
                                                                  E.Width, E.Range);

                        if (eFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearECount"))
                        {
                            E.Cast(eFarm.Position);
                        }
                    }

                    if (LaneClearOption.UseQ && Q.IsReady())
                    {
                        var qMinion =
                            MinionManager
                            .GetMinions(
                                Me.Position, Q.Range)
                            .FirstOrDefault(
                                x =>
                                x.Health < Q.GetDamage(x) &&
                                MinionHealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                x.Health > Me.GetAutoAttackDamage(x));

                        if (qMinion != null)
                        {
                            Q.Cast(qMinion);
                        }
                    }
                }
            }
        }
예제 #6
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var qMinions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(1600f) && x.IsMinion()).ToList();

                    if (qMinions.Any())
                    {
                        var qFarm = Q.GetLineFarmLocation(qMinions);

                        if (qFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                        {
                            if (Q.IsCharging)
                            {
                                if (qFarm.Position.DistanceToPlayer() <= Q.ChargedMaxRange)
                                {
                                    Q.ShootChargedSpell(qFarm.Position);
                                }
                            }
                            else
                            {
                                Q.StartCharging();
                            }
                        }
                    }
                }

                if (Q.IsCharging)
                {
                    return;
                }

                if (LaneClearOption.UseE && E.IsReady())
                {
                    var eMinions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) && x.IsMinion()).ToList();

                    if (eMinions.Any())
                    {
                        var eFarm = E.GetCircularFarmLocation(eMinions);

                        if (eFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearECount").Value)
                        {
                            E.Cast(eFarm.Position);
                        }
                    }
                }
            }
        }
예제 #7
0
파일: Varus.cs 프로젝트: aleks9829/AimTec-9
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseQ && Q.Ready)
                {
                    var qMinions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(1600f) && x.IsMinion()).ToArray();

                    if (qMinions.Any())
                    {
                        var qFarm = Q.GetSpellFarmPosition(qMinions);

                        if (qFarm.HitCount >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                        {
                            if (Q.IsCharging)
                            {
                                if (qFarm.CastPosition.DistanceToPlayer() <= Q.ChargedMaxRange)
                                {
                                    Q.Cast(qFarm.CastPosition);
                                }
                            }
                            else
                            {
                                Q.StartCharging(Game.CursorPos);
                            }
                        }
                    }
                }

                if (Q.IsCharging)
                {
                    return;
                }

                if (LaneClearOption.UseE && E.Ready)
                {
                    var eMinions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) && x.IsMinion()).ToArray();

                    if (eMinions.Any())
                    {
                        var eFarm = E.GetSpellFarmPosition(eMinions);

                        if (eFarm.HitCount >= LaneClearOption.GetSlider("LaneClearECount").Value)
                        {
                            E.Cast(eFarm.CastPosition);
                        }
                    }
                }
            }
        }
예제 #8
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, Q.Range);

                    if (minions.Any())
                    {
                        var QFram = MinionManager.GetBestCircularFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range);

                        if (QFram.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount"))
                        {
                            Q.Cast(QFram.Position, true);
                        }
                    }
                }

                if (LaneClearOption.UseE && E.IsReady())
                {
                    var eMinions = MinionManager.GetMinions(Me.Position, E.Range);

                    if (eMinions.Any())
                    {
                        if (eMinions.Count >= LaneClearOption.GetSlider("LaneClearECount"))
                        {
                            E.Cast();
                        }
                    }
                }

                if (LaneClearOption.UseR && R.IsReady() && R.Instance.CurrentCharge >= LaneClearOption.GetSlider("LaneClearRLimit"))
                {
                    var rMinions = MinionManager.GetMinions(Me.Position, R.Range);

                    if (rMinions.Any())
                    {
                        var RFarm = MinionManager.GetBestLineFarmLocation(rMinions.Select(x => x.Position.To2D()).ToList(), R.Width, R.Range);

                        if (RFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearRCount"))
                        {
                            R.Cast(RFarm.Position, true);
                        }
                    }
                }
            }
        }
예제 #9
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(R.Range) && x.IsMinion()).ToArray();

                if (minions.Any())
                {
                    if (LaneClearOption.UseR && R.Ready && LaneClearOption.GetSlider("LaneClearRLimit").Value >= GetRCount)
                    {
                        var rMinion =
                            minions.FirstOrDefault(x => x.DistanceToPlayer() > Me.AttackRange + Me.BoundingRadius);

                        if (rMinion != null && rMinion.IsValidTarget(R.Range))
                        {
                            R.Cast(rMinion);
                        }
                    }

                    if (LaneClearOption.UseE && E.Ready)
                    {
                        var eMinions = minions.Where(x => x.IsValidTarget(E.Range)).ToArray();
                        var eFarm    = E.GetSpellFarmPosition(eMinions);

                        if (eFarm.HitCount >= LaneClearOption.GetSlider("LaneClearECount").Value)
                        {
                            E.Cast(eFarm.CastPosition);
                        }
                    }

                    if (LaneClearOption.UseQ && Q.Ready)
                    {
                        var qMinion =
                            minions.Where(x => x.IsValidTarget(Q.Range))
                            .FirstOrDefault(
                                x =>
                                x.Health <Me.GetSpellDamage(x, SpellSlot.Q) &&
                                          x.Health> Me.GetAutoAttackDamage(x));

                        if (qMinion != null && qMinion.IsValidTarget(Q.Range))
                        {
                            Q.Cast(qMinion);
                        }
                    }
                }
            }
        }
예제 #10
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana() && LaneClearOption.UseQ && Q.IsReady())
            {
                var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) && x.IsMinion()).ToList();

                if (minions.Any())
                {
                    var qFarm = Q.GetLineFarmLocation(minions);

                    if (qFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                    {
                        Q.Cast(qFarm.Position);
                    }
                }
            }
        }
예제 #11
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) && x.IsMinion()).ToList();
                    if (minions.Any())
                    {
                        var qFarm = Q.GetCircularFarmLocation(minions);

                        if (qFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                        {
                            Q.Cast(qFarm.Position);
                        }
                    }
                }

                if (LaneClearOption.UseE && E.IsReady())
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) && x.IsMinion()).ToList();

                    if (minions.Any() && minions.Count >= LaneClearOption.GetSlider("LaneClearECount").Value)
                    {
                        E.Cast(Me.PreviousPosition);
                    }
                }

                if (LaneClearOption.UseR && R.IsReady() &&
                    R.Ammo >= LaneClearOption.GetSlider("LaneClearRLimit").Value)
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(R.Range) && x.IsMinion()).ToList();

                    if (minions.Any())
                    {
                        var rFarm = R.GetLineFarmLocation(minions);

                        if (rFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearRCount").Value)
                        {
                            R.Cast(rFarm.Position);
                        }
                    }
                }
            }
        }
예제 #12
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseQ && Q.Ready)
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) && x.IsMinion()).ToArray();
                    if (minions.Any())
                    {
                        var qFarm = Q.GetSpellFarmPosition(minions);

                        if (qFarm.HitCount >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                        {
                            Q.Cast(qFarm.CastPosition);
                        }
                    }
                }

                if (LaneClearOption.UseE && E.Ready)
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) && x.IsMinion()).ToArray();

                    if (minions.Any() && minions.Length >= LaneClearOption.GetSlider("LaneClearECount").Value)
                    {
                        E.Cast();
                    }
                }

                if (LaneClearOption.UseR && R.Ready &&
                    R.GetBasicSpell().Ammo >= LaneClearOption.GetSlider("LaneClearRLimit").Value)
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(R.Range) && x.IsMinion()).ToArray();

                    if (minions.Any())
                    {
                        var rFarm = R.GetSpellFarmPosition(minions);

                        if (rFarm.HitCount >= LaneClearOption.GetSlider("LaneClearRCount").Value)
                        {
                            R.Cast(rFarm.CastPosition);
                        }
                    }
                }
            }
        }
예제 #13
0
 private static void LaneClear()
 {
     if (LaneClearOption.HasEnouguMana)
     {
         if (LaneClearOption.UseQ && Q.IsReady())
         {
             var _Minions = MinionManager.GetMinions(Me.Position, Q.Range);
             if (_Minions.Any())
             {
                 var _FarmPredictionQ = MinionManager.GetBestLineFarmLocation(_Minions.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range);
                 if (_FarmPredictionQ.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount"))
                 {
                     Q.Cast(_FarmPredictionQ.Position, true);
                 }
             }
         }
     }
 }
예제 #14
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, Q.Range);

                    if (minions.Any())
                    {
                        if (minions.Count >= LaneClearOption.GetSlider("LaneClearQCount"))
                        {
                            Q.Cast(Game.CursorPosition);
                        }
                    }
                }
            }
        }
예제 #15
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) && x.IsMinion()).ToList();

                if (minions.Any())
                {
                    if (LaneClearOption.UseE && E.IsReady())
                    {
                        var eFarm = E.GetCircularFarmLocation(minions);

                        if (eFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearECount").Value)
                        {
                            E.Cast(eFarm.Position);
                        }
                    }
                }
            }
        }
예제 #16
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseE && E.IsReady())
                {
                    var eKillMinionsCount =
                        GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) && x.IsMinion())
                        .Count(
                            x =>
                            x.DistanceToPlayer() <= E.Range && x.Buffs.Any(b => b.Name.ToLower() == "twitchdeadlyvenom") &&
                            x.Health < GetRealEDamage(x));

                    if (eKillMinionsCount >= LaneClearOption.GetSlider("LaneClearECount").Value)
                    {
                        E.Cast();
                    }
                }
            }
        }
예제 #17
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseE && E.IsReady())
                {
                    var eKillMinionsCount =
                        MinionManager.GetMinions(Me.Position, E.Range)
                        .Count(
                            x =>
                            x.DistanceToPlayer() <= E.Range && x.HasBuff("TwitchDeadlyVenom") &&
                            x.Health < E.GetDamage(x));

                    if (eKillMinionsCount >= LaneClearOption.GetSlider("LaneClearECount"))
                    {
                        E.Cast();
                    }
                }
            }
        }
예제 #18
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseW && W.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, W.Range);

                    if (minions.Any())
                    {
                        var wFarm = MinionManager.GetBestCircularFarmLocation(minions.Select(x => x.Position.To2D()).ToList(), W.Width, W.Range);

                        if (wFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearWCount"))
                        {
                            W.Cast(wFarm.Position, true);
                        }
                    }
                }
            }
        }
예제 #19
0
파일: Ashe.cs 프로젝트: aleks9829/AimTec-9
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseW && W.Ready)
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(W.Range) && x.IsMinion()).ToArray();

                    if (minions.Any())
                    {
                        var wFarm = W.GetSpellFarmPosition(minions);

                        if (wFarm.HitCount >= LaneClearOption.GetSlider("LaneClearWCount").Value)
                        {
                            W.Cast(wFarm.CastPosition);
                        }
                    }
                }
            }
        }
예제 #20
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, Q.Range);

                    if (minions.Any())
                    {
                        var QFarm =
                            MinionManager.GetBestCircularFarmLocation(minions.Select(x => x.Position.To2D()).ToList(),
                                                                      Q.Width, Q.Range);

                        if (QFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount"))
                        {
                            Q.Cast(QFarm.Position);
                        }
                    }
                }
            }
        }
예제 #21
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana)
            {
                var minions = MinionManager.GetMinions(Me.Position, Q.Range);

                if (minions.Any())
                {
                    if (LaneClearOption.UseE && E.IsReady())
                    {
                        var eMinionsCount =
                            MinionManager
                            .GetMinions(Me.Position, E.Range)
                            .Count(x => x.HasBuff("kalistaexpungemarker") && x.Health < GetRealEDamage(x));

                        if (eMinionsCount >= LaneClearOption.GetSlider("LaneClearECount"))
                        {
                            E.Cast(true);
                        }
                    }
                }
            }
        }
예제 #22
0
        private static void PreAttack(object sender, PreAttackEventArgs Args)
        {
            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.obj_AI_Hero:
            {
                var target = Args.Target as Obj_AI_Hero;

                if (target != null && target.IsValidTarget())
                {
                    if (Orbwalker.Mode == OrbwalkingMode.Combo)
                    {
                        if (ComboOption.UseQ && Q.Ready)
                        {
                            if (Me.HasBuff("JinxQ"))
                            {
                                if (target.Health < Me.GetAutoAttackDamage(target) * 3 &&
                                    target.DistanceToPlayer() <= Q.Range + 60)
                                {
                                    Q.Cast();
                                }
                                else if (Me.Mana < (rCoolDown == -1 ? 100 : (rCoolDown > 10 ? 130 : 150)))
                                {
                                    Q.Cast();
                                }
                                else if (target.IsValidTarget(Q.Range))
                                {
                                    Q.Cast();
                                }
                            }
                            else
                            {
                                if (target.CountEnemyHeroesInRange(150) >= 2 &&
                                    Me.Mana > R.GetBasicSpell().Cost + Q.GetBasicSpell().Cost * 2 + W.GetBasicSpell().Cost&&
                                    target.DistanceToPlayer() > Q.Range)
                                {
                                    Q.Cast();
                                }
                            }
                        }
                    }
                    else if (Orbwalker.Mode == OrbwalkingMode.Mixed ||
                             Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellHarass)
                    {
                        if (HarassOption.HasEnouguMana())
                        {
                            if (HarassOption.UseQ && Q.Ready)
                            {
                                if (Me.HasBuff("JinxQ"))
                                {
                                    if (target.DistanceToPlayer() >= bigGunRange)
                                    {
                                        Q.Cast();
                                    }
                                }
                                else
                                {
                                    if (target.CountEnemyHeroesInRange(150) >= 2 &&
                                        Me.Mana > R.GetBasicSpell().Cost + Q.GetBasicSpell().Cost * 2 + W.GetBasicSpell().Cost&&
                                        target.DistanceToPlayer() > Q.Range)
                                    {
                                        Q.Cast();
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (Me.HasBuff("JinxQ") && Q.Ready)
                            {
                                Q.Cast();
                            }
                        }
                    }
                }
            }
            break;

            case GameObjectType.obj_AI_Minion:
            {
                if (Args.Target.IsMinion())
                {
                    if (LaneClearOption.HasEnouguMana() && Q.Ready && LaneClearOption.UseQ)
                    {
                        var min     = Args.Target as Obj_AI_Base;
                        var minions =
                            GameObjects.EnemyMinions.Where(x => x.IsValidTarget(bigGunRange) && x.IsMinion())
                            .ToArray();

                        if (minions.Any() && min != null)
                        {
                            foreach (var minion in minions.Where(x => x.NetworkId != min.NetworkId))
                            {
                                var count =
                                    ObjectManager.Get <Obj_AI_Minion>().Count(x => x.Distance(minion) <= 150);

                                if (minion.DistanceToPlayer() <= bigGunRange)
                                {
                                    if (Me.HasBuff("JinxQ"))
                                    {
                                        if (LaneClearOption.GetSlider("LaneClearQCount").Value > count)
                                        {
                                            Q.Cast();
                                        }
                                        else if (min.Health > Me.GetAutoAttackDamage(min) * 1.1f)
                                        {
                                            Q.Cast();
                                        }
                                    }
                                    else if (!Me.HasBuff("JinxQ"))
                                    {
                                        if (LaneClearOption.GetSlider("LaneClearQCount").Value <= count)
                                        {
                                            Q.Cast();
                                        }
                                        else if (min.Health < Me.GetAutoAttackDamage(min) * 1.1f &&
                                                 min.DistanceToPlayer() > Q.Range)
                                        {
                                            Q.Cast();
                                        }
                                    }
                                }
                            }

                            if (minions.Length <= 2 && Me.HasBuff("JinxQ"))
                            {
                                Q.Cast();
                            }
                        }
                    }
                    else
                    {
                        if (Me.HasBuff("JinxQ") && Q.Ready)
                        {
                            Q.Cast();
                        }
                    }
                }
            }
            break;
            }
        }
예제 #23
0
        private static void OnAction(object sender, OrbwalkerActionArgs Args)
        {
            if (Args.Type != OrbwalkerType.BeforeAttack)
            {
                return;
            }

            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.AIHeroClient:
            {
                var target = (AIHeroClient)Args.Target;
                if (target != null && target.IsValidTarget())
                {
                    if (Orbwalker.ActiveMode == OrbwalkerMode.Combo)
                    {
                        if (ComboOption.UseQ && Q.IsReady())
                        {
                            if (Me.HasBuff("JinxQ"))
                            {
                                if (target.Health < Me.GetAutoAttackDamage(target) * 3 &&
                                    target.DistanceToPlayer() <= Q.Range + 60)
                                {
                                    Q.Cast();
                                }
                                else if (Me.Mana < (rCoolDown == -1 ? 100 : (rCoolDown > 10 ? 130 : 150)))
                                {
                                    Q.Cast();
                                }
                                else if (target.IsValidTarget(Q.Range))
                                {
                                    Q.Cast();
                                }
                            }
                            else
                            {
                                if (target.CountEnemyHeroesInRange(150) >= 2 &&
                                    Me.Mana > R.Mana + Q.Mana * 2 + W.Mana &&
                                    target.DistanceToPlayer() > Q.Range)
                                {
                                    Q.Cast();
                                }
                            }
                        }
                    }
                    else if (Orbwalker.ActiveMode == OrbwalkerMode.Harass ||
                             Orbwalker.ActiveMode == OrbwalkerMode.LaneClear && MyManaManager.SpellHarass)
                    {
                        if (HarassOption.HasEnouguMana())
                        {
                            if (HarassOption.UseQ && Q.IsReady())
                            {
                                if (Me.HasBuff("JinxQ"))
                                {
                                    if (target.DistanceToPlayer() >= bigGunRange)
                                    {
                                        Q.Cast();
                                    }
                                }
                                else
                                {
                                    if (target.CountEnemyHeroesInRange(150) >= 2 &&
                                        Me.Mana > R.Mana + Q.Mana * 2 + W.Mana &&
                                        target.DistanceToPlayer() > Q.Range)
                                    {
                                        Q.Cast();
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (Me.HasBuff("JinxQ") && Q.IsReady())
                            {
                                Q.Cast();
                            }
                        }
                    }
                }
            }
            break;

            case GameObjectType.AIMinionClient:
            {
                var minion = (AIMinionClient)Args.Target;
                if (minion != null && minion.IsMinion())
                {
                    if (LaneClearOption.HasEnouguMana() && Q.IsReady() && LaneClearOption.UseQ)
                    {
                        var min     = (AIBaseClient)Args.Target;
                        var minions =
                            GameObjects.EnemyMinions.Where(x => x.IsValidTarget(bigGunRange) && x.IsMinion())
                            .ToList();

                        if (minions.Any() && min != null)
                        {
                            foreach (var m in minions.Where(x => x.NetworkId != min.NetworkId))
                            {
                                var count =
                                    ObjectManager.Get <AIMinionClient>().Count(x => x.Distance(m) <= 150);

                                if (m.DistanceToPlayer() <= bigGunRange)
                                {
                                    if (Me.HasBuff("JinxQ"))
                                    {
                                        if (LaneClearOption.GetSlider("LaneClearQCount").Value > count)
                                        {
                                            Q.Cast();
                                        }
                                        else if (min.Health > Me.GetAutoAttackDamage(min) * 1.1f)
                                        {
                                            Q.Cast();
                                        }
                                    }
                                    else if (!Me.HasBuff("JinxQ"))
                                    {
                                        if (LaneClearOption.GetSlider("LaneClearQCount").Value <= count)
                                        {
                                            Q.Cast();
                                        }
                                        else if (min.Health < Me.GetAutoAttackDamage(min) * 1.1f &&
                                                 min.DistanceToPlayer() > Q.Range)
                                        {
                                            Q.Cast();
                                        }
                                    }
                                }
                            }

                            if (minions.Count <= 2 && Me.HasBuff("JinxQ"))
                            {
                                Q.Cast();
                            }
                        }
                    }
                    else
                    {
                        if (Me.HasBuff("JinxQ") && Q.IsReady())
                        {
                            Q.Cast();
                        }
                    }
                }
            }
            break;
            }
        }
예제 #24
0
        private static void BeforeAttack(BeforeAttackEventArgs Args)
        {
            if (!Args.Unit.IsMe || !Q.IsReady())
            {
                return;
            }

            if (isComboMode)
            {
                if (ComboOption.UseQ)
                {
                    var target = Args.Target as AIHeroClient;

                    if (target != null && !target.IsDead && !target.IsZombie)
                    {
                        if (Me.HasBuff("JinxQ"))
                        {
                            if (target.Health < Me.GetAutoAttackDamage(target) * 3 &&
                                target.DistanceToPlayer() <= Q.Range + 60)
                            {
                                Q.Cast();
                            }
                            else if (Me.Mana < (rCoolDown == -1 ? 100 : (rCoolDown > 10 ? 130 : 150)))
                            {
                                Q.Cast();
                            }
                            else if (target.IsValidTarget(Q.Range))
                            {
                                Q.Cast();
                            }
                        }
                        else
                        {
                            if (target.CountEnemiesInRange(150) >= 2 &&
                                Me.Mana > R.ManaCost + Q.ManaCost * 2 + W.ManaCost &&
                                target.DistanceToPlayer() > Q.Range)
                            {
                                Q.Cast();
                            }
                        }
                    }
                }
            }
            else
            {
                if ((isFarmMode && MyManaManager.SpellHarass) || isHarassMode)
                {
                    if (HarassOption.HasEnouguMana)
                    {
                        if (HarassOption.UseQ)
                        {
                            var target = Args.Target as AIHeroClient;

                            if (target != null && !target.IsDead && !target.IsZombie)
                            {
                                if (Me.HasBuff("JinxQ"))
                                {
                                    if (target.DistanceToPlayer() >= bigGunRange)
                                    {
                                        Q.Cast();
                                    }
                                }
                                else
                                {
                                    if (target.CountEnemiesInRange(150) >= 2 &&
                                        Me.Mana > R.ManaCost + Q.ManaCost * 2 + W.ManaCost &&
                                        target.DistanceToPlayer() > Q.Range)
                                    {
                                        Q.Cast();
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (Me.HasBuff("JinxQ") && Q.IsReady())
                        {
                            Q.Cast();
                        }
                    }
                }

                if (isLaneClearMode)
                {
                    if (LaneClearOption.HasEnouguMana)
                    {
                        if (LaneClearOption.UseQ)
                        {
                            var min     = Args.Target as Obj_AI_Base;
                            var minions = MinionManager.GetMinions(Me.Position, bigGunRange);

                            if (minions.Any() && min != null)
                            {
                                foreach (var minion in minions.Where(x => x.NetworkId != min.NetworkId))
                                {
                                    var count = ObjectManager.Get <Obj_AI_Minion>().Count(x => x.Distance(minion) <= 150);

                                    if (minion.DistanceToPlayer() <= bigGunRange)
                                    {
                                        if (Me.HasBuff("JinxQ"))
                                        {
                                            if (LaneClearOption.GetSlider("LaneClearQCount") > count)
                                            {
                                                Q.Cast();
                                            }
                                            else if (min.Health > Me.GetAutoAttackDamage(min) * 1.1f)
                                            {
                                                Q.Cast();
                                            }
                                        }
                                        else if (!Me.HasBuff("JinxQ"))
                                        {
                                            if (LaneClearOption.GetSlider("LaneClearQCount") <= count)
                                            {
                                                Q.Cast();
                                            }
                                            else if (min.Health < Me.GetAutoAttackDamage(min) * 1.1f &&
                                                     min.DistanceToPlayer() > Q.Range)
                                            {
                                                Q.Cast();
                                            }
                                        }
                                    }
                                }

                                if (minions.Count <= 2 && Me.HasBuff("JinxQ"))
                                {
                                    Q.Cast();
                                }
                            }
                        }
                    }
                    else
                    {
                        if (Me.HasBuff("JinxQ") && Q.IsReady())
                        {
                            Q.Cast();
                        }
                    }
                }
            }
        }