X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fcomponents%2Frules.js;h=0f27d5327177c9f18d664869a6b024ea09dc6c37;hb=b955c65b942d09d24b5c3bed0d755d4f2f8f71f1;hp=d8aaa0fc1216ca343c5b90af1b39aacf16bf5033;hpb=a5d5668613d9a3d04c9a4f8b69122d02b7322137;p=vchess.git diff --git a/public/javascripts/components/rules.js b/public/javascripts/components/rules.js index d8aaa0fc..0f27d532 100644 --- a/public/javascripts/components/rules.js +++ b/public/javascripts/components/rules.js @@ -1,16 +1,44 @@ // Load rules on variant page Vue.component('my-rules', { + props: ["settings"], data: function() { - return { content: "" }; + return { + content: "", + display: "rules", + mode: "computer", + subMode: "", //'auto' for game CPU vs CPU + gameInProgress: false, + mycolor: "w", + allowMovelist: true, + fen: "", + }; }, template: `
-
+
+ + + + +
+
+ +
`, mounted: function() { // AJAX request to get rules content (plain text, HTML) - ajax("/rules/" + variant, "GET", response => { + ajax("/rules/" + variant.name, "GET", response => { let replaceByDiag = (match, p1, p2) => { const args = this.parseFen(p2); return getDiagram(args); @@ -25,7 +53,28 @@ Vue.component('my-rules', { position: fenParts[0], marks: fenParts[1], orientation: fenParts[2], + shadow: fenParts[3], }; }, + startGame: function() { + if (this.gameInProgress) + return; + this.gameInProgress = true; + this.mode = "computer"; + this.display = "computer"; + this.fen = V.GenRandInitFen(); + }, + stopGame: function() { + this.gameInProgress = false; + this.mode = "analyze"; + }, + playAgainstComputer: function() { + this.subMode = ""; + this.startGame(); + }, + watchComputerGame: function() { + this.subMode = "auto"; + this.startGame(); + }, }, })