X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FAtomic1.js;fp=client%2Fsrc%2Fvariants%2FAtomic1.js;h=a5198d6951b97bed322e19ee45e43243b75d582f;hp=c44c2cac4b8e25f75cfba1dfec8a742eb45f2f4f;hb=ded43c88fad60fd8f9bb46aabd67f3f2092f65f3;hpb=1943de6b9d55716dac4ef8b5672bed803d8d43f9 diff --git a/client/src/variants/Atomic1.js b/client/src/variants/Atomic1.js index c44c2cac..a5198d69 100644 --- a/client/src/variants/Atomic1.js +++ b/client/src/variants/Atomic1.js @@ -5,6 +5,17 @@ export class Atomic1Rules extends ChessRules { getPotentialMovesFrom([x, y]) { let moves = super.getPotentialMovesFrom([x, y]); + if (this.getPiece(x, y) == V.PAWN) { + // Promotions by captures can be reduced to only one deterministic + // move (because of the explosion). + moves = moves.filter(m => { + return ( + m.vanish.length == 1 || + [V.PAWN, V.QUEEN].includes(m.appear[0].p) + ); + }); + } + // Handle explosions moves.forEach(m => { // NOTE: if vanish.length==2 and appear.length==2, this is castle