From: Benjamin Auder Date: Thu, 23 Jul 2020 14:24:44 +0000 (+0200) Subject: Fix Omega promotions X-Git-Url: https://git.auder.net/%7B%7B%20asset%28%27mixstore/css/static/doc/screen_timer.png?a=commitdiff_plain;h=b19c68965d6249ab4d7873b99e2f22471049b2c1;p=vchess.git Fix Omega promotions --- diff --git a/client/src/variants/Omega.js b/client/src/variants/Omega.js index 1fde5821..355960b7 100644 --- a/client/src/variants/Omega.js +++ b/client/src/variants/Omega.js @@ -307,6 +307,22 @@ export class OmegaRules extends ChessRules { return moves; } + addPawnMoves([x1, y1], [x2, y2], moves, promotions) { + let finalPieces = [V.PAWN]; + const color = this.turn; + const lastRank = (color == "w" ? 1 : V.size.x - 2); + if (x2 == lastRank) { + // promotions arg: special override for Hiddenqueen variant + if (!!promotions) finalPieces = promotions; + else if (!!V.PawnSpecs.promotions) finalPieces = V.PawnSpecs.promotions; + } + let tr = null; + for (let piece of finalPieces) { + tr = (piece != V.PAWN ? { c: color, p: piece } : null); + moves.push(this.getBasicMove([x1, y1], [x2, y2], tr)); + } + } + getPotentialChampionMoves(sq) { return this.getSlideNJumpMoves(sq, V.steps[V.CHAMPION], "oneStep"); }