Fix Makruk/Makpong
[vchess.git] / client / src / variants / Makruk.js
index 6205f23..75fb1da 100644 (file)
@@ -3,6 +3,7 @@ import { ArrayFun } from "@/utils/array";
 import { randInt, shuffle } from "@/utils/alea";
 
 export class MakrukRules extends ChessRules {
+
   static get HasFlags() {
     return false;
   }
@@ -15,6 +16,10 @@ export class MakrukRules extends ChessRules {
     return true;
   }
 
+  static get Notoodark() {
+    return true;
+  }
+
   static get PawnSpecs() {
     return Object.assign(
       {},
@@ -104,6 +109,12 @@ export class MakrukRules extends ChessRules {
     );
   }
 
+  isAttacked(sq, color) {
+    return (
+      super.isAttacked(sq, color) || this.isAttackedByPromoted(sq, color)
+    );
+  }
+
   isAttackedByBishop(sq, color) {
     const forward = (color == 'w' ? 1 : -1);
     return this.isAttackedBySlideNJump(
@@ -125,6 +136,16 @@ export class MakrukRules extends ChessRules {
     );
   }
 
+  isAttackedByPromoted(sq, color) {
+    return super.isAttackedBySlideNJump(
+      sq,
+      color,
+      V.PROMOTED,
+      V.steps[V.BISHOP],
+      "oneStep"
+    );
+  }
+
   static get VALUES() {
     return {
       p: 1,
@@ -136,4 +157,5 @@ export class MakrukRules extends ChessRules {
       k: 1000
     };
   }
+
 };