Complete GameStorage.update. TODO: move transmission
[vchess.git] / client / src / utils / storage.js
index 8a7c526..f5c3b25 100644 (file)
@@ -107,24 +107,30 @@ export const GameStorage =
     localStorage.setItem("gameState", JSON.stringify(gameState));
   },
 
+  getInitime: function()
+  {
+    const gameState = JSON.parse(localStorage.getItem("gameState"));
+    return gameState.initime;
+  },
+
   // localStorage:
-  // TODO: also option to takeback a move ? Is fen included in move ?
+  // TODO: also option to takeback a move ?
   // NOTE: for live games only (all on server for corr)
-  update: function(fen, move, clocks, started, score)
+  update: function(o) //colorIdx, move, fen, elapsed, increment, initime, score
   {
     let gameState = JSON.parse(localStorage.getItem("gameState"));
-    if (!!fen)
+    if (!!o.move)
     {
-      gameState.moves.push(move);
-      gameState.fen = fen;
-      gameState.clocks = clocks;
+      gameState.moves.push(o.move);
+      gameState.fen = o.fen;
+      gameState.clocks[o.colorIdx] += (o.increment - o.elapsed);
     }
-    if (!!started)
-      gameState.started = started;
-    if (!!score)
-      gameState.score = score;
+    if (!!o.initime) //just a flag (true)
+      gameState.initime = Date.now();
+    if (!!o.score)
+      gameState.score = o.score;
     localStorage.setItem("gameState", JSON.stringify(gameState));
-    if (!!score && score != "*")
+    if (!!o.score && o.score != "*")
       transferToDb(); //game is over
   },
 
@@ -139,7 +145,7 @@ export const GameStorage =
       let objectStore = db.transaction('games').objectStore('games');
       objectStore.openCursor().onsuccess = function(event) {
         var cursor = event.target.result;
-        // if there is still another cursor to go, keep runing this code
+        // if there is still another cursor to go, keep running this code
         if (cursor)
         {
           games.push(cursor.value);