X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FComputerGame.vue;h=b212d0fdf4e90641683eb57f95a749e6aca58655;hp=9cd5f9b1bfac70611d0aefaa7ae033c73aae7965;hb=eb2d61de8d569470fa329a484efe9bab420b2b82;hpb=996bdaa457f04f8b65b4018193ace54ccec953c1 diff --git a/client/src/components/ComputerGame.vue b/client/src/components/ComputerGame.vue index 9cd5f9b1..b212d0fd 100644 --- a/client/src/components/ComputerGame.vue +++ b/client/src/components/ComputerGame.vue @@ -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,12 +63,12 @@ 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; @@ -119,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"); }