home · contact · privacy
Enable map mode toggling in admin mode.
[plomrogue2] / rogue_chat.html
index 84d481c806218a35570d937cd49e485aacbff054..45f04a6ccf70e8e384f2e47d72fa358ce8382c2f 100644 (file)
@@ -54,6 +54,7 @@ terminal rows: <input id="n_rows" type="number" step=4 min=24 value=24 />
       <button id="switch_to_drop_thing"></button>
       <button id="door"></button>
       <button id="consume"></button>
+      <button id="dance"></button>
       <button id="switch_to_command_thing"></button>
       <button id="teleport"></button>
       <button id="wear"></button>
@@ -101,6 +102,7 @@ terminal rows: <input id="n_rows" type="number" step=4 min=24 value=24 />
 <li>flatten surroundings: <input id="key_flatten" type="text" value="F" />
 <li>teleport: <input id="key_teleport" type="text" value="p" />
 <li>spin: <input id="key_spin" type="text" value="S" />
+<li>dance: <input id="key_dance" type="text" value="T" />
 <li>open/close: <input id="key_door" type="text" value="D" />
 <li>consume: <input id="key_consume" type="text" value="C" />
 <li>install: <input id="key_install" type="text" value="I" />
@@ -262,6 +264,7 @@ let key_descriptions = {
     'install': '(un-)install',
     'wear': '(un-)wear',
     'spin': 'spin',
+    'dance': 'dance',
     'toggle_map_mode': 'toggle map view',
     'toggle_tile_draw': 'toggle protection character drawing',
     'hex_move_upleft': 'up-left',
@@ -491,7 +494,7 @@ let server = {
             game.things_new = [];
         } else if (tokens[0] === 'STATS') {
             game.bladder_pressure_new = parseInt(tokens[1])
-            game.weariness_new = parseInt(tokens[2])
+            game.energy_new = parseInt(tokens[2])
         } else if (tokens[0] === 'THING') {
             let t = game.get_thing_temp(tokens[4], true);
             t.position = parser.parse_yx(tokens[1]);
@@ -549,7 +552,7 @@ let server = {
             game.player = game.things[game.player_id];
             game.players_hat_chars = game.players_hat_chars_new;
             game.bladder_pressure = game.bladder_pressure_new
-            game.weariness = game.weariness_new
+            game.energy = game.energy_new
             game.turn_complete = true;
             if (tui.mode.name == 'post_login_wait') {
                 tui.switch_mode('play');
@@ -570,6 +573,9 @@ let server = {
         } else if (tokens[0] === 'LOGIN_OK') {
             this.send(['GET_GAMESTATE']);
             tui.switch_mode('post_login_wait');
+            tui.log_msg('@ welcome!')
+            tui.log_msg('@ hint: see top of terminal for how to get help.')
+            tui.log_msg('@ hint: enter study mode to understand your environment.')
         } else if (tokens[0] === 'DEFAULT_COLORS') {
             terminal.set_default_colors();
         } else if (tokens[0] === 'RANDOM_COLORS') {
@@ -721,6 +727,7 @@ let tui = {
       'command': 'COMMAND',
       'consume': 'INTOXICATE',
       'spin': 'SPIN',
+      'dance': 'DANCE',
   },
   offset: [0,0],
   map_lines: [],
@@ -732,13 +739,13 @@ let tui = {
       this.mode_play.available_modes = ["chat", "study", "edit", "admin_enter",
                                         "command_thing", "take_thing", "drop_thing"]
       this.mode_play.available_actions = ["move", "teleport", "door", "consume",
-                                          "wear", "spin"];
+                                          "wear", "spin", "dance"];
       this.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"]
       this.mode_study.available_actions = ["toggle_map_mode", "move_explorer"];
       this.mode_admin.available_modes = ["admin_thing_protect", "control_pw_type",
                                          "control_tile_type", "chat",
                                          "study", "play", "edit"]
-      this.mode_admin.available_actions = ["move"];
+      this.mode_admin.available_actions = ["move", "toggle_map_mode"];
       this.mode_control_tile_draw.available_modes = ["admin_enter"]
       this.mode_control_tile_draw.available_actions = ["toggle_tile_draw"];
       this.mode_edit.available_modes = ["write", "annotate", "portal", "name_thing",
@@ -806,7 +813,7 @@ let tui = {
                                          || !game.player.carrying.commandable)) {
         return fail('not carrying anything commandable');
     } else if (mode_name == 'name_thing' && !game.player.carrying) {
-        return fail('not carrying anything to re-name');
+        return fail('not carrying anything to re-name', 'edit');
     } else if (mode_name == 'admin_thing_protect' && !game.player.carrying) {
         return fail('not carrying anything to protect')
     } else if (mode_name == 'take_thing' && game.player.carrying) {
@@ -1216,7 +1223,7 @@ let tui = {
   },
   draw_stats_line: function(n) {
       terminal.write(1, this.window_width,
-                     'WEARINESS: ' + game.weariness +
+                     'ENERGY: ' + game.energy +
                      ' BLADDER: ' + game.bladder_pressure);
   },
   draw_history: function() {
@@ -1683,6 +1690,8 @@ tui.inputEl.addEventListener('keydown', (event) => {
               server.send(["TASK:WEAR"]);
           } else if (event.key === tui.keys.spin && tui.task_action_on('spin')) {
               server.send(["TASK:SPIN"]);
+          } else if (event.key === tui.keys.dance && tui.task_action_on('dance')) {
+              server.send(["TASK:DANCE"]);
           } else if (event.key in tui.movement_keys && tui.task_action_on('move')) {
               server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
           } else if (event.key === tui.keys.teleport) {
@@ -1707,6 +1716,8 @@ tui.inputEl.addEventListener('keydown', (event) => {
     } else if (tui.mode.name == 'admin') {
         if (tui.mode.mode_switch_on_key(event)) {
               null;
+        } else if (event.key == tui.keys.toggle_map_mode) {
+            tui.toggle_map_mode();
         } else if (event.key in tui.movement_keys && tui.task_action_on('move')) {
             server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
         };
@@ -1759,7 +1770,10 @@ window.setInterval(function() {
 }, 1000);
 window.setInterval(function() {
     if (document.activeElement.tagName.toLowerCase() != 'input') {
+        const scroll_x = window.scrollX;
+        const scroll_y = window.scrollY;
         tui.inputEl.focus();
+        window.scrollTo(scroll_x, scroll_y);
     };
 }, 100);
 document.getElementById("help").onclick = function() {
@@ -1798,6 +1812,9 @@ document.getElementById("wear").onclick = function() {
 document.getElementById("spin").onclick = function() {
     server.send(['TASK:SPIN']);
 };
+document.getElementById("dance").onclick = function() {
+    server.send(['TASK:DANCE']);
+};
 document.getElementById("teleport").onclick = function() {
     game.teleport();
 };