getPromoPieces method
Implementation
List<int> getPromoPieces({
BishopState? state,
PieceType? pieceType,
int? pieceIndex,
}) {
bool checkPromoMap =
promoMap != null && pieceType != null && pieceIndex != null;
bool checkLimits = promoLimits != null && state != null;
if (!checkPromoMap && !checkLimits) return promotionPieces;
List<int> promoPieces = checkPromoMap
? [...promoMap![pieceIndex] ?? promotionPieces]
: [...promotionPieces];
if (checkLimits) {
for (int p in promoLimits!.keys) {
if (promoPieces.contains(p)) {
int remaining =
promoLimits![p]! - state.pieces[makePiece(p, state.turn)];
if (remaining < 1) {
promoPieces.remove(p);
}
}
}
}
return promoPieces;
}