/// <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; }
/// <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)); }
/// <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; }
/// <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(); } }