/// <summary> /// Ensures the minimum team composition doesn't exceed 100%. /// </summary> private bool validateTeamComposition(Game game) { int totalPercent = 0; foreach (Team t in game.GetTeamsPlayingUnique()) { totalPercent += t.MinPercentage; } if (totalPercent > 100) { throw new System.Exception("Minimum team composition required can be greater than 100%"); } return true; }
/// <summary> /// Validates the following: /// <para />For each team: Percentage of players in this game is greater than <see cref="Team.MinPercentage"/> /// <para />At least 2 teams are playing. /// <para /><see cref="Role.MaxPlayers"/> is not violated. /// </summary> /// <returns></returns> private bool ValidateTeamMinPercent(Game game) { if (game.GetTeamsPlayingUnique().Count < 2) return false; foreach (Team t in game.GetTeamsPlayingUnique()) { int teamMembersCount = game.GetCountOfPlayersOnTeam(t); int minMembers = MathX.Percent(game.Players.Count, t.MinPercentage); if (teamMembersCount < minMembers) return false; } return true; }