- launchGame: async function() {
- const vModule = await import("@/variants/" + this.vname + ".js");
- window.V = vModule.VariantRules;
- this.compWorker.postMessage(["scripts",this.vname]);
- this.compWorker.postMessage(["init",this.fen]);
- this.newGameFromFen(this.fen);
- },
- newGameFromFen: function(fen) {
- this.vr = new V(fen);
- this.moves = [];
- this.cursor = -1;
- this.fenStart = fen;
- this.score = "*";
- if (this.mode == "analyze")
- {
- this.mycolor = V.ParseFen(fen).turn;
- this.orientation = this.mycolor;
- }
- else if (this.mode == "computer") //only other alternative (HH with gameId)
- {
- this.mycolor = (Math.random() < 0.5 ? "w" : "b");
- this.orientation = this.mycolor;
- this.compWorker.postMessage(["init",fen]);
- if (this.mycolor != "w" || this.mode == "auto")
- this.playComputerMove();
+ launchGame: function(game) {
+ this.compWorker.postMessage(["scripts", this.gameInfo.vname]);
+ if (!game) {
+ game = {
+ vname: this.gameInfo.vname,
+ fenStart: V.GenRandInitFen(this.st.settings.randomness),
+ moves: []
+ };
+ game.fen = game.fenStart;
+ if (this.gameInfo.mode == "versus")
+ CompgameStorage.add(game);