From 8244d80da7be85e152d50d63c0aed80234818365 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 29 Jan 2017 12:02:35 -0600 Subject: [PATCH] Fix the bell and start adding the hard disk --- worlds/bricabrac.scm | 64 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 6 deletions(-) diff --git a/worlds/bricabrac.scm b/worlds/bricabrac.scm index ee0ff08..e241fde 100644 --- a/worlds/bricabrac.scm +++ b/worlds/bricabrac.scm @@ -280,7 +280,7 @@ Classy!" #:desc " A shiny brass bell. Inscribed on its wooden base is the text \"ring me for service\". You probably could \"ring the bell\" if you wanted to." - #:summons 'break-desk-clerk) + #:summons 'break-room:desk-clerk) ('lobby:sign-in-form 'lobby @@ -495,7 +495,9 @@ Hackthena must be an emacs user." #:desc "This isn't a shield after all, it seems to be a hard disc platter! It looks kind of loose..." #:invisible? #t - #:goes-by '("hard disc platter" "disc platter" "disc" "shield" "platter")))) + #:goes-by '("hard disc platter" "disc platter" "disc" + "hard disk platter" "disk platter" + "shield" "platter")))) ;;; Playroom @@ -506,12 +508,16 @@ platter! It looks kind of loose..." ('playroom #f #:name "The Playroom" - #:desc " There are toys scattered everywhere here. It's really unclear -if this room is intended for children or child-like adults." + #:desc '(p (" There are toys scattered everywhere here. It's really unclear +if this room is intended for children or child-like adults.") + (" There are doors to both the east and the west.")) #:exits (list (make #:name "east" - #:to 'grand-hallway))) + #:to 'grand-hallway) + (make + #:name "west" + #:to 'computer-room))) ('playroom:cubey 'playroom #:name "Cubey" @@ -925,13 +931,59 @@ the paint, but the wires themselves seem to be unusually sturdy." ;;; Computer room ;;; ------------- +;; Our computer and hard drive are based off the PDP-11 and the RL01 / +;; RL02 disk drives. However we increment both by .5 (a true heresy) +;; to distinguish both from the real thing. + +(define-actor () + () + ;; the state moves from: empty -> with-disc -> loading -> ready + (state #:init-value 'empty + #:accessor .state)) + +(define* (hard-drive-desc hard-drive #:optional whos-looking) + `((p "The hard drive is labeled \"RL02.5\". It's a little under a meter tall.") + (p "There is a slot where a disk platter could be inserted, " + ,(if (eq? (.state hard-drive) 'empty) + "which is currently empty" + "which contains a glowing platter") + ". There is a LOAD button " + ,(if (member (.state hard-drive) '(empty with-disc)) + "which is glowing" + "which is pressed in and unlit") + ". There is a READY indicator " + ,(if (eq? (.state hard-drive) 'ready) + "which is glowing. The machine emits a gentle whirring noise." + "which is unlit.")))) + +(define computer-room + (lol + ('computer-room + #f + #:name "Computer Room" + #:desc '((p "A sizable computer cabinet covers a good portion of the left +wall. It emits a pleasant hum which covers the room like a warm blanket. +Connected to a computer is a large hard drive.") + (p "On the floor is a large steel panel. It is closed, but it has +hinges which suggest it could be opened.")) + #:exits + (list (make + #:name "east" + #:to 'playroom))) + ('computer-room:hard-drive + 'computer-room + #:name "a hard drive" + #:desc (wrap-apply hard-drive-desc) + #:goes-by '("hard drive" "drive" "hard disk")))) + + ;;; Game ;;; ---- (define (game-spec) (append lobby grand-hallway smoking-parlor - playroom break-room)) + playroom break-room computer-room)) ;; TODO: Provide command line args (define (run-game . args) -- 2.31.1