Example #1
0
        public override void Execute()
        {
            var t = AdvancedTargetSelector.GetTarget(RActive ? R.Range : W.Range, DamageType.Physical);

            if (t == null || !t.IsValidTarget())
            {
                return;
            }

            Orbwalker.ForcedTarget = t;

            var useW    = isChecked(HarassMenu, "harassW");
            var useE    = isChecked(HarassMenu, "harassE");
            var hMode   = getSliderValue(HarassMenu, "hMode");
            var minMana = getSliderValue(HarassMenu, "harassMana");

            if (W.IsReady() && useW &&
                _Player.ManaPercent >= minMana)
            {
                var pred = W.GetPrediction(t);
                if (pred.HitChance >= HitChance.High)
                {
                    W.Cast(pred.CastPosition);
                }
            }

            if (E.IsReady() && useE)
            {
                switch (hMode)
                {
                case 0:
                    if (CanCastE)
                    {
                        E.Cast();
                    }
                    return;

                case 1:
                    foreach (
                        var enemy in
                        EntityManager.Heroes.Enemies.Where(e => e.IsValidTarget(E.Range) && e.IsEnemy &&
                                                           e.IsVisible && !e.IsZombie && !e.IsDead &&
                                                           e.HasBuff("twitchdeadlyvenom")))
                    {
                        if (DmgLib.EDamage(enemy) >= enemy.Health)
                        {
                            E.Cast();
                        }
                    }
                    return;
                }
            }
        }
Example #2
0
        public override void Execute()
        {
            var q = PluginModel.Q;
            var w = PluginModel.W;
            var e = PluginModel.E;

            var target = AdvancedTargetSelector.GetTarget(q.Range + w.Range, DamageType.Physical);

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

            if (w.IsReady() && e.IsReady() && q.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsQ") && Misc.IsChecked(PluginModel.HarassMenu, "hsW") && Misc.IsChecked(PluginModel.HarassMenu, "hsE") && !Player.Instance.HasBuff("zedwhandler"))
            {
                var predictionW = w.GetPrediction(target);

                if (predictionW.HitChance >= HitChance.Medium && !Player.Instance.HasBuff("zedwhandler") && ShadowManager.CanCastW)
                {
                    Player.CastSpell(SpellSlot.W, predictionW.CastPosition);
                }
            }

            if (e.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsE"))
            {
                if (e.IsInRange(target))
                {
                    e.Cast();
                }
                else
                {
                    var shadows = ShadowManager.GetShadows();

                    if (shadows.Count > 0)
                    {
                        if (shadows.FirstOrDefault(shadow => shadow.Distance(target) < e.Range) != null)
                        {
                            e.Cast();
                        }
                    }
                }
            }

            if (q.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsQ"))
            {
                var predictionQ = q.GetPrediction(target);

                if (predictionQ.HitChance >= HitChance.High)
                {
                    q.Cast(predictionQ.CastPosition);
                }
            }
        }
Example #3
0
        public override void Execute()
        {
            var t = AdvancedTargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (t == null || !t.IsValidTarget())
            {
                return;
            }

            Orbwalker.ForcedTarget = t;

            if (E.IsReady() && MenuX.Modes.Harass.UseE && MenuX.Modes.Harass.MinMana <= _Player.ManaPercent)
            {
                var pred = E.GetPrediction(t);
                var unit = pred.UnitPosition;
                var okay = _Player.Distance(unit) <=
                           E.Range + Misc.GetArrivalTime(_Player.Distance(unit), E.CastDelay, E.Speed) * t.MoveSpeed;
                {
                    switch (MenuX.Modes.Harass.ModeE)
                    {
                    case 0:
                        E.Cast(pred.CastPosition);
                        return;

                    case 1:
                        E.Cast(t.Position.Shorten(_Player.Position, 150));
                        return;
                    }
                }
            }

            if (Q.IsReady() && MenuX.Modes.Harass.UseQ && MenuX.Modes.Harass.MinMana <= _Player.ManaPercent)
            {
                var pred = Q.GetPrediction(t);
                if (pred.HitChancePercent >= 70)
                {
                    Q.Cast(pred.CastPosition);
                }
            }
            if (W.IsReady() && MenuX.Modes.Harass.UseW && MenuX.Modes.Harass.MinMana <= _Player.ManaPercent)
            {
                var pred = W.GetPrediction(t);
                if (pred.HitChance >= HitChance.Immobile)
                {
                    W.Cast(pred.CastPosition);
                }
                else if (pred.HitChance >= HitChance.High)
                {
                    W.Cast(pred.CastPosition);
                }
            }
        }
Example #4
0
        public static void Combo()
        {
            var shadows = GetShadows();

            if (!shadows.Any() ||
                (!Misc.IsChecked(ComboMenu, "comboQ") && !Misc.IsChecked(ComboMenu, "comboE")) ||
                (!E.IsReady() && !E.IsReady()))
            {
                return;
            }

            foreach (var objAiBase in shadows)
            {
                if (((Misc.IsChecked(ComboMenu, "comboQ") && !Q.IsReady()) || !Misc.IsChecked(ComboMenu, "comboQ")) &&
                    ((Misc.IsChecked(ComboMenu, "comboE") && !E.IsReady()) || !Misc.IsChecked(ComboMenu, "comboE")))
                {
                    break;
                }

                if (Misc.IsChecked(ComboMenu, "comboQ") && Q.IsReady())
                {
                    var target = AdvancedTargetSelector.GetTarget(
                        Q.Range,
                        DamageType.Physical,
                        true,
                        objAiBase.Position);

                    if (target != null)
                    {
                        var predictionQ = Q.GetPrediction(target);

                        if (predictionQ.HitChance >= HitChance.Medium)
                        {
                            Q.Cast(predictionQ.CastPosition);
                        }
                    }
                }

                if (Misc.IsChecked(ComboMenu, "comboE") && E.IsReady())
                {
                    var target = AdvancedTargetSelector.GetTarget(E.Range, DamageType.Physical, true, objAiBase.Position);

                    if (target != null)
                    {
                        E.Cast();
                    }
                }
            }
        }
Example #5
0
        public override void Execute()
        {
            var t = AdvancedTargetSelector.GetTarget(RActive ? R.Range : W.Range, DamageType.Physical);

            if (t == null || !t.IsValidTarget())
            {
                return;
            }

            Orbwalker.ForcedTarget = t;

            var useW = isChecked(ComboMenu, "comboW");
            var useE = isChecked(ComboMenu, "comboE");
            var useR = isChecked(ComboMenu, "comboR");
            var minR = getSliderValue(ComboMenu, "comboMinR");

            ItemManager.UseYomu();
            ItemManager.UseBtrk(t);

            if (W.IsReady() && useW)
            {
                var pred = W.GetPrediction(t);
                if (pred.HitChance >= HitChance.High)
                {
                    W.Cast(pred.CastPosition);
                }
            }

            if (E.IsReady() && useE)
            {
                foreach (var enemy in EntityManager.Heroes.Enemies.Where(e => e.IsValidTarget(E.Range) && e.IsEnemy &&
                                                                         e.IsVisible && !e.IsZombie && !e.IsDead &&
                                                                         e.HasBuff("twitchdeadlyvenom")))
                {
                    if (DmgLib.EDamage(enemy) >= enemy.Health)
                    {
                        E.Cast();
                    }
                }
            }

            if (R.IsReady() && _Player.CountEnemiesInRange(R.Range) >= minR && useR)
            {
                R.Cast();
            }
        }
Example #6
0
        public override void Execute()
        {
            var q = PluginModel.Q;
            var w = PluginModel.W;

            var target = AdvancedTargetSelector.GetTarget(w.Range, DamageType.Physical);

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

            PluginModel.ActiveMode = EnumModeManager.Harass;

            Orbwalker.ForcedTarget = target;

            if (PassiveController.HasUltiPassive(target))
            {
                var targetpos = Prediction.Position.PredictUnitPosition(target, 250);
                var poses     = PassiveController.UltiPassivePos(target);
                var castpos   = poses.OrderByDescending(x => x.Distance(targetpos)).FirstOrDefault();

                q.Cast(castpos);
            }

            if (q.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsQ") && ManaManager.CanUseSpell(PluginModel.HarassMenu, "hsMana"))
            {
                var targetpos = Prediction.Position.PredictUnitPosition(target, 250);

                if (Misc.IsChecked(PluginModel.HarassMenu, "hsQPassiveRange") && q.IsInRange(targetpos.To3D()) &&
                    PassiveController.HasPassive(target))
                {
                    var castPos        = PassiveController.PassivePosition(target);
                    var validPositions = PassiveController.PassiveRadiusPoint(target);

                    if (castPos.IsValid() && castPos.Distance(Player.Instance.ServerPosition) <= 300 && castPos.InTheCone(validPositions, castPos.To2D()))
                    {
                        Player.CastSpell(SpellSlot.Q, castPos);
                    }
                }
                else
                {
                    Player.CastSpell(SpellSlot.Q, target.ServerPosition);
                }
            }

            if (w.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsW") && ManaManager.CanUseSpell(PluginModel.HarassMenu, "hsMana"))
            {
                if (q.IsReady() || !(target.Distance(Player.Instance) > Player.Instance.GetAutoAttackRange()))
                {
                    return;
                }

                var prediction = w.GetPrediction(target);

                if (prediction.HitChancePercent >= 70)
                {
                    w.Cast(prediction.CastPosition);
                }
            }
        }
Example #7
0
        public override void Execute()
        {
            var q = PluginModel.Q;
            var w = PluginModel.W;
            var e = PluginModel.E;

            var target = AdvancedTargetSelector.GetTarget(q.Range, DamageType.Physical);

            if (target == null || !target.IsValidTarget() || Player.Instance.HasBuff("zedr2") || target.IsDead)
            {
                return;
            }

            if (DmgLib.PossibleDamage(target) < target.Health)
            {
                return;
            }

            if (w.IsReady() && e.IsReady() && q.IsReady() && Misc.IsChecked(PluginModel.PermaActiveMenu, "paQ") && Misc.IsChecked(PluginModel.PermaActiveMenu, "paW") && Misc.IsChecked(PluginModel.PermaActiveMenu, "paE") && !Player.Instance.HasBuff("zedwhandler") && !target.IsDead)
            {
                Player.CastSpell(SpellSlot.W, target.Position);
            }

            if (e.IsReady() && Misc.IsChecked(PluginModel.PermaActiveMenu, "paE") && !target.IsDead)
            {
                if (e.IsInRange(target))
                {
                    e.Cast();
                }
                else
                {
                    var shadows = ShadowManager.GetShadows();

                    if (shadows.Count > 0)
                    {
                        if (shadows.FirstOrDefault(shadow => shadow.Distance(target) < e.Range) != null)
                        {
                            e.Cast();
                        }
                    }
                }
            }

            if (q.IsReady() && Misc.IsChecked(PluginModel.PermaActiveMenu, "paQ") && !target.IsDead)
            {
                var predictionQ = q.GetPrediction(target);
                var shadows     = ShadowManager.GetShadows();

                if (predictionQ.HitChance >= HitChance.High)
                {
                    q.Cast(predictionQ.CastPosition);
                }
                else if (shadows.Count > 0)
                {
                    var predictionPos = Prediction.Position.PredictUnitPosition(target, q.CastDelay);
                    if (shadows.FirstOrDefault(shadow => shadow.Distance(target) < q.Range) != null)
                    {
                        q.Cast(predictionPos.To3D());
                    }
                }
            }
        }
Example #8
0
        public override void Execute()
        {
            var t = AdvancedTargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (t == null || !t.IsValidTarget())
            {
                return;
            }

            Orbwalker.ForcedTarget = t;

            if (E.IsReady() && MenuX.Modes.Combo.UseE)
            {
                var pred = E.GetPrediction(t);
                var unit = pred.UnitPosition;
                var okay = _Player.Distance(unit) <=
                           E.Range + Misc.GetArrivalTime(_Player.Distance(unit), E.CastDelay, E.Speed) * t.MoveSpeed;
                if (okay)
                {
                    switch (MenuX.Modes.Combo.ModeE)
                    {
                    case 0:
                        E.Cast(pred.CastPosition);
                        return;

                    case 1:
                        E.Cast(t.Position.Shorten(_Player.Position, 150));
                        return;
                    }
                }
            }

            if (Q.IsReady() && MenuX.Modes.Combo.UseQ)
            {
                var pred = Q.GetPrediction(t);
                if (pred.HitChancePercent >= 70)
                {
                    Q.Cast(pred.CastPosition);
                }
            }

            if (W.IsReady() && MenuX.Modes.Combo.UseW)
            {
                var pred = W.GetPrediction(t);
                if (pred.HitChance >= HitChance.Immobile)
                {
                    W.Cast(pred.CastPosition);
                }
                else if (pred.HitChance >= HitChance.High)
                {
                    W.Cast(pred.CastPosition);
                }
            }



            if (R.IsReady() && MenuX.Modes.Combo.UseR)
            {
                if (DamageLib.RDamage(t) >= t.Health)
                {
                    Player.CastSpell(SpellSlot.R, t);
                }
            }

            if (_Player.GetSummonerSpellDamage(t, DamageLibrary.SummonerSpells.Ignite) >= t.Health && MenuX.Modes.Combo.UseIg &&
                _Player.Distance(t) <= 0x258 && HasIgnite)
            {
                _Player.Spellbook.CastSpell(Ignite, t);
            }
        }
Example #9
0
        public override void Execute()
        {
            if (PluginModel.ActionQueue.ExecuteNextAction(PluginModel.ComboQueue))
            {
                return;
            }

            var q = PluginModel.Q;
            var r = PluginModel.R;
            var w = PluginModel.W;
            var e = PluginModel.E;

            var target = AdvancedTargetSelector.GetTarget(q.Range, DamageType.Physical);

            if (target == null || !target.IsValidTarget())
            {
                if (Player.Instance.HasBuff("zedr2") && r.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboR") && ShadowManager.CanCastR(false))
                {
                    var nearEnemyTower =
                        EntityManager.Turrets.Enemies.FirstOrDefault(t => t.Distance(Player.Instance) < 1050 && !t.IsDead);
                    if (nearEnemyTower == null)
                    {
                        return;
                    }

                    r.Cast();
                }

                return;
            }

            if (Misc.IsChecked(PluginModel.ComboMenu, "comboStyle"))
            {
                #region All In

                if (Player.Instance.HasBuff("zedr2") && r.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboR"))
                {
                    if (w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") && w.State != SpellState.NoMana)
                    {
                        if (Player.Instance.HasBuff("zedwhandler") &&
                            Player.Instance.AttackRange <= Player.Instance.Distance(target) && !Player.Instance.HasBuff("zedr2"))
                        {
                            var shadows = ShadowManager.GetShadows();

                            if (shadows.Count > 0)
                            {
                                foreach (
                                    var shadow in
                                    shadows.Where(
                                        shadow => shadow.Distance(target) < Player.Instance.Distance(target)))
                                {
                                    ShadowManager.Cast(target);
                                }
                            }
                        }
                        else
                        {
                            if (!Player.Instance.HasBuff("zedwhandler"))
                            {
                                Player.CastSpell(SpellSlot.W,
                                                 Prediction.Position.PredictUnitPosition(target, 250).To3D());
                            }
                        }
                    }

                    if (e.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboE") && e.State != SpellState.NoMana)
                    {
                        var shadows = ShadowManager.GetShadows();
                        if (Player.Instance.Distance(target) < e.Range)
                        {
                            e.Cast();
                        }
                        else if (shadows.Count > 0)
                        {
                            foreach (
                                var shadow in
                                shadows.Where(shadow => shadow.Distance(target) < Player.Instance.Distance(target)))
                            {
                                e.Cast();
                            }
                        }
                    }

                    if (q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") && q.IsInRange(target) &&
                        q.State != SpellState.NoMana)
                    {
                        var predictionQ = q.GetPrediction(target);

                        if (predictionQ.HitChance >= HitChance.Medium)
                        {
                            q.Cast(predictionQ.CastPosition);
                        }
                    }

                    if (!q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") &&
                        (!w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") ||
                         Player.Instance.HasBuff("zedwhandler")) && !e.IsReady() &&
                        Misc.IsChecked(PluginModel.ComboMenu, "comboE") && Orbwalker.CanAutoAttack &&
                        Player.Instance.IsInAutoAttackRange(target))
                    {
                        Player.IssueOrder(GameObjectOrder.AttackUnit, target);
                    }
                    else if (!q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") &&
                             (!w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") ||
                              Player.Instance.HasBuff("zedwhandler")) && !e.IsReady() &&
                             Misc.IsChecked(PluginModel.ComboMenu, "comboE") &&
                             Orbwalker.CanAutoAttack && !Player.Instance.IsInAutoAttackRange(target))
                    {
                        Orbwalker.OrbwalkTo(target.Position);
                    }
                }
                else if (r.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboR") && !Player.Instance.HasBuff("zedr2") && ShadowManager.CanCastR(true))
                {
                    if (r.IsInRange(target) && !Player.Instance.HasBuff("zedr2"))
                    {
                        r.Cast(target);
                    }
                }
                else
                {
                    if (w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") && w.State != SpellState.NoMana)
                    {
                        if (Player.Instance.HasBuff("zedwhandler") && Player.Instance.IsInAutoAttackRange(target))
                        {
                            var shadows = ShadowManager.GetShadows();

                            if (shadows.Count > 0)
                            {
                                var turret = EntityManager.Turrets.Enemies.FirstOrDefault(t => t.Distance(target) < 1050);
                                foreach (
                                    var shadow in
                                    shadows.Where(
                                        shadow =>
                                        shadow.Distance(target) < Player.Instance.Distance(target) &&
                                        (turret == null || turret.IsDead)))
                                {
                                    ShadowManager.Cast(target);
                                }
                            }
                        }
                        else
                        {
                            if (!Player.Instance.HasBuff("zedwhandler"))
                            {
                                Player.CastSpell(SpellSlot.W,
                                                 Prediction.Position.PredictUnitPosition(target, 250).To3D());
                            }
                        }
                    }

                    if (e.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboE") &&
                        Player.Instance.Distance(target) < e.Range && e.State != SpellState.NoMana)
                    {
                        e.Cast();
                    }

                    if (q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") && q.IsInRange(target) &&
                        q.State != SpellState.NoMana)
                    {
                        var predictionQ = q.GetPrediction(target);

                        if (predictionQ.HitChance >= HitChance.Medium)
                        {
                            q.Cast(predictionQ.CastPosition);
                        }
                    }
                }

                #endregion
            }
            else
            {
                #region lineCombo

                if (Player.Instance.HasBuff("zedr2") && r.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboR") && ShadowManager.CanCastR(false))
                {
                    ItemManager.UseAll(target);
                    if (w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") && w.State != SpellState.NoMana)
                    {
                        if (Player.Instance.HasBuff("zedwhandler") && Player.Instance.AttackRange <= Player.Instance.Distance(target))
                        {
                            var shadows = ShadowManager.GetShadows();

                            if (shadows.Count > 0)
                            {
                                foreach (var shadow in shadows.Where(shadow => shadow.Distance(target) < Player.Instance.Distance(target)))
                                {
                                    ShadowManager.Cast(target);
                                }
                            }
                        }
                        else
                        {
                            if (!Player.Instance.HasBuff("zedwhandler") && PluginModel.StartPosCombo.IsZero)
                            {
                                var extendedAfterStartCombo = PluginModel.StartPosCombo.Extend(target,
                                                                                               target.Distance(PluginModel.StartPosCombo) + w.Range);

                                Player.CastSpell(SpellSlot.W, extendedAfterStartCombo.To3D());
                            }
                        }
                    }

                    if (e.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboE") && e.State != SpellState.NoMana)
                    {
                        var shadows = ShadowManager.GetShadows();
                        if (Player.Instance.Distance(target) < e.Range)
                        {
                            e.Cast();
                        }
                        else if (shadows.Count > 0)
                        {
                            foreach (var shadow in shadows.Where(shadow => shadow.Distance(target) < Player.Instance.Distance(target)))
                            {
                                e.Cast();
                            }
                        }
                    }

                    if (q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") && q.IsInRange(target) && q.State != SpellState.NoMana)
                    {
                        var predictionQ = q.GetPrediction(target);

                        if (predictionQ.HitChance >= HitChance.Medium)
                        {
                            q.Cast(predictionQ.CastPosition);
                        }
                    }

                    if (!q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") && (!w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") || Player.Instance.HasBuff("zedwhandler")) && !e.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboE") && Orbwalker.CanAutoAttack && Player.Instance.IsInAutoAttackRange(target))
                    {
                        Player.IssueOrder(GameObjectOrder.AttackUnit, target);
                    }
                    else if (!q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") && (!w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") || Player.Instance.HasBuff("zedwhandler")) && !e.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboE") &&
                             Orbwalker.CanAutoAttack && !Player.Instance.IsInAutoAttackRange(target))
                    {
                        Orbwalker.OrbwalkTo(target.Position);
                    }
                }
                else if (r.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboR") && r.State != SpellState.NoMana && !Player.Instance.HasBuff("zedr2") && ShadowManager.CanCastR(true))
                {
                    if (r.IsInRange(target))
                    {
                        PluginModel.StartPosCombo = Player.Instance.ServerPosition;
                        r.Cast(target);
                        PluginModel.LastRCast = Game.Time;
                    }
                }
                else
                {
                    if (w.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboW") && w.State != SpellState.NoMana)
                    {
                        if (Player.Instance.HasBuff("zedwhandler") && Player.Instance.IsInAutoAttackRange(target))
                        {
                            var shadows = ShadowManager.GetShadows();

                            if (shadows.Count > 0)
                            {
                                var turret = EntityManager.Turrets.Enemies.FirstOrDefault(t => t.Distance(target) < 1050);
                                foreach (var shadow in shadows.Where(shadow => shadow.Distance(target) < Player.Instance.Distance(target) && (turret == null || turret.IsDead)))
                                {
                                    ShadowManager.Cast(target);
                                }
                            }
                        }
                        else
                        {
                            if (!Player.Instance.HasBuff("zedwhandler"))
                            {
                                Player.CastSpell(SpellSlot.W, Prediction.Position.PredictUnitPosition(target, 250).To3D());
                            }
                        }
                    }

                    if (e.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboE") && Player.Instance.Distance(target) < e.Range && e.State != SpellState.NoMana)
                    {
                        e.Cast();
                    }

                    if (q.IsReady() && Misc.IsChecked(PluginModel.ComboMenu, "comboQ") && q.IsInRange(target) && q.State != SpellState.NoMana)
                    {
                        var predictionQ = q.GetPrediction(target);

                        if (predictionQ.HitChance >= HitChance.Medium)
                        {
                            q.Cast(predictionQ.CastPosition);
                        }
                    }
                }

                #endregion
            }
        }