示例#1
0
    def make_map(self, destination):

        # Set debug level
        if destination == "debug":
            game_map = GameMap(20, 20, "debug")
            game_map.owner = self
            # game_map.generate_trees(0, 0, game_map.width,
            #                        game_map.height, 20, block_sight=True)
            # game_map.generate_forest()
            # game_map.generate_cavern()
            game_map.place_entities()
            # Initialize field of view
            self.player.light_source.initialize_fov(game_map)

        elif destination == "dream":
            level_params = self.generate_level_params()
            level_data = MenuData(name="choose_level", params=level_params)
            self.owner.menus.create_or_show_menu(level_data)
            if not self.owner.menus.choose_level.event:
                return
            self.world_tendency = self.params["modifier"]
            game_map = GameMap(width=50,
                               height=50,
                               name="dream",
                               title=self.params["title"])
            game_map.owner = self
            game_map.generate_map()
            self.items[game_map.name] = game_map
            self.current_map = game_map
            game_map.place_entities()
            # Initialize field of view
            self.player.light_source.initialize_fov(game_map)
            self.player.light_source.radius = self.player.fighter.fov
            self.player.light_source.recompute_fov(self.player.x,
                                                   self.player.y)
示例#2
0
    def change(self, destination=None):

        self.player = self.owner.player

        if not self.items:
            game_map = GameMap(40, 40, "hub")
            game_map.owner = self
            game_map.generate_hub()
            self.items[game_map.name] = game_map
            self.current_map = game_map

        if destination in self.items:
            game_map = self.items[destination]
            game_map.place_entities()
            self.current_map = game_map
            self.player.fighter = self.player.player.avatar["player"]
            self.player.light_source.initialize_fov(game_map)
            self.player.light_source.radius = self.player.fighter.fov
            self.player.light_source.recompute_fov(self.player.x,
                                                   self.player.y)

            if destination == "hub":
                self.player.fighter = self.player.player.avatar["player"]
                self.player.char = self.player.player.char["player"]
                # player.color = None

        else:
            self.make_map(destination)

        self.owner.ui.side_panel.draw_content()