Beispiel #1
0
        public static void LastHit()
        {
            Menu menu = MenuHandler.LastHit;
            List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.EnemyMinions.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList();

            if (menu.GetCheckboxValue("Use Q") && Program.Q.IsReady())
            {
                List <Obj_AI_Base> QEnemies = enemies.Where(a => a.Health <= Calculations.Q(a, 1.25f) && a.IsInRange(Vi, Program.Q.Range())).ToList();
                if (QEnemies.Count >= 1 && !Program.Q.IsCharging)
                {
                    ChargeQ();
                }
                else
                {
                    QEnemies = enemies.Where(a => a.Health <= Calculations.Q(a, Program.Q.TimeSinceCharge()) && a.IsInRange(Vi, Program.Q.Range())).ToList();
                    Spell.Skillshot.BestPosition bestPos = Program.Q.GetBestLinearCastPosition(QEnemies, 0, Vi.Position.To2D());

                    if (bestPos.CastPosition != null && bestPos.CastPosition != Vector3.Zero && bestPos.CastPosition.IsInRange(Vi, Program.Q.Range()) && bestPos.HitNumber > 0)
                    {
                        CastQ(bestPos.CastPosition);
                    }
                }
            }

            if (menu.GetCheckboxValue("Use E"))
            {
                CastE(enemies.Where(a => a.Health <= Calculations.E(a) + Vi.GetAutoAttackDamage(a)).ToList());
            }

            if (menu.GetCheckboxValue("Use Items"))
            {
                UseItems(enemies, true);
            }
        }
Beispiel #2
0
        public static List <Obj_AI_Base> GetUnitsHitBySpell(this Spell.Skillshot.BestPosition bestpos, Spell.Skillshot spell, List <Obj_AI_Base> enemies)
        {
            List <Obj_AI_Base> units = new List <Obj_AI_Base>();

            Geometry.Polygon shape = new Geometry.Polygon();

            if (spell.Type == SkillShotType.Circular)
            {
                shape = new Geometry.Polygon.Circle(bestpos.CastPosition, spell.Radius);
            }
            else if (spell.Type == SkillShotType.Cone)
            {
                shape = new Geometry.Polygon.Arc(Player.Instance.Position, bestpos.CastPosition,
                                                 MathUtil.DegreesToRadians(spell.ConeAngleDegrees), spell.Radius);
            }

            foreach (Obj_AI_Base o in enemies)
            {
                if (shape.IsInside(o.PredictedPositionInTime(spell.CastDelay)))
                {
                    units.Add(o);
                }
            }

            return(units);
        }
Beispiel #3
0
        public static void LaneClear()
        {
            Menu menu = MenuHandler.LaneClear;
            List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.EnemyMinions.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList();

            if (menu.GetCheckboxValue("Use Q") && Program.Q.IsReady())
            {
                List <Obj_AI_Base> QEnemies = enemies.Where(a => a.IsInRange(Vi, Program.Q.Range())).ToList();
                if (QEnemies.Count >= 1 && !Program.Q.IsCharging)
                {
                    ChargeQ();
                }
                else
                {
                    Spell.Skillshot.BestPosition bestPos = Program.Q.GetBestLinearCastPosition(QEnemies, 0, Vi.Position.To2D());

                    if (bestPos.CastPosition != null && bestPos.CastPosition != Vector3.Zero && bestPos.CastPosition.IsInRange(Vi, Program.Q.Range()) && bestPos.HitNumber > 0)
                    {
                        CastQ(bestPos.CastPosition);
                    }
                }
            }

            if (menu.GetCheckboxValue("Use E"))
            {
                CastE(enemies);
            }

            if (menu.GetCheckboxValue("Use Items"))
            {
                UseItems(enemies, false);
            }
        }
Beispiel #4
0
        public static void LastHit()
        {
            Menu menu = MenuHandler.LastHit;
            List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.EnemyMinions.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList();

            //eq
            Spell.Skillshot.BestPosition bestQPos = Program.Q.GetBestLinearCastPosition(enemies.Where(a => a.Health <= Calculations.Q(a)));
            Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestCircularCastPosition(enemies.Where(a => a.Health <= Calculations.E(a)));

            if (menu.GetCheckboxValue("Use EQ") && Program.Q.IsReady() && Program.E.IsReady() && bestQPos.HitNumber >= 1)
            {
                CastE(bestQPos.CastPosition);
                Core.DelayAction(new Action(delegate { CastQ(bestQPos.CastPosition); }), 100);
            }

            if (menu.GetCheckboxValue("Use Q") && JarvanIV.IsAutoCanceling(enemies) && bestQPos.HitNumber >= 1)
            {
                CastQ(bestQPos.CastPosition);
            }

            if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1)
            {
                CastE(bestEPos.CastPosition);
            }

            if (menu.GetCheckboxValue("Use Items"))
            {
                UseItems(enemies, true);
            }
        }
Beispiel #5
0
        public static void LastHit()
        {
            Menu menu = MenuHandler.LastHit;
            List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.Monsters.ToList().ToObj_AI_BaseList();

            Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestLinearCastPosition(enemies);
        }
Beispiel #6
0
 public static int HitNumber(this Spell.Skillshot.BestPosition self, Spell.Skillshot spell)
 {
     if (spell.Type == EloBuddy.SDK.Enumerations.SkillShotType.Cone)
     {
         Geometry.Polygon.Sector cone = new Geometry.Polygon.Sector(Program.JarvanIV.Position, Program.JarvanIV.Position - self.CastPosition, spell.ConeAngleDegrees, spell.Range);
         return(EntityManager.Heroes.Enemies.Where(a => a.MeetsCriteria() && cone.IsInside(a)).Count());
     }
     return(0);
 }
Beispiel #7
0
        public static void Harass()
        {
            Menu menu = MenuHandler.Harass;
            List <Obj_AI_Base> enemies = EntityManager.Heroes.Enemies.ToList().ToObj_AI_BaseList();

            Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestLinearCastPosition(enemies);
            if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1)
            {
                CastE(bestEPos.CastPosition);
            }
        }
 public static Vector3 GetBestRLocation(GameObjectType type)
 {
     Spell.Skillshot.BestPosition pos = Program.R.GetBestCircularCastPosition(EntityManager.Enemies.Where(a => a.Type == type && a.Distance(Annie) <= Program.R.Range + (Program.R.Width / 2)));
     if (pos.HitNumber >= 1)
     {
         return(pos.CastPosition);
     }
     else
     {
         return(Vector3.Zero);
     }
 }
Beispiel #9
0
        public static void JunglerClear()
        {
            Menu menu = MenuHandler.JunglerClear;
            List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.Monsters.ToList().ToObj_AI_BaseList();

            Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestLinearCastPosition(enemies);

            if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1)
            {
                CastE(bestEPos.CastPosition);
            }
        }
 public static int GetBestRLocationUnits(GameObjectType type, out Vector3 pos)
 {
     Spell.Skillshot.BestPosition position = Program.R.GetBestCircularCastPosition(EntityManager.Enemies.Where(a => a.Type == type && a.Distance(Annie) <= Program.R.Range + (Program.R.Width / 2)));
     pos = position.CastPosition;
     if (position.HitNumber >= 1)
     {
         return(position.HitNumber);
     }
     else
     {
         return(0);
     }
 }
Beispiel #11
0
        public static void CastE(List <Obj_AI_Base> enemies)
        {
            if (!Program.E.IsReady() || hasDoneActionThisTick)
            {
                return;
            }

            Spell.Skillshot.BestPosition bestPos = Program.E.GetBestCircularCastPosition(enemies);

            if (bestPos.HitNumber >= 1)
            {
                hasDoneActionThisTick = Program.E.Cast(bestPos.CastPosition);
            }
        }
Beispiel #12
0
        public static void Combo()
        {
            Menu menu = MenuHandler.Combo;
            List <Obj_AI_Base> enemies = EntityManager.Heroes.Enemies.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList();

            //eq
            Spell.Skillshot.BestPosition bestQPos = Program.Q.GetBestLinearCastPosition(enemies);
            Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestCircularCastPosition(enemies);

            if (menu.GetCheckboxValue("Use EQ") && Program.Q.IsReady() && Program.E.IsReady() && bestQPos.HitNumber >= 1)
            {
                CastE(bestQPos.CastPosition);
                Core.DelayAction(new Action(delegate { CastQ(bestQPos.CastPosition); }), 100);
            }

            if (menu.GetCheckboxValue("Use Q") && JarvanIV.IsAutoCanceling(enemies) && bestQPos.HitNumber >= 1)
            {
                CastQ(bestQPos.CastPosition);
            }

            if (menu.GetCheckboxValue("Use W") && enemies.Where(a => a.IsInRange(JarvanIV, Program.W.Range)).Count() >= 1)
            {
                CastW();
            }

            if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1)
            {
                CastE(bestEPos.CastPosition);
            }

            if (menu.GetCheckboxValue("Use R") && bestEPos.HitNumber >= 1)
            {
                CastR(enemies, false);
            }

            if (menu.GetCheckboxValue("Use Items"))
            {
                UseItems(enemies, false);
            }

            if (menu.GetCheckboxValue("Use Smite"))
            {
                UseSmite(enemies, false);
            }

            if (menu.GetCheckboxValue("Use Ignite"))
            {
                UseIgnite(enemies, true);
            }
        }
Beispiel #13
0
        //working and tested
        private static void CastEOnBestPosition(List <Obj_AI_Base> enemies, int enemiesToUseEOn, bool ks)
        {
            enemies = enemies.Where(a => a.Distance(Gangplank) <= Program.E.Range + (Program.barrelRadius / 2)).ToList();

            if (ks)
            {
                enemies = enemies.Where(a => a.Health <= Calculations.E(a, false)).ToList();
            }

            if (!Program.E.IsReady() || enemies.Count == 0)
            {
                return;
            }

            Spell.Skillshot.BestPosition bestPos = Program.E.GetBestCircularCastPosition(enemies);

            if (bestPos.CastPosition != Vector3.Zero && bestPos.CastPosition.IsInRange(Gangplank, Program.E.Range) && bestPos.EHitNumber(enemies) >= enemiesToUseEOn)
            {
                CastE(bestPos.CastPosition);
            }
        }
Beispiel #14
0
        public static void CastR(List <Obj_AI_Base> enemies, int enemiesToUlt, bool ks)
        {
            if (!Program.R.IsReady() || didActionThisTick)
            {
                return;
            }

            if (ks)
            {
                enemies = enemies.Where(a => a.Health <= (Calculations.RDamagePerWave(a) * 5)).ToList();
            }

            if (enemies.Count() < enemiesToUlt)
            {
                return;
            }

            Spell.Skillshot.BestPosition bestPos = Program.R.GetBestCircularCastPosition(enemies);

            if (bestPos.CastPosition != Vector3.Zero && bestPos.RHitNumber(enemies) >= enemiesToUlt)
            {
                didActionThisTick = Program.R.Cast(bestPos.CastPosition);
            }
        }
 public static int RHitNumber(this Spell.Skillshot.BestPosition self, List <Obj_AI_Base> enemies)
 {
     return(enemies.Count(a => self.CastPosition.IsInRange(a.Position(250), 525f)));
 }
Beispiel #16
0
        public static void Execute()
        {
            if (MenuValue.Combo.UseQ && Q.IsReady() && !player.HasBuff("twitchhideinshadowsbuff"))
            {
                var target = TargetSelector.GetTarget(300, DamageType.Mixed, Game.CursorPos);
                if (target != null && player.Distance(target) <= 1500)
                {
                    Q.Cast();
                }
            }
            if (MenuValue.Combo.UseW && W.IsReady())
            {
                var target = W.GetTarget();
                if (target != null)
                {
                    var pred = W.GetPrediction(target);
                    if (pred.CanNext(W, MenuValue.General.WHitChance, false))
                    {
                        W.Cast(pred.CastPosition);
                    }
                }
            }
            if (MenuValue.Combo.UseE && E.IsReady())
            {
                var Enemies = EntityManager.Heroes.Enemies;
                switch (MenuValue.Combo.ELogic)
                {
                case 0:
                {
                    if (Enemies.Any(x => IsKillable(x, false)))
                    {
                        E.Cast();
                    }
                }
                break;

                case 1:
                {
                    if (Math.Max(EntityManager.Heroes.Allies.Count(), Enemies.Count()) >= MenuValue.Combo.HeroCount)
                    {
                        if (Enemies.Any(x => IsKillable(x, false)))
                        {
                            E.Cast();
                        }
                    }
                    else
                    {
                        if (Enemies.Count(x => IsKillable(x, false)) < 2 && Enemies.Count(x => IsNearToKillable(x, true)) >= 1)
                        {
                            Orbwalker.ForcedTarget = Enemies.FirstOrDefault(x => IsNearToKillable(x, true));
                        }
                        else if (Enemies.Any(x => IsKillable(x, x.IsUnderHisturret() && MenuValue.Combo.SmartE)))
                        {
                            E.Cast();
                        }
                    }
                }
                break;

                case 2:
                {
                    if (Enemies.Any(x => GetECount(x) >= MenuValue.Combo.BuffCount))
                    {
                        E.Cast();
                    }
                }
                break;

                case 3:
                {
                    if (Enemies.Count(x => GetECount(x) >= MenuValue.Combo.BuffCount) >= MenuValue.Combo.HeroCount)
                    {
                        E.Cast();
                    }
                }
                break;

                default:
                {
                    throw new ArgumentOutOfRangeException();
                }
                }
            }
            if (MenuValue.Combo.UseR && R.IsReady())
            {
                AIHeroClient[] entities = EntityManager.Heroes.Enemies.Where(new Func <AIHeroClient, bool>(R.CanCast)).ToArray();
                Spell.Skillshot.BestPosition castPos = R.GetBestLinearCastPosition(entities);
                if (castPos.CastPosition != Vector3.Zero && castPos.HitNumber >= MenuValue.Combo.RHit)
                {
                    Player.CastSpell(SpellSlot.R);
                }
                var target = R.GetTarget();
                if (target != null && !IsKillable(target, true) && MenuValue.Combo.UseROut && !player.IsInAutoAttackRange(target))
                {
                    if (target.TotalShieldHealth() <= player.GetAutoAttackDamage(target, true) * Math.Pow(player.AttackDelay, -1) + (E.IsReady() ? EDamage(target, GetECount(target) + (int)Math.Pow(player.AttackDelay, -1)) : 0))
                    {
                        Player.CastSpell(SpellSlot.R);
                    }
                }
            }
        }
 public static int EHitNumber(this Spell.Skillshot.BestPosition self, List <Obj_AI_Base> enemies)
 {
     return(enemies.Count(a => self.CastPosition.IsInRange(a.Position(250), Program.barrelRadius)));
 }