frumpy fellow is a she now, obviously ;P
[mudsync.git] / worlds / bricabrac.scm
index 18885a4602d57f978130d8b4e05c26f6d552dd0a..d4c26294971da2ab4ff627f55c937f998a172881 100644 (file)
@@ -258,16 +258,15 @@ character.\n")))
     <chatty-npc> 'lobby
     #:name "a frumpy fellow"
     #:desc
     <chatty-npc> 'lobby
     #:name "a frumpy fellow"
     #:desc
-    '((p "  Whoever this is, they looks totally exhausted.  They're
+    '((p "  Whoever this is, she looks totally exhausted.  She's
 collapsed into the only comfortable looking chair in the room and you
 collapsed into the only comfortable looking chair in the room and you
-don't get the sense that they're likely to move any time soon.
+don't get the sense that she's likely to move any time soon.
   You notice they're wearing a sticker badly adhesed to their clothing
   You notice they're wearing a sticker badly adhesed to their clothing
-which says \"Hotel Proprietor\", but they look so disorganized that you
+which says \"Hotel Proprietor\", but she looks so disorganized that you
 think that can't possibly be true... can it?
 think that can't possibly be true... can it?
-  Despite their exhaustion, you sense they'd be happy to chat with you,
+  Despite her exhaustion, you sense she'd be happy to chat with you,
 though the conversation may be a bit one sided."))
     #:goes-by '("frumpy fellow" "fellow"
 though the conversation may be a bit one sided."))
     #:goes-by '("frumpy fellow" "fellow"
-                "Chris Webber"  ; heh, did you rtfc?  or was it so obvious?
                 "hotel proprietor" "proprietor")
     #:catchphrases hotel-owner-grumps)
    ;; Object: Sign
                 "hotel proprietor" "proprietor")
     #:catchphrases hotel-owner-grumps)
    ;; Object: Sign
@@ -760,10 +759,22 @@ platter!  It has \"RL02.5\" written on it.  It looks kind of loose."
     (set! (.filled rgb-item) #f))
   (apply rgb-item-reset rgb-item message rest-args))
 
     (set! (.filled rgb-item) #f))
   (apply rgb-item-reset rgb-item message rest-args))
 
+(define-actor <tinfoil-hat> (<gameobj>)
+  ((cmd-wear tinfoil-hat-wear))
+  (contained-commands
+   #:allocation #:each-subclass
+   #:init-thunk (build-commands
+                 ("wear" ((direct-command cmd-wear))))))
+
+(define (tinfoil-hat-wear tinfoil-hat message . _)
+  (<- (message-from message) 'tell
+      #:text '("You put on the tinfoil hat, and, to be perfectly honest with you "
+               "it's a lot harder to take you seriously.")))
+
+
 (define-actor <hot-tea> (<gameobj>)
   ((cmd-drink hot-tea-cmd-drink)
 (define-actor <hot-tea> (<gameobj>)
   ((cmd-drink hot-tea-cmd-drink)
-   (cmd-sip hot-tea-cmd-sip)
-   (cmd-gotta-hold hot-tea-cmd-gotta-hold))
+   (cmd-sip hot-tea-cmd-sip))
   (contained-commands
    #:allocation #:each-subclass
    #:init-thunk (build-commands
   (contained-commands
    #:allocation #:each-subclass
    #:init-thunk (build-commands
@@ -809,6 +820,19 @@ platter!  It has \"RL02.5\" written on it.  It looks kind of loose."
         #:exclude player)
     (gameobj-self-destruct hot-tea)))
 
         #:exclude player)
     (gameobj-self-destruct hot-tea)))
 
+(define-actor <fanny-pack> (<container>)
+  ((cmd-take-from-while-wearing cmd-take-from)
+   (cmd-put-in-while-wearing cmd-put-in))
+  (contained-commands
+   #:allocation #:each-subclass
+   #:init-thunk
+   (build-commands
+    (("l" "look") ((direct-command cmd-look-at)))
+    ("take" ((prep-indir-command cmd-take-from-while-wearing
+                                 '("from" "out of"))))
+    ("put" ((prep-indir-command cmd-put-in-while-wearing
+                                '("in" "inside" "into" "on")))))))
+
 (define playroom
   (lol
    ('playroom
 (define playroom
   (lol
    ('playroom
@@ -862,6 +886,38 @@ if this room is intended for children or child-like adults.")
     #:take-me? #t
     #:desc "It's a yellow rubber duck with a bright orange beak.")
 
     #:take-me? #t
     #:desc "It's a yellow rubber duck with a bright orange beak.")
 
+   ('playroom:toy-chest:tinfoil-hat
+    <tinfoil-hat> 'playroom:toy-chest
+    #:name "a tinfoil hat"
+    #:goes-by '("tinfoil hat" "hat")
+    #:take-me? #t
+    #:desc "You'd have to be a crazy person to wear this thing!")
+
+   ('playroom:toy-chest:fanny-pack
+    <fanny-pack> 'playroom:toy-chest
+    #:name "a fanny pack"
+    #:goes-by '("fanny pack" "pack")
+    #:take-me? #t
+    #:desc
+    (lambda (toy-chest whos-looking)
+      (let ((contents (gameobj-occupants toy-chest)))
+        `((p "It's a leather fanny pack, so it's both tacky and kinda cool.")
+          (p "Inside you see:"
+             ,(if (eq? contents '())
+                  " nothing!  It's empty!"
+                  `(ul ,(map (lambda (occupant)
+                               `(li ,(mbody-val
+                                      (<-wait occupant 'get-name))))
+                             (gameobj-occupants toy-chest)))))))))
+
+   ;; Things inside the toy chest
+   ('playroom:toy-chest:fanny-pack:plastic-elephant
+    <gameobj> 'playroom:toy-chest:fanny-pack
+    #:name "a plastic elephant"
+    #:goes-by '("plastic elephant" "elephant")
+    #:take-me? #t
+    #:desc "It's a tiny little plastic elephant.  Small, but heartwarming.")
+
    ('playroom:rgb-machine
     <rgb-machine> 'playroom
     #:name "a Rube Goldberg machine"
    ('playroom:rgb-machine
     <rgb-machine> 'playroom
     #:name "a Rube Goldberg machine"
@@ -1686,8 +1742,14 @@ is a map detailing the layout of the underground structure."))
               (values #f '("Ooh, if only you could go south and check this out! "
                            "Unfortunately this whole area is sealed off... the proprietor "
                            "probably never got around to fixing it. "
               (values #f '("Ooh, if only you could go south and check this out! "
                            "Unfortunately this whole area is sealed off... the proprietor "
                            "probably never got around to fixing it. "
-                           "Too bad, it would have had monsters to fight and everything!"))))))
-
+                           "Too bad, it would have had monsters to fight and everything!"))))
+          (make <exit>
+            #:name "southwest"
+            #:traverse-check
+            (lambda (exit room whos-exiting)
+              (values #f '("Hm, it's one of those revolving doors that only revolves in "
+                           "one direction, and it isn't this one.  You guess that while "
+                           "this doesn't appear to be an entrance, it probably is an exit."))))))
    ;; map
    ('underground-lab:map
     <readable> 'underground-lab
    ;; map
    ('underground-lab:map
     <readable> 'underground-lab
@@ -1880,11 +1942,18 @@ as well as an exit leading to the south."))
    ('gift-shop
     <room> #f
     #:name "Museum Gift Shop"
    ('gift-shop
     <room> #f
     #:name "Museum Gift Shop"
-    #:desc "foo"
+    #:desc '("There are all sorts of scrolls and knicknacks laying around here, "
+             "but they all seem glued in place and instead of a person manning the shop "
+             "there's merely a cardboard cutout of a person with a \"shopkeeper\" nametag. "
+             "You can pretty well bet that someone wanted to finish this room but ran out of "
+             "time.")
     #:exits (list
              (make <exit>
                #:name "northeast"
     #:exits (list
              (make <exit>
                #:name "northeast"
-               #:to 'underground-lab)
+               #:to 'underground-lab
+               #:traverse-check
+               (lambda (exit room whos-exiting)
+                 (values #t '("The revolving door spins as you walk through it.  Whee!"))))
              (make <exit>
                #:name "north"
                #:to 'async-museum)))))
              (make <exit>
                #:name "north"
                #:to 'async-museum)))))