game.io.send('PLAYER_ID %s' % t.id_, connection_id)
cmd_LOGIN.argtypes = 'string'
+def cmd_GET_GAMESTATE(game, connection_id):
+ game.send_gamestate(connection_id)
+cmd_GET_GAMESTATE.argtypes = ''
+
def cmd_QUERY(game, target_nick, msg, connection_id):
if not connection_id in game.sessions:
raise GameError('can only query when logged in')
from plomrogue.errors import GameError
from plomrogue.commands import (cmd_ALL, cmd_LOGIN, cmd_QUERY, cmd_PING,
cmd_TURN, cmd_MAP_LINE, cmd_MAP, cmd_GET_ANNOTATION,
- cmd_ANNOTATE)
+ cmd_ANNOTATE, cmd_GET_GAMESTATE)
from plomrogue.io import GameIO
from plomrogue.misc import quote
from plomrogue.things import Thing, ThingPlayer
'TURN': cmd_TURN,
'MAP_LINE': cmd_MAP_LINE,
'GET_ANNOTATION': cmd_GET_ANNOTATION,
+ 'GET_GAMESTATE': cmd_GET_GAMESTATE,
'ANNOTATE': cmd_ANNOTATE,
'MAP': cmd_MAP,
'PING': cmd_PING}
};
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;
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') {
}
}
}, false);
-
-window.setInterval(function() { websocket.send('PING') }, 30000);
</script>
</body></html>