public void ClickSquare(Square square) { if (this.Board == null || !this.Board.IsActive) return; var currentPiece = this.SelectedPiece; var targetPiece = this.Board[square]; if (currentPiece == targetPiece && targetPiece != null) { DrawSquare(SelectedPiece.Square, false); this.SelectedPiece = null; } else if (currentPiece != null) { DrawSquare(SelectedPiece.Square, false); this.SelectedPiece = null; if (this.Board.Move(currentPiece.Square, square, square.IsPromotionSquare() ? typeof(Pieces.Queen) : null)) this.Cursor = Cursors.Arrow; } else if (targetPiece != null && targetPiece.Player == this.Board.Turn) { if (this.PiecePicked != null) PiecePicked(square); this.SelectedPiece = targetPiece; DrawSquare(square, true); } }