private void StartGameButton_Click(object sender, EventArgs e) { byte[] message = new ASCIIEncoding().GetBytes("122"); ClientSocket.client.Send(message); byte[] response = new byte[1024]; int bytesRead = ClientSocket.client.Receive(response); Array.Resize <byte>(ref response, bytesRead); if (GlobalHelpers.GetCode(response) == "222") { stopThread = true; this.Hide(); var game = new GameQuestion(this.room.Metadata); game.ShowDialog(); this.Close(); } else { MessageBox.Show("Could Not Start Game!"); LeaveLobbyButton.PerformClick(); } }
private void updateLoop() { while (!stopThread) { Thread.Sleep(5000); byte[] message = new ASCIIEncoding().GetBytes("123"); ClientSocket.client.Send(message); byte[] response = new byte[1024]; int bytesRead = ClientSocket.client.Receive(response); Array.Resize <byte>(ref response, bytesRead); if (GlobalHelpers.GetCode(response) == "223") { var roomState = MessagePack.MessagePackSerializer.Deserialize <JSON_Classes.GetRoomStateResponse>(GlobalHelpers.GetMsgpack(response)); switch (roomState.Status) { case 0: if (!stopThread) { this.Invoke((MethodInvoker) delegate { this.PlayerListBox.DataSource = roomState.Room.Players; }); } break; default: if (!stopThread) { this.Invoke((MethodInvoker) delegate { MessageBox.Show("There Was An Error Getting The Room Info!"); this.Close(); DialogResult = DialogResult.Abort; }); } break; } switch (roomState.Room.Metadata.IsActive) // Game Status Check { case 0: // Still In Lobby, Do Nothing break; case -1: // Admin Closed Lobby, Leave if (!stopThread) { this.Invoke((MethodInvoker) delegate { MessageBox.Show("Room Has Been Closed!"); this.Close(); DialogResult = DialogResult.Abort; }); stopThread = true; } break; default: // Game Started if (!stopThread) { this.Invoke((MethodInvoker) delegate { this.Hide(); var game = new GameQuestion(this.room.Metadata); game.ShowDialog(); this.Close(); }); stopThread = true; } break; } } } }