X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Flevel.py;h=a754f29c80e996d9be2a238393116c9911805a42;hb=354b606a62a1d3a9e41b77f499d35a4c10aa1f3a;hp=39e456588e2a2a9a2186a8475f226af3b9f14573;hpb=68fc37379b0ea2838e2df99f635216e9abe67934;p=koperkapel.git diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py index 39e4565..a754f29 100644 --- a/koperkapel/gamelib/level.py +++ b/koperkapel/gamelib/level.py @@ -11,8 +11,12 @@ class Level(object): 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 @@ -43,8 +47,37 @@ class Level(object): 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"]