{
// Two squares jump
moves.push(this.getBasicMove([x,y], [x+2*shift,y]));
- if (x == startRanks[0] && this.board[x+2*shift][y] == V.EMPTY)
+ if (x == startRanks[0] && this.board[x+3*shift][y] == V.EMPTY)
{
// 3-squares jump
moves.push(this.getBasicMove([x,y], [x+3*shift,y]));
if (lastRanks.includes(x+shift))
{
// Promotion
- let promotionPieces = [V.ROOK,V.KNIGHT,V.BISHOP,V.QUEEN];
+ let promotionPieces = [V.ROOK,V.KNIGHT,V.BISHOP,V.QUEEN,V.MARSHALL,V.CARDINAL];
promotionPieces.forEach(p => {
if (!this.captures[color][p] || this.captures[color][p]==0)
return;
return moves;
}
+ // TODO: different castle?
+
getPotentialMarshallMoves(sq)
{
const V = VariantRules;
if (move.vanish.length==2 && move.appear.length==1
&& move.vanish[1].p != VariantRules.PAWN)
{
- // Capture: update this.captures
this.captures[move.vanish[1].c][move.vanish[1].p] =
Math.max(0, this.captures[move.vanish[1].c][move.vanish[1].p]-1);
}