X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FDark.js;h=8f941762e701dc9be5f4eb6a699080c2d4cefd38;hb=2c5d7b20742b802d9c47916915c1114bcfc9a9c3;hp=81f87008b011353c0443cf36ea450a22a864c34a;hpb=d048c4c997a6f7de8a612b99dcfccd26e4de2606;p=vchess.git diff --git a/client/src/variants/Dark.js b/client/src/variants/Dark.js index 81f87008..8f941762 100644 --- a/client/src/variants/Dark.js +++ b/client/src/variants/Dark.js @@ -2,7 +2,7 @@ import { ChessRules } from "@/base_rules"; import { ArrayFun } from "@/utils/array"; import { randInt } from "@/utils/alea"; -export const VariantRules = class DarkRules extends ChessRules { +export class DarkRules extends ChessRules { // Analyse in Dark mode makes no sense static get CanAnalyze() { return false; @@ -37,16 +37,16 @@ export const VariantRules = class DarkRules extends ChessRules { for (let i = 0; i < V.size.x; i++) { for (let j = 0; j < V.size.y; j++) { if (this.board[i][j] != V.EMPTY) { - const color = this.getColor(i, j); - this.enlightened[color][i][j] = true; + const c = this.getColor(i, j); + this.enlightened[c][i][j] = true; // Add potential squares visible by "impossible pawn capture" if (this.getPiece(i, j) == V.PAWN) { for (let shiftY of [-1, 1]) { if ( - V.OnBoard(i + pawnShift[color], j + shiftY) && - this.board[i + pawnShift[color]][j + shiftY] == V.EMPTY + V.OnBoard(i + pawnShift[c], j + shiftY) && + this.board[i + pawnShift[c]][j + shiftY] == V.EMPTY ) { - this.enlightened[color][i + pawnShift[color]][j + shiftY] = true; + this.enlightened[c][i + pawnShift[c]][j + shiftY] = true; } } } @@ -78,6 +78,11 @@ export const VariantRules = class DarkRules extends ChessRules { } } + filterValid(moves) { + // Used in the interface + return moves; + } + // Has to be redefined to avoid an infinite loop getAllValidMoves() { const color = this.turn; @@ -98,8 +103,8 @@ export const VariantRules = class DarkRules extends ChessRules { return []; } - updateVariables(move) { - super.updateVariables(move); + postPlay(move) { + super.postPlay(move); 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]; @@ -108,8 +113,8 @@ export const VariantRules = class DarkRules extends ChessRules { this.updateEnlightened(); } - unupdateVariables(move) { - super.unupdateVariables(move); + postUndo(move) { + super.postUndo(move); const c = move.vanish[0].c; const oppCol = V.GetOppCol(c); if (this.kingPos[oppCol][0] < 0) @@ -240,7 +245,8 @@ export const VariantRules = class DarkRules extends ChessRules { const myPieceVal = V.VALUES[move.appear[0].p]; const hisPieceVal = V.VALUES[move.vanish[1].p]; // Favor captures - if (myPieceVal <= hisPieceVal) move.eval = hisPieceVal - myPieceVal + 1; + if (myPieceVal <= hisPieceVal) + move.eval = hisPieceVal - myPieceVal + 1; else { // Taking a pawn with minor piece, // or minor piece or pawn with a rook,