this.url = url;
this.websocket = new WebSocket(this.url);
this.websocket.onopen = function(event) {
- server.connected = true;
game.thing_types = {};
game.terrains = {};
server.send(['TASKS']);
tui.switch_mode('login');
};
this.websocket.onclose = function(event) {
- server.connected = false;
tui.switch_mode('waiting_for_server');
tui.log_msg("@ server disconnected :(");
};
if (event.key == 'Enter') {
event.preventDefault();
}
- if (tui.mode.has_input_prompt && event.key == 'Enter'
- && tui.inputEl.value.length == 0
- && ['chat', 'command_thing', 'take_thing', 'drop_thing',
- 'admin_enter'].includes(tui.mode.name)) {
- if (tui.mode.name != 'chat') {
+ if ((!tui.mode.is_intro && event.key == 'Escape')
+ || (tui.mode.has_input_prompt && event.key == 'Enter'
+ && tui.inputEl.value.length == 0
+ && ['chat', 'command_thing', 'take_thing', 'drop_thing',
+ 'admin_enter'].includes(tui.mode.name))) {
+ if (!['chat', 'play', 'study', 'edit'].includes(tui.mode.name)) {
tui.log_msg('@ aborted');
}
tui.switch_mode('play');
}, false);
}
window.setInterval(function() {
- if (server.connected) {
+ if (server.websocket.readyState == 1) {
server.send(['PING']);
} else {
server.reconnect_to(server.url);
tui.log_msg('@ attempting reconnect …')
}
-}, 5000);
+}, 1000);
window.setInterval(function() {
let val = "?";
let span_decoration = "none";