public void broadcast(Messages.GameMessages message) { WCFMessage newMessage = null; //Interpet message switch (message) { case Messages.GameMessages.PlayerConnected: newMessage = new WCFMessage() { Type = Messages.DTOType.lobby, Data = getLobbyDTO() }; break; case Messages.GameMessages.matchCreated: newMessage = new WCFMessage() { Type = Messages.DTOType.lobby, Data = getLobbyDTO() }; break; default: break; } //Send to all if (newMessage != null && players != null) { foreach (var player in players) { newMessage.Player = player; MyMessages[player.PlayerName].Add(newMessage); } } }
/// <summary> /// Reads messages and if they contain data it gets set to appropriate members /// </summary> private void parseNewMessage(WCFMessage msg) { if (connected) { if (msg == null) { return; } myDTO = msg.Data; switch (msg.Type) { case Messages.DTOType.lobby: parseLobbyDTO(msg.Data); break; case Messages.DTOType.message: sendFeedback("parseNewMessage", msg.Data.Message); break; case Messages.DTOType.match: parseMatchDTO(msg.Data); break; default: break; } } }
/// <summary> /// Addds a new message to the player containint all loby data (matches,etc) /// </summary> /// <param name="player"></param> void updatePlayer(DataPlayer player) { WCFMessage dataMessage = new WCFMessage() { Type = Messages.DTOType.lobby, Data = getLobbyDTO() }; MyMessages[player.PlayerName].Add(dataMessage); }
/// <summary> /// Adds a new message to the player containing the match he is playing if there is one /// </summary> /// <param name="player"></param> void updatePlayerInMatch(DataPlayer player) { if (player.ActiveMatch != null) { WCFMessage msg = new WCFMessage() { Type = Messages.DTOType.match, Data = getMatchDTO(player.ActiveMatch) }; MyMessages[player.PlayerName].Add(msg); } }