self.size = size
self.terrain = init_char*self.size_i
self.start_indented = start_indented
+ self.awake = 100 # asleep if zero
+ self.stats = {}
def __getitem__(self, yx):
return self.terrain[self.get_position_index(yx)]
def pos_in_view(self, pos, offset, maps_size):
return self.undouble_coordinate(maps_size, pos) - offset
- def get_view(self, maps_size, get_map, radius, view_offset):
+ def get_view_and_seen_maps(self, maps_size, get_map, radius, view_offset):
m = Map(size=YX(radius*2+1, radius*2+1),
start_indented=(view_offset.y % 2 == 0))
+ seen_maps = []
for pos in m:
seen_pos = self.correct_double_coordinate(maps_size, (0,0),
pos + view_offset)
- seen_map = get_map(seen_pos[0], False)
+ if seen_pos[0] not in seen_maps:
+ seen_maps += [seen_pos[0]]
+ seen_map = get_map(seen_pos[0])
if seen_map is None:
seen_map = Map(size=maps_size)
m[pos] = seen_map[seen_pos[1]]
- return m
+ return m, seen_maps
def correct_double_coordinate(self, map_size, big_yx, little_yx):