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))); }
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); }
/// <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()); }
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))); } }