Commit | Line | Data |
---|---|---|
7f3484bd | 1 | <template lang="pug"> |
7aa548e7 | 2 | main |
697ee580 BA |
3 | .row |
4 | .col-sm-12.col-md-10.col-md-offset-1 | |
5 | BaseGame(:game="game" :vr="vr" ref="basegame") | |
7f3484bd BA |
6 | </template> |
7 | ||
8 | <script> | |
9 | import BaseGame from "@/components/BaseGame.vue"; | |
7f3484bd | 10 | import { store } from "@/store"; |
7f3484bd BA |
11 | import { ArrayFun } from "@/utils/array"; |
12 | ||
13 | export default { | |
652f40de | 14 | name: 'my-analyze', |
7f3484bd BA |
15 | components: { |
16 | BaseGame, | |
7f3484bd BA |
17 | }, |
18 | // gameRef: to find the game in (potentially remote) storage | |
19 | data: function() { | |
20 | return { | |
21 | st: store.state, | |
22 | gameRef: { //given in URL (rid = remote ID) | |
652f40de BA |
23 | vname: "", |
24 | fen: "" | |
25 | }, | |
26 | game: { | |
27 | players:[{name:"Analyze"},{name:"Analyze"}], | |
28 | mode: "analyze" | |
7f3484bd | 29 | }, |
7f3484bd | 30 | vr: null, //"variant rules" object initialized from FEN |
652f40de | 31 | //people: [], //players + observers //TODO later: interactive analyze... |
7f3484bd BA |
32 | }; |
33 | }, | |
34 | watch: { | |
35 | "$route": function(to, from) { | |
652f40de BA |
36 | this.gameRef.fen = to.query["fen"].replace(/_/g, " "); |
37 | this.gameRef.vname = to.params["vname"]; | |
7f3484bd BA |
38 | this.loadGame(); |
39 | }, | |
7f3484bd | 40 | }, |
7f3484bd | 41 | created: function() { |
652f40de BA |
42 | this.gameRef.fen = this.$route.query["fen"].replace(/_/g, " "); |
43 | this.gameRef.vname = this.$route.params["vname"]; | |
44 | this.loadGame(); | |
7f3484bd BA |
45 | }, |
46 | methods: { | |
652f40de BA |
47 | loadGame: async function() { |
48 | this.game.vname = this.gameRef.vname; | |
49 | this.game.fen = this.gameRef.fen; | |
50 | const vModule = await import("@/variants/" + this.game.vname + ".js"); | |
51 | window.V = vModule.VariantRules; | |
52 | this.vr = new V(this.game.fen); | |
697ee580 BA |
53 | // fenStart initialized in the end, after definition of V, |
54 | // because it triggers a reset on BaseGame component. | |
55 | this.$set(this.game, "fenStart", this.gameRef.fen); //TODO: Vue3... | |
7f3484bd BA |
56 | }, |
57 | }, | |
58 | }; | |
59 | </script> | |
60 | ||
61 | <style lang="sass"> | |
62 | // TODO | |
63 | </style> |