("drop" ((direct-command cmd-drop #:obvious? #f)))))
;; Most objects are generally visible by default
- (generally-visible #:init-value #t
- #:init-keyword #:generally-visible)
- ;; @@: Would be preferable to be using generic methods for this...
- ;; Hopefully we can port this to Guile 2.2 soon...
+ (invisible? #:init-value #f
+ #:init-keyword #:invisible?)
+ ;; TODO: Fold this into a procedure in invisible? similar
+ ;; to take-me? and etc
(visible-to-player?
#:init-value (wrap-apply gameobj-visible-to-player?))
(define (gameobj-visible-to-player? gameobj whos-looking)
"Check to see whether we're visible to the player or not.
By default, this is whether or not the generally-visible flag is set."
- (slot-ref gameobj 'generally-visible))
+ (not (slot-ref gameobj 'invisible?)))
(define* (gameobj-visible-name actor message #:key whos-looking)
;; Are we visible?
('thing:lobby:porcelain-doll
<gameobj> 'room:lobby
- #:generally-visible #f
+ #: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
- #:generally-visible #f
+ #: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
#:goes-by '("robot" "robots" "1950s robot" "1950s robots"))
('thing:lobby:tea-set
<gameobj> 'room:lobby
- #:generally-visible #f
+ #: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
#:goes-by '("tea set" "tea"))
('thing:lobby:mustard-pot
<gameobj> 'room:lobby
- #:generally-visible #f
+ #:invisible? #t
#:name "a mustard pot"
#:desc '((p "It's a mustard pot. I mean, it's kind of cool, it has a
nice design, and it's an antique, but you can't imagine putting something
#:goes-by '("mustard pot" "antique mustard pot" "mustard"))
('thing:lobby:head-of-elvis
<gameobj> 'room:lobby
- #:generally-visible #f
+ #:invisible? #t
#:name "the pickled head of Elvis"
#:desc '((p "It's a jar full of some briny-looking liquid and...
a free floating head. The head looks an awful lot like Elvis, and
"elvis" "Elvis" "head" "pickled head"))
('thing:lobby:circuitboard-of-evlis
<gameobj> 'room:lobby
- #:generally-visible #f
+ #:invisible? #t
#:name "the pickled circuitboard of Evlis"
#:desc '((p "It's a circuitboard from a Lisp Machine called EVLIS.
This is quite the find, and you bet just about anyone interested in
"evlis" "Evlis" "EVLIS" "circuitboard" "pickled circuitboard"))
('thing:lobby:teletype-scroll
<gameobj> 'room:lobby
- #:generally-visible #f
+ #:invisible? #t
#:name "a scroll of teletype"
#:desc '((p "This is a scroll of teletype paper. It's a bit old
and yellowed but the type is very legible. It says:")
"scroll of teletype paper holding the software four freedoms"))
('thing:lobby:orange-cat-phone
<gameobj> 'room:lobby
- #:generally-visible #f
+ #: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.
It resembles a striped tabby, and it's eyes hold the emotion of
('thing:smoking-parlor:no-smoking-sign
<gameobj> 'room:smoking-parlor
- #:generally-visible #f
+ #:invisible? #t
#:name "No Smoking Sign"
#:desc "This sign says \"No Smoking\" in big, red letters.
It has some bits of bubble gum stuck to it... yuck."
#:goes-by '("hotel desk clerk" "clerk" "desk clerk"))
('thing:break-room:void
<gameobj> 'room:break-room
- #:generally-visible #f
+ #: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
- #:generally-visible #f
+ #:invisible? #t
#:name "break room cage"
#:desc "It's a mostly-cubical wire mesh surrounding the break area.
You can see through the gaps, but they're too small to put more than a