X-Git-Url: https://plomlompom.com/repos/?p=plomrogue2;a=blobdiff_plain;f=rogue_chat_curses.py;h=4f6981df553696fb7d865f76453463a819e580dd;hp=91418f61f6820fa0e1ad5e89503dc8114c177322;hb=f3e107445e4de3f4e79c3d369dd70f5bab8b7d0d;hpb=9690851ac5b6c0c994a59a3de405e147e883345b diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py index 91418f6..4f6981d 100755 --- a/rogue_chat_curses.py +++ b/rogue_chat_curses.py @@ -302,6 +302,7 @@ cmd_TASKS.argtypes = 'string' def cmd_THING_TYPE(game, thing_type, symbol_hint): game.thing_types[thing_type] = symbol_hint + game.train_parser() cmd_THING_TYPE.argtypes = 'string char' def cmd_THING_INSTALLED(game, thing_id): @@ -383,13 +384,14 @@ class Game(GameBase): self.portals_new = {} self.terrains = {} self.player = None + self.parser = Parser(self) + self.train_parser() - def get_string_options(self, string_option_type): - if string_option_type == 'map_geometry': - return ['Hex', 'Square'] - elif string_option_type == 'thing_type': - return self.thing_types.keys() - return None + def train_parser(self): + self.parser.string_options = { + 'map_geometry': {'Hex', 'Square'}, + 'thing_type': self.thing_types.keys() + } def get_command(self, command_name): from functools import partial @@ -497,7 +499,6 @@ class RogueChatTUI(TUI): self.socket = ClientSocket(host, self.socket_log) self.game = Game() self.game.tui = self - self.parser = Parser(self.game) self.login_name = None self.map_mode = 'terrain + things' self.password = 'foo' @@ -589,6 +590,10 @@ class RogueChatTUI(TUI): super().__init__(*args, **kwargs) def update_on_connect(self): + self.game.thing_types = {} + self.game.terrains = {} + self.game.train_parser() + self.is_admin = False self.socket.send('TASKS') self.socket.send('TERRAINS') self.socket.send('THING_TYPES') @@ -1093,7 +1098,7 @@ class RogueChatTUI(TUI): self.draw_face_popup() def handle_server_message(self, msg): - command, args = self.parser.parse(msg) + command, args = self.game.parser.parse(msg) command(*args) def on_each_loop_start(self):