X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fbase_rules.js;h=e70b9de88eef4caf811de25ad45aa69fbf5b1654;hb=0705a80c63aec2c60ee6a674b982f6a11d2d50bd;hp=95a90cf73000683f3956dab5477de6404ec5814d;hpb=15d6904394c63102e7865b5537eb3b533e3ac06f;p=vchess.git diff --git a/client/src/base_rules.js b/client/src/base_rules.js index 95a90cf7..e70b9de8 100644 --- a/client/src/base_rules.js +++ b/client/src/base_rules.js @@ -80,6 +80,14 @@ export const ChessRules = class ChessRules { return V.ShowMoves; } + // Sometimes moves must remain hidden until game ends + static get SomeHiddenMoves() { + return false; + } + get someHiddenMoves() { + return V.SomeHiddenMoves; + } + // Generally true, unless the variant includes random effects static get CorrConfirm() { return true; @@ -909,6 +917,7 @@ export const ChessRules = class ChessRules { if ( // NOTE: "castling" arg is used by some variants (Monster), // where "isAttacked" is overloaded in an infinite-recursive way. + // TODO: not used anymore (Monster + Doublemove2 are simplified). (!castleInCheck && this.isAttacked([x, i], oppCol, "castling")) || (this.board[x][i] != V.EMPTY && // NOTE: next check is enough, because of chessboard constraints @@ -1193,10 +1202,8 @@ export const ChessRules = class ChessRules { piece = move.appear[0].p; // Update king position + flags - if (piece == V.KING && move.appear.length > 0) { - this.kingPos[c][0] = move.appear[0].x; - this.kingPos[c][1] = move.appear[0].y; - } + if (piece == V.KING && move.appear.length > 0) + this.kingPos[c] = [move.appear[0].x, move.appear[0].y]; if (V.HasCastle) this.updateCastleFlags(move, piece); }