Fix Pandemonium + Janggi (first move)
authorBenjamin Auder <benjamin.auder@somewhere>
Tue, 16 Feb 2021 22:04:38 +0000 (23:04 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Tue, 16 Feb 2021 22:04:38 +0000 (23:04 +0100)
client/src/variants/Janggi.js
client/src/variants/Pandemonium.js

index 2734242..aecc8fe 100644 (file)
@@ -107,8 +107,12 @@ export class JanggiRules extends ChessRules {
     if (this.movesCount <= 1) {
       const firstRank = (this.movesCount == 0 ? 9 : 0);
       const initDestFile = new Map([[1, 2], [7, 6]]);
-      // Only option is knight / elephant swap:
-      if (x == firstRank && !!initDestFile.get(y)) {
+      // Only option is knight --> elephant swap:
+      if (
+        x == firstRank &&
+        !!initDestFile.get(y) &&
+        this.getPiece(x, y) == V.KNIGHT
+      ) {
         const destFile = initDestFile.get(y);
         moves.push(
           new Move({
index 7795a7b..f4ae3c4 100644 (file)
@@ -287,8 +287,12 @@ export class PandemoniumRules extends ChessRules {
       const firstRank = (this.movesCount == 0 ? 9 : 0);
       // TODO: initDestFile currently hardcoded for deterministic setup
       const initDestFile = new Map([[1, 2], [8, 7]]);
-      // Only option is knight / bishop swap:
-      if (x == firstRank && !!initDestFile.get(y)) {
+      // Only option is knight --> bishop swap:
+      if (
+        x == firstRank &&
+        !!initDestFile.get(y) &&
+        this.getPiece(x, y) == V.KNIGHT
+      ) {
         const destFile = initDestFile.get(y);
         return [
           new Move({