def __init__(self, configuration):
     """Initialise the builder"""
     super(EvolutionBased, self).__init__(configuration)
     #
     # Find the rooms
     self.rooms = {}
     for room_configuration in configuration.find("rooms").findall("room"):
         room = Room(
             common.getStrAttr(room_configuration, "name"),
             common.getStrAttr(room_configuration, "type"),
             [line.strip() for line in room_configuration.text.strip().splitlines()],
         )
         self.rooms[room.name] = room
     #
     # Get properties
     self.initial_pool_size = common.getInt(configuration, "initialPoolSize")
     self.tournament_size = common.getInt(configuration, "tournamentSize")
     self.max_iterations = common.getInt(configuration, "maxIterations")
     #
     # Tuning parameters
     RoomController.target_num_rooms = common.getFloat(configuration, "targetRooms")
     RoomController.missed_corridor_penalty = common.getFloat(configuration, "missedCorridorPenalty")
     RoomController.corridor_to_room_penalty = common.getFloat(configuration, "corridorToRoomPenalty")
     RoomController.exit_longest_path_multiplier = common.getFloat(configuration, "exitLongestPath")
     RoomController.missed_door_penalty = common.getFloat(configuration, "missedDoorPenalty")
     #
     RoomController.target_room_types["event"] = common.getFloat(configuration, "numEventRooms")
     RoomController.target_room_types["treasure"] = common.getFloat(configuration, "numTreasureRooms")
     RoomController.target_room_types["corridor"] = common.getFloat(configuration, "numCorridors")
Exemple #2
0
 def __init__(self, configuration):
     """Initialise the renderer"""
     super(PygameRenderer, self).__init__(configuration)
     #
     self.cell_width = common.getInt(configuration, 'cellWidth')
     self.cell_height = common.getInt(configuration, 'cellHeight')
     self.surface = None
Exemple #3
0
 def __init__(self, configuration):
     """Initialise the builder"""
     super(PortCreator, self).__init__(configuration)
     #
     # Basic properties of the port
     self.coast_per_port = common.getInt(configuration, 'averageCoastLinePerPort')
     self.island_must_have_port = common.getTrue(configuration, 'islandMustHavePort')
     self.min_port_separation = common.getInt(configuration, 'minimumPortSeparation')
     self.port_location_attempts = common.getInt(configuration, 'portLocationAttempts', 5)
     self.max_name_length = common.getInt(configuration, 'maxPortNameLength', 9)
     #
     # Resource properties
     properties = configuration.findall('resources/resourceProperties/*')
     root = configuration.find('resources/resourceProperties')
     self.property_ranges = dict(
         (element.tag, common.getFloatTuple(root, element.tag)) for element in properties
     )
     #
     self.name_generator = serge.blocks.textgenerator.MarkovNameGenerator(
         serge.blocks.textgenerator.EUROPE
     )
     #
     # Resource types
     self.resource_types = [
         common.getStrAttr(element, 'name')
         for element in configuration.findall('resources/resourceTypes/resource')
     ]
 def __init__(self, configuration):
     """Initialise the builder"""
     super(PortCreator, self).__init__(configuration)
     #
     # Basic properties of the port
     self.coast_per_port = common.getInt(configuration, 'averageCoastLinePerPort')
     self.island_must_have_port = common.getTrue(configuration, 'islandMustHavePort')
     self.min_port_separation = common.getInt(configuration, 'minimumPortSeparation')
     self.port_location_attempts = common.getInt(configuration, 'portLocationAttempts', 5)
     self.max_name_length = common.getInt(configuration, 'maxPortNameLength', 9)
     #
     # Resource properties
     properties = configuration.findall('resources/resourceProperties/*')
     root = configuration.find('resources/resourceProperties')
     self.property_ranges = dict(
         (element.tag, common.getFloatTuple(root, element.tag)) for element in properties
     )
     #
     self.name_generator = serge.blocks.textgenerator.MarkovNameGenerator(
         serge.blocks.textgenerator.EUROPE
     )
     #
     # Resource types
     self.resource_types = [
         common.getStrAttr(element, 'name')
         for element in configuration.findall('resources/resourceTypes/resource')
     ]
 def __init__(self, configuration):
     """Initialise the builder"""
     super(FillTagBuilder, self).__init__(configuration)
     #
     self.tag_name = common.getString(configuration, 'attributeName')
     self.tag_value = common.getString(configuration, 'attributeValue')
     self.world_width = common.getInt(configuration, 'worldWidth', 0)
     self.world_height = common.getInt(configuration, 'worldHeight', 0)
Exemple #6
0
 def __init__(self, configuration):
     """Initialise the builder"""
     super(FillTagBuilder, self).__init__(configuration)
     #
     self.tag_name = common.getString(configuration, 'attributeName')
     self.tag_value = common.getString(configuration, 'attributeValue')
     self.world_width = common.getInt(configuration, 'worldWidth', 0)
     self.world_height = common.getInt(configuration, 'worldHeight', 0)
 def __init__(self, configuration):
     """Initialise the builder"""
     super(RockSubstrate, self).__init__(configuration)
     #
     self.mean_height = common.getInt(configuration, 'meanHeight')
     self.push_energy = common.getInt(configuration, 'pushEnergy')
     self.drop_off = common.getInt(configuration, 'dropOff')
     self.number_pushes = common.getInt(configuration, 'numberPushes')
     self.push_pull_probability = common.getFloat(configuration, 'pushPullProbability')
Exemple #8
0
 def __init__(self, configuration):
     """Initialise the builder"""
     super(RockSubstrate, self).__init__(configuration)
     #
     self.mean_height = common.getInt(configuration, 'meanHeight')
     self.push_energy = common.getInt(configuration, 'pushEnergy')
     self.drop_off = common.getInt(configuration, 'dropOff')
     self.number_pushes = common.getInt(configuration, 'numberPushes')
     self.push_pull_probability = common.getFloat(configuration,
                                                  'pushPullProbability')
Exemple #9
0
 def __init__(self, configuration):
     """Initialise the builder"""
     super(RandomRoomPlacer, self).__init__(configuration)
     #
     self.number_rooms = common.getInt(configuration, 'numberOfRooms')
     self.wall_width = common.getInt(configuration, 'wallWidth')
     self.max_room_tries = common.getInt(configuration, 'maxRoomTries')
     #
     self.rooms = []
     for room in configuration.find('rooms').findall('room'):
         self.rooms.append(Room(room))
Exemple #10
0
 def __init__(self, configuration):
     """Initialise the renderer"""
     super(HeightRenderer, self).__init__(configuration)
     #
     self.base_height = common.getInt(configuration, 'baseHeight')
     self.auto_scale = common.getInt(configuration, 'autoScale')
     if not self.auto_scale:
         self.max_height = common.getInt(configuration, 'maxHeight')
         self.min_height = common.getInt(configuration, 'minHeight')
     self.lower_colour = common.getTuple(configuration, 'lowerColour')
     self.higher_colour = common.getTuple(configuration, 'higherColour')
 def __init__(self, configuration):
     """Initialise the renderer"""
     super(HeightRenderer, self).__init__(configuration)
     #
     self.base_height = common.getInt(configuration, 'baseHeight')
     self.auto_scale = common.getInt(configuration, 'autoScale')
     if not self.auto_scale:
         self.max_height = common.getInt(configuration, 'maxHeight')
         self.min_height = common.getInt(configuration, 'minHeight')
     self.lower_colour = common.getTuple(configuration, 'lowerColour')
     self.higher_colour = common.getTuple(configuration, 'higherColour')
 def __init__(self, configuration):
     """Initialise the builder"""
     super(RandomRoomPlacer, self).__init__(configuration)
     #
     self.number_rooms = common.getInt(configuration, 'numberOfRooms')
     self.wall_width = common.getInt(configuration, 'wallWidth')
     self.max_room_tries = common.getInt(configuration, 'maxRoomTries')
     #
     self.rooms = []
     for room in configuration.find('rooms').findall('room'):
         self.rooms.append(Room(room))
 def __init__(self, configuration):
     """Initialise the builder"""
     super(BomberProcedural, self).__init__(configuration)
     #
     # Get properties
     self.symmetry = common.getString(configuration, "symmetry").lower().strip()
     self.width = common.getInt(configuration, "width")
     self.height = common.getInt(configuration, "height")
     self.blocks_between = common.getInt(configuration, "blocksBetweenEnemies")
     self.destructible_blocks = common.getInt(configuration, "destructibleBlocks")
     self.keep_clear_distance = common.getInt(configuration, "keepClearDistance")
     self.maze_like = common.getTrue(configuration, "makeLike")
 def __init__(self, configuration):
     """Initialise the builder"""
     super(BomberEvolution, self).__init__(configuration)
     #
     # Get properties
     self.initial_pool_size = common.getInt(configuration, "initialPoolSize")
     self.tournament_size = common.getInt(configuration, "tournamentSize")
     self.max_iterations = common.getInt(configuration, "maxIterations")
     self.width = common.getInt(configuration, "width")
     self.height = common.getInt(configuration, "height")
     #
     self.percent_space = common.getFloat(configuration, "targetPercentSpace")
     self.percent_space_multiplier = common.getFloat(configuration, "percentSpaceMultiplier")
     self.target_blocks = common.getFloat(configuration, "targetBlocks")
     self.target_blocks_multiplier = common.getFloat(configuration, "targetBlocksMultiplier")
 def __init__(self, configuration):
     """Initialise the builder"""
     super(MazeBuilder, self).__init__(configuration)
     #
     self.tag_name = common.getString(configuration, 'attributeName')
     self.wall = common.getString(configuration, 'wallValue')
     self.floor = common.getString(configuration, 'floorValue')
     self.door = common.getString(configuration, 'doorValue')
     self.entrances = common.getInt(configuration, 'numberEntrances')
Exemple #16
0
 def __init__(self, configuration):
     """Initialise the builder"""
     super(MazeBuilder, self).__init__(configuration)
     #
     self.tag_name = common.getString(configuration, 'attributeName')
     self.wall = common.getString(configuration, 'wallValue')
     self.floor = common.getString(configuration, 'floorValue')
     self.door = common.getString(configuration, 'doorValue')
     self.entrances = common.getInt(configuration, 'numberEntrances')
 def __init__(self, configuration):
     """Initialise the builder"""
     super(IslandFinder, self).__init__(configuration)
     #
     self.sea_tags = common.getString(configuration, 'seaTags')
     self.smallest_island = common.getInt(configuration, 'smallestIsland')
Exemple #18
0
 def __init__(self, configuration):
     """Initialse the builder"""
     super(TunnelBuilder, self).__init__(configuration)
     #
     self.tunnel_optimiser_iterations = common.getInt(
         configuration, 'tunnelOptimiserIterations')
Exemple #19
0
 def __init__(self, configuration):
     """Initialise the builder"""
     super(IslandFinder, self).__init__(configuration)
     #
     self.sea_tags = common.getString(configuration, 'seaTags')
     self.smallest_island = common.getInt(configuration, 'smallestIsland')
 def __init__(self, configuration):
     """Initialse the builder"""
     super(TunnelBuilder, self).__init__(configuration)
     #
     self.tunnel_optimiser_iterations = common.getInt(configuration, 'tunnelOptimiserIterations')