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,
// Ignore games where I play (will go in MyGames page),
// and also games that I already received.
if (
- game.players.every(p =>
- p.sid != this.st.user.sid && p.id != this.st.user.id) &&
- this.games.findIndex(g => g.id == game.id) == -1
+ 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)
+ );
+ })
) {
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
let chall = Object.assign({}, this.newchallenge);
// Add only if not already issued (not counting target or FEN):
if (this.challenges.some(c =>
- (c.from.sid == this.st.user.sid || c.from.id == this.st.user.id) &&
+ (
+ c.from.sid == this.st.user.sid ||
+ (c.from.id > 0 && c.from.id == this.st.user.id)
+ )
+ &&
c.vid == chall.vid &&
c.cadence == chall.cadence &&
c.randomness == chall.randomness
const c = this.challenges[i];
if (
c.type == ctype &&
- (c.from.sid == this.st.user.sid || c.from.id == this.st.user.id)
+ (
+ c.from.sid == this.st.user.sid ||
+ (c.from.id > 0 && c.from.id == this.st.user.id)
+ )
) {
countMyChalls++;
if (c.added < oldestAdded) {