'update'
[vchess.git] / client / src / components / ComputerGame.vue
index 46b672b..b20b8fe 100644 (file)
@@ -7,14 +7,13 @@ BaseGame(:game="game" :vr="vr" ref="basegame"
 import BaseGame from "@/components/BaseGame.vue";
 import { store } from "@/store";
 import Worker from "worker-loader!@/playCompMove";
-
 export default {
   name: "my-computer-game",
   components: {
     BaseGame,
   },
   // gameInfo: fen + mode + vname
-  // mode: "auto" (game comp vs comp), "versus" (normal) or "analyze"
+  // mode: "auto" (game comp vs comp) or "versus" (normal)
   props: ["gameInfo"],
   data: function() {
     return {
@@ -35,7 +34,6 @@ export default {
       if (newScore != "*")
       {
         this.game.score = newScore; //user action
-        this.game.mode = "analyze";
         if (!this.compThink)
           this.$emit("game-stopped"); //otherwise wait for comp
       }
@@ -66,7 +64,7 @@ export default {
         let moveIdx = 0;
         let self = this;
         (function executeMove() {
-          self.$refs.basegame.play(compMove[moveIdx++], animate);
+          self.$set(self.game, "moveToPlay", compMove[moveIdx++]);
           if (moveIdx >= compMove.length)
           {
             self.compThink = false;
@@ -81,12 +79,8 @@ export default {
     if (!!this.gameInfo.fen)
       this.launchGame();
   },
-  // dans variant.js (plutôt room.js) conn gère aussi les challenges
-  // et les chats dans chat.js. Puis en webRTC, repenser tout ça.
   methods: {
-    launchGame: async function() {
-      const vModule = await import("@/variants/" + this.gameInfo.vname + ".js");
-      window.V = vModule.VariantRules;
+    launchGame: function() {
       this.compWorker.postMessage(["scripts",this.gameInfo.vname]);
       this.compWorker.postMessage(["init",this.gameInfo.fen]);
       this.vr = new V(this.gameInfo.fen);
@@ -114,6 +108,8 @@ export default {
       this.compWorker.postMessage(["askmove"]);
     },
     processMove: function(move) {
+      if (this.game.score != "*")
+        return;
       // Send the move to web worker (including his own moves)
       this.compWorker.postMessage(["newmove",move]);
       // subTurn condition for Marseille (and Avalanche) rules
@@ -126,7 +122,6 @@ export default {
     gameOver: function(score, scoreMsg) {
       this.game.score = score;
       this.game.scoreMsg = scoreMsg;
-      this.game.mode = "analyze";
       this.$emit("game-over", score); //bubble up to Rules.vue
     },
   },