X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FOmega.js;h=355960b737801fe4690639a98234f54cba396c99;hp=258bc807abd904ae36ea660c16694e24c28f3485;hb=b19c68965d6249ab4d7873b99e2f22471049b2c1;hpb=e90bafa8fb5fb7641728231bf2398590d96c672a diff --git a/client/src/variants/Omega.js b/client/src/variants/Omega.js index 258bc807..355960b7 100644 --- a/client/src/variants/Omega.js +++ b/client/src/variants/Omega.js @@ -48,7 +48,7 @@ export class OmegaRules extends ChessRules { if (['K','k'].includes(row[i])) kings[row[i]]++; if (['x'].concat(V.PIECES).includes(row[i].toLowerCase())) sumElts++; else { - const num = parseInt(row[i]); + const num = parseInt(row[i], 10); if (isNaN(num)) return false; sumElts += num; } @@ -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"); }