home
·
contact
·
privacy
projects
/
plomrogue2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix empty input bug in curses client.
[plomrogue2]
/
rogue_chat_nocanvas_monochrome.html
diff --git
a/rogue_chat_nocanvas_monochrome.html
b/rogue_chat_nocanvas_monochrome.html
index e5bef1aa4d8a55ea2450874ab81def6e346b078b..66cb79584160760e95a2c4158503fbb53df8abc8 100644
(file)
--- a/
rogue_chat_nocanvas_monochrome.html
+++ b/
rogue_chat_nocanvas_monochrome.html
@@
-175,20
+175,18
@@
let server = {
this.url = url;
this.websocket = new WebSocket(this.url);
this.websocket.onopen = function(event) {
this.url = url;
this.websocket = new WebSocket(this.url);
this.websocket.onopen = function(event) {
-
window.setInterval(function() { server.send(['PING']) }, 30000)
;
-
this.send('TASKS'
);
+
server.connected = true
;
+
server.send(['TASKS']
);
tui.log_msg("@ server connected! :)");
tui.switch_mode(mode_login);
};
this.websocket.onclose = function(event) {
tui.log_msg("@ server connected! :)");
tui.switch_mode(mode_login);
};
this.websocket.onclose = function(event) {
+ server.connected = false;
+ tui.switch_mode(mode_waiting_for_server);
tui.log_msg("@ server disconnected :(");
tui.log_msg("@ server disconnected :(");
- tui.log_msg("@ hint: try the '/reconnect' command");
};
this.websocket.onmessage = this.handle_event;
},
};
this.websocket.onmessage = this.handle_event;
},
- reconnect: function() {
- this.reconnect_to(this.url);
- },
reconnect_to: function(url) {
this.websocket.close();
this.init(url);
reconnect_to: function(url) {
this.websocket.close();
this.init(url);
@@
-214,6
+212,8
@@
let server = {
tui.init_keys();
game.map_size = parser.parse_yx(tokens[2]);
game.map = tokens[3]
tui.init_keys();
game.map_size = parser.parse_yx(tokens[2]);
game.map = tokens[3]
+ } else if (tokens[0] === 'FOV') {
+ game.fov = tokens[1]
} else if (tokens[0] === 'MAP_CONTROL') {
game.map_control = tokens[1]
} else if (tokens[0] === 'GAME_STATE_COMPLETE') {
} else if (tokens[0] === 'MAP_CONTROL') {
game.map_control = tokens[1]
} else if (tokens[0] === 'GAME_STATE_COMPLETE') {
@@
-253,7
+253,7
@@
let server = {
} else if (tokens[0] === 'GAME_ERROR') {
tui.log_msg('? game error: ' + tokens[1]);
} else if (tokens[0] === 'PONG') {
} else if (tokens[0] === 'GAME_ERROR') {
tui.log_msg('? game error: ' + tokens[1]);
} else if (tokens[0] === 'PONG') {
-
console.log('PONG')
;
+ ;
} else {
tui.log_msg('? unhandled input: ' + event.data);
}
} else {
tui.log_msg('? unhandled input: ' + event.data);
}
@@
-681,8
+681,11
@@
let explorer = {
server.send(["GET_ANNOTATION", unparser.to_yx(explorer.position)]);
},
get_info: function() {
server.send(["GET_ANNOTATION", unparser.to_yx(explorer.position)]);
},
get_info: function() {
- let info = "";
let position_i = this.position[0] * game.map_size[1] + this.position[1];
let position_i = this.position[0] * game.map_size[1] + this.position[1];
+ if (game.fov[position_i] != '.') {
+ return 'outside field of view';
+ };
+ let info = "";
info += "TERRAIN: " + game.map[position_i] + "\n";
for (let t_id in game.things) {
let t = game.things[t_id];
info += "TERRAIN: " + game.map[position_i] + "\n";
for (let t_id in game.things) {
let t = game.things[t_id];
@@
-786,12
+789,6
@@
tui.inputEl.addEventListener('keydown', (event) => {
} else {
tui.log_msg('? need message target and message');
}
} else {
tui.log_msg('? need message target and message');
}
- } else if (tokens[0].slice(1) == 'reconnect') {
- if (tokens.length > 1) {
- server.reconnect_to(tokens[1]);
- } else {
- server.reconnect();
- }
} else {
tui.log_msg('? unknown command');
}
} else {
tui.log_msg('? unknown command');
}
@@
-876,5
+873,13
@@
window.setInterval(function() {
tui.inputEl.focus();
}
}, 100);
tui.inputEl.focus();
}
}, 100);
+window.setInterval(function() {
+ if (server.connected) {
+ server.send(['PING']);
+ } else {
+ server.reconnect_to(server.url);
+ tui.log_msg('@ attempting reconnect …')
+ }
+}, 5000);
</script>
</body></html>
</script>
</body></html>