Пример #1
0
 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
Пример #2
0
 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)