projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix 1st move clocks don't move + add message to indicate that corr game started ...
[vchess.git]
/
client
/
src
/
views
/
Game.vue
diff --git
a/client/src/views/Game.vue
b/client/src/views/Game.vue
index
52e97c5
..
f00dc92
100644
(file)
--- a/
client/src/views/Game.vue
+++ b/
client/src/views/Game.vue
@@
-79,6
+79,12
@@
export default {
}
},
"game.clocks": function(newState) {
}
},
"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] -
const currentTurn = this.vr.turn;
const colorIdx = ["w","b"].indexOf(currentTurn);
let countdown = newState[colorIdx] -
@@
-310,17
+316,26
@@
export default {
//also using move.played fields
game.clocks = [-1, -1];
game.initime = [0, 0];
//also using move.played fields
game.clocks = [-1, -1];
game.initime = [0, 0];
+ // TODO: compute clocks + initime
}
const tc = extractTime(game.timeControl);
}
const tc = extractTime(game.timeControl);
+ const myIdx = game.players.findIndex(p => p.sid == this.st.user.sid);
if (game.clocks[0] < 0) //game unstarted
{
game.clocks = [tc.mainTime, tc.mainTime];
game.initime[0] = Date.now();
if (game.clocks[0] < 0) //game unstarted
{
game.clocks = [tc.mainTime, tc.mainTime];
game.initime[0] = Date.now();
+ if (myIdx >= 0) //I play in this game
+ {
+ GameStorage.update(game.gameId,
+ {
+ clocks: game.clocks,
+ initime: game.initime,
+ });
+ }
}
const vModule = await import("@/variants/" + vname + ".js");
window.V = vModule.VariantRules;
this.vr = new V(game.fen);
}
const vModule = await import("@/variants/" + vname + ".js");
window.V = vModule.VariantRules;
this.vr = new V(game.fen);
- const myIdx = game.players.findIndex(p => p.sid == this.st.user.sid);
this.game = Object.assign({},
game,
// NOTE: assign mycolor here, since BaseGame could also bs VS computer
this.game = Object.assign({},
game,
// NOTE: assign mycolor here, since BaseGame could also bs VS computer
@@
-371,12
+386,15
@@
export default {
return obj;
}, {});
// Send move ("newmove" event) to opponent(s) (if ours)
return obj;
}, {});
// Send move ("newmove" event) to opponent(s) (if ours)
- let addTime =
undefined
;
+ let addTime =
0
;
if (move.color == this.game.mycolor)
{
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,
this.st.conn.send(JSON.stringify({
code: "newmove",
target: this.game.oppid,
@@
-388,11
+406,14
@@
export default {
const nextIdx = ["w","b"].indexOf(this.vr.turn);
GameStorage.update(this.gameRef.id,
{
const nextIdx = ["w","b"].indexOf(this.vr.turn);
GameStorage.update(this.gameRef.id,
{
- colorIdx: colorIdx,
- nextIdx: nextIdx,
move: filtered_move,
fen: move.fen,
move: filtered_move,
fen: move.fen,
- addTime: addTime,
+ clocks: this.game.clocks.map((t,i) => i==colorIdx
+ ? this.game.clocks[i] + addTime
+ : this.game.clocks[i]),
+ initime: this.game.initime.map((t,i) => i==nextIdx
+ ? Date.now()
+ : this.game.initime[i]),
});
// Also update current game object:
this.game.moves.push(move);
});
// Also update current game object:
this.game.moves.push(move);
@@
-404,10
+425,7
@@
export default {
// TODO: this update function should also work for corr games
gameOver: function(score) {
this.game.mode = "analyze";
// TODO: this update function should also work for corr games
gameOver: function(score) {
this.game.mode = "analyze";
- GameStorage.update(this.gameRef.id,
- {
- score: score,
- });
+ GameStorage.update(this.gameRef.id, { score: score });
},
},
};
},
},
};