X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=worlds%2Fbricabrac.scm;h=3fdb45387fe71144b6d6beac50d2783a1a4003a7;hb=944e490c39ef13cf98e2811006ea607f14ad4316;hp=a00e7acc781115d62d045df2983b66b2ab44f51d;hpb=8bf798a930c7cd36a9d3427a3498e5222115e889;p=mudsync.git diff --git a/worlds/bricabrac.scm b/worlds/bricabrac.scm index a00e7ac..3fdb453 100644 --- a/worlds/bricabrac.scm +++ b/worlds/bricabrac.scm @@ -1,5 +1,5 @@ ;;; Mudsync --- Live hackable MUD -;;; Copyright © 2016, 2017 Christopher Allan Webber +;;; Copyright © 2016, 2017 Christine Lemmer-Webber ;;; ;;; This file is part of Mudsync. ;;; @@ -256,18 +256,17 @@ character.\n"))) ;; NPC: hotel owner ('lobby:hotel-owner 'lobby - #:name "a frumpy fellow" + #:name "a languid lady" #: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 -don't get the sense that they're likely to move any time soon. - You notice they're wearing a sticker badly adhesed to their clothing -which says \"Hotel Proprietor\", but they look so disorganized that you -think that can't possibly be true... can it? - Despite their exhaustion, you sense they'd be happy to chat with 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.")) - #:goes-by '("frumpy fellow" "fellow" - "Chris Webber" ; heh, did you rtfc? or was it so obvious? + #:goes-by '("languid lady" "lady" "hotel proprietor" "proprietor") #:catchphrases hotel-owner-grumps) ;; Object: Sign @@ -425,7 +424,17 @@ this general shape in the 1990s." #:goes-by '("orange cartoon cat phone" "orange cartoon cat telephone" "orange cat phone" "orange cat telephone" "cartoon cat phone" "cartoon cat" - "cat phone" "cat telephone" "phone" "telephone")))) + "cat phone" "cat telephone" "phone" "telephone")) + ('lobby:monster-stuffie + 'lobby + #:name "an off-brand monster stuffie" + #:desc "It's an off brand monster stuffed animal that looks, well kinda +like a popular character you've seen in a video game, but there's been a very +thin attempt to make it look like something different... mostly by changing +the shape of the ears. It's cute though!" + #:take-me? #t + #:goes-by '("monster stuffie" "monster" "stuffed animal" "stuffed monster" + "off-brand monster stuffie" "stuffie" "monster stuffie")))) @@ -488,6 +497,13 @@ labeled \"RL02.5\".") (define lobby-map-text "\ + + .----+++++----. + | : : | + + : north : + + | : hall : | + + : : + + |_ : _____ : _| | : : | .----------.----------. : & : .----------.----------. | computer | |& :YOU ARE: &| smoking | *UNDER* | @@ -500,6 +516,7 @@ labeled \"RL02.5\".") '---------'") (define grand-hallway + (lol ('grand-hallway #f @@ -514,6 +531,9 @@ that's all about?") room\", while a door to the west is labeled \"playroom\".")) #:exits (list (make + #:name "north" + #:to 'north-hall) + (make #:name "south" #:to 'lobby) (make @@ -551,7 +571,7 @@ but there's no indication of who they are." spirit\". You've heard of Hackthena... not a goddess, but spiritual protector of all good hacks, and legendary hacker herself.") (p "Hackthena holds the form of a human woman. She wears flowing -robes, has a pear of curly bovine-esque horns protruding from the sides of her +robes, has a pair of curly bovine-esque horns protruding from the sides of her head, wears a pair of horn-rimmed glasses, and appears posed as if for battle. But instead of a weapon, she seems to hold some sort of keyboard. And her shield... well it's round like a shield, but something seems off about it. @@ -962,7 +982,7 @@ What could happen if you started it?") #:name "a candle" #:goes-by '("candle") #:steps `("The candle burns..." - (/ 2 3) ; oops! + .3 ; oops! "The candle is burning away a rope!" 2 "The rope snaps!" @@ -1083,7 +1103,7 @@ a nondescript steel door to the south, leading apparently outside.")) 'smoking-parlor #:name "a comfy leather chair" #:desc " That leather chair looks really comfy!" - #:goes-by '("leather chair" "comfy leather chair" "chair") + #:goes-by '("leather chair" "comfy leather chair" "chair" "comfy chair") #:sit-phrase "sink into" #:sit-phrase-third-person "sinks into" #:sit-name "the comfy leather chair") @@ -1838,8 +1858,8 @@ as well as an exit leading to the south.")) "and early 2016 about the need for an " "\"asynchronous event loop for Guile\". The diorama " "is a model of the Veggie Galaxy restaurant where after " - "the FSF 30th anniversary party; Mark Weaver, Christopher " - "Allan Webber, David Thompson, and Andrew Engelbrecht chat " + "the FSF 30th anniversary party; Mark Weaver, Christine " + "Lemmer-Webber, David Thompson, and Andrew Engelbrecht chat " "about the need for Guile to have an answer to asynchronous " "programming. A mailing list post " ; TODO: link it? "summarizing the discussion is released along with various " @@ -1947,7 +1967,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" @@ -2175,7 +2197,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 " @@ -2248,6 +2270,367 @@ comments, and so on flowing from node to node." )) + + +;;; North hall +;;; ========== +(define north-hall + (lol + ('north-hall + #f + #:name "North Hall" + #:desc + '((p "This hallway is lined by doors to the west and the east, presumably +to various lodgings. Something tells you you're not able to enter those right +now, however. Lining the walls are some large mirrors surrounded by bouquets +of flowers.") + (p "The red carpet continues all the way from Grand Hallway in the south +but stops short of some large wooden doors to the north. The doors look +formidable but unlocked. Some natural light peeking through windows to the +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 + 'north-hall + #:name "an easel with a sign" + #:desc " The easel is finely cut wood, well polished, but plain. The sign +is a strong contrast, with a cream colored backing and hand written letters, written +with care and style. You could probably read it." + #:read-text "The sign announces a wedding taking place... why, today! And on +the hotel grounds to the north! It sounds very exciting." + #:goes-by '("sign" + "easel with a sign" + "easel")) + ('north-hall:mirrors + 'north-hall + #:name "a row of mirrors" + #:desc "You see yourself for who you really are." + #:invisible? #t + #:goes-by '("mirror" "mirrors" "row of mirrors")) + ('north-hall:windows + 'north-hall + #:name "windows" + #:desc "You peer out a window, but the light appears distorted, as if you were +really peering between two worlds hastily joined together." + #:invisible? #t + #:goes-by '("window" "windows")) + ('north-hall:doors + 'north-hall + #:name "doors" + #:desc '((p "Along the east and west walls are doors, but they are all shut, +and firmly so. +Presumably people are staying in them, but it also feels as if how residence +would work in a building as hastily put together as this was barely conceived.") + (p "To the north is a large set of wooden doors, oaken and beautiful. +Although towering, they seem passable.")) + #:invisible? #f + #: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 + #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. A warm light to the north beckons you towards +it.")) + #: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. 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.")) + #: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. ")) + #: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.")) + #: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 "Banquet Hall" + #:desc + '((p "")) + #: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))) + ('orchestra + #f + #:name "The Orchestra" + #:desc + '((p "")) + #: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 "")) + #:exits + (list (make + #:name "north" + #:to 'orchestra) + (make + #:name "west" + #:to 'dance-floor) + (make + #:name "northwest" + #:to 'banquet) + (make + #:name "south" + #:to 'flower-field))) + ('flower-field + #f + #:name "Field of Flowers" + #:desc + '((p "")) + #:exits + (list (make + #:name "north" + #:to 'cake-wing) + (make + #:name "northwest" + #:to 'dance-floor))) + ('playground + #f + #:name "Playground" + #:desc + '((p "")) + #: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 "")) + #:exits + (list (make + #:name "north" + #:to 'fairy-go-round) + (make + #:name "northeast" + #:to 'banquet) + (make + #:name "east" + #:to 'dance-floor) + (make + #:name "south" + #:to 'playgroun))) + ('fairy-go-round + #f + #:name "Fairy Go Round" + #:desc + '((p "")) + #:exits + (list (make + #:name "east" + #:to 'banquet) + (make + #:name "southeast" + #:to 'dance-floor) + (make + #:name "south" + #:to 'photo-booth-wing))) + ('the-stairs + #f + #:name "The Stairs" + #:desc + '((p "")) + #:exits + (list (make + #:name "up" + #:to 'wedding-canopy) + (make + #:name "down" + #:to 'banquet))) + ('name + #f + #:name "The Canopy" + #:desc + '((p "")) + #: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 ;;; ---- @@ -2256,7 +2639,8 @@ comments, and so on flowing from node to node." (append lobby grand-hallway smoking-parlor playroom break-room computer-room underground-lab async-museum gift-shop hive-entrance - hive-inside federation-station)) + hive-inside federation-station + north-hall wedding)) ;; TODO: Provide command line args (define (run-game . args)