home · contact · privacy
Improve teleportation handling.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 6 Nov 2020 00:51:26 +0000 (01:51 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 6 Nov 2020 00:51:26 +0000 (01:51 +0100)
new2/rogue_chat_curses.py
new2/rogue_chat_nocanvas_monochrome.html

index 643023bcc6292961974de7be71d4476ce28f4c77..8bd45afb3e3742a5bc796632cd8e5d07380ad250 100755 (executable)
@@ -204,7 +204,7 @@ class TUI:
         elif self.mode.name == 'teleport':
             self.log_msg("@ May teleport to %s:%s" % (self.teleport_target_host,
                                                       self.teleport_target_port));
-            self.log_msg("@ Enter 'YES!' to affirm.");
+            self.log_msg("@ Enter 'YES!' to enthusiastically affirm.");
         elif self.mode.name == 'annotate' and self.explorer in self.game.info_db:
             info = self.game.info_db[self.explorer]
             if info != '(none)':
index bb4c771c7cd8eae9dd54605d268fc913679a2fed..2d60619ee7282d2590a1818f73a3156161b65168 100644 (file)
@@ -271,7 +271,7 @@ let mode_annotate = new Mode('add message to map tile', true, true);
 let mode_play = new Mode('play / move around', false, false);
 let mode_study = new Mode('check map tiles for messages', false, true);
 let mode_edit = new Mode('write ASCII char to map tile', false, false);
-let mode_teleport = new Mode('teleport away?');
+let mode_teleport = new Mode('teleport away?', true);
 let mode_portal = new Mode('add portal to map tile', true, true);
 
 let tui = {
@@ -358,7 +358,7 @@ let tui = {
        this.recalc_input_lines();
     } else if (mode == mode_teleport) {
         tui.log_msg("@ May teleport to: " + tui.teleport_target);
-        tui.log_msg("@ Type Y or y to affirm, other keys to abort.");
+        tui.log_msg("@ Enter 'YES!' to entusiastically affirm.");
     }
     this.full_refresh();
   },
@@ -693,6 +693,13 @@ tui.inputEl.addEventListener('keydown', (event) => {
     } else if (tui.mode == mode_annotate && event.key == 'Enter') {
         explorer.annotate(tui.inputEl.value);
         tui.switch_mode(mode_study, true);
+    } else if (tui.mode == mode_teleport && event.key == 'Enter') {
+        if (tui.inputEl.value == 'YES!') {
+            server.reconnect_to(tui.teleport_target);
+        } else {
+            tui.log_msg('@ teleport aborted');
+            tui.switch_mode(mode_play);
+        };
     } else if (tui.mode == mode_chat && event.key == 'Enter') {
         let [tokens, token_starts] = parser.tokenize(tui.inputEl.value);
         if (tokens.length > 0 && tokens[0].length > 0) {