def previous_level(self): up_stairs_id = Util.get_padded_coords(self.state.player.x, self.state.player.y) down_stairs_id = self.follow_stairs(MapConstants.UP_STAIRS_OBJECT, up_stairs_id, self.state.dungeon_level) self.state.dijkstra_map_update = True self.state.player.x, self.state.player.y = Util.get_coords_from_padded_coords(down_stairs_id) if self.state.dungeon_level == 0: self.state.set_player_action(Constants.EXIT) return else: self.state.dungeon_level -= 1 self.state.objects = self.state.objects_map[self.state.dungeon_level] self.state.game_map.set_game_map(self.state.dungeon_level) # TODO Make fov_map container class self.state.fov_map = self.state.fov_map_map[self.state.dungeon_level] self.initialize_fov(self.state.dungeon_level) self.state.set_player_action(None) self.state.fov_recompute = True
def next_level(self): self.state.dijkstra_map_update = True self.state.dungeon_level += 1 self.state.status_panel.message('You take a moment to rest and recover 50% health', libtcod.violet) self.state.player.fighter.heal(self.state.player.fighter.max_hp(self.state) / 2, self.state) self.state.status_panel.message('and now you descend into the depths of the dungeon', libtcod.red) if self.state.dungeon_level in self.state.game_map.complete_game_map: self.state.game_map.set_game_map(self.state.dungeon_level) down_stairs_id = Util.get_padded_coords(self.state.player.x, self.state.player.y) up_stairs_id = self.follow_stairs(MapConstants.DOWN_STAIRS_OBJECT, down_stairs_id, self.state.dungeon_level - 1) self.state.player.x, self.state.player.y = Util.get_coords_from_padded_coords(up_stairs_id) else: self.state.objects_map[self.state.dungeon_level] = [self.state.player] self.state.game_map.generate_map(self.state, self.state.dungeon_level) self.state.score += self.state.dungeon_level * 10 self.state.objects = self.state.objects_map[self.state.dungeon_level] self.initialize_fov(self.state.dungeon_level) self.state.set_player_action(None) self.state.fov_recompute = True Util.render_all(self.state)