Esempio n. 1
0
        /// <summary>
        ///     Called on post attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Harass(OnPreAttackEventArgs args)
        {
            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The Q Harass Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["harass"].As <MenuBool>().Enabled)
            {
                SpellClass.Q.Cast();
            }

            /// <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&&
                MenuClass.Spells["e"]["whitelist"][heroTarget.CharName.ToLower()].As <MenuBool>().Enabled)
            {
                SpellClass.E.CastOnUnit(heroTarget);
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Called on post attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Jungleclear(OnPreAttackEventArgs args)
        {
            var jungleTarget = args.Target as AIMinionClient;

            if (!HasFourthShot() ||
                !jungleTarget.IsValidTarget() ||
                !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget))
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear Q Logics.
            /// </summary>
            if (SpellClass.Q.Ready &&
                HasFourthShot() &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Q["jungleclear"]) &&
                MenuClass.Q["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.Q.CastOnUnit(jungleTarget);
            }

            /// <summary>
            ///     The Jungleclear E Logics.
            /// </summary>
            if (SpellClass.E.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.E["jungleclear"]) &&
                MenuClass.E["jungleclear"].As <MenuSliderBool>().Enabled&&
                jungleTarget?.HP > UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 4)
            {
                SpellClass.E.Cast(jungleTarget);
            }
        }
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            if (IsUltimateShooting())
            {
                args.Cancel = true;
            }

            /// <summary>
            ///     The Target Forcing Logic.
            /// </summary>
            if (MenuClass.Miscellaneous["focusp"].As <MenuSliderBool>().Enabled)
            {
                var orbTarget   = args.Target as AIHeroClient;
                var forceTarget = Extensions.GetBestEnemyHeroesTargets().FirstOrDefault(t =>
                                                                                        t.NetworkID != LoveTapTargetNetworkId &&
                                                                                        t.IsValidTarget(UtilityClass.Player.GetAutoAttackRange(t)));
                if (forceTarget != null &&
                    orbTarget != null &&
                    orbTarget.GetRealHealth() >
                    UtilityClass.Player.GetAutoAttackDamage(orbTarget) *
                    MenuClass.Miscellaneous["focusp"].As <MenuSliderBool>().Value)
                {
                    args.Target = forceTarget;
                }
            }
        }
Esempio n. 4
0
        private static void OnPreAttack(OnPreAttackEventArgs args)
        {
            if (args.Target == null)
            {
                return;
            }

            if (args.Target.IsStructure())
            {
                return;
            }

            var stormrazorSlot =
                LocalPlayer.Instance.InventorySlots.FirstOrDefault(s => s.IsValid && s.ItemID == (uint)ItemID.Stormrazor);

            if (stormrazorSlot != null)
            {
                switch (Orbwalker.Mode)
                {
                case OrbwalkingMode.Combo when !General.StormrazorComboMenubool.Enabled: return;

                case OrbwalkingMode.Harass when !General.StormrazorHarassMenubool.Enabled: return;

                case OrbwalkingMode.Laneclear when !General.StormrazorLaneClearMenubool.Enabled: return;

                case OrbwalkingMode.Lasthit when !General.StormrazorLasthitMenubool.Enabled: return;
                }

                if (!LocalPlayer.Instance.HasBuff("windbladebuff"))
                {
                    args.Cancel = true;
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        ///     Called on post attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Weaving(OnPreAttackEventArgs args)
        {
            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The E Weaving Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                MenuClass.Spells["e"]["combo"].As <MenuSliderBool>().Enabled)
            {
                if (UtilityClass.Player.HPPercent()
                    >= MenuClass.Spells["e"]["combo"].As <MenuSliderBool>().Value ||
                    UtilityClass.Player.GetSpellDamage(heroTarget, SpellSlot.E) >= heroTarget.GetRealHealth())
                {
                    SpellClass.E.CastOnUnit(heroTarget);
                }
            }

            /// <summary>
            ///     The W Weaving Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                MenuClass.Spells["w"]["combo"].As <MenuBool>().Enabled)
            {
                SpellClass.W.Cast();
            }
        }
Esempio n. 6
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Buildingclear(OnPreAttackEventArgs args)
        {
            var target = args.Target;

            if (!target.IsStructure())
            {
                return;
            }

            /// <summary>
            ///     The Q BuildingClear Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["buildings"].As <MenuBool>().Enabled)
            {
                SpellClass.Q.Cast();
            }

            /// <summary>
            ///     The E BuildingClear Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["buildings"]) &&
                MenuClass.Spells["e"]["buildings"].As <MenuSliderBool>().Enabled)
            {
                var turretTarget = target as AITurretClient;
                if (turretTarget != null)
                {
                    SpellClass.E.CastOnUnit(turretTarget);
                }
            }
        }
        /// <summary>
        ///     Called on do-cast.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Jungleclear(OnPreAttackEventArgs args)
        {
            var jungleTarget = args.Target as AIMinionClient;

            if (jungleTarget == null ||
                !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget) ||
                jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 2)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["jungleclear"].As <MenuBool>().Enabled)
            {
                SpellClass.Q.Cast();
            }

            /// <summary>
            ///     The Jungleclear E Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) &&
                MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.E.CastOnUnit(jungleTarget);
            }
        }
Esempio n. 8
0
        /// <summary>
        ///     Called on post attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Combo(OnPreAttackEventArgs args)
        {
            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The Q Combo Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["combo"].As <MenuBool>().Enabled)
            {
                SpellClass.Q.Cast();
            }

            /// <summary>
            ///     The E Combo Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                MenuClass.Spells["e"]["combo"].As <MenuBool>().Enabled&&
                MenuClass.Spells["e"]["whitelist"][heroTarget.CharName.ToLower()].As <MenuBool>().Enabled)
            {
                SpellClass.E.CastOnUnit(heroTarget);
            }
        }
Esempio n. 9
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            if (UtilityClass.Player.HasBuff("dariusqcast"))
            {
                args.Cancel = true;
            }
        }
Esempio n. 10
0
        public static void ExecuteQ(OnPreAttackEventArgs args)
        {
            if (!HarassMenu.QSliderBool.Enabled)
            {
                return;
            }

            if (LocalPlayer.Instance.MPPercent() < ManaManager.GetNeededMana(Q.Slot, HarassMenu.QSliderBool))
            {
                return;
            }

            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            if (!HarassMenu.QWhitelist.IsWhitelisted(heroTarget))
            {
                return;
            }

            Q.Cast();
        }
Esempio n. 11
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            if (IsChargingPiercingArrow())
            {
                args.Cancel = true;
            }
        }
Esempio n. 12
0
 /// <summary>
 ///     Called on pre attack.
 /// </summary>
 /// <param name="sender">The object.</param>
 /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
 public void OnPreAttack(OnPreAttackEventArgs args)
 {
     if (UtilityClass.Player.HasBuff("akaliwstealth") &&
         MenuClass.Miscellaneous["staystealthaa"].As <MenuBool>().Enabled)
     {
         args.Cancel = true;
     }
 }
Esempio n. 13
0
 /// <summary>
 ///     Called on Orbwalker action.
 /// </summary>
 /// <param name="sender">The object.</param>
 /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
 public void OnPreAttack(OnPreAttackEventArgs args)
 {
     switch (Orbwalker.Mode)
     {
     case OrbwalkingMode.LaneClear:
         Laneclear(sender, args);
         Jungleclear(sender, args);
         break;
     }
 }
Esempio n. 14
0
        /// <summary>
        ///     Called on Orbwalker action.
        /// </summary>
        /// <param name="sender">The object.</param>
        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Jungleclear(OnPreAttackEventArgs args)
        {
            var jungleTarget = args.Target as AIMinionClient;

            if (!jungleTarget.IsValidTarget() ||
                !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget))
            {
                if (IsUsingFishBones())
                {
                    SpellClass.Q.Cast();
                }
                return;
            }

            /// <summary>
            ///     The Jungleclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                var manaPercent            = UtilityClass.Player.MPPercent();
                var minionsInRange         = Extensions.GetGenericJungleMinionsTargets().Count(m => m.Distance(jungleTarget) <= SplashRange);
                var jungleClearMinMinions  = MenuClass.Spells["q"]["customization"]["jungleclear"].As <MenuSlider>().Value;
                var jungleClearManaManager = MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Value;

                if (!IsUsingFishBones())
                {
                    if (manaPercent >= jungleClearManaManager &&
                        minionsInRange >= jungleClearMinMinions)
                    {
                        SpellClass.Q.Cast();
                    }
                }
                else
                {
                    if (manaPercent < jungleClearManaManager ||
                        minionsInRange < jungleClearMinMinions)
                    {
                        SpellClass.Q.Cast();
                    }
                }
            }

            /// <summary>
            ///     The Jungleclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                jungleTarget.IsValidTarget(SpellClass.W.Range) &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["jungleclear"]) &&
                MenuClass.Spells["w"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.W.Cast(jungleTarget);
            }
        }
Esempio n. 15
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            /// <summary>
            ///     Initializes the orbwalkingmodes.
            /// </summary>
            switch (Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo:
                Weaving(sender, args);
                break;
            }
        }
Esempio n. 16
0
        private static void OnPreAttack(OnPreAttackEventArgs args)
        {
            switch (Orbwalker.Mode)
            {
            // Disable AA until level
            case OrbwalkingMode.Combo:
                if (BaseMenu.Root["general"]["disableaa"].Enabled &&
                    !LocalPlayer.Instance.HasSheenLikeBuff() &&
                    LocalPlayer.Instance.Level() >= BaseMenu.Root["general"]["disableaa"].Value)
                {
                    args.Cancel = true;
                }
                break;

            // Support mode
            case OrbwalkingMode.Harass:
            case OrbwalkingMode.LaneClear:
                if (BaseMenu.Root["general"]["supportmode"].Enabled &&
                    ObjectCache.EnemyLaneMinions.Contains(args.Target))
                {
                    args.Cancel = ObjectCache.AllyHeroes.Any(a => !a.IsMe() && a.DistanceToPlayer() < 2500);
                }
                break;
            }

            if (args.Target.IsStructure())
            {
                return;
            }

            var stormrazorSlot = LocalPlayer.Instance.InventorySlots.FirstOrDefault(s => s.IsValid && s.ItemID == (uint)ItemID.Stormrazor);

            if (stormrazorSlot != null)
            {
                var stormRazorMenu = BaseMenu.Root["general"]["stormrazor"];
                switch (Orbwalker.Mode)
                {
                case OrbwalkingMode.Combo when !stormRazorMenu["combo"].Enabled: return;

                case OrbwalkingMode.Harass when !stormRazorMenu["mixed"].Enabled: return;

                case OrbwalkingMode.LaneClear when !stormRazorMenu["laneclear"].Enabled: return;

                case OrbwalkingMode.LastHit when !stormRazorMenu["lasthit"].Enabled: return;
                }

                if (!LocalPlayer.Instance.HasBuff("windbladebuff"))
                {
                    args.Cancel = true;
                }
            }
        }
Esempio n. 17
0
        /// <summary>
        ///     Called on post attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Weaving(OnPreAttackEventArgs args)
        {
            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The Q Combo Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Q["combo"].As <MenuBool>().Enabled)
            {
                if (MenuClass.Miscellaneous["feathersweaving"].As <MenuBool>().Enabled)
                {
                    if (UtilityClass.Player.GetBuffCount("XayahPassiveActive") <= 3)
                    {
                        SpellClass.Q.Cast(heroTarget);
                        return;
                    }
                }
                else
                {
                    SpellClass.Q.Cast(heroTarget);
                }
            }

            /// <summary>
            ///     The W Combo Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                MenuClass.W["combo"].As <MenuBool>().Enabled)
            {
                if (MenuClass.Miscellaneous["feathersweaving"].As <MenuBool>().Enabled)
                {
                    if (UtilityClass.Player.GetBuffCount("XayahPassiveActive") <= 3)
                    {
                        SpellClass.W.Cast();
                    }
                }
                else
                {
                    SpellClass.W.Cast();
                }
            }
        }
Esempio n. 18
0
        /// <summary>
        ///     Called on post attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Laneclear(OnPreAttackEventArgs args)
        {
            /// <summary>
            ///     The Laneclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["laneclear"]) &&
                MenuClass.Spells["q"]["laneclear"].As <MenuSliderBool>().Enabled)
            {
                /*
                 * var farmLocation = SpellClass.Q.GetLinearFarmLocation(minions, SpellClass.Q.Width);
                 * if (farmLocation.MinionsHit >= MenuClass.Spells["q"]["customization"]["laneclear"].As<MenuSlider>().Value)
                 * {
                 *  SpellClass.Q.Cast(farmLocation.Position);
                 * }
                 */
            }

            /// <summary>
            ///     The E Big Minions Lasthit Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                MenuClass.Spells["e"]["lasthit"].As <MenuBool>().Enabled)
            {
                foreach (var minion in Extensions.GetEnemyLaneMinionsTargetsInRange(SpellClass.E.Range).Where(m =>
                                                                                                              (m.CharName.Contains("Siege") || m.CharName.Contains("Super")) &&
                                                                                                              m.GetRealHealth() < UtilityClass.Player.GetSpellDamage(m, SpellSlot.E)))
                {
                    SpellClass.E.CastOnUnit(minion);
                }
            }

            /// <summary>
            ///     The Laneclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["w"]["laneclear"]) &&
                MenuClass.Spells["w"]["laneclear"].As <MenuSliderBool>().Enabled)
            {
                var mainMinion = Orbwalker.GetOrbwalkingTarget() as AIMinionClient;
                if (mainMinion != null)
                {
                    SpellClass.W.Cast();
                }
            }
        }
Esempio n. 19
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>
        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            if (!UtilityClass.Player.Position.IsUnderEnemyTurret() &&
                UtilityClass.Player.HasBuff("vaynetumblefade"))
            {
                var invisibilityBuff = UtilityClass.Player.GetBuff("vaynetumblefade");
                if (MenuClass.Miscellaneous["stealthtime"].Enabled &&
                    invisibilityBuff.GetRemainingBuffTime() >
                    invisibilityBuff.ExpireTime - invisibilityBuff.StartTime -
                    MenuClass.Miscellaneous["stealthtime"].Value / 1000f)
                {
                    args.Cancel = true;
                }

                if (UtilityClass.Player.HasBuff("summonerexhaust"))
                {
                    args.Cancel = true;
                }

                if (MenuClass.Miscellaneous["stealthcheck"].Enabled &&
                    ObjectCache.EnemyHeroes.Count(t =>
                                                  t.IsValidTarget(UtilityClass.Player.GetAutoAttackRange(t))) >=
                    MenuClass.Miscellaneous["stealthcheck"].Value)
                {
                    args.Cancel = true;
                }
            }

            /// <summary>
            ///     The Target Forcing Logic.
            /// </summary>
            if (MenuClass.Miscellaneous["focusw"].Enabled)
            {
                if (Orbwalker.Mode != OrbwalkingMode.Combo &&
                    Orbwalker.Mode != OrbwalkingMode.Harass)
                {
                    return;
                }

                var forceTarget = Extensions.GetBestEnemyHeroesTargets().FirstOrDefault(t =>
                                                                                        t.GetBuffCount("vaynesilvereddebuff") == 2 &&
                                                                                        t.IsValidTarget(UtilityClass.Player.GetAutoAttackRange(t)));
                if (forceTarget != null)
                {
                    args.Target = forceTarget;
                }
            }
        }
Esempio n. 20
0
        public static void ExecuteQ(OnPreAttackEventArgs args)
        {
            if (!ComboMenu.QBool.Enabled)
            {
                return;
            }

            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            Q.Cast();
        }
Esempio n. 21
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            /// <summary>
            ///     Initializes the orbwalkingmodes.
            /// </summary>
            switch (Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo:
                Weaving(args);
                break;

            case OrbwalkingMode.LaneClear:
                Jungleclear(args);
                break;
            }
        }
Esempio n. 22
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Jungleclear(OnPreAttackEventArgs args)
        {
            var jungleTarget = args.Target as AIMinionClient;

            if (jungleTarget == null ||
                !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget) ||
                jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 2)
            {
                return;
            }

            /// <summary>
            ///     The Jungleclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) &&
                MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.Q.Cast(SpellClass.Q.GetPrediction(jungleTarget).CastPosition.Extend(UtilityClass.Player.Position, -50f - jungleTarget.BoundingRadius));
            }

            /// <summary>
            ///     The Jungleclear E Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                if (UtilityClass.Player.HPPercent()
                    >= MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Value ||
                    UtilityClass.Player.GetSpellDamage(jungleTarget, SpellSlot.E) >= jungleTarget.GetRealHealth())
                {
                    SpellClass.E.CastOnUnit(jungleTarget);
                }
            }

            /// <summary>
            ///     The Jungleclear W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["jungleclear"]) &&
                MenuClass.Spells["w"]["jungleclear"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.W.Cast();
            }
        }
Esempio n. 23
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            var orbTarget = Orbwalker.GetOrbwalkingTarget();

            if (orbTarget != null)
            {
                var baseTarget = orbTarget as AIBaseClient;
                if (baseTarget != null)
                {
                    if (IsAllured(baseTarget) && !IsFullyAllured(baseTarget) &&
                        MenuClass.Spells["miscellaneous"]["dontaasemiallured"].As <MenuBool>().Enabled)
                    {
                        args.Cancel = true;
                    }
                }
            }
        }
Esempio n. 24
0
        public static void OnPreAttack(OnPreAttackEventArgs args)
        {
            switch (Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo when Q.Ready:
                Combo.ExecuteQ(args);
                break;

            case OrbwalkingMode.Laneclear when Q.Ready:
                LaneClear.ExecuteQ();
                JungleClear.ExecuteQ(args);
                break;

            case OrbwalkingMode.Harass when Q.Ready:
                Harass.ExecuteQ(args);
                break;
            }
        }
Esempio n. 25
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Weaving(OnPreAttackEventArgs args)
        {
            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The E Combo Logic.
            /// </summary>
            if (SpellClass.E.Ready &&
                !Invulnerable.Check(heroTarget, DamageType.Magical) &&
                MenuClass.Spells["e"]["combo"].As <MenuBool>().Enabled)
            {
                SpellClass.E.Cast();
            }
        }
Esempio n. 26
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Weaving(OnPreAttackEventArgs args)
        {
            var heroTarget = args.Target as AIHeroClient;

            if (heroTarget == null)
            {
                return;
            }

            /// <summary>
            ///     The Q Combo Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                HasFourthShot() &&
                MenuClass.Q["combo"].As <MenuBool>().Enabled)
            {
                SpellClass.Q.CastOnUnit(heroTarget);
            }
        }
Esempio n. 27
0
        /// <summary>
        ///     Called on Orbwalker action.
        /// </summary>
        /// <param name="sender">The object.</param>
        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Laneclear(OnPreAttackEventArgs args)
        {
            var minionTarget = args.Target as AIMinionClient;

            if (minionTarget == null)
            {
                if (IsUsingFishBones())
                {
                    SpellClass.Q.Cast();
                }
                return;
            }

            /// <summary>
            ///     The Laneclear Q Logic.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Spells["q"]["laneclear"].As <MenuSliderBool>().Enabled)
            {
                var manaPercent          = UtilityClass.Player.MPPercent();
                var minionsInRange       = Extensions.GetEnemyLaneMinionsTargets().Count(m => m.Distance(minionTarget) < SplashRange);
                var laneClearMinMinions  = MenuClass.Spells["q"]["customization"]["laneclear"].Value;
                var laneClearManaManager = MenuClass.Spells["q"]["laneclear"].As <MenuSliderBool>().Value;

                if (!IsUsingFishBones())
                {
                    if (manaPercent >= laneClearManaManager &&
                        minionsInRange >= laneClearMinMinions)
                    {
                        SpellClass.Q.Cast();
                    }
                }
                else
                {
                    if (manaPercent < laneClearManaManager ||
                        minionsInRange < laneClearMinMinions)
                    {
                        SpellClass.Q.Cast();
                    }
                }
            }
        }
        /// <summary>
        ///     Called on do-cast.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void Buildingclear(OnPreAttackEventArgs args)
        {
            var target = args.Target;

            if (!target.IsStructure())
            {
                return;
            }

            /// <summary>
            ///     The W BuildingClear Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["buildings"]) &&
                MenuClass.Spells["w"]["buildings"].As <MenuSliderBool>().Enabled)
            {
                SpellClass.W.Cast();
            }
        }
Esempio n. 29
0
        public static void ExecuteQ(OnPreAttackEventArgs args)
        {
            if (!JungleClearMenu.QSliderBool.Enabled)
            {
                return;
            }

            if (LocalPlayer.Instance.MPPercent() < JungleClearMenu.QSliderBool.Value)
            {
                return;
            }

            var minion = args.Target as AIMinionClient;

            if (minion == null || !minion.IsValid || !minion.IsJungleMinion())
            {
                return;
            }

            Q.Cast();
        }
Esempio n. 30
0
        /// <summary>
        ///     Called on pre attack.
        /// </summary>

        /// <param name="args">The <see cref="OnPreAttackEventArgs" /> instance containing the event data.</param>
        public void OnPreAttack(OnPreAttackEventArgs args)
        {
            /// <summary>
            ///     The Target Forcing Logic.
            /// </summary>
            if (MenuClass.Miscellaneous["focuse"].As <MenuBool>().Enabled)
            {
                var forceTarget = Extensions.GetAllGenericUnitTargets().FirstOrDefault(t =>
                                                                                       IsCharged(t) &&
                                                                                       t.IsValidTarget(UtilityClass.Player.GetAutoAttackRange(t)));

                if (forceTarget is AIMinionClient &&
                    Orbwalker.Mode == OrbwalkingMode.Combo)
                {
                    return;
                }

                if (forceTarget != null)
                {
                    args.Target = forceTarget;
                }
            }

            switch (Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo:
                Combo(sender, args);
                break;

            case OrbwalkingMode.Harass:
                Harass(sender, args);
                break;

            case OrbwalkingMode.LaneClear:
                Laneclear(sender, args);
                Jungleclear(sender, args);
                Buildingclear(sender, args);
                break;
            }
        }