X-Git-Url: https://git.ctpug.org.za/?p=koperkapel.git;a=blobdiff_plain;f=koperkapel%2Fgamelib%2Flevel.py;h=bcc319a2886d2f5e530d30ff70be6f7f50478a09;hp=eb9e8b232e3ff6b5ec6aafafb8222df3685b3503;hb=5729b7d89f992ba3d5b3f779ecc1094a48a85459;hpb=0a4ee2b80d2af7627366380919dbe6d5204e2999 diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py index eb9e8b2..bcc319a 100644 --- a/koperkapel/gamelib/level.py +++ b/koperkapel/gamelib/level.py @@ -1,8 +1,5 @@ """ Class holding the level info """ -from .keypad import Keypad -from .door import Door - class Level(object): @@ -14,7 +11,9 @@ class Level(object): self.grates = [] self.tileset = None self.start_pos = (0, 0) + self.exit = None self.enemies = [] + self.enemy_generators = [] self.friends = [] def get_neighbors(self, x, y): @@ -22,8 +21,7 @@ class Level(object): return [self.tiles[y][x-1] if x > 0 else None, self.tiles[y][x+1] if x < self.width - 1 else None, self.tiles[y-1][x] if y > 0 else None, - self.tiles[y+1][x] if y < self.height- 1 else None, - ] + self.tiles[y+1][x] if y < self.height - 1 else None] def can_walk(self, x, y, layer): if 'walk' in self.tiles[y][x][layer]['behaviour']: @@ -65,12 +63,24 @@ class Level(object): 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 friend_at(self, x, y): + for f in self.friends: + if f.game_pos == (x, y): + return f + + def remove_friend(self, friend): + self.friends.remove(friend) + + def item_at(self, x, y): + for i in self.items: + if i.game_pos == (x, y): + return i + + def remove_item(self, item): + self.items.remove(item) + + def is_exit(self, x, y): + return self.exit and (x, y) == tuple(self.exit["pos"]) - 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 get_exit_level(self): + return self.exit["next level"]