/// <summary> /// Updates data from server and notifies observers of new data /// </summary> /// <param name="code"></param> void IConnectionObservable.notifyObservers(object code = null) { getNewMessages(); foreach (WCFMessage msg in serverMessages) { parseNewMessage(msg); foreach (IConnectionObserver obs in myObservers) { obs.update(createDataPackage()); serverMessage = Messages.GameMessages.UpdateMatch; viewMessage = Messages.LobbyViewMessage.UpdateAll; } } serverMessages.Clear(); }
public void sendMessage(Messages.LobbyViewMessage msg) { switch (msg) { case Messages.LobbyViewMessage.connect: myController.MessageSentFromView(msg, new List <object> { DisputeCommonGlobals.defaultAddress, DisputeCommonGlobals.defaultPort, playerName }, this); break; default: break; } }
public void MessageSentFromView(Messages.LobbyViewMessage code, List <object> args, object sender) { switch (code) { case Messages.LobbyViewMessage.connect: //Address and port are in array cm.parseRequest(Messages.GameMessages.connect, args, this); break; case Messages.LobbyViewMessage.viewClosed: notifyObservers("Connect To Server Form Closed"); break; default: break; } }
void IServerViewController.MessageSentFromView(Messages.LobbyViewMessage message, List <object> data) { switch (message) { case DisputeCommon.Messages.LobbyViewMessage.StartServer: RunServer(); break; case DisputeCommon.Messages.LobbyViewMessage.StopServer: StopServer(); break; case DisputeCommon.Messages.LobbyViewMessage.viewClosed: StopServer(); break; default: break; } }
/// <summary> /// Decision Maker when game is playing.Gets messages from server and decides what to do with them /// </summary> /// <param name="disputeDTO"></param> private void parseMatchDTO(DisputeDTO disputeDTO) { Messages.GameMessages dtoMessage = disputeDTO.Message; serverMessage = dtoMessage; switch (dtoMessage) { case Messages.GameMessages.StartingMatch: this.inMatch = disputeDTO.Match; viewMessage = Messages.LobbyViewMessage.StartGame; break; case Messages.GameMessages.ArgumentDone: this.inMatch = disputeDTO.Match; break; case Messages.GameMessages.GetSOM: serverMessage = dtoMessage; //this was already done above but just emphasize myDTO = disputeDTO; break; case Messages.GameMessages.NotPlayerTurn: sendFeedback("parseMatchDTO", dtoMessage); break; case Messages.GameMessages.UpdateMatch: this.inMatch = disputeDTO.Match; break; case Messages.GameMessages.stillAlive: this.inMatch = disputeDTO.Match; break; case Messages.GameMessages.GameOver: serverMessage = dtoMessage; //this was already done above but just emphasize break; } }
/// <summary> /// Used for managing communication with connection. This method will only be called when /// client is connected, so it serves as a setter for Connected /// </summary> /// <param name="code"></param> void IConnectionObserver.update(object code) { if (!Connected) { Connected = true; } if (lobbyUpdate)//Check if we do updates here or at the matchController { if (code != null) { List <NamedParameter> dataList = (List <NamedParameter>)code; List <NamedParameter> lobbyMessage = DataTypes.findAll(dataList, DataType.viewMessage); List <NamedParameter> serverMessage = DataTypes.findAll(dataList, DataType.serverMessage); if (lobbyMessage != null && lobbyMessage.Count > 0) { Messages.LobbyViewMessage msg = (Messages.LobbyViewMessage)lobbyMessage[0].data; switch (msg) { case Messages.LobbyViewMessage.UpdateAll: updateData(dataList); break; case Messages.LobbyViewMessage.StartGame: playDispute(); break; } //End Switch } //End Message if } //End Code if } //End lobby/match if else { (MyMatchFormController as IConnectionObserver).update(code); } }//End update
void IServerViewController.MessageSentFromView(Messages.LobbyViewMessage message, List<object> data) { throw new NotImplementedException(); }