X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/ledger2?a=blobdiff_plain;f=new2%2Frogue_chat_nocanvas_monochrome.html;h=72ac10c5a5c7fbbfc268acaec4e232609eba3de2;hb=8f93c0c58d4bf9ba2a83e0c7e474045a0dd7178e;hp=512b8358a34e29f7254712f18182b58d3af4b627;hpb=f969bae68a328ca92c8a5efc3dd825d80df5d062;p=plomrogue2-experiments diff --git a/new2/rogue_chat_nocanvas_monochrome.html b/new2/rogue_chat_nocanvas_monochrome.html index 512b835..72ac10c 100644 --- a/new2/rogue_chat_nocanvas_monochrome.html +++ b/new2/rogue_chat_nocanvas_monochrome.html @@ -153,14 +153,15 @@ let tui = { }; map_lines.push(line); let player_position = [0,0]; + let center_pos = [Math.floor(game.map_size[0] / 2), + Math.floor(game.map_size[1] / 2)]; for (const thing_id in game.things) { let t = game.things[thing_id]; map_lines[t[0]][t[1]] = '@'; if (game.player_id == thing_id) { - player_position = t; + center_pos = t; } }; - let center_pos = player_position; if (tui.mode == 'study' || tui.mode == 'annotate') { map_lines[explorer.position[0]][explorer.position[1]] = '?'; center_pos = explorer.position; @@ -215,21 +216,22 @@ let tui = { log_help: function() { tui.log_msg(""); tui.log_msg("HELP"); - tui.log_msg("chat mode commands:"); tui.log_msg(""); - tui.log_msg("/login USER - register as USER"); - tui.log_msg("/msg USER TEXT - send TEXT to USER"); - tui.log_msg("/help - show this help"); - tui.log_msg("/play - switch to play mode"); + tui.log_msg("chat mode commands:"); + tui.log_msg(":login USER - register as USER"); + tui.log_msg(":msg USER TEXT - send TEXT to USER"); + tui.log_msg(":help - show this help"); + tui.log_msg(":play or :p - switch to play mode"); + tui.log_msg(":study or :s - switch to study mode"); tui.log_msg(""); tui.log_msg("play mode commands:"); tui.log_msg("w, a, s, d - move avatar"); tui.log_msg("f - flatten surroundings"); tui.log_msg("e - write following ASCII character"); tui.log_msg("c - switch to chat mode"); - tui.log_msg("? - switch to investigation mode"); + tui.log_msg("? - switch to study mode"); tui.log_msg(""); - tui.log_msg("investigation mode commands:"); + tui.log_msg("study mode commands:"); tui.log_msg("w, a, s, d - move question mark"); tui.log_msg("A - annotate terrain"); tui.log_msg("c - switch to chat mode"); @@ -270,6 +272,10 @@ tui.log_help(); tui.full_refresh(); let websocket = new WebSocket(websocket_location); +websocket.onopen = function (event) { + window.setInterval(function() { websocket.send('PING') }, 30000); + websocket.send('GET_GAMESTATE'); +} websocket.onmessage = function (event) { let tokens = parser.tokenize(event.data)[0]; if (tokens[0] === 'TURN') { @@ -388,21 +394,21 @@ document.addEventListener('keydown', (event) => { } else if (event.key == 'Enter') { let [tokens, token_starts] = parser.tokenize(tui.input_line); if (tokens.length > 0 && tokens[0].length > 0) { - if (tokens[0][0] == '/') { - if (tokens[0] == '/play') { + if (tokens[0][0] == ':') { + if (tokens[0] == ':play' || tokens[0] == ':p') { tui.switch_mode('play'); - } else if (tokens[0] == '/study') { + } else if (tokens[0] == ':study' || tokens[0] == ':s') { tui.switch_mode('study'); - } else if (tokens[0] == '/help') { + } else if (tokens[0] == ':help') { tui.log_help(); tui.refresh(); - } else if (tokens[0] == '/login') { + } else if (tokens[0] == ':login') { if (tokens.length > 1) { websocket.send('LOGIN ' + quote(tokens[1])); } else { tui.log_msg('? need login name'); } - } else if (tokens[0] == '/msg') { + } else if (tokens[0] == ':msg') { if (tokens.length > 2) { let msg = tui.input_line.slice(token_starts[2]); websocket.send('QUERY ' + quote(tokens[1]) + ' ' + quote(msg)); @@ -442,10 +448,10 @@ document.addEventListener('keydown', (event) => { websocket.send('TASK:MOVE DOWN'); }; } else if (tui.mode == 'edit') { - if (event.key.length === 1) { + if (event.key != "Shift" && event.key.length == 1) { websocket.send("TASK:WRITE " + quote(event.key)); + tui.switch_mode('play'); } - tui.switch_mode('play'); } else if (tui.mode == 'study') { if (event.key === 'c') { tui.switch_mode('chat'); @@ -480,7 +486,5 @@ document.addEventListener('keydown', (event) => { } } }, false); - -window.setInterval(function() { websocket.send('PING') }, 30000);