Experimental change: options replacing randomness (more general)
[vchess.git] / client / src / components / ComputerGame.vue
index 605b3b1..b212d0f 100644 (file)
@@ -44,10 +44,14 @@ export default {
       setTimeout(() => {
         if (this.currentUrl != document.location.href) return; //page change
         self.$refs["basegame"].play(compMove, "received");
-        const animationLength =
+        let animationLength = 0;
+        const mvArray = (Array.isArray(compMove) ? compMove : [compMove]);
+        const realLength =
+          mvArray.filter(m => m.start.x >= 0 && !m.end.noHighlight).length;
+        if (realLength >= 1)
           // 250 = length of animation, 500 = delay between sub-moves
           // TODO: a callback would be cleaner.
-          250 + (Array.isArray(compMove) ? (compMove.length - 1) * 750 : 0);
+          animationLength = 250 + (realLength - 1) * 750;
         setTimeout(
           () => {
             self.compThink = false;
@@ -59,23 +63,17 @@ export default {
     };
   },
   methods: {
-    launchGame: function(game) {
+    launchGame: function(game, options) {
       this.compWorker.postMessage(["scripts", this.gameInfo.vname]);
       if (!game) {
         game = {
           vname: this.gameInfo.vname,
-          fenStart: V.GenRandInitFen(this.st.settings.randomness),
+          fenStart: V.GenRandInitFen(options),
           moves: []
         };
         game.fen = game.fenStart;
         if (this.gameInfo.mode == "versus") CompgameStorage.add(game);
       }
-
-// TODO: debug Hiddenqueen
-//game.fen = "rbnqbknr/pppptppp/8/8/8/8/TPPPPPPP/RBNQBKNR w 0 ahah -";
-//game.fenStart = "rbnqbknr/pppptppp/8/8/8/8/TPPPPPPP/RBNQBKNR w 0 ahah -";
-//game.mycolor = 'w';
-
       if (!game.mycolor) game.mycolor = (Math.random() < 0.5 ? "w" : "b");
       this.compWorker.postMessage(["init", game.fen]);
       this.vr = new V(game.fen);
@@ -125,7 +123,7 @@ export default {
     },
     gameOver: function(score) {
       this.game.score = score;
-      this.game.scoreMsg = getScoreMessage(score);
+      this.game.scoreMsg = getScoreMessage(score, V.ReverseColors);
       // If comp is thinking, let him finish:
       if (!this.compThink) this.$emit("game-stopped");
     }