rid: ""
},
game: { }, //passed to BaseGame
- oppConnected: false,
+ oppConnected: false, //TODO: use for styling
corrMsg: "", //to send offline messages in corr games
virtualClocks: [0, 0], //initialized with true game.clocks
vr: null, //"variant rules" object initialized from FEN
});
const myTurn = (currentTurn == this.game.mycolor);
let clockUpdate = setInterval(() => {
- if (countdown <= 0 || this.vr.turn != currentTurn)
+ if (countdown <= 0 || this.vr.turn != currentTurn || this.game.score != "*")
{
clearInterval(clockUpdate);
if (countdown <= 0 && myTurn)
case "pong": //received if we sent a ping (game still alive on our side)
{
this.oppConnected = true;
- // Send our "last state" informations to opponent(s)
- const L = this.game.moves.length;
- this.st.conn.send(JSON.stringify({
- code: "lastate",
- target: this.game.oppid,
- gameId: this.gameRef.id,
- lastMove: (L>0 ? this.game.moves[L-1] : undefined),
- score: this.game.score,
- movesCount: L,
- drawOffer: this.drawOffer,
- clocks: this.game.clocks,
- }));
+ if (this.game.type == "live") //corr games are always complete
+ {
+ // Send our "last state" informations to opponent(s)
+ const L = this.game.moves.length;
+ this.st.conn.send(JSON.stringify({
+ code: "lastate",
+ target: this.game.oppid,
+ gameId: this.gameRef.id,
+ lastMove: (L>0 ? this.game.moves[L-1] : undefined),
+ score: this.game.score,
+ movesCount: L,
+ drawOffer: this.drawOffer,
+ clocks: this.game.clocks,
+ }));
+ }
break;
}
case "lastate": //got opponent infos about last move
{
game.clocks = [tc.mainTime, tc.mainTime];
game.initime[0] = Date.now();
- if (myIdx >= 0) //I play in this game
+ if (myIdx >= 0 && gtype == "live")
{
- GameStorage.update(game.gameId,
+ // I play in this live game; corr games don't have clocks+initime
+ GameStorage.update(game.id,
{
clocks: game.clocks,
initime: game.initime,
const vModule = await import("@/variants/" + vname + ".js");
window.V = vModule.VariantRules;
this.vr = new V(game.fen);
+
+
+
+//TODO: people, on connect, search for opponent.......
+console.log(myIdx + " " + game.players[1-myIdx].sid); //otherwise this is undefined:
+
+
+
this.game = Object.assign({},
game,
- // NOTE: assign mycolor here, since BaseGame could also bs VS computer
+ // NOTE: assign mycolor here, since BaseGame could also be VS computer
{
type: gtype,
increment: tc.increment,
// TODO: this update function should also work for corr games
gameOver: function(score) {
this.game.mode = "analyze";
+ this.game.score = score;
GameStorage.update(this.gameRef.id, { score: score });
},
},