/// <summary>
 /// Initializes a new instance of the <see cref="PieceMovedEventArgs"/> class.
 /// </summary>
 /// <param name="piece">The moved piece.</param>
 /// <param name="from">The source position of the piece.</param>
 /// <param name="to">The destination position of the piece.</param>
 public PieceMovedEventArgs(FriendlyPiece piece, Position from, Position to)
 {
     Piece = piece;
     From  = from;
     To    = to;
 }
Пример #2
0
 /// <summary>
 /// Processes the left button press when there is no previous selection.
 /// </summary>
 /// <param name="selectionPosition">The selection position on board.</param>
 /// <param name="selectedPieceType">The selected piece type (null if the selected field empty)/</param>
 private void ProcessLeftButtonPressWithoutPreviousSelection(Position selectionPosition, FriendlyPiece selectedPieceType)
 {
     OnFieldSelection?.Invoke(this, new FieldSelectedEventArgs(selectionPosition, selectedPieceType));
 }
Пример #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FieldSelectedEventArgs"/> class.
 /// </summary>
 /// <param name="position">The selected field position.</param>
 /// <param name="piece">The selected piece (null if the selected field is empty)</param>
 public FieldSelectedEventArgs(Position position, FriendlyPiece piece)
 {
     Position = position;
     Piece    = piece;
 }
Пример #4
0
        /// <summary>
        /// Processes the left button press when there is another selection present.
        /// </summary>
        /// <param name="previousSelection">The previous selection.</param>
        /// <param name="selectedPosition">The selection position on board.</param>
        /// <param name="selectedPiece">The selected piece (null if the selected field is empty).</param>
        private void ProcessLeftButtonPressWithPreviousSelection(Selection previousSelection, Position selectedPosition, FriendlyPiece selectedPiece)
        {
            var previousSelectedPiece = FriendlyBoard.GetPiece(previousSelection.Position);

            if (previousSelectedPiece == null)
            {
                OnFieldSelection?.Invoke(this, new FieldSelectedEventArgs(selectedPosition, selectedPiece));
            }
            else if (selectedPiece == null || selectedPiece.Color != previousSelectedPiece.Color)
            {
                var from = previousSelection.Position;
                var to   = selectedPosition;

                OnPieceMove?.Invoke(this, new PieceMovedEventArgs(previousSelectedPiece, from, to));

                _selectionsManager.RemoveAllSelections();
            }
        }