home · contact · privacy
Remove command char configurability, hardcode '/'.
[plomrogue2-experiments] / new2 / rogue_chat_nocanvas_monochrome.html
index 2d60619ee7282d2590a1818f73a3156161b65168..b81dcb12e303b36d0974142f31e6cc247aab03a3 100644 (file)
@@ -5,12 +5,11 @@
 </head><body>
 <div>
 movement: <select id="movement_keys" name="movement_keys" >
-<option value="alphabetic" selected>w/a/s/d (square grid) or e,d,c,x,s,r (hex grid)</option>
+<option value="alphabetic" selected>w/a/s/d (square grid) or e,d,c,x,s,w (hex grid)</option>
 <option value="arrow_or_numpad">arrow keys (square grid) or numpad (hex grid)</option>
 </select>
-rows: <input id="n_rows" type="number" step=2 min=10 value=24 />
+rows: <input id="n_rows" type="number" step=4 min=8 value=24 />
 cols: <input id="n_cols" type="number" step=4 min=20 value=80 />
-command character: <select id="command_char"" >
 <option value=":" selected>:</option>
 <option value="/">/</option>
 </select>
@@ -24,7 +23,6 @@ let websocket_location = "ws://localhost:8000";
 let movement_keys_selector = document.getElementById("movement_keys");
 let rows_selector = document.getElementById("n_rows");
 let cols_selector = document.getElementById("n_cols");
-let command_char_selector = document.getElementById("command_char");
 
 let terminal = {
   foreground: 'white',
@@ -151,11 +149,11 @@ let server = {
         this.websocket.onopen = function(event) {
             window.setInterval(function() { server.send(['PING']) }, 30000);
             tui.log_msg("@ server connected! :)");
-            tui.init_login();
+            tui.switch_mode(mode_login);
         };
         this.websocket.onclose = function(event) {
             tui.log_msg("@ server disconnected :(");
-            tui.log_msg("@ hint: try the '" + command_char_selector.value + "reconnect' command");
+            tui.log_msg("@ hint: try the '/reconnect' command");
         };
        this.websocket.onmessage = this.handle_event;
     },
@@ -335,10 +333,6 @@ let tui = {
         };
     };
   },
-  init_login: function() {
-      this.log_msg("@ please enter your username:");
-      this.switch_mode(mode_login);
-  },
   switch_mode: function(mode, keep_pos=false) {
     if (mode == mode_study && !keep_pos && game.player_id in game.things) {
       explorer.position = game.things[game.player_id].position;
@@ -352,10 +346,16 @@ let tui = {
            this.recalc_input_lines();
         }
     }
-    if (mode == mode_portal && explorer.position in game.portals) {
+    if (mode == mode_login) {
+        if (this.login_name) {
+            server.send(['LOGIN', this.login_name]);
+        } else {
+            this.log_msg("? need login name");
+        }
+    } else if (mode == mode_portal && explorer.position in game.portals) {
         let portal = game.portals[explorer.position]
-       this.inputEl.value = portal;
-       this.recalc_input_lines();
+        this.inputEl.value = portal;
+        this.recalc_input_lines();
     } else if (mode == mode_teleport) {
         tui.log_msg("@ May teleport to: " + tui.teleport_target);
         tui.log_msg("@ Enter 'YES!' to entusiastically affirm.");
@@ -400,11 +400,11 @@ let tui = {
   log_help: function() {
     this.log_msg("HELP:");
     this.log_msg("chat mode commands:");
-    this.log_msg("  " + command_char_selector.value + "nick NAME - re-name yourself to NAME");
-    this.log_msg("  " + command_char_selector.value + "msg USER TEXT - send TEXT to USER");
-    this.log_msg("  " + command_char_selector.value + "help - show this help");
-    this.log_msg("  " + command_char_selector.value + "p or " + command_char_selector.value + "play - switch to play mode");
-    this.log_msg("  " + command_char_selector.value + "? or " + command_char_selector.value + "study - switch to study mode");
+    this.log_msg("  /nick NAME - re-name yourself to NAME");
+    this.log_msg("  /msg USER TEXT - send TEXT to USER");
+    this.log_msg("  /help - show this help");
+    this.log_msg("  /P or /play - switch to play mode");
+    this.log_msg("  /? or /study - switch to study mode");
     this.log_msg("commands common to study and play mode:");
     this.log_msg("  " + this.movement_keys_desc + " - move");
     this.log_msg("  C - switch to chat mode");
@@ -438,7 +438,7 @@ let tui = {
     let map_lines = []
     if (game.map_geometry == 'Square') {
         for (let line_split of map_lines_split) {
-            map_lines.push(line_split.join(''));
+            map_lines.push(line_split.join(' '));
         };
     } else if (game.map_geometry == 'Hex') {
         let indent = 0
@@ -457,9 +457,7 @@ let tui = {
     if (tui.mode.shows_info) {
         center_position = [explorer.position[0], explorer.position[1]];
     }
-    if (game.map_geometry == 'Hex') {
-        center_position[1] = center_position[1] * 2;
-    };
+    center_position[1] = center_position[1] * 2;
     let offset = [center_position[0] - window_center[0],
                   center_position[1] - window_center[1]]
     if (game.map_geometry == 'Hex' && offset[0] % 2) {
@@ -685,8 +683,9 @@ tui.inputEl.addEventListener('keydown', (event) => {
         event.preventDefault();
     }
     if (tui.mode == mode_login && event.key == 'Enter') {
+        tui.login_name = tui.inputEl.value;
         server.send(['LOGIN', tui.inputEl.value]);
-        tui.switch_mode(mode_login);
+        tui.empty_input();
     } else if (tui.mode == mode_portal && event.key == 'Enter') {
         explorer.set_portal(tui.inputEl.value);
         tui.switch_mode(mode_study, true);
@@ -703,8 +702,8 @@ tui.inputEl.addEventListener('keydown', (event) => {
     } 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) {
-            if (tui.inputEl.value[0][0] == command_char_selector.value) {
-                if (tokens[0].slice(1) == 'play' || tokens[0].slice(1) == 'p') {
+            if (tui.inputEl.value[0][0] == '/') {
+                if (tokens[0].slice(1) == 'play' || tokens[0].slice(1) == 'P') {
                     tui.switch_mode(mode_play);
                 } else if (tokens[0].slice(1) == 'study' || tokens[0].slice(1) == '?') {
                     tui.switch_mode(mode_study);
@@ -778,7 +777,7 @@ movement_keys_selector.addEventListener('input', function() {
     tui.init_wasd();
 }, false);
 rows_selector.addEventListener('input', function() {
-    if (rows_selector.value % 2 != 0) {
+    if (rows_selector.value % 4 != 0) {
         return;
     }
     terminal.initialize();
@@ -793,7 +792,7 @@ cols_selector.addEventListener('input', function() {
     tui.full_refresh();
 }, false);
 window.setInterval(function() {
-    if (!(['input', 'n_cols', 'n_rows', 'movement_keys', 'command_char'].includes(document.activeElement.id))) {
+    if (!(['input', 'n_cols', 'n_rows', 'movement_keys'].includes(document.activeElement.id))) {
         tui.inputEl.focus();
     }
 }, 100);