}
},
"game.clocks": function(newState) {
+ if (this.game.moves.length < 2)
+ {
+ // 1st move not completed yet: freeze time
+ this.virtualClocks = newState.map(s => ppt(s));
+ return;
+ }
const currentTurn = this.vr.turn;
const colorIdx = ["w","b"].indexOf(currentTurn);
let countdown = newState[colorIdx] -
// TODO: compute clocks + initime
}
const tc = extractTime(game.timeControl);
- const myIdx = game.players.findIndex(p => p.sid == this.st.user.sid);
+ // TODO: this is not really beautiful (uid on corr players...)
+ if (gtype == "corr" && game.players[0].color == "b")
+ [ game.players[0], game.players[1] ] = [ game.players[1], game.players[0] ];
+ const myIdx = game.players.findIndex(p => {
+ return p.sid == this.st.user.sid || p.uid == this.st.user.id;
+ });
if (game.clocks[0] < 0) //game unstarted
{
game.clocks = [tc.mainTime, tc.mainTime];
return obj;
}, {});
// Send move ("newmove" event) to opponent(s) (if ours)
- let addTime = undefined;
+ let addTime = 0;
if (move.color == this.game.mycolor)
{
- const elapsed = Date.now() - this.game.initime[colorIdx];
- // elapsed time is measured in milliseconds
- addTime = this.game.increment - elapsed/1000;
+ if (this.game.moves.length >= 2) //after first move
+ {
+ const elapsed = Date.now() - this.game.initime[colorIdx];
+ // elapsed time is measured in milliseconds
+ addTime = this.game.increment - elapsed/1000;
+ }
this.st.conn.send(JSON.stringify({
code: "newmove",
target: this.game.oppid,