X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=plomrogue%2Fgame.py;h=49fdeeb007e73364baa41af166a7c7bf39f35464;hb=800aca691b359f448599160ba3d8aef28174596d;hp=7936842ae6ce892ae9a27e7a4aa28593de5196b8;hpb=3efcac66212325fecbbf28e3c19762821fb65d76;p=plomrogue2 diff --git a/plomrogue/game.py b/plomrogue/game.py index 7936842..49fdeeb 100755 --- a/plomrogue/game.py +++ b/plomrogue/game.py @@ -58,15 +58,15 @@ class SaveableMap(Map): self.set_line(3, 'X' * self.geometry.size.x) self.set_line(4, 'X' * self.geometry.size.x) for y in range(self.geometry.size.y): - self[YX(y,0)] = 'X' - self[YX(y,1)] = 'X' - self[YX(y,2)] = 'X' - self[YX(y,3)] = 'X' - self[YX(y,4)] = 'X' + self[YX(y, 0)] = 'X' + self[YX(y, 1)] = 'X' + self[YX(y, 2)] = 'X' + self[YX(y, 3)] = 'X' + self[YX(y, 4)] = 'X' elif type(self.geometry) == MapGeometryHex: # TODO: for this to work we need a map side length divisible by 6. - def draw_grid(offset=YX(0,0)): + def draw_grid(offset=YX(0, 0)): dirs = ('DOWNRIGHT', 'RIGHT', 'UPRIGHT', 'RIGHT') def draw_snake(start): @@ -89,20 +89,23 @@ class SaveableMap(Map): if alternate_hex: draw_snake(offset + YX(0, 0)) - draw_snake(offset + YX((0 + alternate_hex) * distance, -int(1.5*distance))) - draw_snake(offset + YX((1 + alternate_hex) * distance, 0)) - draw_snake(offset + YX((2 + alternate_hex) * distance, -int(1.5*distance))) + draw_snake(offset + YX((0 + alternate_hex) * distance, + -int(1.5 * distance))) + draw_snake(offset + YX((1 + alternate_hex) * distance, + 0)) + draw_snake(offset + YX((2 + alternate_hex) * distance, + -int(1.5 * distance))) distance = self.geometry.size.y // 3 draw_grid() - draw_grid(YX(2,0)) - draw_grid(YX(0,2)) - draw_grid(YX(1,0)) - draw_grid(YX(0,1)) - draw_grid(YX(-1,0)) - draw_grid(YX(0,-1)) - draw_grid(YX(-2,0)) - draw_grid(YX(0,-2)) + draw_grid(YX(2, 0)) + draw_grid(YX(0, 2)) + draw_grid(YX(1, 0)) + draw_grid(YX(0, 1)) + draw_grid(YX(-1, 0)) + draw_grid(YX(0, -1)) + draw_grid(YX(-2, 0)) + draw_grid(YX(0, -2)) self.modified = old_modified @@ -121,7 +124,7 @@ class Game(GameBase): self.map_controls = {} self.map_control_passwords = {} self.annotations = {} - self.spawn_point = YX(0,0), YX(0,0) + self.spawn_point = YX(0, 0), YX(0, 0) self.portals = {} self.player_chars = string.digits + string.ascii_letters self.player_char_i = -1 @@ -181,7 +184,7 @@ class Game(GameBase): return self.map_geometry.__class__.__name__[len('MapGeometry'):] def get_player(self, connection_id): - if not connection_id in self.sessions: + if connection_id not in self.sessions: return None player = self.get_thing(self.sessions[connection_id]['thing_id']) return player @@ -300,47 +303,47 @@ class Game(GameBase): def save(self): - def write(f, msg): - f.write(msg + '\n') - - with open(self.io.save_file, 'w') as f: - write(f, 'TURN %s' % self.turn) - map_geometry_shape = self.get_map_geometry_shape() - write(f, 'MAP %s %s' % (map_geometry_shape, self.map_geometry.size,)) - for big_yx in [yx for yx in self.maps if self.maps[yx].modified]: - for y, line in self.maps[big_yx].lines(): - write(f, 'MAP_LINE %s %5s %s' % (big_yx, y, quote(line))) - for big_yx in self.annotations: - for little_yx in self.annotations[big_yx]: - write(f, 'GOD_ANNOTATE %s %s %s' % - (big_yx, little_yx, quote(self.annotations[big_yx][little_yx]))) - for big_yx in self.portals: - for little_yx in self.portals[big_yx]: - write(f, 'GOD_PORTAL %s %s %s' % (big_yx, little_yx, - quote(self.portals[big_yx][little_yx]))) - for big_yx in [yx for yx in self.map_controls - if self.map_controls[yx].modified]: - for y, line in self.map_controls[big_yx].lines(): - write(f, 'MAP_CONTROL_LINE %s %5s %s' % (big_yx, y, quote(line))) - for tile_class in self.map_control_passwords: - write(f, 'MAP_CONTROL_PW %s %s' % (tile_class, - self.map_control_passwords[tile_class])) - for pw in self.admin_passwords: - write(f, 'ADMIN_PASSWORD %s' % pw) - for t in [t for t in self.things if not t.type_ == 'Player']: - write(f, 'THING %s %s %s %s' % (t.position[0], - t.position[1], t.type_, t.id_)) - if hasattr(t, 'name'): - write(f, 'THING_NAME %s %s' % (t.id_, quote(t.name))) - write(f, 'SPAWN_POINT %s %s' % (self.spawn_point[0], - self.spawn_point[1])) + def write(f, msg): + f.write(msg + '\n') + + with open(self.io.save_file, 'w') as f: + write(f, 'TURN %s' % self.turn) + map_geometry_shape = self.get_map_geometry_shape() + write(f, 'MAP %s %s' % (map_geometry_shape, self.map_geometry.size,)) + for big_yx in [yx for yx in self.maps if self.maps[yx].modified]: + for y, line in self.maps[big_yx].lines(): + write(f, 'MAP_LINE %s %5s %s' % (big_yx, y, quote(line))) + for big_yx in self.annotations: + for little_yx in self.annotations[big_yx]: + write(f, 'GOD_ANNOTATE %s %s %s' % + (big_yx, little_yx, quote(self.annotations[big_yx][little_yx]))) + for big_yx in self.portals: + for little_yx in self.portals[big_yx]: + write(f, 'GOD_PORTAL %s %s %s' % (big_yx, little_yx, + quote(self.portals[big_yx][little_yx]))) + for big_yx in [yx for yx in self.map_controls + if self.map_controls[yx].modified]: + for y, line in self.map_controls[big_yx].lines(): + write(f, 'MAP_CONTROL_LINE %s %5s %s' % (big_yx, y, quote(line))) + for tile_class in self.map_control_passwords: + write(f, 'MAP_CONTROL_PW %s %s' % (tile_class, + self.map_control_passwords[tile_class])) + for pw in self.admin_passwords: + write(f, 'ADMIN_PASSWORD %s' % pw) + for t in [t for t in self.things if not t.type_ == 'Player']: + write(f, 'THING %s %s %s %s' % (t.position[0], + t.position[1], t.type_, t.id_)) + if hasattr(t, 'name'): + write(f, 'GOD_THING_NAME %s %s' % (t.id_, quote(t.name))) + write(f, 'SPAWN_POINT %s %s' % (self.spawn_point[0], + self.spawn_point[1])) def get_map(self, big_yx, type_='normal'): if type_ == 'normal': maps = self.maps elif type_ == 'control': maps = self.map_controls - if not big_yx in maps: + if big_yx not in maps: maps[big_yx] = SaveableMap(self.map_geometry) if type_ == 'control': maps[big_yx].draw_presets(big_yx.y % 2) @@ -352,9 +355,9 @@ class Game(GameBase): self.annotations = {} self.portals = {} self.admin_passwords = [] - self.spawn_point = YX(0,0), YX(0,0) + self.spawn_point = YX(0, 0), YX(0, 0) self.map_geometry = map_geometry self.map_control_passwords = {'X': 'secret'} - self.get_map(YX(0,0)) - self.get_map(YX(0,0), 'control') + self.get_map(YX(0, 0)) + self.get_map(YX(0, 0), 'control') self.annotations = {}