X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new2%2Frogue_chat_nocanvas_monochrome.html;h=b81dcb12e303b36d0974142f31e6cc247aab03a3;hb=95ea4ca4ac0d5bd1c18d60087619f4df898ed6a7;hp=2d60619ee7282d2590a1818f73a3156161b65168;hpb=4eb281718a289961da0737570ceceee069fa681a;p=plomrogue2-experiments diff --git a/new2/rogue_chat_nocanvas_monochrome.html b/new2/rogue_chat_nocanvas_monochrome.html index 2d60619..b81dcb1 100644 --- a/new2/rogue_chat_nocanvas_monochrome.html +++ b/new2/rogue_chat_nocanvas_monochrome.html @@ -5,12 +5,11 @@
movement: -rows: +rows: cols: -command character: @@ -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);