private bool OnFirstClick(PieceButton currentPosition) { Message.Text = _currentPlayerName + pieceNextPositionText; _currentSelectedPiece = currentPosition; if (_currentSelectedPiece.Piece == null) { MessageBox.Show(this, noPieceFound); _messageFlashTimer.Enabled = false; return(true); } return(false); }
private void Cellbutton_Click(object sender, EventArgs e) { PieceButton pieceButton = (PieceButton)sender; if (_isFirstClick) { _isFirstClick = OnFirstClick(pieceButton); } else { OnSecondClick(pieceButton); _isFirstClick = true; } }
private void OnSecondClick(PieceButton currentPosition) { CoOrdinate toCoOrdinate = CoOrdinate.GetCoOrdinate(currentPosition.Name); //If the location to be moved is not empty or is not a valid move if (!_game.PlayTurn(_currentPlayerTurn, _currentSelectedPiece.Piece, toCoOrdinate)) { _messageFlashTimer.Enabled = false; MessageBox.Show(this, errorWrongMove); } else { RefreshChessBoard(); UpdateStateHistory(); CheckGameStatus(); } }
private PieceButton CreateButton(int row, int column) { PieceButton cellButton = new PieceButton(); cellButton.Height = 200; cellButton.Width = 200; cellButton.Padding = new Padding(0); cellButton.Margin = new Padding(0); cellButton.Image = null; cellButton.Name = row + "_" + column; if ((column + row) % 2 == 0) { cellButton.BackColor = System.Drawing.Color.Orange; } cellButton.Click += new EventHandler(Cellbutton_Click); return(cellButton); }
private void DrawChessBoard(History boardState) { ChessBoard.Controls.Clear(); for (int row = 0; row < this.ChessBoard.ColumnCount; row++) { for (int column = 0; column < this.ChessBoard.RowCount; column++) { CoOrdinate key = new CoOrdinate(row, column); PieceButton cellButton = CreateButton(row, column); Piece piece; if (boardState.LayOut.TryGetValue(key, out piece)) { cellButton.Image = piece.Image; } cellButton.Piece = piece; this.ChessBoard.Controls.Add(cellButton, row, column); } } }
void GuiSignal(GameObject child) { // If a map piece is selected from the GUI, move to place that piece PieceButton pieceButton = child.GetComponent <PieceButton>(); if (pieceButton != null) { ui.commandPanel.Hide(); ui.infoPanel.Hide(); game.ChangeState(new PlacingPiece(pieceButton.piece)); } // If a unit control is clicked from the GUI, move to move that unit UiButton button = child.GetComponent <UiButton>(); if ((button != null) && (button == ui.cellInfoPanel.moveButton)) { game.ChangeState(new UnitMovement(ui.cellInfoPanel.selectedUnit)); } }