public MainWindow() { InitializeComponent(); // init values _greedyGame = null; _player = null; _maximumRequiredPlayers = 0; _minimumRequiredPlayers = 0; _nameLabels = new List <Label>(); _nameLabels.Add(player1Name); _nameLabels.Add(player2Name); _nameLabels.Add(player3Name); _nameLabels.Add(player4Name); _nameLabels.Add(player5Name); _nameLabels.Add(player6Name); _nameLabels.Add(player7Name); _lastPickLabels = new List <Label>(); _lastPickLabels.Add(player1LastPick); _lastPickLabels.Add(player2LastPick); _lastPickLabels.Add(player3LastPick); _lastPickLabels.Add(player4LastPick); _lastPickLabels.Add(player5LastPick); _lastPickLabels.Add(player6LastPick); _lastPickLabels.Add(player7LastPick); _statusLabels = new List <Label>(); _statusLabels.Add(player1Status); _statusLabels.Add(player2Status); _statusLabels.Add(player3Status); _statusLabels.Add(player4Status); _statusLabels.Add(player5Status); _statusLabels.Add(player6Status); _statusLabels.Add(player7Status); _playerRectangles = new List <Rectangle>(); _playerRectangles.Add(player1Tile); _playerRectangles.Add(player2Tile); _playerRectangles.Add(player3Tile); _playerRectangles.Add(player4Tile); _playerRectangles.Add(player5Tile); _playerRectangles.Add(player6Tile); _playerRectangles.Add(player7Tile); _optionsRadioButtons = new List <RadioButton>(); _optionsRadioButtons.Add(option1RadioButton); _optionsRadioButtons.Add(option2RadioButton); _optionsRadioButtons.Add(option3RadioButton); _optionsRadioButtons.Add(option4RadioButton); // hide the options panel HideOptionsPanel_(); }
// --------------------------------------------------------------------- // HELPERS // --------------------------------------------------------------------- #region HELPERS private void ConnectToService_(string clientName) { try { // Configure the ABCs DuplexChannelFactory <IGreedyGame> channel = new DuplexChannelFactory <IGreedyGame>(this, "GreedyGameService"); // Connect to the endpoint _greedyGame = channel.CreateChannel(); var response = _greedyGame.Join(clientName); switch (response.Item1) { case JoinResponseCode.GameIsFull: MessageBox.Show("Game is full", "Error"); _greedyGame = null; nameTextBox.Text = ""; break; case JoinResponseCode.GameIsStarted: MessageBox.Show("Game is already started", "Error"); _greedyGame = null; nameTextBox.Text = ""; break; case JoinResponseCode.NameIsInvalid: MessageBox.Show("Name is invalid", "Error"); _greedyGame = null; nameTextBox.Text = ""; break; case JoinResponseCode.NameIsUsed: MessageBox.Show("Name is already used", "Error"); _greedyGame = null; nameTextBox.Text = ""; break; case JoinResponseCode.Accept: // set player _player = response.Item2; // disable join function nameTextBox.Text = _player.Name; nameTextBox.IsEnabled = joinButton.IsEnabled = false; // setup the slider targetScoreSlider.Minimum = _greedyGame.MinimumTargetScore; targetScoreSlider.Maximum = _greedyGame.MaximumTargetScore; // retrieve the game state // update the UI: // - control panels // - live update board _maximumRequiredPlayers = _greedyGame.MaximumRequiredPlayers; _minimumRequiredPlayers = _greedyGame.MinimumRequiredPlayers; break; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }