Fix Horde variant + a bug when socket is not ready in Hall and Game send() method
authorBenjamin Auder <benjamin.auder@somewhere>
Sat, 28 Mar 2020 20:02:47 +0000 (21:02 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Sat, 28 Mar 2020 20:02:47 +0000 (21:02 +0100)
client/src/variants/Horde.js
client/src/views/Game.vue
client/src/views/Hall.vue

index e61803b..6305c41 100644 (file)
@@ -39,13 +39,27 @@ export class HordeRules extends ChessRules {
     if (randomness == 2) randomness--;
     const fen = ChessRules.GenRandInitFen(randomness);
     return (
-      // 27 first chars are 3 rows + 3 slashes
-      fen.substr(0, 27)
+      // 20 first chars are 3 rows + 3 slashes
+      fen.substr(0, 20)
       // En passant available, but no castle:
       .concat("1PP2PP1/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP w 0 -")
     );
   }
 
+  filterValid(moves) {
+    if (this.turn == 'w') return moves;
+    return super.filterValid(moves);
+  }
+
+  getCheckSquares(color) {
+    if (color == 'w') return [];
+    return (
+      this.underCheck('b')
+        ? [JSON.parse(JSON.stringify(this.kingPos['b']))]
+        : []
+    );
+  }
+
   getCurrentScore() {
     if (this.turn == 'w') {
       // Do I have any unit remaining? If not, I lost.
index fe55f74..19033f5 100644 (file)
@@ -372,7 +372,7 @@ export default {
       }
     },
     send: function(code, obj) {
-      if (!!this.conn)
+      if (!!this.conn && this.conn.readyState == 1)
         this.conn.send(JSON.stringify(Object.assign({ code: code }, obj)));
     },
     isConnected: function(index) {
index 57557d4..ab5108e 100644 (file)
@@ -502,7 +502,7 @@ export default {
         document.getElementById("cadence").focus();
     },
     send: function(code, obj) {
-      if (!!this.conn) {
+      if (!!this.conn && this.conn.readyState == 1) {
         this.conn.send(JSON.stringify(Object.assign({ code: code }, obj)));
       }
     },