X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=b6cac488562df6607e69cd938d957a6828e2536e;hp=d0cfdd17c975d54cfbb16163dccdee91a251b1f9;hb=d9b86b16e70ba5acbeb09cf553e45e675667e1b1;hpb=485fccd5c925e796b61d5ed0674f29d742ea1a13 diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index d0cfdd17..b6cac488 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -176,15 +176,12 @@ export default { showGame: function(g) { // NOTE: we are an observer, since only games I don't play are shown here // ==> Moves sent by connected remote player(s) if live game - -// TODO: this doesn't work: choose a SID at random - // --> do we have players' names ? - - let url = "/" + g.id; + let url = "/game/" + g.id; if (g.type == "live") { - const sids = g.players.map(p => p.sid).join(","); - url += "?sids=" + sids; + const remotes = g.players.filter(p => this.people.some(pl => pl.sid == p.sid)); + const rIdx = (remotes.length == 1 ? 0 : Math.floor(Math.random()*2)); + url += "?rid=" + remotes[rIdx].sid; } this.$router.push(url); }, @@ -325,11 +322,14 @@ export default { { // Receive game from some player (+sid) // NOTE: it may be correspondance (if newgame while we are connected) - let newGame = data.game; - newGame.type = this.classifyObject(data.game); - newGame.rid = data.from; - newGame.score = "*"; - this.games.push(newGame); + if (!this.games.some(g => g.id == data.game.id)) //ignore duplicates + { + let newGame = data.game; + newGame.type = this.classifyObject(data.game); + newGame.rid = data.from; + newGame.score = "*"; + this.games.push(newGame); + } break; } case "newgame": @@ -542,9 +542,3 @@ export default { - -