X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FCannibal.js;h=f7a9514969b40ada8859bec98f3de2fa9035802f;hp=a08f197547d88ded964ede5635136b3d463df19a;hb=472c0c4f5aa29d96e080873ebfce2a04f664d852;hpb=6f2f94374f1e73c375edf732d9425e575e81fff7 diff --git a/client/src/variants/Cannibal.js b/client/src/variants/Cannibal.js index a08f1975..f7a95149 100644 --- a/client/src/variants/Cannibal.js +++ b/client/src/variants/Cannibal.js @@ -207,8 +207,9 @@ export class CannibalRules extends ChessRules { 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); } @@ -231,7 +232,18 @@ export class CannibalRules extends ChessRules { }; } - 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; } };