]> git.cworth.org Git - zombocom-ai/blobdiff - index.js
Add a closing message and make the reboot button functional
[zombocom-ai] / index.js
index 91a74aeea4c23e6413717eaba94d266e562707f5..13ed7f6890a4bbd1a6d0fd5617b26c12aceaf705 100644 (file)
--- a/index.js
+++ b/index.js
@@ -250,6 +250,13 @@ function emit_tardis_timer() {
     }
 }
 
+function start_welcome_timer() {
+    const tardis = state.tardis;
+    tardis.timer = 30;
+    emit_tardis_timer();
+    tardis_interval = setInterval(emit_tardis_timer, 1000);
+}
+
 io_tardis.on("connection", (socket) => {
     if (! socket.request.session.name) {
        console.log("Error: Someone showed up at the Tardis without a name.");
@@ -262,6 +269,11 @@ io_tardis.on("connection", (socket) => {
     // Let the new user know the state of the game
     socket.emit("state", tardis.state);
 
+    // And the level if relevant
+    if (tardis.state === "game") {
+       socket.emit("level", levels[tardis.level].title);
+    }
+
     // Put each of our boys into a different room
     switch (name[0]) {
     case 'C':
@@ -287,9 +299,7 @@ io_tardis.on("connection", (socket) => {
     }
 
     if (tardis.companions.count === 0) {
-       tardis.timer = 30;
-       emit_tardis_timer();
-       tardis_interval = setInterval(emit_tardis_timer, 1000);
+       start_welcome_timer();
     }
 
     if (! tardis.companions.names.includes(name)) {
@@ -313,6 +323,21 @@ io_tardis.on("connection", (socket) => {
        }
     });
 
+    socket.on('reboot', () => {
+       const tardis = state.tardis;
+
+       if (show_word_interval) {
+           clearInterval(show_word_interval);
+           show_word_interval = 0;
+       }
+
+       tardis.state = "welcome";
+       io_tardis.emit("state", tardis.state);
+       io_tardis.emit('companions', tardis.companions.count);
+
+       start_welcome_timer();
+    });
+
     socket.on('disconnect', () => {
        const names = tardis.companions.names;