(define lobby
(lol
- ('room:lobby
+ ('lobby
<room> #f
#:name "Hotel Lobby"
#:desc
#:exits
(list (make <exit>
#:name "north"
- #:to 'room:grand-hallway)))
+ #:to 'grand-hallway)))
;; NPC: hotel owner
- ('npc:lobby:hotel-owner
- <chatty-npc> 'room:lobby
+ ('lobby:hotel-owner
+ <chatty-npc> 'lobby
#:name "a frumpy fellow"
#:desc
'((p " Whoever this is, they looks totally exhausted. They're
"hotel proprietor" "proprietor")
#:catchphrases hotel-owner-grumps)
;; Object: Sign
- ('thing:lobby:sign
- <readable> 'room:lobby
+ ('lobby:sign
+ <readable> 'lobby
#:name "the Hotel Bricabrac sign"
#:desc " It strikes you that there's something funny going on with this sign.
Sure enough, if you look at it hard enough, you can tell that someone
"hotel bricabrac sign"
"lobby sign"))
- ('thing:lobby:bell
- <summoning-bell> 'room:lobby
+ ('lobby:bell
+ <summoning-bell> 'lobby
#:name "a shiny brass bell"
#:goes-by '("shiny brass bell" "shiny bell" "brass bell" "bell")
#: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 'npc:break-room:desk-clerk)
+ #:summons 'break-desk-clerk)
;; Object: curio cabinets
- ('thing:lobby:cabinet
- <gameobj> 'room:lobby
+ ('lobby:cabinet
+ <gameobj> 'lobby
#:name "a curio cabinet"
#:goes-by '("curio cabinet" "cabinet" "bricabrac cabinet"
"cabinet of curiosities")
"the pickled circuitboard of EVLIS"
"a scroll of teletype paper holding the software Four Freedoms"
"a telephone shaped like an orange cartoon cat")))))
- ('thing:lobby:sign-in-form
- <sign-in-form> 'room:lobby
+ ('lobby:sign-in-form
+ <sign-in-form> 'lobby
#:name "sign-in form"
#:goes-by '("sign-in form" "form" "signin form")
#:desc "It looks like you could sign this form and set your name.")
- ('thing:lobby:porcelain-doll
- <gameobj> 'room:lobby
+ ('lobby:porcelain-doll
+ <gameobj> 'lobby
#:invisible? #t
#:name "a creepy porcelain doll"
#:desc "It strikes you that while the doll is technically well crafted,
it's also the stuff of nightmares."
#:goes-by '("porcelain doll" "doll"))
- ('thing:lobby:1950s-robots
- <gameobj> 'room:lobby
+ ('lobby:1950s-robots
+ <gameobj> 'lobby
#:invisible? #t
#:name "a set of 1950s robots"
#:desc "There's a whole set of these 1950s style robots.
They seem to be stamped out of tin, and have various decorations of levers
and buttons and springs. Some of them have wind-up knobs on them."
#:goes-by '("robot" "robots" "1950s robot" "1950s robots"))
- ('thing:lobby:tea-set
- <gameobj> 'room:lobby
+ ('lobby:tea-set
+ <gameobj> 'lobby
#:invisible? #t
#:name "a tea set"
#:desc "A complete tea set. Some of the cups are chipped.
You can imagine yourself joining a tea party using this set, around a
nice table with some doilies, drinking some Earl Grey tea, hot. Mmmm."
#:goes-by '("tea set" "tea"))
- ('thing:lobby:mustard-pot
- <gameobj> 'room:lobby
+ ('lobby:mustard-pot
+ <gameobj> 'lobby
#:invisible? #t
#:name "a mustard pot"
#:desc '((p "It's a mustard pot. I mean, it's kind of cool, it has a
like this in a museum.")
(p "Ha... imagine that... a mustard museum."))
#:goes-by '("mustard pot" "antique mustard pot" "mustard"))
- ('thing:lobby:head-of-elvis
- <gameobj> 'room:lobby
+ ('lobby:head-of-elvis
+ <gameobj> 'lobby
#:invisible? #t
#:name "the pickled head of Elvis"
#:desc '((p "It's a jar full of some briny-looking liquid and...
everything you read."))
#:goes-by '("pickled head of elvis" "pickled head of Elvis"
"elvis" "Elvis" "head" "pickled head"))
- ('thing:lobby:circuitboard-of-evlis
- <gameobj> 'room:lobby
+ ('lobby:circuitboard-of-evlis
+ <gameobj> 'lobby
#:invisible? #t
#:name "the pickled circuitboard of Evlis"
#:desc '((p "It's a circuitboard from a Lisp Machine called EVLIS.
#:goes-by '("pickled circuitboard of evlis" "pickled circuitboard of Evlis"
"pickled circuitboard of EVLIS"
"evlis" "Evlis" "EVLIS" "circuitboard" "pickled circuitboard"))
- ('thing:lobby:teletype-scroll
- <gameobj> 'room:lobby
+ ('lobby:teletype-scroll
+ <gameobj> 'lobby
#:invisible? #t
#:name "a scroll of teletype"
#:desc '((p "This is a scroll of teletype paper. It's a bit old
"teletype paper" "scroll" "four freedoms"
"scroll of teletype paper holding the software Four Freedoms"
"scroll of teletype paper holding the software four freedoms"))
- ('thing:lobby:orange-cat-phone
- <gameobj> 'room:lobby
+ ('lobby:orange-cat-phone
+ <gameobj> 'lobby
#:invisible? #t
#:name "a telephone shaped like an orange cartoon cat"
#:desc "It's made out of a cheap plastic, and it's very orange.
(define grand-hallway
(lol
- ('room:grand-hallway
+ ('grand-hallway
<room> #f
#:name "Grand Hallway"
#:desc '((p " A majestic red carpet runs down the center of the room.
#:exits
(list (make <exit>
#:name "south"
- #:to 'room:lobby)
+ #:to 'lobby)
(make <exit>
#:name "west"
- #:to 'room:playroom)
+ #:to 'playroom)
(make <exit>
#:name "east"
- #:to 'room:smoking-parlor)))
- ('thing:hackthena-statue
- <gameobj> 'room:grand-hallway
+ #:to 'smoking-parlor)))
+ ('grand-hallway:hackthena-statue
+ <gameobj> 'grand-hallway
#:name "a statue"
#:desc '((p "The base of the statue says \"Hackthena, guardian of the hacker
spirit\". You've heard of Hackthena... not a goddess, but spiritual protector of
But instead of a weapon, she seems to hold some sort of keyboard. And her
shield... well it's round like a shield, but something seems off about it.
You'd better take a closer look to be sure."))
- #:goes-by '("hackthena statue" "hackthena" "statue"))))
+ #:goes-by '("hackthena statue" "hackthena" "statue"))
+ ))
\f
;;; Playroom
(define playroom
(lol
- ('room:playroom
+ ('playroom
<room> #f
#:name "The Playroom"
#:desc " There are toys scattered everywhere here. It's really unclear
#:exits
(list (make <exit>
#:name "east"
- #:to 'room:grand-hallway)))
- ('thing:playroom:cubey
- <gameobj> 'room:playroom
+ #:to 'grand-hallway)))
+ ('playroom:cubey
+ <gameobj> 'playroom
#:name "cubey"
#:take-me? #t
#:desc " It's a little foam cube with googly eyes on it. So cute!")
- ('thing:playroom:cuddles-plushie
- <gameobj> 'room:playroom
+ ('playroom:cuddles-plushie
+ <gameobj> 'playroom
#:name "a cuddles plushie"
#:goes-by '("plushie" "cuddles plushie" "cuddles")
#:take-me? #t
#:desc " A warm and fuzzy cuddles plushie! It's a cuddlefish!")
- ('thing:playroom:toy-chest
- <gameobj> 'room:playroom
+ ('playroom:toy-chest
+ <gameobj> 'playroom
#:name "a toy chest"
#:goes-by '("toy chest" "chest")
#:desc (lambda (toy-chest whos-looking)
#:put-in-me? #t)
;; Things inside the toy chest
- ('thing:playroom:toy-chest:rubber-duck
- <gameobj> 'thing:playroom:toy-chest
+ ('playroom:toy-chest:rubber-duck
+ <gameobj> 'playroom:toy-chest
#:name "a rubber duck"
#:goes-by '("rubber duck" "duck")
#:take-me? #t
(define smoking-parlor
(lol
- ('room:smoking-parlor
+ ('smoking-parlor
<room> #f
#:name "Smoking Parlor"
#:desc
#:exits
(list (make <exit>
#:name "west"
- #:to 'room:grand-hallway)
+ #:to 'grand-hallway)
(make <exit>
#:name "south"
- #:to 'room:break-room)))
- ('thing:smoking-parlor:chair
- <furniture> 'room:smoking-parlor
+ #:to 'break-room)))
+ ('smoking-parlor:chair
+ <furniture> 'smoking-parlor
#:name "a comfy leather chair"
#:desc " That leather chair looks really comfy!"
#:goes-by '("leather chair" "comfy leather chair" "chair")
#:sit-phrase "sink into"
#:sit-phrase-third-person "sinks into"
#:sit-name "the comfy leather chair")
- ('thing:smoking-parlor:sofa
- <furniture> 'room:smoking-parlor
+ ('smoking-parlor:sofa
+ <furniture> 'smoking-parlor
#:name "a plush leather sofa"
#:desc " That leather chair looks really comfy!"
#:goes-by '("leather sofa" "plush leather sofa" "sofa"
#:sit-phrase "sprawl out on"
#:sit-phrase-third-person "sprawls out on into"
#:sit-name "the plush leather couch")
- ('thing:smoking-parlor:bar-stool
- <furniture> 'room:smoking-parlor
+ ('smoking-parlor:bar-stool
+ <furniture> 'smoking-parlor
#:name "a bar stool"
#:desc " Conveniently located near the bar! Not the most comfortable
seat in the room, though."
#:sit-phrase "hop on"
#:sit-phrase-third-person "hops onto"
#:sit-name "the bar stool")
- ('npc:ford-prefect
- <chatty-npc> 'room:smoking-parlor
+ ('ford-prefect
+ <chatty-npc> 'smoking-parlor
#:name "Ford Prefect"
#:desc "Just some guy, you know?"
#:goes-by '("Ford Prefect" "ford prefect"
"frood" "prefect" "ford")
#:catchphrases prefect-quotes)
- ('thing:smoking-parlor:no-smoking-sign
- <gameobj> 'room:smoking-parlor
+ ('smoking-parlor:no-smoking-sign
+ <gameobj> 'smoking-parlor
#:invisible? #t
#:name "No Smoking Sign"
#:desc "This sign says \"No Smoking\" in big, red letters.
#:text
"The clerk's ears perk up, she stamps out a cigarette, and she
runs out of the room!\n")
- (gameobj-set-loc! clerk (dyn-ref clerk 'room:lobby))
+ (gameobj-set-loc! clerk (dyn-ref clerk 'lobby))
(slot-set! clerk 'patience 8)
(slot-set! clerk 'state 'on-duty)
(<- (gameobj-loc clerk) 'tell-room
The clerk leaves the room in a hurry.\n"
player-name)
#:exclude (actor-id clerk))
- (gameobj-set-loc! clerk (dyn-ref clerk 'room:break-room))
+ (gameobj-set-loc! clerk (dyn-ref clerk 'break-room))
(slot-set! clerk 'state 'slacking)
(<- (gameobj-loc clerk) 'tell-room
#:text clerk-return-to-slacking-text
(begin
(tell-room clerk-slack-excuse-text)
;; back bto the break room
- (gameobj-set-loc! clerk (pk 'break-room (dyn-ref clerk 'room:break-room)))
+ (gameobj-set-loc! clerk (pk 'break-room (dyn-ref clerk 'break-room)))
(tell-room clerk-return-to-slacking-text)
;; annnnnd back to slacking
(slot-set! clerk 'state 'slacking)
(define break-room
(lol
- ('room:break-room
+ ('break-room
<room> #f
#:name "Employee Break Room"
#:desc " This is less a room and more of an outdoor wire cage. You get
#:exits
(list (make <exit>
#:name "north"
- #:to 'room:smoking-parlor))
- )
- ('npc:break-room:desk-clerk
- <desk-clerk> 'room:break-room
+ #:to 'smoking-parlor)))
+ ('break-room:desk-clerk
+ <desk-clerk> 'break-room
#:name "the hotel desk clerk"
#:desc " The hotel clerk is wearing a neatly pressed uniform bearing the
hotel insignia. She appears to be rather exhausted."
#:goes-by '("hotel desk clerk" "clerk" "desk clerk"))
- ('thing:break-room:void
- <gameobj> 'room:break-room
+ ('break-room:void
+ <gameobj> 'break-room
#:invisible? #t
#:name "The Void"
#:desc "As you stare into the void, the void stares back into you."
#:goes-by '("void" "abyss" "nothingness" "scenery"))
- ('thing:break-room:fence
- <gameobj> 'room:break-room
+ ('break-room:fence
+ <gameobj> 'break-room
#:invisible? #t
#:name "break room cage"
#:desc "It's a mostly-cubical wire mesh surrounding the break area.
;; TODO: Provide command line args
(define (run-game . args)
- (run-demo (game-spec) 'room:lobby #:repl-server #t))
+ (run-demo (game-spec) 'lobby #:repl-server #t))