コード例 #1
0
ファイル: LaneOptions.cs プロジェクト: hama1/Port
        //private static bool _casted = false;

        //struct MinionHealthPerSecond
        //{
        //    public float LastHp;
        //    public float DamagePerSecond;
        //}

        //private MinionHealthPerSecond[] calcMinionHealth(Obj_AI_Base[] minionsBase)
        //{
        //    MinionHealthPerSecond[] minionsStruct = new MinionHealthPerSecond[minionsBase.Length];
        //    const int checkDelay = 2;
        //    for (int i = 0; checkDelay > i; i++)
        //    {
        //        var startTime = Utils.TickCount;
        //        var endTime = startTime + 1;
        //        if (Utils.TickCount < endTime)

        //        for (int index = 0; index < minionsBase.Length; index++)
        //        {
        //            if (minionsBase[index].IsDead)
        //                    continue;

        //             var cMinionHP = minionsBase[index].Health;

        //             if (Math.Abs(minionsStruct[index].LastHp) > 1)
        //                minionsStruct[index].DamagePerSecond = (minionsStruct[index].LastHp - minionsBase[index].Health/checkDelay);

        //            minionsStruct[index].LastHp = minionsBase[index].Health;
        //        }
        //    }

        //    return minionsStruct;
        //}

        public static void LaneClear()
        {
            if (!GlobalManager.Config.Item("disablelane").IsActive())
            {
                return;
            }

            var qlchSpell = GlobalManager.Config.Item("useQlc").GetValue <bool>();
            var elchSpell = GlobalManager.Config.Item("useElc").GetValue <bool>();
            var wlchSpell = GlobalManager.Config.Item("useWlc").GetValue <bool>();

            var qlcSpell = GlobalManager.Config.Item("useQ2L").GetValue <bool>();
            var elcSpell = GlobalManager.Config.Item("useE2L").GetValue <bool>();
            var wlcSpell = GlobalManager.Config.Item("useW2L").GetValue <bool>();

            var minMana = GlobalManager.Config.Item("useEPL").GetValue <Slider>().Value;

            var minionCount = MinionManager.GetMinions(GlobalManager.GetHero.Position, Champion.Q.Range, MinionTypes.All,
                                                       MinionTeam.NotAlly);

            if (GlobalManager.GetHero.ManaPercent <= minMana)
            {
                return;
            }

            foreach (var minion in minionCount)
            {
                if (qlcSpell && Champion.Q.IsReady())
                {
                    Champion.Q.Cast(minion);
                }

                if (elcSpell && Champion.E.IsReady() && minion.IsValidTarget(Champion.E.Range))
                {
                    Champion.E.Cast(minion);
                }

                if (wlcSpell && Champion.W.IsReady() && minion.IsValidTarget(Champion.W.Range))
                {
                    Champion.W.Cast(minion);
                }
                var minionHp = minion.Health; // Reduce Calls and add in randomization buffer.
                if (minion.IsDead)
                {
                    return;
                }

                if (qlchSpell &&
                    Champion.Q.IsReady() &&
                    minion.IsValidTarget(Champion.Q.Range) &&
                    minionHp <= Champion.Q.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.Q.Cast(minion);
                }

                else if (wlchSpell &&
                         Champion.W.IsReady() &&
                         minion.IsValidTarget(Champion.W.Range) &&
                         minionHp <= Champion.W.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.W.CastOnUnit(minion);
                }

                else if (elchSpell &&
                         Champion.E.IsReady() &&
                         minion.IsValidTarget(Champion.E.Range) &&
                         minionHp <= Champion.E.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.E.Cast(minion);
                }
            }
        }
コード例 #2
0
        //struct MinionHealthPerSecond
        //{
        //    public float LastHp;
        //    public float DamagePerSecond;
        //}

        //private MinionHealthPerSecond[] calcMinionHealth(Obj_AI_Base[] minionsBase)
        //{
        //    MinionHealthPerSecond[] minionsStruct = new MinionHealthPerSecond[minionsBase.Length];
        //    const int checkDelay = 2;
        //    for (int i = 0; checkDelay > i; i++)
        //    {
        //        var startTime = Utils.TickCount;
        //        var endTime = startTime + 1;
        //        if (Utils.TickCount < endTime)

        //        for (int index = 0; index < minionsBase.Length; index++)
        //        {
        //            if (minionsBase[index].IsDead)
        //                    continue;

        //             var cMinionHP = minionsBase[index].Health;

        //             if (Math.Abs(minionsStruct[index].LastHp) > 1)
        //                minionsStruct[index].DamagePerSecond = (minionsStruct[index].LastHp - minionsBase[index].Health/checkDelay);

        //            minionsStruct[index].LastHp = minionsBase[index].Health;
        //        }
        //    }

        //    return minionsStruct;
        //}

        public static void LaneClear()
        {
            if (GlobalManager.GetPassiveBuff == 4 &&
                !GlobalManager.GetHero.HasBuff("RyzeR") &&
                getCheckBoxItem(MenuManager.laneMenu, "passiveproc"))
            {
                return;
            }

            var qlchSpell = getCheckBoxItem(MenuManager.laneMenu, "useQlc");
            var elchSpell = getCheckBoxItem(MenuManager.laneMenu, "useElc");
            var wlchSpell = getCheckBoxItem(MenuManager.laneMenu, "useWlc");

            var q2LSpell = getCheckBoxItem(MenuManager.laneMenu, "useQ2L");
            var e2LSpell = getCheckBoxItem(MenuManager.laneMenu, "useE2L");
            var w2LSpell = getCheckBoxItem(MenuManager.laneMenu, "useW2L");

            var rSpell  = getCheckBoxItem(MenuManager.laneMenu, "useRl");
            var rSlider = getSliderItem(MenuManager.laneMenu, "rMin");
            var minMana = getSliderItem(MenuManager.laneMenu, "useEPL");

            var minionCount = MinionManager.GetMinions(GlobalManager.GetHero.Position, Champion.Q.Range, MinionTypes.All,
                                                       MinionTeam.NotAlly);

            if (GlobalManager.GetHero.ManaPercent <= minMana)
            {
                return;
            }

            foreach (var minion in minionCount)
            {
                if (!GlobalManager.CheckMinion(minion))
                {
                    continue;
                }

                var minionHp = minion.Health;// Reduce Calls and add in randomization buffer.
                //if (GlobalManager.Config.Item("doHuman"))
                //    minionHp = minion.Health * (1 + (Seeder.Next(GlobalManager.Config.Item("minCreepHPOffset").GetValue<Slider>().Value, GlobalManager.Config.Item("maxCreepHPOffset").GetValue<Slider>().Value) / 100.0f));//Randomioze Minion Hp from min to max hp less than damage
                if (minion.IsDead)
                {
                    return;
                }

                SpellSequence(minion, "useQ2L", "useE2L", "useW2L", "useRl");

                if (qlchSpell &&
                    Champion.Q.IsReady() &&
                    minion.LSIsValidTarget(Champion.Q.Range) &&
                    minionHp <= Champion.Q.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.Q.Cast(minion);
                }

                else if (wlchSpell &&
                         Champion.W.IsReady() &&
                         minion.LSIsValidTarget(Champion.W.Range) &&
                         minionHp <= Champion.W.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.W.CastOnUnit(minion);
                }

                else if (elchSpell &&
                         Champion.E.IsReady() &&
                         minion.LSIsValidTarget(Champion.E.Range) &&
                         minionHp <= Champion.E.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.E.CastOnUnit(minion);
                }

                if (rSpell &&
                    Champion.R.IsReady() &&
                    minion.LSIsValidTarget(Champion.Q.Range) &&
                    minionCount.Count > rSlider && GlobalManager.CheckMinion(minion))
                {
                    Champion.R.Cast();
                }
            }
        }
コード例 #3
0
        private static void StartComboSequence(Obj_AI_Base target, IReadOnlyList <bool> bSpells, IEnumerable <char> seq, float hpOffset = 1)
        {
            foreach (var com in seq)
            {
                var isMinion = target.IsMinion;
                switch (com)
                {
                case 'Q':
                    if (!bSpells[0])
                    {
                        continue;
                    }

                    if (target.IsValidTarget(Champion.Q.Range) && Champion.Q.IsReady() && !target.IsInvulnerable)
                    {
                        if (isMinion &&
                            !(target.Health * hpOffset < Champion.Q.GetDamage(target) &&
                              GlobalManager.CheckMinion(target)))
                        {
                            continue;
                        }
                        if (GlobalManager.GetPassiveBuff > 2 ||
                            GlobalManager.GetHero.HasBuff("RyzePassiveStack") && Champion.Q.IsReady())
                        {
                            Champion.Qn.Cast(target);
                        }
                        else
                        {
                            Champion.Q.Cast(target);
                        }
                    }

                    continue;

                case 'W':
                    if (!bSpells[1])
                    {
                        continue;
                    }

                    if (target.IsValidTarget(Champion.W.Range) && bSpells[1] && Champion.W.IsReady() && !target.IsInvulnerable)
                    {
                        if (isMinion && !(target.Health * hpOffset < Champion.W.GetDamage(target) && GlobalManager.CheckMinion(target)))
                        {
                            continue;
                        }
                    }
                    Champion.W.Cast(target);

                    continue;

                case 'E':
                    if (!bSpells[2])
                    {
                        continue;
                    }

                    if (target.IsValidTarget(Champion.E.Range) && bSpells[2] && Champion.E.IsReady() && !target.IsInvulnerable)
                    {
                        if (isMinion && !(target.Health * hpOffset < Champion.E.GetDamage(target) && GlobalManager.CheckMinion(target)))
                        {
                            continue;
                        }
                    }
                    Champion.E.Cast(target);


                    continue;

                case 'R':
                    if (!bSpells[3])
                    {
                        continue;
                    }
                    if (!target.IsValidTarget(Champion.W.Range) || !(target.Health > (Champion.Q.GetDamage(target) + Champion.E.GetDamage(target))) || target.IsInvulnerable)
                    {
                        continue;
                    }
                    if (!Champion.R.IsReady())
                    {
                        continue;
                    }
                    if (bSpells[4] && target.HasBuff("RyzeW") || !bSpells[4])
                    {
                        Champion.R.Cast();
                    }
                    continue;
                }
            }

            if (!Champion.R.IsReady() || GlobalManager.GetPassiveBuff != 4 || !bSpells[4])
            {
                return;
            }
            if (Champion.Q.IsReady() || Champion.W.IsReady() || Champion.E.IsReady())
            {
                return;
            }

            Champion.R.Cast();
        }
コード例 #4
0
        //struct MinionHealthPerSecond
        //{
        //    public float LastHp;
        //    public float DamagePerSecond;
        //}

        //private MinionHealthPerSecond[] calcMinionHealth(Obj_AI_Base[] minionsBase)
        //{
        //    MinionHealthPerSecond[] minionsStruct = new MinionHealthPerSecond[minionsBase.Length];
        //    const int checkDelay = 2;
        //    for (int i = 0; checkDelay > i; i++)
        //    {
        //        var startTime = Utils.TickCount;
        //        var endTime = startTime + 1;
        //        if (Utils.TickCount < endTime)

        //        for (int index = 0; index < minionsBase.Length; index++)
        //        {
        //            if (minionsBase[index].IsDead)
        //                    continue;

        //             var cMinionHP = minionsBase[index].Health;

        //             if (Math.Abs(minionsStruct[index].LastHp) > 1)
        //                minionsStruct[index].DamagePerSecond = (minionsStruct[index].LastHp - minionsBase[index].Health/checkDelay);

        //            minionsStruct[index].LastHp = minionsBase[index].Health;
        //        }
        //    }

        //    return minionsStruct;
        //}

        public static void LaneClear()
        {
            if (GlobalManager.GetPassiveBuff == 4 &&
                !GlobalManager.GetHero.HasBuff("RyzeR") &&
                GlobalManager.Config.Item("passiveproc").GetValue <bool>())
            {
                return;
            }

            var qlchSpell = GlobalManager.Config.Item("useQlc").GetValue <bool>();
            var elchSpell = GlobalManager.Config.Item("useElc").GetValue <bool>();
            var wlchSpell = GlobalManager.Config.Item("useWlc").GetValue <bool>();

            var q2LSpell = GlobalManager.Config.Item("useQ2L").GetValue <bool>();
            var e2LSpell = GlobalManager.Config.Item("useE2L").GetValue <bool>();
            var w2LSpell = GlobalManager.Config.Item("useW2L").GetValue <bool>();

            var rSpell  = GlobalManager.Config.Item("useRl").GetValue <bool>();
            var rSlider = GlobalManager.Config.Item("rMin").GetValue <Slider>().Value;
            var minMana = GlobalManager.Config.Item("useEPL").GetValue <Slider>().Value;

            var minionCount = MinionManager.GetMinions(GlobalManager.GetHero.Position, Champion.Q.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (GlobalManager.GetHero.ManaPercent <= minMana)
            {
                return;
            }

            DisplayLaneOption("Clearing Lane");
            foreach (var minion in minionCount)
            {
                float randSeed = Seeder.Next(1, RandomThreshold);
                var   minionHp = minion.Health * (1 + (randSeed / 100.0f)); // Reduce Calls and add in randomization buffer.

                if (!GlobalManager.CheckMinion(minion))
                {
                    continue;
                }

                if (qlchSpell &&
                    Champion.Q.IsReady() &&
                    minion.IsValidTarget(Champion.Q.Range) &&
                    minionHp <= Champion.Q.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.Q.Cast(minion);
                }

                else if (wlchSpell &&
                         Champion.W.IsReady() &&
                         minion.IsValidTarget(Champion.W.Range) &&
                         minionHp <= Champion.W.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.W.CastOnUnit(minion);
                }

                else if (elchSpell &&
                         Champion.E.IsReady() &&
                         minion.IsValidTarget(Champion.E.Range) &&
                         minionHp <= Champion.E.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                {
                    Champion.E.CastOnUnit(minion);
                }

                else if (q2LSpell &&
                         Champion.Q.IsReady() &&
                         minion.IsValidTarget(Champion.Q.Range) &&
                         minionHp >= (GlobalManager.GetHero.GetAutoAttackDamage(minion) * 1.3) && GlobalManager.CheckMinion(minion))
                {
                    Champion.Q.Cast(minion);
                }

                else if (e2LSpell &&
                         Champion.E.IsReady() &&
                         minion.IsValidTarget(Champion.E.Range) &&
                         minionHp >= (GlobalManager.GetHero.GetAutoAttackDamage(minion) * 1.3) && GlobalManager.CheckMinion(minion))
                {
                    Champion.E.CastOnUnit(minion);
                }

                else if (w2LSpell &&
                         Champion.W.IsReady() &&
                         minion.IsValidTarget(Champion.W.Range) &&
                         minionHp >= (GlobalManager.GetHero.GetAutoAttackDamage(minion) * 1.3) && GlobalManager.CheckMinion(minion))
                {
                    Champion.W.CastOnUnit(minion);
                }

                if (rSpell &&
                    Champion.R.IsReady() &&
                    minion.IsValidTarget(Champion.Q.Range) &&
                    minionCount.Count > rSlider && GlobalManager.CheckMinion(minion))
                {
                    Champion.R.Cast();
                }
            }
        }
コード例 #5
0
        private static void StartComboSequence(Obj_AI_Base target, IReadOnlyList <bool> bSpells, IEnumerable <char> seq, float hpOffset = 1)
        {
            //var autoAttack = !GlobalManager.Config.Item("AAblock").GetValue<bool>();
            var isMinion = target.IsMinion;

            foreach (var com in seq)
            {
                switch (com)
                {
                case 'Q':
                    Console.WriteLine("Use Q Start");
                    if (!bSpells[0])
                    {
                        continue;
                    }
                    if (target.IsInvulnerable)
                    {
                        continue;
                    }
                    //Is Hero
                    if (!isMinion)
                    {
                        if (GlobalManager.GetPassiveBuff >= 2)
                        {
                            if (target.IsValidTarget(Champion.Qn.Range) && Champion.Qn.IsReady())
                            {
                                Champion.Qn.Cast(target);
                            }
                        }

                        else if (target.IsValidTarget(Champion.Q.Range) && Champion.Q.IsReady())
                        {
                            Champion.Q.Cast(target);
                        }
                    }
                    // is Minion
                    else if (!GlobalManager.CheckMinion(target))
                    {
                        if (!target.IsValidTarget(Champion.Q.Range - 20))
                        {
                            continue;
                        }

                        if (GlobalManager.GetPassiveBuff >= 2)
                        {
                            if (target.Health * hpOffset < Champion.Qn.GetDamage(target))
                            {
                                Champion.Qn.Cast(target);
                            }
                        }
                        else
                        {
                            if (target.Health * hpOffset < Champion.Q.GetDamage(target))
                            {
                                Champion.Q.Cast(target);
                            }
                        }
                    }

                    continue;

                case 'W':
                    Console.WriteLine("Use W Start");
                    if (!bSpells[1])
                    {
                        continue;
                    }
                    if (target.IsInvulnerable)
                    {
                        continue;
                    }

                    if (target.IsValidTarget(Champion.W.Range) && bSpells[1] && Champion.W.IsReady())
                    {
                        if (!isMinion)
                        {
                            Champion.W.CastOnUnit(target);
                        }
                        else if (target.Health * hpOffset < Champion.W.GetDamage(target) && GlobalManager.CheckMinion(target))
                        {
                            Champion.W.CastOnUnit(target);
                        }
                    }

                    continue;

                case 'E':
                    Console.WriteLine("Use E Start");
                    if (!bSpells[2])
                    {
                        continue;
                    }
                    if (target.IsInvulnerable)
                    {
                        continue;
                    }

                    if (target.IsValidTarget(Champion.E.Range) && Champion.E.IsReady())
                    {
                        if (!isMinion)
                        {
                            Champion.E.CastOnUnit(target);
                        }
                        else if (target.Health * hpOffset < Champion.E.GetDamage(target) && GlobalManager.CheckMinion(target))
                        {
                            Champion.E.CastOnUnit(target);
                        }
                    }

                    continue;

                case 'R':

                    Console.WriteLine("Use R Start");
                    if (!bSpells[3])
                    {
                        continue;
                    }
                    if (target.IsInvulnerable)
                    {
                        continue;
                    }
                    if (!target.IsValidTarget(Champion.W.Range))
                    {
                        continue;
                    }
                    if (!(target.Health > Champion.W.GetDamage(target) + Champion.E.GetDamage(target)))
                    {
                        continue;
                    }
                    if (!Champion.R.IsReady())
                    {
                        continue;
                    }
                    if (!bSpells[4])
                    {
                        continue;
                    }
                    if (target.HasBuff("RyzeW"))
                    {
                        Champion.R.Cast();
                    }

                    continue;
                }
                //if (!autoAttack) continue;
                //// Stop orbwalk AA to use are own
                //Champion.AABlock(false);
                //Champion.PreformAutoAttack(target);
                //Champion.AABlock(true);
            }

            if (!Champion.R.IsReady() || GlobalManager.GetPassiveBuff != 4 || !bSpells[4])
            {
                return;
            }
            if (Champion.Q.IsReady() || Champion.W.IsReady() || Champion.E.IsReady())
            {
                return;
            }

            Champion.R.Cast();
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: commonsharp/PortAIO
        private static void Game_OnUpdate(EventArgs args)
        {
            try // lazy
            {
                if (getKeyBindItem(_config, "test"))
                {
                    Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                    var targets = TargetSelector.GetTarget(Champion.W.Range, DamageType.Magical);
                    if (targets == null)
                    {
                        return;
                    }
                    if (Champion.W.IsReady())
                    {
                        LaneOptions.CastW(targets);
                        {
                            _lastw = Environment.TickCount;
                        }
                    }

                    if (Environment.TickCount - _lastw >= 700 - Game.Ping)
                    {
                        if (Champion.Q.IsReady())
                        {
                            LaneOptions.CastQn(targets);
                            _casted = true;
                        }
                    }

                    if (_casted)
                    {
                        LaneOptions.CastE(targets);
                        LaneOptions.CastQn(targets);
                        _casted = false;
                    }
                }

                if (getKeyBindItem(chase, "chase"))
                {
                    Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                    var targets = TargetSelector.GetTarget(Champion.W.Range + 200, DamageType.Magical);
                    if (targets == null)
                    {
                        return;
                    }

                    if (getCheckBoxItem(chase, "usewchase"))
                    {
                        LaneOptions.CastW(targets);
                    }

                    if (getCheckBoxItem(chase, "chaser") &&
                        targets.Distance(GlobalManager.GetHero) > Champion.W.Range + 200)
                    {
                        Champion.R.Cast();
                    }
                }

                if (GlobalManager.GetHero.IsDead)
                {
                    return;
                }

                if (GlobalManager.GetHero.IsRecalling())
                {
                    return;
                }

                if (Champion.casted == false)
                {
                    Orbwalker.DisableAttacking = false;
                }

                var target = TargetSelector.GetTarget(Champion.Q.Range, DamageType.Magical);

                if (getCheckBoxItem(humanizerMenu, "doHuman"))
                {
                    if (!Humanizer.CheckDelay("generalDelay")) // Wait for delay for all other events
                    {
                        return;
                    }
                    var nDelay = Seeder.Next(getSliderItem(humanizerMenu, "minDelay"),
                                             getSliderItem(humanizerMenu, "maxDelay")); // set a new random delay :D
                    Humanizer.ChangeDelay("generalDelay", nDelay);
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                {
                    var expires = GlobalManager.GetHero.Spellbook.GetSpell(SpellSlot.Q).CooldownExpires;

                    LaneOptions.COMBO();
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
                {
                    LaneOptions.Mixed();
                    Orbwalker.DisableAttacking = false;
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) ||
                    Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                {
                    LaneOptions.JungleClear();
                    if (getKeyBindItem(laneMenu, "disablelane"))
                    {
                        Console.WriteLine("1");
                        if (GlobalManager.GetPassiveBuff == 4 && !GlobalManager.GetHero.HasBuff("RyzeR") &&
                            getCheckBoxItem(laneMenu, "passiveproc"))
                        {
                            Console.WriteLine("2");
                            return;
                        }

                        Console.WriteLine("3");
                        var qlchSpell = getCheckBoxItem(laneMenu, "useQlc");
                        var elchSpell = getCheckBoxItem(laneMenu, "useElc");
                        var wlchSpell = getCheckBoxItem(laneMenu, "useWlc");

                        var rSpell  = getCheckBoxItem(laneMenu, "useRl");
                        var rSlider = getSliderItem(laneMenu, "rMin");
                        var minMana = getSliderItem(laneMenu, "useEPL");

                        var minionCount =
                            EntityManager.MinionsAndMonsters.GetLaneMinions()
                            .Where(x => !x.IsAlly && Champion.Q.IsInRange(x));

                        if (GlobalManager.GetHero.ManaPercent <= minMana)
                        {
                            Console.WriteLine("4");
                            return;
                        }

                        foreach (var minion in minionCount)
                        {
                            Console.WriteLine("5");
                            if (!GlobalManager.CheckMinion(minion))
                            {
                                continue;
                            }

                            Console.WriteLine("123123123");

                            var minionHp = minion.Health;

                            SpellSequence(minion, "useQ2L", "useE2L", "useW2L", "useRl");

                            if (qlchSpell && Champion.Q.IsReady() && minion.IsValidTarget(Champion.Q.Range) &&
                                minionHp <= Champion.Q.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                            {
                                Champion.Q.Cast(minion);
                            }

                            else if (wlchSpell && Champion.W.IsReady() && minion.IsValidTarget(Champion.W.Range) &&
                                     minionHp <= Champion.W.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                            {
                                Champion.W.CastOnUnit(minion);
                            }

                            else if (elchSpell && Champion.E.IsReady() && minion.IsValidTarget(Champion.E.Range) &&
                                     minionHp <= Champion.E.GetDamage(minion) && GlobalManager.CheckMinion(minion))
                            {
                                Champion.E.CastOnUnit(minion);
                            }

                            if (rSpell && Champion.R.IsReady() && minion.IsValidTarget(Champion.Q.Range) &&
                                minionCount.Count() > rSlider && GlobalManager.CheckMinion(minion))
                            {
                                Champion.R.Cast();
                            }
                        }
                    }
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit))
                {
                    LaneOptions.LastHit();
                }


                if (getKeyBindItem(itemMenu, "tearS"))
                {
                    ItemManager.TearStack();
                }

                if (getKeyBindItem(passiveMenu, "autoPassive"))
                {
                    var minions = MinionManager.GetMinions(GlobalManager.GetHero.ServerPosition, Champion.Q.Range,
                                                           MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth);
                    if (ObjectManager.Player.ManaPercent < getSliderItem(passiveMenu, "ManapSlider"))
                    {
                        return;
                    }
                    if (ObjectManager.Player.IsRecalling())
                    {
                        return;
                    }
                    if (minions.Count >= 1)
                    {
                        return;
                    }
                    var stackSliders = getSliderItem(passiveMenu, "stackSlider");
                    if (ObjectManager.Player.InFountain())
                    {
                        return;
                    }

                    if (GlobalManager.GetPassiveBuff >= stackSliders)
                    {
                        return;
                    }

                    if (Utils.TickCount - Champion.Q.LastCastAttemptT >=
                        getSliderItem(passiveMenu, "autoPassiveTimer") * 1000 - (100 + Game.Ping / 2) &&
                        Champion.Q.IsReady())
                    {
                        if (!Game.CursorPos.IsZero)
                        {
                            Champion.Q.Cast(Game.CursorPos);
                        }
                    }
                }

                Orbwalker.DisableAttacking = false;

                if (getCheckBoxItem(mixedMenu, "UseQauto") && target != null)
                {
                    if (Champion.Q.IsReady() && target.IsValidTarget(Champion.Q.Range))
                    {
                        Champion.Q.Cast(target);
                    }
                }

                Champion.KillSteal();
            }
            catch
            {
                // ignored
            }
        }