X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new2%2Frogue_chat_nocanvas_monochrome.html;h=406dd805cf8410d9949c399b288bc9f98735d04b;hb=d16b92da8e0d5b85d909732ae22dee60bf480c5e;hp=bb4c771c7cd8eae9dd54605d268fc913679a2fed;hpb=1fcb132eabcaa1a95bf2b527dc18c92c15016d2a;p=plomrogue2-experiments diff --git a/new2/rogue_chat_nocanvas_monochrome.html b/new2/rogue_chat_nocanvas_monochrome.html index bb4c771..406dd80 100644 --- a/new2/rogue_chat_nocanvas_monochrome.html +++ b/new2/rogue_chat_nocanvas_monochrome.html @@ -151,7 +151,7 @@ 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 :("); @@ -271,7 +271,7 @@ let mode_annotate = new Mode('add message to map tile', true, true); let mode_play = new Mode('play / move around', false, false); let mode_study = new Mode('check map tiles for messages', false, true); let mode_edit = new Mode('write ASCII char to map tile', false, false); -let mode_teleport = new Mode('teleport away?'); +let mode_teleport = new Mode('teleport away?', true); let mode_portal = new Mode('add portal to map tile', true, true); let tui = { @@ -335,10 +335,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,13 +348,19 @@ 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("@ Type Y or y to affirm, other keys to abort."); + tui.log_msg("@ Enter 'YES!' to entusiastically affirm."); } this.full_refresh(); }, @@ -685,14 +687,22 @@ 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); } else if (tui.mode == mode_annotate && event.key == 'Enter') { explorer.annotate(tui.inputEl.value); tui.switch_mode(mode_study, true); + } else if (tui.mode == mode_teleport && event.key == 'Enter') { + if (tui.inputEl.value == 'YES!') { + server.reconnect_to(tui.teleport_target); + } else { + tui.log_msg('@ teleport aborted'); + tui.switch_mode(mode_play); + }; } 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) {