From: Benjamin Auder Date: Tue, 9 Apr 2019 15:10:46 +0000 (+0200) Subject: Fix play comp move in ComputerGame component X-Git-Url: https://git.auder.net/doc/html/packages.html?a=commitdiff_plain;h=1acda11cd124a446c8bb451feae380efcc8a1cbc;p=vchess.git Fix play comp move in ComputerGame component --- diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 78e64aad..8285c0ce 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -185,8 +185,6 @@ export default { move.fen = this.vr.getFen(); if (this.st.settings.sound == 2) new Audio("/sounds/move.mp3").play().catch(err => {}); - // Send the move to web worker (including his own moves) //TODO: doesn't work here --> need to send an event instead - this.compWorker.postMessage(["newmove",move]); if (!navigate && (this.score == "*" || this.analyze)) { // Stack move on movesList at current cursor @@ -205,15 +203,7 @@ export default { else //just show score on screen (allow undo) this.showScoreMsg(score); } - // subTurn condition for Marseille (and Avalanche) rules - else if ((this.mode == "computer" && (!this.vr.subTurn || this.vr.subTurn <= 1)) - && (this.subMode == "auto" || this.vr.turn != this.mycolor)) - { - this.playComputerMove(); - } - // https://vuejs.org/v2/guide/list.html#Caveats (also for undo) - //if (navigate) - // this.$children[0].$forceUpdate(); //TODO!? + this.$emit("newmove", move); //post-processing (e.g. computer play) }, undo: function(move) { let navigate = !move; @@ -229,9 +219,7 @@ export default { if (this.st.settings.sound == 2) new Audio("/sounds/undo.mp3").play().catch(err => {}); this.incheck = this.vr.getCheckSquares(this.vr.turn); - if (navigate) - this.$children[0].$forceUpdate(); //TODO!? - else if (this.analyze) //TODO: can this happen? + if (this.analyze) //TODO: can this happen? this.moves.pop(); }, gotoMove: function(index) { diff --git a/client/src/components/ComputerGame.vue b/client/src/components/ComputerGame.vue index ff9c7c04..b3db07f9 100644 --- a/client/src/components/ComputerGame.vue +++ b/client/src/components/ComputerGame.vue @@ -2,7 +2,8 @@ .row .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 BaseGame(:vname="vname" :analyze="analyze" - :vr="vr" :fen-start="fenStart" :players="players" :mycolor="mycolor") + :vr="vr" :fen-start="fenStart" :players="players" :mycolor="mycolor" + ref="basegame" @newmove="processMove")