X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/copy_free?a=blobdiff_plain;f=client.py;h=07d59c235c5a2b21f9b3ff7ba90c6f29b75a86e2;hb=fb11e52f4e70470336504c84e4b05f3a3b6a9790;hp=0a25e4513bd0687b5731651b40de51bb585ec125;hpb=7a02f223961c532d9423433427c0e1b3e1cdb871;p=plomrogue2-experiments diff --git a/client.py b/client.py index 0a25e45..07d59c2 100755 --- a/client.py +++ b/client.py @@ -4,10 +4,10 @@ import plom_socket_io import socket import threading from parser import ArgError, Parser -from game_common import World, Commander +from game_common import World, CommonCommandsMixin -class Game(Commander): +class Game(CommonCommandsMixin): world = World() log_text = '' @@ -23,6 +23,11 @@ class Game(Commander): symbol = 'm' return symbol + def cmd_LAST_PLAYER_TASK_RESULT(self, msg): + if msg != "success": + self.log_text = msg + '\n' + self.log_text + cmd_LAST_PLAYER_TASK_RESULT.argtypes = 'string' + def cmd_TURN_FINISHED(self, n): """Do nothing. (This may be extended later.)""" pass @@ -34,6 +39,10 @@ class Game(Commander): self.world.things = [] cmd_NEW_TURN.argtypes = 'int:nonneg' + def cmd_VISIBLE_MAP_LINE(self, y, terrain_line): + self.world.map_.set_line(y, terrain_line) + cmd_VISIBLE_MAP_LINE.argtypes = 'int:nonneg string' + class WidgetManager: @@ -50,13 +59,13 @@ class WidgetManager: self.top = urwid.Filler(widget_pile, valign='top') def draw_map(self): - """Draw map view from .game.terrain_map, .game.things.""" + """Draw map view from .game.map_.terrain, .game.things.""" map_lines = [] - map_size = len(self.game.world.terrain_map) + map_size = len(self.game.world.map_.terrain) start_cut = 0 while start_cut < map_size: - limit = start_cut + self.game.world.map_size[1] - map_lines += [self.game.world.terrain_map[start_cut:limit]] + limit = start_cut + self.game.world.map_.size[1] + map_lines += [self.game.world.map_.terrain[start_cut:limit]] start_cut = limit for t in self.game.world.things: line_as_list = list(map_lines[t.position[0]])