Exemple #1
0
        public static int CountEnemyMinions(Obj_AI_Base target, float range, EntityManager.UnitTeam team)
        {
            var allMinions = Cache.Cache.GetMinions(target.Position, range, team);

            if (allMinions != null)
            {
                return(allMinions.Count);
            }
            else
            {
                return(0);
            }
        }
        public static Obj_AI_Minion GetMinionTarget(float range, DamageType damagetype, bool isAlly = false)
        {
            EntityManager.UnitTeam team = isAlly ? EntityManager.UnitTeam.Ally : EntityManager.UnitTeam.Enemy;
            var miniontype = EntityManager.MinionsAndMonsters.GetLaneMinions(team, Program.Champion.Position, range).ToArray();

            // Check list objects
            if (miniontype.Length == 0)
            {
                return(null);
            }

            return(miniontype
                   .OrderBy(a => a.HealthPercent)
                   .FirstOrDefault(a => IsTargetValid(a) && a.IsInRange(a, range)));
        }
Exemple #3
0
        public static EntityManager.MinionsAndMonsters.FarmLocation?GetFarmLocation(
            this Spell.SpellBase spell,
            EntityManager.UnitTeam team = EntityManager.UnitTeam.Enemy,
            EntityManager.MinionsAndMonsters.EntityType type = EntityManager.MinionsAndMonsters.EntityType.Minion,
            IEnumerable <Obj_AI_Minion> targets = null)
        {
            // Get minions if not set
            if (targets == null)
            {
                switch (type)
                {
                case EntityManager.MinionsAndMonsters.EntityType.Minion:
                    targets = EntityManager.MinionsAndMonsters.GetLaneMinions(team, Player.Instance.ServerPosition, spell.Range, false);
                    break;

                case EntityManager.MinionsAndMonsters.EntityType.Monster:
                    targets = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.ServerPosition, spell.Range, false);
                    break;

                default:
                    targets = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(o => o.IsInRange(Player.Instance, spell.Range));
                    break;
                }
            }
            var allTargets = targets.ToArray();

            // Validate
            var skillshot = spell as Spell.Skillshot;

            if (skillshot == null || allTargets.Length == 0)
            {
                return(null);
            }

            // Get best location to shoot
            var farmLocation = EntityManager.MinionsAndMonsters.GetLineFarmLocation(allTargets, skillshot.Width, (int)spell.Range);

            if (farmLocation.HitNumber == 0)
            {
                return(null);
            }
            return(farmLocation);
        }
Exemple #4
0
 /// <summary>
 ///     This function will list all the closest minions
 /// </summary>
 /// <param name="team">Limit the list to the desired team</param>
 /// <param name="range">Limit the list to only range value</param>
 /// <param name="from">Limit the list according to the Vector3 coordinations</param>
 /// <returns></returns>
 public static List <Obj_AI_Minion> Minions(EntityManager.UnitTeam team, float range,
                                            Vector3 from = default(Vector3))
 {
     return(EntityManager.MinionsAndMonsters.GetLaneMinions(team, from, range).ToList());
 }
Exemple #5
0
 public static List <Obj_AI_Base> GetMinions(Vector3 from, float range /*= float.MaxValue*/, EntityManager.UnitTeam team)
 {
     if (team == EntityManager.UnitTeam.Enemy)
     {
         return(MinionsListEnemy.FindAll(minion => CanReturn(minion, from, range)));
     }
     else if (team == EntityManager.UnitTeam.Ally)
     {
         return(MinionsListAlly.FindAll(minion => CanReturn(minion, from, range)));
     }
     else if (team == EntityManager.UnitTeam.Both)
     {
         return(MinionsListNeutral.Where(minion => CanReturn(minion, from, range)).OrderByDescending(minion => minion.MaxHealth).ToList());
     }
     else if (team != EntityManager.UnitTeam.Ally)
     {
         return(AllMinionsObj.FindAll(minion => CanReturn(minion, from, range)));
     }
     else
     {
         return(AllMinionsObj.FindAll(minion => CanReturn(minion, from, range)));
     }
 }