home · contact · privacy
Enable player movement in admin mode.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 27 Nov 2020 00:29:08 +0000 (01:29 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 27 Nov 2020 00:29:08 +0000 (01:29 +0100)
rogue_chat.html
rogue_chat_curses.py

index 15b715a4f0e686108bfdf0923ee8b4b19b558162..ffed950bfe65738cfe5d29468eb93de0fa244fec 100644 (file)
@@ -672,7 +672,7 @@ let tui = {
         el.disabled = true;
     }
     document.getElementById("help").disabled = false;
-    if (this.mode.name == 'play' || this.mode.name == 'study' || this.mode.name == 'control_tile_draw' || this.mode.name == 'edit') {
+    if (this.mode.name == 'play' || this.mode.name == 'study' || this.mode.name == 'control_tile_draw' || this.mode.name == 'edit' || this.mode.name == 'admin') {
         for (const move_key of document.querySelectorAll('[id^="move_"]')) {
             move_key.disabled = false;
         }
@@ -1033,6 +1033,12 @@ let tui = {
           content += '/' + this.keys.switch_to_study + ' or /study – switch to study mode\n';
           content += '/' + this.keys.switch_to_edit + ' or /edit – switch to map edit mode\n';
           content += '/' + this.keys.switch_to_admin_enter + ' or /admin – switch to admin mode\n';
+      } else if (this.mode.name == 'admin') {
+          content += "Available actions:\n";
+          if (game.tasks.includes('MOVE')) {
+              content += "[" + movement_keys_desc + "] – move player\n";
+          }
+          content += '\n';
       }
       content += this.mode.list_available_modes();
       let start_x = 0;
@@ -1411,6 +1417,9 @@ tui.inputEl.addEventListener('keydown', (event) => {
     } else if (tui.mode.name == 'admin') {
         if (tui.mode.mode_switch_on_key(event)) {
               null;
+        } else if (event.key in tui.movement_keys
+                   && game.tasks.includes('MOVE')) {
+            server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
         };
     } else if (tui.mode.name == 'edit') {
         if (tui.mode.mode_switch_on_key(event)) {
index 5ad366a78815e6fd6d3526d256f62e8232b1c7ed..86c6ba4267bd9dc40cea33439f2ecc65d068c5fa 100755 (executable)
@@ -820,6 +820,11 @@ class TUI:
                 content += '/%s or /study – switch to study mode\n' % self.keys['switch_to_study']
                 content += '/%s or /edit – switch to map edit mode\n' % self.keys['switch_to_edit']
                 content += '/%s or /admin – switch to admin mode\n' % self.keys['switch_to_admin_enter']
+            elif self.mode.name == 'admin':
+                content += "Available actions:\n"
+                if 'MOVE' in self.game.tasks:
+                    content += "[%s] – move player\n" % ','.join(self.movement_keys)
+                content += '\n'
             content += self.mode.list_available_modes(self)
             for i in range(self.size.y):
                 safe_addstr(i,
@@ -1024,6 +1029,8 @@ class TUI:
             elif self.mode.name == 'admin':
                 if self.mode.mode_switch_on_key(self, key):
                     continue
+                elif key in self.movement_keys and 'MOVE' in self.game.tasks:
+                    self.send('TASK:MOVE ' + self.movement_keys[key])
             elif self.mode.name == 'edit':
                 if self.mode.mode_switch_on_key(self, key):
                     continue