From 1750783da9cd6fd4f80d6484a3b714c352eef126 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Wed, 9 Dec 2020 05:08:43 +0100 Subject: [PATCH] Add escape key "panic button" to return to play mode, whatever. --- rogue_chat.html | 11 ++++++----- rogue_chat_curses.py | 15 ++++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/rogue_chat.html b/rogue_chat.html index c871b6a..ebe64f2 100644 --- a/rogue_chat.html +++ b/rogue_chat.html @@ -1472,11 +1472,12 @@ tui.inputEl.addEventListener('keydown', (event) => { if (event.key == 'Enter') { event.preventDefault(); } - if (tui.mode.has_input_prompt && event.key == 'Enter' - && tui.inputEl.value.length == 0 - && ['chat', 'command_thing', 'take_thing', 'drop_thing', - 'admin_enter'].includes(tui.mode.name)) { - if (tui.mode.name != 'chat') { + if ((!tui.mode.is_intro && event.key == 'Escape') + || (tui.mode.has_input_prompt && event.key == 'Enter' + && tui.inputEl.value.length == 0 + && ['chat', 'command_thing', 'take_thing', 'drop_thing', + 'admin_enter'].includes(tui.mode.name))) { + if (!['chat', 'play', 'study', 'edit'].includes(tui.mode.name)) { tui.log_msg('@ aborted'); } tui.switch_mode('play'); diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py index 6f13638..8fc2817 100755 --- a/rogue_chat_curses.py +++ b/rogue_chat_curses.py @@ -1086,15 +1086,20 @@ class TUI: self.do_refresh = True except curses.error: continue - self.show_help = False + keycode = None + if len(key) == 1: + keycode = ord(key) if key == 'KEY_RESIZE': reset_screen_size() elif self.mode.has_input_prompt and key == 'KEY_BACKSPACE': self.input_ = self.input_[:-1] - elif self.mode.has_input_prompt and key == '\n' and self.input_ == ''\ - and self.mode.name in {'chat', 'command_thing', 'take_thing', - 'drop_thing', 'admin_enter'}: - if self.mode.name != 'chat': + elif (((not self.mode.is_intro) and keycode == 27) # Escape + or (self.mode.has_input_prompt and key == '\n' + and self.input_ == ''\ + and self.mode.name in {'chat', 'command_thing', + 'take_thing', 'drop_thing', + 'admin_enter'})): + if self.mode.name not in {'chat', 'play', 'study', 'edit'}: self.log_msg('@ aborted') self.switch_mode('play') elif self.mode.has_input_prompt and key == '\n' and self.input_ == '/help': -- 2.30.2