X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Flevel.py;h=7641fbcd3de7b29ded0b1ad631c43eab74b16470;hb=92591cd60f6346d318735b9a1adf778b57177917;hp=3df9fe03598dc598db85666491d342370c7b2eee;hpb=ec18a4dde4d14bd4486fb936476266e8511b169b;p=koperkapel.git diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py index 3df9fe0..7641fbc 100644 --- a/koperkapel/gamelib/level.py +++ b/koperkapel/gamelib/level.py @@ -46,6 +46,14 @@ class Level(object): def can_crawl(self, x, y, layer): return 'crawl' in self.tiles[y][x][layer]['behaviour'] + def can_bullet(self, x, y, layer): + if self.tiles[y][x][layer]['behaviour']: + for door in self.doors: + if (x, y) == door.game_pos and door.is_closed(): + return False + return True + return False + def is_keypad(self, x, y): for keypad in self.keypads: if (x, y) == keypad.game_pos: @@ -57,10 +65,10 @@ class Level(object): return True return False - def press_keypad(self, x, y, roaches): + def press_keypad(self, x, y, smart): for keypad in self.keypads: if (x, y) == keypad.game_pos: - keypad.activate(roaches) + keypad.activate(smart) def get_friends(self): return self._friends[:] @@ -87,7 +95,7 @@ class Level(object): def get_exit_level(self): return self.exit["next level"] - def is_on_enemy(self, x, y): + def enemy_at(self, x, y): for enemy in self.enemies: if (x, y) == enemy.game_pos: return True @@ -99,17 +107,21 @@ class Level(object): return enemy return None + def remove_enemy(self, enemy): + self.enemies.remove(enemy) + for generator in self.enemy_generators: + generator.killed(enemy) + def add_enemy(self, enemy, x, y): """Add an enemy to an empty floor space near x, y""" added = False while not added: if self.can_walk(x, y, 'floor'): - if not self.is_on_friend(x, y): - if not self.is_on_enemy(x, y): + if not self.friend_at(x, y): + if not self.enemy_at(x, y): added = True enemy.game_pos = (x, y) self.enemies.append(enemy) added = True x += random.randint(-1, 1) y += random.randint(-1, 1) -