The dance floor
authorChristine Lemmer-Webber <cwebber@dustycloud.org>
Fri, 23 Sep 2022 21:08:39 +0000 (17:08 -0400)
committerChristine Lemmer-Webber <cwebber@dustycloud.org>
Fri, 23 Sep 2022 21:08:39 +0000 (17:08 -0400)
worlds/bricabrac.scm

index 11d02d1877238c8aee7155f6aa3be93e6a540aeb..d749531c5ef0dad8e11b0ab378c05a5681cd5a24 100644 (file)
@@ -2383,6 +2383,31 @@ Photo | | | |_| :  Dance   :  .|_|.  | Cake
   (<- (message-from message) 'tell
       #:text (.eat-catchphrase actor)))
 
+(define-class <dancers> (<chatty-npc>)
+  (commands
+   #:allocation #:each-subclass
+   #:init-thunk (build-commands
+                (("dance") ((direct-command cmd-dance)))))
+  (actions #:allocation #:each-subclass
+           #:init-thunk
+           (build-actions
+            (cmd-dance cmd-dance-dancers))))
+
+(define* (cmd-dance-dancers actor message #:key direct-obj)
+  (define player (message-from message))
+  (define player-loc (mbody-val (<-wait player 'get-loc)))
+  (define player-name (mbody-val (<-wait player 'get-name)))
+  (<- (message-from message) 'tell
+      #:text '((p "You join in dancing with the dancers.  You spin and
+get woozy... you feel wonderful... like you could dance forever...")
+              (p "You step out just in time, lest you be caught in
+the dancing for eternity!")))
+  (<- player-loc 'tell-room
+      #:text `((p ,player-name " begins dancing with the fairies and
+spins around and around... as if they might dance forever!")
+              (p "But " ,player-name " steps back just in time!
+Their eyes are cloudy and woozy, but they look happy..."))
+      #:exclude player))
 
 (define wedding
   (lol
@@ -2441,6 +2466,7 @@ To the south is the forest."))
          (make <exit>
            #:name "north"
            #:to 'vaulted-tunnel)))
+   
    ;; map
    ('wedding-entrance:map
     <readable> 'wedding-entrance
@@ -2484,6 +2510,8 @@ 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 "There are green tables and blue tables surrounding the dancers.
+Various creatures are sitting at them, sitting champagne, and laughing.")
       (p "To the south the trees intertwine forming an entrance.
 The ballroom extends in every other cardinal direction."))
     #:exits
@@ -2511,11 +2539,42 @@ The ballroom extends in every other cardinal direction."))
          (make <exit>
            #:name "northwest"
            #:to 'fairy-go-round)))
+   ('dance-floor:dancers
+    <dancers> 'dance-floor
+    #:name "some dancers"
+    #:desc
+    '((p "They dance at a frantic pace, moving too quickly to get any idea of how many of them there are what they look like.")
+      (p "You could dance with one of them, should you so dare.
+But remember what your parents warned you about dancing fairires..."))
+    #:chat-format (lambda _ "You try talking to the dancers.  They
+laugh and tell you that you should join in the dance with them!  Do you
+dare to do it?  You've vaguely heard about people being lost in time...")
+    #:catchphrases
+    '("Dance with us!  Dance!"
+      "You should be dancing!"
+      "There is nothing but the dance, the dance!")
+    #:goes-by
+    '("some dancers" "dancer" "dancers" "fairy" "fairies"))
+   ('dance-floor:green-table
+    <furniture> 'dance-floor
+    #:name "a green table"
+    #:desc "Each table is draped with layers of gossamer cloth in shades of green. The places are set with translucent china with cups the shape of tulips. The rose gold tableware is decorated with a delicate vine pattern snaking up the handles. In the center of the table is an elaborate arrangement of mauve roses and white lilies."
+    #:goes-by '("green table" "table")
+    #:sit-phrase "pull up a chair at"
+    #:sit-phrase-third-person "pulls up a chair at"
+    #:sit-name "a green table")
+   ('dance-floor:blue-table
+    <furniture> 'dance-floor
+    #:name "a blue table"
+    #:desc "Each table is draped with layers of gossamer cloth in shades of blue. The places are set with translucent china with cups the shape of lotus blossoms. The silver tableware is decorated with a delicate vine pattern snaking up the handles. In the center of the table is an elaborate arrangement of delphiniums and irises."
+    #:goes-by '("blue table")
+    #:sit-phrase "pull up a chair at"
+    #:sit-phrase-third-person "pulls up a chair at"
+    #:sit-name "a blue table")
    ('banquet
     <room> #f
     #:name "A Lovely Banquet"
     #: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.")
@@ -2643,7 +2702,7 @@ in a circle."
     '((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.")
-      (p "The ballroom extends to the north, west, and south."))
+      (p "The ballroom extends to the north."))
     #:exits
     (list (make <exit>
            #:name "north"
@@ -2747,7 +2806,7 @@ up fills you with a sense of wonder as the stairs open into the canopy above."))
     #:exits
     (list (make <exit>
            #:name "up"
-           #:to 'wedding-canopy)
+           #:to 'canopy)
          (make <exit>
            #:name "down"
            #:to 'banquet)))
@@ -2755,7 +2814,7 @@ up fills you with a sense of wonder as the stairs open into the canopy above."))
     <chatty-npc> 'the-stairs
     #:name "a serene young fairy"
     #:desc "A serene, young fairy wearing a long gossamer dress.
-She stairs upwards at the stairs, in true wonder."
+She stares upwards at the stairs, in true wonder."
     #:goes-by '("serene young fairy" "serene fairy" "fairy" "young fairy")
     #:catchphrases
     '("The stairs, just look at those stairs!"
@@ -2767,7 +2826,6 @@ these stairs."
    ('the-stairs:stairs
     <gameobj> 'the-stairs
     #:name "the stairs"
-    #:invisible? #t
     #:desc "They're some beautiful stairs all right.  Whoever made these
 must have been an incredible architect.  Entrancing... maybe too entrancing.
 You fear that if you look at them too long, you might risk not being
@@ -2785,6 +2843,22 @@ around."))
     (list (make <exit>
            #:name "down"
            #:to 'the-stairs)))
+   ('canopy:pair-of-cats
+    <chatty-npc> 'canopy
+    #:name "a pair of cats"
+    #:desc
+    '((p "These cats are very well dressed!  They're both wearing top
+hats.  They are somewhat gender ambiguous but one seems to lean more
+feminine and the other one leans more masculine.  They look delighted
+from the festivities but also exhausted, as if the party was for them,
+but also as if they planned the whole thing, or whether they're just
+representationally appearing to fill such roles."))
+    #:catchphrases
+    '("Oh yes... hello!  This was a fun time."
+      "It's nice to get away and be here at the same time."
+      "Later maybe we'll have a nice vacation."
+      "Twice is twice as nice, right?")
+    #:goes-by '("cat" "cats" "pair of cats"))
 
 ;;    ('ballroom
 ;;     <room> #f