示例#1
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (ObjectManager.Player.IsDead)
            {
                xAttackLeft = 0;
                return;
            }

            if (Game.Time > xPassiveUsedTime + 3 && xAttackLeft == 1)
            {
                xAttackLeft = 0;
            }

            if (Program.misc["Passive"].Cast <CheckBox>().CurrentValue&& xAttackLeft > 0)
            {
                return;
            }

            AIHeroClient t;

            if (Q.IsReady() && Program.harass["UseQTH"].Cast <KeyBind>().CurrentValue&& ToggleActive)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }

                t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (t != null)
                {
                    Q.CastOnUnit(t);
                }
            }


            if (Q.IsReady() && Program.harass["UseQExtendedTH"].Cast <KeyBind>().CurrentValue&& ToggleActive)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }

                t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (t.LSIsValidTarget() && QMinion(t).LSIsValidTarget())
                {
                    if (ObjectManager.Player.LSDistance(t) > Q.Range)
                    {
                        Q.CastOnUnit(QMinion(t));
                    }
                }
            }


            if ((!ComboActive && !HarassActive))
            {
                return;
            }

            var useQExtended = Program.combo["UseQExtendedC"].Cast <ComboBox>().CurrentValue;

            if (useQExtended != 0)
            {
                switch (useQExtended)
                {
                case 1:
                {
                    t = TargetSelector.GetTarget(Q2.Range, DamageType.Physical);
                    var tx = QMinion(t);
                    if (tx.LSIsValidTarget())
                    {
                        if (!Orbwalking.InAutoAttackRange(t))
                        {
                            Q.CastOnUnit(tx);
                        }
                    }
                    break;
                }

                case 2:
                {
                    var enemy = HeroManager.Enemies.Find(e => e.LSIsValidTarget(Q2.Range) && !e.IsZombie);
                    if (enemy != null)
                    {
                        var tx = QMinion(enemy);
                        if (tx.LSIsValidTarget())
                        {
                            Q.CastOnUnit(tx);
                        }
                    }
                    break;
                }
                }
            }

            // Auto turn off Ghostblade Item if Ultimate active
            if (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Level > 0)
            {
                Program.MenuActivator["GHOSTBLADE"].Cast <CheckBox>().CurrentValue = (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Name == "LucianR");
            }

            //if (useQExtended && Q.IsReady())
            //{
            //    var t = TargetSelector.GetTarget(Q2.Range, DamageType.Physical);
            //    if (t.LSIsValidTarget() && QMinion.LSIsValidTarget())
            //    {
            //        if (!Orbwalking.InAutoAttackRange(t))
            //            Q.CastOnUnit(QMinion);
            //    }
            //}

            t = TargetSelector.GetTarget(W.Range, DamageType.Physical);
            if (!t.LSIsValidTarget())
            {
                return;
            }

            var useQ = Program.combo["UseQC"].Cast <CheckBox>().CurrentValue;

            if (useQ && Q.IsReady())
            {
                if (t.LSIsValidTarget(Q.Range))
                {
                    Q.CastOnUnit(t);
                    //Orbwalking.ResetAutoAttackTimer();
                }
            }

            var useW = Program.combo["UseQC"].Cast <CheckBox>().CurrentValue;

            if (useW && W.CanCast(t))
            {
                if (t.Health <= W.GetDamage(t) || t.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
                {
                    W.Cast(t.Position);
                }
            }

            var useE = Program.combo["UseEC"].Cast <ComboBox>().CurrentValue;

            if (useE != 0 && E.IsReady())
            {
                if (t.LSDistance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) &&
                    t.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + E.Range - 100) && E.IsPositionSafe(t.Position.LSTo2D()))
                {
                    E.Cast(t.Position);
                    //Orbwalking.ResetAutoAttackTimer();
                }
                else if (E.IsPositionSafe(Game.CursorPos.LSTo2D()))
                {
                    E.Cast(Game.CursorPos);
                    //Orbwalking.ResetAutoAttackTimer();
                }
                //Orbwalker.ForceTarget(t);

                //if (t.LSIsValidTarget(Q.Range))
                //{
                //    E.Cast(Game.CursorPos);
                //}
            }
        }