X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=94e49a112eb3b07a2751c6cc1159f74177d2c406;hb=6d01bb17467be0c25cf826bf0dcc66888a55e367;hp=b2ab334f5eac5c510012e5e7447644e8e51e95ca;hpb=0ee35787b643723d5b4fa023d83b4eb6630089c8;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index b2ab334f..94e49a11 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -78,8 +78,7 @@ import { NbPlayers } from "@/data/nbPlayers"; 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 { getRandString } from "@/utils/alea"; import GameList from "@/components/GameList.vue"; import ChallengeList from "@/components/ChallengeList.vue"; export default { @@ -101,7 +100,7 @@ export default { fen: "", vid: 0, nbPlayers: 0, - to: ["", "", ""], //name of challenged players + to: ["", "", ""], //name(s) of challenged player(s) timeControl: "", //"2m+2s" ...etc }, }; @@ -122,37 +121,32 @@ export default { return playerList; }, }, - watch: { - // Watch event "user infos retrieved" (through /whoami) - "st.user.id": function(newId) { - if (newId > 0) //should always be the case - { - // Ask server for current corr games (all but mines) - // ajax( - // "/games", - // "GET", - // {excluded: this.st.user.id}, - // response => { - // this.games = this.games.concat(response.games); - // } - // ); - // Also ask for corr challenges (open + sent to me) - ajax( - "/challenges", - "GET", - {uid: this.st.user.id}, - response => { - console.log(response.challenges); - // TODO: post-treatment on challenges ? - this.challenges = this.challenges.concat(response.challenges); - } - ); - } - }, - }, created: function() { // Always add myself to players' list this.players.push(this.st.user); + if (this.st.user.id > 0) + { + // Ask server for current corr games (all but mines) +// ajax( +// "/games", +// "GET", +// {excluded: this.st.user.id}, +// response => { +// this.games = this.games.concat(response.games); +// } +// ); + // Also ask for corr challenges (open + sent to me) + ajax( + "/challenges", + "GET", + {uid: this.st.user.id}, + response => { + console.log(response.challenges); + // TODO: post-treatment on challenges ? + this.challenges = this.challenges.concat(response.challenges); + } + ); + } // 0.1] Ask server for room composition: const socketOpenListener = () => { this.st.conn.send(JSON.stringify({code:"pollclients"})); @@ -434,7 +428,7 @@ export default { if (!!error) return alert(error); const ctype = this.classifyObject(this.newchallenge); - const cto = this.newchallenge.to.slice(0, this.newchallenge.nbPlayers); + const cto = this.newchallenge.to.slice(0, this.newchallenge.nbPlayers - 1); // NOTE: "from" information is not required here let chall = { @@ -495,6 +489,10 @@ export default { // * - prepare and start new game (if challenge is full after acceptation) // * --> include challenge ID (so that opponents can delete the challenge too) clickChallenge: function(c) { + + console.log("click challenge"); + console.log(c); + if (!!c.accepted) { this.st.conn.send(JSON.stringify({code: "withdrawchallenge", @@ -568,9 +566,8 @@ export default { let gameInfo = { 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} }), + players: players.map(p => { return {name:p.name, sid:p.sid} }), vid: c.vid, timeControl: c.timeControl, }; @@ -585,21 +582,16 @@ export default { }, // NOTE: for live games only (corr games are launched on server) newGame: function(gameInfo) { - 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["mysid"] = this.st.user.sid; - localStorage["vname"] = this.getVname(gameInfo.vid); - localStorage["fenInit"] = gameInfo.fen; - localStorage["players"] = JSON.stringify(gameInfo.players); + GameStorage.init({ + gameId: getRandString(), + vname: this.getVname(gameInfo.vid), + fenStart: gameInfo.fen, + players: gameInfo.players, + timeControl: gameInfo.timeControl, + }); if (this.st.settings.sound >= 1) new Audio("/sounds/newgame.mp3").play().catch(err => {}); + // TODO: redirect to game }, }, };