""" 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.tileset = None
self.start_pos = (0, 0)
]
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.pos and door.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.pos and door.closed():
+ return False
+ return True
+
+ return False
def can_crawl(self, x, y, layer):
return 'crawl' in self.tiles[y][x][layer]['behaviour']
+
+ def keypad_at(self, x, y):
+ for keypad in self.keypads:
+ if (x, y) == keypad.pos:
+ return keypad
+ return None