/// <summary> /// Adds a player to the rooster /// </summary> /// <param name="joiningPlayer">A player that should not be playing for the team</param> public void AddPlayer(Player joiningPlayer) { if (Rooster.Contains(joiningPlayer)) { throw new PlayerAlreadyInTeamException(); } Rooster.Add(joiningPlayer); // Update the player join status joiningPlayer.AssignToTeam(this); }
/// <summary> /// Removes a player from the rooster, and from the formation if he was in it /// </summary> /// <param name="leavingPlayer">The player leaving the team</param> public void RemovePlayer(Player leavingPlayer) { if (!Rooster.Contains(leavingPlayer)) { throw new PlayerNotFoundException(); } if (Formation.HasPlayer(leavingPlayer)) { Formation.RemovePlayer(leavingPlayer); } Rooster.Remove(leavingPlayer); leavingPlayer.RemoveFromTeam(); }