Improve Spartan, Avalam + Emergo pieces
[vchess.git] / client / src / variants / Spartan.js
index 5b0ccec..acab8ad 100644 (file)
@@ -12,8 +12,7 @@ export class SpartanRules extends ChessRules {
   }
 
   getPpath(b) {
-    if ([V.LIEUTENANT, V.GENERAL, V.CAPTAIN, V.WARLORD].includes(b[1]))
-      return "Spartan/" + b;
+    if (b[0] == 'b' && b[1] != 'k') return "Spartan/" + b;
     return b;
   }
 
@@ -398,4 +397,26 @@ export class SpartanRules extends ChessRules {
     return 2;
   }
 
+  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); //OK for all other pieces
+  }
+
 };