X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=worlds%2Fbricabrac.scm;h=11d02d1877238c8aee7155f6aa3be93e6a540aeb;hb=61f7ccec78a16c884a321d251b1229e6e66bb943;hp=74258252f4e66ddc00bbaa93f5709a8bf4514d1c;hpb=44b8858d3781590535a358ee251fcb329d53efdb;p=mudsync.git diff --git a/worlds/bricabrac.scm b/worlds/bricabrac.scm index 7425825..11d02d1 100644 --- a/worlds/bricabrac.scm +++ b/worlds/bricabrac.scm @@ -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) @@ -1967,7 +1968,9 @@ as well as an exit leading to the south.")) "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.") + "time. " + "It looks like there's an exit to the northeast, should you choose that you " + "want to get out of here.") #:exits (list (make #:name "northeast" @@ -2195,7 +2198,7 @@ comments, and so on flowing from node to node." "ActivityPub") " is a federation standard being developed under the " (a "https://www.w3.org/wiki/Socialwg/" - "w3C Social Working Group") + "W3C Social Working Group") ", and doubles as a general client-to-server API. " "It follows a few simple core ideas:") (ul (li "Uses " @@ -2289,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 + #:name "north" + #:to 'courtyard) + (make #:name "south" #:to 'grand-hallway))) ('north-hall:sign @@ -2328,6 +2334,474 @@ 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-class () + (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 + (lol + ;; Courtyard + ;; --------- + ('courtyard + #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 + #:name "south" + #:to 'north-hall) + (make + #:name "north" + #:to 'forest-clearing))) + ('forest-clearing + #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 + #:name "north" + #:to 'wedding-entrance) + (make + #:name "south" + #:to 'courtyard))) + ('wedding-entrance + #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 + #:name "south" + #:to 'forest-clearing) + (make + #:name "north" + #:to 'vaulted-tunnel))) + ;; map + ('wedding-entrance:map + '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 + #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 + #:name "south" + #:to 'wedding-entrance) + (make + #:name "north" + #:to 'dance-floor))) + ('vaulted-tunnel:portrait + '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 + #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 + #:name "north" + #:to 'banquet) + (make + #:name "northeast" + #:to 'orchestra) + (make + #:name "east" + #:to 'cake-wing) + (make + #:name "southeast" + #:to 'flower-field) + (make + #:name "south" + #:to 'vaulted-tunnel) + (make + #:name "southwest" + #:to 'playground) + (make + #:name "west" + #:to 'photo-booth-wing) + (make + #:name "northwest" + #:to 'fairy-go-round))) + ('banquet + #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.") + (p "An ornate set of stairs goes up and into the distance. +The ballroom extends to the west, south, and east.")) + #:exits + (list (make + #:name "south" + #:to 'dance-floor) + (make + #:name "west" + #:to 'fairy-go-round) + (make + #:name "east" + #:to 'orchestra) + (make + #:name "southeast" + #:to 'cake-wing) + (make + #:name "southwest" + #:to 'photo-booth-wing) + (make + #:name "up" + #:to 'the-stairs))) + ('banquet:brownie + '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 + '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 + '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 + '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 + #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.") + (p "The ballroom extends to the west and south.")) + #:exits + (list (make + #:name "west" + #:to 'banquet) + (make + #:name "southwest" + #:to 'dance-floor) + (make + #:name "south" + #:to 'cake-wing))) + ('cake-wing + #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.") + (p "The ballroom extends to the north, west, and south.")) + #:exits + (list (make + #:name "north" + #:to 'orchestra) + (make + #:name "west" + #:to 'dance-floor) + (make + #:name "northwest" + #:to 'banquet) + (make + #:name "south" + #:to 'flower-field))) + ;; TODO: You should be able to take a slice of cake + ('cake-wing:cake + '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 + #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.") + (p "The ballroom extends to the north, west, and south.")) + #:exits + (list (make + #:name "north" + #:to 'cake-wing) + (make + #:name "northwest" + #:to 'dance-floor))) + ('playground + #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.") + (p "The ballroom extends to the north.")) + #:exits + (list (make + #:name "north" + #:to 'photo-booth-wing) + (make + #:name "northeast" + #:to 'dance-floor))) + ('photo-booth-wing + #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’.") + (p "The ballroom extends to the north, east, and south.")) + #:exits + (list (make + #:name "north" + #:to 'fairy-go-round) + (make + #:name "northeast" + #:to 'banquet) + (make + #:name "east" + #:to 'dance-floor) + (make + #:name "south" + #:to 'playground))) + ('photo-booth-wing:camera + '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 + '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 + '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 + #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.") + (p "The ballroom extends to the east and south.")) + #:exits + (list (make + #:name "east" + #:to 'banquet) + (make + #:name "southeast" + #:to 'dance-floor) + (make + #:name "south" + #:to 'photo-booth-wing))) + ('the-stairs + #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.") + (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 + (list (make + #:name "up" + #:to 'wedding-canopy) + (make + #:name "down" + #:to 'banquet))) + ('the-stairs:fairy + '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 + '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 + #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 + #:name "down" + #:to 'the-stairs))) + +;; ('ballroom +;; #f +;; #:name "The Ballroom" +;; #:exits (list +;; (make +;; ) +;; [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.")) + + )) + + ;;; Game ;;; ---- @@ -2337,7 +2811,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)