X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FPocketknight.js;h=ad17f937fc6e5991a275e025aa69c2c2a65ecd24;hb=4313762da3237b04f204e121a20cab3ba7bb5dd2;hp=6b92a1f5bc33512744e870ec66dadb441c38ed8a;hpb=c6b7573bc6acc38d54a15a80647b5cca53eeeb4a;p=vchess.git diff --git a/client/src/variants/Pocketknight.js b/client/src/variants/Pocketknight.js index 6b92a1f5..ad17f937 100644 --- a/client/src/variants/Pocketknight.js +++ b/client/src/variants/Pocketknight.js @@ -2,7 +2,8 @@ import { ChessRules, Move, PiPo } from "@/base_rules"; import { randInt } from "@/utils/alea"; export class PocketknightRules extends ChessRules { - hoverHighlight(x, y) { + + hoverHighlight([x, y]) { // Testing move validity results in an infinite update loop. // TODO: find a way to test validity anyway. return (this.subTurn == 2 && this.board[x][y] == V.EMPTY); @@ -32,10 +33,9 @@ export class PocketknightRules extends ChessRules { this.subTurn = 1; } - static GenRandInitFen(randomness) { + static GenRandInitFen(options) { // Add 2 knight flags - return ChessRules.GenRandInitFen(randomness) - .slice(0, -2) + "11 -"; + return ChessRules.GenRandInitFen(options).slice(0, -2) + "11 -"; } getFlagsFen() { @@ -44,6 +44,12 @@ export class PocketknightRules extends ChessRules { ); } + canIplay(side, [x, y]) { + if (this.subTurn == 1) return super.canIplay(side, [x, y]); + // subturn == 2, drop the knight: + return side == this.turn && this.board[x][y] == V.EMPTY; + } + getPotentialMovesFrom([x, y]) { if (this.subTurn == 1) { let moves = super.getPotentialMovesFrom([x, y]); @@ -282,4 +288,5 @@ export class PocketknightRules extends ChessRules { // Knight landing: return "N@" + V.CoordsToSquare(move.end); } + };