super().__init__(*args, **kwargs)
self.next_tasks = []
self.set_task('WAIT')
+ self._fov = None
def set_task(self, task_name, args=()):
task_class = self.game.tasks[task_name]
return None
def proceed(self):
+ self._fov = None
if self.task is None:
self.task = self.get_next_task()
return
self.game.changed = True
self.task = self.get_next_task()
+ @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
+
class ThingPlayer(ThingAnimate):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.nickname = 'undefined'
-