this.kingPos[c][0] = move.appear[0].x;
this.kingPos[c][1] = move.appear[0].y;
this.castleFlags[c] = [V.size.y, V.size.y];
- return;
}
+ // Next call is still required because the king may eat an opponent's rook
+ // TODO: castleFlags will be turned off twice then.
super.updateCastleFlags(move, piece);
}
};
}
- static get SEARCH_DEPTH() {
- return 4;
+ getNotation(move) {
+ let notation = super.getNotation(move);
+ const lastRank = (move.appear[0].c == "w" ? 0 : 7);
+ if (
+ move.end.x != lastRank &&
+ this.getPiece(move.start.x, move.start.y) == V.PAWN &&
+ move.vanish.length == 2 &&
+ move.appear[0].p != V.PAWN
+ ) {
+ // Fix "promotion" (transform indicator) from base_rules notation
+ notation = notation.slice(0, -2);
+ }
+ return notation;
}
};