terminal.drawBox(terminal.rows - 1, terminal.cols / 2, 1, terminal.cols / 2, 'black');
terminal.write(terminal.rows - 1, terminal.cols / 2, chat.input_line);
},
- log_msg: function(msg) {
- chat.history.unshift(msg);
+ log_msg: function(msg, indent=0) {
+ let line_length = (terminal.cols / 2) - indent;
+ let chunk = "";
+ for (let i = 0, x = 0; i < msg.length; i++, x++) {
+ if (x >= line_length) {
+ chat.history.unshift(' '.repeat(indent) + chunk);
+ chunk = "";
+ x = 0;
+ };
+ chunk += msg[i];
+ }
+ chat.history.unshift(' '.repeat(indent) + chunk);
if (chat.history.length > terminal.rows - 2) {
+
chat.history.pop();
};
this.draw_history();
let chat = {
input_line:"",
- history: ["visible ASCII char in the input prompt.",
- "To write on the map, enter on a single",
- "contain whitespace, escape them with \\.",
- "Use double quotes for strings that",
- "Use arrow keys to move your avatar.",
- " QUERY USER TEXT - send TEXT to USER",
- " ALL TEXT - send TEXT to all users",
- " LOGIN USER - register as USER",
- "commands:"]
+ history: [" visible ASCII char in the input prompt.",
+ " To write on the map, enter on a single",
+ " contain whitespace, escape them with \\.",
+ " Use double quotes for strings that",
+ " Use arrow keys to move your avatar.",
+ " QUERY USER TEXT - send TEXT to USER",
+ " ALL TEXT - send TEXT to all users",
+ " LOGIN USER - register as USER",
+ " commands:"]
}
terminal.initialize()
tui.draw_map();
tui.draw_map();
} else if (tokens[0] === 'LOG') {
- tui.log_msg(' ' + tokens[1]);
+ tui.log_msg(tokens[1], 1);
} else if (tokens[0] === 'UNHANDLED_INPUT') {
tui.log_msg('unknown command');
} else if (tokens[0] === 'GAME_ERROR') {