Fix Antiking 1 notation
authorBenjamin Auder <benjamin.auder@somewhere>
Tue, 17 Mar 2020 15:41:53 +0000 (16:41 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Tue, 17 Mar 2020 15:41:53 +0000 (16:41 +0100)
client/src/variants/Antiking1.js
client/src/variants/Berolina.js

index 42450d1..ed6173e 100644 (file)
@@ -267,4 +267,27 @@ export const VariantRules = class Antiking1Rules extends ChessRules {
   static get SEARCH_DEPTH() {
     return 2;
   }
   static get SEARCH_DEPTH() {
     return 2;
   }
+
+  // TODO: notation copied from Berolina
+  getNotation(move) {
+    const piece = this.getPiece(move.start.x, move.start.y);
+    if (piece == V.PAWN) {
+      // Pawn move
+      const finalSquare = V.CoordsToSquare(move.end);
+      let notation = "";
+      if (move.vanish.length == 2)
+        //capture
+        notation = "Px" + finalSquare;
+      else {
+        // No capture: indicate the initial square for potential ambiguity
+        const startSquare = V.CoordsToSquare(move.start);
+        notation = startSquare + finalSquare;
+      }
+      if (move.appear[0].p != V.PAWN)
+        // Promotion
+        notation += "=" + move.appear[0].p.toUpperCase();
+      return notation;
+    }
+    return super.getNotation(move); //all other pieces are orthodox
+  }
 };
 };
index ae15095..0659224 100644 (file)
@@ -148,7 +148,7 @@ export const VariantRules = class BerolinaRules extends ChessRules {
         notation = startSquare + finalSquare;
       }
       if (move.appear[0].p != V.PAWN)
         notation = startSquare + finalSquare;
       }
       if (move.appear[0].p != V.PAWN)
-        //promotion
+        // Promotion
         notation += "=" + move.appear[0].p.toUpperCase();
       return notation;
     }
         notation += "=" + move.appear[0].p.toUpperCase();
       return notation;
     }