diff --git a/package-lock.json b/package-lock.json index f345d98..e029a42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -379,6 +379,11 @@ "mime-db": "1.40.0" } }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", diff --git a/package.json b/package.json index 898f2ed..bbc8fd3 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "express": "^4.17.1", + "moment": "^2.24.0", "socket.io": "^2.2.0" } } diff --git a/server.js b/server.js index adfa184..d9984d5 100644 --- a/server.js +++ b/server.js @@ -5,6 +5,7 @@ const socketIO = require('socket.io'); const app = express(); const server = http.Server(app); const io = socketIO(server); +const moment = require('moment'); var activeGames = {}; @@ -57,6 +58,11 @@ io.on('connection', function(socket) { let game = activeGames[Object.keys(activeGames).find((key) => key === gameData.code)]; game.state = "started"; game.players = gameData.players; + if (game.time) { + let d = new Date(); + d.setMinutes(d.getMinutes() + parseInt(game.time)); + game.endTime = d.toJSON(); + } io.to(gameData.code).emit('state', game); }); socket.on('killPlayer', function(id, code) { diff --git a/static/game.js b/static/game.js index 910764a..e8fb926 100644 --- a/static/game.js +++ b/static/game.js @@ -1,7 +1,8 @@ import {utility} from './util.js' const socket = io(); -var currentGame = null; +let clock; +let currentGame = null; // respond to the game state received from the server socket.on('state', function(game) { @@ -52,6 +53,9 @@ function getLiveCount() { } function renderGame() { + if (currentGame.time) { + renderClock(); + } const player = currentGame.players.find((player) => player.id === sessionStorage.getItem("id")); const card = player.card; @@ -60,7 +64,10 @@ function renderGame() { document.getElementById("launch").setAttribute("class", "hidden"); document.getElementById("game-container").setAttribute("class", "game-container"); document.getElementById("game-container").innerHTML = - "