X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FDynamo.js;h=35c41c58a81a4fc0b4f9f49b5a175c62b924347e;hb=ded43c88fad60fd8f9bb46aabd67f3f2092f65f3;hp=15cfe95f1d9efaebdf72353192eca8a2664d73f7;hpb=08ccbb7827e93df14cd3206a57ec5e598afd93f3;p=vchess.git diff --git a/client/src/variants/Dynamo.js b/client/src/variants/Dynamo.js index 15cfe95f..35c41c58 100644 --- a/client/src/variants/Dynamo.js +++ b/client/src/variants/Dynamo.js @@ -2,6 +2,7 @@ import { ChessRules, Move, PiPo } from "@/base_rules"; import { randInt } from "@/utils/alea"; export class DynamoRules extends ChessRules { + // TODO? later, allow to push out pawns on a and h files static get HasEnpassant() { return false; @@ -43,7 +44,6 @@ export class DynamoRules extends ChessRules { }); this.amoves.push(move); } - this.subTurn = 1; // Stack "first moves" (on subTurn 1) to merge and check opposite moves this.firstMove = []; } @@ -739,18 +739,11 @@ export class DynamoRules extends ChessRules { return potentialMoves; } - getCurrentScore() { - if (this.subTurn == 2) - // Move not over - return "*"; - return super.getCurrentScore(); - } - doClick(square) { // A click to promote a piece on subTurn 2 would trigger this. // For now it would then return [NaN, NaN] because surrounding squares // have no IDs in the promotion modal. TODO: improve this? - if (!square[0]) return null; + if (isNaN(square[0])) return null; // If subTurn == 2 && square is empty && !underCheck && !isOpposite, // then return an empty move, allowing to "pass" subTurn2 const La = this.amoves.length; @@ -774,6 +767,8 @@ export class DynamoRules extends ChessRules { play(move) { move.flags = JSON.stringify(this.aggregateFlags()); V.PlayOnBoard(this.board, move); + // NOTE; if subTurn == 1, there may be no available moves at subTurn == 2. + // However, it's quite easier to wait for a user click. if (this.subTurn == 2) { const L = this.firstMove.length; this.amoves.push(this.getAmove(this.firstMove[L-1], move)); @@ -881,4 +876,5 @@ export class DynamoRules extends ChessRules { return initialSquare + "R"; return move.appear[0].p.toUpperCase() + initialSquare + finalSquare; } + };