Beispiel #1
0
        internal static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (ProSeries.CanCombo())
            {
                if (ProSeries.Config.Item("usecomboq", true).GetValue <bool>() &&
                    target.IsValid <AIHeroClient>())
                {
                    Q.Cast();
                }
            }

            if (ProSeries.CanHarass())
            {
                if (ProSeries.Config.Item("useharassq", true).GetValue <bool>() &&
                    target.IsValid <AIHeroClient>() && ProSeries.IsWhiteListed((AIHeroClient)target))
                {
                    Q.Cast();
                }
            }

            if (ProSeries.CanClear())
            {
                if (ProSeries.Config.Item("useclearq", true).GetValue <bool>() &&
                    target.IsValid <Obj_AI_Minion>())
                {
                    Q.Cast();
                }
            }
        }
Beispiel #2
0
 public static void Orbwalk(AttackableUnit target)
 {
     if (target.IsValidTarget() && CanAttack && IsAllowedToAttack)
     {
         _disableNextAttack = false;
         FireBeforeAttack(target);
         if (!_disableNextAttack)
         {
             if ((CurrentMode != Mode.Harass || !target.IsValid <Obj_AI_Minion>() ||
                  _config.Item("OW_Harass_LastHit").IsActive()) &&
                 Player.IssueOrder(GameObjectOrder.AttackUnit, target))
             {
                 _lastAttack = Utils.GameTimeTickCount + Game.Ping / 2;
             }
         }
     }
     if (!CanMove || !IsAllowedToMove)
     {
         return;
     }
     if (_config.Item("OW_Combo_MeleeMagnet").IsActive() && CurrentMode == Mode.Combo && Player.IsMelee &&
         Player.AttackRange < 200 && InAutoAttackRange(target) && target.IsValid <Obj_AI_Hero>() &&
         ((Obj_AI_Hero)target).Distance(Game.CursorPos) < 300)
     {
         MovePrediction.Delay = Player.BasicAttack.SpellCastTime;
         MovePrediction.Speed = Player.BasicAttack.MissileSpeed;
         MoveTo(MovePrediction.GetPrediction((Obj_AI_Hero)target).UnitPosition);
     }
     else
     {
         MoveTo(Game.CursorPos);
     }
 }
Beispiel #3
0
        private static void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe || !unit.IsValid)
            {
                return;
            }

            switch (Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                if (Menu.Item("useqcombo").GetValue <bool>() && target.IsValid <AIHeroClient>())
                {
                    Q.Cast();
                }
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                if (Menu.Item("useqharass").GetValue <bool>() && target.IsValid <AIHeroClient>())
                {
                    Q.Cast();
                }
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                if (Menu.Item("useqclear").GetValue <bool>() && target.IsValid <AIMinionClient>())
                {
                    Q.Cast();
                }
                break;
            }
        }
Beispiel #4
0
        private void AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe || !unit.IsValid <Obj_AI_Base>())
            {
                return;
            }

            if (Variables.Spells[SpellSlot.Q].IsEnabledAndReady(ModesMenuExtensions.Mode.Combo) ||
                (Variables.Spells[SpellSlot.Q].IsEnabledAndReady(ModesMenuExtensions.Mode.Harrass) &&
                 ObjectManager.Player.ManaPercent >= Variables.AssemblyMenu.GetItemValue <Slider>("dzaio.champion.extra.mixed.mana").Value))
            {
                if (target.IsValid <Obj_AI_Hero>() && target.IsValidTarget())
                {
                    Variables.Spells[SpellSlot.Q].CastIfHitchanceEquals(target as Obj_AI_Hero, HitChance.High);
                }
            }

            if (Variables.Spells[SpellSlot.W].IsEnabledAndReady(ModesMenuExtensions.Mode.Combo) ||
                (Variables.Spells[SpellSlot.W].IsEnabledAndReady(ModesMenuExtensions.Mode.Harrass) &&
                 ObjectManager.Player.ManaPercent >= Variables.AssemblyMenu.GetItemValue <Slider>("dzaio.champion.extra.mixed.mana").Value))
            {
                if (target.IsValid <Obj_AI_Hero>() && target.IsValidTarget())
                {
                    Variables.Spells[SpellSlot.W].CastIfHitchanceEquals(target as Obj_AI_Hero, HitChance.High);
                }
            }
        }
Beispiel #5
0
        private static void Orbwalking_OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (ProSeries.CanCombo())
            {
                if (ProSeries.Config.Item("usecombow", true).GetValue <bool>() &&
                    target.IsValid <Obj_AI_Hero>())
                {
                    W.Cast();
                }
            }

            if (ProSeries.CanHarass())
            {
                if (ProSeries.Config.Item("useharassw", true).GetValue <bool>() &&
                    target.IsValid <Obj_AI_Hero>() && ProSeries.IsWhiteListed((Obj_AI_Hero)target))
                {
                    W.Cast();
                }
            }

            if (ProSeries.CanClear())
            {
                if (ProSeries.Config.Item("useclearw", true).GetValue <bool>() &&
                    target.IsValid <Obj_AI_Minion>())
                {
                    W.Cast();
                }
            }
        }
Beispiel #6
0
        /// <summary>
        ///     Returns if the target is valid (not dead, targetable, visible...).
        /// </summary>
        public static bool LSIsValidTarget(this AttackableUnit unit,
                                           float range    = float.MaxValue,
                                           bool checkTeam = true,
                                           Vector3 from   = new Vector3())
        {
            if (unit == null || !unit.IsValid || unit.IsDead || !unit.IsVisible || unit.IsInvulnerable || unit.Name == "WardCorpse")
            {
                return(false);
            }

            if (unit.IsValid <AIHeroClient>())
            {
                var un = unit as AIHeroClient;
                if (!un.IsHPBarRendered || un.IsDead || !un.IsVisible)
                {
                    return(false);
                }
            }

            if (unit.IsValid <Obj_AI_Base>())
            {
                var un = unit as Obj_AI_Base;
                if (!un.IsHPBarRendered || un.IsDead || !un.IsVisible)
                {
                    return(false);
                }
            }

            var @base = unit as Obj_AI_Base;

            if (@base != null)
            {
                if (@base.HasBuff("kindredrnodeathbuff") && @base.HealthPercent <= 10)
                {
                    return(false);
                }
            }

            if (checkTeam && unit.Team == HeroManager.Player.Team)
            {
                return(false);
            }

            var unitPosition = @base != null ? @base.ServerPosition : unit.Position;

            return(!(range < float.MaxValue) ||
                   !(Vector2.DistanceSquared(
                         (@from.LSTo2D().IsValid() ? @from : HeroManager.Player.ServerPosition).LSTo2D(),
                         unitPosition.LSTo2D()) > range * range));
        }
Beispiel #7
0
        public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
        {
            if (sender.IsMe && target.IsValid <Obj_AI_Hero>())
            {
                var tg = target as Obj_AI_Hero;
                if (tg == null)
                {
                    return;
                }
                var mode           = Program.ComboMenu.Item("QMode").GetValue <StringList>().SelectedValue;
                var tumblePosition = Game.CursorPos;
                switch (mode)
                {
                case "PRADA":
                    tumblePosition = tg.GetTumblePos();
                    break;

                default:
                    tumblePosition = Game.CursorPos;
                    break;
                }
                if (Program.Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.Combo)
                {
                    Tumble.Cast(tumblePosition);
                    return;
                }
            }
        }
Beispiel #8
0
 protected override void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (!unit.IsMe) return;
     if (unit.IsMe )
     {
         if (target is Obj_AI_Hero && target.IsValid<Obj_AI_Hero>() && target.IsValidTarget())
         {
             if (myOrbwalker.ActiveMode == myOrbwalker.OrbwalkingMode.Combo)
             {
                 if (config.Item("UseItemCombo").GetValue<bool>() && !Player.IsWindingUp)
                 {
                     myUtility.UseItems(2, null);
                 }
                 if (config.Item("UseQCombo").GetValue<bool>() && !Player.IsWindingUp && Orbwalking.InAutoAttackRange(target) && Q.IsReady())
                 {
                     Q.Cast();
                 }
             }
         }
         if (myOrbwalker.ActiveMode == myOrbwalker.OrbwalkingMode.LaneClear)
         {
             if (target is Obj_AI_Turret && target.Team != Player.Team &&
                 config.Item("UseQMisc").GetValue<bool>() &&
                 !Player.IsWindingUp && Orbwalking.InAutoAttackRange(target) && Q.IsReady())
             {
                 Q.Cast();
             }
         }
     }
 }
Beispiel #9
0
 public override void OnAfterAttack(AttackableUnit target, EventArgs args)
 {
     if (target.IsValid <AIHeroClient>() && Q.IsReady())
     {
         Q.Cast(GetTumblePos((AIHeroClient)target));
     }
 }
 private static void AttackableUnit_OnEnterVisiblityClient(AttackableUnit sender, EventArgs args)
 {
     if (sender != null && sender.IsValid<Obj_AI_Hero>() && sender.IsEnemy && sender.DistanceToPlayer() < 1000)
     {
         UpdatePassiveList();
     }
 }
Beispiel #11
0
 private static void AttackableUnit_OnEnterVisiblityClient(AttackableUnit sender, EventArgs args)
 {
     if (sender != null && sender.IsValid <AIHeroClient>() && sender.IsEnemy && sender.DistanceToPlayer() < 1000)
     {
         UpdatePassiveList();
     }
 }
Beispiel #12
0
        private void AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe || !unit.IsValid<Obj_AI_Base>())
            {
                return;
            }

            if (Variables.Spells[SpellSlot.Q].IsEnabledAndReady(ModesMenuExtensions.Mode.Combo)
                || (Variables.Spells[SpellSlot.Q].IsEnabledAndReady(ModesMenuExtensions.Mode.Harrass)
                && ObjectManager.Player.ManaPercent >= Variables.AssemblyMenu.GetItemValue<Slider>("dzaio.champion.extra.mixed.mana").Value))
            {
                if (target.IsValid<Obj_AI_Hero>() && target.IsValidTarget())
                {
                    Variables.Spells[SpellSlot.Q].CastIfHitchanceEquals(target as Obj_AI_Hero, HitChance.High);
                }
            }

            if (Variables.Spells[SpellSlot.W].IsEnabledAndReady(ModesMenuExtensions.Mode.Combo)
                || (Variables.Spells[SpellSlot.W].IsEnabledAndReady(ModesMenuExtensions.Mode.Harrass)
                && ObjectManager.Player.ManaPercent >= Variables.AssemblyMenu.GetItemValue<Slider>("dzaio.champion.extra.mixed.mana").Value))
            {
                if (target.IsValid<Obj_AI_Hero>() && target.IsValidTarget())
                {
                    Variables.Spells[SpellSlot.W].CastIfHitchanceEquals(target as Obj_AI_Hero, HitChance.High);
                }
            }
        }
Beispiel #13
0
        public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
        {
            if (!Q.IsReady())
            {
                _tumbleToKillSecondMinion = false;
                return;
            }
            if (!target.IsValid <Obj_AI_Hero>() || !ComboMenu.Item("QCombo").GetValue <bool>() || !sender.IsMe)
            {
                return;
            }
            if (!Flash.IsReady() && Environment.TickCount - FlashTime < 500)
            {
                return;
            }
            var tg = target as Obj_AI_Hero;

            if (tg == null)
            {
                return;
            }
            var mode = ComboMenu.Item("QMode").GetValue <StringList>().SelectedValue;

            switch (mode)
            {
            case "PRADA":
                TumbleOrder = tg.GetTumblePos();
                break;

            case "TUMBLEANDCONDEMN":
                TumbleOrder = tg.ServerPosition.GetTumbleAndCondemnPosition();
                break;

            default:
                TumbleOrder = Game.CursorPos;
                break;
            }
            if (Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.Combo)
            {
                Q.Cast(TumbleOrder);
                return;
            }


            if (_tumbleToKillSecondMinion && LaneClearMenu.Item("QLastHit").GetValue <bool>() && (Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LastHit) && Player.ManaPercent > LaneClearMenu.Item("QLastHitMana").GetValue <Slider>().Value)
            {
                TumbleOrder = Game.CursorPos;
                Q.Cast(TumbleOrder);
                _tumbleToKillSecondMinion = false;
            }

            if (Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LaneClear &&
                LaneClearMenu.Item("QWaveClear").GetValue <bool>() && Player.ManaPercent >
                LaneClearMenu.Item("QWaveClearMana").GetValue <Slider>().Value&&
                !Orbwalker.ShouldWait())
            {
                TumbleOrder = Game.CursorPos;
                Q.Cast(TumbleOrder);
            }
        }
Beispiel #14
0
 internal static void AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (target.IsValidTarget() && unit.IsValid<Obj_AI_Hero>() && unit.IsMe)
     {
         LastTarget = target;
     }
 }
Beispiel #15
0
 internal static void AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (target.IsValidTarget() && unit.IsValid <Obj_AI_Hero>() && unit.IsMe)
     {
         LastTarget = target;
     }
 }
Beispiel #16
0
 public override void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (target.IsValid <Obj_AI_Hero>() && Q.IsReady())
     {
         Q.Cast(GetTumblePos((Obj_AI_Hero)target));
     }
 }
Beispiel #17
0
        /// <summary>
        ///     Checks if the target unit is valid.
        /// </summary>
        /// <param name="unit">
        ///     The Unit
        /// </param>
        /// <param name="range">
        ///     The Range
        /// </param>
        /// <param name="checkTeam">
        ///     Checks if the target is an enemy from the Player's side
        /// </param>
        /// <param name="from">
        ///     Check From
        /// </param>
        /// <returns>
        ///     The <see cref="bool" />.
        /// </returns>
        public static bool LSIsValidTarget(
            this AttackableUnit unit,
            float range    = float.MaxValue,
            bool checkTeam = true,
            Vector3 from   = default(Vector3))
        {
            if (unit == null || !unit.IsValid || !unit.IsVisible || unit.IsDead || !unit.IsTargetable || unit.IsInvulnerable || unit.IsZombie || !unit.IsVisible)
            {
                return(false);
            }

            if (unit.IsValid <AIHeroClient>())
            {
                var un = unit as AIHeroClient;
                if (!un.IsHPBarRendered || un.IsDead || !un.IsVisible)
                {
                    return(false);
                }
            }

            if (unit.IsValid <Obj_AI_Base>())
            {
                var un = unit as Obj_AI_Base;
                if (!un.IsHPBarRendered || un.IsDead || !un.IsVisible)
                {
                    return(false);
                }
            }

            if (checkTeam && GameObjects.Player.Team == unit.Team)
            {
                return(false);
            }

            var @base = unit as Obj_AI_Base;

            if (@base != null && [email protected])
            {
                return(false);
            }

            return
                ((@from.IsValid() ? @from : GameObjects.Player.ServerPosition).LSDistanceSquared(
                     @base?.ServerPosition ?? unit.Position) < range * range);
        }
Beispiel #18
0
 private void Orbwalker_OnPostAttack(AttackableUnit target, EventArgs args)
 {
     if (getCheckBoxItem("HydraTitanic") && Program.Combo && HydraTitanic.IsReady() &&
         target.IsValid <AIHeroClient>())
     {
         HydraTitanic.Cast();
         Orbwalker.ResetAutoAttack();
     }
 }
Beispiel #19
0
        private void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe || !unit.IsValid)
            {
                return;
            }

            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                if (menu.Item("com.isivir.combo.useW").GetValue <bool>() && target.IsValid <AIHeroClient>())
                {
                    if (ObjectManager.Player.GetAutoAttackDamage((AIHeroClient)target, true)
                        * menu.Item("com.isivir.miscc.noW").GetValue <Slider>().Value > target.Health)
                    {
                        return;
                    }

                    Spells[SpellSlot.W].Cast();
                }

                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                if (menu.Item("com.isivir.harass.useW").GetValue <bool>() && target.IsValid <AIHeroClient>() &&
                    ObjectManager.Player.ManaPercent
                    >= menu.Item("com.isivir.harass.mana").GetValue <Slider>().Value)
                {
                    Spells[SpellSlot.W].Cast();
                }

                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                if (menu.Item("com.isivir.laneclear.useW").GetValue <bool>() && target.IsValid <Obj_AI_Minion>() &&
                    ObjectManager.Player.ManaPercent
                    >= menu.Item("com.isivir.laneclear.mana").GetValue <Slider>().Value)
                {
                    Spells[SpellSlot.W].Cast();
                }

                break;
            }
        }
Beispiel #20
0
 public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
 {
     if (sender.IsMe && target.IsValid<Obj_AI_Hero>())
     {
         var tg = target as Obj_AI_Hero;
         if (tg == null) return;
         var mode = Program.ComboMenu.Item("QMode").GetValue<StringList>().SelectedValue;
         var tumblePosition = Game.CursorPos;
         switch (mode)
         {
             case "PRADA":
                 tumblePosition = tg.GetTumblePos();
                 break;
             default:
                 tumblePosition = Game.CursorPos;
                 break;
         }
         Tumble.Cast(tumblePosition);
     }
     if (sender.IsMe && target.IsValid<Obj_AI_Minion>())
     {
         if (Program.Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LaneClear)
         {
             var meleeMinion = ObjectManager.Get<Obj_AI_Minion>().FirstOrDefault(m => m.IsMelee);
             if (Program.LaneClearMenu.Item("QWaveClear").GetValue<bool>() && ObjectManager.Player.ManaPercent >= Program.LaneClearMenu.Item("QWaveClearMana").GetValue<Slider>().Value && meleeMinion.IsValidTarget())
             {
                 if (ObjectManager.Player.Level == 1)
                 {
                     Tumble.Cast(meleeMinion.GetTumblePos());
                 }
                 if (ObjectManager.Player.CountEnemiesInRange(1600) == 0)
                 {
                     Tumble.Cast(meleeMinion.GetTumblePos());
                 }
             }
             if (target.Name.Contains("SRU_"))
             {
                 Tumble.Cast(((Obj_AI_Base)target).GetTumblePos());
             }
         }
     }
 }
Beispiel #21
0
        public static void AfterAttackVHRPlugin(AttackableUnit sender, AttackableUnit target)
        {

            if (!Program.Q.IsReady() || !PRADAHijacker.HijackedMenu.Item("usepradaq").GetValue<bool>()) return;
            if (sender.IsMe && target.IsValid<Obj_AI_Hero>())
            {
                var tg = target as Obj_AI_Hero;
                if (tg == null) return;
                Program.Q.Cast(tg.GetTumblePos());
            }
        }
Beispiel #22
0
 public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
 {
     if (sender.IsMe && Program.Q.IsReady() && Program.ComboMenu.Item("QCombo").GetValue <bool>())
     {
         if (target.IsValid <Obj_AI_Hero>())
         {
             Program.Q.Cast();
             Utility.DelayAction.Add(100, MyOrbwalker.ResetAutoAttackTimer);
         }
     }
 }
Beispiel #23
0
 public static void Orbwalk(AttackableUnit target)
 {
     if (target.IsValidTarget() && CanAttack && IsAllowedToAttack)
     {
         disableNextAttack = false;
         FireBeforeAttack(target);
         if (!disableNextAttack &&
             (CurrentMode != Mode.Harass || !target.IsValid <Obj_AI_Minion>() ||
              config.Item("OW_Harass_LastHit").IsActive()))
         {
             lastAttack      = Utils.GameTimeTickCount + Game.Ping + 100 - (int)(Player.AttackCastDelay * 1000);
             missileLaunched = false;
             if (Player.Distance(target, true) > Math.Pow(GetAutoAttackRange(target) - 65, 2) && !Player.IsMelee)
             {
                 lastAttack = Utils.GameTimeTickCount + Game.Ping + 400 - (int)(Player.AttackCastDelay * 1000);
             }
             if (!Player.IssueOrder(GameObjectOrder.AttackUnit, target))
             {
                 //ResetAutoAttack();
             }
             lastTarget = target;
             return;
         }
     }
     if (!CanMove || !IsAllowedToMove)
     {
         return;
     }
     if (config.Item("OW_Combo_MeleeMagnet").IsActive() && CurrentMode == Mode.Combo && Player.IsMelee &&
         Player.AttackRange < 200 && InAutoAttackRange(target) && target.IsValid <Obj_AI_Hero>() &&
         ((Obj_AI_Hero)target).Distance(Game.CursorPos) < 300)
     {
         MovePrediction.Delay = Player.BasicAttack.SpellCastTime;
         MovePrediction.Speed = Player.BasicAttack.MissileSpeed;
         MoveTo(MovePrediction.GetPrediction((Obj_AI_Hero)target).UnitPosition);
     }
     else
     {
         MoveTo(Game.CursorPos);
     }
 }
Beispiel #24
0
        private static void OnAfterAttack(AttackableUnit target, EventArgs args)
        {
            if (!target.IsMe || !target.IsValid)
            {
                return;
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                if (getCheckBoxItem(comboMenu, "com.isivir.combo.useW") && target.IsValid <AIHeroClient>())
                {
                    if (ObjectManager.Player.LSGetAutoAttackDamage((AIHeroClient)target, true)
                        * getSliderItem(miscMenu, "com.isivir.miscc.noW") > target.Health)
                    {
                        return;
                    }

                    Spells[SpellSlot.W].Cast();
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
                {
                    if (getCheckBoxItem(harassMenu, "com.isivir.harass.useW") && target.IsValid <AIHeroClient>() &&
                        ObjectManager.Player.ManaPercent
                        >= getSliderItem(harassMenu, "com.isivir.harass.mana"))
                    {
                        Spells[SpellSlot.W].Cast();
                    }

                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                    {
                        if (getCheckBoxItem(laneMenu, "com.isivir.laneclear.useW") && target.IsValid <Obj_AI_Minion>() &&
                            ObjectManager.Player.ManaPercent
                            >= getSliderItem(laneMenu, "com.isivir.laneclear.mana"))
                        {
                            Spells[SpellSlot.W].Cast();
                        }
                    }
                }
            }
        }
Beispiel #25
0
 /// <summary>
 /// Called on-attack request.
 /// </summary>
 /// <param name="unit">The sender.</param>
 /// <param name="target">The target.</param>
 public static void OnAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (unit.IsMe &&
         target.IsValid<Obj_AI_Hero>() &&
         !((Obj_AI_Hero)target).IsInvulnerable &&
         !Bools.IsSpellShielded((Obj_AI_Hero)target) &&
         Variables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None &&
         Variables.Menu.Item($"{Variables.MainMenuName}.misc.resets").IsActive())
     {
         Logics.ExecuteBetaModes(unit, target);
     }
 }
Beispiel #26
0
 /// <summary>
 /// Called on-attack request.
 /// </summary>
 /// <param name="unit">The sender.</param>
 /// <param name="target">The target.</param>
 public static void OnAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (unit.IsMe &&
         target.IsValid <Obj_AI_Hero>() &&
         !((Obj_AI_Hero)target).IsInvulnerable &&
         !Bools.IsSpellShielded((Obj_AI_Hero)target) &&
         Variables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None &&
         Variables.Menu.Item($"{Variables.MainMenuName}.misc.resets").IsActive())
     {
         Logics.ExecuteBetaModes(unit, target);
     }
 }
Beispiel #27
0
 private static void afterAttack(AttackableUnit target, EventArgs args)
 {
     if (W.IsReady() && getCheckBoxItem(wMenu, "wPush") && target.IsValid <Obj_AI_Turret>() && Player.Mana > RMANA + EMANA + QMANA + WMANA + WMANA + RMANA)
     {
         foreach (var ally in Program.Allies)
         {
             if (!ally.IsMe && ally.IsAlly && ally.Distance(Player.Position) < 600)
             {
                 W.Cast(ally);
             }
         }
     }
 }
Beispiel #28
0
 private void afterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (W.IsReady() && Config.Item("wPush", true).GetValue <bool>() && target.IsValid <Obj_AI_Turret>() && Player.Mana > RMANA + EMANA + QMANA + WMANA + WMANA + RMANA)
     {
         foreach (var ally in HeroManager.Allies)
         {
             if (!ally.IsMe && ally.IsAlly && ally.Distance(Player.Position) < 600)
             {
                 W.Cast(ally);
             }
         }
     }
 }
Beispiel #29
0
        static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (Config.Item("usecombo").GetValue <KeyBind>().Active&& Player.ManaPercent >
                Config.Item("combomana").GetValue <Slider>().Value)
            {
                if (Config.Item("usecombow").GetValue <bool>() &&
                    target.IsValid <Obj_AI_Hero>())
                {
                    W.Cast();
                }
            }

            if (Config.Item("useharass").GetValue <KeyBind>().Active&& Player.ManaPercent >
                Config.Item("harassmana").GetValue <Slider>().Value)
            {
                if (Config.Item("useharassw").GetValue <bool>() &&
                    target.IsValid <Obj_AI_Hero>() && IsWhiteListed((Obj_AI_Hero)target))
                {
                    W.Cast();
                }
            }

            if (Config.Item("useclear").GetValue <KeyBind>().Active&& Player.ManaPercent >
                Config.Item("clearmana").GetValue <Slider>().Value)
            {
                if (Config.Item("useclearw").GetValue <bool>() &&
                    target.IsValid <Obj_AI_Minion>())
                {
                    W.Cast();
                }
            }
        }
Beispiel #30
0
        public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
        {
            if (!Q.IsReady())
            {
                _tumbleToKillSecondMinion = false;
                return;
            }
            if (!target.IsValid<Obj_AI_Hero>() || !ComboMenu.Item("QCombo").GetValue<bool>() || !sender.IsMe) return;
            if (!Flash.IsReady() && Environment.TickCount - FlashTime < 500) return;
            var tg = target as Obj_AI_Hero;
            if (tg == null) return;
            var mode = ComboMenu.Item("QMode").GetValue<StringList>().SelectedValue;
            switch (mode)
            {
                case "PRADA":
                    TumbleOrder = tg.GetTumblePos();
                    break;
                case "TUMBLEANDCONDEMN":
                    TumbleOrder = tg.ServerPosition.GetCondemnPosition();
                    break;
                default:
                    TumbleOrder = Game.CursorPos;
                    break;
            }
            if (Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.Combo)
            {
                Q.Cast(TumbleOrder);
                return;
            }

            if (_tumbleToKillSecondMinion && LaneClearMenu.Item("QLastHit").GetValue<bool>() && (Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LastHit) &&  Player.ManaPercent > LaneClearMenu.Item("QLastHitMana").GetValue<Slider>().Value)
            {
                TumbleOrder = Game.CursorPos;
                Q.Cast(TumbleOrder);
                _tumbleToKillSecondMinion = false;
            }

            if (Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.LaneClear &&
                LaneClearMenu.Item("QWaveClear").GetValue<bool>() && Player.ManaPercent >
                LaneClearMenu.Item("QWaveClearMana").GetValue<Slider>().Value &&
                !Orbwalker.ShouldWait())
            {
                TumbleOrder = Game.CursorPos;
                Q.Cast(TumbleOrder);
            }
        }
Beispiel #31
0
        public override void OnAfterAttack(AttackableUnit target, EventArgs args)
        {
            if (!target.IsValid <AIHeroClient>() && !target.Name.ToLower().Contains("ward"))
            {
                return;
            }

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

            if (E.Cast())
            {
                Orbwalker.ResetAutoAttack();
                EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, target);
            }
        }
Beispiel #32
0
        private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (!target.IsValid <AIHeroClient>())
            {
                return;
            }

            var targetAsHero = (AIHeroClient)target;

            if (ProSeries.Player.GetSpellDamage(targetAsHero, SpellSlot.Q) / Q.Delay >
                ProSeries.Player.GetAutoAttackDamage(targetAsHero, true) * (1 / ProSeries.Player.AttackDelay))
            {
                Q.Cast(targetAsHero);
            }
        }
Beispiel #33
0
 private void afterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (!unit.IsMe)
     {
         return;
     }
     attackNow = true;
     if (FarmId != target.NetworkId)
     {
         FarmId = target.NetworkId;
     }
     if (W.IsReady() && Config.Item("wPush", true).GetValue <bool>() && target.IsValid <Obj_AI_Turret>() && Player.Mana > RMANA + EMANA + QMANA + WMANA + WMANA + RMANA)
     {
         foreach (var ally in Program.Allies)
         {
             if (!ally.IsMe && ally.IsAlly && ally.Distance(Player.Position) < 600)
             {
                 W.Cast(ally);
             }
         }
     }
 }
Beispiel #34
0
        public void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe)
            {
                return;
            }

            if (!target.IsValid <AIHeroClient>() && !target.Name.ToLower().Contains("ward"))
            {
                return;
            }

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

            if (E.Cast())
            {
                EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, target);
            }
        }
Beispiel #35
0
 public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
 {
     if (target.IsValid<Obj_AI_Hero>())
     {
         var tg = target as Obj_AI_Hero;
         if (tg.IsValidTarget())
         {
             if (Program.ComboMenu.Item("ChaseW").GetValue<bool>() && Program.Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.Combo
                 && ObjectManager.Player.IsFacing(tg) && !tg.IsFacing(ObjectManager.Player))
             {
                 Program.W.Cast();
             }
         }
     }
     if (target is Obj_AI_Turret)
     {
         if (Program.LaneClearMenu.Item("WTowers").GetValue<bool>())
         {
             Program.W.Cast();
         }
     }
 }
        private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!Q.IsReady())
            {
                return;
            }
            if (unit.IsMe && target.IsValid <AIHeroClient>())
            {
                var tg = target as AIHeroClient;
                if (tg == null)
                {
                    return;
                }
                var mode           = SubMenu["Combo"]["Qmode"].Cast <Slider>().DisplayName;
                var tumblePosition = Game.CursorPos;
                switch (mode)
                {
                case "Smart":
                    tumblePosition = tg.GetTumblePos();
                    break;

                default:
                    tumblePosition = Game.CursorPos;
                    break;
                }
                Tumble.Cast(tumblePosition);
            }
            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Clear:
                JungleClear();
                LaneClear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                LastHit();
                break;
            }
        }
Beispiel #37
0
        private static void AfterEnhancedAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (unit.IsMe)
            {
                if (target == null || target.IsValid <Obj_AI_Hero>())
                {
                    target = TargetSelector.GetTarget(m_fQRange, TargetSelector.DamageType.Physical);
                    if (target == null)
                    {
                        return;
                    }
                }

                if ((myHero.Distance(target) <= E.Range) &&
                    (m_mMenu.SubMenu("combo").Item("enabled").GetValue <KeyBind>().Active&&
                     m_mMenu.SubMenu("combo").Item("useE").GetValue <KeyBind>().Active) ||
                    (m_mMenu.SubMenu("combo").Item("enabled").GetValue <KeyBind>().Active&&
                     m_mMenu.SubMenu("harass").Item("useE").GetValue <KeyBind>().Active))
                {
                    E.Cast((Obj_AI_Hero)target);
                }
            }
        }
Beispiel #38
0
        public override void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe)
            {
                return;
            }

            if (!target.IsValid <AIHeroClient>() && !target.Name.ToLower().Contains("ward"))
            {
                return;
            }

            if (!this.E.IsReady())
            {
                return;
            }

            if (this.E.Cast())
            {
                Orbwalking.ResetAutoAttackTimer();
                EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, target);
            }
        }
Beispiel #39
0
 public static void AfterAttack(AttackableUnit sender, AttackableUnit target)
 {
     if (sender.IsMe && target.IsValid<Obj_AI_Hero>())
     {
         var tg = target as Obj_AI_Hero;
         if (tg == null) return;
         var mode = Program.ComboMenu.Item("QMode").GetValue<StringList>().SelectedValue;
         var tumblePosition = Game.CursorPos;
         switch (mode)
         {
             case "PRADA":
                 tumblePosition = tg.GetTumblePos();
                 break;
             default:
                 tumblePosition = Game.CursorPos;
                 break;
         }
         if (Program.Orbwalker.ActiveMode == MyOrbwalker.OrbwalkingMode.Combo)
         {
             Tumble.Cast(tumblePosition);
             return;
         }
     }
 }
Beispiel #40
0
        private static void OrbwalkingOnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (!target.IsValid<Obj_AI_Hero>())
            {
                return;
            }

            var targetAsHero = (Obj_AI_Hero) target;
            if (ProSeries.Player.GetSpellDamage(targetAsHero, SpellSlot.W) / W.Delay >
                ProSeries.Player.GetAutoAttackDamage(targetAsHero, true) * (1 / ProSeries.Player.AttackDelay))
            {
                W.Cast(targetAsHero);
            }
        }
Beispiel #41
0
 private void afterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (!unit.IsMe)
         return;
     attackNow = true;
     if (FarmId != target.NetworkId)
         FarmId = target.NetworkId;
     if (W.IsReady() && Config.Item("wPush").GetValue<bool>() && target.IsValid<Obj_AI_Turret>() && Player.Mana > RMANA + EMANA + QMANA + WMANA + WMANA + RMANA)
     {
         foreach (var ally in Program.Allies)
         {
             if (!ally.IsMe && ally.IsAlly && ally.Distance(Player.Position) < 600)
                 W.Cast(ally);
         }
     }
 }
Beispiel #42
0
 private static void afterAttack(AttackableUnit target, EventArgs args)
 {
     if (W.IsReady() && getCheckBoxItem(wMenu, "wPush") && target.IsValid<Obj_AI_Turret>() && Player.Mana > RMANA + EMANA + QMANA + WMANA + WMANA + RMANA)
     {
         foreach (var ally in Program.Allies)
         {
             if (!ally.IsMe && ally.IsAlly && ally.LSDistance(Player.Position) < 600)
                 W.Cast(ally);
         }
     }
 }
        public override void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe)
            {
                return;
            }

            if (!target.IsValid<Obj_AI_Hero>() && !target.Name.ToLower().Contains("ward"))
            {
                return;
            }

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

            if (E.Cast())
            {
                Orbwalking.ResetAutoAttackTimer();
                Player.IssueOrder(GameObjectOrder.AttackUnit, target);
            }
        }
Beispiel #44
0
 public static void Orbwalk(AttackableUnit target)
 {
     if (target.IsValidTarget() && CanAttack && IsAllowedToAttack)
     {
         _disableNextAttack = false;
         FireBeforeAttack(target);
         if (!_disableNextAttack)
         {
             if ((CurrentMode != Mode.Harass || !target.IsValid<Obj_AI_Minion>() ||
                  _config.Item("OW_Harass_LastHit").IsActive()) &&
                 Player.IssueOrder(GameObjectOrder.AttackUnit, target))
             {
                 _lastAttack = Utils.GameTimeTickCount + Game.Ping / 2;
             }
         }
     }
     if (!CanMove || !IsAllowedToMove)
     {
         return;
     }
     if (_config.Item("OW_Combo_MeleeMagnet").IsActive() && CurrentMode == Mode.Combo && Player.IsMelee &&
         Player.AttackRange < 200 && InAutoAttackRange(target) && target.IsValid<Obj_AI_Hero>() &&
         ((Obj_AI_Hero) target).Distance(Game.CursorPos) < 300)
     {
         MovePrediction.Delay = Player.BasicAttack.SpellCastTime;
         MovePrediction.Speed = Player.BasicAttack.MissileSpeed;
         MoveTo(MovePrediction.GetPrediction((Obj_AI_Hero) target).UnitPosition);
     }
     else
     {
         MoveTo(Game.CursorPos);
     }
 }
Beispiel #45
0
 private static void Opiskill(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender.IsEnemy && args.Damage > sender.Health && Config.Item("kill").GetValue<bool>() && sender.IsValid<Obj_AI_Hero>())
     {
         OnKill();
     }
 }
        static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (Config.Item("usecombo").GetValue<KeyBind>().Active && Player.ManaPercent >
                Config.Item("combomana").GetValue<Slider>().Value)
            {
                if (Config.Item("usecombow").GetValue<bool>() &&
                    target.IsValid<Obj_AI_Hero>())
                {
                    W.Cast();
                }
            }

            if (Config.Item("useharass").GetValue<KeyBind>().Active && Player.ManaPercent >
                Config.Item("harassmana").GetValue<Slider>().Value)
            {
                if (Config.Item("useharassw").GetValue<bool>() &&
                    target.IsValid<Obj_AI_Hero>() && IsWhiteListed((Obj_AI_Hero)target))
                {
                    W.Cast();
                }
            }

            if (Config.Item("useclear").GetValue<KeyBind>().Active && Player.ManaPercent >
                Config.Item("clearmana").GetValue<Slider>().Value)
            {
                if (Config.Item("useclearw").GetValue<bool>() &&
                    target.IsValid<Obj_AI_Minion>())
                {
                    W.Cast();
                }
            }
        }
Beispiel #47
0
 public static void AfterAttackVHRPlugin(AttackableUnit sender, AttackableUnit target)
 {
     if (!Program.Q.IsReady() || !PRADAHijacker.HijackedMenu.Item("usepradaq").GetValue<bool>()) return;
     if (sender.IsMe && target.IsValid<Obj_AI_Hero>())
     {
         var tg = target as Obj_AI_Hero;
         if (tg == null) return;
         Program.Q.Cast(tg.GetTumblePos());
     }
 }
Beispiel #48
0
        private static void OnAfterAttack(AttackableUnit target, EventArgs args)
        {
            if (!target.IsMe || !target.IsValid) return;

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                if (getCheckBoxItem(comboMenu, "com.isivir.combo.useW") && target.IsValid<AIHeroClient>())
                    {
                        if (ObjectManager.Player.LSGetAutoAttackDamage((AIHeroClient)target, true)
                            * getSliderItem(miscMenu, "com.isivir.miscc.noW") > target.Health) return;

                        Spells[SpellSlot.W].Cast();
                    }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
                {
                    if (getCheckBoxItem(harassMenu, "com.isivir.harass.useW") && target.IsValid<AIHeroClient>()
                        && ObjectManager.Player.ManaPercent
                        >= getSliderItem(harassMenu, "com.isivir.harass.mana"))
                    {
                        Spells[SpellSlot.W].Cast();
                    }

                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                    {
                        if (getCheckBoxItem(laneMenu, "com.isivir.laneclear.useW") && target.IsValid<Obj_AI_Minion>()
                        && ObjectManager.Player.ManaPercent
                        >= getSliderItem(laneMenu, "com.isivir.laneclear.mana"))
                    {
                        Spells[SpellSlot.W].Cast();
                    }
            }
                }
            }
        }
Beispiel #49
0
 public override void OnAfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (target.IsValid<Obj_AI_Hero>() && Q.IsReady())
     {
         Q.Cast(GetTumblePos((Obj_AI_Hero)target));
     }
 }
Beispiel #50
0
 public static void Orbwalk(AttackableUnit target)
 {
     if (target.IsValidTarget() && CanAttack && IsAllowedToAttack)
     {
         disableNextAttack = false;
         FireBeforeAttack(target);
         if (!disableNextAttack
             && (CurrentMode != Mode.Harass || !target.IsValid<Obj_AI_Minion>()
                 || config.Item("OW_Harass_LastHit").IsActive()))
         {
             lastAttack = Utils.GameTimeTickCount + Game.Ping + 100 - (int)(Player.AttackCastDelay * 1000);
             missileLaunched = false;
             if (Player.Distance(target, true) > Math.Pow(GetAutoAttackRange(target) - 65, 2) && !Player.IsMelee)
             {
                 lastAttack = Utils.GameTimeTickCount + Game.Ping + 400 - (int)(Player.AttackCastDelay * 1000);
             }
             if (!Player.IssueOrder(GameObjectOrder.AttackUnit, target))
             {
                 //ResetAutoAttack();
             }
             lastTarget = target;
             return;
         }
     }
     if (!CanMove || !IsAllowedToMove)
     {
         return;
     }
     if (config.Item("OW_Combo_MeleeMagnet").IsActive() && CurrentMode == Mode.Combo && Player.IsMelee
         && Player.AttackRange < 200 && InAutoAttackRange(target) && target.IsValid<Obj_AI_Hero>()
         && ((Obj_AI_Hero)target).Distance(Game.CursorPos) < 300)
     {
         MovePrediction.Delay = Player.BasicAttack.SpellCastTime;
         MovePrediction.Speed = Player.BasicAttack.MissileSpeed;
         MoveTo(MovePrediction.GetPrediction((Obj_AI_Hero)target).UnitPosition);
     }
     else
     {
         MoveTo(Game.CursorPos);
     }
 }
Beispiel #51
0
        private static void OrbwalkingOnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (!target.IsValid<Obj_AI_Hero>())
            {
                return;
            }

            var targetAsHero = target as Obj_AI_Hero;

            // was using W too close, will work with rockets after attack though
            if (targetAsHero.Distance(ProSeries.Player.ServerPosition) > 525)
            {
                if (ProSeries.Player.GetSpellDamage(targetAsHero, SpellSlot.W) / W.Delay >
                    ProSeries.Player.GetAutoAttackDamage(targetAsHero, true) * (1 / ProSeries.Player.AttackDelay))
                {
                    W.Cast(targetAsHero);
                }
            }
        }
Beispiel #52
0
 private void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (Config.Item("HydraTitanic").GetValue<bool>() && Program.Combo && HydraTitanic.IsReady() && target.IsValid<Obj_AI_Hero>())
     {
         HydraTitanic.Cast();
         SebbyLib.Orbwalking.ResetAutoAttackTimer();
     }
 }
Beispiel #53
0
 private void Orbwalker_OnPostAttack(AttackableUnit target, EventArgs args)
 {
     if (getCheckBoxItem("HydraTitanic") && Program.Combo && HydraTitanic.IsReady() &&
         target.IsValid<AIHeroClient>())
     {
         HydraTitanic.Cast();
         Orbwalker.ResetAutoAttack();
     }
 }
Beispiel #54
0
 private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (!Q.IsReady()) return;
     if (unit.IsMe && target.IsValid<AIHeroClient>())
     {
         var tg = target as AIHeroClient;
         if (tg == null) return;
         var mode = SubMenu["Combo"]["Qmode"].Cast<Slider>().DisplayName;
         var tumblePosition = Game.CursorPos;
         switch (mode)
         {
             case "Smart":
                 tumblePosition = tg.GetTumblePos();
                 break;
             default:
                 tumblePosition = Game.CursorPos;
                 break;
         }
         Tumble.Cast(tumblePosition);
     }
     switch (orbwalker.ActiveMode)
     {
         case Orbwalking.OrbwalkingMode.Clear:
             JungleClear();
             LaneClear();
             break;
         case Orbwalking.OrbwalkingMode.LastHit:
             LastHit();
             break;
     }
 }
Beispiel #55
0
 private void afterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (W.IsReady() && Config.Item("wPush", true).GetValue<bool>() && target.IsValid<Obj_AI_Turret>() && Player.Mana > RMANA + EMANA + QMANA + WMANA + WMANA + RMANA)
     {
         foreach (var ally in HeroManager.Allies)
         {
             if (!ally.IsMe && ally.IsAlly && ally.Distance(Player.Position) < 600)
                 W.Cast(ally);
         }
     }
 }
Beispiel #56
0
        private static void Orbwalking_OnAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsValid || !unit.IsMe)
            {
                return;
            }

            if (ProSeries.CanCombo())
            {
                if (ProSeries.Config.Item("usecombow", true).GetValue<bool>() &&
                    target.IsValid<Obj_AI_Hero>())
                {
                    W.Cast();
                }
            }

            if (ProSeries.CanHarass())
            {
                if (ProSeries.Config.Item("useharassw", true).GetValue<bool>() &&
                    target.IsValid<Obj_AI_Hero>() && ProSeries.IsWhiteListed((Obj_AI_Hero) target))
                {
                    W.Cast();
                }
            }

            if (ProSeries.CanClear())
            {
                if (ProSeries.Config.Item("useclearw", true).GetValue<bool>() &&
                    target.IsValid<Obj_AI_Minion>())
                {
                    W.Cast();
                }
            }
        }