import eng class ConservatoryOutsideDoor: name = 'escape' visible = False aliases = ['outside', 'out window', 'trees', 'tree line'] roomConnections = {'west': 'Conservatory', 'east': 'outside'} # Winning the game def go(self): score = eng.getScore() if score >= 300: # Win self.visible = False outside = eng.getRoomByName('outside') eng.goToRoom(outside) eng.winGame() return "CONGRATULATIONS! You completed your mission. Big Al will be quite pleased. Type \"quit\" to end the game." else: return "This would make a great escape route, but you still have work to do. You only have " + str( score ) + " points. Anything less than 300 would be an embarrassment." def look(self): return "You can easily escape through the window. A quick sprint to the tree line and you would be home free." eng.setupDoor(ConservatoryOutsideDoor())
import eng class FoyerLibraryDoor: name = 'foyerLibraryDoor' visible = True aliases = ['door', 'library door'] roomConnections = {'north': 'Foyer', 'south': 'Library'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): foyer = eng.getRoomByName('Foyer') library = eng.getRoomByName('Library') currRoom = eng.getCurrentRoom() if currRoom == foyer: return eng.goToRoom(library) else: return eng.goToRoom(foyer) def look(self): return self.descriptions['desc'] foyerLibraryDoor = FoyerLibraryDoor() eng.setupDoor(foyerLibraryDoor)
import eng class LibraryStudyDoor: name = 'libraryStudyDoor' visible = True aliases = ['door', 'study door'] roomConnections = {'east': 'Library', 'west': 'Study'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): library = eng.getRoomByName('Library') study = eng.getRoomByName('Study') currRoom = eng.getCurrentRoom() if currRoom == library: return eng.goToRoom(study) else: return eng.goToRoom(library) def look(self): return self.descriptions['desc'] libraryStudyDoor = LibraryStudyDoor() eng.setupDoor(libraryStudyDoor)
import eng class GalleryBilliardRoomDoor: name = 'galleryBilliardRoomDoor' visible = True aliases = ['door'] roomConnections = {'north': 'Portrait Gallery', 'south': 'Billiard Room'} descriptions = {'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen."} properties = {'locked': False} def go(self): gallery = eng.getRoomByName('Portrait Gallery') billiardRoom = eng.getRoomByName('Billiard Room') currRoom = eng.getCurrentRoom() if currRoom == gallery: return eng.goToRoom(billiardRoom) else: return eng.goToRoom(gallery) def look(self): return self.descriptions['desc'] galleryBilliardRoomDoor = GalleryBilliardRoomDoor() eng.setupDoor(galleryBilliardRoomDoor)
import eng class FoyerBallroomDoor: name = 'foyerBallroomDoor' visible = True aliases = ['door'] roomConnections = {'north': 'Ballroom', 'south': 'Foyer'} descriptions = {'desc': "This is the door that leads form the foyer into the ballroom."} properties = {'locked': False} def go(self): ballroom = eng.getRoomByName('Ballroom') foyer = eng.getRoomByName('Foyer') currRoom = eng.getCurrentRoom() if currRoom == ballroom: return eng.goToRoom(foyer) else: return eng.goToRoom(ballroom) def look(self): return self.descriptions['desc'] foyerBallroom = FoyerBallroomDoor() eng.setupDoor(foyerBallroom)
import eng class BarGardensDoor: name = 'barGardensDoor' visible = True aliases = ['door', 'gardens door'] roomConnections = {'east': 'Gardens', 'west': 'Bar'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): bar = eng.getRoomByName('Bar') gardens = eng.getRoomByName('Gardens') currRoom = eng.getCurrentRoom() if currRoom == bar: return eng.goToRoom(gardens) else: return eng.goToRoom(bar) def look(self): return self.descriptions['desc'] barGardensDoor = BarGardensDoor() eng.setupDoor(barGardensDoor)
import eng class FrontDoor: name = 'frontDoor' visible = True aliases = ['door', 'front door'] roomConnections = {'east': 'Foyer', 'west': 'Front Porch'} descriptions = {'desc': "This is the door out of the house."} properties = {'locked': False} def go(self): foyer = eng.getRoomByName('Foyer') frontPorch = eng.getRoomByName('Front Porch') currRoom = eng.getCurrentRoom() if currRoom == foyer: return eng.goToRoom(frontPorch) else: return eng.goToRoom(foyer) def look(self): return self.descriptions['desc'] frontDoor = FrontDoor() eng.setupDoor(frontDoor)
import eng class FoyerGalleryDoor: name = 'foyerGalleryDoor' visible = True aliases = ['door'] roomConnections = {'east': 'Portrait Gallery', 'west': 'Foyer'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): foyer = eng.getRoomByName('Foyer') gallery = eng.getRoomByName('Portrait Gallery') currRoom = eng.getCurrentRoom() if currRoom == foyer: return eng.goToRoom(gallery) else: return eng.goToRoom(foyer) def look(self): return self.description foyerGalleryDoor = FoyerGalleryDoor() eng.setupDoor(foyerGalleryDoor)
import eng class masterBathDoor: name = 'masterBathDoor' visible = True aliases = [] roomConnections = {'north': 'Master Bathroom', 'south': 'Master Bedroom'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): masterBed = eng.getRoomByName('Master Bedroom') masterBath = eng.getRoomByName('Master Bathroom') currRoom = eng.getCurrentRoom() if currRoom == masterBed: return eng.goToRoom(masterBath) else: return eng.goToRoom(masterBed) def look(self): return self.descriptions['desc'] masterBathDoor = masterBathDoor() eng.setupDoor(masterBathDoor)
import eng class bridge: name = "bridge" roomConnections = {"east": "plateau", "west": "dungeon"} visible = False def look(self): return "A narrow bridge. It looks safe enough to cross" def go(self): plateau = eng.getRoomByName("plateau") dungeon = eng.getRoomByName("dungeon") currentRoom = eng.getCurrentRoom() if currentRoom == plateau: return eng.goToRoom(dungeon) else: return eng.goToRoom(plateau) eng.setupDoor(bridge())
import eng class BallroomKitchenDoor: name = 'ballroomKitchenDoor' visible = True aliases = ['door', 'kitchen door'] roomConnections = {'south': 'Ballroom', 'north': 'Kitchen'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): kitchen = eng.getRoomByName('Kitchen') ballroom = eng.getRoomByName('Ballroom') currRoom = eng.getCurrentRoom() if currRoom == kitchen: return eng.goToRoom(ballroom) else: return eng.goToRoom(kitchen) def look(self): return self.descriptions['desc'] ballroomKitchenDoor = BallroomKitchenDoor() eng.setupDoor(ballroomKitchenDoor)
properties = {'locked': False} def go(self): foyer = eng.getRoomByName('Foyer') hall = eng.getRoomByName('Hallway') bt = eng.getItemByName("butler") if "butler" in hall.items: if bt.properties['dead']: return self.descriptions['butlerDead'] else: return self.descriptions['butlerAlive'] elif eng.inInventory(bt): return self.descriptions['butlerHeld'] else: currRoom = eng.getCurrentRoom() if currRoom == foyer: return eng.goToRoom(hall) else: # Can't go downstairs holding the masterpiece from the hallway masterpiece = eng.getItemByName('masterpiece') if eng.inInventory(masterpiece): return "Going downstairs to the party while holding this huge stolen painting isn't the best idea you've had. You should drop it." return eng.goToRoom(foyer) def look(self): return self.descriptions['desc'] staircase = Staircase() eng.setupDoor(staircase)
import eng class BallroomBarDoor: name = 'ballroomBarDoor' visible = True aliases = ['door', 'bar door'] roomConnections = {'east': 'Bar', 'west': 'Ballroom'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): ballroom = eng.getRoomByName('Ballroom') bar = eng.getRoomByName('Bar') currRoom = eng.getCurrentRoom() if currRoom == ballroom: return eng.goToRoom(bar) else: return eng.goToRoom(ballroom) def look(self): return self.descriptions['desc'] ballroomBarDoor = BallroomBarDoor() eng.setupDoor(ballroomBarDoor)
import eng class BarGalleryDoor: name = 'barGalleryDoor' visible = True aliases = ['door', 'gallery door'] roomConnections = {'north': 'Bar', 'south': 'Portrait Gallery'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): bar = eng.getRoomByName('Bar') gallery = eng.getRoomByName('Portrait Gallery') currRoom = eng.getCurrentRoom() if currRoom == bar: return eng.goToRoom(gallery) else: return eng.goToRoom(bar) def look(self): return self.descriptions['desc'] barGalleryDoor = BarGalleryDoor() eng.setupDoor(barGalleryDoor)
if otherThing.name == 'bone key': return self._unlockDoor() else: return self.descriptions['unlockFail'] else: return self.descriptions['alreadyOpen'] def go(self): if self.properties['locked']: return self.descriptions['lockedDoor'] library = eng.getRoomByName('Library') secretRoom = eng.getRoomByName('Secret Room') currRoom = eng.getCurrentRoom() if currRoom == library: return eng.goToRoom(secretRoom) else: return eng.goToRoom(library) def look(self): return self.descriptions['desc'] def _unlockDoor(self): self.properties['locked'] = False secretRoom = eng.getRoomByName('Secret Room') secretRoom.visible = True return self.descriptions['unlockSuccess'] librarySecretRoomDoor = LibrarySecretRoomDoor() eng.setupDoor(librarySecretRoomDoor)
import eng class BilliardRoomConservatoryDoor: name = 'billiardRoomConservatoryDoor' visible = True aliases = ['door'] roomConnections = {'east': 'Conservatory', 'west': 'Billiard Room'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): billiardRoom = eng.getRoomByName('Billiard Room') conservatory = eng.getRoomByName('Conservatory') currRoom = eng.getCurrentRoom() if currRoom == billiardRoom: return eng.goToRoom(conservatory) else: return eng.goToRoom(billiardRoom) def look(self): return self.descriptions['desc'] billiardRoomConservatoryDoor = BilliardRoomConservatoryDoor() eng.setupDoor(billiardRoomConservatoryDoor)
def open(self, ind): if self.properties["locked"] and ind == None: return "It's locked. How will you open it?" if self.properties["locked"]: doorKey = eng.getItemByName("door key") silverKey = eng.getItemByName("silver key") if ind == doorKey: self.properties["locked"] = False return "You used to door key to unlock the door" elif ind == silverKey: return "You try the silver key from the hole, but it doesn't fit" else: return "That didn't work" else: return "It's already open" def go(self): if self.properties["locked"]: return "The door is locked" else: currentRoom = eng.getCurrentRoom() endRoom = eng.getRoomByName("endRoom") dungeon = eng.getRoomByName("dungeon") if currentRoom == dungeon: return eng.goToRoom(endRoom) else: return eng.goToRoom(dungeon) eng.setupDoor(woodenDoor())
import eng class SecondBedDoor: name = 'secondBedDoor' visible = True aliases = ['door'] roomConnections = {'east': 'Hallway', 'west': 'Second Bedroom'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It's from the hall to the guest bedroom." } properties = {'locked': False} def go(self): bedroom = eng.getRoomByName('Second Bedroom') hall = eng.getRoomByName('Hallway') currRoom = eng.getCurrentRoom() if currRoom == bedroom: return eng.goToRoom(hall) else: return eng.goToRoom(bedroom) def look(self): return self.descriptions['desc'] secondBedDoor = SecondBedDoor() eng.setupDoor(secondBedDoor)
import eng class BallroomBathroomDoor: name = 'ballroomBathroomDoor' visible = True aliases = ['door', 'bathroom door'] roomConnections = {'east': 'Ballroom', 'west': 'Bathroom'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): ballroom = eng.getRoomByName('Ballroom') bathroom = eng.getRoomByName('Bathroom') currRoom = eng.getCurrentRoom() if currRoom == ballroom: return eng.goToRoom(bathroom) else: return eng.goToRoom(ballroom) def look(self): return self.descriptions['desc'] ballroomBathroomDoor = BallroomBathroomDoor() eng.setupDoor(ballroomBathroomDoor)
import eng class LibraryBilliardRoomDoor: name = 'libraryBilliardRoomDoor' visible = True aliases = ['door'] roomConnections = {'east': 'Billiard Room', 'west': 'Library'} descriptions = {'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen."} properties = {'locked': False} def go(self): library = eng.getRoomByName('Library') billiardRoom = eng.getRoomByName('Billiard Room') currRoom = eng.getCurrentRoom() if currRoom == library: return eng.goToRoom(billiardRoom) else: return eng.goToRoom(library) def look(self): return self.descriptions['desc'] libraryBilliardRoomDoor = LibraryBilliardRoomDoor() eng.setupDoor(libraryBilliardRoomDoor)
import eng class officeDoor: name = 'officeDoor' visible = True aliases = ['door'] roomConnections = {'north': 'Hallway', 'south': 'Office'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It's from the hall to the office." } properties = {'locked': False} def go(self): office = eng.getRoomByName('Office') hall = eng.getRoomByName('Hallway') currRoom = eng.getCurrentRoom() if currRoom == office: return eng.goToRoom(hall) else: return eng.goToRoom(office) def look(self): return self.descriptions['desc'] officeDoor = officeDoor() eng.setupDoor(officeDoor)
import eng class ConservatoryGardensDoor: name = 'conservatoryGardensDoor' visible = True aliases = ['door'] roomConnections = {'north': 'Gardens', 'south': 'Conservatory'} descriptions = { 'desc': "Upon further inspection... there's nothing special about this door. It looks like any other door you've ever seen." } properties = {'locked': False} def go(self): conservatory = eng.getRoomByName('Conservatory') gardens = eng.getRoomByName('Gardens') currRoom = eng.getCurrentRoom() if currRoom == conservatory: return eng.goToRoom(gardens) else: return eng.goToRoom(conservatory) def look(self): return self.descriptions['desc'] conservatoryGardensDoor = ConservatoryGardensDoor() eng.setupDoor(conservatoryGardensDoor)
self.properties['locked'] = False hall = eng.getRoomByName('Hallway') hall.visible = True return self.descriptions['unlockSuccess'] def open(self, otherThing): if self.properties['locked']: if otherThing is None: key = eng.getItemByName('spare key') if eng.inInventory(key): return self._unlockDoor() else: return self.descriptions['unlockFail'] if otherThing.name == 'spare key': return self._unlockDoor() else: return self.descriptions['unlockFail'] else: return self.descriptions['alreadyOpen'] # get connection from the perspective of the room the player is currently in def getConnection(self, direction): if direction in self.roomConnections: return self.roomConnections[direction] else: return 'No room in that direction' masterBedDoor = masterBedDoor() eng.setupDoor(masterBedDoor)