X-Git-Url: https://git.auder.net/assets/icon_infos.svg?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fviews%2FRules.vue;h=015df7b3851e87e55eafa5bc41d0167ffe2c085b;hb=9bd6786b863c31c3ccd0057b87cf454c90886056;hp=55564ffdee6292361cc0fe7cadf591591182c0fe;hpb=910d631b73cad5ffef1b4461157b704e7e7057d8;p=vchess.git diff --git a/client/src/views/Rules.vue b/client/src/views/Rules.vue index 55564ffd..015df7b3 100644 --- a/client/src/views/Rules.vue +++ b/client/src/views/Rules.vue @@ -20,18 +20,20 @@ main ) | {{ st.tr["Stop game"] }} button( - v-if="display=='rules' && gameInfo.vname!='Dark'" + v-if="showAnalyzeBtn" @click="gotoAnalyze()" ) | {{ st.tr["Analyse"] }} + .row + .col-sm-12.col-md-8.col-md-offset-2.col-lg-6.col-lg-offset-3 div( v-show="display=='rules'" v-html="content" ) ComputerGame( + ref="compgame" v-show="display=='computer'" :game-info="gameInfo" - @game-over="stopGame" @game-stopped="gameStopped" ) @@ -40,6 +42,7 @@ main import ComputerGame from "@/components/ComputerGame.vue"; import { store } from "@/store"; import { getDiagram } from "@/utils/printDiagram"; +import { CompgameStorage } from "@/utils/compgameStorage"; export default { name: "my-rules", components: { @@ -54,8 +57,6 @@ export default { gameInfo: { vname: "", mode: "versus", - fen: "", - score: "*" } }; }, @@ -69,6 +70,9 @@ export default { this.re_setVariant(this.$route.params["vname"]); }, computed: { + showAnalyzeBtn: function() { + return (this.display=='rules' && (!window.V || V.CanAnalyze)); + }, content: function() { if (!this.gameInfo.vname) return ""; //variant not set yet // (AJAX) Request to get rules content (plain text, HTML) @@ -116,16 +120,24 @@ export default { this.gameInProgress = true; this.display = "computer"; this.gameInfo.mode = mode; - this.gameInfo.score = "*"; - this.gameInfo.fen = V.GenRandInitFen(); + if (this.gameInfo.mode == "versus") { + CompgameStorage.get(this.gameInfo.vname, (game) => { + // NOTE: game might be null + this.$refs["compgame"].launchGame(game); + }); + } else { + this.$refs["compgame"].launchGame(); + } }, - // user is willing to stop the game: - stopGame: function(score) { - this.gameInfo.score = score || "?"; + // user wants to stop the game: + stopGame: function() { + this.$refs["compgame"].gameOver("?", "Undetermined result"); }, // The game is effectively stopped: gameStopped: function() { this.gameInProgress = false; + if (this.gameInfo.mode == "versus") + CompgameStorage.remove(this.gameInfo.vname); }, gotoAnalyze: function() { this.$router.push(