)
);
},
+ requestLastate: function(sid) {
+ // TODO: maybe also find opponent SID ?
+ //const oppSid =
+ // this.game.players.find(p => p.sid != this.st.user.sid).sid;
+ this.send("asklastate", { target: sid });
+ let counter = 1;
+ this.askLastate = setInterval(
+ () => {
+ // Ask at most 3 times:
+ // if no reply after that there should be a network issue.
+ if (
+ counter < 3 &&
+ !this.gotLastate &&
+ !!this.people[sid]
+ ) {
+ this.send("asklastate", { target: sid });
+ counter++;
+ }
+ else clearInterval(this.askLastate);
+ },
+ 1500
+ );
+ },
atCreation: function() {
document.addEventListener('visibilitychange', this.visibilityChange);
window.addEventListener('focus', this.onFocus);
"message", this.socketMessageListener);
this.conn = new WebSocket(this.connexionString);
this.conn.addEventListener("message", this.socketMessageListener);
+ const oppSid = this.getOppsid();
+ if (!!oppSid) this.requestLastate(oppSid); //in case of
}
},
1000
this.game.type == "live" &&
this.game.players.some(p => p.sid == user.sid)
) {
- this.send("asklastate", { target: user.sid });
- let counter = 1;
- this.askLastate = setInterval(
- () => {
- // Ask at most 3 times:
- // if no reply after that there should be a network issue.
- if (
- counter < 3 &&
- !this.gotLastate &&
- !!this.people[user.sid]
- ) {
- this.send("asklastate", { target: user.sid });
- counter++;
- }
- else clearInterval(this.askLastate);
- },
- 1500
- );
+ this.requestLastate(user.sid);
}
break;
}
let gameInfo = {
id: getRandString(), //ignored if corr
fen: V.GenRandInitFen(this.game.options),
- options: this.game.options,
+ options: JSON.stringify(this.game.options),
players: [this.game.players[1], this.game.players[0]],
vid: this.game.vid,
cadence: this.game.cadence
"/games",
"POST",
{
- data: Object.assign(
- {},
- gameInfo,
- { options: JSON.stringify(this.game.options) }
- ),
+ data: { gameInfo: gameInfo },
success: (response) => {
gameInfo.id = response.id;
notifyNewGame();
const trySetVname = setInterval(
() => {
// this.st.variants might be uninitialized (variant == null)
- variant = this.st.variants.find(v => v.id == game.vid);
+ variant = this.st.variants.find(v => {
+ return v.id == game.vid || v.name == game.vname
+ });
if (!!variant) {
clearInterval(trySetVname);
game.vname = variant.name;
if (["all","byrow"].includes(V.ShowMoves)) {
this.curDiag = getDiagram({
position: position,
- orientation: V.CanFlip ? this.game.mycolor : "w"
+ orientation: V.CanFlip ? this.game.mycolor : "w",
+ color: this.game.mycolor,
+ score: "*"
});
document.querySelector("#confirmDiv > .card").style.width =
boardDiv.offsetWidth + "px";