From: Christian Heller Date: Mon, 26 Oct 2020 23:14:38 +0000 (+0100) Subject: Identify player in client so scrolling can follow them. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/task?a=commitdiff_plain;h=90d7e8cdc98943e46ec9a3d8d2debf2886f793e2;p=plomrogue2-experiments Identify player in client so scrolling can follow them. --- diff --git a/new2/plomrogue/commands.py b/new2/plomrogue/commands.py index 397dbe4..352f40d 100644 --- a/new2/plomrogue/commands.py +++ b/new2/plomrogue/commands.py @@ -18,6 +18,7 @@ def cmd_LOGIN(game, nick, connection_id): game.things += [t] # TODO refactor into Thing.__init__? game.sessions[connection_id] = t.id_ game.io.send('META ' + quote('you are now: ' + nick), connection_id) + game.io.send('PLAYER_ID %s' % t.id_, connection_id) cmd_LOGIN.argtypes = 'string' def cmd_QUERY(game, target_nick, msg, connection_id): diff --git a/new2/rogue_chat_nocanvas_monochrome.html b/new2/rogue_chat_nocanvas_monochrome.html index df29814..d873b37 100644 --- a/new2/rogue_chat_nocanvas_monochrome.html +++ b/new2/rogue_chat_nocanvas_monochrome.html @@ -127,7 +127,9 @@ let tui = { for (const thing_id in game.things) { let t = game.things[thing_id]; map_lines[t[0]][t[1]] = '@'; - player_position = t; + if (game.player_id == thing_id) { + player_position = t; + } } let offset = [(terminal.rows / 2) - player_position[0], terminal.cols / 4 - player_position[1]]; @@ -174,7 +176,8 @@ let game = { things: {}, turn: 0, map: "", - map_size: [0,0] + map_size: [0,0], + player_id: 0 } let chat = { @@ -223,6 +226,8 @@ websocket.onmessage = function (event) { } else if (tokens[0] === 'LOG') { tui.log_msg(tokens[1], 1); tui.refresh(); + } else if (tokens[0] === 'PLAYER_ID') { + game.player_id = parseInt(tokens[1]); } else if (tokens[0] === 'META') { tui.log_msg(tokens[1]); tui.refresh();