Beispiel #1
0
 public override void Active()
 {
     if (AutoMenu.KeyBindValue("EQMOUSE"))
     {
         var target = EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(Game.CursorPos)).FirstOrDefault(e => e.IsKillable(E.Range));
         if (target != null)
         {
             var targetedbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(user)).FirstOrDefault(b => KillableBarrel(b) != null && KillableBarrel(b).IsValidTarget(Q.Range));
             if (targetedbarrel != null && Q.IsReady() && E.IsReady())
             {
                 var castpos = target.IsInRange(targetedbarrel.Barrel, ConnectionRange)
                                   ? E.GetPrediction(target).CastPosition
                                   : targetedbarrel.Barrel.ServerPosition.Extend(E.GetPrediction(target).CastPosition, ConnectionRange).To3D();
                 if (castpos.IsInRange(target, E.Width) && E.IsInRange(castpos))
                 {
                     Q.Cast(targetedbarrel.Barrel);
                 }
             }
         }
     }
     if (user.IsCC() && W.IsReady() && AutoMenu.CheckBoxValue("CC"))
     {
         W.Cast();
     }
 }
Beispiel #2
0
        public override void Active()
        {
            if (AutoMenu.KeyBindValue("EQMOUSE"))
            {
                var target = EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(Game.CursorPos)).FirstOrDefault(e => e.IsKillable(E.Range));
                if (target != null)
                {
                    var targetedbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(user)).FirstOrDefault(b => KillableBarrel(b) != null && KillableBarrel(b).IsValidTarget(Q.Range));
                    if (targetedbarrel != null && Q.IsReady() && E.IsReady())
                    {
                        var castpos = target.IsInRange(targetedbarrel.Barrel, ConnectionRange)
                                          ? E.GetPrediction(target).CastPosition
                                          : targetedbarrel.Barrel.ServerPosition.Extend(E.GetPrediction(target).CastPosition, ConnectionRange).To3D();
                        if (castpos.IsInRange(target, E.Width) && E.IsInRange(castpos))
                        {
                            Q.Cast(targetedbarrel.Barrel);
                        }
                    }
                }
            }

            if (AutoMenu.CheckBoxValue("AutoQ") && Q.IsReady())
            {
                var target =
                    EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() &&
                                                                                                              BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.Width))))
                    ?? TargetSelector.GetTarget(E.Range, DamageType.Physical);
                if (target == null)
                {
                    return;
                }
                foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target)))
                {
                    if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range))
                    {
                        if (target.IsInRange(KillableBarrel(A), E.Width))
                        {
                            Q.Cast(KillableBarrel(A));
                        }

                        var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange);
                        if (Secondbarrel != null)
                        {
                            if (target.IsInRange(Secondbarrel.Barrel, E.Width))
                            {
                                Q.Cast(KillableBarrel(A));
                            }
                            if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.Width) > 0))
                            {
                                Q.Cast(KillableBarrel(A));
                            }
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public override void Active()
        {
            if (AutoMenu.CheckBoxValue("AutoQ") && Q.IsReady())
            {
                var target =
                    EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() &&
                                                                                                              BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.SetSkillshot().Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.SetSkillshot().Width))))
                    ?? TargetSelector.GetTarget(E.Range, DamageType.Physical);
                if (target == null)
                {
                    return;
                }
                foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target)))
                {
                    if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range))
                    {
                        if (target.IsInRange(KillableBarrel(A), E.SetSkillshot().Width))
                        {
                            Q.Cast(KillableBarrel(A));
                        }

                        var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange);
                        if (Secondbarrel != null)
                        {
                            if (target.IsInRange(Secondbarrel.Barrel, E.SetSkillshot().Width))
                            {
                                Q.Cast(KillableBarrel(A));
                            }
                            if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.SetSkillshot().Width) > 0))
                            {
                                Q.Cast(KillableBarrel(A));
                            }
                        }
                    }
                }
            }
        }
Beispiel #4
0
        public override void Combo()
        {
            Orbwalker.ForcedTarget = null;
            if (R.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.R))
            {
                R.SetSkillshot().CastAOE(ComboMenu.SliderValue("RAOE"), 3000);
            }

            var target =
                EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() &&
                                                                                                          BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.SetSkillshot().Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.SetSkillshot().Width))))
                ?? TargetSelector.GetTarget(E.Range, DamageType.Physical);

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

            var pred    = target.PredictPosition();
            var castpos = E.GetPrediction(target).CastPosition;

            if (AABarrel(target) != null)
            {
                var extended = AABarrel(target).ServerPosition.Extend(pred, ConnectionRange).To3D();
                castpos = !E.IsInRange(extended) ? pred : extended;
                Orbwalker.ForcedTarget = AABarrel(target);
                if (E.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.E))
                {
                    if (BarrelsList.Count(b => b.Barrel.Distance(user) <= Q.Range) > 0 && BarrelsList.Count(b => b.Barrel.Distance(castpos) <= E.SetSkillshot().Width) < 1)
                    {
                        E.Cast(castpos);
                    }
                }
                Player.IssueOrder(GameObjectOrder.AttackUnit, AABarrel(target));
                return;
            }

            if (Q.IsReady())
            {
                if (ComboMenu.CheckBoxValue(SpellSlot.Q))
                {
                    if (((BarrelsList.Count(b => b.Barrel.IsInRange(target, E.SetSkillshot().Radius + ConnectionRange)) < 1 && (!E.IsReady() || E.Handle.Ammo < 1)) || Q.WillKill(target)) && target.IsKillable(Q.Range))
                    {
                        Q.Cast(target);
                    }

                    foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target)))
                    {
                        if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range))
                        {
                            if (pred.IsInRange(KillableBarrel(A), E.SetSkillshot().Width))
                            {
                                Q.Cast(KillableBarrel(A));
                            }

                            var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange);
                            if (Secondbarrel != null)
                            {
                                if (pred.IsInRange(Secondbarrel.Barrel, E.SetSkillshot().Width))
                                {
                                    Q.Cast(KillableBarrel(A));
                                }
                                if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.SetSkillshot().Width) > 0))
                                {
                                    Q.Cast(KillableBarrel(A));
                                }
                            }
                            else
                            {
                                if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.SetSkillshot().Width) > 0))
                                {
                                    Q.Cast(KillableBarrel(A));
                                }
                            }
                        }
                    }
                }
                if (E.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.E))
                {
                    if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Count(b => b.Barrel.IsInRange(target, E.SetSkillshot().Width)) < 1)
                    {
                        if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Count(b => b.Barrel.IsInRange(target, E.SetSkillshot().Radius + ConnectionRange)) > 0)
                        {
                            var targetbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => KillableBarrel(b) != null && (b.Barrel.IsValidTarget(Q.Range) || b.Barrel.IsValidTarget(user.GetAutoAttackRange())) && b.Barrel.IsInRange(target, E.SetSkillshot().Radius + ConnectionRange));
                            if (KillableBarrel(targetbarrel) != null)
                            {
                                var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != targetbarrel?.Barrel.NetworkId && b.Barrel.Distance(targetbarrel?.Barrel) <= ConnectionRange);

                                if (Secondbarrel != null)
                                {
                                    var extended = Secondbarrel.Barrel.ServerPosition.Extend(pred, ConnectionRange).To3D();
                                    castpos = !E.IsInRange(extended) ? pred : extended;
                                }
                                if ((castpos.Distance(KillableBarrel(targetbarrel)) <= ConnectionRange || Secondbarrel?.Barrel.Distance(castpos) <= ConnectionRange) && E.IsInRange(castpos))
                                {
                                    E.Cast(castpos);
                                }
                            }
                        }
                        else
                        {
                            if (E.Handle.Ammo > 1 && ComboMenu.CheckBoxValue("FB"))
                            {
                                if (Q.IsInRange(castpos))
                                {
                                    if (HPTiming() <= 1000 || target.IsCC())
                                    {
                                        E.Cast(castpos);
                                    }
                                }
                                else
                                {
                                    if (E.IsInRange(castpos))
                                    {
                                        E.Cast(castpos.Extend(user, ConnectionRange - 300).To3D());
                                    }
                                }

                                var circle = new Geometry.Polygon.Circle(castpos, ConnectionRange);
                                foreach (var point in circle.Points)
                                {
                                    circle = new Geometry.Polygon.Circle(point, E.SetSkillshot().Width);
                                    var grass = circle.Points.OrderBy(p => p.Distance(castpos)).FirstOrDefault(p => p.IsGrass() && Q.IsInRange(p.To3D()) && p.Distance(castpos) <= ConnectionRange);
                                    if (grass != null)
                                    {
                                        E.Cast(grass.To3D());
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }