+ @property
+ def fov_stencil(self):
+ if self._fov:
+ return self._fov
+ fov_map_class = self.game.map_geometry.fov_map_class
+ self._fov = fov_map_class(self.game.map, self.position)
+ return self._fov
+
+ def fov_stencil_map(self, map):
+ visible_terrain = ''
+ for i in range(self.fov_stencil.size_i):
+ if self.fov_stencil.terrain[i] == '.':
+ visible_terrain += map.terrain[i]
+ else:
+ visible_terrain += ' '
+ return visible_terrain
+