private void HandleCreateOrJoinResponse(IncomingMessage receivedMessage, ClientIncomingMessageTypes messageType)
        {
            var resultCode = receivedMessage.ReadEnterRoomResultCode();

            if (resultCode == EnterRoomResultCodes.Succeed)
            {
                if (messageType == ClientIncomingMessageTypes.CreateResponse)
                {
                    this.CurrentRoom = new LocalNetworkRoom(this.lastRoomOptionsRequest, this.LocalPlayer);
                }
                else
                {
                    this.CurrentRoom = LocalNetworkRoom.FromJoinMessage(receivedMessage, this.LocalPlayer, this.lastRoomOptionsRequest);
                }

                this.State = ClientStates.Joined;
            }
            else
            {
                Debug.WriteLine($"[MatchmakingClient] EnterRoom response error: {resultCode}");

                this.State = ClientStates.InLobby;
            }

            this.enterRoomTCS?.TrySetResult(resultCode);
            this.enterRoomTCS           = null;
            this.lastRoomOptionsRequest = null;
        }
Exemplo n.º 2
0
        private OutgoingMessage CreateServerMessage(ClientIncomingMessageTypes type)
        {
            var othersRoomMsg = this.networkServer.CreateMessage();

            othersRoomMsg.Write(type);
            return(othersRoomMsg);
        }
 /// <summary>
 /// Writes a <see cref="ClientIncomingMessageTypes"/> type to an outgoing message
 /// </summary>
 /// <param name="outgoingMessage">The message</param>
 /// <param name="messageType">The <see cref="ClientIncomingMessageTypes"/> type to write</param>
 internal static void Write(this OutgoingMessage outgoingMessage, ClientIncomingMessageTypes messageType)
 {
     outgoingMessage.Write((byte)messageType);
 }