|
@@ -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.
|
|
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
|
|
Attached to her frumpy dress is a barely secured pin which says
|
|
\"Hotel Proprietor\", but she looks so disorganized that you think
|
|
\"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"
|
|
#:goes-by '("languid lady" "lady"
|
|
"hotel proprietor" "proprietor")
|
|
"hotel proprietor" "proprietor")
|
|
#:catchphrases hotel-owner-grumps)
|
|
#:catchphrases hotel-owner-grumps)
|
|
@@ -2363,6 +2364,26 @@ Photo | | | |_| : Dance : .|_|. | Cake
|
|
| Entrance |
|
|
| Entrance |
|
|
'-----------------'")
|
|
'-----------------'")
|
|
|
|
|
|
|
|
+
|
|
|
|
+(define-class <semi-edible-chatty-npc> (<chatty-npc>)
|
|
|
|
+ (commands
|
|
|
|
+ #:allocation #:each-subclass
|
|
|
|
+ #:init-thunk (build-commands
|
|
|
|
+ (("eat") ((direct-command cmd-eat)))))
|
|
|
|
+ (eat-catchphrase
|
|
|
|
+ #:init-keyword #:eat-catchphrase
|
|
|
|
+ #:accessor .eat-catchphrase
|
|
|
|
+ #:init-value "Should you really eat this?")
|
|
|
|
+ (actions #:allocation #:each-subclass
|
|
|
|
+ #:init-thunk
|
|
|
|
+ (build-actions
|
|
|
|
+ (cmd-eat cmd-eat-semi-edible-chatty-npc))))
|
|
|
|
+
|
|
|
|
+(define* (cmd-eat-semi-edible-chatty-npc actor message #:key direct-obj)
|
|
|
|
+ (<- (message-from message) 'tell
|
|
|
|
+ #:text (.eat-catchphrase actor)))
|
|
|
|
+
|
|
|
|
+
|
|
(define wedding
|
|
(define wedding
|
|
(lol
|
|
(lol
|
|
;; Courtyard
|
|
;; Courtyard
|
|
@@ -2391,8 +2412,9 @@ 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
|
|
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
|
|
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
|
|
grow thicker the light dims. Eerie laughter echoes through the boughs
|
|
-overhead and you shiver. A warm light to the north beckons you towards
|
|
|
|
-it."))
|
|
|
|
|
|
+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
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "north"
|
|
#:name "north"
|
|
@@ -2404,14 +2426,14 @@ it."))
|
|
<room> #f
|
|
<room> #f
|
|
#:name "Entrance to the Wedding"
|
|
#:name "Entrance to the Wedding"
|
|
#:desc
|
|
#: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. Directly in front of you the limbs of two
|
|
|
|
-trees intertwine over what appears to be an entrance north.
|
|
|
|
-To the left of the entrance is a sign, to the right is a
|
|
|
|
-frog sitting atop a hostess podium."))
|
|
|
|
|
|
+ '((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
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "south"
|
|
#:name "south"
|
|
@@ -2431,7 +2453,12 @@ frog sitting atop a hostess podium."))
|
|
<room> #f
|
|
<room> #f
|
|
#:name "A Vaulted Tunnel of Trees"
|
|
#:name "A Vaulted Tunnel of Trees"
|
|
#:desc
|
|
#: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 "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
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "south"
|
|
#:name "south"
|
|
@@ -2443,7 +2470,9 @@ frog sitting atop a hostess podium."))
|
|
<gameobj> 'vaulted-tunnel
|
|
<gameobj> 'vaulted-tunnel
|
|
#:name "hanging portraits"
|
|
#:name "hanging portraits"
|
|
#:desc
|
|
#: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."
|
|
|
|
|
|
+ "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
|
|
#:goes-by
|
|
'("hanging portrait" "hanging portraits" "portrait" "portraits"))
|
|
'("hanging portrait" "hanging portraits" "portrait" "portraits"))
|
|
('dance-floor
|
|
('dance-floor
|
|
@@ -2451,9 +2480,12 @@ frog sitting atop a hostess podium."))
|
|
#:name "The Ballroom Dance Flooor"
|
|
#:name "The Ballroom Dance Flooor"
|
|
#:desc
|
|
#:desc
|
|
'((p "You emerge into a clearing with six trees encircling a magical ballroom.
|
|
'((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."))
|
|
|
|
|
|
+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
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "north"
|
|
#:name "north"
|
|
@@ -2481,9 +2513,14 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
#:to 'fairy-go-round)))
|
|
#:to 'fairy-go-round)))
|
|
('banquet
|
|
('banquet
|
|
<room> #f
|
|
<room> #f
|
|
- #:name "Banquet Hall"
|
|
|
|
|
|
+ #:name "A Lovely Banquet"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ ;; 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 goes up and into the distance.
|
|
|
|
+The ballroom extends to the west, south, and east."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "south"
|
|
#:name "south"
|
|
@@ -2503,11 +2540,61 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
(make <exit>
|
|
(make <exit>
|
|
#:name "up"
|
|
#:name "up"
|
|
#:to 'the-stairs)))
|
|
#:to 'the-stairs)))
|
|
|
|
+ ('banquet:brownie
|
|
|
|
+ <semi-edible-chatty-npc> 'banquet
|
|
|
|
+ #:chat-format (lambda _ "The brownie disappears when you try to
|
|
|
|
+talk to her! But she reappears once you stop talking.")
|
|
|
|
+ #:eat-catchphrase "The brownie shrieks with surprise as you try
|
|
|
|
+to eat her! She swats you away!"
|
|
|
|
+ #:name "a brownie"
|
|
|
|
+ #:desc "The brownie disappears out of sight when you try to
|
|
|
|
+look directly at her! However if you look just off to the side you
|
|
|
|
+can see her positively devouring that plate of brownies."
|
|
|
|
+ #:take-me? (lambda _
|
|
|
|
+ (values #f
|
|
|
|
+ #:why-not
|
|
|
|
+ `("The brownie swats your hand away when you try to take her!")))
|
|
|
|
+ #:goes-by '("brownie"))
|
|
|
|
+ ('banquet:brownies
|
|
|
|
+ <semi-edible-chatty-npc> 'banquet
|
|
|
|
+ #:chat-format (lambda _ "You try to chat with the brownies but
|
|
|
|
+they are inanimate! The brownie looks at you strangely from the corner
|
|
|
|
+of her eye. She's clearly judging you.")
|
|
|
|
+ #:eat-catchphrase "You reach forward to eat one of the brownies,
|
|
|
|
+but the brownie snarls at you and you think better of it. Best to leave them
|
|
|
|
+to her."
|
|
|
|
+ #:name "brownies"
|
|
|
|
+ #:desc "It's a plate of brownies. They look delicious and you desperately
|
|
|
|
+wish to eat one."
|
|
|
|
+ #:take-me? (lambda _
|
|
|
|
+ (values #f
|
|
|
|
+ #:why-not
|
|
|
|
+ `("The brownie swats your hand away when you try to take
|
|
|
|
+one of the brownies! She leans over the plate of brownies protectively!")))
|
|
|
|
+ #:goes-by '("brownies" "plate of brownies"))
|
|
|
|
+ ('banquet:stairs
|
|
|
|
+ <gameobj> 'banquet
|
|
|
|
+ #:name "the stairs"
|
|
|
|
+ #:invisible? #t
|
|
|
|
+ #:desc "From here it's clearly a nice set of stairs.
|
|
|
|
+But you get the impression that to really see the stairs, you
|
|
|
|
+should go upward and get a view from on the stairs themselves."
|
|
|
|
+ #:goes-by '("stairs" "stairwell" "stairwell entrance"))
|
|
|
|
+ ('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
|
|
('orchestra
|
|
<room> #f
|
|
<room> #f
|
|
#:name "The Orchestra"
|
|
#:name "The Orchestra"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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.")
|
|
|
|
+ (p "The ballroom extends to the west and south."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "west"
|
|
#:name "west"
|
|
@@ -2522,7 +2609,9 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
<room> #f
|
|
<room> #f
|
|
#:name "The Cake Wing"
|
|
#:name "The Cake Wing"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((p "A large tree stump sits in the middle of the space with a
|
|
|
|
+massive tiered cake atop it.")
|
|
|
|
+ (p "The ballroom extends to the north, west, and south."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "north"
|
|
#:name "north"
|
|
@@ -2536,11 +2625,25 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
(make <exit>
|
|
(make <exit>
|
|
#:name "south"
|
|
#:name "south"
|
|
#:to 'flower-field)))
|
|
#: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
|
|
('flower-field
|
|
<room> #f
|
|
<room> #f
|
|
#:name "Field of Flowers"
|
|
#:name "Field of Flowers"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "north"
|
|
#:name "north"
|
|
@@ -2552,7 +2655,12 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
<room> #f
|
|
<room> #f
|
|
#:name "Playground"
|
|
#:name "Playground"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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.")
|
|
|
|
+ (p "The ballroom extends to the north."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "north"
|
|
#:name "north"
|
|
@@ -2564,7 +2672,11 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
<room> #f
|
|
<room> #f
|
|
#:name "The Photo Booth Wing"
|
|
#:name "The Photo Booth Wing"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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’.")
|
|
|
|
+ (p "The ballroom extends to the north, east, and south."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "north"
|
|
#:name "north"
|
|
@@ -2577,12 +2689,42 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
#:to 'dance-floor)
|
|
#:to 'dance-floor)
|
|
(make <exit>
|
|
(make <exit>
|
|
#:name "south"
|
|
#:name "south"
|
|
- #:to 'playgroun)))
|
|
|
|
|
|
+ #: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
|
|
('fairy-go-round
|
|
<room> #f
|
|
<room> #f
|
|
#:name "Fairy Go Round"
|
|
#:name "Fairy Go Round"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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.")
|
|
|
|
+ (p "The ballroom extends to the east and south."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "east"
|
|
#:name "east"
|
|
@@ -2595,9 +2737,13 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
#:to 'photo-booth-wing)))
|
|
#:to 'photo-booth-wing)))
|
|
('the-stairs
|
|
('the-stairs
|
|
<room> #f
|
|
<room> #f
|
|
- #:name "The Stairs"
|
|
|
|
|
|
+ #:name "Stairwell"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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.")
|
|
|
|
+ (p "The stairwell's entrance from the ballroom goes down. Looking
|
|
|
|
+up fills you with a sense of wonder as the stairs open into the canopy above."))
|
|
#:exits
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "up"
|
|
#:name "up"
|
|
@@ -2605,11 +2751,36 @@ space have formed themselves into an elaborate chandelier above the dancers."))
|
|
(make <exit>
|
|
(make <exit>
|
|
#:name "down"
|
|
#:name "down"
|
|
#:to 'banquet)))
|
|
#:to 'banquet)))
|
|
- ('name
|
|
|
|
|
|
+ ('the-stairs:fairy
|
|
|
|
+ <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."
|
|
|
|
+ #:goes-by '("serene young fairy" "serene fairy" "fairy" "young fairy")
|
|
|
|
+ #:catchphrases
|
|
|
|
+ '("The stairs, just look at those stairs!"
|
|
|
|
+ "I'd like to thank everyone who made this possible... and most
|
|
|
|
+importantly... I'd like to thank the stairs."
|
|
|
|
+ "What a beautiful mind... what a beautiful mind must have made
|
|
|
|
+these stairs."
|
|
|
|
+ "They go on, and upward, the stairs... they're so... beautiful..."))
|
|
|
|
+ ('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
|
|
|
|
+able to think of anything else."
|
|
|
|
+ #:goes-by '("stairs"))
|
|
|
|
+ ('canopy
|
|
<room> #f
|
|
<room> #f
|
|
#:name "The Canopy"
|
|
#:name "The Canopy"
|
|
#:desc
|
|
#:desc
|
|
- '((p ""))
|
|
|
|
|
|
+ '((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
|
|
#:exits
|
|
(list (make <exit>
|
|
(list (make <exit>
|
|
#:name "down"
|
|
#:name "down"
|