Esempio n. 1
0
        private static void DashELogic(AIBaseClient target)
        {
            if (target.DistanceToPlayer() <= Me.GetRealAutoAttackRange(target) ||
                target.DistanceToPlayer() > Me.GetRealAutoAttackRange(target) + E.Range)
            {
                return;
            }

            var dashPos = Me.PreviousPosition.Extend(Game.CursorPos, E.Range);

            if (dashPos.IsWall() && ComboOption.GetBool("ComboEWall").Enabled)
            {
                return;
            }

            if (dashPos.CountEnemyHeroesInRange(500) >= 3 && dashPos.CountAllyHeroesInRange(400) < 3 &&
                ComboOption.GetBool("ComboESafe").Enabled)
            {
                return;
            }

            var realRange = Me.BoundingRadius + target.BoundingRadius + Me.AttackRange;

            if (Me.PreviousPosition.DistanceToCursor() > realRange * 0.60 &&
                !target.InAutoAttackRange() &&
                target.PreviousPosition.Distance(dashPos) < realRange - 45)
            {
                E.Cast(dashPos);
            }
        }
Esempio n. 2
0
        private static void PostAttack(object sender, PostAttackEventArgs Args)
        {
            if (E.Ready)
            {
                if (Orbwalker.Mode == OrbwalkingMode.Combo && ComboOption.UseE && ComboOption.GetBool("ComboEReset").Enabled)
                {
                    var target = Args.Target as Obj_AI_Hero;

                    if (target != null && !target.IsDead && target.IsValidTarget())
                    {
                        ELogic(target);
                    }
                }
                else if (Orbwalker.Mode == OrbwalkingMode.Laneclear && JungleClearOption.HasEnouguMana() && Args.Target.Type == GameObjectType.obj_AI_Minion &&
                         Args.Target.IsMob())
                {
                    if (JungleClearOption.UseE)
                    {
                        var mobs =
                            GameObjects.EnemyMinions.Where(x => x.IsValidSpellTarget(800) && x.IsMob())
                            .Where(x => !x.Name.ToLower().Contains("mini"))
                            .ToArray();

                        if (mobs.Any() && mobs.FirstOrDefault() != null)
                        {
                            ELogic(mobs.FirstOrDefault());
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (target.IsValidTarget(E.Range))
            {
                if (ComboOption.GetBool("ComboRYouMuu") && myOrbwalker.GetTarget() != null && myOrbwalker.GetTarget() is AIHeroClient && Me.HasBuff("TwitchFullAutomatic"))
                {
                    if (Item.HasItem(3142))
                    {
                        Item.UseItem(3142);
                    }
                }

                if (ComboOption.UseR && R.IsReady())
                {
                    if (ComboOption.GetBool("ComboRKillSteal") &&
                        ObjectManager.Heroes.Enemies.Count(x => x.DistanceToPlayer() <= R.Range) <= 2 &&
                        target.Health <= Me.GetAutoAttackDamage(target, true) * 4 + GetRealEDamage(target) * 2)
                    {
                        R.Cast();
                    }

                    if (ObjectManager.Heroes.Enemies
                        .Count(x => x.DistanceToPlayer() <= R.Range) >= ComboOption.GetSlider("ComboRCount"))
                    {
                        R.Cast();
                    }
                }

                if (ComboOption.UseQ && Q.IsReady() &&
                    ObjectManager.Heroes.Enemies.Count(
                        x => x.DistanceToPlayer() <= ComboOption.GetSlider("ComboQRange")) >= ComboOption.GetSlider("ComboQCount"))
                {
                    Q.Cast();
                }

                if (ComboOption.UseW && W.IsReady() && target.IsValidTarget(W.Range) &&
                    target.Health > W.GetDamage(target) && GetEStackCount(target) < 6 &&
                    Me.Mana >= Q.ManaCost + W.ManaCost + E.ManaCost + R.ManaCost)
                {
                    SpellManager.PredCast(W, target, true);
                }

                if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range) &&
                    target.HasBuff("TwitchDeadlyVenom"))
                {
                    if (ComboOption.GetBool("ComboEFull") && GetEStackCount(target) >= 6)
                    {
                        E.Cast();
                    }

                    if (ComboOption.GetBool("ComboEKill") && target.Health <= E.GetDamage(target) && target.IsValidTarget(E.Range))
                    {
                        E.Cast();
                    }
                }
            }
        }
Esempio n. 4
0
        private static void PostAttack(object sender, PostAttackEventArgs Args)
        {
            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.obj_AI_Hero:
            {
                var target = Args.Target as Obj_AI_Hero;

                if (target != null && target.IsValidTarget())
                {
                    if (Orbwalker.Mode == OrbwalkingMode.Combo)
                    {
                        if (ComboOption.UseQ && Q.Ready && target.IsValidTarget(Q.Range))
                        {
                            Q.CastOnUnit(target);
                        }
                        else if (ComboOption.UseW && ComboOption.GetBool("ComboWAA").Enabled&& W.Ready &&
                                 target.IsValidTarget(W.Range) && HasPassive(target))
                        {
                            var wPred = W.GetPrediction(target);

                            if (wPred.HitChance >= HitChance.High)
                            {
                                W.Cast(wPred.UnitPosition);
                            }
                        }
                    }
                    else if (Orbwalker.Mode == OrbwalkingMode.Mixed ||
                             Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellHarass)
                    {
                        if (HarassOption.HasEnouguMana())
                        {
                            if (HarassOption.UseQ && Q.Ready && target.IsValidTarget(Q.Range))
                            {
                                Q.CastOnUnit(target);
                            }
                            else if (HarassOption.UseW && W.Ready && target.IsValidTarget(W.Range) &&
                                     HasPassive(target))
                            {
                                var wPred = W.GetPrediction(target);

                                if (wPred.HitChance >= HitChance.High)
                                {
                                    W.Cast(wPred.UnitPosition);
                                }
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Esempio n. 5
0
        private static void OnIssueOrder(Obj_AI_Base sender, Obj_AI_BaseIssueOrderEventArgs /*Obj_AI_BaseMissileClientDataEventArgs*/ Args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            if (Args.OrderType != OrderType.AttackUnit || !E.Ready)
            {
                return;
            }

            if (Orbwalker.Mode != OrbwalkingMode.Combo && Orbwalker.Mode != OrbwalkingMode.Laneclear)
            {
                return;
            }

            var target = (AttackableUnit)Args.Target;

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (!Orbwalker.CanAttack() || !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius + target.BoundingRadius - 20))
            {
                Args.ProcessEvent = false;
                return;
            }

            if (Orbwalker.Mode == OrbwalkingMode.Combo && ComboOption.UseE &&
                ComboOption.GetBool("ComboEReset").Enabled&& target.Type == GameObjectType.obj_AI_Hero)
            {
                if (ELogic((Obj_AI_Hero)target))
                {
                    DelayAction.Queue(1, () =>
                    {
                        //E.Cast(Me.ServerPosition.Extend(Args.Target.ServerPosition, E.Range - Args.Target.BoundingRadius));
                        Orbwalker.ResetAutoAttackTimer();
                        //Me.IssueOrder(OrderType.AttackUnit, target);
                    });
                }
            }
            else if (Orbwalker.Mode == OrbwalkingMode.Laneclear && JungleClearOption.HasEnouguMana() &&
                     JungleClearOption.UseE && target.IsMob())
            {
                if (ELogic((Obj_AI_Minion)target))
                {
                    DelayAction.Queue(1, () =>
                    {
                        // E.Cast(Me.ServerPosition.Extend(Args.Target.ServerPosition, E.Range - Args.Target.BoundingRadius));
                        Orbwalker.ResetAutoAttackTimer();
                        //Me.IssueOrder(OrderType.AttackUnit, target);
                    });
                }
            }
        }
Esempio n. 6
0
        private static void Combo()
        {
            var target = MyTargetSelector.GetTarget(E.Range);

            if (target.IsValidTarget(E.Range))
            {
                if (ComboOption.UseR && R.IsReady())
                {
                    if (ComboOption.GetBool("ComboRKillSteal").Enabled&&
                        GameObjects.EnemyHeroes.Count(x => x.DistanceToPlayer() <= R.Range) <= 2 &&
                        target.Health <= Me.GetAutoAttackDamage(target) * 4 + GetRealEDamage(target) * 2)
                    {
                        R.Cast();
                    }

                    if (GameObjects.EnemyHeroes.Count(x => x.DistanceToPlayer() <= R.Range) >= ComboOption.GetSlider("ComboRCount").Value)
                    {
                        R.Cast();
                    }
                }

                if (ComboOption.UseQ && Q.IsReady() &&
                    GameObjects.EnemyHeroes.Count(x => x.DistanceToPlayer() <= ComboOption.GetSlider("ComboQRange").Value) >=
                    ComboOption.GetSlider("ComboQCount").Value)
                {
                    Q.Cast();
                }

                if (ComboOption.UseW && W.IsReady() && target.IsValidTarget(W.Range) &&
                    target.Health > GetRealEDamage(target) && GetEStackCount(target) < 6 &&
                    Me.Mana > Q.Mana + W.Mana + E.Mana + R.Mana)
                {
                    var wPred = W.GetPrediction(target);

                    if (wPred.Hitchance >= HitChance.High)
                    {
                        W.Cast(wPred.CastPosition);
                    }
                }

                if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range) &&
                    target.Buffs.Any(b => b.Name.ToLower() == "twitchdeadlyvenom"))
                {
                    if (ComboOption.GetBool("ComboEFull").Enabled&& GetEStackCount(target) >= 6)
                    {
                        E.Cast();
                    }

                    if (ComboOption.GetBool("ComboEKill").Enabled&& target.Health <= GetRealEDamage(target) &&
                        target.IsValidTarget(E.Range))
                    {
                        E.Cast();
                    }
                }
            }
        }
Esempio n. 7
0
        //private static void OnGapcloser(AIHeroClient target, GapcloserArgs Args)
        //{
        //    if (W.IsReady() && target != null && target.IsValidTarget(W.Range))
        //    {
        //        switch (Args.Type)
        //        {
        //            case SpellType.Melee:
        //                if (target.IsValidTarget(target.AttackRange + target.BoundingRadius + 100))
        //                {
        //                    var wPred = W.GetPrediction(target);
        //                    W.Cast(wPred.UnitPosition);
        //                }
        //                break;
        //            case SpellType.Dash:
        //            case SpellType.SkillShot:
        //            case SpellType.Targeted:
        //                {
        //                    var wPred = W.GetPrediction(target);
        //                    W.Cast(wPred.UnitPosition);
        //                }
        //                break;
        //        }
        //    }
        //}

        private static void OnBasicAttack(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe)
            {
                return;
            }

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

            if (Orbwalker.ActiveMode != OrbwalkerMode.Combo && Orbwalker.ActiveMode != OrbwalkerMode.LaneClear)
            {
                return;
            }

            var target = (AttackableUnit)Args.Target;

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (!Orbwalker.CanAttack() || Me.IsWindingUp || !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius + target.BoundingRadius - 20))
            {
                return;
            }

            if (Orbwalker.ActiveMode == OrbwalkerMode.Combo && ComboOption.UseE &&
                ComboOption.GetBool("ComboEReset").Enabled&& target.Type == GameObjectType.AIHeroClient)
            {
                DelayAction.Add(0, () =>
                {
                    if (ELogic((AIHeroClient)target))
                    {
                        Orbwalker.ResetAutoAttackTimer();
                    }
                });
            }
            else if (Orbwalker.ActiveMode == OrbwalkerMode.LaneClear && JungleClearOption.HasEnouguMana() &&
                     JungleClearOption.UseE && target is AIMinionClient)
            {
                var mob = (AIMinionClient)target;
                if (mob != null && mob.GetJungleType() != JungleType.Unknown && mob.GetJungleType() != JungleType.Small)
                {
                    DelayAction.Add(0, () =>
                    {
                        if (ELogic(mob))
                        {
                            Orbwalker.ResetAutoAttackTimer();
                        }
                    });
                }
            }
        }
Esempio n. 8
0
        private static void OnAction(object sender, OrbwalkerActionArgs Args)
        {
            if (Args.Type != OrbwalkerType.AfterAttack)
            {
                return;
            }

            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0 || !E.IsReady())
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.AIHeroClient:
            {
                if (Orbwalker.ActiveMode == OrbwalkerMode.Combo)
                {
                    if (ComboOption.UseE && ComboOption.GetBool("ComboEReset").Enabled)
                    {
                        var target = (AIHeroClient)Args.Target;
                        if (target != null && !target.IsDead && target.IsValidTarget())
                        {
                            ELogic(target);
                        }
                    }
                }
            }
            break;

            case GameObjectType.AIMinionClient:
            {
                if (Orbwalker.ActiveMode == OrbwalkerMode.LaneClear)
                {
                    var mob = (AIMinionClient)Args.Target;
                    if (mob != null && mob.IsValidTarget() && mob.GetJungleType() != JungleType.Unknown)
                    {
                        if (JungleClearOption.HasEnouguMana() && JungleClearOption.UseE)
                        {
                            var mobs =
                                GameObjects.Jungle.Where(x => x.IsValidTarget(800) && x.GetJungleType() != JungleType.Unknown)
                                .Where(x => x.GetJungleType() != JungleType.Unknown)
                                .ToList();

                            if (mobs.Any() && mobs.FirstOrDefault() != null)
                            {
                                ELogic(mobs.FirstOrDefault());
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Esempio n. 9
0
        private static void Combo()
        {
            if (ComboOption.GetBool("ComboEDash") && E.IsReady())
            {
                var target = TargetSelector.GetTarget(Me.AttackRange + Me.BoundingRadius,
                                                      TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(Me.AttackRange + Me.BoundingRadius + E.Range) &&
                    !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius))
                {
                    ELogic(target, 0);
                }
            }

            if (ComboOption.GetBool("ComboQExtend") && QExtend.IsReady() && !Me.IsDashing() && !havePassive &&
                !havePassiveBuff)
            {
                var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(QExtend.Range) && !target.IsValidTarget(Q.Range))
                {
                    QLogic(target);
                }
            }

            if (ComboOption.UseR && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(R.Range) && !target.IsUnKillable() && !Me.IsUnderEnemyTurret() &&
                    !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius))
                {
                    if (
                        ObjectManager.Heroes.Enemies.Any(
                            x => x.NetworkId != target.NetworkId && x.Distance(target) <= 550))
                    {
                        return;
                    }

                    var rDMG = MyDamageCalculate.GetRDamage(target);

                    if (target.Health + target.HPRegenRate * 3 < rDMG)
                    {
                        if (target.DistanceToPlayer() <= 800 && target.Health < rDMG * 0.6)
                        {
                            R.Cast(target, true);
                        }
                        else if (target.DistanceToPlayer() <= 1000 && target.Health < rDMG * 0.4)
                        {
                            R.Cast(target, true);
                        }
                    }
                }
            }
        }
Esempio n. 10
0
        private static void OnIssueOrder(Obj_AI_Base sender, GameObjectIssueOrderEventArgs Args)
        {
            if (!sender.IsMe || Args.Order != GameObjectOrder.AttackUnit || E.IsReady())
            {
                return;
            }

            var target = (Obj_AI_Base)Args.Target;

            if (target == null)
            {
                return;
            }

            if (!Orbwalker.CanAttack() || target.DistanceToPlayer() > Me.AttackRange + Me.BoundingRadius - target.BoundingRadius + 15)
            {
                Args.Process = false;
                return;
            }

            if (BurstMenu.Get <MenuKeybind>("BurstKeys").Active&& target.ObjectType == GameObjectType.AIHeroClient)
            {
                if (!R.IsReady())
                {
                    Core.DelayAction(() =>
                    {
                        if (ELogic(target))
                        {
                            Orbwalker.ResetAutoAttackTimer();
                        }
                    }, Game.Ping);
                }
            }
            else if (isComboMode && ComboOption.UseE && ComboOption.GetBool("ComboEAA"))
            {
                Core.DelayAction(() =>
                {
                    if (ELogic(target))
                    {
                        Orbwalker.ResetAutoAttackTimer();
                    }
                }, Game.Ping);
            }
            else if (isJungleClearMode && JungleClearOption.HasEnouguMana && JungleClearOption.UseE)
            {
                Core.DelayAction(() =>
                {
                    if (ELogic(target))
                    {
                        Orbwalker.ResetAutoAttackTimer();
                    }
                }, Game.Ping);
            }
        }
Esempio n. 11
0
        private static void PostAttack(object sender, PostAttackEventArgs Args)
        {
            Orbwalker.ForceTarget(null);

            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.obj_AI_Hero:
            {
                if (Orbwalker.Mode == OrbwalkingMode.Combo)
                {
                    var target = Args.Target as Obj_AI_Hero;

                    if (target != null && target.IsValidTarget(E.Range))
                    {
                        if (ComboOption.UseE && E.Ready && ComboOption.GetBool("ComboEOnlyAfterAA").Enabled)
                        {
                            E.CastOnUnit(target);
                        }
                    }
                }
            }
            break;

            case GameObjectType.obj_AI_Turret:
            case GameObjectType.obj_HQ:
            case GameObjectType.obj_Barracks:
            case GameObjectType.obj_BarracksDampener:
            case GameObjectType.obj_Building:
            {
                if (Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellFarm && LaneClearOption.HasEnouguMana(true))
                {
                    if (Me.CountEnemyHeroesInRange(800) == 0)
                    {
                        if (LaneClearOption.UseE && E.Ready)
                        {
                            E.CastOnUnit(Args.Target as Obj_AI_Base);

                            if (LaneClearOption.UseQ && Q.Ready)
                            {
                                Q.Cast();
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Esempio n. 12
0
        private static void OnAction(object sender, OrbwalkerActionArgs Args)
        {
            if (Args.Type != OrbwalkerType.AfterAttack)
            {
                return;
            }

            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0 ||
                wCd != 0 || W.Level == 0 || !W.IsReady() || isWActive)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.AIHeroClient:
            {
                var target = Args.Target as AIHeroClient;

                if (target != null && target.IsValidTarget())
                {
                    if (Orbwalker.ActiveMode == OrbwalkerMode.Combo)
                    {
                        if (ComboOption.GetBool("UseWCombo").Enabled)
                        {
                            if (target.InAutoAttackRange())
                            {
                                Orbwalker.ResetAutoAttackTimer();
                                W.Cast();
                            }
                        }
                    }
                    else if (Orbwalker.ActiveMode == OrbwalkerMode.Harass ||
                             Orbwalker.ActiveMode == OrbwalkerMode.LaneClear && MyManaManager.SpellHarass)
                    {
                        if (HarassOption.HasEnouguMana() &&
                            HarassOption.GetHarassTargetEnabled(target.CharacterName) &&
                            HarassOption.GetBool("UseWHarass").Enabled)
                        {
                            if (target.InAutoAttackRange())
                            {
                                Orbwalker.ResetAutoAttackTimer();
                                W.Cast();
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Esempio n. 13
0
        private static void ELogic(AIHeroClient target, int count)
        {
            if (!E.IsReady() || target == null || target.IsDead || target.IsUnKillable())
            {
                return;
            }

            switch (count)
            {
            case 0:
            {
                if (target.IsValidTarget(Me.AttackRange + Me.BoundingRadius) ||
                    !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius + E.Range))
                {
                    return;
                }

                var dashPos = Me.ServerPosition.Extend(Game.CursorPosition, E.Range);

                if (dashPos.CountEnemiesInRange(500) >= 3 && dashPos.CountAlliesInRange(400) < 3 &&
                    ComboOption.GetBool("ComboESafe"))
                {
                    return;
                }

                if (Me.DistanceToMouse() > (Me.AttackRange + Me.BoundingRadius) * 0.7 &&
                    target.Position.Distance(dashPos) < Me.AttackRange + Me.BoundingRadius)
                {
                    E.Cast(dashPos, true);
                }
            }
            break;

            case 1:
            {
                var dashRange = ComboOption.GetBool("ComboEShort")
                            ? (Me.DistanceToMouse() > Me.AttackRange + Me.BoundingRadius ? E.Range : 130)
                            : E.Range;
                var dashPos = Me.ServerPosition.Extend(Game.CursorPosition, dashRange);

                if (dashPos.CountEnemiesInRange(500) >= 3 && dashPos.CountAlliesInRange(400) < 3 &&
                    ComboOption.GetBool("ComboESafe"))
                {
                    return;
                }

                E.Cast(dashPos, true);
            }
            break;
            }
        }
Esempio n. 14
0
        private static void ComboEvent()
        {
            if (ComboOption.GetBool("ComboGapcloser").Enabled)
            {
                ForcusAttack();
            }

            var target = MyTargetSelector.GetTarget(Q.Range);

            if (target != null && target.IsValidTarget(Q.Range))
            {
                if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range) && !target.InAutoAttackRange())
                {
                    var qPred = Q.GetPrediction(target);

                    if (qPred.Hitchance >= HitChance.High)
                    {
                        Q.Cast(qPred.CastPosition);
                    }
                }

                if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range) &&
                    Variables.GameTimeTickCount - lastETime > 500 + Game.Ping)
                {
                    if (target.Health < E.GetKalistaRealDamage(target,
                                                               MiscOption.GetSliderBool("E", "EToler").Enabled,
                                                               MiscOption.GetSliderBool("E", "EToler").Value) &&
                        !target.IsUnKillable())
                    {
                        E.Cast();
                    }

                    if (ComboOption.GetBool("ComboESlow").Enabled&&
                        target.DistanceToPlayer() > Me.AttackRange + Me.BoundingRadius + 100 &&
                        target.IsValidTarget(E.Range))
                    {
                        var EKillMinion = GameObjects.Minions.Where(x => x.IsValidTarget(Me.GetRealAutoAttackRange(x)))
                                          .FirstOrDefault(x => x.Buffs.Any(a => a.Name.ToLower().Contains("kalistaexpungemarker")) &&
                                                          x.DistanceToPlayer() <= E.Range && x.Health < E.GetKalistaRealDamage(x));

                        if (EKillMinion != null && EKillMinion.IsValidTarget(E.Range) &&
                            target.IsValidTarget(E.Range))
                        {
                            E.Cast();
                        }
                    }
                }
            }
        }
Esempio n. 15
0
        private static void PostAttack(object sender, PostAttackEventArgs Args)
        {
            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0 ||
                wCd != 0 || W.GetBasicSpell().Level == 0 || !W.Ready || isWActive)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.obj_AI_Hero:
            {
                var target = Args.Target as Obj_AI_Hero;

                if (target != null && target.IsValidTarget())
                {
                    if (Orbwalker.Mode == OrbwalkingMode.Combo)
                    {
                        if (ComboOption.GetBool("UseWCombo").Enabled)
                        {
                            if (target.IsValidAutoRange())
                            {
                                Orbwalker.ResetAutoAttackTimer();
                                W.Cast();
                            }
                        }
                    }
                    else if (Orbwalker.Mode == OrbwalkingMode.Mixed ||
                             Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellHarass)
                    {
                        if (HarassOption.HasEnouguMana() &&
                            HarassOption.GetHarassTargetEnabled(target.ChampionName) &&
                            HarassOption.GetBool("UseWHarass").Enabled)
                        {
                            if (target.IsValidAutoRange())
                            {
                                Orbwalker.ResetAutoAttackTimer();
                                W.Cast();
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Esempio n. 16
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical);

            if (target.IsValidTarget(QExtend.Range))
            {
                if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(QExtend.Range))
                {
                    QLogic(target, ComboOption.GetBool("ComboQ1"));
                }

                if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range))
                {
                    E.Cast(target.Position, true);
                }
            }
        }
Esempio n. 17
0
        private static void Combo()
        {
            var target = MyTargetSelector.GetTarget(R.Range, ComboOption.GetBool("ComboForcus").Enabled);

            if (target.IsValidTarget(R.Range) && !target.IsUnKillable())
            {
                if (ComboOption.UseR && R.Ready && ComboOption.GetSlider("ComboRLimit").Value > GetRCount &&
                    target.IsValidTarget(R.Range) && target.HealthPercent() <= ComboOption.GetSlider("ComboRHP").Value&&
                    (!ComboOption.GetBool("ComboROnlyOutAARange").Enabled ||
                     ComboOption.GetBool("ComboROnlyOutAARange").Enabled&& !target.IsValidAutoRange()))
                {
                    var rPred = R.GetPrediction(target);

                    if (rPred.HitChance >= HitChance.High)
                    {
                        R.Cast(rPred.CastPosition);
                    }
                }

                if (ComboOption.UseQ && Q.Ready && target.IsValidTarget(Q.Range))
                {
                    var qPred = Q.GetPrediction(target);

                    if (qPred.HitChance >= HitChance.Medium)
                    {
                        Q.Cast(qPred.CastPosition);
                    }
                }

                if (ComboOption.UseE && E.Ready && target.IsValidTarget(E.Range))
                {
                    var ePred = E.GetPrediction(target);

                    if (ePred.HitChance >= HitChance.High)
                    {
                        E.Cast(ePred.CastPosition);
                    }
                }

                if (ComboOption.UseW && W.Ready && target.IsValidTarget(W.Range) &&
                    !target.IsValidAutoRange() && Orbwalker.CanAttack())
                {
                    W.Cast();
                }
            }
        }
Esempio n. 18
0
        private static void PreAttack(object sender, PreAttackEventArgs Args)
        {
            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            if (Orbwalker.Mode == OrbwalkingMode.Combo &&
                ComboOption.GetBool("ComboDisableAA").Enabled&&
                Args.Target.Type == GameObjectType.obj_AI_Hero)
            {
                if (HumanizerCardSelect.Status == HumanizerSelectStatus.Selecting &&
                    Game.TickCount - HumanizerCardSelect.LastWSent > 300)
                {
                    Args.Cancel = true;
                }
            }
        }
Esempio n. 19
0
        private static void Combo()
        {
            var target = MyTargetSelector.GetTarget(E.Range);

            if (target.IsValidTarget(E.Range))
            {
                if (ComboOption.UseQ && Q.IsReady())
                {
                    if (!ComboOption.GetBool("ComboQAlways").Enabled)
                    {
                        if (!E.IsReady() && target.HasBuff("TristanaECharge"))
                        {
                            Q.Cast();
                        }
                        else if (!E.IsReady() && !target.HasBuff("TristanaECharge") && E.CooldownTime > 4)
                        {
                            Q.Cast();
                        }
                    }
                    else
                    {
                        Q.Cast();
                    }
                }

                if (ComboOption.UseE && E.IsReady() && !ComboOption.GetBool("ComboQAlways").Enabled&& target.IsValidTarget(E.Range))
                {
                    E.CastOnUnit(target);
                }

                if (ComboOption.UseR && R.IsReady() && Me.HealthPercent <= ComboOption.GetSlider("ComboRHp").Value)
                {
                    var dangerenemy =
                        GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(R.Range))
                        .OrderBy(x => x.Distance(Me))
                        .FirstOrDefault();

                    if (dangerenemy != null)
                    {
                        R.CastOnUnit(dangerenemy);
                    }
                }
            }
        }
Esempio n. 20
0
        private static void AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe)
            {
                return;
            }

            myOrbwalker.ForceTarget(null);

            if (isComboMode)
            {
                if (ComboOption.UseE && E.IsReady() && ComboOption.GetBool("ComboEOnlyAfterAA"))
                {
                    var t = target as AIHeroClient;

                    if (t != null && t.IsValidTarget(E.Range))
                    {
                        E.CastOnUnit(t, true);
                    }
                }
            }
            else if (isLaneClearMode && LaneClearOption.HasEnouguMana)
            {
                if (target != null)
                {
                    if (target.ObjectType == GameObjectType.obj_AI_Turret ||
                        target.ObjectType == GameObjectType.obj_Barracks ||
                        target.ObjectType == GameObjectType.obj_HQ ||
                        target.ObjectType == GameObjectType.obj_Turret ||
                        target.ObjectType == GameObjectType.obj_BarracksDampener)
                    {
                        if (LaneClearOption.UseE && E.IsReady())
                        {
                            E.CastOnUnit(target as Obj_AI_Base, true);

                            if (!Me.IsWindingUp && Me.CountEnemiesInRange(1000) == 0 && LaneClearOption.UseQ)
                            {
                                Q.Cast();
                            }
                        }
                    }
                }
            }
        }
Esempio n. 21
0
        private static void Combo()
        {
            var target = MyTargetSelector.GetTarget(1500);

            if (target != null && target.IsValidTarget(1500))
            {
                if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range))
                {
                    if (target.DistanceToPlayer() > Me.GetRealAutoAttackRange(target) + 150 || !Orbwalker.CanAttack())
                    {
                        var qPred = Q.GetPrediction(target);

                        if (qPred.Hitchance >= HitChance.High)
                        {
                            Q.Cast(qPred.CastPosition);
                        }
                    }
                }

                if (!E.IsReady() || target.IsDashing())
                {
                    return;
                }

                if (ComboOption.UseE && target.Health < GetEDamage(target))
                {
                    E.Cast();
                }

                if (ComboOption.GetBool("ComboERoot").Enabled&& HitECount(target) >= 3 &&
                    !target.HasBuffOfType(BuffType.SpellShield))
                {
                    E.Cast();
                }

                if (ComboOption.GetBool("ComboELogic").Enabled&& Me.Level >= 5 &&
                    target.Health + target.HPRegenRate * 2 <
                    GetEDamage(target) + Me.GetSpellDamage(target, SpellSlot.Q) + Me.GetAutoAttackDamage(target))
                {
                    E.Cast();
                }
            }
        }
Esempio n. 22
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (target.IsValidTarget(E.Range))
            {
                if (ComboOption.UseQ && Q.IsReady())
                {
                    if (ComboOption.GetBool("ComboQOnlyPassive"))
                    {
                        if (!E.IsReady() && target.HasBuff("TristanaECharge"))
                        {
                            Q.Cast();
                        }
                        else if (!E.IsReady() && !target.HasBuff("TristanaECharge") && E.Cooldown > 4)
                        {
                            Q.Cast();
                        }
                    }
                    else
                    {
                        Q.Cast();
                    }
                }

                if (ComboOption.UseE && E.IsReady() && !ComboOption.GetBool("ComboEOnlyAfterAA") && target.IsValidTarget(E.Range))
                {
                    E.CastOnUnit(target, true);
                }

                if (ComboOption.UseR && R.IsReady() && Me.HealthPercent <= ComboOption.GetSlider("ComboRHp"))
                {
                    var dangerenemy = ObjectManager.Heroes.Enemies.Where(e => e.IsValidTarget(R.Range)).
                                      OrderBy(enemy => enemy.Distance(Me)).FirstOrDefault();

                    if (dangerenemy != null)
                    {
                        R.CastOnUnit(dangerenemy, true);
                    }
                }
            }
        }
Esempio n. 23
0
        private static void AfterAttack(AttackableUnit sender, AttackableUnit ArgsTarget)
        {
            if (!sender.IsMe || Me.IsDead)
            {
                return;
            }

            myOrbwalker.ForceTarget(null);

            if (isComboMode)
            {
                var target = ArgsTarget as AIHeroClient;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (ComboOption.UseQ && Q.IsReady())
                    {
                        if (ComboOption.GetBool("ComboMana"))
                        {
                            if (Me.Mana > Q.ManaCost + E.ManaCost)
                            {
                                SpellManager.PredCast(Q, target);
                            }
                        }
                        else
                        {
                            SpellManager.PredCast(Q, target);
                        }
                    }
                }
            }
            else if (isJungleClearMode && JungleClearOption.HasEnouguMana && JungleClearOption.UseQ && Q.IsReady())
            {
                var mob = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral,
                                                   MinionOrderTypes.MaxHealth).FirstOrDefault();

                if (mob != null && !mob.IsDead)
                {
                    Q.Cast(mob, true);
                }
            }
        }
Esempio n. 24
0
        private static void ResetELogic(AIBaseClient target)
        {
            var dashRange = ComboOption.GetBool("ComboEShort").Enabled
                ? (Me.PreviousPosition.DistanceToCursor() > Me.GetRealAutoAttackRange(target) ? E.Range : 130)
                : E.Range;
            var dashPos = Me.PreviousPosition.Extend(Game.CursorPos, dashRange);

            if (dashPos.IsWall() && ComboOption.GetBool("ComboEWall").Enabled)
            {
                return;
            }

            if (dashPos.CountEnemyHeroesInRange(500) >= 3 && dashPos.CountAllyHeroesInRange(400) < 3 &&
                ComboOption.GetBool("ComboESafe").Enabled)
            {
                return;
            }

            E.Cast(dashPos);
        }
Esempio n. 25
0
        private static void AfterAttack(AttackableUnit unit, AttackableUnit ArgsTarget)
        {
            if (!unit.IsMe)
            {
                return;
            }

            if (isComboMode)
            {
                var target = ArgsTarget as AIHeroClient;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range))
                    {
                        Q.CastOnUnit(target, true);
                    }
                    else if (ComboOption.UseW && ComboOption.GetBool("ComboWAA") && W.IsReady() &&
                             target.IsValidTarget(W.Range) && target.HasBuff("jhinespotteddebuff"))
                    {
                        SpellManager.PredCast(W, target, true);
                    }
                }
            }
            else if (((isFarmMode && MyManaManager.SpellHarass) || isHarassMode) && HarassOption.HasEnouguMana)
            {
                var target = ArgsTarget as AIHeroClient;

                if (target != null && !target.IsDead)
                {
                    if (HarassOption.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range))
                    {
                        Q.CastOnUnit(target, true);
                    }
                    else if (HarassOption.UseW && W.IsReady() && target.IsValidTarget(W.Range) && target.HasBuff("jhinespotteddebuff"))
                    {
                        SpellManager.PredCast(W, target, true);
                    }
                }
            }
        }
Esempio n. 26
0
        private static void AfterAttack(AttackableUnit unit, AttackableUnit ArgsTarget)
        {
            if (!unit.IsMe)
            {
                return;
            }

            myOrbwalker.ForceTarget(null);

            if (isComboMode)
            {
                if (ComboOption.GetBool("ComboAQA"))
                {
                    var target = ArgsTarget as AIHeroClient;

                    if (target != null && !target.IsDead && !target.IsZombie && Q.IsReady())
                    {
                        QLogic(target);
                    }
                }
            }
        }
Esempio n. 27
0
        private static void Combo()
        {
            var target = MyTargetSelector.GetTarget(Q2.Range);

            if (target.IsValidTarget(Q2.Range))
            {
                if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(Q2.Range))
                {
                    QLogic(target, ComboOption.GetBool("ComboQ1").Enabled);
                }

                if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range))
                {
                    var ePred = E.GetPrediction(target);

                    if (ePred.Hitchance >= HitChance.High)
                    {
                        E.Cast(ePred.UnitPosition);
                    }
                }
            }
        }
Esempio n. 28
0
        private static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            if (Args.SData.Name.Contains("GravesChargeShot") && BurstMenu.Get <MenuKeybind>("BurstKeys").Active&& TargetSelector.GetSelectedTarget() != null && E.IsReady())
            {
                E.Cast(Me.Position.Extend(TargetSelector.GetSelectedTarget().Position, E.Range), true);
            }
            else if (Orbwalker.IsAutoAttack(Args.SData.Name) && E.IsReady())
            {
                if (isComboMode && ComboOption.GetBool("ComboEAA"))
                {
                    var target = Args.Target as AIHeroClient;

                    if (target != null && !target.IsDead && !target.IsZombie)
                    {
                        ELogic(target);
                    }
                }
                else if (isJungleClearMode && JungleClearOption.HasEnouguMana && Args.Target.ObjectType == GameObjectType.obj_AI_Minion && Args.Target.Team == GameObjectTeam.Neutral)
                {
                    if (JungleClearOption.UseE && E.IsReady())
                    {
                        var mobs =
                            MinionManager.GetMinions(Me.Position, W.Range, MinionTypes.All, MinionTeam.Neutral,
                                                     MinionOrderTypes.MaxHealth).Where(x => !x.Name.ToLower().Contains("mini")).ToArray();

                        if (mobs.Any() && mobs.FirstOrDefault() != null)
                        {
                            ELogic(mobs.FirstOrDefault());
                        }
                    }
                }
            }
        }
Esempio n. 29
0
        private static void OnAction(object sender, OrbwalkerActionArgs Args)
        {
            if (Args.Type != OrbwalkerType.BeforeAttack)
            {
                return;
            }

            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            if (Orbwalker.ActiveMode == OrbwalkerMode.Combo &&
                ComboOption.GetBool("ComboDisableAA").Enabled&&
                Args.Target.Type == GameObjectType.AIHeroClient)
            {
                if (HumanizerCardSelect.Status == HumanizerSelectStatus.Selecting &&
                    Variables.GameTimeTickCount - HumanizerCardSelect.LastWSent > 300)
                {
                    Args.Process = false;
                }
            }
        }
Esempio n. 30
0
        private static void BeforeAttack(BeforeAttackEventArgs Args)
        {
            if (!Args.Unit.IsMe)
            {
                return;
            }

            if (isComboMode)
            {
                if (MiscOption.GetBool("Forcustarget"))
                {
                    foreach (
                        var enemy in
                        ObjectManager.Heroes.Enemies.Where(
                            enemy => Orbwalker.InAutoAttackRange(enemy) && enemy.HasBuff("TristanaEChargeSound")))
                    {
                        myOrbwalker.ForceTarget(enemy);
                    }
                }

                if (ComboOption.UseQ && Q.IsReady())
                {
                    if (ComboOption.GetBool("ComboQAlways"))
                    {
                        var Target = Args.Target.ObjectType == GameObjectType.AIHeroClient
                            ? (AIHeroClient)Args.Target
                            : null;

                        if (Target != null &&
                            (Target.HasBuff("TristanaEChargeSound") || Target.HasBuff("TristanaECharge")))
                        {
                            Q.Cast();
                        }
                    }
                    else
                    {
                        Q.Cast();
                    }
                }
            }
            else if (isHarassMode)
            {
                if (MiscOption.GetBool("Forcustarget"))
                {
                    foreach (
                        var enemy in
                        ObjectManager.Heroes.Enemies.Where(
                            enemy => Orbwalker.InAutoAttackRange(enemy) && enemy.HasBuff("TristanaEChargeSound")))
                    {
                        myOrbwalker.ForceTarget(enemy);
                    }
                }
            }
            else if (isJungleClearMode && JungleClearOption.HasEnouguMana)
            {
                if (JungleClearOption.UseQ && Q.IsReady())
                {
                    var minion =
                        MinionManager.GetMinions(Orbwalker.GetRealAutoAttackRange(ObjectManager.Player),
                                                 MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

                    if (minion.Any(x => x.NetworkId == Args.Target.NetworkId))
                    {
                        Q.Cast();
                    }
                }
            }
        }