X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=dd4621b37707298910a6c663e67ea6dc9e59d6c0;hb=8a7452b520dc7ead6880a7e62e7c0e057db1ebda;hp=9b891d7583fb44006ba20a15b97d441ea03a2a27;hpb=ce87ac6a12007a62a55a45e404f818df3eb90f64;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 9b891d75..dd4621b3 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -79,9 +79,9 @@ import { checkChallenge } from "@/data/challengeCheck"; import { ArrayFun } from "@/utils/array"; import { ajax } from "@/utils/ajax"; import { getRandString, shuffle } from "@/utils/alea"; -import { extractTime } from "@/utils/timeControl"; import GameList from "@/components/GameList.vue"; import ChallengeList from "@/components/ChallengeList.vue"; +import { GameStorage } from "@/utils/storage"; export default { name: "my-hall", components: { @@ -564,12 +564,14 @@ export default { window.V = vModule.VariantRules; let players = [c.from]; Array.prototype.push.apply(players, c.seats); - let gameInfo = + // These game informations will be sent to other players + const gameInfo = { + gameId: getRandString(), fen: c.fen || V.GenRandInitFen(), - // Shuffle players order (white then black then other colors). // Players' names may be required if game start when a player is offline - players: shuffle(players).map(p => { return {name:p.name, sid:p.sid} }), + // Shuffle players order (white then black then other colors). + players: shuffle(players.map(p => { return {name:p.name, sid:p.sid} })), vid: c.vid, timeControl: c.timeControl, }; @@ -584,20 +586,14 @@ export default { }, // NOTE: for live games only (corr games are launched on server) newGame: function(gameInfo) { - GameStorage.init(); //TODO here - - localStorage["gid"] = getRandString(); - // Extract times (in [milli]seconds), set clocks, store in localStorage - const tc = extractTime(gameInfo.timeControl); - localStorage["timeControl"] = gameInfo.timeControl; - localStorage["clocks"] = JSON.stringify( - [...Array(gameInfo.players.length)].fill(tc.mainTime)); - localStorage["increment"] = tc.increment; - localStorage["started"] = JSON.stringify( - [...Array(gameInfo.players.length)].fill(false)); - localStorage["vname"] = this.getVname(gameInfo.vid); - localStorage["fenInit"] = gameInfo.fen; - localStorage["players"] = JSON.stringify(gameInfo.players); + GameStorage.init({ + gameId: gameInfo.gameId, + vname: this.getVname(gameInfo.vid), + fenStart: gameInfo.fen, + players: gameInfo.players, + timeControl: gameInfo.timeControl, + initime: (gameInfo.players[0].sid == this.st.user.sid), + }); if (this.st.settings.sound >= 1) new Audio("/sounds/newgame.mp3").play().catch(err => {}); // TODO: redirect to game