Add more objects to wedding
[mudsync.git] / worlds / bricabrac.scm
index 1fdee9203a141a6bbc7f37eb041715e250583477..b3ff7e0ec95694a787807e205f30cd4308c2abb3 100644 (file)
@@ -263,9 +263,10 @@ collapsed into the only comfortable looking chair in the room and you
 don't get the sense that she's likely to move any time soon.
   Attached to her frumpy dress is a barely secured pin which says
 \"Hotel Proprietor\", but she looks so disorganized that you think
-that can't possibly be true... can it?
-  Despite her exhaustion, you sense she'd be happy to chat with you,
-though the conversation may be a bit one sided."))
+that can't possibly be true... can it?")
+      (p "Despite her exhaustion, you sense she'd be happy to chat
+with you, though the conversation may be a bit one sided."))
+
     #:goes-by '("languid lady" "lady"
                 "hotel proprietor" "proprietor")
     #:catchphrases hotel-owner-grumps)
@@ -2291,6 +2292,9 @@ north seem to hint that this may be the exit to the outdoors.  There's
 also a large sign near the doors on a wooden easel."))
     #:exits
     (list (make <exit>
+           #:name "north"
+           #:to 'courtyard)
+         (make <exit>
            #:name "south"
            #:to 'grand-hallway)))
    ('north-hall:sign
@@ -2330,6 +2334,394 @@ Although towering, they seem passable."))
     #:goes-by '("door" "doors" "room doors" "large doors"))))
 
 
+;;; ============
+;;; WEDDING TIME
+;;; ============
+
+(define wedding-map-text
+  "\
+                   Banquet
+                   &Stairs
+                 (========)
+            .----.\\======/=.----.
+ Fairy     -     : \\====/ :     -
+  Go     ./      :  )==(  :      \\.  Orchestra
+ Round  / (&&&)  : (/==\\) : & & &  \\
+       /         :        :         \\
+       .--------..--------..--------.
+      |  _   _  .'        '.   ,,,   ;
+Photo | | | |_| :  Dance   :  .|_|.  | Cake
+      | '-'     :  Floor   :  |___|  |
+      ',-------.\\         ;.--------,'
+       ;   ..    '.......'         ;
+        \\  ||))    .-=-.     ^   */
+         \\.||(( ^ //   \\\\^ *  ^'./
+     Play '.  ^  ;;     ;;^  ^.,'
+    Ground  +----||-----||----+  Flowers
+            | .---.           |
+            | |_ _|       [F] |
+            |   |             |
+            |      Entrance   |
+            '-----------------'")
+
+(define wedding
+  (lol
+   ;; Courtyard
+   ;; ---------
+   ('courtyard
+    <room> #f
+    #:name "The Courtyard"
+    #:desc
+    '((p "Standing in the courtyard you feel... different.  As if the courtyard itself
+was the space between worlds, cobbled together hastily by some distant being.")
+      (p "To the south are some large doors which serve as the back entrance to
+the hotel.  To the north is a forest, from which festive noises emerge."))
+    #:exits
+    (list (make <exit>
+           #:name "south"
+           #:to 'north-hall)
+         (make <exit>
+           #:name "north"
+           #:to 'forest-clearing)))
+   ('forest-clearing
+    <room> #f
+    #:name "A Clearing in the Forest"
+    #:desc
+    '((p "During an aimless ramble through the forest you became
+disoriented and lost your way. It has been some time since you’ve seen
+any of the familiar landmarks that would help you orient yourself. As
+you continue on, the feel of the forest seems to shift. As the trees
+grow thicker the light dims.  Eerie laughter echoes through the boughs
+overhead and you shiver.")
+      (p "A warm light to the north beckons you towards it.
+South leads back to the Hotel's main grounds."))
+    #:exits
+    (list (make <exit>
+           #:name "north"
+           #:to 'wedding-entrance)
+         (make <exit>
+           #:name "south"
+           #:to 'courtyard)))
+   ('wedding-entrance
+    <room> #f
+    #:name "Entrance to the Wedding"
+    #:desc
+    '((p "As you approach you realize that the light is not an exit from the
+forest or a clearing, rather thousands of minuscule lights twined
+through the boughs of the trees. What you see before you is some sort
+of living structure composed of a thicket of trees intertwined with
+bramble. To the left of the entrance is a sign, to the right is a frog
+sitting atop a hostess podium.")
+      (p "To the north the limbs of two trees intertwine, making an entrance.
+To the south is the forest."))
+    #:exits
+    (list (make <exit>
+           #:name "south"
+           #:to 'forest-clearing)
+         (make <exit>
+           #:name "north"
+           #:to 'vaulted-tunnel)))
+   ;; map
+   ('wedding-entrance:map
+    <readable> 'wedding-entrance
+    #:name "wedding map"
+    #:desc '("This appears to be a map of the wedding grounds. "
+             "You could read it if you want to.")
+    #:read-text `(pre ,wedding-map-text)
+    #:goes-by '("map" "wedding map"))
+   ('vaulted-tunnel
+    <room> #f
+    #:name "A Vaulted Tunnel of Trees"
+    #:desc
+    '((p "You step into the entrance to see two rows of trees with intersecting
+branches, forming a vaulted tunnel. The fairy lights cast a soft glow on the space.
+On each tree trunk is a portrait and the eerie laughter you heard outside echoes
+louder as you pass each portrait.")
+      (p "The tunnel enters from the south and exits from the north, with light
+glowing each way."))
+    #:exits
+    (list (make <exit>
+           #:name "south"
+           #:to 'wedding-entrance)
+         (make <exit>
+           #:name "north"
+           #:to 'dance-floor)))
+   ('vaulted-tunnel:portrait
+    <gameobj> 'vaulted-tunnel
+    #:name "hanging portraits"
+    #:desc
+    "Each portrait shows a hazy image of a fairy in various modes of dress from
+Victorian to today's current fashions. The style and format of the photographs
+all look the same."
+    #:goes-by
+    '("hanging portrait" "hanging portraits" "portrait" "portraits"))
+   ('dance-floor
+    <room> #f
+    #:name "The Ballroom Dance Flooor"
+    #:desc
+    '((p "You emerge into a clearing with six trees encircling a magical ballroom.
+At the center is a dance floor where fairies are dancing in rows of
+concentric circles. The lights that appear in unstructured smatterings
+throughout the mystical space have formed themselves into an elaborate
+chandelier above the dancers.")
+      (p "To the south the trees intertwine forming an entrance.
+The ballroom extends in every other cardinal direction."))
+    #:exits
+    (list (make <exit>
+           #:name "north"
+           #:to 'banquet)
+         (make <exit>
+           #:name "northeast"
+           #:to 'orchestra)
+         (make <exit>
+           #:name "east"
+           #:to 'cake-wing)
+         (make <exit>
+           #:name "southeast"
+           #:to 'flower-field)
+         (make <exit>
+           #:name "south"
+           #:to 'vaulted-tunnel)
+         (make <exit>
+           #:name "southwest"
+           #:to 'playground)
+         (make <exit>
+           #:name "west"
+           #:to 'photo-booth-wing)
+         (make <exit>
+           #:name "northwest"
+           #:to 'fairy-go-round)))
+   ('banquet
+    <room> #f
+    #:name "Banquet Hall"
+    #:desc
+    ;; TODO: The brownie disappears when you look directly at it.
+    '((p "A large banquet table fills this space.
+Out of the corner of your eye you see a brownie tidying up the
+table while eating brownies.")
+      (p "An ornate set of stairs moves"))
+    #:exits
+    (list (make <exit>
+           #:name "south"
+           #:to 'dance-floor)
+         (make <exit>
+           #:name "west"
+           #:to 'fairy-go-round)
+         (make <exit>
+           #:name "east"
+           #:to 'orchestra)
+         (make <exit>
+           #:name "southeast"
+           #:to 'cake-wing)
+         (make <exit>
+           #:name "southwest"
+           #:to 'photo-booth-wing)
+         (make <exit>
+           #:name "up"
+           #:to 'the-stairs)))
+   ('banquet:banquet-table
+    <gameobj> 'banquet
+    #:name "a banquet table"
+    #:desc "The long rectangular table is draped with layers of gossamer
+cloth in shades of blue and green. It is laden with an assortment of
+exotic dishes in bowls and platters in the shapes of various flowers."
+    #:goes-by '("banquet table" "table"))
+   ('orchestra
+    <room> #f
+    #:name "The Orchestra"
+    #:desc
+    '((p "An orchestra of fairies plays the high-tempo ethereal music
+for the frenzied dancers. In the back is a harpsichord, accompanied
+by various fiddles, a cello, a harp, and a flute."))
+    #:exits
+    (list (make <exit>
+           #:name "west"
+           #:to 'banquet)
+         (make <exit>
+           #:name "southwest"
+           #:to 'dance-floor)
+         (make <exit>
+           #:name "south"
+           #:to 'cake-wing)))
+   ('cake-wing
+    <room> #f
+    #:name "The Cake Wing"
+    #:desc
+    '((p "A large tree stump sits in the middle of the space with a
+massive tiered cake atop it."))
+    #:exits
+    (list (make <exit>
+           #:name "north"
+           #:to 'orchestra)
+         (make <exit>
+           #:name "west"
+           #:to 'dance-floor)
+         (make <exit>
+           #:name "northwest"
+           #:to 'banquet)
+         (make <exit>
+           #:name "south"
+           #:to 'flower-field)))
+   ;; TODO: You should be able to take a slice of cake
+   ('cake-wing:cake
+    <gameobj> 'cake-wing
+    #:name "the wedding cake"
+    #:desc "The lowest tier is a dark green with a fondant vine
+scrolling around it. The second tier is light blue with delphiniums
+painted onto it and mauve fondant roses lining the transition between
+the tiers. The third tier is sky blue, with clouds painted onto the
+frosting. The cake is topped with figurines of four fairies dancing
+in a circle."
+    #:goes-by '("wedding cake" "cake"))
+   ('flower-field
+    <room> #f
+    #:name "Field of Flowers"
+    #:desc
+    '((p "A field of wildflowers stretches out before you, far further
+than the confines of the space you saw from the outside. Groups of fairies
+are frolicking about."))
+    #:exits
+    (list (make <exit>
+           #:name "north"
+           #:to 'cake-wing)
+         (make <exit>
+           #:name "northwest"
+           #:to 'dance-floor)))
+   ('playground
+    <room> #f
+    #:name "Playground"
+    #:desc
+    '((p "You come across a playground that echoes with the sounds of children
+playing. Vines hang from the boughs above forming swings of varying
+heights and sizes. Young fairies climb up an obliging maple tree and
+use the helicopter seeds to float back to the ground. An enchanted
+see-saw hovers a foot from the soft grass below."))
+    #:exits
+    (list (make <exit>
+           #:name "north"
+           #:to 'photo-booth-wing)
+         (make <exit>
+           #:name "northeast"
+           #:to 'dance-floor)))
+   ('photo-booth-wing
+    <room> #f
+    #:name "The Photo Booth Wing"
+    #:desc
+    '((p "There is a photographer with A Victorian bellows camera for guests to
+have their portrait taken. The trunks of the trees lining this section
+are covered in photographs of fairies and historical fairy
+‘hoaxes’."))
+    #:exits
+    (list (make <exit>
+           #:name "north"
+           #:to 'fairy-go-round)
+         (make <exit>
+           #:name "northeast"
+           #:to 'banquet)
+         (make <exit>
+           #:name "east"
+           #:to 'dance-floor)
+         (make <exit>
+           #:name "south"
+           #:to 'playground)))
+   ('photo-booth-wing:camera
+    <gameobj> 'photo-booth-wing
+    #:name "an old-fashioned camera"
+    #:desc '((p "This old-fashioned camera has a lens that extends out with an accordion or bellows shaped enclosure. The flash bulb is held separately by the photographer."))
+    #:goes-by '("old-fashioned camera" "camera"))
+   ('photo-booth-wing:photographer
+    <chatty-npc> 'photo-booth-wing
+    #:name "a photographer"
+    #:desc "You suppose there's a person under the drapery of the
+camera somewhere, though all you can see are his legs."
+    #:goes-by '("photographer")
+    #:catchphrases
+    '("Alright, smile for me real big everyone!"
+      "It's real difficult to get fairies to sit still enough to take
+a clear photo of them.  That's my specialty... and it's still tough, heh."
+      "Fairy photos just don’t work with modern cameras.  You need these old
+bellows-cameras, or maybe an old brownie camera in order to really
+capture fairies!"))
+   ('photo-booth-wing:flash-bulb
+    <gameobj> 'photo-booth-wing
+    #:name "a flash bulb"
+    #:invisible? #t
+    #:desc "The flash bulb is large and appears to have a filament that's
+kind of unusual.  It glows even when the camera isn't flashing.  Every now
+and then the photographer takes a picture, a loud *kzzzt!* noise fills the room,
+and a magical glow suffuses everything."
+    #:goes-by '("flash bulb" "flash" "bulb"))
+   ('fairy-go-round
+    <room> #f
+    #:name "Fairy Go Round"
+    #:desc
+    '((p "A large carousel fills the space. The seating arrangement alternates
+between vine swings that move up and down and large mums that serve as
+stools."))
+    #:exits
+    (list (make <exit>
+           #:name "east"
+           #:to 'banquet)
+         (make <exit>
+           #:name "southeast"
+           #:to 'dance-floor)
+         (make <exit>
+           #:name "south"
+           #:to 'photo-booth-wing)))
+   ('the-stairs
+    <room> #f
+    #:name "Stairwell"
+    #:desc
+    '((p "A grand staircase springs from the ground, the twisting branches and
+vines woven into an ornate pattern up the balustrade. At the foot of
+the stairs is a fairy dreamily looking up at them."))
+    #:exits
+    (list (make <exit>
+           #:name "up"
+           #:to 'wedding-canopy)
+         (make <exit>
+           #:name "down"
+           #:to 'banquet)))
+   ('the-stairs:fairy
+    <chatty-npc> 'the-stairs
+    #:name "a serene young fairy"
+    #:desc "You suppose there's a person under the drapery of the
+camera somewhere, though all you can see are his legs."
+    #:goes-by '("serene young fairy" "serene fairy" "fairy" "young fairy")
+    #:catchphrases
+    '("Alright, smile for me real big everyone!"
+      "It's real difficult to get fairies to sit still enough to take
+a clear photo of them.  That's my specialty... and it's still tough, heh."
+      ))   
+   ('canopy
+    <room> #f
+    #:name "The Canopy"
+    #:desc
+    '((p "The branches of the trees helpfully form into a relatively smooth and
+sturdy surface to walk around the perimeter of the ballroom from
+above. There are two exhausted looking cats in tophats lounging
+around."))
+    #:exits
+    (list (make <exit>
+           #:name "down"
+           #:to 'the-stairs)))
+
+;;    ('ballroom
+;;     <room> #f
+;;     #:name "The Ballroom"
+;;     #:exits (list
+;;          (make <exit>
+;;            )
+;;          [north entrance]
+;;              [east entrance]
+            
+;;              [south vaulted-tunnel]
+;;              [west entrance])
+;;      #:desc ("You emerge into a clearing with six trees encircling a magical ballroom. At the center is a dance floor where " (cast dancers "fairies") " are dancing in rows of concentric circles. The lights that appear in unstructured smatterings throughout the mystical space have formed themselves into an elaborate chandelier above the dancers."))
+
+   ))
+
+
 \f
 ;;; Game
 ;;; ----
@@ -2339,7 +2731,7 @@ Although towering, they seem passable."))
           playroom break-room computer-room underground-lab
           async-museum gift-shop hive-entrance
           hive-inside federation-station
-         north-hall))
+         north-hall wedding))
 
 ;; TODO: Provide command line args
 (define (run-game . args)