vid: parseInt(localStorage.getItem("vid")) || 0,
to: "", //name of challenged player (if any)
cadence: localStorage.getItem("cadence") || "",
- randomness: parseInt(localStorage.getItem("challRandomness")) || 2,
+ randomness:
+ // Warning: randomness can be 0, then !!randomness is false
+ (parseInt(localStorage.getItem("challRandomness"))+1 || 3) - 1,
// VariantRules object, stored to not interfere with
// diagrams of targetted challenges:
V: null,
}
});
const gid = gids[Math.floor(Math.random() * gids.length)];
- const game = this.games.find(g => g.id == gid);
- if (!!game) this.showGame(game);
- else this.$router.push("/game/" + gid); //game vs. me
+ window.open("/#/game/" + gid, "_blank");
},
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
- this.$router.push("/game/" + g.id);
+ window.open("/#/game/" + g.id, "_blank");
},
toggleSocialColor: function(action) {
if (!action && document.getElementById("modalPeople").checked)
// Ignore games where I play (will go in MyGames page),
// and also games that I already received.
if (
+ this.games.findIndex(g => g.id == game.id) == -1 &&
game.players.every(p => {
return (
p.sid != this.st.user.sid &&
(p.id == 0 || p.id != this.st.user.id)
);
- }) && this.games.findIndex(g => g.id == game.id) == -1
+ })
) {
let newGame = game;
newGame.type = this.classifyObject(game);
newGame.score = "*";
this.games.push(newGame);
if (
+ newGame.score == '*' &&
(newGame.type == "live" && this.gdisplay == "corr") ||
(newGame.type == "corr" && this.gdisplay == "live")
) {
if (
this.cursor == Number.MAX_SAFE_INTEGER &&
this.games.length == 0 &&
- this.gdisplay == "live"
+ this.gdisplay == "live" &&
+ res.games.some(g => g.score == '*')
) {
// First loading: show indicators
document
() => {
const myIdx = (game.players[0].sid == this.st.user.sid ? 0 : 1);
GameStorage.add(game, (err) => {
- // If an error occurred, game is not added: a tab already
- // added the game. Maybe a focused one, maybe not.
- // We know for sure that it emitted the gong start sound.
- // ==> Do not play it again.
- if (!err && this.st.settings.sound)
- new Audio("/sounds/newgame.flac").play().catch(() => {});
+ // If an error occurred, game is not added: the focused tab
+ // already added the game.
if (!this.focus) {
+ if (this.st.settings.sound)
+ // This will be played several times if several hidden tabs
+ // on Hall... TODO: fix that (how ?!)
+ new Audio("/sounds/newgame.flac").play().catch(() => {});
notify(
"New live game",
{ body: "vs " + game.players[1-myIdx].name || "@nonymous" }
this.$router.push("/game/" + gameInfo.id);
});
},
- this.focus ? 500 + 1000 * Math.random() : 0
+ this.focus ? 0 : 500 + 1000 * Math.random()
);
}
}
<style lang="sass" scoped>
.active
- color: #42a983
+ color: #388e3c
#infoDiv > .card
padding: 15px 0
margin-left: 32px
.somethingnew
- background-color: #c5fefe !important
+ background-color: #90C4EC !important
.tabbtn
background-color: #f9faee