예제 #1
0
        public static void Combo()
        {
            var eTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            var UseWComboHeal     = Config.Item("UseWComboHeal").GetValue <bool>();
            var UseWHealMinHealth = Config.Item("UseWHealMinHealth").GetValue <Slider>().Value;

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                var pred = Q.GetPrediction(eTarget);
                if (pred.Hitchance >= (eTarget.IsMoving ? HitChance.High : HitChance.Medium))
                {
                    if (useR && R.IsReady())
                    {
                        if (!(UseWComboHeal && Player.GetHealthPerc() < UseWHealMinHealth))
                        {
                            R.Cast();
                        }
                    }
                    Q.Cast(pred.CastPosition, packetCast);
                }
            }

            if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            {
                if (useR && R.IsReady() && UseWComboHeal && Player.GetHealthPerc() < UseWHealMinHealth)
                {
                    R.Cast();
                }

                W.CastOnUnit(eTarget, packetCast);
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                E.CastOnUnit(eTarget, packetCast);
            }

            if (IgniteManager.CanKill(eTarget))
            {
                if (IgniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #2
0
        public static void Combo()
        {
            var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ            = Config.Item("UseQCombo").GetValue <bool>();
            var useW            = Config.Item("UseWCombo").GetValue <bool>();
            var useE            = Config.Item("UseECombo").GetValue <bool>();
            var useR            = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite       = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast      = Config.Item("PacketCast").GetValue <bool>();
            var RMaxStacksCombo = Config.Item("RMaxStacksCombo").GetValue <Slider>().Value;
            var EManaCombo      = Config.Item("EManaCombo").GetValue <Slider>().Value;

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                Q.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (!HasWBuff() && Player.AttackRange < Player.Distance(eTarget) && Player.Distance(eTarget) <= (Orbwalking.GetRealAutoAttackRange(eTarget) + W.Range) && W.IsReady() && useW)
            {
                if (packetCast)
                {
                    Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(Player.NetworkId, SpellSlot.W)).Send();
                }
                else
                {
                    W.Cast();
                }

                Player.IssueOrder(GameObjectOrder.AttackUnit, eTarget);
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE && Player.GetManaPerc() > EManaCombo)
            {
                E.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (eTarget.IsValidTarget(R.Range) && R.IsReady() && GetRStacks() < RMaxStacksCombo && useR && Player.Distance(eTarget) > Player.AttackRange)
            {
                R.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (IgniteManager.CanKill(eTarget))
            {
                if (IgniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #3
0
        public static void Combo()
        {
            var eTarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (eTarget == null)
            {
                return;
            }

            if (mustDebug)
            {
                Game.PrintChat("Combo Start");
            }

            var useQ                = Config.Item("UseQCombo").GetValue <bool>();
            var useW                = Config.Item("UseWCombo").GetValue <bool>();
            var useE                = Config.Item("UseECombo").GetValue <bool>();
            var useR                = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite           = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast          = Config.Item("PacketCast").GetValue <bool>();
            var MinPassiveStackUseE = Config.Item("MinPassiveStackUseECombo").GetValue <Slider>().Value;

            if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            {
                W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                if (Player.Distance(eTarget) > E.Range * 0.75 && GetExpungeStacks(eTarget) >= MinPassiveStackUseE)
                {
                    CastE();
                }
                else if (GetExpungeStacks(eTarget) >= 6)
                {
                    CastE();
                }
                else if (GetExpungeBuff(eTarget) != null && GetExpungeBuff(eTarget).EndTime < Game.Time + 0.2f && GetExpungeStacks(eTarget) >= MinPassiveStackUseE)
                {
                    CastE();
                }
            }

            if (IgniteManager.CanKill(eTarget))
            {
                if (IgniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #4
0
        public static void Combo()
        {
            var eTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            if (mustDebug)
            {
                Game.PrintChat("Combo Start");
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                Q.CastOnUnit(eTarget, packetCast);
            }

            if (Player.Distance(eTarget) >= 575 && !DevHelper.IsFacing(eTarget) && W.IsReady() && useW)
            {
                W.CastOnUnit(eTarget, packetCast);
                return;
            }

            if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            {
                W.CastOnUnit(eTarget, packetCast);
                return;
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                E.CastOnUnit(eTarget, packetCast);
                return;
            }

            if (IgniteManager.CanKill(eTarget))
            {
                if (IgniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #5
0
        public static void Combo()
        {
            var eTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ         = Config.Item("UseQCombo").GetValue <bool>();
            var useW         = Config.Item("UseWCombo").GetValue <bool>();
            var useE         = Config.Item("UseECombo").GetValue <bool>();
            var useR         = Config.Item("UseRCombo").GetValue <bool>();
            var PriorizeStun = Config.Item("PriorizeStunCombo").GetValue <bool>();
            var packetCast   = Config.Item("PacketCast").GetValue <bool>();

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                if (PriorizeStun)
                {
                    if (HasPassiveBuff(eTarget))
                    {
                        Q.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
                    }
                }
                else
                {
                    Q.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
                }
            }

            if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            {
                W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                E.CastOnUnit(eTarget, packetCast);
            }

            if (igniteManager.CanKill(eTarget))
            {
                if (igniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #6
0
        public static void Combo()
        {
            var eTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>() || Config.Item("UseRComboToggle").GetValue <KeyBind>().Active;
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                Q.CastOnUnit(eTarget, packetCast);
            }

            if (Player.Distance(eTarget) >= 575 && !eTarget.IsFacing(Player) && W.IsReady() && useW)
            {
                W.CastOnUnit(eTarget, packetCast);
                return;
            }

            if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            {
                W.CastOnUnit(eTarget, packetCast);
                return;
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                E.CastOnUnit(eTarget, packetCast);
                return;
            }

            if (IgniteManager.CanKill(eTarget))
            {
                if (IgniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #7
0
        public static void Combo()
        {
            var eTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                CastFirstQ(eTarget);
                CastSecondQ(eTarget);
            }

            //if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            //{
            //    if (Orbwalking.InAutoAttackRange(eTarget))
            //        W.Cast(UsePackets());
            //}

            //if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            //{
            //    if (Orbwalking.InAutoAttackRange(eTarget))
            //        E.Cast(UsePackets());
            //}

            if (useR && R.IsReady())
            {
                CastRMinHit();
            }

            if (IgniteManager.CanKill(eTarget))
            {
                if (IgniteManager.Cast(eTarget))
                {
                    Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                }
            }
        }
예제 #8
0
        public static void Combo()
        {
            var eTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var UseEQCombo = Config.Item("UseEQCombo").GetValue <bool>();

            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            if (IsSoloQMode)
            {
                if (useQ)
                {
                    CastQ();
                }
                if (useW)
                {
                    CastWEnemy();
                }
                if (useE)
                {
                    CastEEnemy();
                }
                if (UseEQCombo)
                {
                    CastEQ();
                }

                if (IgniteManager.CanKill(eTarget))
                {
                    if (IgniteManager.Cast(eTarget))
                    {
                        Game.PrintChat(string.Format("Ignite Combo KS -> {0} ", eTarget.SkinName));
                    }
                }
            }

            if (IsSupportMode)
            {
                if (useW)
                {
                    CastWAlly();
                }
                if (useE)
                {
                    CastEAlly();
                }
                if (useQ)
                {
                    CastQ();
                }
                if (UseEQCombo)
                {
                    CastEQ();
                }
            }
        }
예제 #9
0
        public static void Combo()
        {
            var eTarget = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite  = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            var RMinHit       = Config.Item("RMinHit").GetValue <Slider>().Value;
            var RMinHitFacing = Config.Item("RMinHitFacing").GetValue <Slider>().Value;

            if (eTarget.IsValidTarget(R.Range) && R.IsReady() && useR)
            {
                var castPred      = R.GetPrediction(eTarget, true, R.Range);
                var enemiesHit    = DevHelper.GetEnemyList().Where(x => R.WillHit(x, castPred.CastPosition)).ToList();
                var enemiesFacing = enemiesHit.Where(x => x.IsFacing()).ToList();

                if (mustDebug)
                {
                    Game.PrintChat("Hit:{0} Facing:{1}", enemiesHit.Count(), enemiesFacing.Count());
                }

                if (enemiesHit.Count() >= RMinHit && enemiesFacing.Count() >= RMinHitFacing)
                {
                    R.Cast(castPred.CastPosition, packetCast);
                }
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                if (eTarget.HasBuffOfType(BuffType.Poison) || Player.GetSpellDamage(eTarget, SpellSlot.E) > eTarget.Health)
                {
                    E.CastOnUnit(eTarget, packetCast);
                }
            }

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                Q.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (Config.Item("UseWCombo").GetValue <bool>())
            {
                useW = (!eTarget.HasBuffOfType(BuffType.Poison) || (!eTarget.IsValidTarget(Q.Range) && eTarget.IsValidTarget(W.Range)));
            }

            if (eTarget.IsValidTarget(W.Range) && W.IsReady() && useW)
            {
                W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            if (IgniteManager.HasIgnite && IgniteManager.IsReady() && IgniteManager.CanKill(eTarget))
            {
                IgniteManager.Cast(eTarget);
            }
        }