using BattleBitAPI.Common; namespace BattleBitAPI.Server { public class Squad where TPlayer : Player { public Team Team => @internal.Team; public Squads Name => @internal.Name; public GameServer Server => @internal.Server; public int NumberOfMembers => @internal.Members.Count; public bool IsEmpty => NumberOfMembers == 0; public IEnumerable Members => @internal.Server.IterateMembersOf(this); public int SquadPoints { get => @internal.SquadPoints; set { @internal.SquadPoints = value; Server.SetSquadPointsOf(@internal.Team, @internal.Name, value); } } private Internal @internal; public Squad(Internal @internal) { this.@internal = @internal; } public override string ToString() { return Team + " : " + Name; } // ---- Internal ---- public class Internal { public readonly Team Team; public readonly Squads Name; public int SquadPoints; public GameServer Server; public HashSet Members; public Internal(GameServer server, Team team, Squads squads) { this.Team = team; this.Name = squads; this.Server = server; this.Members = new HashSet(8); } public void Reset() { } } } }