Esempio n. 1
0
 /// <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();
 }
Esempio n. 2
0
            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;
                }
            }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        /// <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
Esempio n. 7
0
 void IServerViewController.MessageSentFromView(Messages.LobbyViewMessage message, List<object> data)
 {
     throw new NotImplementedException();
 }