X-Git-Url: https://git.auder.net/images/pieces/current/gitweb.js?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FCrazyhouse.js;h=2a95dc857b696c5308d996b2631fcc6eedb2f8b4;hb=1f9d1d4a094bb89005ba1a995dfe8d4dd5705c40;hp=9d5834fbd58c2af75782963460a82c86659528c3;hpb=7e8a7ea1cb66adb4a987badfb0a3c2f99a21bd0a;p=vchess.git diff --git a/client/src/variants/Crazyhouse.js b/client/src/variants/Crazyhouse.js index 9d5834fb..2a95dc85 100644 --- a/client/src/variants/Crazyhouse.js +++ b/client/src/variants/Crazyhouse.js @@ -80,9 +80,9 @@ export class CrazyhouseRules extends ChessRules { setOtherVariables(fen) { super.setOtherVariables(fen); + const fenParsed = V.ParseFen(fen); // Also init reserves (used by the interface to show landable pieces) - const reserve = - V.ParseFen(fen).reserve.split("").map(x => parseInt(x, 10)); + const reserve = fenParsed.reserve.split("").map(x => parseInt(x, 10)); this.reserve = { w: { [V.PAWN]: reserve[0], @@ -166,10 +166,9 @@ export class CrazyhouseRules extends ChessRules { } getPotentialMovesFrom([x, y]) { - if (x >= V.size.x) { + if (x >= V.size.x) // Reserves, outside of board: x == sizeX(+1) return this.getReserveMoves([x, y]); - } // Standard moves return super.getPotentialMovesFrom([x, y]); } @@ -186,17 +185,15 @@ export class CrazyhouseRules extends ChessRules { } atLeastOneMove() { - if (!super.atLeastOneMove()) { - // Search one reserve move - for (let i = 0; i < V.RESERVE_PIECES.length; i++) { - let moves = this.filterValid( - this.getReserveMoves([V.size.x + (this.turn == "w" ? 0 : 1), i]) - ); - if (moves.length > 0) return true; - } - return false; + if (super.atLeastOneMove()) return true; + // Search one reserve move + for (let i = 0; i < V.RESERVE_PIECES.length; i++) { + const moves = this.filterValid( + this.getReserveMoves([V.size.x + (this.turn == "w" ? 0 : 1), i]) + ); + if (moves.length > 0) return true; } - return true; + return false; } postPlay(move) {