home · contact · privacy
Add item-free-terrain view, and augment other views with control view.
[plomrogue2] / rogue_chat.html
index ce6cf4cae6bcb835be05e2895c72d826a65f96ed..d24b9f6b8b94eaf290ad87f7562fb7b959646046 100644 (file)
@@ -44,7 +44,7 @@ terminal columns: <input id="n_cols" type="number" step=4 min=80 value=80 />
   </tr>
   <tr>
     <td><button id="switch_to_study">study mode</button></td>
-    <td><button id="toggle_map_mode">toggle terrain/annotations/control view</button>
+    <td><button id="toggle_map_mode">toggle everything/terrain/annotations view</button>
   </tr>
   <tr>
     <td><button id="switch_to_play">play mode</button></td>
@@ -101,7 +101,7 @@ terminal columns: <input id="n_cols" type="number" step=4 min=80 value=80 />
 <li><input id="key_switch_to_control_tile_type" type="text" value="Q" />
 <li><input id="key_switch_to_annotate" type="text" value="M" />
 <li><input id="key_switch_to_portal" type="text" value="T" />
-<li>toggle terrain/annotations/control view: <input id="key_toggle_map_mode" type="text" value="M" />
+<li>toggle everything/terrain/annotations view: <input id="key_toggle_map_mode" type="text" value="M" />
 </ul>
 </div>
 <script>
@@ -559,7 +559,7 @@ let tui = {
       this.mode_admin.available_modes = ["control_pw_type",
                                          "control_tile_type", "chat",
                                          "study", "play", "edit"]
-      this.mode_control_tile_draw.available_modes = ["admin"]
+      this.mode_control_tile_draw.available_modes = ["admin_enter"]
       this.mode_edit.available_modes = ["write", "annotate", "portal",
                                         "password", "chat", "study", "play",
                                         "admin_enter"]
@@ -608,7 +608,7 @@ let tui = {
   },
   switch_mode: function(mode_name) {
     this.inputEl.focus();
-    this.map_mode = 'terrain';
+    this.map_mode = 'all';
     if (mode_name == 'admin_enter' && this.is_admin) {
         mode_name = 'admin';
     };
@@ -794,27 +794,29 @@ let tui = {
   draw_map: function() {
     let map_lines_split = [];
     let line = [];
-    let map_content = game.map;
-    if (this.map_mode == 'control') {
-        map_content = game.map_control;
-    }
     for (let i = 0, j = 0; i < game.map.length; i++, j++) {
         if (j == game.map_size[1]) {
             map_lines_split.push(line);
             line = [];
             j = 0;
         };
-        line.push(map_content[i] + ' ');
+        if (['edit', 'write', 'control_tile_draw',
+             'control_tile_type'].includes(this.mode.name)) {
+            line.push(game.map[i] + game.map_control[i]);
+        } else {
+            line.push(game.map[i] + ' ');
+        }
     };
     map_lines_split.push(line);
     if (this.map_mode == 'annotations') {
         for (const coordinate of explorer.info_hints) {
             map_lines_split[coordinate[0]][coordinate[1]] = 'A ';
         }
-    } else if (this.map_mode == 'terrain') {
+    } else if (this.map_mode == 'all') {
         for (const p in game.portals) {
             let coordinate = p.split(',')
-            map_lines_split[coordinate[0]][coordinate[1]] = 'P ';
+            let original = map_lines_split[coordinate[0]][coordinate[1]];
+            map_lines_split[coordinate[0]][coordinate[1]] = original[0] + 'P';
         }
         let used_positions = [];
         for (const thing_id in game.things) {
@@ -938,10 +940,10 @@ let tui = {
               content += "[" + movement_keys_desc + "] – move player\n";
           }
           if (game.tasks.includes('PICK_UP')) {
-              content += "[" + this.keys.take_thing + "] – take thing under player\n";
+              content += "[" + this.keys.take_thing + "] – pick up thing\n";
           }
           if (game.tasks.includes('DROP')) {
-              content += "[" + this.keys.drop_thing + "] – drop carried thing\n";
+              content += "[" + this.keys.drop_thing + "] – drop picked up thing\n";
           }
           content += "[" + tui.keys.teleport + "] – teleport to other space\n";
           content += '\n';
@@ -1279,7 +1281,7 @@ tui.inputEl.addEventListener('keydown', (event) => {
             if (tui.map_mode == 'terrain') {
                 tui.map_mode = 'annotations';
             } else if (tui.map_mode == 'annotations') {
-                tui.map_mode = 'control';
+                tui.map_mode = 'all';
             } else {
                 tui.map_mode = 'terrain';
             }
@@ -1346,55 +1348,18 @@ document.getElementById("help").onclick = function() {
     tui.show_help = true;
     tui.full_refresh();
 };
-document.getElementById("switch_to_play").onclick = function() {
-    tui.switch_mode('play');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_study").onclick = function() {
-    tui.switch_mode('study');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_chat").onclick = function() {
-    tui.switch_mode('chat');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_password").onclick = function() {
-    tui.switch_mode('password');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_edit").onclick = function() {
-    tui.switch_mode('edit');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_write").onclick = function() {
-    tui.switch_mode('write');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_annotate").onclick = function() {
-    tui.switch_mode('annotate');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_portal").onclick = function() {
-    tui.switch_mode('portal');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_admin_enter").onclick = function() {
-    tui.switch_mode('admin');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_control_pw_type").onclick = function() {
-    tui.switch_mode('control_pw_type');
-    tui.full_refresh();
-};
-document.getElementById("switch_to_control_tile_type").onclick = function() {
-    tui.switch_mode('control_tile_type');
-    tui.full_refresh();
+for (const switchEl  of document.querySelectorAll('[id^="switch_to_"]')) {
+    const mode = switchEl.id.slice("switch_to_".length);
+    switchEl.onclick = function() {
+        tui.switch_mode(mode);
+        tui.full_refresh();
+    }
 };
 document.getElementById("toggle_map_mode").onclick = function() {
     if (tui.map_mode == 'terrain') {
         tui.map_mode = 'annotations';
     } else if (tui.map_mode == 'annotations') {
-        tui.map_mode = 'control';
+        tui.map_mode = 'all';
     } else {
         tui.map_mode = 'terrain';
     }