Fix games ordering in MyGames, fix en-passant mistake in Rifle variant
[vchess.git] / client / src / variants / Atomic.js
index 2fcb5a6..4aad7b7 100644 (file)
@@ -1,6 +1,13 @@
 import { ChessRules, PiPo } from "@/base_rules";
 
 export const VariantRules = class AtomicRules extends ChessRules {
+  getEpSquare(moveOrSquare) {
+    if (typeof moveOrSquare !== "object" || move.appear.length > 0)
+      return super.getEpSquare(moveOrSquare);
+    // Capturing move: no en-passant
+    return undefined;
+  }
+
   getPotentialMovesFrom([x, y]) {
     let moves = super.getPotentialMovesFrom([x, y]);
 
@@ -76,7 +83,7 @@ export const VariantRules = class AtomicRules extends ChessRules {
   updateVariables(move) {
     super.updateVariables(move);
     if (move.appear.length == 0) {
-      //capture
+      // Capture
       const firstRank = { w: 7, b: 0 };
       for (let c of ["w", "b"]) {
         // Did we explode king of color c ? (TODO: remove move earlier)
@@ -143,10 +150,9 @@ export const VariantRules = class AtomicRules extends ChessRules {
     const color = this.turn;
     const kp = this.kingPos[color];
     if (kp[0] < 0)
-      //king disappeared
+      // King disappeared
       return color == "w" ? "0-1" : "1-0";
     if (this.atLeastOneMove())
-      // game not over
       return "*";
     if (!this.isAttacked(kp, [V.GetOppCol(color)])) return "1/2";
     return color == "w" ? "0-1" : "1-0"; //checkmate