Exemple #1
0
 /// <summary>
 /// Begins the handshake process of connecting to a TankWars server.
 /// if any errors occur during the connection process, the view will display an informative error message
 /// and the user can try again.
 /// </summary>
 public void ConnectToServer(string hostName, string playerName)
 {
     if (PlayerNameIsValid(playerName))
     {
         this.playerName = playerName;
         int portNumber = 11000;  // networking protocol requires port number to always be 11000
         Networking.ConnectToServer(OnFirstConnect, hostName, portNumber);
     }
     else
     {
         ShowErrorMessageEvent?.Invoke("name must be 16 characters or less. please enter a new name.", "invalid name");
     }
 }
Exemple #2
0
        private void OnFirstConnect(SocketState socketState)
        {
            serverSocketState = socketState;
            if (socketState.ErrorOccured)
            {
                ShowErrorMessageEvent?.Invoke(serverSocketState.ErrorMessage + " please restart the game client.", "networking error");
                return;
            }
            else
            {
                serverSocketState = socketState;
                serverSocketState.OnNetworkAction = ReceiveStartupMessage;

                SendPlayerName();
                // this line starts the async operation that will eventually call ReceiveStartupMessage
                Networking.GetData(serverSocketState);
            }
        }
Exemple #3
0
        private void ReceiveServerUpdate(SocketState socketState)
        {
            serverSocketState = socketState;
            if (serverSocketState.ErrorOccured)
            {
                ShowErrorMessageEvent?.Invoke(serverSocketState.ErrorMessage + " please restart the game client.", "networking error");
                return;
            }
            else
            {
                Networking.GetData(serverSocketState);
                List <string> socketData = ExtractSocketData(serverSocketState);
                UpdateWorld(theWorld, socketData);
            }

            SendTankControlCommand(tankControlCommand);
            RedrawFrameEvent?.Invoke();
        }