diff --git a/game.js b/game.js index a9b34b7d0837f182b905ff5eb0c42ebda0d6d094..b270e7dde18a7963041bcb7360b902b6dea1e1a1 100644 --- a/game.js +++ b/game.js @@ -67,6 +67,17 @@ function joinGame(game, player) { return game; } +function departGame(game, playerId) { + var departingPlayer = _.find(game.players, function(p){ + return p.id === playerId; + }); + removeFromArray(game.players, departingPlayer); + if(game.players.length === 0){ + //kill the game + removeFromArray(gameList, game); + } +} + function startGame(game) { game.isStarted = true; setCurrentBlackCard(game); @@ -195,6 +206,7 @@ exports.addGame = addGame; exports.getGame = getGame; exports.getPlayer = getPlayer; exports.joinGame = joinGame; +exports.departGame = departGame; exports.readyForNextRound = readyForNextRound; exports.reset = reset; exports.roundEnded = roundEnded; diff --git a/server.js b/server.js index 3d9254897c26263fa0c15f8c7eb18603db6528da..4229075ea7db4cbb53d452301a55f151c524227a 100644 --- a/server.js +++ b/server.js @@ -57,6 +57,8 @@ io.sockets.on('connection', function(socket) { socket.on('disconnect', function() { if(socket.playerId && socket.gameId){ delete players[socket.gameId][socket.playerId]; + Game.departGame(Game.getGame(socket.gameId), socket.playerId); + lobbySocket.emit('gameAdded', Game.list()); } }); });