X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=rogue_chat_curses.py;h=15f4cd2db0b8773ff1ab68dd05abdc971f9227db;hb=43591a0ee2c85a98730aac730aded8c0a8cdba57;hp=c5e4f9dae3929446b9e8be79cd9d8b3476433cf5;hpb=300e9d0e30b360021ca0b2183893f0d75b4be4b3;p=plomrogue2 diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py index c5e4f9d..15f4cd2 100755 --- a/rogue_chat_curses.py +++ b/rogue_chat_curses.py @@ -138,7 +138,8 @@ def cmd_PORTAL(game, position, msg): cmd_PORTAL.argtypes = 'yx_tuple:nonneg string' def cmd_PLAY_ERROR(game, msg): - game.tui.flash() + game.tui.log_msg('? ' + msg) + game.tui.flash = True game.tui.do_refresh = True cmd_PLAY_ERROR.argtypes = 'string' @@ -154,6 +155,7 @@ cmd_ARGUMENT_ERROR.argtypes = 'string' def cmd_ANNOTATION(game, position, msg): game.info_db[position] = msg + game.tui.restore_input_values() if game.tui.mode.shows_info: game.tui.do_refresh = True cmd_ANNOTATION.argtypes = 'yx_tuple:nonneg string' @@ -290,11 +292,9 @@ class TUI: self.force_instant_connect = True self.input_lines = [] self.fov = '' + self.flash = False curses.wrapper(self.loop) - def flash(self): - curses.flash() - def connect(self): def handle_recv(msg): @@ -367,6 +367,7 @@ class TUI: if self.mode.shows_info: player = self.game.get_thing(self.game.player_id) self.explorer = YX(player.position.y, player.position.x) + self.query_info() if self.mode.name == 'waiting_for_server': self.log_msg('@ waiting for server …') if self.mode.name == 'edit': @@ -425,12 +426,12 @@ class TUI: self.window_width) def move_explorer(direction): - target = self.game.map_geometry.move(self.explorer, direction) + target = self.game.map_geometry.move_yx(self.explorer, direction) if target: self.explorer = target self.query_info() else: - self.flash() + self.flash = True def draw_history(): lines = [] @@ -509,6 +510,8 @@ class TUI: end = start + self.game.map_geometry.size.x map_lines_split += [[c + ' ' for c in map_content[start:end]]] if self.map_mode == 'terrain': + for p in self.game.portals.keys(): + map_lines_split[p.y][p.x] = 'P ' used_positions = [] for t in self.game.things: symbol = self.game.thing_types[t.type_] @@ -633,6 +636,9 @@ class TUI: else: self.send('PING') last_ping = now + if self.flash: + curses.flash() + self.flash = False if self.do_refresh: draw_screen() self.do_refresh = False @@ -687,13 +693,6 @@ class TUI: self.send('NICK ' + quote(tokens[1])) else: self.log_msg('? need login name') - #elif self.input_.startswith('/msg'): - # tokens = self.input_.split(maxsplit=2) - # if len(tokens) == 3: - # self.send('QUERY %s %s' % (quote(tokens[1]), - # quote(tokens[2]))) - # else: - # self.log_msg('? need message target and message') else: self.log_msg('? unknown command') else: @@ -752,7 +751,7 @@ class TUI: self.host = self.game.portals[player.position] self.reconnect() else: - self.flash() + self.flash = True self.log_msg('? not standing on portal') elif key in self.movement_keys and 'MOVE' in self.game.tasks: self.send('TASK:MOVE ' + self.movement_keys[key]) @@ -760,4 +759,5 @@ class TUI: self.send('TASK:WRITE %s %s' % (key, quote(self.password))) self.switch_mode('play') -TUI('localhost:5000') +#TUI('localhost:5000') +TUI('wss://plomlompom.com/rogue_chat/')