Exemplo n.º 1
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Harass(EntropyEventArgs args)
        {
            /// <summary>
            ///     The R Harass Logic.
            /// </summary>
            if (SpellClass.R.Ready &&
                MenuClass.Spells["r"]["harass"].As <MenuSliderBool>().Enabled)
            {
                var manaCheck =
                    UtilityClass.Player.MPPercent() >
                    ManaManager.GetNeededMana(SpellClass.R.Slot, MenuClass.Spells["r"]["harass"]);
                switch (UtilityClass.Player.Spellbook.GetSpell(SpellSlot.R).ToggleState)
                {
                case 1 when GlacialStorm == null:
                    var bestTarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.R.Range);
                    if (bestTarget != null)
                    {
                        if (manaCheck &&
                            !Invulnerable.Check(bestTarget, DamageType.Magical) &&
                            MenuClass.Spells["r"]["whitelist"][bestTarget.CharName.ToLower()].As <MenuBool>().Enabled)
                        {
                            SpellClass.R.Cast(bestTarget);
                        }
                    }
                    break;

                case 2 when GlacialStorm != null:
                    if (!manaCheck ||
                        !GameObjects.EnemyHeroes.Any(t =>
                                                     !Invulnerable.Check(t, DamageType.Magical) &&
                                                     t.IsValidTarget(SpellClass.R.Width, checkRangeFrom: GlacialStorm.Position) &&
                                                     MenuClass.Spells["r"]["whitelist"][t.CharName.ToLower()].As <MenuBool>().Enabled))
                    {
                        SpellClass.R.Cast();
                    }
                    break;
                }
            }

            /// <summary>
            ///     The Q Harass Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["harass"].As <MenuSliderBool>().Enabled)
            {
                var manaCheck =
                    UtilityClass.Player.MPPercent() >
                    ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["harass"]);
                switch (UtilityClass.Player.Spellbook.GetSpell(SpellSlot.Q).ToggleState)
                {
                case 1 when FlashFrost == null:
                    var bestTarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.Q.Range);
                    if (bestTarget != null)
                    {
                        if (manaCheck &&
                            !Invulnerable.Check(bestTarget, DamageType.Magical) &&
                            MenuClass.Spells["q"]["whitelist"][bestTarget.CharName.ToLower()].As <MenuBool>().Enabled)
                        {
                            SpellClass.Q.Cast(bestTarget);
                        }
                    }
                    break;

                case 2 when FlashFrost != null:
                    if (!GameObjects.EnemyHeroes.Any(t =>
                                                     !Invulnerable.Check(t, DamageType.Magical) &&
                                                     t.IsValidTarget(SpellClass.Q.Width, checkRangeFrom: FlashFrost.Position) &&
                                                     MenuClass.Spells["q"]["whitelist"][t.CharName.ToLower()].As <MenuBool>().Enabled))
                    {
                        SpellClass.Q.Cast();
                    }
                    break;
                }
            }

            /// <summary>
            ///     The E Harass Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["harass"]) &&
                MenuClass.Spells["e"]["harass"].As <MenuSliderBool>().Enabled)
            {
                var bestTarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.E.Range);
                if (bestTarget != null &&
                    !Invulnerable.Check(bestTarget, DamageType.Magical) &&
                    MenuClass.Spells["e"]["whitelist"][bestTarget.CharName.ToLower()].As <MenuBool>().Enabled)
                {
                    switch (MenuClass.Spells["e"]["modes"]["harass"].As <MenuList>().Value)
                    {
                    case 0 when IsChilled(bestTarget):
                        SpellClass.E.CastOnUnit(bestTarget);

                        break;

                    case 1:
                        SpellClass.E.CastOnUnit(bestTarget);
                        break;
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            if (GameObjects.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The R Stacking Manager.
            /// </summary>
            if (GameObjects.Player.InFountain() && Bools.HasTear(GameObjects.Player) &&
                GameObjects.Player.Spellbook.GetSpell(SpellSlot.R).ToggleState == 1 &&
                Vars.Menu["miscellaneous"]["tear"].GetValue <MenuBool>().Value)
            {
                Vars.R.Cast(Game.CursorPos);
            }

            /// <summary>
            ///     The Automatic Q Logic.
            /// </summary>
            if (Vars.Q.IsReady() && GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).ToggleState == 1 &&
                Vars.Menu["spells"]["q"]["logical"].GetValue <MenuBool>().Value)
            {
                foreach (var target in
                         GameObjects.EnemyHeroes.Where(
                             t => Bools.IsImmobile(t) && !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range)))
                {
                    Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition);
                }
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["logical"].GetValue <MenuBool>().Value)
            {
                foreach (var target in
                         GameObjects.EnemyHeroes.Where(
                             t => Bools.IsImmobile(t) && !Invulnerable.Check(t) && t.IsValidTarget(Vars.W.Range)))
                {
                    Vars.W.Cast(
                        GameObjects.Player.ServerPosition.Extend(
                            target.ServerPosition,
                            GameObjects.Player.Distance(target) + 20f));
                }
            }

            /// <summary>
            ///     The Q Missile Manager.
            /// </summary>
            if (Vars.Q.IsReady() && Anivia.QMissile != null &&
                GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).ToggleState != 1)
            {
                switch (Variables.Orbwalker.ActiveMode)
                {
                /// <summary>
                ///     The Clear Q Explosion Logic.
                /// </summary>
                case OrbwalkingMode.LaneClear:
                    if (Anivia.QMissile.Position.CountEnemyHeroesInRange(Vars.Q.Width * 2) > 0)
                    {
                        Vars.Q.Cast();
                    }
                    if (!Vars.Menu["spells"]["q"]["clear"].GetValue <MenuSliderButton>().BValue)
                    {
                        return;
                    }

                    if (Targets.QMinions.Count >= 2)
                    {
                        Vars.Q.Cast();
                    }
                    break;

                /// <summary>
                ///     The Combo Q Explosion Logic.
                /// </summary>
                default:
                    if (!Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value)
                    {
                        return;
                    }

                    if (Anivia.QMissile.Position.CountEnemyHeroesInRange(Vars.Q.Width * 2) > 0)
                    {
                        Vars.Q.Cast();
                    }
                    break;
                }
            }

            /// <summary>
            ///     The R Missile Manager.
            /// </summary>
            if (Vars.R.IsReady() && Anivia.RMissile != null && !GameObjects.Player.InFountain() &&
                GameObjects.Player.Spellbook.GetSpell(SpellSlot.R).ToggleState != 1)
            {
                switch (Variables.Orbwalker.ActiveMode)
                {
                /// <summary>
                ///     The Clear R Disable Logic.
                /// </summary>
                case OrbwalkingMode.LaneClear:
                    if (!Vars.Menu["spells"]["r"]["clear"].GetValue <MenuSliderButton>().BValue)
                    {
                        return;
                    }

                    if (!Targets.RMinions.Any() ||
                        GameObjects.Player.ManaPercent
                        < ManaManager.GetNeededMana(Vars.R.Slot, Vars.Menu["spells"]["r"]["clear"]))
                    {
                        Vars.R.Cast();
                    }
                    break;

                /// <summary>
                ///     The Combo R Disable Logic.
                /// </summary>
                case OrbwalkingMode.Combo:
                    if (!Vars.Menu["spells"]["r"]["combo"].GetValue <MenuBool>().Value)
                    {
                        return;
                    }

                    if (Anivia.RMissile.Position.CountEnemyHeroesInRange(Vars.R.Width + 250f) < 1)
                    {
                        Vars.R.Cast();
                    }
                    break;
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The E Clear Logics.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The E JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    if (GameObjects.Player.ManaPercent >
                        ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) &&
                        Vars.getSliderItem(Vars.EMenu, "clear") != 101)
                    {
                        DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () =>
                        {
                            foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison)))
                            {
                                Vars.E.CastOnUnit(minion);
                            }
                        });
                    }
                }

                /// <summary>
                ///     The E LaneClear Logics.
                /// </summary>
                else if (Targets.Minions.Any())
                {
                    if (GameObjects.Player.ManaPercent <
                        ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "lasthit")) &&
                        Vars.getSliderItem(Vars.EMenu, "lasthit") != 101)
                    {
                        DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () =>
                        {
                            foreach (var minion in Targets.Minions.Where(
                                         m =>
                                         Vars.GetRealHealth(m) <
                                         (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E) +
                                         (m.HasBuffOfType(BuffType.Poison)
                                            ? (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E, DamageStage.Empowered)
                                            : 0)))
                            {
                                Vars.E.CastOnUnit(minion);
                            }
                        });
                    }
                    else if (GameObjects.Player.ManaPercent >=
                             ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) &&
                             Vars.getSliderItem(Vars.EMenu, "clear") != 101)
                    {
                        DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () =>
                        {
                            foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison)))
                            {
                                Vars.E.CastOnUnit(minion);
                            }
                        });
                    }
                }
            }

            /// <summary>
            ///     The Q Clear Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) &&
                Vars.getSliderItem(Vars.QMenu, "clear") != 101)
            {
                /// <summary>
                ///     The Q JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }

                /// <summary>
                ///     The Q LaneClear Logic.
                /// </summary>
                else if (Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                {
                    Vars.Q.Cast(Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                }
            }

            /// <summary>
            ///     The W Clear Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "clear")) &&
                Vars.getSliderItem(Vars.WMenu, "clear") != 101)
            {
                /// <summary>
                ///     The W JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any(m => !m.HasBuffOfType(BuffType.Poison)))
                {
                    Vars.W.Cast(Targets.JungleMinions.Where(m => !m.HasBuffOfType(BuffType.Poison)).FirstOrDefault().ServerPosition);
                }

                /// <summary>
                ///     The W LaneClear Logic.
                /// </summary>
                else if (Vars.W.GetCircularFarmLocation(Targets.Minions, Vars.W.Width).MinionsHit >= 3)
                {
                    Vars.W.Cast(Vars.W.GetCircularFarmLocation(Targets.Minions.Where(m => !m.HasBuffOfType(BuffType.Poison)).ToList(), Vars.W.Width).Position);
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if ((Bools.HasSheenBuff() && Targets.Target.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange())) ||
                !(Variables.Orbwalker.GetTarget() as Obj_AI_Minion).IsValidTarget())
            {
                return;
            }

            /// <summary>
            ///     The Clear Q Logics.
            /// </summary>
            var objAiBase = Variables.Orbwalker.GetTarget() as Obj_AI_Minion;

            if (Vars.Q.IsReady() && objAiBase != null)
            {
                /// <summary>
                ///     The LaneClear & JungleClear Q Logics.
                /// </summary>
                if (Targets.Minions.Contains(objAiBase) &&
                    Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuBool>().Value ||
                    Targets.JungleMinions.Contains(objAiBase) &&
                    Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuBool>().Value)
                {
                    Vars.Q.Cast();
                }
            }

            /// <summary>
            ///     The Clear E Logics.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The JungleClear E Logic.
                /// </summary>
                if (Targets.JungleMinions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["jungleclear"]) &&
                    Vars.Menu["spells"]["e"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.E.CastOnUnit(Variables.Orbwalker.GetTarget() as Obj_AI_Minion);
                }

                /// <summary>
                ///     The LaneClear E Logics.
                /// </summary>
                else
                {
                    /// <summary>
                    ///     The Aggressive LaneClear E Logic.
                    /// </summary>
                    if (GameObjects.EnemyHeroes.Any(t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.W.Range)) &&
                        GameObjects.Player.ManaPercent
                        > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["harass"]) &&
                        Vars.Menu["spells"]["e"]["harass"].GetValue <MenuSliderButton>().BValue)
                    {
                        foreach (var minion in
                                 Targets.Minions.Where(
                                     m =>
                                     m.CountEnemyHeroesInRange(150f) > 0 &&
                                     Vars.GetRealHealth(m) < GameObjects.Player.GetAutoAttackDamage(m)))
                        {
                            Vars.E.CastOnUnit(minion);
                        }
                    }
                    else
                    {
                        /// <summary>
                        ///     The Normal LaneClear E Logic.
                        /// </summary>
                        if (Targets.Minions.Any() &&
                            GameObjects.Player.ManaPercent
                            > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) &&
                            Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue)
                        {
                            if (
                                Targets.Minions.Count(
                                    m => m.Distance(Variables.Orbwalker.GetTarget() as Obj_AI_Minion) < 150f) >= 3)
                            {
                                Vars.E.CastOnUnit(Variables.Orbwalker.GetTarget() as Obj_AI_Minion);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            if (GameObjects.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["logical"].GetValue <MenuSliderButton>().BValue)
            {
                /// <summary>
                ///     If the player doesn't have the W Buff.
                /// </summary>
                if (!GameObjects.Player.HasBuff("AuraOfDespair"))
                {
                    switch (Variables.Orbwalker.ActiveMode)
                    {
                    /// <summary>
                    ///     The W Combo Enable Logic.
                    /// </summary>
                    case OrbwalkingMode.Combo:
                        if (GameObjects.EnemyHeroes.Any(t => t.IsValidTarget(Vars.W.Range)))
                        {
                            Vars.W.Cast();
                        }
                        break;

                    /// <summary>
                    ///     The W Clear Enable Logic.
                    /// </summary>
                    case OrbwalkingMode.LaneClear:
                        if (GameObjects.Player.ManaPercent
                            >= ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["logical"]) &&
                            (Targets.Minions.Count >= 2 || Targets.JungleMinions.Any()))
                        {
                            Vars.W.Cast();
                        }
                        break;
                    }
                }

                /// <summary>
                ///     If the player has the W Buff.
                /// </summary>
                else
                {
                    switch (Variables.Orbwalker.ActiveMode)
                    {
                    /// <summary>
                    ///     The W Clear Disable Logic.
                    /// </summary>
                    case OrbwalkingMode.LaneClear:
                        if (GameObjects.Player.ManaPercent
                            < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["logical"]) ||
                            Targets.Minions.Count < 2 && !Targets.JungleMinions.Any())
                        {
                            Vars.W.Cast();
                        }
                        break;

                    /// <summary>
                    ///     The Default Disable Logic.
                    /// </summary>
                    default:
                        if (!GameObjects.EnemyHeroes.Any(t => t.IsValidTarget(Vars.W.Range)))
                        {
                            Vars.W.Cast();
                        }
                        break;
                    }
                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            /// <summary>
            ///     The R Manager.
            /// </summary>
            Orbwalker.DisableAttacking = Vars.R.Instance.Name.Equals("JhinRShot");
            Orbwalker.DisableMovement  = Vars.R.Instance.Name.Equals("JhinRShot");

            if (GameObjects.Player.LSIsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Automatic Q LastHit Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.HasBuff("JhinPassiveReload") &&
                !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "lasthit")) &&
                Vars.getSliderItem(Vars.QMenu, "lasthit") != 101)
            {
                foreach (var minion in Targets.Minions.Where(
                             m =>
                             m.LSIsValidTarget(Vars.Q.Range) &&
                             Vars.GetRealHealth(m) <
                             (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q)))
                {
                    Vars.Q.CastOnUnit(minion);
                }
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                !GameObjects.Player.IsUnderEnemyTurret() &&
                Vars.getCheckBoxItem(Vars.WMenu, "logical"))
            {
                foreach (var target in GameObjects.EnemyHeroes.Where(
                             t =>
                             !Invulnerable.Check(t) &&
                             t.HasBuff("jhinespotteddebuff") &&
                             t.LSIsValidTarget(Vars.W.Range - 150f) &&
                             !t.LSIsValidTarget(Vars.AARange + 50f) &&
                             !Vars.W.GetPrediction(t).CollisionObjects.Any(
                                 c =>
                                 !c.HasBuff("jhinespotteddebuff") &&
                                 GameObjects.EnemyHeroes.Contains(c)) &&
                             Vars.getCheckBoxItem(Vars.WhiteListMenu, t.ChampionName.ToLower())))
                {
                    if (Bools.IsImmobile(target))
                    {
                        Vars.W.Cast(target.ServerPosition);
                        return;
                    }
                    else
                    {
                        if (!target.LSIsFacing(GameObjects.Player) &&
                            GameObjects.Player.LSIsFacing(target))
                        {
                            Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition);
                            return;
                        }

                        if (target.LSIsFacing(GameObjects.Player) &&
                            !GameObjects.Player.LSIsFacing(target) &&
                            !GameObjects.EnemyHeroes.Any(
                                t =>
                                t.LSIsValidTarget(Vars.Q.Range + 50f)))
                        {
                            Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition);
                        }
                    }
                }
            }

            /// <summary>
            ///     The Automatic E Logic.
            /// </summary>
            if (Vars.E.IsReady() &&
                Vars.getCheckBoxItem(Vars.EMenu, "logical"))
            {
                foreach (var target in GameObjects.EnemyHeroes.Where(
                             t =>
                             Bools.IsImmobile(t) &&
                             !Invulnerable.Check(t) &&
                             t.LSIsValidTarget(Vars.E.Range)))
                {
                    Vars.E.Cast(GameObjects.Player.ServerPosition.LSExtend(
                                    target.ServerPosition,
                                    GameObjects.Player.Distance(target) + target.BoundingRadius * 2));
                }
            }
        }
Exemplo n.º 7
0
            public static void JungleClear()
            {
                var target = GameObjects.GetJungles(Q.Range).Where(x => x.IsValidTarget(Q.Range)).MinBy(x => x.Health / x.MaxHealth);

                if (target == null)
                {
                    return;
                }

                if (MenuManager.JungleClearMenu["UseW"].GetValue <MenuBool>().Enabled&& W.IsReady())
                {
                    if (Misc.IsAllured(target) || !target.IsValidTarget(W.Range))
                    {
                        return;
                    }
                    if (objPlayer.ManaPercent < ManaManager.GetNeededMana(W.Slot, MenuManager.JungleClearMenu["MinMana"].GetValue <MenuSlider>()))
                    {
                        return;
                    }
                    if (target.Health <= objPlayer.GetAutoAttackDamage(target))
                    {
                        return;
                    }

                    var targetName = target.SkinName;

                    if (UtilityManager.JungleList.Contains(targetName) && MenuManager.JungleClearWhiteList[targetName].GetValue <MenuBool>().Enabled)
                    {
                        W.CastOnUnit(target);
                    }
                }

                if (MenuManager.JungleClearMenu["UseE"].GetValue <MenuBool>().Enabled&& E.IsReady())
                {
                    if (Misc.IsAllured(target) && !Misc.IsFullyAllured(target))
                    {
                        return;
                    }
                    if (!target.IsValidTarget(E.Range))
                    {
                        return;
                    }
                    if (objPlayer.ManaPercent < ManaManager.GetNeededMana(E.Slot, MenuManager.JungleClearMenu["MinMana"].GetValue <MenuSlider>()))
                    {
                        return;
                    }

                    if (Misc.IsEmpowered())
                    {
                        E.CastOnUnit(target);
                    }
                    else
                    {
                        E.CastOnUnit(target);
                    }
                }

                if (MenuManager.JungleClearMenu["UseQ"].GetValue <MenuBool>().Enabled&& Q.IsReady())
                {
                    if (!target.IsValidTarget(Q.Range))
                    {
                        return;
                    }
                    if (Misc.IsAllured(target) && !Misc.IsFullyAllured(target))
                    {
                        return;
                    }
                    if (objPlayer.ManaPercent < ManaManager.GetNeededMana(Q.Slot, MenuManager.JungleClearMenu["MinMana"].GetValue <MenuSlider>()))
                    {
                        return;
                    }

                    if (Misc.IsSpikeSkillShot())
                    {
                        Q.Cast(target);
                    }
                    else
                    {
                        Q.CastOnUnit(target);
                    }
                }
            }
Exemplo n.º 8
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The Clear W Logic.
            /// </summary>
            if (Vars.W.IsReady() && Vars.E.IsReady())
            {
                /// <summary>
                ///     The LaneClear W Logic.
                /// </summary>
                if (Targets.Minions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) &&
                    Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue &&
                    Vars.W.GetCircularFarmLocation(Targets.Minions, Vars.W.Width).MinionsHit >= 3 &&
                    Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).MinionsHit >= 4)
                {
                    Vars.W.Cast(
                        (Vector3)Vars.W.GetCircularFarmLocation(Targets.Minions, Vars.W.Width).Position,
                        GameObjects.Player.ServerPosition);
                }

                /// <summary>
                ///     The JungleClear W Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any(m => m.IsValidTarget(Vars.W.Range)) &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["jungleclear"]) &&
                         Vars.Menu["spells"]["w"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.W.Cast(Targets.JungleMinions[0].ServerPosition, GameObjects.Player.ServerPosition);
                }
            }

            /// <summary>
            ///     The Clear E Logic.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The LaneClear E Logic.
                /// </summary>
                if (Targets.Minions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) &&
                    Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue &&
                    Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).MinionsHit >= 4)
                {
                    Vars.E.Cast(Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).Position);
                }

                /// <summary>
                ///     The JungleClear E Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any(m => m.IsValidTarget(Vars.E.Range)) &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["jungleclear"]) &&
                         Vars.Menu["spells"]["e"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.E.Cast(Targets.JungleMinions[0].ServerPosition);
                }
            }

            /// <summary>
            ///     The Clear Q Logic.
            /// </summary>
            if (Vars.Q.IsReady())
            {
                /// <summary>
                ///     The LaneClear Q Logic.
                /// </summary>
                if (Targets.Minions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["laneclear"]) &&
                    Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuSliderButton>().BValue)
                {
                    if (Taliyah.TerrainObject != null &&
                        Vars.Menu["spells"]["q"]["laneclearfull"].GetValue <MenuBool>().Value)
                    {
                        return;
                    }

                    if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                    {
                        Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                    }
                    else if (Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                    {
                        Vars.Q.Cast(Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                    }
                }

                /// <summary>
                ///     The JungleClear Q Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any() &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["jungleclear"]) &&
                         Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    if (Taliyah.TerrainObject != null &&
                        Vars.Menu["spells"]["q"]["jungleclearfull"].GetValue <MenuBool>().Value)
                    {
                        return;
                    }

                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }
            }
        }
Exemplo n.º 9
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            if (GameObjects.Player.LSIsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Semi-Automatic R Management.
            /// </summary>
            if (Vars.R.IsReady() &&
                Vars.getCheckBoxItem(Vars.RMenu, "bool"))
            {
                if (!GameObjects.Player.HasBuff("AbsoluteZero") &&
                    GameObjects.Player.CountEnemyHeroesInRange(Vars.R.Range) > 0 &&
                    Vars.getKeyBindItem(Vars.RMenu, "key"))
                {
                    Vars.R.Cast();
                }

                if (GameObjects.Player.HasBuff("AbsoluteZero") &&
                    !Vars.getKeyBindItem(Vars.RMenu, "key"))
                {
                    Orbwalker.MoveTo(Game.CursorPos);
                    Vars.R.Cast();
                }
            }

            /// <summary>
            ///     The JungleClear Q Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                Vars.getCheckBoxItem(Vars.QMenu, "jungleclear"))
            {
                if (Targets.JungleMinions.Any())
                {
                    foreach (var minion in Targets.JungleMinions.Where(
                                 m =>
                                 m.LSIsValidTarget(Vars.Q.Range) &&
                                 Vars.GetRealHealth(m) <
                                 (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q)))
                    {
                        Vars.Q.CastOnUnit(minion);
                    }
                }
            }

            /// <summary>
            ///     The Automatic Q Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                Targets.Minions.Any() &&
                Vars.getCheckBoxItem(Vars.QMenu, "logical"))
            {
                if (GameObjects.Player.MaxHealth >
                    GameObjects.Player.Health +
                    (30 + 45 * GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).Level) +
                    GameObjects.Player.TotalMagicalDamage * 0.75)
                {
                    foreach (var minion in Targets.Minions.Where(m => m.LSIsValidTarget(Vars.Q.Range)))
                    {
                        Vars.Q.CastOnUnit(minion);
                    }
                }
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                Vars.getSliderItem(Vars.WMenu, "logical") != 101)
            {
                if (GameObjects.Player.ManaPercent <
                    ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "logical")) &&
                    !GameObjects.Player.Buffs.Any(b => b.Name.Equals("visionary")))
                {
                    return;
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                {
                    /// <summary>
                    ///     The Ally W Combo Logic.
                    /// </summary>
                    if (GameObjects.AllyHeroes.Any(a => !a.IsMe && a.LSIsValidTarget(Vars.W.Range, false) && Vars.getCheckBoxItem(Vars.WhiteListMenu, a.ChampionName.ToLower())))
                    {
                        Vars.W.CastOnUnit(GameObjects.AllyHeroes.Where(a => !a.IsMe && a.LSIsValidTarget(Vars.W.Range, false) && Vars.getCheckBoxItem(Vars.WhiteListMenu, a.ChampionName.ToLower())).OrderBy(o => o.TotalAttackDamage).First());
                    }

                    /// <summary>
                    ///     The Normal W Combo Logic.
                    /// </summary>
                    else
                    {
                        if (Targets.Target.LSIsValidTarget())
                        {
                            Vars.W.CastOnUnit(GameObjects.Player);
                        }
                    }
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                {
                    /// <summary>
                    ///     Use if There are Enemy Minions in range.
                    /// </summary>
                    if (Targets.Minions.Any() ||
                        Targets.JungleMinions.Any())
                    {
                        Vars.W.CastOnUnit(GameObjects.Player);
                    }
                }

                /// <summary>
                ///     The W Pushing Logic.
                /// </summary>
                if (Targets.Minions.Any() &&
                    GameObjects.AllyMinions.Any())
                {
                    /// <summary>
                    ///     Use if there are Super or Siege minions in W Range.
                    /// </summary>
                    foreach (var minion in GameObjects.AllyMinions.Where(m => m.LSIsValidTarget(Vars.W.Range, false)))
                    {
                        if (minion.GetMinionType() == MinionTypes.Super ||
                            minion.GetMinionType() == MinionTypes.Siege)
                        {
                            Vars.W.CastOnUnit(minion);
                        }
                    }
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            /// <summary>
            ///     The Q Extended Harass Logic.
            /// </summary>
            if (Vars.Q.IsReady())
            {
                /// <summary>
                ///     The Q Minion Harass Logic.
                /// </summary>
                if (GameObjects.Player.ManaPercent >
                    ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.Q2Menu, "exlaneclear")))
                {
                    foreach (var minion
                             in from minion
                             in Targets.Minions.Where(
                                 m =>
                                 m.LSIsValidTarget(Vars.Q.Range) &&
                                 Vars.getCheckBoxItem(Vars.Q2Menu, "exlaneclearkill")
                                    ? m.Health <
                                 (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q)
                                    : true)

                             let polygon = new Geometry.Sector(
                                 (Vector2)minion.ServerPosition,
                                 (Vector2)minion.ServerPosition.LSExtend(GameObjects.Player.ServerPosition, -(Vars.Q2.Range - Vars.Q.Range)),
                                 40f * (float)Math.PI / 180f,
                                 (Vars.Q2.Range - Vars.Q.Range) - 50f)

                                           let target = GameObjects.EnemyHeroes.FirstOrDefault(
                                 t =>
                                 !Invulnerable.Check(t) &&
                                 t.LSIsValidTarget(Vars.Q2.Range - 50f) &&
                                 ((Vars.PassiveTarget.LSIsValidTarget() &&
                                   t.NetworkId == Vars.PassiveTarget.NetworkId) ||
                                  !Targets.Minions.Any(m => !polygon.IsOutside((Vector2)m.ServerPosition))) &&
                                 Vars.getCheckBoxItem(Vars.WhiteListMenu, t.ChampionName.ToLower()))

                                                        where
                                                        target != null
                                                        where
                                                        !polygon.IsOutside((Vector2)target.ServerPosition) &&
                                                        !polygon.IsOutside(
                                 (Vector2)Movement.GetPrediction(
                                     target,
                                     GameObjects.Player.Distance(target) / Vars.Q.Speed + Vars.Q.Delay).UnitPosition)

                                                        select minion)
                    {
                        Vars.Q.CastOnUnit(minion);
                    }
                }
            }

            /// <summary>
            ///     The W Clear Logics.
            /// </summary>
            if (Vars.W.IsReady())
            {
                /// <summary>
                ///     The W JungleClear Logics.
                /// </summary>
                if (Targets.JungleMinions.Contains(Orbwalker.LastTarget as Obj_AI_Minion) &&
                    GameObjects.Player.ManaPercent >
                    ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "jungleclear")))
                {
                    Vars.W.Cast();
                }

                /// <summary>
                ///     The W LaneClear Logics.
                /// </summary>
                else if (Targets.Minions.Contains(Orbwalker.LastTarget as Obj_AI_Minion) &&
                         GameObjects.Player.ManaPercent >
                         ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "laneclear")))
                {
                    Vars.W.Cast();
                }
            }

            /// <summary>
            ///     The E Clear Logics.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The E JungleClear Logics.
                /// </summary>
                if (Targets.JungleMinions.Any() &&
                    GameObjects.Player.ManaPercent >
                    ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "jungleclear")))
                {
                    Vars.E.Cast(Targets.JungleMinions[0]);
                }

                /// <summary>
                ///     The E LaneClear Logics.
                /// </summary>
                else if (Targets.Minions.Any() &&
                         GameObjects.Player.ManaPercent >
                         ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "laneclear")) &&
                         Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).MinionsHit >= 4)
                {
                    Vars.E.Cast(Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).Position);
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            /// <summary>
            ///     The Q Extended Harass Logic.
            /// </summary>
            if (Vars.Q.IsReady())
            {
                /// <summary>
                ///     The Q Minion Harass Logic.
                /// </summary>
                if (GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["extended"]["exlaneclear"]) &&
                    Vars.Menu["spells"]["q"]["extended"]["exlaneclear"].GetValue <MenuSliderButton>().BValue)
                {
                    var passiveMultiplier = GameObjects.Player.Level < 4
                                                ? 0.25
                                                : GameObjects.Player.Level < 7
                                                      ? 0.3
                                                      : GameObjects.Player.Level < 9
                                                            ? 0.35
                                                            : GameObjects.Player.Level < 11
                                                                  ? 0.4
                                                                  : GameObjects.Player.Level < 13 ? 0.45 : 0.5;
                    foreach (var minion
                             in
                             from minion in
                             Targets.Minions.Where(
                                 m =>
                                 m.IsValidTarget(Vars.Q.Range) &&
                                 (!Vars.Menu["spells"]["q"]["extended"]["exlaneclearkill"].GetValue <MenuBool>().Value ||
                                  Vars.GetRealHealth(m)
                                  < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q)
                                  + (MissFortune.PassiveTarget == null ||
                                     m.NetworkId != MissFortune.PassiveTarget?.NetworkId
                                           ? GameObjects.Player.TotalAttackDamage * passiveMultiplier
                                           : 0)))
                             let polygon =
                                 new Geometry.Sector(
                                     (Vector2)minion.ServerPosition,
                                     (Vector2)
                                     minion.ServerPosition.Extend(
                                         GameObjects.Player.ServerPosition,
                                         -(Vars.Q2.Range - Vars.Q.Range)),
                                     40f * (float)Math.PI / 180f,
                                     Vars.Q2.Range - Vars.Q.Range - 50f)
                                 let target =
                                     GameObjects.EnemyHeroes.FirstOrDefault(
                                         t =>
                                         !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q2.Range) &&
                                         (t.NetworkId == MissFortune.PassiveTarget?.NetworkId ||
                                          Targets.Minions.All(m => polygon.IsOutside((Vector2)m.ServerPosition))) &&
                                         Vars.Menu["spells"]["q"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>()
                                         .Value)
                                     where target != null
                                     where
                                     !polygon.IsOutside((Vector2)target.ServerPosition) &&
                                     !polygon.IsOutside((Vector2)Vars.Q.GetPrediction(target).UnitPosition)
                                     select minion)
                    {
                        Vars.Q.CastOnUnit(minion);
                    }
                }
            }

            /// <summary>
            ///     The W Clear Logics.
            /// </summary>
            if (Vars.W.IsReady())
            {
                /// <summary>
                ///     The W JungleClear Logics.
                /// </summary>
                if (Targets.JungleMinions.Contains(Variables.Orbwalker.GetTarget() as Obj_AI_Minion) &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["jungleclear"]) &&
                    Vars.Menu["spells"]["w"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.W.Cast();
                }

                /// <summary>
                ///     The W LaneClear Logics.
                /// </summary>
                else if (Targets.Minions.Contains(Variables.Orbwalker.GetTarget() as Obj_AI_Minion) &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) &&
                         Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.W.Cast();
                }
            }

            /// <summary>
            ///     The E Clear Logics.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The E JungleClear Logics.
                /// </summary>
                if (Targets.JungleMinions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["jungleclear"]) &&
                    Vars.Menu["spells"]["e"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.E.Cast(Targets.JungleMinions[0]);
                }

                /// <summary>
                ///     The E LaneClear Logics.
                /// </summary>
                else if (Targets.Minions.Any() &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) &&
                         Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue &&
                         Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).MinionsHit >= 4)
                {
                    Vars.E.Cast(Vars.E.GetCircularFarmLocation(Targets.Minions, Vars.E.Width).Position);
                }
            }
        }
Exemplo n.º 12
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Clear(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The Clear W Logic.
            /// </summary>
            if (Vars.W.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Menus.getSliderItem(Vars.WMenu, "clear")) && Menus.getSliderItem(Vars.WMenu, "clear") != 101)
            {
                /// <summary>
                ///     The LaneClear W Logic.
                /// </summary>
                if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                {
                    Vars.W.Cast();
                }

                /// <summary>
                ///     The JungleClear W Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any())
                {
                    Vars.W.Cast();
                }
                return;
            }

            /// <summary>
            ///     The Clear Q Logics.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Menus.getSliderItem(Vars.QMenu, "clear")) && Menus.getSliderItem(Vars.QMenu, "clear") != 101)
            {
                /// <summary>
                ///     The JungleClear Q Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }

                /// <summary>
                ///     The LaneClear Q Logics.
                /// </summary>
                else
                {
                    /// <summary>
                    ///     The Aggressive LaneClear Q Logic.
                    /// </summary>
                    if (GameObjects.EnemyHeroes.Any(
                            t =>
                            !Invulnerable.Check(t) &&
                            t.LSIsValidTarget(Vars.Q.Range)))
                    {
                        if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3 &&
                            !new Geometry.Rectangle(
                                GameObjects.Player.ServerPosition,
                                GameObjects.Player.ServerPosition.LSExtend(
                                    Targets.Minions[0].ServerPosition, Vars.Q.Range),
                                Vars.Q.Width).IsOutside((Vector2)Vars.Q.GetPrediction(
                                                            GameObjects.EnemyHeroes.FirstOrDefault(
                                                                t =>
                                                                !Invulnerable.Check(t) &&
                                                                t.LSIsValidTarget(Vars.Q.Range))).UnitPosition))
                        {
                            Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                        }
                    }

                    /// <summary>
                    ///     The LaneClear Q Logic.
                    /// </summary>
                    else if (!GameObjects.EnemyHeroes.Any(
                                 t =>
                                 !Invulnerable.Check(t) &&
                                 t.LSIsValidTarget(Vars.Q.Range + 100f)))
                    {
                        if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                        {
                            Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                        }
                    }
                }
            }
        }
Exemplo n.º 13
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Harass(EventArgs args)
        {
            /// <summary>
            ///     The E Harass Logic.
            /// </summary>
            if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["harass"].GetValue <MenuSliderButton>().BValue &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["harass"]))
            {
                if (
                    GameObjects.EnemyHeroes.Any(
                        t =>
                        t.IsValidTarget(Vars.E.Range) &&
                        (t.HasBuffOfType(BuffType.Poison) ||
                         !Vars.Menu["spells"]["e"]["harasspoison"].GetValue <MenuBool>().Value) &&
                        !Invulnerable.Check(t, DamageType.Magical)))
                {
                    foreach (var target in
                             GameObjects.EnemyHeroes.Where(
                                 t =>
                                 t.IsValidTarget(Vars.E.Range) &&
                                 (t.HasBuffOfType(BuffType.Poison) ||
                                  !Vars.Menu["spells"]["e"]["harasspoison"].GetValue <MenuBool>().Value) &&
                                 !Invulnerable.Check(t, DamageType.Magical)))
                    {
                        DelayAction.Add(
                            Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value,
                            () => { Vars.E.CastOnUnit(target); });
                    }
                }
                else
                {
                    DelayAction.Add(
                        Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value,
                        () =>
                    {
                        foreach (var minion in
                                 Targets.Minions.Where(
                                     m =>
                                     Vars.GetRealHealth(m)
                                     < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E)
                                     + (m.HasBuffOfType(BuffType.Poison)
                                               ? (float)
                                        GameObjects.Player.GetSpellDamage(
                                            m,
                                            SpellSlot.E,
                                            DamageStage.Empowered)
                                               : 0)))
                        {
                            Vars.E.CastOnUnit(minion);
                        }
                    });
                }
            }

            if (!Targets.Target.IsValidTarget() || Invulnerable.Check(Targets.Target, DamageType.Magical, false))
            {
                return;
            }

            /// <summary>
            ///     The Q Harass Logic.
            /// </summary>
            if (Vars.Q.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range) &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["harass"]) &&
                Vars.Menu["spells"]["q"]["harass"].GetValue <MenuSliderButton>().BValue)
            {
                Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition);
                return;
            }

            /// <summary>
            ///     The W Harass Logic.
            /// </summary>
            DelayAction.Add(
                1000,
                () =>
            {
                if (Vars.W.IsReady() && Targets.Target.IsValidTarget(Vars.W.Range) &&
                    !Targets.Target.IsValidTarget(500f) &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["harass"]) &&
                    Vars.Menu["spells"]["w"]["harass"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).CastPosition);
                }
            });
        }
Exemplo n.º 14
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            if (GameObjects.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Q LastHit Logic.
            /// </summary>
            if (Vars.Q.IsReady() && Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["farmhelper"]) &&
                Vars.Menu["spells"]["q"]["farmhelper"].GetValue <MenuSliderButton>().BValue)
            {
                foreach (var minion in
                         Targets.Minions.Where(
                             m =>
                             !m.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) &&
                             Vars.GetRealHealth(m) > GameObjects.Player.GetAutoAttackDamage(m) &&
                             Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q))
                         .OrderBy(o => o.MaxHealth))
                {
                    if (!Vars.Q.GetPrediction(minion).CollisionObjects.Any())
                    {
                        Vars.Q.Cast(Vars.Q.GetPrediction(minion).UnitPosition);
                    }
                }
            }

            /// <summary>
            ///     The Tear Stacking Logic.
            /// </summary>
            if (Vars.Q.IsReady() && !Targets.Minions.Any() && Bools.HasTear(GameObjects.Player) &&
                Variables.Orbwalker.ActiveMode == OrbwalkingMode.None &&
                GameObjects.Player.CountEnemyHeroesInRange(1500) == 0 &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["miscellaneous"]["tear"]) &&
                Vars.Menu["miscellaneous"]["tear"].GetValue <MenuSliderButton>().BValue)
            {
                Vars.Q.Cast(Game.CursorPos);
            }

            /// <summary>
            ///     The Semi-Automatic R Logic.
            /// </summary>
            if (Vars.R.IsReady() && Vars.Menu["spells"]["r"]["bool"].GetValue <MenuBool>().Value &&
                Vars.Menu["spells"]["r"]["key"].GetValue <MenuKeyBind>().Active)
            {
                var target =
                    GameObjects.EnemyHeroes.Where(
                        t =>
                        !Invulnerable.Check(t, DamageType.Magical, false) && t.IsValidTarget(2000f) &&
                        Vars.Menu["spells"]["r"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>().Value)
                    .OrderBy(o => o.Health)
                    .FirstOrDefault();
                if (target != null)
                {
                    Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition);
                }
            }

            if (GameObjects.Player.TotalAttackDamage < GameObjects.Player.TotalMagicalDamage)
            {
                return;
            }

            /// <summary>
            ///     Initializes the orbwalkingmodes.
            /// </summary>
            switch (Variables.Orbwalker.ActiveMode)
            {
            case OrbwalkingMode.Combo:
                if (!GameObjects.EnemyHeroes.Contains(Variables.Orbwalker.GetTarget()))
                {
                    return;
                }

                break;

            case OrbwalkingMode.LaneClear:
                if (!(Variables.Orbwalker.GetTarget() is Obj_HQ) &&
                    !(Variables.Orbwalker.GetTarget() is Obj_AI_Turret) &&
                    !(Variables.Orbwalker.GetTarget() is Obj_BarracksDampener))
                {
                    return;
                }

                break;

            default:
                if (!GameObjects.Jungle.Contains(Variables.Orbwalker.GetTarget()) &&
                    !GameObjects.EnemyHeroes.Contains(Variables.Orbwalker.GetTarget()) &&
                    !(Variables.Orbwalker.GetTarget() is Obj_HQ) &&
                    !(Variables.Orbwalker.GetTarget() is Obj_AI_Turret) &&
                    !(Variables.Orbwalker.GetTarget() is Obj_BarracksDampener))
                {
                    return;
                }

                break;
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["logical"]) &&
                Vars.Menu["spells"]["w"]["logical"].GetValue <MenuSliderButton>().BValue)
            {
                foreach (var target in
                         GameObjects.AllyHeroes.Where(
                             t => !t.IsMe && t.Spellbook.IsAutoAttacking && t.IsValidTarget(Vars.W.Range, false)))
                {
                    Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition);
                }
            }
        }
Exemplo n.º 15
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The LaneClear W Logic.
            /// </summary>
            if (Vars.W.IsReady() && !GameObjects.Player.HasBuff("TwitchFullAutomatic"))
            {
                /// <summary>
                ///     The W LaneClear Logic.
                /// </summary>
                if (GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) &&
                    Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue &&
                    Vars.W.GetCircularFarmLocation(
                        Targets.Minions.Where(m => m.GetBuffCount("twitchdeadlyvenom") <= 4).ToList(),
                        Vars.W.Width).MinionsHit >= 3)
                {
                    Vars.W.Cast(
                        Vars.W.GetCircularFarmLocation(
                            Targets.Minions.Where(m => m.GetBuffCount("twitchdeadlyvenom") <= 4).ToList(),
                            Vars.W.Width).Position);
                }

                /// <summary>
                ///     The W JungleClear Logic.
                /// </summary>
                else if (GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["jungleclear"]) &&
                         Vars.Menu["spells"]["w"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    var objAiMinion =
                        Targets.JungleMinions.FirstOrDefault(m => m.GetBuffCount("twitchdeadlyvenom") <= 4);
                    if (objAiMinion != null)
                    {
                        Vars.W.Cast(objAiMinion.ServerPosition);
                    }
                }
            }

            /// <summary>
            ///     The LaneClear E Logic.
            /// </summary>
            if (Vars.E.IsReady() && Targets.Minions.Any() &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["laneclear"]) &&
                Vars.Menu["spells"]["e"]["laneclear"].GetValue <MenuSliderButton>().BValue)
            {
                if (
                    Targets.Minions.Count(
                        m =>
                        m.IsValidTarget(Vars.E.Range) &&
                        m.Health
                        < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E)
                        + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff)) >= 3)
                {
                    Vars.E.Cast();
                }
            }
        }
Exemplo n.º 16
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Jungleclear()
        {
            var jungleTarget = ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(m => Extensions.GetGenericJungleMinionsTargets().Contains(m));

            if (jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 3)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                jungleTarget.IsValidTarget(SpellClass.W.Range) &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["jungleclear"]) &&
                MenuClass.Spells["w"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                if (!IsHoldingForceOfWillObject())
                {
                    var obj = ForceOfWillObject();
                    if (obj != null &&
                        obj.Distance(UtilityClass.Player) < SpellClass.W.Range)
                    {
                        SpellClass.W.CastOnUnit(obj);
                    }
                }
                else
                {
                    SpellClass.W.Cast(jungleTarget?.ServerPosition ?? Game.CursorPos);
                }
            }

            if (jungleTarget == null ||
                UtilityClass.Player.SpellBook.GetSpell(SpellSlot.W).State == SpellState.Ready)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                jungleTarget.IsValidTarget(SpellClass.Q.Range) &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) &&
                MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.Q.Cast(jungleTarget.ServerPosition);
            }

            /// <summary>
            ///     The Jungleclear E Logics.
            /// </summary>
            if (SpellClass.E.Ready &&
                IsPerfectSphereTarget(jungleTarget) &&
                jungleTarget.IsValidTarget(SpellClass.E.Range) &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) &&
                MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.E.Cast(jungleTarget);
            }
        }
Exemplo n.º 17
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The LaneClear Q Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "laneclear")) &&
                Vars.getSliderItem(Vars.QMenu, "laneclear") != 101)
            {
                foreach (var minion in Targets.Minions.Where(m => m.IsValidTarget(Vars.Q.Range)))
                {
                    if (minion.HasBuff("RyzeE") &&
                        Vars.GetRealHealth(minion) >
                        (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.E) &&
                        Vars.GetRealHealth(minion) <
                        (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.Q) * (1 + (minion.HasBuff("RyzeE")
                                ? new double[] { 40, 55, 70, 85, 100 }[GameObjects.Player.Spellbook.GetSpell(SpellSlot.E).Level - 1] / 100
                                : 0)))
                    {
                        Vars.Q.Cast(minion);
                    }
                }
            }

            /// <summary>
            ///     The LaneClear E Logic.
            /// </summary>
            if (Vars.E.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "laneclear")) &&
                Vars.getSliderItem(Vars.EMenu, "laneclear") != 101)
            {
                foreach (var minion in Targets.Minions.Where(m => m.IsValidTarget(Vars.E.Range)))
                {
                    if (minion.HasBuff("RyzeE") ||
                        (Vars.GetRealHealth(minion) <
                         (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.E) &&
                         Vars.GetRealHealth(minion) >
                         (float)GameObjects.Player.GetAutoAttackDamage(minion)))
                    {
                        Vars.E.CastOnUnit(minion);
                        return;
                    }

                    Vars.E.CastOnUnit(Targets.Minions.First(m => m.IsValidTarget(Vars.E.Range)));
                }
            }

            foreach (var minion in Targets.JungleMinions)
            {
                /// <summary>
                ///     The JungleClear E Logic.
                /// </summary>
                if (Targets.JungleMinions.Any(m => !m.HasBuff("RyzeE")))
                {
                    if (Vars.E.IsReady() &&
                        minion.IsValidTarget(Vars.E.Range) &&
                        !GameObjects.JungleSmall.Contains(minion) &&
                        GameObjects.Player.ManaPercent >
                        ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "jungleclear")) &&
                        Vars.getSliderItem(Vars.EMenu, "jungleclear") != 101)
                    {
                        Vars.E.CastOnUnit(minion);
                    }
                }
                else
                {
                    /// <summary>
                    ///     The JungleClear Q Logic.
                    /// </summary>
                    if (Vars.Q.IsReady() &&
                        minion.IsValidTarget(Vars.Q.Range) &&
                        Vars.GetRealHealth(minion) >
                        (float)GameObjects.Player.GetSpellDamage(minion, SpellSlot.E) &&
                        GameObjects.Player.ManaPercent >
                        ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "jungleclear")) &&
                        Vars.getSliderItem(Vars.QMenu, "jungleclear") != 101)
                    {
                        Vars.Q.Cast(minion.ServerPosition);
                    }
                }
            }
        }
Exemplo n.º 18
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The Clear Q Logics.
            /// </summary>
            if (Vars.Q.IsReady())
            {
                /// <summary>
                ///     The JungleClear Q Logic.
                /// </summary>
                if (Targets.JungleMinions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["jungleclear"]) &&
                    Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }

                /// <summary>
                ///     The LaneClear Q Logics.
                /// </summary>
                else if (Targets.Minions.Any() &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["laneclear"]) &&
                         Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuSliderButton>().BValue)
                {
                    /// <summary>
                    ///     The Aggressive LaneClear Q Logic.
                    /// </summary>
                    if (GameObjects.EnemyHeroes.Any(t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range)))
                    {
                        if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3 &&
                            !new Geometry.Rectangle(
                                GameObjects.Player.ServerPosition,
                                GameObjects.Player.ServerPosition.Extend(
                                    Targets.Minions[0].ServerPosition,
                                    Vars.Q.Range),
                                Vars.Q.Width).IsOutside(
                                (Vector2)
                                Vars.Q.GetPrediction(
                                    GameObjects.EnemyHeroes.FirstOrDefault(
                                        t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range)))
                                .UnitPosition))
                        {
                            Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                        }
                    }

                    /// <summary>
                    ///     The LaneClear Q Logic.
                    /// </summary>
                    else if (
                        !GameObjects.EnemyHeroes.Any(
                            t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range + 100f)))
                    {
                        if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                        {
                            Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                        }
                    }
                }
            }
        }
Exemplo n.º 19
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Harass(EventArgs args)
        {
            if (!Targets.Target.LSIsValidTarget() ||
                Invulnerable.Check(Targets.Target, DamageType.Magical))
            {
                return;
            }

            /// <summary>
            ///     The Harass E Logic.
            /// </summary>
            if (!Targets.Target.HasBuff("RyzeE"))
            {
                if (Vars.E.IsReady() &&
                    GameObjects.Player.ManaPercent >
                    ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "harass")) &&
                    Vars.getSliderItem(Vars.EMenu, "harass") != 101)
                {
                    if (Targets.Target.LSIsValidTarget(Vars.E.Range))
                    {
                        Vars.E.CastOnUnit(Targets.Target);
                    }
                    else
                    {
                        foreach (var minion in Targets.Minions.Where(
                                     m =>
                                     !m.HasBuff("RyzeE") &&
                                     m.LSIsValidTarget(Vars.E.Range) &&
                                     (m.Distance(Targets.Target) < 200 ||
                                      Targets.Minions.Any(
                                          m2 =>
                                          m2.HasBuff("RyzeE") &&
                                          m2.Distance(m) < 200 &&
                                          m2.Distance(Targets.Target) < 200))))
                        {
                            Vars.E.CastOnUnit(minion);
                        }
                    }
                }
            }

            /// <summary>
            ///     The Harass Q Logic.
            /// </summary>
            else
            {
                if (Vars.Q.IsReady() &&
                    GameObjects.Player.ManaPercent >
                    ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "harass")) &&
                    Vars.getSliderItem(Vars.QMenu, "harass") != 101)
                {
                    if (Targets.Target.LSIsValidTarget(Vars.Q.Range) &&
                        !Vars.Q.GetPrediction(Targets.Target).CollisionObjects.Any())
                    {
                        Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).UnitPosition);
                    }
                    else
                    {
                        foreach (var minion in Targets.Minions.Where(
                                     m =>
                                     m.HasBuff("RyzeE") &&
                                     m.LSIsValidTarget(Vars.Q.Range) &&
                                     (m.Distance(Targets.Target) < 200 ||
                                      Targets.Minions.Any(
                                          m2 =>
                                          m2.HasBuff("RyzeE") &&
                                          m2.Distance(m) < 200 &&
                                          m2.Distance(Targets.Target) < 200))))
                        {
                            Vars.Q.Cast(minion.ServerPosition);
                        }
                    }
                }
            }
        }
Exemplo n.º 20
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Jungleclear()
        {
            if (BallPosition == null)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["jungleclear"]) &&
                MenuClass.Spells["w"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                if (Extensions.GetGenericJungleMinionsTargets().Any(m => m.IsValidTarget(SpellClass.W.Width, false, true, (Vector3)BallPosition)))
                {
                    SpellClass.W.Cast();
                }
            }


            var jungleTarget = ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(m => Extensions.GetGenericJungleMinionsTargets().Contains(m));

            if (jungleTarget == null ||
                jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 3)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear E Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) &&
                MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                var polygon = new Geometry.Rectangle(
                    (Vector2)UtilityClass.Player.ServerPosition,
                    (Vector2)UtilityClass.Player.ServerPosition.Extend((Vector3)BallPosition, UtilityClass.Player.Distance((Vector3)BallPosition)),
                    SpellClass.E.Width);

                if (!polygon.IsOutside((Vector2)jungleTarget.ServerPosition))
                {
                    SpellClass.E.CastOnUnit(UtilityClass.Player);
                }
            }

            /// <summary>
            ///     The Jungleclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                jungleTarget.IsValidTarget(SpellClass.Q.Range) &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) &&
                MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.Q.GetPredictionInput(jungleTarget).From = (Vector3)BallPosition;
                SpellClass.Q.Cast(SpellClass.Q.GetPrediction(jungleTarget).CastPosition);
            }
        }
Exemplo n.º 21
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            if (GameObjects.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Q Switching Logics.
            /// </summary>
            if (Vars.Q.IsReady())
            {
                /// <summary>
                ///     PowPow.Range -> FishBones Logics.
                /// </summary>
                if (!GameObjects.Player.HasBuff("JinxQ"))
                {
                    switch (Variables.Orbwalker.ActiveMode)
                    {
                    /// <summary>
                    ///     The Q Combo Enable Logics,
                    ///     The Q Harass Enable Logics.
                    /// </summary>
                    case OrbwalkingMode.Combo:
                    case OrbwalkingMode.Hybrid:

                        /// <summary>
                        ///     Enable if:
                        ///     If you are in combo mode, the combo option is enabled. (Option check).
                        /// </summary>
                        if (Variables.Orbwalker.ActiveMode == OrbwalkingMode.Combo)
                        {
                            if (!Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value)
                            {
                                //Console.WriteLine("ExorAIO: Jinx - Combo - Option Block.");
                                return;
                            }
                        }

                        /// <summary>
                        ///     Enable if:
                        ///     If you are in mixed mode, the mixed option is enabled.. (Option check).
                        ///     and respects the ManaManager check. (Mana check).
                        /// </summary>
                        else if (Variables.Orbwalker.ActiveMode == OrbwalkingMode.Hybrid)
                        {
                            if (GameObjects.Player.ManaPercent
                                < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["harass"]) ||
                                !Vars.Menu["spells"]["q"]["harass"].GetValue <MenuSliderButton>().BValue)
                            {
                                //Console.WriteLine("ExorAIO: Jinx - Hybrid - ManaManager or Option Block.");
                                return;
                            }
                        }

                        /// <summary>
                        ///     Enable if:
                        ///     No hero in PowPow Range but 1 or more heroes in FishBones range. (Range Logic).
                        /// </summary>
                        if (!GameObjects.EnemyHeroes.Any(t => t.IsValidTarget(Vars.PowPow.Range)) &&
                            GameObjects.EnemyHeroes.Any(
                                t2 =>
                                t2.IsValidTarget(
                                    Variables.Orbwalker.ActiveMode == OrbwalkingMode.Hybrid
                                            ? Vars.Q.Range
                                            : Vars.W.Range)))
                        {
                            //Console.WriteLine("ExorAIO: Jinx - Combo/Hybrid - Enabled for Range Check.");
                            Vars.Q.Cast();
                            return;
                        }

                        break;

                    /// <summary>
                    ///     The Q Clear Enable Logics.
                    /// </summary>
                    case OrbwalkingMode.LaneClear:

                        /// <summary>
                        ///     Start if:
                        ///     It respects the ManaManager Check, (Mana check),
                        ///     The Clear Option is enabled. (Option check).
                        /// </summary>
                        if (GameObjects.Player.ManaPercent
                            < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["clear"]) ||
                            !Vars.Menu["spells"]["q"]["clear"].GetValue <MenuSliderButton>().BValue)
                        {
                            //Console.WriteLine("ExorAIO: Jinx - Clear - ManaManager or Option Block.");
                            return;
                        }

                        /// <summary>
                        ///     The LaneClear Logics.
                        /// </summary>
                        if (
                            Targets.Minions.Any(
                                m => Vars.GetRealHealth(m) < GameObjects.Player.GetAutoAttackDamage(m) * 1.1))
                        {
                            /// <summary>
                            ///     Disable if:
                            ///     The player has Runaan's Hurricane and there are more than 1 hittable Minions..
                            ///     And there more than 2 killable minions in Q explosion range (Lane AoE Logic).
                            /// </summary>
                            if (Items.HasItem(3085) && Targets.Minions.Count > 1 ||
                                Targets.Minions.Where(
                                    m => Vars.GetRealHealth(m) < GameObjects.Player.GetAutoAttackDamage(m) * 1.1)
                                .Count(
                                    m2 =>
                                    m2.Distance(
                                        Targets.Minions.First(
                                            m =>
                                            Vars.GetRealHealth(m)
                                            < GameObjects.Player.GetAutoAttackDamage(m) * 1.1)) < 250f) >= 3)
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - LaneClear - Enabled for AoE Check.");
                                return;
                            }
                        }

                        /// <summary>
                        ///     The JungleClear Logics.
                        /// </summary>
                        else if (Targets.JungleMinions.Any())
                        {
                            /// <summary>
                            ///     Enable if:
                            ///     No monster in PowPow Range and at least 1 monster in Fishbones Range.. (Jungle Range Logic).
                            /// </summary>
                            if (!Targets.JungleMinions.Any(m => m.IsValidTarget(Vars.PowPow.Range)))
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - JungleClear - Enabled for Range Check.");
                                return;
                            }

                            /// <summary>
                            ///     Enable if:
                            ///     More or equal than 1 monster in explosion range from the target monster. (Lane AoE Logic).
                            /// </summary>
                            if (Targets.JungleMinions.Count(m2 => m2.Distance(Targets.JungleMinions[0]) < 250f) >= 2)
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - JungleClear - Enabled for AoE Check.");
                                return;
                            }
                        }

                        break;

                    /// <summary>
                    ///     The Q LastHit Disable Logic.
                    /// </summary>
                    case OrbwalkingMode.LastHit:

                        /// <summary>
                        ///     Start if:
                        ///     It respects the ManaManager Check, (Mana check).
                        ///     The LastHit Option is enabled. (Option check).
                        /// </summary>
                        if (GameObjects.Player.ManaPercent
                            < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["lasthit"]) ||
                            !Vars.Menu["spells"]["q"]["lasthit"].GetValue <MenuSliderButton>().BValue)
                        {
                            //Console.WriteLine("ExorAIO: Jinx - LastHit - ManaManager or Option Block.");
                            return;
                        }

                        /// <summary>
                        ///     Enable if:
                        ///     Any killable minion in FishBones Range and no killable minions in PowPow Range. (LastHit Range Logic).
                        /// </summary>
                        if (
                            Targets.Minions.Any(
                                m =>
                                !m.IsValidTarget(Vars.PowPow.Range) &&
                                m.Health < GameObjects.Player.GetAutoAttackDamage(m) * 1.1))
                        {
                            if (
                                !Targets.Minions.Any(
                                    m =>
                                    m.IsValidTarget(Vars.PowPow.Range) &&
                                    m.Health < GameObjects.Player.GetAutoAttackDamage(m)))
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - LastHit - Enabled.");
                                return;
                            }
                        }

                        break;
                    }
                }

                /// <summary>
                ///     FishBones -> PowPow.Range Logics.
                /// </summary>
                else
                {
                    switch (Variables.Orbwalker.ActiveMode)
                    {
                    /// <summary>
                    ///     The Q Combo Enable Logics,
                    ///     The Q Harass Enable Logics.
                    /// </summary>
                    case OrbwalkingMode.Combo:
                    case OrbwalkingMode.Hybrid:

                        /// <summary>
                        ///     Disable if:
                        ///     If you are in combo mode, the combo option is disabled. (Option check).
                        /// </summary>
                        if (Variables.Orbwalker.ActiveMode == OrbwalkingMode.Combo)
                        {
                            if (!Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value)
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - Combo - Option Disable.");
                                return;
                            }
                        }

                        /// <summary>
                        ///     Disable if:
                        ///     If you are in mixed mode, the mixed option is disabled.. (Option check).
                        ///     or it doesn't respect the ManaManager check. (Mana check).
                        /// </summary>
                        else if (Variables.Orbwalker.ActiveMode == OrbwalkingMode.Hybrid)
                        {
                            if (GameObjects.Player.ManaPercent
                                < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["harass"]) ||
                                !Vars.Menu["spells"]["q"]["harass"].GetValue <MenuSliderButton>().BValue)
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - Mixed - ManaManager or Option Disable.");
                                return;
                            }
                        }

                        /// <summary>
                        ///     Disable if:
                        ///     The target is not a hero. (Target check),
                        /// </summary>
                        if (Variables.Orbwalker.GetTarget() is Obj_AI_Hero &&
                            (Variables.Orbwalker.GetTarget() as Obj_AI_Hero).IsValidTarget())
                        {
                            /// <summary>
                            ///     Disable if:
                            ///     No enemies in explosion range from the target. (AOE Logic),
                            ///     Any hero in PowPow Range. (Range Logic).
                            /// </summary>
                            if (GameObjects.EnemyHeroes.Any(t => t.IsValidTarget(Vars.PowPow.Range)) &&
                                (Variables.Orbwalker.GetTarget() as Obj_AI_Hero).CountEnemyHeroesInRange(200f)
                                < 2)
                            {
                                Vars.Q.Cast();

                                //Console.WriteLine("ExorAIO: Jinx - Combo/Hybrid - Disabled.");
                                return;
                            }
                        }

                        break;

                    /// <summary>
                    ///     The Q Clear Disable Logics.
                    /// </summary>
                    case OrbwalkingMode.LaneClear:

                        /// <summary>
                        ///     Disable if:
                        ///     Doesn't respect the ManaManager Check, (Mana check).
                        ///     The Clear Option is disabled. (Option check).
                        /// </summary>
                        if (GameObjects.Player.ManaPercent
                            < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["clear"]))
                        {
                            Vars.Q.Cast();

                            //Console.WriteLine("ExorAIO: Jinx - Clear - ManaManager or Option Disable.");
                            return;
                        }

                        if (!Vars.Menu["spells"]["q"]["clear"].GetValue <MenuSliderButton>().BValue)
                        {
                            return;
                        }

                        /// <summary>
                        ///     Disable if:
                        ///     The player has no Runaan's Hurricane or there is only 1 hittable Minion..
                        ///     And there are no killable minions in Q explosion range or the number of killable minions is less than 3 (Lane AoE Logic).
                        /// </summary>
                        if ((!Items.HasItem(3085) || Targets.Minions.Count < 2) &&
                            (!Targets.Minions.Any(
                                 m => Vars.GetRealHealth(m) < GameObjects.Player.GetAutoAttackDamage(m) * 1.1) ||
                             Targets.Minions.Count(
                                 m2 =>
                                 m2.Distance(
                                     Targets.Minions.First(
                                         m =>
                                         Vars.GetRealHealth(m) < GameObjects.Player.GetAutoAttackDamage(m) * 1.1))
                                 < 250f) < 3))
                        {
                            Vars.Q.Cast();

                            //Console.WriteLine("ExorAIO: Jinx - LaneClear - Disabled.");
                            return;
                        }

                        /// <summary>
                        ///     Disable if:
                        ///     There is at least 1 monster in PowPow Range.. (Jungle Range Logic).
                        ///     .. And less than 1 monster in explosion range from the monster target (Jungle AoE Logic).
                        /// </summary>
                        if (Targets.JungleMinions.Any(m => m.IsValidTarget(Vars.PowPow.Range)) &&
                            Targets.JungleMinions.Count(m2 => m2.Distance(Targets.JungleMinions[0]) < 250f) < 2)
                        {
                            Vars.Q.Cast();

                            //Console.WriteLine("ExorAIO: Jinx - JungleClear - Disabled.");
                            return;
                        }

                        break;

                    /// <summary>
                    ///     The Q LastHit Disable Logic.
                    /// </summary>
                    case OrbwalkingMode.LastHit:

                        /// <summary>
                        ///     Disable if:
                        ///     Doesn't respect the ManaManager Check, (Mana check).
                        ///     The LastHit Option is disabled. (Option check).
                        /// </summary>
                        if (GameObjects.Player.ManaPercent
                            < ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["q"]["lasthit"]))
                        {
                            Vars.Q.Cast();

                            //Console.WriteLine("ExorAIO: Jinx - LastHit - ManaManager or Option Disable.");
                            return;
                        }

                        if (!Vars.Menu["spells"]["q"]["lasthit"].GetValue <MenuSliderButton>().BValue)
                        {
                            return;
                        }

                        /// <summary>
                        ///     Disable if:
                        ///     No killable minion in FishBones Range. (LastHit Range Logic).
                        /// </summary>
                        if (
                            !Targets.Minions.Any(
                                m =>
                                !m.IsValidTarget(Vars.PowPow.Range) &&
                                m.Health < GameObjects.Player.GetAutoAttackDamage(m) * 1.1))
                        {
                            Vars.Q.Cast();

                            //Console.WriteLine("ExorAIO: Jinx - LastHit - Range Killable Disable.");
                            return;
                        }

                        if (
                            Targets.Minions.Any(
                                m =>
                                m.IsValidTarget(Vars.PowPow.Range) &&
                                m.Health < GameObjects.Player.GetAutoAttackDamage(m)))
                        {
                            Vars.Q.Cast();

                            //Console.WriteLine("ExorAIO: Jinx - LastHit - Normally Killable Disable.");
                            return;
                        }

                        break;

                    /// <summary>
                    ///     The General Q Disable Logic.
                    /// </summary>
                    default:
                        Vars.Q.Cast();

                        //Console.WriteLine("ExorAIO: Jinx - General - Disabled.");
                        break;
                    }
                }
            }

            /// <summary>
            ///     The Automatic E Logic.
            /// </summary>
            if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["logical"].GetValue <MenuBool>().Value)
            {
                foreach (var target in
                         GameObjects.EnemyHeroes.Where(
                             t =>
                             Bools.IsImmobile(t) && t.IsValidTarget(Vars.E.Range) &&
                             !Invulnerable.Check(t, DamageType.Magical, false)))
                {
                    Vars.E.Cast(target.ServerPosition);
                }
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() && !GameObjects.Player.IsUnderEnemyTurret() &&
                GameObjects.Player.CountEnemyHeroesInRange(Vars.Q.Range) < 3 &&
                Vars.Menu["spells"]["w"]["logical"].GetValue <MenuBool>().Value)
            {
                foreach (var target in
                         GameObjects.EnemyHeroes.Where(
                             t => Bools.IsImmobile(t) && !Invulnerable.Check(t) && t.IsValidTarget(Vars.W.Range)))
                {
                    if (!Vars.W.GetPrediction(target).CollisionObjects.Any())
                    {
                        Vars.W.Cast(target.ServerPosition);
                    }
                }
            }

            /// <summary>
            ///     The Semi-Automatic R Logic.
            /// </summary>
            if (Vars.R.IsReady() && Vars.Menu["spells"]["r"]["bool"].GetValue <MenuBool>().Value &&
                Vars.Menu["spells"]["r"]["key"].GetValue <MenuKeyBind>().Active)
            {
                var target =
                    GameObjects.EnemyHeroes.Where(
                        t =>
                        !Invulnerable.Check(t) && t.IsValidTarget(Vars.R.Range) &&
                        Vars.Menu["spells"]["r"]["whitelist"][t.ChampionName.ToLower()].GetValue <MenuBool>().Value)
                    .OrderBy(o => o.Health)
                    .FirstOrDefault();
                if (target != null)
                {
                    Vars.R.Cast(Vars.R.GetPrediction(target).UnitPosition);
                }
            }
        }
Exemplo n.º 22
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The Clear R Logic.
            /// </summary>
            if (Vars.R.IsReady() &&
                Vars.E.IsReady() &&
                GameObjects.Player.ManaPercent > 20 &&
                Vars.getCheckBoxItem(Vars.RMenu, "clear"))
            {
                /// <summary>
                ///     The LaneClear R Logic.
                /// </summary>
                if (Targets.Minions.Any())
                {
                    if (Targets.Minions.Count() >= 3)
                    {
                        Vars.R.Cast();
                    }
                }

                /// <summary>
                ///     The JungleClear R Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any())
                {
                    Vars.R.Cast();
                }
            }

            /// <summary>
            ///     The Clear Q Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) &&
                Vars.getSliderItem(Vars.QMenu, "clear") != 101)
            {
                /// <summary>
                ///     The LaneClear Q Logic.
                /// </summary>
                if (Targets.Minions.Any())
                {
                    Vars.Q.Cast(Targets.Minions[0].ServerPosition);
                }

                /// <summary>
                ///     The JungleClear Q Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }
            }

            /// <summary>
            ///     The Clear W Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "clear")) &&
                Vars.getSliderItem(Vars.WMenu, "clear") != 101)
            {
                /// <summary>
                ///     The LaneClear W Logic.
                /// </summary>
                if (Targets.Minions.Any())
                {
                    Vars.W.CastOnUnit(Targets.Minions[0]);
                }

                /// <summary>
                ///     The JungleClear W Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    Vars.W.CastOnUnit(Targets.JungleMinions[0]);
                }
            }

            /// <summary>
            ///     The Clear E Logic.
            /// </summary>
            if (Vars.E.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) &&
                Vars.getSliderItem(Vars.EMenu, "clear") != 101)
            {
                /// <summary>
                ///     The LaneClear E Logic.
                /// </summary>
                if (Targets.Minions.Any())
                {
                    Vars.E.CastOnUnit(Targets.Minions[0]);
                }

                /// <summary>
                ///     The JungleClear E Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any())
                {
                    Vars.E.CastOnUnit(Targets.JungleMinions[0]);
                }
            }
        }
Exemplo n.º 23
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            if (GameObjects.Player.LSIsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                Vars.getCheckBoxItem(Vars.WMenu, "logical"))
            {
                foreach (var target in GameObjects.EnemyHeroes.Where(
                             t =>
                             Bools.IsImmobile(t) &&
                             !Invulnerable.Check(t) &&
                             t.LSIsValidTarget(Vars.W.Range)))
                {
                    if (!Vars.W.GetPrediction(target).CollisionObjects.Any())
                    {
                        Vars.W.Cast(Vars.W.GetPrediction(target).UnitPosition);
                    }
                }
            }

            /// <summary>
            ///     The Automatic E Logic.
            /// </summary>
            if (Vars.E.IsReady() &&
                Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None) &&
                GameObjects.Player.CountEnemyHeroesInRange(1000f) == 0 &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "vision")) &&
                Vars.getSliderItem(Vars.EMenu, "vision") != 101)
            {
                if (GameObjects.EnemyHeroes.Any(
                        x =>
                        !x.IsDead &&
                        !x.IsVisible))
                {
                    if (GameObjects.Player.Spellbook.GetSpell(SpellSlot.E).Ammo >=
                        (Vars.getCheckBoxItem(Vars.EMenu, "logical") ? 2 : 1))
                    {
                        Vars.E.Cast(Vars.Locations
                                    .Where(d => GameObjects.Player.Distance(d) > 1500f)
                                    .OrderBy(d2 => GameObjects.Player.Distance(d2))
                                    .FirstOrDefault());
                    }
                }
            }

            /// <summary>
            ///     The E -> R Combo Logics.
            /// </summary>
            if (Vars.R.IsReady() &&
                Vars.getCheckBoxItem(Vars.RMenu, "bool") &&
                Vars.getKeyBindItem(Vars.RMenu, "key") &&
                !Invulnerable.Check(Targets.Target, DamageType.Magical, false) &&
                Vars.getCheckBoxItem(Vars.WhiteListMenu, Targets.Target.ChampionName.ToLower()))
            {
                if (!Vars.R.GetPrediction(Targets.Target).CollisionObjects.Any())
                {
                    if (Vars.E.IsReady() &&
                        Vars.getCheckBoxItem(Vars.EMenu, "logical"))
                    {
                        Vars.E.Cast(Vars.E.GetPrediction(Targets.Target).UnitPosition);
                    }

                    Vars.R.Cast(Vars.R.GetPrediction(Targets.Target).UnitPosition);
                }
            }
        }
Exemplo n.º 24
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Harass(EntropyEventArgs args)
        {
            /// <summary>
            ///     The Q Harass Logic.
            /// </summary>
            var bestTargetQ = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.Q2.Range + 60f);

            if (SpellClass.Q.Ready &&
                bestTargetQ != null &&
                MenuClass.Spells["q"]["harass"].As <MenuSliderBool>().Enabled)
            {
                var manaPercent = UtilityClass.Player.MPPercent();
                var minEnemies  = MenuClass.Spells["q"]["customization"]["minenemies"];
                var bestTargetDistanceToPlayer = UtilityClass.Player.Distance(bestTargetQ);
                var harassManaManager          = MenuClass.Spells["q"]["harass"].As <MenuSliderBool>().Value;
                var enemiesInSplashRange       = bestTargetQ.EnemyHeroesCount(SplashRange);

                if (!IsUsingFishBones())
                {
                    if (manaPercent <= harassManaManager)
                    {
                        return;
                    }

                    if (minEnemies != null &&
                        enemiesInSplashRange >= minEnemies.As <MenuSlider>().Value)
                    {
                        SpellClass.Q.Cast();
                    }

                    if (bestTargetDistanceToPlayer > SpellClass.Q.Range + bestTargetQ.BoundingRadius)
                    {
                        SpellClass.Q.Cast();
                    }
                }
                else
                {
                    if (manaPercent <= harassManaManager)
                    {
                        SpellClass.Q.Cast();
                        return;
                    }

                    if (minEnemies != null &&
                        enemiesInSplashRange < minEnemies.As <MenuSlider>().Value&&
                        bestTargetDistanceToPlayer <= SpellClass.Q.Range + bestTargetQ.BoundingRadius)
                    {
                        SpellClass.Q.Cast();
                    }
                }
            }

            /// <summary>
            ///     The W Harass Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["harass"]) &&
                MenuClass.Spells["w"]["harass"].As <MenuSliderBool>().Enabled)
            {
                var bestTarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.W.Range);
                if (bestTarget != null &&
                    !Invulnerable.Check(bestTarget) &&
                    MenuClass.Spells["w"]["whitelist"][bestTarget.CharName.ToLower()].As <MenuBool>().Enabled)
                {
                    SpellClass.W.Cast(bestTarget);
                }
            }
        }
Exemplo n.º 25
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Laneclear()
        {
            /// <summary>
            ///     The Laneclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["laneclear"]) &&
                MenuClass.Spells["w"]["laneclear"].As <MenuSliderBool>().Enabled)
            {
                /*
                 * var farmLocation = SpellClass.W.GetCircularFarmLocation(Extensions.GetEnemyLaneMinionsTargets(), SpellClass.W.Width);
                 * if (farmLocation.MinionsHit >= MenuClass.Spells["w"]["customization"]["laneclear"].As<MenuSlider>().Value)
                 * {
                 *  SpellClass.W.Cast(farmLocation.Position);
                 * }
                 */
            }

            /// <summary>
            ///     The Laneclear E Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["laneclear"]) &&
                MenuClass.Spells["e"]["laneclear"].As <MenuSliderBool>().Enabled)
            {
                /*
                 * var farmLocation = SpellClass.W.GetCircularFarmLocation(Extensions.GetEnemyLaneMinionsTargets(), SpellClass.W.Width);
                 * if (farmLocation.MinionsHit >= MenuClass.Spells["w"]["customization"]["laneclear"].As<MenuSlider>().Value)
                 * {
                 *  SpellClass.E.Cast(farmLocation.Position);
                 * }
                 */
            }

            /// <summary>
            ///     The Laneclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["laneclear"]) &&
                MenuClass.Spells["q"]["laneclear"].As <MenuSliderBool>().Enabled)
            {
                /*
                 * var farmLocation = SpellClass.Q.GetCircularFarmLocation(Extensions.GetEnemyLaneMinionsTargets(), SpellClass.Q.Width*2);
                 * switch (MenuClass.Spells["q"]["customization"]["qmodes"]["laneclear"].As<MenuList>().Value)
                 * {
                 *  case 0:
                 *      if (!this.IsNearWorkedGround())
                 *      {
                 *          SpellClass.Q.Cast(farmLocation.Position);
                 *      }
                 *      break;
                 *  case 1:
                 *      SpellClass.Q.Cast(farmLocation.Position);
                 *      break;
                 * }
                 */
            }
        }
Exemplo n.º 26
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Automatic(EventArgs args)
        {
            /// <summary>
            ///     The Soulbound declaration.
            /// </summary>
            if (Kalista.SoulBound == null)
            {
                Kalista.SoulBound =
                    GameObjects.AllyHeroes.Find(
                        a => a.Buffs.Any(b => b.Caster.IsMe && b.Name.Contains("kalistacoopstrikeally")));
            }
            else
            {
                /// <summary>
                ///     The Automatic R Logic.
                /// </summary>
                if (Vars.R.IsReady() &&
                    Health.GetPrediction(Kalista.SoulBound, (int)(250 + Game.Ping / 2f))
                    <= Kalista.SoulBound.MaxHealth / 4 && Kalista.SoulBound.CountEnemyHeroesInRange(800f) > 0 &&
                    Kalista.SoulBound.IsValidTarget(Vars.R.Range, false) &&
                    Vars.Menu["spells"]["r"]["lifesaver"].GetValue <MenuBool>().Value)
                {
                    Vars.R.Cast();
                }
            }

            /// <summary>
            ///     The Automatic W Logic.
            /// </summary>
            if (Vars.W.IsReady() && !GameObjects.Player.IsRecalling() && !GameObjects.Player.IsUnderEnemyTurret() &&
                Variables.Orbwalker.ActiveMode == OrbwalkingMode.None &&
                GameObjects.Player.CountEnemyHeroesInRange(1500f) == 0 &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["logical"]) &&
                Vars.Menu["spells"]["w"]["logical"].GetValue <MenuSliderButton>().BValue)
            {
                foreach (var loc in
                         Kalista.Locations.Where(
                             l =>
                             GameObjects.Player.Distance(l) < Vars.W.Range &&
                             !ObjectManager.Get <Obj_AI_Minion>()
                             .Any(m => m.Distance(l) < 1000f && m.BaseSkinName.Equals("kalistaspawn"))))
                {
                    Vars.W.Cast(loc);
                }
            }

            /// <summary>
            ///     The Automatic E Logics.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The E Before death Logic.
                /// </summary>
                if (Health.GetPrediction(GameObjects.Player, (int)(1000 + Game.Ping / 2f)) <= 0 &&
                    Vars.Menu["spells"]["e"]["ondeath"].GetValue <MenuBool>().Value)
                {
                    Vars.E.Cast();
                }

                var validMinions =
                    Targets.Minions.Where(
                        m =>
                        Kalista.IsPerfectRendTarget(m) &&
                        Vars.GetRealHealth(m)
                        < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E)
                        + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff));

                var validTargets = GameObjects.EnemyHeroes.Where(Kalista.IsPerfectRendTarget);

                var objAiMinions = validMinions as IList <Obj_AI_Minion> ?? validMinions.ToList();
                var objAiHeroes  = validTargets as IList <AIHeroClient> ?? validTargets.ToList();

                /// <summary>
                ///     The E Minion Harass Logic.
                /// </summary>
                if (objAiMinions.Any() && objAiHeroes.Any() &&
                    Vars.Menu["spells"]["e"]["harass"].GetValue <MenuSliderButton>().BValue)
                {
                    if (objAiMinions.Count == 1)
                    {
                        /// <summary>
                        ///     Check for Mana Manager if not in combo mode and the killable minion is only one, else do not use it.
                        /// </summary>
                        if (Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo)
                        {
                            if (GameObjects.Player.ManaPercent
                                < ManaManager.GetNeededMana(Vars.E.Slot, Vars.Menu["spells"]["e"]["harass"]))
                            {
                                return;
                            }
                        }

                        /// <summary>
                        ///     Check for E Whitelist if the harassable target is only one and there is only one killable minion, else do not use the whitelist.
                        /// </summary>
                        else if (objAiHeroes.Count == 1)
                        {
                            var hero = objAiHeroes.FirstOrDefault();
                            if (hero != null &&
                                !Vars.Menu["spells"]["e"]["whitelist"][hero.ChampionName.ToLower()]
                                .GetValue <MenuBool>().Value)
                            {
                                return;
                            }
                        }

                        Vars.E.Cast();
                    }
                }

                /// <summary>
                ///     The E JungleClear Logic.
                /// </summary>
                if (Vars.Menu["spells"]["e"]["junglesteal"].GetValue <MenuBool>().Value)
                {
                    if (
                        Targets.JungleMinions.Any(
                            m =>
                            Kalista.IsPerfectRendTarget(m) &&
                            m.Health
                            < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E)
                            + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.E, DamageStage.Buff)))
                    {
                        Vars.E.Cast();
                    }
                }
            }
        }
Exemplo n.º 27
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void JungleClear(EntropyEventArgs args)
        {
            var jungleTarget = Extensions.GetGenericJungleMinionsTargets()
                               .MinBy(m => Hud.CursorPositionUnclipped.DistanceToPlayer());

            if (jungleTarget == null ||
                jungleTarget.HP < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 3)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear Rylai Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                jungleTarget.IsValidTarget(SpellClass.Q.Range) &&
                UtilityClass.Player.HasItem(ItemID.RylaisCrystalScepter) &&
                (IsNearWorkedGround() ||
                 UtilityClass.Player.MPPercent()
                 > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Q["jungleclear"])) &&
                MenuClass.Q["jungleclear"].Enabled)
            {
                switch (MenuClass.Q["modes"]["jungleclear"].Value)
                {
                case 0:
                    if (!IsNearWorkedGround())
                    {
                        SpellClass.Q.Cast(jungleTarget);
                    }

                    break;

                case 1:
                    SpellClass.Q.Cast(jungleTarget);
                    break;
                }
            }

            var targetPosAfterW = new Vector3();

            /// <summary>
            ///     The Jungleclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                jungleTarget.IsValidTarget(SpellClass.W.Range) &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.W["jungleclear"]) &&
                MenuClass.W["jungleclear"].Enabled)
            {
                var bestBoulderHitPos            = GetBestBouldersHitPosition(jungleTarget);
                var bestBoulderHitPosHitBoulders = GetBestBouldersHitPositionHitBoulders(jungleTarget);
                var jungleTargetPredPos          = SpellClass.W.GetPrediction(jungleTarget).CastPosition;

                if (SpellClass.E.Ready)
                {
                    if (UtilityClass.Player.Distance(GetUnitPositionAfterPull(jungleTarget)) >= 200f)
                    {
                        targetPosAfterW = GetUnitPositionAfterPull(jungleTarget);
                    }
                    else
                    {
                        targetPosAfterW = GetUnitPositionAfterPush(jungleTarget);
                    }

                    //SpellClass.W.Cast(jungleTargetPredPos, targetPosAfterW);
                    SpellClass.W.Cast(targetPosAfterW, jungleTargetPredPos);
                }
                else if (bestBoulderHitPos != Vector3.Zero && bestBoulderHitPosHitBoulders > 0)
                {
                    //SpellClass.W.Cast(jungleTargetPredPos, bestBoulderHitPos);
                    SpellClass.W.Cast(bestBoulderHitPos, jungleTargetPredPos);
                }
            }

            /// <summary>
            ///     The Jungleclear E Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                jungleTarget.IsValidTarget(SpellClass.E.Range) &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.E["jungleclear"]) &&
                MenuClass.E["jungleclear"].Enabled)
            {
                SpellClass.E.Cast(SpellClass.W.Ready
                                        ? targetPosAfterW
                                        : jungleTarget.Position);
            }

            /// <summary>
            ///     The Jungleclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                jungleTarget.IsValidTarget(SpellClass.Q.Range) &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Q["jungleclear"]) &&
                MenuClass.Q["jungleclear"].Enabled)
            {
                switch (MenuClass.Q["modes"]["jungleclear"].Value)
                {
                case 0:
                    if (!IsNearWorkedGround())
                    {
                        SpellClass.Q.Cast(jungleTarget);
                    }

                    break;

                case 1:
                    SpellClass.Q.Cast(jungleTarget);
                    break;
                }
            }
        }
Exemplo n.º 28
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The Clear W Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                GameObjects.Player.ManaPercent
                > ManaManager.GetNeededMana(Vars.W.Slot, Vars.Menu["spells"]["w"]["laneclear"]) &&
                Vars.Menu["spells"]["w"]["laneclear"].GetValue <MenuSliderButton>().BValue)
            {
                if (
                    GameObjects.EnemyHeroes.Any(
                        t => !Invulnerable.Check(t, DamageType.True, false) && t.IsValidTarget(Vars.W.Range - 150f)))
                {
                    return;
                }

                if (Vars.W.GetLineFarmLocation(Targets.Minions, Vars.W.Width).MinionsHit >= 4)
                {
                    Vars.W.Cast(Vars.W.GetLineFarmLocation(Targets.Minions, Vars.W.Width).Position);
                }
            }

            /// <summary>
            ///     The Clear Q Logic.
            /// </summary>
            if (Vars.Q.IsReady())
            {
                /// <summary>
                ///     The LaneClear Q Logic.
                /// </summary>
                if (Targets.Minions.Any() &&
                    GameObjects.Player.ManaPercent
                    > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["laneclear"]) &&
                    Vars.Menu["spells"]["q"]["laneclear"].GetValue <MenuSliderButton>().BValue)
                {
                    foreach (var minion in
                             Targets.Minions.Where(
                                 m =>
                                 m.IsValidTarget(Vars.Q.Range) && Targets.Minions.Count(m2 => m2.Distance(m) < 350f) >= 3 &&
                                 Vars.GetRealHealth(m) < (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q)))
                    {
                        Vars.Q.CastOnUnit(minion);
                    }
                }

                /// <summary>
                ///     The JungleClear Q Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any() &&
                         GameObjects.Player.ManaPercent
                         > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["jungleclear"]) &&
                         Vars.Menu["spells"]["q"]["jungleclear"].GetValue <MenuSliderButton>().BValue)
                {
                    Vars.Q.CastOnUnit(Targets.JungleMinions[0]);
                }
            }
        }
Exemplo n.º 29
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The R Clear Logic.
            /// </summary>
            if (Vars.R.IsReady() &&
                GameObjects.Player.Spellbook.GetSpell(SpellSlot.R).ToggleState == 1 &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.R.Slot, Vars.getSliderItem(Vars.RMenu, "clear")) &&
                Vars.getSliderItem(Vars.RMenu, "clear") != 101)
            {
                /// <summary>
                ///     The R LaneClear Logic.
                /// </summary>
                if (Vars.R.GetCircularFarmLocation(Targets.Minions).MinionsHit >= 3)
                {
                    Vars.R.Cast(Vars.R.GetCircularFarmLocation(Targets.Minions).Position);
                }

                /// <summary>
                ///     The R JungleClear Logic.
                /// </summary>
                else if (Targets.JungleMinions.Any())
                {
                    Vars.R.Cast(Targets.JungleMinions[0].ServerPosition);
                }
                return;
            }

            /// <summary>
            ///     The Q Clear Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).ToggleState == 1 &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) &&
                Vars.getSliderItem(Vars.QMenu, "clear") != 101)
            {
                /// <summary>
                ///     The Q JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }

                /// <summary>
                ///     The LaneClear Q Logics.
                /// </summary>
                else
                {
                    /// <summary>
                    ///     The Aggressive LaneClear Q Logic.
                    /// </summary>
                    if (GameObjects.EnemyHeroes.Any(
                            t =>
                            t.LSIsValidTarget(Vars.Q.Range) &&
                            !Invulnerable.Check(t, DamageType.Magical, false)))
                    {
                        if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width * 2 - 10f).MinionsHit >= 3 &&
                            !new Geometry.Rectangle(
                                GameObjects.Player.ServerPosition,
                                GameObjects.Player.ServerPosition.LSExtend(
                                    Targets.Minions[0].ServerPosition, Vars.Q.Range),
                                Vars.Q.Width * 2 - 10f).IsOutside((Vector2)Vars.Q.GetPrediction(
                                                                      GameObjects.EnemyHeroes.FirstOrDefault(
                                                                          t =>
                                                                          !Invulnerable.Check(t) &&
                                                                          t.LSIsValidTarget(Vars.Q.Range))).CastPosition))
                        {
                            Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width * 2 - 10f).Position);
                        }
                    }

                    /// <summary>
                    ///     The LaneClear Q Logic.
                    /// </summary>
                    else if (!GameObjects.EnemyHeroes.Any(
                                 t =>
                                 !Invulnerable.Check(t) &&
                                 t.LSIsValidTarget(Vars.Q.Range + 100)))
                    {
                        if (Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width * 2 - 10f).MinionsHit >= 3)
                        {
                            Vars.Q.Cast(Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width * 2 - 10f).Position);
                        }
                    }
                }
            }
        }
Exemplo n.º 30
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void JungleClear(EntropyEventArgs args)
        {
            var jungleTarget = ObjectManager.Get <AIMinionClient>()
                               .Where(m => Extensions.GetGenericJungleMinionsTargets().Contains(m))
                               .MinBy(m => m.DistanceToPlayer());

            if (jungleTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The W Jungleclear Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                !IsAllured(jungleTarget) &&
                jungleTarget.IsValidTarget(SpellClass.W.Range) &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["jungleclear"]) &&
                MenuClass.Spells["w"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                var targetName = jungleTarget.CharName;
                if (UtilityClass.JungleList.Contains(targetName) &&
                    MenuClass.Spells["w"]["whitelist"][targetName].As <MenuBool>().Enabled)
                {
                    SpellClass.W.CastOnUnit(jungleTarget);
                    return;
                }
            }

            if (IsFullyAllured(jungleTarget))
            {
                /// <summary>
                ///     The E Jungleclear Logic.
                /// </summary>
                if (SpellClass.E.Ready &&
                    IsWhiplashEmpowered() &&
                    jungleTarget.IsValidTarget(SpellClass.E.Range) &&
                    UtilityClass.Player.MPPercent()
                    > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) &&
                    MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled)
                {
                    SpellClass.E.CastOnUnit(jungleTarget);
                }
            }

            if (IsAllured(jungleTarget) && !IsFullyAllured(jungleTarget))
            {
                return;
            }

            /// <summary>
            ///     The Q Jungleclear Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                jungleTarget.IsValidTarget(SpellClass.Q.Range) &&
                (UtilityClass.Player.MPPercent()
                 > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) || !IsHateSpikeSkillshot()) &&
                MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                if (IsHateSpikeSkillshot())
                {
                    SpellClass.Q.Cast(jungleTarget);
                }
                else
                {
                    SpellClass.Q.CastOnUnit(jungleTarget);
                }
            }

            /// <summary>
            ///     The E Jungleclear Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                jungleTarget.IsValidTarget(SpellClass.E.Range) &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) &&
                MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.E.CastOnUnit(jungleTarget);
            }
        }