X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Flevel.py;h=a8fe447494f64a6c7e3e5b04f046696f3cb90036;hb=086b92efc52a09908e7186b906f6ca6dfb1607e6;hp=44dd0525ce8a49003cb18a17ef33f0e72106a1e8;hpb=83d8e7e18486e1f2adcad2b1cd24a8b490876014;p=koperkapel.git diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py index 44dd052..a8fe447 100644 --- a/koperkapel/gamelib/level.py +++ b/koperkapel/gamelib/level.py @@ -1,13 +1,19 @@ """ Class holding the level info """ +from .keypad import Keypad +from .door import Door + class Level(object): def __init__(self): self.width = self.height = 0 self.tiles = [] + self.keypads = [] + self.doors = [] + self.grates = [] self.tileset = None - self.start_pos = None + self.start_pos = (0, 0) def get_neighbors(self, x, y): # 4 -connected neighbors @@ -18,7 +24,38 @@ class Level(object): ] def can_walk(self, x, y, layer): - return 'walk' in self.tiles[y][x][layer]['behaviour'] + if 'walk' in self.tiles[y][x][layer]['behaviour']: + # check doors + for door in self.doors: + if (x, y) == door.game_pos and door.is_closed(): + return False + return True + return False def can_fly(self, x, y, layer): - return 'fly' in self.tiles[y][x][layer]['behaviour'] + if 'fly' in 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 can_crawl(self, x, y, layer): + return 'crawl' in self.tiles[y][x][layer]['behaviour'] + + def is_keypad(self, x, y): + for keypad in self.keypads: + if (x, y) == keypad.game_pos: + 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)