X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new2%2Frogue_chat_nocanvas_monochrome.html;h=9c70d829b59ffbaa1f1cf1898a0a839afbabd209;hb=22726901655f3a91124734e11c385a654845e99d;hp=11fbfc64d9f4391d53e59aace62e2797706ac10f;hpb=e63397ffb05678e4b6472ee5c8081199f88be248;p=plomrogue2-experiments diff --git a/new2/rogue_chat_nocanvas_monochrome.html b/new2/rogue_chat_nocanvas_monochrome.html index 11fbfc6..9c70d82 100644 --- a/new2/rogue_chat_nocanvas_monochrome.html +++ b/new2/rogue_chat_nocanvas_monochrome.html @@ -132,16 +132,15 @@ let server = { this.websocket = new WebSocket(url); this.websocket.onopen = function(event) { window.setInterval(function() { server.send(['PING']) }, 30000); - tui.log_msg("@ server connected!"); + tui.log_msg("@ server connected! :)"); tui.init_login(); }; + this.websocket.onclose = function(event) { + tui.log_msg('@ server disconnected :('); + } }, send: function(tokens) { - if (this.websocket.readyState !== WebSocket.OPEN) { - tui.log_msg('server disconnected :('); - } else { - this.websocket.send(unparser.untokenize(tokens)); - } + this.websocket.send(unparser.untokenize(tokens)); } } @@ -268,9 +267,8 @@ let tui = { return lines; }, log_msg: function(msg) { - let lines = this.msg_into_lines_of_width(msg, this.window_width); - this.log = this.log.concat(lines); - while (this.log.length > terminal.rows) { + this.log.push(msg); + while (this.log.length > terminal.rows * 4) { this.log.shift(); }; this.full_refresh(); @@ -338,14 +336,15 @@ let tui = { terminal.write(1, this.window_width, 'TURN: ' + game.turn); }, draw_history: function() { - if (terminal.rows <= this.height_header + this.height_input) { - return; - } + let log_display_lines = []; + for (let line of this.log) { + log_display_lines = log_display_lines.concat(this.msg_into_lines_of_width(line, this.window_width)); + }; for (let y = terminal.rows - 1 - this.height_input, - i = this.log.length - 1; + i = log_display_lines.length - 1; y >= this.height_header && i >= 0; y--, i--) { - terminal.write(y, this.window_width, this.log[i]); + terminal.write(y, this.window_width, log_display_lines[i]); } }, draw_info: function() { @@ -414,13 +413,11 @@ server.websocket.onmessage = function (event) { tui.log_msg('# ' + tokens[1], 1); } else if (tokens[0] === 'PLAYER_ID') { game.player_id = parseInt(tokens[1]); - } else if (tokens[0] === 'META') { - tui.log_msg('@ ' + tokens[1]); } else if (tokens[0] === 'LOGIN_OK') { server.send(['GET_GAMESTATE']); tui.log_msg('@ ' + tokens[1]); tui.log_help(); - tui.switch_mode(mode_chat); + tui.switch_mode(mode_play); } else if (tokens[0] === 'ANNOTATION') { let position = parser.parse_yx(tokens[1]); explorer.update_info_db(position, tokens[2]);