generatePromotionMoves method

List<StandardMove>? generatePromotionMoves({
  1. required StandardMove base,
  2. required BishopState state,
  3. PieceType? pieceType,
})

Generates all possible moves for the base move, given state and pieceType.

Implementation

List<StandardMove>? generatePromotionMoves({
  required StandardMove base,
  required BishopState state,
  PieceType? pieceType,
}) {
  if (promotionBuilder == null) return null;
  int piece = state.board[base.from].type;
  pieceType ??= this.pieceType(piece, base.from);
  if (!pieceType.promoOptions.canPromote) return null;
  final params = PromotionParams(
    move: base,
    state: state,
    variant: this,
    pieceType: pieceType,
    promoPieces: getPromoPieces(
      state: state,
      pieceType: pieceType,
      pieceIndex: piece,
    ),
  );
  List<StandardMove>? moves = promotionBuilder!(params);
  return moves;
}