return count;
}
-function handleCommand(cmd, gameNumber, playerName, response) {
- var game = games[gameNumber];
+function joinGame(gameNumber, game, playerName) {
+ if (!gameNumber) {
+ gameNumber = newGameId();
+ }
- if (!game && (cmd.cmd !== "joinGame")) {
- response.write("{\"error\":1,\"reason\":\"Missing or bad game number\"}");
- return;
+ if (!game) {
+ game = games[gameNumber] = new Game();
}
+ game.playerJoined(playerName);
+
+ return {gameNumber, game};
+}
+
+function handleCommand(cmd, gameNumber, playerName, response) {
+ var game = games[gameNumber];
+
+ ({gameNumber, game} = joinGame(gameNumber, game, playerName));
game.lastUpdated = new Date();
var rack = null;
switch (cmd.cmd) {
case "joinGame":
- if (!gameNumber) {
- gameNumber = newGameId();
- }
-
- if (!game) {
- game = games[gameNumber] = new Game();
- }
-
- game.playerJoined(playerName);
-
response.write(
JSON.stringify({
"error": 0,
function handleCommands(cmds, responseAndIsES) {
if (!cmds.cmds || !cmds.cmds.length) {
- var game = games[cmds.gameNumber];
-
- if (!game) {
- writeResponse(responseAndIsES, "{\"error\":1,\"reason\":\"Missing or bad game number\"}", true);
- return;
- }
+ var {gameNumber, game} = joinGame(cmds.gameNumber, game, cmds.playerName);
writeResponse(responseAndIsES,
JSON.stringify({
"playerName": cmds.playerName,
- "gameNumber": cmds.gameNumber,
+ "gameNumber": gameNumber,
"letterValues": game.letterValues,
"rack": game.getPlayerRack(cmds.playerName),
"board": game.board,
return;
}
- if (!pollingReady && ((data.cmds && data.cmds.length) && data.cmds[0].cmd !== "joinGame")) {
+ if (!pollingReady && (data.cmds && data.cmds.length)) {
sendCmds();
setTimeout(send.bind(null, data), POLLING_DELAY);
return;
if (number) {
localStorage.trivabbleGameNumber = number;
}
- sendCmds([{cmd:"joinGame"}]);
+ sendCmds();
}
var audioTileLoaded = false, audioMsgLoaded = false, tilesSound, msgSound;