def door(x=None, y=None): tile = Tile('+', "Door", x, y) tile.add_trait(traits.Openable(tile)) tile.add_trait(traits.Destroyable( tile, [ lambda: Tile.floor(tile.x, tile.y), lambda: GameObject.debris(tile.x + random.randint(-2, 2), tile.y + random.randint(-2, 2)), lambda: GameObject.debris(tile.x + random.randint(-2, 2), tile.y + random.randint(-2, 2)), ] )) return tile
def wall(x=None, y=None): tile = Tile('#', "Wall", x, y, 100, blocks_movement=True, blocks_light=True) tile.add_trait(traits.Destroyable( tile, [ lambda: Tile.floor(tile.x, tile.y), lambda: GameObject.debris(tile.x + random.randint(-5, 5), tile.y + random.randint(-5, 5)), lambda: GameObject.debris(tile.x + random.randint(-5, 5), tile.y + random.randint(-5, 5)), lambda: GameObject.debris(tile.x + random.randint(-5, 5), tile.y + random.randint(-5, 5)), lambda: GameObject.debris(tile.x + random.randint(-5, 5), tile.y + random.randint(-5, 5)), ] )) return tile