/// <summary> /// Gets minions in a similiar way to <see cref="E:MinionManager" /> /// </summary> /// <param name="from">The from</param> /// <param name="range">The range to take minions from</param> /// <param name="team">The team</param> /// <param name="type">The minion type</param> /// <returns></returns> public static List <Obj_AI_Base> GetMinions(Vector2 from, float range, ObjectTeam team = ObjectTeam.Enemy, MinionType type = MinionType.Minion) { var container = new List <Obj_AI_Base>(Obj_AI_MinionList.Count); if (type.HasFlag(MinionType.Minion)) { container.AddRange(Minions); } if (type.HasFlag(MinionType.Ward)) { container.AddRange(Wards); } if (type.HasFlag(MinionType.Pet)) { container.AddRange(Pets); } if (type.HasFlag(MinionType.Jungle)) { container.AddRange(JungleMinions); } if (type.HasFlag(MinionType.Other)) { container.AddRange(OtherMinions); } if (from.IsZero) { from = Player.ServerPosition.ToVector2(); } var infinity = float.IsPositiveInfinity(range *= range); return(Selector(container, team, true, true, @base => infinity || Vector2.DistanceSquared(@base.ServerPosition.ToVector2(), from) <= range)); }
/// <summary> /// Gets the minions of the specified type and team /// </summary> /// <param name="type">The minion type flags</param> /// <param name="team">The requested team</param> /// <param name="inrange">The function determining whether this instance is in range</param> /// <returns></returns> public static List <Obj_AI_Minion> GetMinions(ObjectTeam team = ObjectTeam.Enemy, MinionType type = MinionType.Minion, Predicate <Obj_AI_Minion> inrange = null) { var container = new List <Obj_AI_Minion>(Obj_AI_MinionList.Count); if (type.HasFlag(MinionType.Minion)) { container.AddRange(Minions); } if (type.HasFlag(MinionType.Ward)) { container.AddRange(Wards); } if (type.HasFlag(MinionType.Pet)) { container.AddRange(Pets); } if (type.HasFlag(MinionType.Jungle)) { container.AddRange(JungleMinions); } if (type.HasFlag(MinionType.Other)) { container.AddRange(OtherMinions); } return(Selector(container, team, true, true, inrange)); }