private void SendTeamSettingsToGameClients() { var mess = new TeamSettingsMessage(); var serializationMode = SerializationModeFlags.ConstantDataFromServer | SerializationModeFlags.VaryingDataFromServer; foreach (var team in DataEngine.Teams) mess.Add(team.ID, team, serializationMode); foreach (var conn in NetworkEngine.GameClientConnections) conn.Send(mess); }
private void HandleTeamSettingsMessageOnClient(TeamSettingsMessage mess) { mess.Read(id => { var team = Game.DataEngine.FindTeam(id); if (team == null) Game.DataEngine.Teams.Add(team = new Team("<uninitialised>", Game.DataEngine.FindSpectator) { ID = id }); return team; }, SerializationModeFlags.ConstantDataFromServer | SerializationModeFlags.VaryingDataFromServer, 0); // Remove teams that were not mentioned in the message. if (mess.IDs.Count() != Game.DataEngine.Teams.Count) Game.DataEngine.Teams.Remove(team => !mess.IDs.Contains(team.ID)); }