export class SynchroneRules extends ChessRules {
static get CanAnalyze() {
- return true; //false;
+ return false;
}
static get ShowMoves() {
return "byrow";
}
+ static get SomeHiddenMoves() {
+ return true;
+ }
+
static IsGoodFen(fen) {
if (!ChessRules.IsGoodFen(fen)) return false;
const fenParsed = V.ParseFen(fen);
}
getPossibleMovesFrom([x, y]) {
- return (
- this.filterValid(super.getPotentialMovesFrom([x, y]))
- // Augment with potential recaptures:
- .concat(this.getRecaptures([x, y]))
- );
+ let moves = this.filterValid(super.getPotentialMovesFrom([x, y]));
+ if (!this.underCheck(this.getColor(x, y)))
+ // Augment with potential recaptures, except if we are under check
+ Array.prototype.push.apply(moves, this.getRecaptures([x, y]));
+ return moves;
}
// Aux function used to find opponent and self captures
} else this.whiteMove = move.whiteMove;
}
- getCheckSquares(color) {
+ getCheckSquares() {
+ const color = this.turn;
if (color == 'b') {
// kingPos must be reset for appropriate highlighting:
var lastMove = JSON.parse(JSON.stringify(this.whiteMove));