From 5199c0d85710470f06e23572b360a87517dabf3c Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Thu, 18 Mar 2021 23:37:50 +0100
Subject: [PATCH] Fix Shinobi: no captain in hand

---
 client/src/variants/Shinobi.js | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/client/src/variants/Shinobi.js b/client/src/variants/Shinobi.js
index babf6e19..8afe6fc7 100644
--- a/client/src/variants/Shinobi.js
+++ b/client/src/variants/Shinobi.js
@@ -60,7 +60,7 @@ export class ShinobiRules extends ChessRules {
     if (!ChessRules.IsGoodFen(fen)) return false;
     const fenParsed = V.ParseFen(fen);
     // 5) Check reserve
-    if (!fenParsed.reserve || !fenParsed.reserve.match(/^[0-9]{6,6}$/))
+    if (!fenParsed.reserve || !fenParsed.reserve.match(/^[0-9]{5,5}$/))
       return false;
     return true;
   }
@@ -73,12 +73,12 @@ export class ShinobiRules extends ChessRules {
     );
   }
 
-  // In hand initially: captain, ninja, samurai + 2 x monk, horse, lance.
+  // In hand initially: ninja, samurai + 2 x monk, horse, lance.
   static GenRandInitFen(randomness) {
     const baseFen = ChessRules.GenRandInitFen(Math.min(randomness, 1));
     return (
       baseFen.substr(0, 35) + "3CK3 " +
-      "w 0 " + baseFen.substr(48, 2) + " - 111222"
+      "w 0 " + baseFen.substr(48, 2) + " - 11222"
     );
   }
 
@@ -101,12 +101,11 @@ export class ShinobiRules extends ChessRules {
       V.ParseFen(fen).reserve.split("").map(x => parseInt(x, 10));
     this.reserve = {
       w: {
-        [V.CAPTAIN]: reserve[0],
-        [V.NINJA]: reserve[1],
-        [V.SAMURAI]: reserve[2],
-        [V.MONK]: reserve[3],
-        [V.HORSE]: reserve[4],
-        [V.LANCE]: reserve[5]
+        [V.NINJA]: reserve[0],
+        [V.SAMURAI]: reserve[1],
+        [V.MONK]: reserve[2],
+        [V.HORSE]: reserve[3],
+        [V.LANCE]: reserve[4]
       }
     };
   }
@@ -122,7 +121,7 @@ export class ShinobiRules extends ChessRules {
   }
 
   static get RESERVE_PIECES() {
-    return [V.CAPTAIN, V.NINJA, V.SAMURAI, V.MONK, V.HORSE, V.LANCE];
+    return [V.NINJA, V.SAMURAI, V.MONK, V.HORSE, V.LANCE];
   }
 
   getReserveMoves([x, y]) {
-- 
2.44.0