X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new%2Fplomrogue%2Fgame.py;h=f86383d552ba2daa9b73eb4989af439b399a95cf;hb=be4473640666bbdb9e7c002945699ed54a2546ed;hp=18f45d88bad84df15138e20f26382b04a089dd67;hpb=c42ba1459a2d4c50abd97105231c0ae0cb189f98;p=plomrogue2-experiments diff --git a/new/plomrogue/game.py b/new/plomrogue/game.py index 18f45d8..f86383d 100755 --- a/new/plomrogue/game.py +++ b/new/plomrogue/game.py @@ -117,20 +117,22 @@ class World(WorldBase): self.turn = 0 self.maps = {} self.new_map((0,0), yx) - #self.new_map((0,1), yx) - #self.new_map((1,1), yx) - #self.new_map((1,0), yx) - #self.new_map((1,-1), yx) - #self.new_map((0,-1), yx) - #self.new_map((-1,-1), yx) - #self.new_map((-1,0), yx) - #self.new_map((-1,1), yx) - for pos in self.maps[(0,0)]: - if 0 in pos or (yx[0] - 1) == pos[0] or (yx[1] - 1) == pos[1]: - self.maps[(0,0)][pos] = '#' - continue - self.maps[(0,0)][pos] = random.choice(('.', '.', '.', '.', 'x')) - + self.new_map((0,1), yx) + self.new_map((1,1), yx) + self.new_map((1,0), yx) + self.new_map((1,-1), yx) + self.new_map((0,-1), yx) + self.new_map((-1,-1), yx) + self.new_map((-1,0), yx) + self.new_map((-1,1), yx) + for map_pos in self.maps: + map_ = self.maps[map_pos] + if (0,0) == map_pos: + for pos in map_: + map_[pos] = random.choice(('.', '.', '.', '.', 'x')) + else: + for pos in map_: + map_[pos] = '~' player = add_thing_at_random('human') self.player_id = player.id_ add_thing_at_random('monster') @@ -183,19 +185,22 @@ class Game: def send_gamestate(self, connection_id=None): """Send out game state data relevant to clients.""" + def send_thing(offset, thing): + offset_pos = (thing.position[1][0] - offset[0], + thing.position[1][1] - offset[1]) + self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_)) + self.io.send('THING_POS %s %s' % (thing.id_, + stringify_yx(offset_pos))) + self.io.send('TURN ' + str(self.world.turn)) visible_map = self.world.player.get_visible_map() - self.io.send('MAP ' + stringify_yx(visible_map.size)) + offset = self.world.player.get_surroundings_offset() + self.io.send('VISIBLE_MAP ' + stringify_yx(offset) + ' ' + stringify_yx(visible_map.size)) for y, line in visible_map.lines(): self.io.send('VISIBLE_MAP_LINE %5s %s' % (y, quote(line))) - visible_things, offset = self.world.player.get_visible_things() + visible_things = self.world.player.get_visible_things() for thing in visible_things: - offset_pos = (thing.position[1][0] - offset[0], - thing.position[1][1] - offset[1]) - self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_)) - self.io.send('THING_POS %s %s %s' % (thing.id_, - stringify_yx(thing.position[0]), - stringify_yx(offset_pos))) + send_thing(offset, thing) if hasattr(thing, 'health'): self.io.send('THING_HEALTH %s %s' % (thing.id_, thing.health)) @@ -206,10 +211,7 @@ class Game: self.io.send('PLAYER_INVENTORY ,') for id_ in self.world.player.inventory: thing = self.world.get_thing(id_) - self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_)) - self.io.send('THING_POS %s %s %s' % (thing.id_, - stringify_yx(thing.position[0]), - stringify_yx(thing.position[1]))) + send_thing(offset, thing) self.io.send('GAME_STATE_COMPLETE') def proceed(self):