Beispiel #1
0
        private void Flee()
        {
            OrbwalkManager.Orbwalk(null, Game.CursorPos);

            var useQ = menu.Item("UseQFlee", true).GetValue <bool>();
            var useW = menu.Item("UseWFlee", true).GetValue <bool>();
            var useE = menu.Item("UseEFlee", true).GetValue <bool>();

            if (!useQ && !useW)
            {
                return;
            }

            if (useE)
            {
                var vec = Player.ServerPosition.Extend(Game.CursorPos, E.Range);
                E.Cast(vec);
            }

            foreach (var target in HeroManager.Enemies.Where(x => x.IsValidTarget(Q.Range)))
            {
                if (Q.IsReady() && useQ)
                {
                    Q.Cast(target);
                }

                if (W.IsReady() && useW)
                {
                    Player.ServerPosition.Extend(Game.CursorPos, 400);
                }
            }
        }
Beispiel #2
0
        protected override void AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            var useWCombo  = menu.Item("UseWCombo", true).GetValue <bool>();
            var useWHarass = menu.Item("UseWHarass", true).GetValue <bool>();

            if (unit.IsMe && !HammerTime)
            {
                if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
                {
                    if (_canWcd == 0 && Player.Distance(target.Position) < 600 && !HammerTime && W.Level > 0 && W.IsReady())
                    {
                        if (useWCombo)
                        {
                            OrbwalkManager.ResetAutoAttackTimer();
                            W.Cast();
                        }
                    }
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active || menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    if (_canWcd == 0 && Player.Distance(target.Position) < 600 && !HammerTime && W.Level > 0 && W.IsReady() && target is Obj_AI_Hero)
                    {
                        if (useWHarass)
                        {
                            OrbwalkManager.ResetAutoAttackTimer();
                            W.Cast();
                        }
                    }
                }
            }
        }
Beispiel #3
0
        private void Farm()
        {
            if (!OrbwalkManager.CanMove(40))
            {
                return;
            }

            List <Obj_AI_Base> allMinionsQ = MinionManager.GetMinions(Player.ServerPosition, Q.Range,
                                                                      MinionTypes.All, MinionTeam.NotAlly);
            List <Obj_AI_Base> allMinionsE = MinionManager.GetMinions(Player.ServerPosition, E.Range,
                                                                      MinionTypes.All, MinionTeam.NotAlly);

            var useQ = menu.Item("UseQFarm", true).GetValue <bool>();
            var useE = menu.Item("UseEFarm", true).GetValue <bool>();

            if (useQ && allMinionsQ.Count > 0)
            {
                Q.Cast(allMinionsQ[0]);
            }

            if (useE && allMinionsE.Count > 0)
            {
                E.Cast(allMinionsE[0]);
            }
        }
Beispiel #4
0
        private void LastHit()
        {
            if (!OrbwalkManager.CanMove(40))
            {
                return;
            }

            List <Obj_AI_Base> allMinions = MinionManager.GetMinions(Player.ServerPosition, Q.Range);

            if (Q.IsReady())
            {
                foreach (Obj_AI_Base minion in allMinions)
                {
                    if (minion.IsValidTarget() &&
                        HealthPrediction.GetHealthPrediction(minion, (int)(Player.Distance(minion.Position) * 1000 / 1400)) <
                        Player.GetSpellDamage(minion, SpellSlot.Q) - 10)
                    {
                        PredictionOutput prediction = Util.GetP(_currentBallPosition, Q, minion, true);

                        if (prediction.Hitchance >= HitChance.High && Q.IsReady())
                        {
                            Q.Cast(prediction.CastPosition);
                        }
                    }
                }
            }
        }
Beispiel #5
0
        protected override void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs args)
        {
            if (!unit.IsMe)
            {
                return;
            }

            if (args.SData.Name == "KatarinaR")
            {
                OrbwalkManager.SetAttack(false);
                OrbwalkManager.SetMovement(false);
            }

            SpellSlot castedSlot = ObjectManager.Player.GetSpellSlot(args.SData.Name);

            if (castedSlot == SpellSlot.Q)
            {
                Q.LastCastAttemptT = Utils.TickCount;
            }

            if (castedSlot == SpellSlot.R)
            {
                R.LastCastAttemptT = Utils.TickCount;
            }
        }
Beispiel #6
0
        private void CastFlashR(Obj_AI_Hero target)
        {
            Game.PrintChat("flashing");

            if (SummonerManager.Flash_Ready())
            {
                SummonerManager.UseFlash(target.ServerPosition);
            }

            var dmg = GetComboDamage(target);

            ItemManager.Target = target;

            //see if killable
            if (dmg > target.Health - 50)
            {
                ItemManager.KillableTarget = true;
            }

            ItemManager.UseTargetted = true;

            OrbwalkManager.Orbwalk(target, target.ServerPosition);

            Utility.DelayAction.Add(25, () => R.Cast(target));
            if (R.IsReady())
            {
                R.Cast(target);
            }
        }
Beispiel #7
0
        protected override void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs args)
        {
            if (unit.IsMe)
            {
                SpellSlot castedSlot = Player.GetSpellSlot(args.SData.Name);

                if (castedSlot == SpellSlot.Q)
                {
                    Q.LastCastAttemptT = Utils.TickCount;
                }
            }

            if (unit.IsMe)
            {
                return;
            }

            if (OrbwalkManager.IsAutoAttack(args.SData.Name) && args.Target.IsMe && Player.Distance(args.End) < 450)
            {
                if (menu.Item("W_Incoming", true).GetValue <bool>() ||
                    (menu.Item("ComboActive", true).GetValue <KeyBind>().Active&& E.IsReady() && menu.Item("UseWCombo", true).GetValue <bool>()) ||
                    (menu.Item("HarassActive", true).GetValue <KeyBind>().Active&& menu.Item("UseWHarass", true).GetValue <bool>()))
                {
                    if (!menu.Item("W_minion", true).GetValue <bool>() && !(unit is Obj_AI_Hero))
                    {
                        return;
                    }

                    if (menu.Item("W_Tower", true).GetValue <bool>() && Player.UnderTurret(true))
                    {
                        return;
                    }

                    W.Cast();
                }
            }

            if (unit.IsEnemy && (unit is Obj_AI_Hero) && menu.Item(args.SData.Name + "R_Dodge", true) != null)
            {
                if (Player.Distance(args.End) > R.Range || !R.IsReady())
                {
                    return;
                }

                if (menu.Item(args.SData.Name + "R_Dodge", true).GetValue <bool>() && args.SData.Name == "SyndraR")
                {
                    Utility.DelayAction.Add(150, () => R.Cast(unit));
                    return;
                }

                if (menu.Item(args.SData.Name + "R_Dodge", true).GetValue <bool>())
                {
                    //Game.PrintChat("RAWR");
                    R.Cast(unit);
                    _dodgeHero         = unit;
                    R.LastCastAttemptT = Utils.TickCount;
                }
            }
        }
Beispiel #8
0
        protected override void Game_OnGameUpdate(EventArgs args)
        {
            SmartKs();

            if (Player.IsChannelingImportantSpell() || Player.HasBuff("KatarinaR"))
            {
                OrbwalkManager.SetAttack(false);
                OrbwalkManager.SetMovement(false);
                ShouldCancel();
                return;
            }

            OrbwalkManager.SetAttack(true);
            OrbwalkManager.SetMovement(true);

            if (menu.Item("Wardjump", true).GetValue <KeyBind>().Active)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                WardJumper.WardJump();
            }
            else if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (menu.Item("lastHit", true).GetValue <KeyBind>().Active)
                {
                    LastHit();
                }

                if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active)
                {
                    Farm();
                }

                if (menu.Item("jFarm", true).GetValue <KeyBind>().Active)
                {
                    JungleFarm();
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }
            }

            if (menu.Item("autoWz", true).GetValue <bool>())
            {
                AutoW();
            }
        }
Beispiel #9
0
        private void Escape()
        {
            OrbwalkManager.Orbwalk(null, Game.CursorPos);

            if (_ballStatus == 0 && W.IsReady())
            {
                W.Cast();
            }
            else if (E.IsReady() && _ballStatus != 0)
            {
                E.CastOnUnit(Player);
            }
        }
Beispiel #10
0
        protected override void Game_OnGameUpdate(EventArgs args)
        {
            //check if player is dead
            if (Player.IsDead)
            {
                return;
            }

            //adjust range
            if (R.IsReady())
            {
                R.Range = menu.Item("R_Max_Range", true).GetValue <Slider>().Value;
            }

            if (menu.Item("smartKS", true).GetValue <bool>())
            {
                CheckKs();
            }

            if (menu.Item("Force_R", true).GetValue <KeyBind>().Active)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                ForceR();
            }
            if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active)
                {
                    Farm();
                }

                if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }
            }
        }
Beispiel #11
0
        private void AttackTarget(Obj_AI_Hero target)
        {
            if (soilderCount() < 1)
            {
                return;
            }

            var tar = getNearestSoilderToEnemy(target);

            if (tar != null && Player.Distance(tar.Position) < 800)
            {
                if (target != null && target.Distance(tar.Position) <= 350)
                {
                    OrbwalkManager.Orbwalk(target, Game.CursorPos);
                }
            }
        }
Beispiel #12
0
        private void Farm()
        {
            if (!OrbwalkManager.CanMove(40))
            {
                return;
            }

            if (!ManaManager.HasMana("Farm"))
            {
                return;
            }

            List <Obj_AI_Base> allMinionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition,
                                                                      Q.Range + Q.Width);
            List <Obj_AI_Base> allMinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition,
                                                                      Q.Range + Q.Width);

            var useQ = menu.Item("UseQFarm", true).GetValue <bool>();
            var useW = menu.Item("UseWFarm", true).GetValue <bool>();
            int min  = menu.Item("qFarm", true).GetValue <Slider>().Value;

            if (useQ && Q.IsReady())
            {
                Q.From = _currentBallPosition;

                MinionManager.FarmLocation pred = Q.GetCircularFarmLocation(allMinionsQ, Q.Width + 15);

                if (pred.MinionsHit >= min)
                {
                    Q.Cast(pred.Position);
                }
            }

            int hit = 0;

            if (useW && W.IsReady())
            {
                hit += allMinionsW.Count(enemy => enemy.Distance(_currentBallPosition) < W.Width);

                if (hit >= min && W.IsReady())
                {
                    W.Cast();
                }
            }
        }
Beispiel #13
0
        protected override void Game_OnGameUpdate(EventArgs args)
        {
            if (menu.Item("smartKS", true).GetValue <bool>())
            {
                CheckKs();
            }

            if (menu.Item("flashR", true).GetValue <KeyBind>().Active || Utils.TickCount - _lastFlash < 2500)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                var target = TargetSelector.GetSelectedTarget();

                if (target != null)
                {
                    if (target.IsValidTarget(R.Range + 425 + target.BoundingRadius))
                    {
                        CastFlashR(TargetSelector.GetSelectedTarget());
                    }
                }
            }

            if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active)
                {
                    Farm();
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }
            }
        }
Beispiel #14
0
        private void LastHit()
        {
            if (!OrbwalkManager.CanMove(40))
            {
                return;
            }

            List <Obj_AI_Base> allMinionsE = MinionManager.GetMinions(Player.ServerPosition, E.Range,
                                                                      MinionTypes.All, MinionTeam.NotAlly);

            if (allMinionsE.Count > 0 && E.IsReady())
            {
                foreach (var minion in allMinionsE)
                {
                    if (E.IsKillable(minion))
                    {
                        E.Cast(minion);
                    }
                }
            }
        }
Beispiel #15
0
        private void LastHit()
        {
            if (!OrbwalkManager.CanMove(40))
            {
                return;
            }

            var allMinions = MinionManager.GetMinions(Player.ServerPosition, Q.Range);

            if (Q.IsReady())
            {
                foreach (var minion in allMinions)
                {
                    if (minion.IsValidTarget() && HealthPrediction.GetHealthPrediction(minion, (int)(Player.Distance(minion) * 1000 / 1400)) < Player.GetSpellDamage(minion, SpellSlot.Q) - 10)
                    {
                        Q.Cast(minion);
                        return;
                    }
                }
            }
        }
Beispiel #16
0
        private void Farm()
        {
            if (!OrbwalkManager.CanMove(40))
            {
                return;
            }


            var allMinionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range + Q.Width, MinionTypes.All, MinionTeam.NotAlly);

            var useQ = menu.Item("UseQFarm", true).GetValue <bool>();
            var useE = menu.Item("UseEFarm", true).GetValue <bool>();

            if (useQ && allMinionsQ.Count > 0 && Q.IsReady())
            {
                Q.Cast(allMinionsQ[0]);
            }

            var minionsE = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (minionsE.Count == 0)
            {
                return;
            }

            var minionsE2 = MinionManager.GetMinions(minionsE[0].ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly);
            var points    = minionsE2.Select(x => x.ServerPosition.To2D()).ToList();

            if (useE && E.IsReady() && minionsE.Count > 0)
            {
                E2.UpdateSourcePosition(minionsE[0].ServerPosition, minionsE[0].ServerPosition);
                var pred = GetBestLineFarmLocation(minionsE[0].ServerPosition.To2D(), points, E.Width, E2.Range);
                var min  = menu.Item("MinMinion", true).GetValue <Slider>().Value;

                if (pred.MinionsHit >= min)
                {
                    SpellCastManager.CastLineSpell(minionsE[0].Position, pred.Position.To3D());
                }
            }
        }
Beispiel #17
0
        protected override void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            if (Player.IsZombie)
            {
                var target = TargetSelector.GetTarget(P.Range, TargetSelector.DamageType.True);
                if (target == null)
                {
                    return;
                }
                var pred = P.GetPrediction(target);
                if (pred.Hitchance >= HitChance.High)
                {
                    Q.Cast(target);
                }
            }

            if (menu.Item("smartKS", true).GetValue <bool>())
            {
                CheckKs();
            }

            AutoBloom();

            if (menu.Item("Escape", true).GetValue <KeyBind>().Active&& E.IsReady())
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                foreach (Obj_AI_Hero target in ObjectManager.Get <Obj_AI_Hero>().Where(x => Player.IsValidTarget(E.Range)).OrderBy(x => x.Distance(Player.Position)))
                {
                    E.Cast(target);
                    return;
                }
            }

            if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active)
                {
                    Farm();
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }


                if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }
            }
        }
Beispiel #18
0
        protected override void Game_OnGameUpdate(EventArgs args)
        {
            //check if player is dead
            if (Player.IsDead)
            {
                return;
            }

            SmartKs();

            if (menu.Item("escape", true).GetValue <KeyBind>().Active)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                Escape();
            }
            else if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else if (menu.Item("insec", true).GetValue <KeyBind>().Active)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);

                _insecTarget = TargetSelector.GetSelectedTarget();

                if (_insecTarget != null)
                {
                    if (_insecTarget.HasBuffOfType(BuffType.Knockup) || _insecTarget.HasBuffOfType(BuffType.Knockback))
                    {
                        if (Player.Distance(_insecTarget) < 200)
                        {
                            R2.Cast(_rVec);
                        }
                    }

                    Insec();
                }
            }
            else if (menu.Item("qeCombo", true).GetValue <KeyBind>().Active)
            {
                var soilderTarget = TargetSelector.GetTarget(900, TargetSelector.DamageType.Magical);

                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                CastQe(soilderTarget, "Null");
            }
            else
            {
                if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active)
                {
                    Farm();
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                if (menu.Item("wAtk", true).GetValue <bool>())
                {
                    AutoAtk();
                }
            }
        }
Beispiel #19
0
        protected override void Game_OnGameUpdate(EventArgs args)
        {
            //check if player is dead
            if (Player.IsDead)
            {
                return;
            }

            if (menu.Item("smartKS", true).GetValue <bool>())
            {
                CheckKs();
            }

            AoeStun();

            if (menu.Item("forceUlt", true).GetValue <KeyBind>().Active)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                ForceUlt();
            }
            else if (menu.Item("flashUlt", true).GetValue <KeyBind>().Active)
            {
                OrbwalkManager.Orbwalk(null, Game.CursorPos);
                FlashUlt();
            }
            else if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (menu.Item("E_Poison", true).GetValue <bool>())
                {
                    AutoEPoisonTargets();
                }

                if (menu.Item("LastHitE", true).GetValue <KeyBind>().Active)
                {
                    LastHit();
                }

                if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active)
                {
                    Farm();
                }

                if (menu.Item("Jungle", true).GetValue <KeyBind>().Active)
                {
                    Jungle();
                }

                if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active)
                {
                    Harass();
                }
            }

            ImmobileCast();
        }
Beispiel #20
0
        private void Combo(bool useQ, bool useW, bool useE, bool useR)
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            int mode = menu.Item("comboMode", true).GetValue <StringList>().SelectedIndex;

            int eDis = menu.Item("eDis", true).GetValue <Slider>().Value;

            if (!target.IsValidTarget(E.Range))
            {
                return;
            }

            if (!target.HasBuffOfType(BuffType.Invulnerability) && !target.IsZombie)
            {
                if (mode == 0) //qwe
                {
                    //items

                    var itemTarget = TargetSelector.GetTarget(750, TargetSelector.DamageType.Physical);
                    if (itemTarget != null && E.IsReady())
                    {
                        var dmg = GetComboDamage(itemTarget);
                        ItemManager.Target = itemTarget;

                        //see if killable
                        if (dmg > itemTarget.Health - 50)
                        {
                            ItemManager.KillableTarget = true;
                        }

                        ItemManager.UseTargetted = true;
                    }


                    if (useQ && Q.IsReady() && Player.Distance(target.Position) <= Q.Range)
                    {
                        Q.Cast(target);
                    }

                    if (useE && E.IsReady() && Player.Distance(target.Position) < E.Range && Utils.TickCount - E.LastCastAttemptT > 0 &&
                        Player.Distance(target.Position) > eDis && !Q.IsReady())
                    {
                        if (menu.Item("smartE", true).GetValue <bool>() &&
                            Player.CountEnemiesInRange(500) > 2 &&
                            (!R.IsReady() || !(RSpell.State == SpellState.Surpressed && R.Level > 0)))
                        {
                            return;
                        }

                        var delay = menu.Item("E_Delay_Slider", true).GetValue <Slider>().Value;
                        OrbwalkManager.SetAttack(false);
                        OrbwalkManager.SetMovement(false);
                        E.Cast(target);
                        E.LastCastAttemptT = Utils.TickCount + delay;
                    }
                }
                else if (mode == 1) //eqw
                {
                    //items
                    var itemTarget = TargetSelector.GetTarget(750, TargetSelector.DamageType.Physical);
                    if (itemTarget != null && E.IsReady())
                    {
                        var dmg = GetComboDamage(itemTarget);
                        ItemManager.Target = itemTarget;

                        //see if killable
                        if (dmg > itemTarget.Health - 50)
                        {
                            ItemManager.KillableTarget = true;
                        }

                        ItemManager.UseTargetted = true;
                    }

                    if (useE && E.IsReady() && Player.Distance(target.Position) < E.Range && Utils.TickCount - E.LastCastAttemptT > 0 &&
                        Player.Distance(target.Position) > eDis)
                    {
                        if (menu.Item("smartE", true).GetValue <bool>() &&
                            Player.CountEnemiesInRange(500) > 2 &&
                            (!R.IsReady() || !(RSpell.State == SpellState.Surpressed && R.Level > 0)))
                        {
                            return;
                        }

                        var delay = menu.Item("E_Delay_Slider", true).GetValue <Slider>().Value;
                        OrbwalkManager.SetAttack(false);
                        OrbwalkManager.SetMovement(false);
                        E.Cast(target);
                        E.LastCastAttemptT = Utils.TickCount + delay;
                    }

                    if (useQ && Q.IsReady() && Player.Distance(target.Position) <= Q.Range)
                    {
                        Q.Cast(target);
                    }
                }

                if (useW && W.IsReady() && Player.Distance(target.Position) <= W.Range && QSuccessfullyCasted())
                {
                    W.Cast();
                }

                if (useR && R.IsReady() &&
                    Player.CountEnemiesInRange(R.Range) > 0)
                {
                    if (!Q.IsReady() && !E.IsReady() && !W.IsReady())
                    {
                        OrbwalkManager.SetAttack(false);
                        OrbwalkManager.SetMovement(false);
                        R.Cast();
                    }
                }
            }
        }
Beispiel #21
0
        private void SmartKs()
        {
            if (!menu.Item("smartKS", true).GetValue <bool>())
            {
                return;
            }

            if (menu.Item("rCancel", true).GetValue <bool>() && Player.CountEnemiesInRange(570) > 1)
            {
                return;
            }

            foreach (Obj_AI_Hero target in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(1375) && !x.HasBuffOfType(BuffType.Invulnerability)).OrderByDescending(GetComboDamage))
            {
                if (target != null)
                {
                    var  delay   = menu.Item("E_Delay_Slider", true).GetValue <Slider>().Value;
                    bool shouldE = !menu.Item("KS_With_E", true).GetValue <KeyBind>().Active&& Utils.TickCount - E.LastCastAttemptT > 0;
                    //QEW
                    if (Player.Distance(target.ServerPosition) <= E.Range && shouldE &&
                        (Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.Q) + MarkDmg(target) +
                         Player.GetSpellDamage(target, SpellSlot.W)) > target.Health + 20)
                    {
                        if (E.IsReady() && Q.IsReady() && W.IsReady())
                        {
                            CancelUlt(target);
                            Q.Cast(target);
                            E.Cast(target);
                            E.LastCastAttemptT = Utils.TickCount + delay;
                            if (Player.Distance(target.ServerPosition) < W.Range)
                            {
                                W.Cast();
                            }
                            return;
                        }
                    }

                    //E + W
                    if (Player.Distance(target.ServerPosition) <= E.Range && shouldE &&
                        (Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.W)) >
                        target.Health + 20)
                    {
                        if (E.IsReady() && W.IsReady())
                        {
                            CancelUlt(target);
                            E.Cast(target);
                            E.LastCastAttemptT = Utils.TickCount + delay;
                            if (Player.Distance(target.ServerPosition) < W.Range)
                            {
                                W.Cast();
                            }
                            //Game.PrintChat("ks 5");
                            return;
                        }
                    }

                    //E + Q
                    if (Player.Distance(target.ServerPosition) <= E.Range && shouldE &&
                        (Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.Q)) >
                        target.Health + 20)
                    {
                        if (E.IsReady() && Q.IsReady())
                        {
                            CancelUlt(target);
                            E.Cast(target);
                            E.LastCastAttemptT = Utils.TickCount + delay;
                            Q.Cast(target);
                            //Game.PrintChat("ks 6");
                            return;
                        }
                    }

                    //Q
                    if ((Player.GetSpellDamage(target, SpellSlot.Q)) > target.Health + 20)
                    {
                        if (Q.IsReady() && Player.Distance(target.ServerPosition) <= Q.Range)
                        {
                            CancelUlt(target);
                            Q.Cast(target);
                            //Game.PrintChat("ks 7");
                            return;
                        }
                        if (Q.IsReady() && E.IsReady() && Player.Distance(target.ServerPosition) <= 1375 &&
                            menu.Item("wardKs", true).GetValue <bool>() &&
                            target.CountEnemiesInRange(500) < 3)
                        {
                            CancelUlt(target);
                            WardJumper.JumpKs(target);
                            //Game.PrintChat("wardKS!!!!!");
                            return;
                        }
                    }

                    //E
                    if (Player.Distance(target.ServerPosition) <= E.Range && shouldE &&
                        (Player.GetSpellDamage(target, SpellSlot.E)) > target.Health + 20)
                    {
                        if (E.IsReady())
                        {
                            CancelUlt(target);
                            E.Cast(target);
                            E.LastCastAttemptT = Utils.TickCount + delay;
                            //Game.PrintChat("ks 8");
                            return;
                        }
                    }

                    //R
                    if (Player.Distance(target.ServerPosition) <= E.Range &&
                        (Player.GetSpellDamage(target, SpellSlot.R) * 5) > target.Health + 20 &&
                        menu.Item("rKS", true).GetValue <bool>())
                    {
                        if (R.IsReady())
                        {
                            OrbwalkManager.SetAttack(false);
                            OrbwalkManager.SetMovement(false);
                            R.Cast();
                            //Game.PrintChat("ks 8");
                            return;
                        }
                    }
                }
            }
        }