self.tiles = []
self.keypads = []
self.doors = []
+ self.grates = []
self.tileset = None
self.start_pos = (0, 0)
+ self.exit = None
+ self.enemies = []
+ self.friends = []
def get_neighbors(self, x, y):
# 4 -connected neighbors
def can_crawl(self, x, y, layer):
return 'crawl' in self.tiles[y][x][layer]['behaviour']
- def keypad_at(self, x, y):
+ def is_keypad(self, x, y):
for keypad in self.keypads:
if (x, y) == keypad.game_pos:
- return keypad
+ return True
+ return False
+
+ def is_grate(self, x, y):
+ if (x, y) in self.grates:
+ return True
+ return False
+
+ def press_keypad(self, x, y, roaches):
+ for keypad in self.keypads:
+ if (x, y) == keypad.game_pos:
+ keypad.activate(roaches)
+
+ def get_friends(self):
+ return self._friends[:]
+
+ def is_on_friend(self, x, y):
+ return (x, y) in [x.game_pos for x in self.friends]
+
+ def remove_friend(self, x, y):
+ for friend in self.friends[:]:
+ if friend.game_pos == (x, y):
+ self.friends.remove(friend)
+ return friend
return None
+
+ def is_exit(self, x, y):
+ return self.exit and (x, y) == tuple(self.exit["pos"])
+
+ def get_exit_level(self):
+ return self.exit["next level"]