X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FThreechecks.js;h=175b1246502da50385e9b8f9946f4f1bc01d7125;hb=2c5d7b20742b802d9c47916915c1114bcfc9a9c3;hp=f3b77254ea502058a347773f6dd91f623520d7b1;hpb=6b7b2cf720e6255e4da0dc34fee363c456346a58;p=vchess.git diff --git a/client/src/variants/Threechecks.js b/client/src/variants/Threechecks.js index f3b77254..175b1246 100644 --- a/client/src/variants/Threechecks.js +++ b/client/src/variants/Threechecks.js @@ -1,6 +1,6 @@ import { ChessRules } from "@/base_rules"; -export const VariantRules = class ThreechecksRules extends ChessRules { +export class ThreechecksRules extends ChessRules { static IsGoodFlags(flags) { // 4 for castle + 2 for checks (0,1 or 2) return !!flags.match(/^[01]{4,4}[012]{2,2}$/); @@ -25,15 +25,15 @@ export const VariantRules = class ThreechecksRules extends ChessRules { } getPpath(b) { - // TODO: !!this.checkFlags condition for printDiagram, but clearly not good. + // TODO: !!this.checkFlags condition for printDiagram, but it's not good. // This is just a temporary fix. if (b[1] == 'k' && !!this.checkFlags && this.checkFlags[b[0]] > 0) return "Threechecks/" + b[0] + 'k_' + this.checkFlags[b[0]]; return b; } - updateVariables(move) { - super.updateVariables(move); + postPlay(move) { + super.postPlay(move); // Does this move give check? const oppCol = this.turn; if (this.underCheck(oppCol)) @@ -48,16 +48,14 @@ export const VariantRules = class ThreechecksRules extends ChessRules { } static GenRandInitFen(randomness) { - return ChessRules.GenRandInitFen(randomness) - // Add check flags (at 0) - .replace(" w 0 1111", " w 0 111100"); + // Add check flags (at 0) + return ChessRules.GenRandInitFen(randomness).slice(0, -2) + "00"; } getFlagsFen() { let fen = super.getFlagsFen(); // Add check flags - for (let c of ["w", "b"]) - fen += this.checkFlags[c]; + for (let c of ["w", "b"]) fen += this.checkFlags[c]; return fen; }