예제 #1
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            Obj_AI_Hero t;

            if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    Q.Cast(t);
                }
            }

            if (ComboActive || HarassActive)
            {
                var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
                var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));

                if (LXOrbwalker.CanMove())
                {
                    if (Dfg.IsReady())
                    {
                        t = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Magical);
                        Dfg.Cast(t);
                    }

                    if (Q.IsReady() && useQ)
                    {
                        t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                        if (t != null)
                        {
                            Q.Cast(t);
                        }
                    }

                    if (W.IsReady() && useW)
                    {
                        t = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Physical);
                        if (t != null)
                        {
                            W.Cast(t);
                        }
                    }
                }
            }

            if (!R.IsReady() || !GetValue <KeyBind>("CastR").Active)
            {
                return;
            }
            t = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical);
            if (t != null)
            {
                R.Cast(t);
            }
        }
예제 #2
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if ((!ComboActive && !HarassActive) || !LXOrbwalker.CanMove())
            {
                return;
            }

            var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

            if (E.IsReady() && useE)
            {
                foreach (
                    var hero in from hero in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(550f))
                    let prediction = E.GetPrediction(hero)
                                     where NavMesh.GetCollisionFlags(
                        prediction.UnitPosition.To2D()
                        .Extend(ObjectManager.Player.ServerPosition.To2D(),
                                -GetValue <Slider>("PushDistance").Value)
                        .To3D())
                                     .HasFlag(CollisionFlags.Wall) || NavMesh.GetCollisionFlags(
                        prediction.UnitPosition.To2D()
                        .Extend(ObjectManager.Player.ServerPosition.To2D(),
                                -(GetValue <Slider>("PushDistance").Value / 2))
                        .To3D())
                                     .HasFlag(CollisionFlags.Wall)
                                     select hero)
                {
                    E.Cast(hero);
                }
            }
        }
예제 #3
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (GetValue <bool>("AutoQ"))
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(h => h.IsValidTarget(Q.Range)))
                {
                    Q.CastIfHitchanceEquals(enemy, HitChance.Immobile);
                }
            }


            if (ComboActive || HarassActive)
            {
                var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));

                if (LXOrbwalker.CanMove())
                {
                    if (Q.IsReady() && useQ)
                    {
                        var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                        if (t != null)
                        {
                            Q.Cast(t, false, true);
                        }
                    }
                }
            }
        }
예제 #4
0
        public static void escape()
        {
            if (LXOrbwalker.CanMove())
            {
                LXOrbwalker.Orbwalk(Game.CursorPos, null);
            }

            List <Obj_AI_Hero> enemy = (from champ in ObjectManager.Get <Obj_AI_Hero>()
                                        where Player.Distance(champ.ServerPosition) < 2500 && champ.IsEnemy && champ.IsValid
                                        select champ).ToList();

            enemy.OrderBy(x => rObj.Position.Distance(x.ServerPosition));

            if (Q.IsReady() && Player.Distance(enemy.FirstOrDefault()) <= Q.Range && enemy != null &&
                Q.GetPrediction(enemy.FirstOrDefault()).Hitchance >= HitChance.High && !qFirstCreated)
            {
                Q.Cast(enemy.FirstOrDefault(), packets());
                qFirstCreated = true;
            }

            if (enemy != null && W.IsReady() && Player.Distance(enemy.FirstOrDefault()) <= W.Range)
            {
                castWEscape(enemy.FirstOrDefault());
            }
        }
예제 #5
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    Q.Cast(t);
                }
            }

            if (E.IsReady() && GetValue <KeyBind>("UseETH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                var t = LXOrbwalker.GetPossibleTarget() ??
                        SimpleTs.GetTarget(E.Range + E.Range / 2, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    E.CastIfHitchanceEquals(t, HitChance.High);
                }
            }

            if (ComboActive || HarassActive)
            {
                var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
                var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
                var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

                if (LXOrbwalker.CanMove())
                {
                    if (Q.IsReady() && useQ)
                    {
                        var vTarget = LXOrbwalker.GetPossibleTarget() ??
                                      SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                        if (vTarget != null)
                        {
                            Q.CastOnUnit(vTarget);
                        }
                    }

                    if (E.IsReady() && useE)
                    {
                        var vTarget = LXOrbwalker.GetPossibleTarget() ??
                                      SimpleTs.GetTarget(E.Range + E.Range / 2, SimpleTs.DamageType.Physical);
                        if (vTarget != null)
                        {
                            E.CastIfHitchanceEquals(vTarget, HitChance.High);
                        }
                    }
                }
            }
        }
예제 #6
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    Q.Cast(t, false, true);
                }
            }

            if ((!ComboActive && !HarassActive) || !LXOrbwalker.CanMove())
            {
                return;
            }
            var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
            var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
            var useR = GetValue <bool>("UseR" + (ComboActive ? "C" : "H"));

            if (Q.IsReady() && useQ)
            {
                var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    Q.Cast(t, false, true);
                }
            }

            if (W.IsReady() && useW)
            {
                var t = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    W.Cast(t, false, true);
                }
            }

            if (R.IsReady() && useR)
            {
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(
                        hero =>
                        hero.IsValidTarget(R.Range) &&
                        ObjectManager.Player.GetSpellDamage(hero, SpellSlot.R, 1) - 20 > hero.Health))
                {
                    R.Cast(hero, false, true);
                }
            }
        }
예제 #7
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                var qTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (Q.IsReady() && qTarget.IsValidTarget())
                {
                    Q.CastOnUnit(qTarget);
                }
            }

            if (LXOrbwalker.CanMove() && (ComboActive || HarassActive))
            {
                var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
                if (useQ)
                {
                    var qTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                    if (Q.IsReady() && qTarget.IsValidTarget())
                    {
                        Q.CastOnUnit(qTarget);
                    }
                }
            }

            if (GetValue <bool>("UseQM") && Q.IsReady())
            {
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(
                        hero =>
                        hero.IsValidTarget(Q.Range) &&
                        ObjectManager.Player.GetSpellDamage(hero, SpellSlot.Q) - 20 > hero.Health))
                {
                    Q.CastOnUnit(hero);
                }
            }

            if (GetValue <bool>("UseRC") && R.IsReady() && ComboActive)
            {
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(
                        hero =>
                        hero.IsValidTarget(R.Range)))
                {
                    R.Cast(hero, false, true);
                }
            }
        }
예제 #8
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (LXOrbwalker.CanMove() && (ComboActive || HarassActive))
            {
                var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
                var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

                if (useW)
                {
                    var wTarget = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Physical);
                    if (W.IsReady() && wTarget.IsValidTarget())
                    {
                        W.Cast(wTarget, false, true);
                    }
                }

                if (useE && E.IsReady())
                {
                    var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                    if (eTarget.IsValidTarget(E.Range))
                    {
                        foreach (var buff in eTarget.Buffs.Where(buff => buff.DisplayName.ToLower() == "twitchdeadlyvenom").Where(buff => buff.Count == 6))
                        {
                            E.Cast();
                        }
                    }
                }
            }

            if (GetValue <bool>("UseEM") && E.IsReady())
            {
                foreach (var hero in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(E.Range) && (ObjectManager.Player.GetSpellDamage(hero, SpellSlot.E) - 10 > hero.Health)))
                {
                    E.Cast();
                }
            }
        }
예제 #9
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (!LXOrbwalker.CanMove())
            {
                return;
            }

            //Update Q range depending on level; 600 + 5 × ( Tristana's level - 1)/* dont waste your Q for only 1 or 2 hits. */
            //Update E and R range depending on level; 630 + 9 × ( Tristana's level - 1)
            Q.Range = 600 + 5 * (ObjectManager.Player.Level - 1);
            E.Range = 630 + 9 * (ObjectManager.Player.Level - 1);
            R.Range = 630 + 9 * (ObjectManager.Player.Level - 1);

            if (GetValue <KeyBind>("UseETH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                if (E.IsReady() && eTarget.IsValidTarget())
                {
                    E.CastOnUnit(eTarget);
                }
            }

            if (ComboActive || HarassActive)
            {
                var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

                if (useE)
                {
                    var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                    if (E.IsReady() && eTarget.IsValidTarget())
                    {
                        E.CastOnUnit(eTarget);
                    }
                }

                if (Dfg.IsReady())
                {
                    var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical);
                    Dfg.Cast(eTarget);
                }
            }

            //Killsteal
            if (!ComboActive || !GetValue <bool>("UseRM") || !R.IsReady())
            {
                return;
            }
            foreach (
                var hero in
                ObjectManager.Get <Obj_AI_Hero>()
                .Where(
                    hero =>
                    hero.IsValidTarget(R.Range) &&
                    ObjectManager.Player.GetSpellDamage(hero, SpellSlot.R) - 50 > hero.Health))
            {
                R.CastOnUnit(hero);
            }
        }
예제 #10
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (R1.IsReady() && GetValue <bool>("UseRM"))
            {
                var bigRocket = HasBigRocket();
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(
                        hero =>
                        hero.IsValidTarget(bigRocket ? R2.Range : R1.Range) &&
                        R1.GetDamage(hero) * (bigRocket ? 1.5f : 1f) > hero.Health))
                {
                    if (bigRocket)
                    {
                        R2.Cast(hero, false, true);
                    }
                    else
                    {
                        R1.Cast(hero, false, true);
                    }
                }
            }

            if ((!ComboActive && !HarassActive) || !LXOrbwalker.CanMove())
            {
                return;
            }

            var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
            var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));
            var useR = GetValue <bool>("UseR" + (ComboActive ? "C" : "H"));
            var rLim = GetValue <Slider>("Rlim" + (ComboActive ? "C" : "H")).Value;

            if (useQ && Q.IsReady())
            {
                var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);
                if (t != null)
                {
                    if (Q.Cast(t, false, true) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }
            }

            if (useE && E.IsReady())
            {
                var t = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    if (E.Cast(t, false, true) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }
            }

            if (useR && R1.IsReady() && ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Ammo > rLim)
            {
                var bigRocket = HasBigRocket();
                var t         = SimpleTs.GetTarget(bigRocket ? R2.Range : R1.Range, SimpleTs.DamageType.Magical);
                if (t != null)
                {
                    if (bigRocket)
                    {
                        R2.Cast(t, false, true);
                    }
                    else
                    {
                        R1.Cast(t, false, true);
                    }
                }
            }
        }
예제 #11
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            R.Range = 500 * R.Level + 1500;

            Obj_AI_Hero vTarget;

            if (R.IsReady())
            {
                vTarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical);
                if (vTarget.IsValidTarget(R.Range) && vTarget.Health <= R.GetDamage(vTarget))
                {
                    if (GetValue <KeyBind>("UltHelp").Active)
                    {
                        R.Cast(vTarget);
                    }

                    UltTarget = vTarget.ChampionName;
                    ShowUlt   = true;
                }
                else
                {
                    ShowUlt = false;
                }
            }
            else
            {
                ShowUlt = false;
            }

            if (GetValue <KeyBind>("Dash").Active&& E.IsReady())
            {
                var pos = ObjectManager.Player.ServerPosition.To2D().Extend(Game.CursorPos.To2D(), -300).To3D();
                E.Cast(pos, true);
            }

            if (GetValue <KeyBind>("UseEQC").Active&& E.IsReady() && Q.IsReady())
            {
                vTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                if (vTarget.IsValidTarget(E.Range))
                {
                    E.Cast(vTarget);
                    Q.Cast(vTarget, false, true);
                }
            }
            // PQ you broke it D:
            if ((!ComboActive && !HarassActive) || !LXOrbwalker.CanMove())
            {
                return;
            }

            var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
            var useE = GetValue <bool>("UseEC");
            var useR = GetValue <bool>("UseRC");

            if (Q.IsReady() && useQ)
            {
                vTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (vTarget != null)
                {
                    Q.Cast(vTarget, false, true);
                }
            }
            else if (E.IsReady() && useE)
            {
                vTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                if (vTarget != null && vTarget.Health <= E.GetDamage(vTarget))
                {
                    E.Cast(vTarget);
                }
            }

            if (R.IsReady() && useR)
            {
                vTarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical);
                if (vTarget != null && vTarget.Health <= R.GetDamage(vTarget) &&
                    !LXOrbwalker.InAutoAttackRange(vTarget))
                {
                    R.CastOnUnit(vTarget);
                }
            }
        }
예제 #12
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            UltimateBuffStacks = GetUltimateBuffStacks();
            W.Range            = 110 + 20 * ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).Level;
            R.Range            = 900 + 300 * ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Level;

            if (R.IsReady() && GetValue <bool>("UseRM"))
            {
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(
                        hero => hero.IsValidTarget(R.Range) && R.GetDamage(hero) > hero.Health))
                {
                    R.Cast(hero, false, true);
                }
            }

            if ((!ComboActive && !HarassActive) ||
                (!LXOrbwalker.CanMove() &&
                 !(ObjectManager.Player.BaseAbilityDamage + ObjectManager.Player.FlatMagicDamageMod > 100)))
            {
                return;
            }

            var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
            var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
            var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));
            var useR = GetValue <bool>("UseR" + (ComboActive ? "C" : "H"));
            var rLim = GetValue <Slider>("Rlim" + (ComboActive ? "C" : "H")).Value;

            if (useW && W.IsReady())
            {
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(hero => hero.IsValidTarget(LXOrbwalker.GetAutoAttackRange(hero) + W.Range)))
                {
                    W.CastOnUnit(ObjectManager.Player);
                }
            }

            if (useQ && Q.IsReady())
            {
                var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);
                if (t != null)
                {
                    if (Q.Cast(t) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }
            }

            if (useE && E.IsReady())
            {
                var t = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical);
                if (t != null)
                {
                    if (E.Cast(t, false, true) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }
            }

            if (useR && R.IsReady() && UltimateBuffStacks < rLim)
            {
                var t = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical);
                if (t != null)
                {
                    R.Cast(t, false, true);
                }
            }
        }
예제 #13
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            var autoEi = GetValue <bool>("AutoEI");
            var autoEs = GetValue <bool>("AutoES");
            var autoEd = GetValue <bool>("AutoED");

            if (autoEs || autoEi || autoEd)
            {
                foreach (
                    var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.IsValidTarget(E.Range - 150)))
                {
                    if (autoEs && E.IsReady() && enemy.HasBuffOfType(BuffType.Slow))
                    {
                        var castPosition =
                            Prediction.GetPrediction(
                                new PredictionInput
                        {
                            Unit   = enemy,
                            Delay  = 0.7f,
                            Radius = 120f,
                            Speed  = 1750f,
                            Range  = 900f,
                            Type   = SkillshotType.SkillshotCircle,
                        }).CastPosition;


                        if (GetSlowEndTime(enemy) >= (Game.Time + E.Delay + 0.5f))
                        {
                            E.Cast(castPosition);
                        }
                    }

                    if (autoEi && E.IsReady() &&
                        (enemy.HasBuffOfType(BuffType.Stun) || enemy.HasBuffOfType(BuffType.Snare) ||
                         enemy.HasBuffOfType(BuffType.Charm) || enemy.HasBuffOfType(BuffType.Fear) ||
                         enemy.HasBuffOfType(BuffType.Taunt)))
                    {
                        E.CastIfHitchanceEquals(enemy, HitChance.High);
                    }

                    if (autoEd && E.IsReady() && enemy.IsDashing())
                    {
                        E.CastIfHitchanceEquals(enemy, HitChance.Dashing);
                    }
                }
            }

            if (GetValue <KeyBind>("CastR").Active&& R.IsReady())
            {
                var target = SimpleTs.GetTarget(1500, SimpleTs.DamageType.Physical);

                if (target.IsValidTarget())
                {
                    if (ObjectManager.Player.GetSpellDamage(target, SpellSlot.R) > target.Health)
                    {
                        R.Cast(target);
                    }
                }
            }

            if (GetValue <bool>("SwapQ") && FishBoneActive &&
                (LaneClearActive ||
                 (HarassActive && SimpleTs.GetTarget(675f + QAddRange, SimpleTs.DamageType.Physical) == null)))
            {
                Q.Cast();
            }

            if ((!ComboActive && !HarassActive) || !LXOrbwalker.CanMove())
            {
                return;
            }

            var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
            var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
            var useR = GetValue <bool>("UseRC");

            if (useW && W.IsReady())
            {
                var t    = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Physical);
                var minW = GetValue <Slider>("MinWRange").Value;

                if (t.IsValidTarget() && GetRealDistance(t) >= minW)
                {
                    if (W.Cast(t) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }
            }

            if (useQ)
            {
                foreach (var t in
                         ObjectManager.Get <Obj_AI_Hero>()
                         .Where(t => t.IsValidTarget(GetRealPowPowRange(t) + QAddRange + 20f)))
                {
                    var swapDistance = GetValue <bool>("SwapDistance");
                    var swapAoe      = GetValue <bool>("SwapAOE");
                    var distance     = GetRealDistance(t);
                    var powPowRange  = GetRealPowPowRange(t);

                    if (swapDistance && Q.IsReady())
                    {
                        if (distance > powPowRange && !FishBoneActive)
                        {
                            if (Q.Cast())
                            {
                                return;
                            }
                        }
                        else if (distance < powPowRange && FishBoneActive)
                        {
                            if (Q.Cast())
                            {
                                return;
                            }
                        }
                    }

                    if (swapAoe && Q.IsReady())
                    {
                        if (distance > powPowRange && PowPowStacks > 2 && !FishBoneActive && CountEnemies(t, 150) > 1)
                        {
                            if (Q.Cast())
                            {
                                return;
                            }
                        }
                    }
                }
            }

            if (useR && R.IsReady())
            {
                var checkRok = GetValue <bool>("ROverKill");
                var minR     = GetValue <Slider>("MinRRange").Value;
                var maxR     = GetValue <Slider>("MaxRRange").Value;
                var t        = SimpleTs.GetTarget(maxR, SimpleTs.DamageType.Physical);

                if (t.IsValidTarget())
                {
                    var distance = GetRealDistance(t);

                    if (!checkRok)
                    {
                        if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R, 1) > t.Health)
                        {
                            if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted)
                            {
                            }
                        }
                    }
                    else if (distance > minR)
                    {
                        var aDamage     = ObjectManager.Player.GetAutoAttackDamage(t);
                        var wDamage     = ObjectManager.Player.GetSpellDamage(t, SpellSlot.W);
                        var rDamage     = ObjectManager.Player.GetSpellDamage(t, SpellSlot.R);
                        var powPowRange = GetRealPowPowRange(t);

                        if (distance < (powPowRange + QAddRange) && !(aDamage * 3.5 > t.Health))
                        {
                            if (!W.IsReady() || !(wDamage > t.Health) || W.GetPrediction(t).CollisionObjects.Count > 0)
                            {
                                if (CountAlliesNearTarget(t, 500) <= 3)
                                {
                                    if (rDamage > t.Health && !ObjectManager.Player.IsAutoAttacking &&
                                        !ObjectManager.Player.IsChanneling)
                                    {
                                        if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted)
                                        {
                                        }
                                    }
                                }
                            }
                        }
                        else if (distance > (powPowRange + QAddRange))
                        {
                            if (!W.IsReady() || !(wDamage > t.Health) || distance > W.Range ||
                                W.GetPrediction(t).CollisionObjects.Count > 0)
                            {
                                if (CountAlliesNearTarget(t, 500) <= 3)
                                {
                                    if (rDamage > t.Health && !ObjectManager.Player.IsAutoAttacking &&
                                        !ObjectManager.Player.IsChanneling)
                                    {
                                        if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted)
                                        {
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #14
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active)
            {
                if (ObjectManager.Player.HasBuff("Recall"))
                {
                    return;
                }
                var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                if (t != null)
                {
                    Q.Cast(t, false, true);
                }
            }

            if (ComboActive || HarassActive)
            {
                var useQ  = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));
                var useE  = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));
                var useET = GetValue <bool>("UseET" + (ComboActive ? "C" : "H"));

                if (LXOrbwalker.CanMove())
                {
                    if (E.IsReady() && useE)
                    {
                        var vTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);
                        if (vTarget != null && !isHePantheon(vTarget))
                        {
                            if (vTarget.Health <= E.GetDamage(vTarget) + Q.GetDamage(vTarget) * 2)
                            {
                                E.CastOnUnit(vTarget);
                            }
                            else if (!useET)
                            {
                                E.CastOnUnit(vTarget);
                            }
                            else if (!Utility.UnderTurret(vTarget))
                            {
                                E.CastOnUnit(vTarget);
                            }
                        }
                    }

                    if (Q.IsReady() && useQ)
                    {
                        var vTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
                        if (vTarget != null)
                        {
                            Q.Cast(vTarget);
                        }
                    }

                    if (IsValorMode() && !E.IsReady())
                    {
                        var vTarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical);
                        if (vTarget != null)
                        {
                            calculateValorDamage();
                            if (vTarget.Health >= ValorMinDamage && vTarget.Health <= ValorMaxDamage)
                            {
                                R.Cast();
                            }
                        }
                    }
                }
            }
        }