X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FDark.js;h=e7ba40cea601c1101d77712ae728748513505240;hb=21704b041240cb440d03cfa64a90ed0be6f28415;hp=8f941762e701dc9be5f4eb6a699080c2d4cefd38;hpb=2c5d7b20742b802d9c47916915c1114bcfc9a9c3;p=vchess.git diff --git a/client/src/variants/Dark.js b/client/src/variants/Dark.js index 8f941762..e7ba40ce 100644 --- a/client/src/variants/Dark.js +++ b/client/src/variants/Dark.js @@ -3,6 +3,7 @@ import { ArrayFun } from "@/utils/array"; import { randInt } from "@/utils/alea"; export class DarkRules extends ChessRules { + // Analyse in Dark mode makes no sense static get CanAnalyze() { return false; @@ -13,6 +14,10 @@ export class DarkRules extends ChessRules { return "none"; } + static get SomeHiddenMoves() { + return true; + } + setOtherVariables(fen) { super.setOtherVariables(fen); const [sizeX, sizeY] = [V.size.x, V.size.y]; @@ -78,6 +83,11 @@ export class DarkRules extends ChessRules { } } + // To always allow castling: + isAttacked() { + return false; + } + filterValid(moves) { // Used in the interface return moves; @@ -105,7 +115,7 @@ export class DarkRules extends ChessRules { postPlay(move) { super.postPlay(move); - if (move.vanish.length >= 2 && move.vanish[1].p == V.KING) + if (move.vanish.length == 2 && move.vanish[1].p == V.KING) // We took opponent king (because if castle vanish[1] is a rook) this.kingPos[this.turn] = [-1, -1]; @@ -115,11 +125,9 @@ export class DarkRules extends ChessRules { postUndo(move) { super.postUndo(move); - const c = move.vanish[0].c; - const oppCol = V.GetOppCol(c); - if (this.kingPos[oppCol][0] < 0) + if (move.vanish.length == 2 && move.vanish[1].p == V.KING) // Last move took opponent's king: - this.kingPos[oppCol] = [move.vanish[1].x, move.vanish[1].y]; + this.kingPos[move.vanish[1].c] = [move.vanish[1].x, move.vanish[1].y]; // Update lights for both colors: this.updateEnlightened(); @@ -267,4 +275,5 @@ export class DarkRules extends ChessRules { candidates.push(j); return moves[candidates[randInt(candidates.length)]]; } + };