class MapManager:
- def __init__(self, globs):
- """With globs a globals() call, collect caller's Map classes."""
- self.map_classes = []
- for name in globs:
- if name[:3] == 'Map':
- self.map_classes += [globs[name]]
+ def __init__(self, map_classes):
+ """Collects tuple of basic Map[Geometry] classes."""
+ self.map_classes = map_classes
def get_map_geometries(self):
geometries = []
yield (y, self.terrain[y * width:(y + 1) * width])
def get_fov_map(self, yx):
- # TODO: Currently only have MapFovHex. Provide MapFovSquare.
- fov_map_class = map_manager.get_map_class('Fov' + self.geometry)
- return fov_map_class(self, yx)
+ fov_class_name = 'Fov' + self.__class__.__name__
+ fov_class = globals()[fov_class_name]
+ return fov_class(self, yx)
# The following is used nowhere, so not implemented.
#def items(self):
return neighbors
-class MapFovHex(MapHex):
+class FovMapHex(MapHex):
def __init__(self, source_map, yx):
self.source_map = source_map
return neighbors
-class MapFovSquare(MapSquare):
+class FovMapSquare(MapSquare):
"""Just a marginally and unsatisfyingly adapted variant of MapFovHex."""
def __init__(self, source_map, yx):
distance += 1
-map_manager = game_common.MapManager(globals())
+map_manager = game_common.MapManager((MapHex, MapSquare))