コード例 #1
0
ファイル: ModeCombo.cs プロジェクト: Dekryptor/Port-1
        private static void ExecuteCombo()
        {
            var t = CommonTargetSelector.GetTarget(R.Range);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (MenuLocal.Item("Combo.Q").GetValue <bool>() && Q.IsReady() && t.IsValidTarget(Q.Range) &&
                !ObjectManager.Player.HasNocturneParanoia())
            {
                Q.ModeCast(t);
            }

            if (MenuLocal.Item("Combo.Q").GetValue <bool>() && Q.IsReady() && t.IsValidTarget(Q.Range) &&
                t.HasNocturneUnspeakableHorror())
            {
                Q.ModeCast(t);
            }

            if (MenuLocal.Item("Combo.E").GetValue <bool>() && E.IsReady() && t.IsValidTarget(E.Range))
            {
                E.CastOnUnit(t);
            }
        }
コード例 #2
0
ファイル: PlayerSpells.cs プロジェクト: CjShu/xQx-LeagueSharp
        public static void CastE(Obj_AI_Base t)
        {
            if (!E.IsReady() || !t.IsValidTarget(E.Range))
            {
                return;
            }

            if (!Common.CommonHelper.ShouldCastSpell(CommonTargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)))
            {
                return;
            }

            if (Modes.ModeCombo.MenuLocal.Item("Combo.Mode").GetValue <StringList>().SelectedIndex == 1
                //&& LastAutoAttackTick < LastSpellCastTick
                && AutoAttackCount == 0 &&
                t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + (t.HasViQKnockBack() ? 170 : 95)))
            {
                return;
            }

            if (CommonBuffs.ViHasEBuff)
            {
                Modes.ModeConfig.Orbwalker.ForceTarget(t);
                Modes.ModeConfig.Orbwalker.SetAttack(true);
            }
            else
            {
                E.Cast();
            }
        }
コード例 #3
0
ファイル: ModeCombo.cs プロジェクト: wade1990/PortAIO
        private static void ExecuteCombo()
        {
            var t = CommonTargetSelector.GetTarget(R.Range);

            Q.CastSpellSlot(t);
            E.CastSpellSlot(t);
            R.CastSpellSlot(t);
        }
コード例 #4
0
ファイル: ModeCombo.cs プロジェクト: Dekryptor/Port-1
        private static void ExecuteComboR()
        {
            if (!R.IsReady())
            {
                return;
            }

            var comboRMode = MenuLocal.Item("Combo.R").GetValue <StringList>().SelectedIndex;

            if (comboRMode == 0)
            {
                return;
            }

            var t = CommonTargetSelector.GetTarget(R.Range);

            if (!t.IsValidTarget())
            {
                return;
            }

            var canEffectDamage = 0d;

            canEffectDamage += Q.IsReady() && t.IsValidTarget(Q.Range)? Q.GetDamage(t) : 0;
            canEffectDamage += E.IsReady() && t.IsValidTarget(E.Range) ? E.GetDamage(t) + ObjectManager.Player.TotalAttackDamage * 3 : 0;

            if (comboRMode == 1 || comboRMode == 3)
            {
                if (t.Health > ObjectManager.Player.Health &&
                    ObjectManager.Player.HealthPercent < t.HealthPercent &&
                    ObjectManager.Player.Health < t.TotalAttackDamage * 5 &&
                    t.Health < R.GetDamage(t) + ObjectManager.Player.TotalAttackDamage)
                {
                    R.Cast();
                    R.CastOnUnit(t);
                }
            }

            if (comboRMode == 2 || comboRMode == 3)
            {
                if (!t.IsValidTarget(Q.Range) && t.Health < R.GetDamage(t) + ObjectManager.Player.TotalAttackDamage + (Q.IsReady() ? Q.GetDamage(t):0))
                {
                    R.Cast();
                    R.CastOnUnit(t);
                }
            }
        }
コード例 #5
0
ファイル: ModeCombo.cs プロジェクト: CjShu/xQx-LeagueSharp
        private static void OrbwalkingOnBeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!Common.CommonHelper.ShouldCastSpell(CommonTargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)))
            {
                return;
            }

            if (!W.IsReady() || Modes.ModeConfig.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo || MenuLocal.Item("Combo.W").GetValue <StringList>().SelectedIndex == 0)
            {
                return;
            }

            if (Common.CommonHelper.ShouldCastSpell((Obj_AI_Hero)args.Target) && args.Target is Obj_AI_Hero)
            {
                W.Cast();
            }
        }
コード例 #6
0
ファイル: PlayerSpells.cs プロジェクト: CjShu/xQx-LeagueSharp
        public static void CastQ(Obj_AI_Base t)
        {
            if (!Q.CanCast(t))
            {
                return;
            }

            if (!Common.CommonHelper.ShouldCastSpell(CommonTargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)))
            {
                return;
            }


            if (Modes.ModeCombo.MenuLocal.Item("Combo.Mode").GetValue <StringList>().SelectedIndex == 1 &&
                AutoAttackCount == 0 &&
                t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 120) && !Q.IsCharging)
            {
                return;
            }

            //if (Modes.ModeCombo.MenuLocal.Item("Combo.Mode").GetValue<StringList>().SelectedIndex == 1
            //    && LastAutoAttackTick < LastSpellCastTick
            //    && t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
            //{
            //    return;
            //}

            if (Q.IsCharging)
            {
                var qPrediction = Q.GetPrediction(t);
                var hithere     = qPrediction.CastPosition.Extend(ObjectManager.Player.Position, -90);
                if (qPrediction.Hitchance >= HitChance.High)
                {
                    Q.Cast(hithere);
                }
            }
            else
            {
                Q.StartCharging();
            }
        }
コード例 #7
0
ファイル: ModeCombo.cs プロジェクト: CjShu/xQx-LeagueSharp
        private static void ExecuteCombo()
        {
            if (!Common.CommonHelper.ShouldCastSpell(CommonTargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)))
            {
                return;
            }

            var t = CommonTargetSelector.GetTarget(Q.Range);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (IgniteSlot != SpellSlot.Unknown &&
                ObjectManager.Player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                if (t.IsValidTarget(650) && !t.HaveImmortalBuff() && ObjectManager.Player.GetSummonerSpellDamage(t, Damage.SummonerSpell.Ignite) + 150 >= t.Health)
                {
                    ObjectManager.Player.Spellbook.CastSpell(IgniteSlot, t);
                }
            }

            if (MenuLocal.Item("Combo.Q").GetValue <StringList>().SelectedIndex != 0)
            {
                Champion.PlayerSpells.CastQ(t, Q.Range);
            }

            if (Q.CanCast(t) && MenuLocal.Item("Combo.Q").GetValue <StringList>().SelectedIndex == 1 && t.Health < Q.GetDamage(t))
            {
                Champion.PlayerSpells.CastQ(t, Q.Range);
            }

            if (E.CanCast(t) && MenuLocal.Item("Combo.E").GetValue <StringList>().SelectedIndex == 1)
            {
                Champion.PlayerSpells.CastE(t);
            }
        }
コード例 #8
0
        private static void ExecuteModeCustom()
        {
            return;

            var nTarget = CommonTargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (nTarget.IsValidTarget() && nTarget.Health < ComboDamage2xW(nTarget))
            {
            }

            IEnumerable <Vector2> rangedMinionsW = HeroManager.Enemies.Where(e => e.IsValidTarget(W.Range + W.Width + 30)).Select(a => a.Position.To2D());

            //rangedMinionsW.AddRange(HeroManager.Enemies.Where(e => e.IsValidTarget(W.Range + W.Width + 30)).Select(x => x.Position.To2D()));
            //var rangedMinionsW =
            //    HeroManager.Enemies.Where(e => e.IsValidTarget(W.Range + W.Width + 30)).Select(x => x.Position.To2D());

            var locationW = W.GetCircularFarmLocation((List <Vector2>)rangedMinionsW, W.Width * 0.75f);

            if (locationW.MinionsHit > 1)
            {
                ExecuteMode2xW();
            }

            if (Target.IsValidTarget(Q.Range))
            {
                if (HeroManager.Enemies.Find(e => e.Distance(Target) < W.Range && e.NetworkId != Target.NetworkId) ==
                    null)
                {
                    ExecuteMode2xQ();
                }
            }
            else if (Target.IsValidTarget(Q.Range) && MenuHunt.Item("Hunt." + Target.ChampionName).GetValue <bool>())
            {
                ExecuteMode2xQ();
            }
        }
コード例 #9
0
ファイル: PlayerSpells.cs プロジェクト: CjShu/xQx-LeagueSharp
        public static void CastR(Obj_AI_Base t)
        {
            if (!R.CanCast(t))
            {
                return;
            }

            if (!Common.CommonHelper.ShouldCastSpell(CommonTargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)))
            {
                return;
            }

            if (Modes.ModeCombo.MenuLocal.Item("Combo.Mode").GetValue <StringList>().SelectedIndex == 1 &&
                AutoAttackCount == 0 &&
                t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 120))
            {
                return;
            }

            if (CommonBuffs.ViHasEBuff && t.Health <= CommonMath.GetComboDamage(t))
            {
                R.CastOnUnit(t);
            }
        }
コード例 #10
0
        private static void DrawingOnOnDraw(EventArgs args)
        {
            if (MenuGUI.IsShopOpen)
            {
                return;
            }

            //if (Target.IsValidTarget(Q.Range*2))
            //{
            //    var wComboHits = GetWHits(Target, HeroManager.Enemies.Where(e => e.IsValidTarget(W.Range + W.Width)).Cast<Obj_AI_Base>().ToList());
            //}
            if (ObjectManager.Player.IsDead)
            {
                return;
            }

            if (!Modes.ModeDraw.MenuLocal.Item("Draw.Enable").GetValue <bool>())
            {
                return;
            }


            var nTarget = CommonTargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (nTarget.IsValidTarget() && nTarget.Health < ComboDamage2xW(nTarget))
            {
                Render.Circle.DrawCircle(nTarget.Position, 105f, System.Drawing.Color.AliceBlue);
            }

            var xComboString = "Combo Mode: ";

            System.Drawing.Color xComboColor = System.Drawing.Color.FromArgb(100, 255, 200, 37);

            string[] vComboString = new[]
            {
                "Q : R", "W : R", "Auto"
            };

            System.Drawing.Color[] vComboColor = new[]
            {
                System.Drawing.Color.FromArgb(255, 4, 0, 255),
                System.Drawing.Color.FromArgb(198, 255, 0, 0),
                System.Drawing.Color.FromArgb(198, 71, 255, 31),
            };

            var nComboMode = MenuLocal.Item("Combo.Mode").GetValue <StringList>().SelectedIndex;

            xComboString = xComboString + vComboString[MenuLocal.Item("Combo.Mode").GetValue <StringList>().SelectedIndex];
            xComboColor  = vComboColor[MenuLocal.Item("Combo.Mode").GetValue <StringList>().SelectedIndex];

            //switch (xCombo)
            //{
            //    case 1:
            //        xComboStr += "Q : R";
            //        color = System.Drawing.Color.FromArgb(100, 4, 0, 255);
            //        break;

            //    case 2:
            //        xComboStr += "W : R";
            //        color = System.Drawing.Color.FromArgb(100, 255, 0, 0);
            //        break;

            //    case 3:
            //        xComboStr += "E : R";
            //        color = System.Drawing.Color.FromArgb(100, 0, 255, 8);
            //        break;
            //}
            //Drawing.DrawText(Drawing.Width * 0.45f, Drawing.Height * 0.80f, Color.GreenYellow, xComboStr);

            Common.CommonGeometry.DrawBox(new Vector2(Drawing.Width * 0.45f, Drawing.Height * 0.80f), 115, 18, xComboColor, 1, System.Drawing.Color.Black);
            Common.CommonGeometry.DrawText(CommonGeometry.Text, xComboString, Drawing.Width * 0.455f, Drawing.Height * 0.803f, SharpDX.Color.Wheat);

            //Common.CommonGeometry.DrawBox( new Vector2((int) ObjectManager.Player.HPBarPosition.X + 145, (int) ObjectManager.Player.HPBarPosition.Y + 5), 115, 18, xComboColor, 1, System.Drawing.Color.Black);
            //Common.CommonGeometry.DrawText(CommonGeometry.Text, xComboString, ObjectManager.Player.HPBarPosition.X + 150, ObjectManager.Player.HPBarPosition.Y + 7, SharpDX.Color.Wheat);

            //if (nComboMode == 3)
            //{
            //    string[] qComboMenuItemStr = new[] { "Just 1 v 1 Mode", "if Priority Target are killable", "Both" };
            //    var qComboString = qComboMenuItemStr[MenuLocal.Item("Combo.Mode.QR").GetValue<StringList>().SelectedIndex];

            //    //Common.CommonGeometry.DrawBox(new Vector2((int)ObjectManager.Player.HPBarPosition.X + 145,(int)ObjectManager.Player.HPBarPosition.Y + 5 + 20), 180, 15, System.Drawing.Color.FromArgb(100, 252, 252, 252), 1,System.Drawing.Color.DimGray);
            //    Common.CommonGeometry.DrawText(CommonGeometry.TextSmall, "Q x R : " + qComboString, ObjectManager.Player.HPBarPosition.X + 150, ObjectManager.Player.HPBarPosition.Y + 7 + 20,SharpDX.Color.White);


            //    int x = MenuLocal.Item("Combo.Mode.WR.Kill").GetValue<StringList>().SelectedIndex + 1;
            //    var wComboStrinKill = "Min. Killable Enemy Count >= " + x;
            //    //Common.CommonGeometry.DrawBox(new Vector2((int)ObjectManager.Player.HPBarPosition.X + 145,(int)ObjectManager.Player.HPBarPosition.Y + 5 + 20 + 16), 180, 15, System.Drawing.Color.FromArgb(100, 252, 252, 252), 1,System.Drawing.Color.DimGray);
            //    Common.CommonGeometry.DrawText(CommonGeometry.TextSmall, "W x R : " + wComboStrinKill,ObjectManager.Player.HPBarPosition.X + 150, ObjectManager.Player.HPBarPosition.Y + 7 + 20 + 17,SharpDX.Color.White);

            //}


            return;

            var t = CommonTargetSelector.GetTarget(W.Range + Q.Range - 20, TargetSelector.DamageType.Magical);

            if (!t.IsValidTarget(W.Range + Q.Range - 20))
            {
                return;
            }

            if (t.IsValidTarget(W.Range))
            {
                return;
            }

            bool canJump = false;

            if (ComboMode == ComboMode.Mode2xQ)
            {
                if ((t.Health < ComboDamage2xQ(t) && Q.IsReady() && R.IsReady()) ||
                    (t.Health < Q.GetDamage(t) && Q.IsReady()))
                {
                    canJump = true;
                }
            }

            if (canJump && W.IsReady() && !W.StillJumped())
            {
                var x = GetJumpPosition(t, W.Range);
                if (Modes.ModeConfig.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    W.Cast(x);
                }
                return;
            }
        }
コード例 #11
0
ファイル: ModeJump.cs プロジェクト: wade1990/PortAIO
        private static void GameOnOnUpdate(EventArgs args)
        {
            JumpTarget = CommonTargetSelector.GetTarget(Q.Range * 3, TargetSelector.DamageType.Physical);
            if (ModeConfig.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
            {
                return;
            }

            if (!JumpTarget.IsValidTarget())
            {
                return;
            }

            if (!JumpObject.IsValidTarget(Q.Range))
            {
                return;
            }

            if (!Q.IsReady())
            {
                return;
            }

            if (!MenuLocal.Item("Jump.Enabled").GetValue <KeyBind>().Active)
            {
                return;
            }
            var jumpMode = MenuLocal.Item("Jump.Mode").GetValue <StringList>().SelectedIndex;

            if (jumpMode != 0)
            {
                switch (jumpMode)
                {
                case 1:
                {
                    Q.CastOnUnit(JumpObject);
                    break;
                }

                case 2:
                {
                    if (JumpTarget.CanStun())
                    {
                        Q.CastOnUnit(JumpObject);
                    }
                    break;
                }

                case 3:
                {
                    if (JumpTarget.Health < CommonMath.GetComboDamage(JumpTarget))
                    {
                        Q.CastOnUnit(JumpObject);
                    }
                    break;
                }

                case 4:
                {
                    if (JumpTarget.CanStun() || JumpTarget.Health < CommonMath.GetComboDamage(JumpTarget))
                    {
                        Q.CastOnUnit(JumpObject);
                    }
                    break;
                }
                }
            }

            //if (!JumpTarget.IsValidTarget(Q.Range) && !JumpTarget.IsValidTarget(Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65))
            //{
            //    ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, JumpTarget);
            //}


            return;

            if (JumpTarget.UnderTurret(true) && MenuLocal.Item("Jump.TurretControl").GetValue <StringList>().SelectedIndex == 0)
            {
                return;
            }


            if (JumpTarget.UnderTurret(true) &&
                MenuLocal.Item("Jump.TurretControl").GetValue <StringList>().SelectedIndex == 1 &&
                JumpTarget.Health < Common.CommonMath.GetComboDamage(JumpTarget))
            {
                Q.CastOnUnit(JumpObject);
            }

            var jumpQ = MenuLocal.Item("Jump.TurretControl").GetValue <StringList>().SelectedIndex;

            switch (jumpQ)
            {
            case 0:
            {
                Q.CastOnUnit(JumpObject);
                break;
            }

            case 1:
            {
                if (JumpTarget.CanStun())
                {
                    Q.CastOnUnit(JumpObject);
                }
                break;
            }

            case 2:
            {
                if (JumpTarget.Health < Common.CommonMath.GetComboDamage(JumpTarget))
                {
                    Q.CastOnUnit(JumpObject);
                }
                break;
            }

            case 3:
            {
                if (JumpTarget.CanStun() && JumpTarget.Health < Common.CommonMath.GetComboDamage(JumpTarget))
                {
                    Q.CastOnUnit(JumpObject);
                }
                break;
            }
            }
        }
コード例 #12
0
        private static void ExecuteToggle()
        {
            if (!ModeConfig.MenuKeys.Item("Key.HarassToggle").GetValue <KeyBind>().Active || ObjectManager.Player.ManaPercent < CommonManaManager.HarassMinManaPercent)
            {
                return;
            }

            var modeToggle = LocalMenu.Item("Harass.ToggleQEP").GetValue <StringList>().SelectedIndex;

            if (modeToggle == 0)
            {
                return;
            }

            var t = CommonTargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            switch (modeToggle)
            {
            case 1:
            {
                if (Q.IsReady())
                {
                    if (t.IsValidTarget(Q.Range))
                    {
                        Q.ModeCast(t);
                    }
                }
                break;
            }

            case 2:
            {
                if (E.IsReady())
                {
                    if (t.IsValidTarget(E.Range))
                    {
                        E.CastOnUnit(t);
                    }
                }
                break;
            }

            case 3:
            {
                if (Q.IsReady() && E.IsReady())
                {
                    if (t.IsValidTarget(E.Range))
                    {
                        E.CastOnUnit(t);
                        Q.ModeCast(t);
                    }
                }
                break;
            }

            case 4:
            {
                if (Q.IsReady() && E.IsReady() && ObjectManager.Player.HasPassive())
                {
                    if (t.IsValidTarget(E.Range))
                    {
                        E.CastOnUnit(t);
                        Q.ModeCast(t);
                    }
                }
                break;
            }
            }
        }
コード例 #13
0
        private static void ExecuteCombo()
        {
            var t = CommonTargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (Q.CanCast(t))
            {
                if (Q.CanCast(t) && t.Health <= PlayerSpells.WarwickDamage.Q(PlayerSpells.WarwickDamage.QFor.Enemy))
                {
                    Q.CastOnUnit(t);
                }

                if (t.IsValidTarget(CommonHelper.PlayerAutoAttackRange) &&
                    ObjectManager.Player.Health + PlayerSpells.WarwickDamage.Q(PlayerSpells.WarwickDamage.QFor.Health) > ObjectManager.Player.MaxHealth)
                {
                    return;
                }

                Q.CastOnUnit(t);
            }

            if (R.IsReady())
            {
                if (Q.CanCast(t) && t.Health <= PlayerSpells.WarwickDamage.Q(PlayerSpells.WarwickDamage.QFor.Enemy))
                {
                    Q.CastOnUnit(t);
                    return;
                }

                if (t.IsValidTarget(CommonHelper.PlayerAutoAttackRange) && t.Health < ObjectManager.Player.TotalAttackDamage * 3 && ObjectManager.Player.HealthPercent > t.HealthPercent)
                {
                    return;
                }

                if (t.HasBuff("bansheeveil")) // don't use R if enemy's banshee is active!
                {
                    return;
                }

                if (t.HasBuff("BlackShield")) // don't use R if enemy have morgana black shild!
                {
                    return;
                }

                if (MenuLocal.Item("Mode.R" + t.ChampionName).GetValue <StringList>().SelectedIndex != 0)
                {
                    switch (MenuLocal.Item("Mode.R" + t.ChampionName).GetValue <StringList>().SelectedIndex)
                    {
                    case 1:
                    {
                        R.CastOnUnit(t);
                        break;
                    }

                    case 2:
                        if (t.Health <= CommonMath.GetComboDamage(t))
                        {
                            R.CastOnUnit(t);
                        }
                        break;
                    }
                }
            }
        }
コード例 #14
0
ファイル: ModeCombo.cs プロジェクト: wade1990/PortAIO
        private static void ExecuteCombo()
        {
            if (!Common.CommonHelper.ShouldCastSpell(CommonTargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)))
            {
                return;
            }

            var t = CommonTargetSelector.GetTarget(R.Range);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (t.IsValidTarget(Q.Range) && MenuLocal.Item("Combo.Q.KillSteal").GetValue <StringList>().SelectedIndex == 1)
            {
                var enemy = HeroManager.Enemies.Find(e => Q.CanCast(e) && e.Health < Q.GetDamage(e));
                if (enemy != null)
                {
                    Champion.PlayerSpells.CastQCombo(enemy);
                }
            }

            if (t.IsValidTarget(Q.Range) && MenuLocal.Item("Combo.Q").GetValue <StringList>().SelectedIndex == 1 && t.Health < Q.GetDamage(t))
            {
                var closesMinion =
                    MinionManager.GetMinions(Q.Range)
                    .Where(
                        m =>
                        m.Distance(t.Position) < Orbwalking.GetRealAutoAttackRange(null) &&
                        m.Health < Q.GetDamage(m) - 15)
                    .OrderBy(m1 => m1.Distance(t.Position))
                    .FirstOrDefault();

                if (closesMinion != null)
                {
                    Q.CastOnUnit(closesMinion);
                }
                else
                {
                    Champion.PlayerSpells.CastQCombo(t);
                }
            }

            if (t.IsValidTarget(Q.Range) && MenuLocal.Item("Combo.Q").GetValue <StringList>().SelectedIndex == 1 && !t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
            {
                Champion.PlayerSpells.CastQCombo(t);
            }

            if (t.IsValidTarget(E.Range))
            {
                switch (MenuLocal.Item("Combo.E").GetValue <StringList>().SelectedIndex)
                {
                case 1:
                {
                    Champion.PlayerSpells.CastECombo(t);
                    break;
                }

                case 2:
                {
                    if (t.Health > ObjectManager.Player.Health)
                    {
                        Champion.PlayerSpells.CastECombo(t);
                    }
                    break;
                }
                }
            }

            if (R.IsReady() && MenuLocal.Item("Combo.R").GetValue <StringList>().SelectedIndex == 1 && t.IsValidTarget(R.Range) && BladesSpellCount >= 0)
            {
                if (!t.IsValidTarget(Q.Range + Orbwalking.GetRealAutoAttackRange(null)) && t.Health < R.GetDamage(t) * 4)
                {
                    PredictionOutput rPredictionOutput = R.GetPrediction(t);
                    Vector3          castPosition      = rPredictionOutput.CastPosition.Extend(ObjectManager.Player.Position, -(ObjectManager.Player.Distance(t.ServerPosition) >= 450 ? 80 : 120));

                    if (rPredictionOutput.Hitchance >=
                        (ObjectManager.Player.Distance(t.ServerPosition) >= R.Range / 2 ? HitChance.VeryHigh : HitChance.High) &&
                        ObjectManager.Player.Distance(castPosition) < R.Range)
                    {
                        R.Cast(castPosition);
                    }
                }

                if (CommonMath.GetComboDamage(t) > t.Health && t.IsValidTarget(Q.Range) && Q.IsReady())
                {
                    R.Cast(t, false, true);
                }

                if (BladesSpellCount > 0 && BladesSpellCount <= 3)
                {
                    var enemy = HeroManager.Enemies.Find(e => e.Health < R.GetDamage(e) * BladesSpellCount && e.IsValidTarget(R.Range));
                    if (enemy == null)
                    {
                        foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(R.Range)))
                        {
                            R.Cast(e, false, true);
                        }
                    }
                    else
                    {
                        R.Cast(enemy, false, true);
                    }
                }
            }
        }