Exemplo n.º 1
0
        public static void Harass()
        {
            var eTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (eTarget == null)
            {
                return;
            }

            var useW       = Config.Item("UseWHarass").GetValue <bool>();
            var useE       = Config.Item("UseEHarass").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();
            var ManaHarass = Config.Item("ManaHarass").GetValue <Slider>().Value;

            if (Player.GetManaPerc() < ManaHarass)
            {
                return;
            }

            //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());
            //}
        }
Exemplo n.º 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));
                }
            }
        }
Exemplo n.º 3
0
        public static void Harass()
        {
            var eTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ          = Config.Item("UseQHarass").GetValue <bool>();
            var useW          = Config.Item("UseWHarass").GetValue <bool>();
            var useE          = Config.Item("UseEHarass").GetValue <bool>();
            var packetCast    = Config.Item("PacketCast").GetValue <bool>();
            var HarassMinMana = Config.Item("HarassMinMana").GetValue <Slider>().Value;

            if (mustDebug)
            {
                Game.PrintChat("Harass Target -> " + eTarget.SkinName);
            }

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

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

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

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

            if (mustDebug)
            {
                Game.PrintChat("Harass Finish");
            }
        }
Exemplo n.º 4
0
        public static void WaveClear()
        {
            var useQ          = Config.Item("UseQLaneClear").GetValue <bool>();
            var useW          = Config.Item("UseWLaneClear").GetValue <bool>();
            var packetCast    = Config.Item("PacketCast").GetValue <bool>();
            var ManaLaneClear = Config.Item("ManaLaneClear").GetValue <Slider>().Value;

            if (Q.IsReady() && useQ)
            {
                var allMinions    = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Enemy).ToList();
                var minionLastHit = allMinions.Where(x => HealthPrediction.LaneClearHealthPrediction(x, (int)Q.Delay * 1000) < Player.GetSpellDamage(x, SpellSlot.Q) * 0.8f).OrderBy(x => x.Health);

                if (minionLastHit.Count() > 0)
                {
                    var unit = minionLastHit.First();
                    Q.CastOnUnit(unit, packetCast);
                }
            }

            if (W.IsReady() && useW && Player.GetManaPerc() >= ManaLaneClear)
            {
                var allMinionsW = MinionManager.GetMinions(Player.ServerPosition, W.Range, MinionTypes.All, MinionTeam.Enemy).ToList();

                if (allMinionsW.Count > 0)
                {
                    var farm = W.GetCircularFarmLocation(allMinionsW, W.Width * 0.8f);
                    if (farm.MinionsHit >= 3)
                    {
                        W.Cast(farm.Position, packetCast);
                    }
                }
            }
        }
Exemplo n.º 5
0
        public static void WaveClear()
        {
            //var useQ = Config.Item("UseQLaneClear").GetValue<bool>();
            var useW          = Config.Item("UseWLaneClear").GetValue <bool>();
            var useE          = Config.Item("UseELaneClear").GetValue <bool>();
            var packetCast    = Config.Item("PacketCast").GetValue <bool>();
            var ManaLaneClear = Config.Item("ManaLaneClear").GetValue <Slider>().Value;


            if (W.IsReady() && useW && Player.GetManaPerc() >= ManaLaneClear)
            {
                var allMinionsW = MinionManager.GetMinions(Player.ServerPosition, W.Range + W.Width, MinionTypes.All, MinionTeam.Enemy).ToList();

                if (allMinionsW.Any())
                {
                    var farm = W.GetCircularFarmLocation(allMinionsW, W.Width * 0.8f);
                    if (farm.MinionsHit >= 2)
                    {
                        W.Cast(farm.Position, packetCast);
                        return;
                    }
                }
            }

            if (E.IsReady() && useE && Player.GetManaPerc() >= ManaLaneClear)
            {
                var minionList = MinionManager.GetMinions(Player.Position, E.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health)
                                 .Where(x => HasPassiveBuff(x));

                var jungleList = MinionManager.GetMinions(Player.Position, E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)
                                 .Where(x => HasPassiveBuff(x));

                if (jungleList.Any())
                {
                    E.CastOnUnit(jungleList.First(), packetCast);
                }
                else if (minionList.Any())
                {
                    E.CastOnUnit(jungleList.First(), packetCast);
                }
            }
        }
Exemplo n.º 6
0
        public static void WaveClear()
        {
            var useQ = Config.Item("UseQLaneClear").GetValue <bool>();
            var useW = Config.Item("UseWLaneClear").GetValue <bool>();
            var useE = Config.Item("UseELaneClear").GetValue <bool>();
            var UseELastHitLaneClear            = Config.Item("UseELastHitLaneClear").GetValue <bool>();
            var UseELastHitLaneClearNonPoisoned = Config.Item("UseELastHitLaneClearNonPoisoned").GetValue <bool>();
            var packetCast       = Config.Item("PacketCast").GetValue <bool>();
            var LaneClearMinMana = Config.Item("LaneClearMinMana").GetValue <Slider>().Value;

            if (Q.IsReady() && useQ && Player.GetManaPerc() >= LaneClearMinMana)
            {
                var allMinionsQ            = MinionManager.GetMinions(Player.Position, Q.Range + Q.Width, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health).ToList();
                var allMinionsQNonPoisoned = allMinionsQ.Where(x => !x.HasBuffOfType(BuffType.Poison)).ToList();

                if (allMinionsQNonPoisoned.Any())
                {
                    var farmNonPoisoned = Q.GetCircularFarmLocation(allMinionsQNonPoisoned, Q.Width * 0.8f);
                    if (farmNonPoisoned.MinionsHit >= 3)
                    {
                        Q.Cast(farmNonPoisoned.Position, packetCast);
                        dtLastQCast = Environment.TickCount;
                        return;
                    }
                }

                if (allMinionsQ.Any())
                {
                    var farmAll = Q.GetCircularFarmLocation(allMinionsQ, Q.Width * 0.8f);
                    //if (farmAll.MinionsHit >= 2 || allMinionsQ.Count == 1)
                    {
                        Q.Cast(farmAll.Position, packetCast);
                        dtLastQCast = Environment.TickCount;
                        return;
                    }
                }
            }

            if (W.IsReady() && useW && Player.GetManaPerc() >= LaneClearMinMana && Environment.TickCount > dtLastQCast + Q.Delay * 1000)
            {
                var allMinionsW            = MinionManager.GetMinions(Player.ServerPosition, W.Range + W.Width, MinionTypes.All).ToList();
                var allMinionsWNonPoisoned = allMinionsW.Where(x => !x.HasBuffOfType(BuffType.Poison)).ToList();

                if (allMinionsWNonPoisoned.Any())
                {
                    var farmNonPoisoned = W.GetCircularFarmLocation(allMinionsWNonPoisoned, W.Width * 0.8f);
                    if (farmNonPoisoned.MinionsHit >= 3)
                    {
                        W.Cast(farmNonPoisoned.Position, packetCast);
                        return;
                    }
                }

                if (allMinionsW.Any())
                {
                    var farmAll = W.GetCircularFarmLocation(allMinionsW, W.Width * 0.8f);
                    if (farmAll.MinionsHit >= 2 || allMinionsW.Count == 1)
                    {
                        W.Cast(farmAll.Position, packetCast);
                        return;
                    }
                }
            }

            if (E.IsReady() && useE)
            {
                MinionList = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health);

                foreach (var minion in MinionList.Where(x => UseELastHitLaneClearNonPoisoned || x.HasBuffOfType(BuffType.Poison)))
                {
                    var buffEndTime = UseELastHitLaneClearNonPoisoned ? float.MaxValue : GetPoisonBuffEndTime(minion);
                    if (buffEndTime > Game.Time + E.Delay)
                    {
                        if (UseELastHitLaneClear)
                        {
                            //var landTime = Q.Delay + 1000 * Player.Distance(minion) / 1400;
                            if (GetEDamageToMinion(minion) * 0.9 > minion.Health)
                            {
                                CastE(minion);
                            }
                        }
                        else if (Player.GetManaPerc() >= LaneClearMinMana)
                        {
                            CastE(minion);
                        }
                    }
                    else
                    {
                        if (mustDebug)
                        {
                            Game.PrintChat("DONT CAST : buffEndTime " + buffEndTime);
                        }
                    }
                }
            }
        }
Exemplo n.º 7
0
        public static void WaveClear()
        {
            var MinionList = MinionManager.GetMinions(Player.Position, Q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health)
                             .Where(x => !MinionListToIgnore.Contains(x.NetworkId)).ToList();

            var JungleList = MinionManager.GetMinions(Player.Position, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            var UseLaneClearLastHit = Config.Item("UseLaneClearLastHit").GetValue <bool>();
            var useQ          = Config.Item("UseQLaneClear").GetValue <bool>();
            var useW          = Config.Item("UseWLaneClear").GetValue <bool>();
            var useE          = Config.Item("UseELaneClear").GetValue <bool>();
            var ManaLaneClear = Config.Item("ManaLaneClear").GetValue <Slider>().Value;
            var packetCast    = Config.Item("PacketCast").GetValue <bool>();

            if (Q.IsReady() && useQ && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(Q.Range));
                if (queryJungle.Any())
                {
                    var mob = queryJungle.First();
                    Q.CastOnUnit(mob, packetCast);
                }

                var queryMinion = MinionList.Where(x => x.IsValidTarget(Q.Range));
                if (queryMinion.Any())
                {
                    var mob = queryMinion.First();
                    if (UseLaneClearLastHit)
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)Q.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.Q) * 0.9)
                        {
                            Q.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                    }
                    else
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)Q.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.Q) * 0.9)
                        {
                            Q.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                        else
                        {
                            mob = queryMinion.Last();
                            Q.CastOnUnit(mob, packetCast);
                            MinionList.Remove(mob);
                        }
                    }
                }
            }

            if (W.IsReady() && useW && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(W.Range));
                if (queryJungle.Any())
                {
                    var mob = queryJungle.First();
                    W.CastOnUnit(mob, packetCast);
                }

                var query = MinionList.Where(x => x.IsValidTarget(W.Range));
                if (query.Any())
                {
                    var mob = query.First();
                    if (UseLaneClearLastHit)
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)W.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.W) * 0.9)
                        {
                            W.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                    }
                    else
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)W.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.W) * 0.9)
                        {
                            W.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                        else
                        {
                            mob = query.Last();
                            W.CastOnUnit(mob, packetCast);
                            MinionList.Remove(mob);
                        }
                    }
                }
            }

            if (E.IsReady() && useE && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(E.Range));
                if (queryJungle.Any())
                {
                    var mob = queryJungle.First();
                    E.CastOnUnit(mob, packetCast);
                }

                var query = MinionList.Where(x => x.IsValidTarget(E.Range));
                if (query.Any())
                {
                    var mob = query.First();
                    if (UseLaneClearLastHit)
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)E.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.E) * 0.9)
                        {
                            E.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                    }
                    else
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)E.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.E) * 0.9)
                        {
                            E.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                        else
                        {
                            mob = query.Last();
                            E.CastOnUnit(mob, packetCast);
                            MinionList.Remove(mob);
                        }
                    }
                }
            }
        }
Exemplo n.º 8
0
        public static void WaveClear()
        {
            var MinionList = MinionManager.GetMinions(Player.Position, Q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health);
            var JungleList = MinionManager.GetMinions(Player.Position, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

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

            var useQ          = Config.Item("UseQLaneClear").GetValue <bool>();
            var useW          = Config.Item("UseWLaneClear").GetValue <bool>();
            var useE          = Config.Item("UseELaneClear").GetValue <bool>();
            var ManaLaneClear = Config.Item("ManaLaneClear").GetValue <Slider>().Value;
            var packetCast    = Config.Item("PacketCast").GetValue <bool>();

            if (Q.IsReady() && useQ && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(Q.Range));
                if (queryJungle.Count() > 0)
                {
                    var mob = queryJungle.First();
                    Q.CastOnUnit(mob, packetCast);
                }

                var queryMinion = MinionList.Where(x => x.IsValidTarget(Q.Range) && x.Health < Player.GetSpellDamage(x, SpellSlot.Q) * 0.9);
                if (queryMinion.Count() > 0)
                {
                    var mob = queryMinion.First();
                    Q.CastOnUnit(mob, packetCast);
                    MinionList.Remove(mob);
                }
            }

            if (W.IsReady() && useW && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(W.Range));
                if (queryJungle.Count() > 0)
                {
                    var mob = queryJungle.First();
                    W.CastOnUnit(mob, packetCast);
                }

                var query = MinionList.Where(x => x.IsValidTarget(W.Range) && x.Health < Player.GetSpellDamage(x, SpellSlot.W) * 0.9);
                if (query.Count() > 0)
                {
                    var mob = query.First();
                    W.CastOnUnit(mob, packetCast);
                    MinionList.Remove(mob);
                }
            }

            if (E.IsReady() && useE && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(E.Range));
                if (queryJungle.Count() > 0)
                {
                    var mob = queryJungle.First();
                    E.CastOnUnit(mob, packetCast);
                }

                var query = MinionList.Where(x => x.IsValidTarget(E.Range) && x.Health < Player.GetSpellDamage(x, SpellSlot.E) * 0.9);
                if (query.Count() > 0)
                {
                    var mob = query.First();
                    E.CastOnUnit(mob, packetCast);
                    MinionList.Remove(mob);
                }
            }
        }
Exemplo n.º 9
0
        public static void WaveClear()
        {
            var useQ = Config.Item("UseQLaneClear").GetValue <bool>();
            var useW = Config.Item("UseWLaneClear").GetValue <bool>();
            var useE = Config.Item("UseELaneClear").GetValue <bool>();
            var UseELastHitLaneClear = Config.Item("UseELastHitLaneClear").GetValue <bool>();
            var packetCast           = Config.Item("PacketCast").GetValue <bool>();
            var LaneClearMinMana     = Config.Item("LaneClearMinMana").GetValue <Slider>().Value;

            if (Q.IsReady() && useQ && Player.GetManaPerc() >= LaneClearMinMana)
            {
                var allMinionsQ            = MinionManager.GetMinions(Player.Position, Q.Range + Q.Width, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health).ToList();
                var allMinionsQNonPoisoned = allMinionsQ.Where(x => !x.HasBuffOfType(BuffType.Poison)).ToList();

                if (allMinionsQNonPoisoned.Count > 0)
                {
                    var farmNonPoisoned = Q.GetCircularFarmLocation(allMinionsQNonPoisoned, Q.Width * 0.8f);
                    if (farmNonPoisoned.MinionsHit >= 3)
                    {
                        Q.Cast(farmNonPoisoned.Position, packetCast);
                        dtLastQCast = DateTime.Now;
                        return;
                    }
                }

                if (allMinionsQ.Count > 0)
                {
                    var farmAll = Q.GetCircularFarmLocation(allMinionsQ, Q.Width * 0.8f);
                    if (farmAll.MinionsHit >= 2 || allMinionsQ.Count == 1)
                    {
                        Q.Cast(farmAll.Position, packetCast);
                        dtLastQCast = DateTime.Now;
                        return;
                    }
                }
            }

            if (W.IsReady() && useW && Player.GetManaPerc() >= LaneClearMinMana && DateTime.Now > dtLastQCast.AddMilliseconds(Q.Delay * 1000))
            {
                var allMinionsW            = MinionManager.GetMinions(Player.ServerPosition, W.Range + W.Width, MinionTypes.All).ToList();
                var allMinionsWNonPoisoned = allMinionsW.Where(x => !x.HasBuffOfType(BuffType.Poison)).ToList();

                if (allMinionsWNonPoisoned.Count > 0)
                {
                    var farmNonPoisoned = W.GetCircularFarmLocation(allMinionsWNonPoisoned, W.Width * 0.8f);
                    if (farmNonPoisoned.MinionsHit >= 3)
                    {
                        W.Cast(farmNonPoisoned.Position, packetCast);
                        return;
                    }
                }

                if (allMinionsW.Count > 0)
                {
                    var farmAll = W.GetCircularFarmLocation(allMinionsW, W.Width * 0.8f);
                    if (farmAll.MinionsHit >= 2 || allMinionsW.Count == 1)
                    {
                        W.Cast(farmAll.Position, packetCast);
                        return;
                    }
                }
            }

            if (E.IsReady() && useE)
            {
                MinionList = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health);

                foreach (var minion in MinionList.Where(x => x.HasBuffOfType(BuffType.Poison)).ToList())
                {
                    var buffEndTime = GetPoisonBuffEndTime(minion);

                    if (buffEndTime > (Game.Time + E.Delay))
                    {
                        if (UseELastHitLaneClear)
                        {
                            if (Player.GetSpellDamage(minion, SpellSlot.E) * 0.9d > HealthPrediction.LaneClearHealthPrediction(minion, (int)E.Delay * 1000))
                            {
                                CastE(minion);
                            }
                        }
                        else if (Player.GetManaPerc() >= LaneClearMinMana)
                        {
                            CastE(minion);
                        }
                    }
                }
            }
        }