#:exits
(list (make <exit>
#:name "east"
- #:to 'playroom)))
+ #:to 'playroom)
+ (make <exit>
+ #:name "down"
+ #:to 'underground-lab
+ #:traverse-check
+ (lambda (exit room whos-exiting)
+ (define panel-open
+ (mbody-val (<-wait (dyn-ref room 'computer-room:floor-panel)
+ 'open?)))
+ (if panel-open
+ (values #t "You descend the spiral staircase.")
+ (values #f '("You'd love to go down, but the only way "
+ "through is through that metal panel, "
+ "which seems closed.")))))))
('computer-room:hard-drive
<hard-drive> 'computer-room
#:name "the hard drive"
#:goes-by '("floor panel" "panel"))))
+(define underground-lab
+ (lol
+ ('underground-lab
+ <room> #f
+ #:name "Underground laboratory"
+ #:desc '("This appears to be some sort of underground laboratory. "
+ )
+ #:exits
+ (list (make <exit>
+ #:name "up"
+ #:to 'computer-room)))))
+
+
\f
;;; Game
;;; ----
(define (game-spec)
(append lobby grand-hallway smoking-parlor
- playroom break-room computer-room))
+ playroom break-room computer-room underground-lab))
;; TODO: Provide command line args
(define (run-game . args)