home · contact · privacy
Add proximity dependence to chat messages.
[plomrogue2] / rogue_chat_nocanvas_monochrome.html
index 1e3653bb0df50eab39df6f6b52b4ff213dfab588..bc30bde72b98106d7e1078a35baaaed261f196d8 100644 (file)
@@ -175,20 +175,18 @@ let server = {
         this.url = url;
         this.websocket = new WebSocket(this.url);
         this.websocket.onopen = function(event) {
-            window.setInterval(function() { server.send(['PING']) }, 30000);
-            this.send('TASKS');
+            server.connected = true;
+            server.send(['TASKS']);
             tui.log_msg("@ server connected! :)");
             tui.switch_mode(mode_login);
         };
         this.websocket.onclose = function(event) {
+            server.connected = false;
+            tui.switch_mode(mode_waiting_for_server);
             tui.log_msg("@ server disconnected :(");
-            tui.log_msg("@ hint: try the '/reconnect' command");
         };
            this.websocket.onmessage = this.handle_event;
         },
-    reconnect: function() {
-          this.reconnect_to(this.url);
-    },
     reconnect_to: function(url) {
         this.websocket.close();
         this.init(url);
@@ -253,7 +251,7 @@ let server = {
         } else if (tokens[0] === 'GAME_ERROR') {
             tui.log_msg('? game error: ' + tokens[1]);
         } else if (tokens[0] === 'PONG') {
-            console.log('PONG');
+            ;
         } else {
             tui.log_msg('? unhandled input: ' + event.data);
         }
@@ -520,7 +518,7 @@ let tui = {
   },
   draw_help: function() {
       let movement_keys_desc = Object.keys(this.movement_keys).join(',');
-      let content = this.mode.name + " mode help (hit any key to disappear)\n\n" + this.mode.help_intro + "\n\n";
+      let content = this.mode.name + " mode help\n\n" + this.mode.help_intro + "\n\n";
       if (this.mode == mode_play) {
           content += "Available actions:\n";
           if (game.tasks.includes('MOVE')) {
@@ -661,7 +659,6 @@ let explorer = {
         if (target) {
             this.position = target
             this.query_info();
-            tui.full_refresh();
         } else {
             terminal.blink_screen();
         };
@@ -726,18 +723,11 @@ tui.inputEl.addEventListener('input', (event) => {
             tui.inputEl.value = tui.inputEl.value.slice(0, max_length);
         };
         tui.recalc_input_lines();
-        tui.full_refresh();
     } else if (tui.mode == mode_edit && tui.inputEl.value.length > 0) {
         server.send(["TASK:WRITE", tui.inputEl.value[0], tui.password]);
         tui.switch_mode(mode_play);
-    } else if (tui.mode == mode_teleport) {
-        if (['Y', 'y'].includes(tui.inputEl.value[0])) {
-            server.reconnect_to(tui.teleport_target);
-       } else {
-            tui.log_msg("@ teleportation aborted");
-            tui.switch_mode(mode_play);
-       }
     }
+    tui.full_refresh();
 }, false);
 tui.inputEl.addEventListener('keydown', (event) => {
     tui.show_help = false;
@@ -748,10 +738,8 @@ tui.inputEl.addEventListener('keydown', (event) => {
         tui.show_help = true;
         tui.empty_input();
         tui.restore_input_values();
-        tui.full_refresh();
     } else if (!tui.mode.has_input_prompt && event.key == tui.keys.help) {
         tui.show_help = true;
-        tui.full_refresh();
     } else if (tui.mode == mode_login && event.key == 'Enter') {
         tui.login_name = tui.inputEl.value;
         server.send(['LOGIN', tui.inputEl.value]);
@@ -796,12 +784,6 @@ tui.inputEl.addEventListener('keydown', (event) => {
                     } else {
                         tui.log_msg('? need message target and message');
                     }
-                } else if (tokens[0].slice(1) == 'reconnect') {
-                   if (tokens.length > 1) {
-                server.reconnect_to(tokens[1]);
-                   } else {
-                        server.reconnect();
-                   }
                 } else {
                     tui.log_msg('? unknown command');
                 }
@@ -812,7 +794,6 @@ tui.inputEl.addEventListener('keydown', (event) => {
                server.send(['ALL', tui.inputEl.value]);
         }
         tui.empty_input();
-        tui.full_refresh();
     } else if (tui.mode == mode_play) {
           if (event.key === tui.keys.switch_to_chat) {
               event.preventDefault();
@@ -853,9 +834,9 @@ tui.inputEl.addEventListener('keydown', (event) => {
             } else {
                 tui.map_mode = 'terrain';
             }
-            tui.full_refresh();
         };
     }
+    tui.full_refresh();
 }, false);
 
 rows_selector.addEventListener('input', function() {
@@ -887,5 +868,13 @@ window.setInterval(function() {
         tui.inputEl.focus();
     }
 }, 100);
+window.setInterval(function() {
+    if (server.connected) {
+        server.send(['PING']);
+    } else {
+        server.reconnect_to(server.url);
+        tui.log_msg('@ attempting reconnect …')
+    }
+}, 5000);
 </script>
 </body></html>