X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FComputerGame.vue;h=941016b7377bcd6accf7eb9401df59562e415cc9;hb=6cd07b4da66403ab2ff751b1c0361fa237cd0ed2;hp=1506e9828aadc39bc6d6bd1412a45f3ca5878cfb;hpb=7aa548e72ba8a4af4e2c7f63e7723ad10d2cd3a4;p=vchess.git diff --git a/client/src/components/ComputerGame.vue b/client/src/components/ComputerGame.vue index 1506e982..941016b7 100644 --- a/client/src/components/ComputerGame.vue +++ b/client/src/components/ComputerGame.vue @@ -48,12 +48,18 @@ export default { this.compWorker.onmessage = e => { let compMove = e.data; if (!compMove) + { + this.compThink = false; + this.$emit("game-stopped"); //no more moves: mate or stalemate return; //after game ends, no more moves, nothing to do + } if (!Array.isArray(compMove)) compMove = [compMove]; //to deal with MarseilleRules // Small delay for the bot to appear "more human" const delay = Math.max(500-(Date.now()-this.timeStart), 0); setTimeout(() => { + if (this.currentUrl != document.location.href) + return; //page change // NOTE: Dark and 2-moves are incompatible const animate = (this.gameInfo.vname != "Dark"); const animDelay = (animate ? 250 : 0); @@ -88,6 +94,7 @@ export default { let players = [{name:"Myself"},{name:"Computer"}]; if (mycolor == "b") players = players.reverse(); + this.currentUrl = document.location.href; //to avoid playing outside page // NOTE: fen and fenStart are redundant in game object this.game = Object.assign({}, this.gameInfo,