X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FRococo.js;h=e0838e14baf7bfb5ab711dd04ed62eb4374003c9;hb=107dc1bd5361e2538b1551bdcc37c1e90a444b83;hp=8489ae903248e725bf7ede90bc5bd517860b26b2;hpb=2f8dce6a81063289d9d4cbca7971f80b1b194b84;p=vchess.git diff --git a/client/src/variants/Rococo.js b/client/src/variants/Rococo.js index 8489ae90..e0838e14 100644 --- a/client/src/variants/Rococo.js +++ b/client/src/variants/Rococo.js @@ -15,6 +15,15 @@ export class RococoRules extends ChessRules { return ChessRules.PIECES.concat([V.IMMOBILIZER]); } + static get Lines() { + return [ + [[1, 1], [1, 9]], + [[1, 9], [9, 9]], + [[9, 9], [9, 1]], + [[9, 1], [1, 1]] + ]; + } + getPpath(b) { if (b[1] == "m") //'m' for Immobilizer (I is too similar to 1) @@ -131,8 +140,9 @@ export class RococoRules extends ChessRules { getPotentialMovesFrom([x, y]) { // Pre-check: is thing on this square immobilized? const imSq = this.isImmobilized([x, y]); - if (!!imSq) { - // Only option is suicide: + const piece = this.getPiece(x, y); + if (!!imSq && piece != V.KING) { + // Only option is suicide, if I'm not a king: return [ new Move({ start: { x: x, y: y }, @@ -150,7 +160,7 @@ export class RococoRules extends ChessRules { ]; } let moves = []; - switch (this.getPiece(x, y)) { + switch (piece) { case V.IMMOBILIZER: moves = this.getPotentialImmobilizerMoves([x, y]); break; @@ -623,7 +633,7 @@ export class RococoRules extends ChessRules { static GenRandInitFen(randomness) { if (randomness == 0) { return ( - "91/1rnbkqbnm1/1pppppppp1/91/91/91/91/1PPPPPPPP1/1MNBQKBNR1/91 w 0 -" + "91/1rqnbknqm1/1pppppppp1/91/91/91/91/1PPPPPPPP1/1MQNBKNQR1/91 w 0 -" ); }