X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FAtomic1.js;fp=client%2Fsrc%2Fvariants%2FAtomic.js;h=27769a7e372aa4a44acbb004373f6efce5a5ee62;hp=e2f4bdf5e3ee6bb0cc468c65468b95db97d8e488;hb=0fb43db7c2858201e8410670b90f95ad8b138964;hpb=1186fba725f3da468f8834a9b44d58993a7d86d4 diff --git a/client/src/variants/Atomic.js b/client/src/variants/Atomic1.js similarity index 92% rename from client/src/variants/Atomic.js rename to client/src/variants/Atomic1.js index e2f4bdf5..27769a7e 100644 --- a/client/src/variants/Atomic.js +++ b/client/src/variants/Atomic1.js @@ -1,6 +1,6 @@ import { ChessRules, PiPo } from "@/base_rules"; -export class AtomicRules extends ChessRules { +export class Atomic1Rules extends ChessRules { getPotentialMovesFrom([x, y]) { let moves = super.getPotentialMovesFrom([x, y]); @@ -79,7 +79,8 @@ export class AtomicRules extends ChessRules { postPlay(move) { super.postPlay(move); - if (move.appear.length == 0) { + // NOTE: (harmless) condition on movesCount for Atomic2 + if (move.appear.length == 0 && this.movesCount >= 2) { // Capture const firstRank = { w: 7, b: 0 }; for (let c of ["w", "b"]) { @@ -107,7 +108,11 @@ export class AtomicRules extends ChessRules { super.postUndo(move); const c = this.turn; const oppCol = V.GetOppCol(c); - if ([this.kingPos[c][0], this.kingPos[oppCol][0]].some(e => e < 0)) { + // NOTE: condition on movesCount for Atomic2 + if ( + this.movesCount >= 1 && + [this.kingPos[c][0], this.kingPos[oppCol][0]].some(e => e < 0) + ) { // There is a chance that last move blowed some king away.. for (let psq of move.vanish) { if (psq.p == "k")