notifyTurn: function(sid) {
const player = this.people[sid];
const colorIdx = this.game.players.findIndex(
- p => p.sid == sid || p.id == player.id);
+ p => p.sid == sid || p.uid == player.id);
const color = ["w","b"][colorIdx];
const movesCount = this.game.moves.length;
const yourTurn =
}
break;
case "askfullgame":
- this.send("fullgame", { data: this.game, target: data.from });
+ const gameToSend = Object.keys(this.game)
+ .filter(k =>
+ [
+ "id","fen","players","vid","cadence","fenStart","vname",
+ "moves","clocks","initime","score","drawOffer"
+ ].includes(k))
+ .reduce(
+ (obj, k) => {
+ obj[k] = this.game[k];
+ return obj;
+ },
+ {}
+ );
+ this.send("fullgame", { data: gameToSend, target: data.from });
break;
case "fullgame":
// Callback "roomInit" to poll clients only after game is loaded
this.gameOver("1/2", message);
} else if (this.drawOffer == "") {
// No effect if drawOffer == "sent"
- if (!!this.game.mycolor != this.vr.turn) {
+ if (this.game.mycolor != this.vr.turn) {
alert(this.st.tr["Draw offer only in your turn"]);
return;
}
}
}
}
- if (game.drawOffer) {
+ if (!!game.drawOffer) {
if (game.drawOffer == "t")
// Three repetitions
this.drawOffer = "threerep";