From 4c177b7f34875071c37325e7039ff840aa56a1cf Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 29 May 2019 20:23:37 +0200
Subject: [PATCH] tiny changes in storage.js

---
 client/src/utils/storage.js | 63 ++++++++++++++++++++++++++++++-------
 1 file changed, 51 insertions(+), 12 deletions(-)

diff --git a/client/src/utils/storage.js b/client/src/utils/storage.js
index 5324003c..2e243a83 100644
--- a/client/src/utils/storage.js
+++ b/client/src/utils/storage.js
@@ -11,42 +11,81 @@ export const GameStorage =
   {
     localStorage.setItem("gameId", o.gameId);
     localStorage.setItem("vname", o.vname);
-    localStorage.setItem("mycolor", mycolor); //TODO: shuffle ["w","b"]
+    // NOTE: when >= 3 players, better use an array + shuffle for mycolor
+    const mycolor = (Math.random() < 0.5 ? "w" : "b");
+    localStorage.setItem("mycolor", mycolor);
     localStorage.setItem("fenStart", o.fenStart);
     localStorage.setItem("fen", o.fenStart);
     localStorage.setItem("moves", JSON.stringify([]));
     // Shuffle players order (white then black then other colors).
-    localStorage.setItem("players", JSON.stringify(shuffle(players));
+    localStorage.setItem("players", JSON.stringify(shuffle(o.players)));
     // Extract times (in [milli]seconds), set clocks, store in localStorage
     const tc = extractTime(o.timeControl);
     localStorage.setItem("timeControl", o.timeControl);
     localStorage.setItem("clocks", JSON.stringify(
-      [...Array(o.players.length)].fill(tc.mainTime));
-    localStorage.setItem("increment", tc.increment;
+      [...Array(o.players.length)].fill(tc.mainTime)));
+    localStorage.setItem("increment", tc.increment);
     localStorage.setItem("started", JSON.stringify(
-      [...Array(o.players.length)].fill(false));
+      [...Array(o.players.length)].fill(false)));
     localStorage.setItem("score", "*");
     localStorage.setItem("started", JSON.stringify(
       [...Array(o.players.length)].fill(false)));
     localStorage.setItem("clocks", JSON.stringify(
       [...Array(o.players.length)].fill(0)));
-    localStorage.SetItem("mode", "live"); //function for live games only
+    localStorage.setItem("mode", "live"); //function for live games only
   },
 
   // TODO: also option to takeback a move ?
-  update: function(move) //TODO: take game ID also, and update according to mode?
+  // NOTE: for live games only (all on server for corr)
+  update: function(move, score) //game ID is not required
+  {
+    if (!!move)
+    {
+      let moves = JSON.parse(localStorage.getItem("moves"));
+      moves.push(move);
+      localStorage.setItem("moves", JSON.stringify(moves));
+    }
+    if (!!score)
+      localStorage.setItem("score", score);
+  },
+
+  transferToDb: function()
   {
-    let moves = JSON.parse(localStorage.getItem("moves"));
-    moves.push(move);
-    localStorage.setItem("moves", JSON.stringify(moves));
+    // TODO: take finished game on localStorage and transfer it to indexedDB
   },
 
   // "computer mode" clearing is done through the menu
   clear: function()
   {
+    localStorage.setItem("gameId", o.gameId);
+    localStorage.setItem("vname", o.vname);
+    // NOTE: when >= 3 players, better use an array + shuffle for mycolor
+    const mycolor = (Math.random() < 0.5 ? "w" : "b");
+    localStorage.setItem("mycolor", mycolor);
+    localStorage.setItem("fenStart", o.fenStart);
+    localStorage.setItem("fen", o.fenStart);
+    localStorage.setItem("moves", JSON.stringify([]));
+    // Shuffle players order (white then black then other colors).
+    localStorage.setItem("players", JSON.stringify(shuffle(o.players)));
+    // Extract times (in [milli]seconds), set clocks, store in localStorage
+    const tc = extractTime(o.timeControl);
+    localStorage.setItem("timeControl", o.timeControl);
+    localStorage.setItem("clocks", JSON.stringify(
+      [...Array(o.players.length)].fill(tc.mainTime)));
+    localStorage.setItem("increment", tc.increment);
+    localStorage.setItem("started", JSON.stringify(
+      [...Array(o.players.length)].fill(false)));
+    localStorage.setItem("score", "*");
+    localStorage.setItem("started", JSON.stringify(
+      [...Array(o.players.length)].fill(false)));
+    localStorage.setItem("clocks", JSON.stringify(
+      [...Array(o.players.length)].fill(0)));
+    localStorage.setItem("mode", "live"); //function for live games only
+    
+
     // TODO: refresh, and implement "transfert" function (to indexedDB)
-    delete localStorage["myid"];
-    delete localStorage["oppid"];
+    localStorage["myid"];
+    localStorage["oppid"];
     delete localStorage["gameId"];
     delete localStorage["variant"];
     delete localStorage["mycolor"];
-- 
2.44.0