diff --git a/server/src/rooms/data/roomData.json b/server/src/rooms/data/roomData.json index d2dcf6ef..60378a64 100644 --- a/server/src/rooms/data/roomData.json +++ b/server/src/rooms/data/roomData.json @@ -106,7 +106,7 @@ "description": "Winding corridors lead to a large dungeon-like room. Sticky notes and magic markers are piled up on tables along with assorted adventuring gear. White banners with blocky black text label several hallways leading to the unconferencing rooms - [[Elysium->unconferenceElysium]], [[Star Ship->unconferenceStarShip]], [[Dig Site->unconferenceDigSite]], and [[Rave Cave->unconferenceRaveCave]]. You can also return back to the [[hall->centralHall]].", "hasNoteWall": true, "noteWallData": { - "roomWallDescription": "One wall of this room is taken up by a large whiteboard titled \"UNCONFERENCE TOPIC SUGGESTIONS!\" Smaller font clarifies \"Write what you want to chat with others about, and upvote topics you find interesting. Moderators will assign the top six topics rooms, 5 minutes into each unconference block. Have fun!\"", + "roomWallDescription": "One wall of this room is taken up by a large whiteboard titled \"UNCONFERENCE TOPIC SUGGESTIONS!\" Smaller font clarifies \"Write what you want to chat with others about, and upvote topics you find interesting. Moderators will assign the top four topics rooms, 5 minutes into each unconference block. Have fun!\"", "noteWallButton": "Inspect the topics", "addNoteLinkText": "suggest a topic", "addNotePrompt": "What would you like to suggest?", @@ -200,11 +200,19 @@ "hidden": true }, "kiosk": { - "displayName": "kiosk", + "displayName": "Feedback Kiosk", "shortName": "a kiosk", "id": "kiosk", - "description": "A small cart full of alien artifacts sits in the center of a hall. As you try to pass by, you feel a bizarre contraption made of vibrating wires attach itself to your head as perfume is sprayed directly into your eyes. An RC car slams into your feet as you stumble on, and you feel a clipboard shoved into your hand from somewhere, begging you to sign. You don’t want anything from here. No one ever has. Yet somehow it feels too rude to just leave.", - "roomId": "kiosk" + "description": "A small cart full of alien artifacts sits in the center of a hall. When you try to pass by you feel a bizarre contraption made of vibrating wires attach itself to your head as perfume is sprayed directly into your eyes. An RC car slams into your feet as you stumble on, and you feel a clipboard shoved into your hand from somewhere, begging you to sign. You don’t want anything from here. No one ever has. Yet somehow it feels too rude to just leave.", + "roomId": "kiosk", + "hasNoteWall": true, + "noteWallData": { + "roomWallDescription": "The clipboard asks you to provide feedback on your experience in the Mall of Moria. A bright red magic marker dangles from the clipboard.", + "noteWallButton": "Add feedback", + "addNoteLinkText": "Add feedback", + "addNotePrompt": "What feedback do you have about the social space itself?", + "noteWallDescription": "Social Space Feedback" + } }, "rift4": { "displayName": "The Rift - 4", @@ -219,7 +227,15 @@ "shortName": "the unconferencing arcade", "id": "arcade", "description": "You walk into the loudest space in the whole mall. The clamor of a thousand bells echoes incongruently, as if several dozens of people have all won a prize right at this moment, but that moment never seems to end. A dance machine sits at the center of the floor, its coin machine overflowing and spilling onto the surrounding floor. Brilliant lights draw your attention to an actual car sitting atop a pedestal, suspended in some impossible way above a plaque demanding an incomprehensibly large number of tickets no single human person could ever possibly hold.

A [[crane game->playCraneGame]] beckons enticingly from the far wall.

Unconferencing rooms: the [[FighterMan machine->unconferenceFighterman]], the [[Dance Machine game->unconferenceDance]], the [[anime racing game->unconferenceRacing]], and the [[retro cabs->unconference80s]]. You can also go out to the [[ice rink->iceRink]].", - "roomId": "arcade" + "roomId": "arcade", + "hasNoteWall": true, + "noteWallData": { + "roomWallDescription": "Adjacent to a screen showing recent high scores, a curious screen displays what may not be a game at all, but is rather labelled \"UNCONFERENCE TOPIC SUGGESTIONS!\" A small sign clarifies \"Write what you want to chat with others about, and upvote topics you find interesting. Moderators will assign the top six topics rooms, 5 minutes into each unconference block. Have fun!\"", + "noteWallButton": "Inspect the topics", + "addNoteLinkText": "suggest a topic", + "addNotePrompt": "What would you like to suggest?", + "noteWallDescription": "Topics for unconferencing discussion, ranked by upvotes." + } }, "theaterWarrior": { "id": "theaterWarrior", @@ -275,7 +291,7 @@ "displayName": "Book Store", "shortName": "the book store", "id": "bookstore", - "description": "You enter a quiet space suffuse with the smell of old paper and an aura of peacefulness. The sign on the front of this space changes even as you look at it, endlessly shifting ownership. The books here shift in theme and display as each new store name comes with a new vision for how to make this place work. The mall demands its presence, the people beg for the knowledge and humor within, surely someone will find a way.

The [[cineplex->theater]] is next door, and [[Hot Topic->hotTopic]] is next door on the other side.", + "description": "You enter a quiet space suffuse with the smell of old paper and an aura of peacefulness. The sign on the front of this space changes even as you look at it, endlessly shifting ownership. The books here shift in theme and display as each new store name comes with a new vision for how to make this place work. The mall demands its presence, the people beg for the knowledge and humor within, surely someone will find a way.

The [[theater->theater]] is next door, and [[Hot Topic->hotTopic]] is next door on the other side.", "roomId": "bookstore" }, "kidZone": { @@ -327,7 +343,15 @@ "shortName": "the photo booth", "id": "photoBooth", "description": "Every 5 seconds you hear a camera shutter go off, and photos are printed in sets of 5 in a strange string. You are here alone, and yet the photos print with faces of cheerful teenagers surrounding your confused one. It’s impossible to know if this place is haunted, or if camera just wants you to feel like you’re not alone.

From here you can see the gothic facade of a [[Hot Topic->hotTopic]], or follow your nose to the [[food court->foodCourt]].", - "roomId": "photoBooth" + "roomId": "photoBooth", + "hasNoteWall": true, + "noteWallData": { + "roomWallDescription": "Next to the booth, a sign asks visitors to describe their favourite Mall of Moria memory on the back of a photo and drop it in the provided box, for a chance to win a $3 gift card. You see no sign of a box, but the pile of pens have been put to good use scribbling graffiti directly onto the wall.", + "noteWallButton": "Add your mark", + "addNoteLinkText": "Contribute", + "addNotePrompt": "Contribute to the graffitti?", + "noteWallDescription": "Someone has scratched ‘Rodney was here’ directly into the wall here, and a web of messages in various hands spreads out around it." + } }, "unconferenceStarShip": { "id": "unconferenceStarShip", @@ -470,8 +494,12 @@ "displayName": "Forever 21 Fountain", "shortName": "the Forever 21 Fountain", "id": "fountain", - "description": "You behold a fountain before you, spraying water into impossible shapes and patterns. As you gaze upon this wonder, you feel your body and mind change. You feel the awkwardness suffuse you, as if you are strong and virile enough to be on your own, but not established enough to know how to do that yet. You can feel within you a deep and powerful need to move into a cheap apartment with three too many friends.", - "roomId": "fountain" + "description": "You behold a fountain before you, spraying water into impossible shapes and patterns in vibrant shifting colour. As you gaze upon this wonder, you feel your body and mind change. You feel the awkwardness suffuse you, as if you are strong and virile enough to be on your own, but not established enough to know how to do that yet. You can feel within you a deep and powerful need to move into a cheap apartment with three too many friends.
You realize the colourful display isn't just a trick of the light, and excess water is leaving brightly hued puddles on the floor. A jug of soap the size of a small child sits next to an abandoned mop, a picture of futility against this endlessly staining flow.", + "roomId": "fountain", + "specialFeatures": [ + "RAINBOW_DOOR", + "DULL_DOOR" + ] }, "h&m": { "displayName": "H & M and Fitch Postale Republic", @@ -547,9 +575,9 @@ }, "theater": { "id": "theater", - "displayName": "Cineplex", - "shortName": "the cineplex", - "description": "You enter the cineplex and are confronted by an impossibly-large screen dominating one entire wall of the space. Before it is a small field of mismatched chairs visibly pulled from anywhere a spare could be found.

You can return to the [[information obelisk->obelisk]]. Or if you'd like to speak to one of our speakers after their talk, you can head to breakout rooms: [[I Was a Teenage Gelatinous Cube->screen1]], [[Attack of the 50 Foot Goblin->screen2]], [[Jabberwock Park->screen3]], or [[My Big Fat Orc Wedding->screen4]]. (Check the \"Happening Now\" button on the left for speaker room assignments!)

Pop Out Stream. Pop Out Live Captions.
", + "displayName": "Theater", + "shortName": "the theater", + "description": "Passing underneath a swirling circular Cinemaplex logo, you are confronted by an impossibly-large screen dominating one entire wall of the space. Before it is a small field of mismatched chairs visibly pulled from anywhere a spare could be found.

You can return to the [[information obelisk->obelisk]]. Or if you'd like to speak to one of our speakers after their talk, you can head to breakout rooms: [[I Was a Teenage Gelatinous Cube->screen1]], [[Attack of the 50 Foot Goblin->screen2]], [[Jabberwock Park->screen3]], or [[My Big Fat Orc Wedding->screen4]]. (Check the \"Happening Now\" button on the left for speaker room assignments!)

Pop Out Stream. Pop Out Live Captions.
", "hasNoteWall": true, "noteWallData": { "roomWallDescription": "There is a whiteboard set up to the side with \"SPEAKER QUESTIONS\" written at the top. \"Questions for speakers not questions from speakers!\" is hastily scrawled below it.", @@ -564,7 +592,7 @@ "displayName": "Body Works", "shortName": "Body Works", "id": "bodyWorks", - "description": "Elaborate scientific equipment juts out of the broken display cases of what once must have been a collection of small bottles. The science equipment includes glass vials, beakers, and a vast array of liquids being heated to different temperatures. The fluids flow from one side to another, changing colors and textures as they go, before ultimately arriving at the far end. At that end, a woman in a long white lab coat collects them and sets them up for display. The end result of this process seems to be a display shelf full of labeled bottles, which you could take if you wished.", + "description": "Elaborate scientific equipment juts out of the broken display cases of what once must have been a collection of small bottles. The science equipment includes glass vials, beakers, and a vast array of liquids being heated to different temperatures. The fluids flow from one side to another, changing colors and textures as they go, before ultimately arriving at the far end. At that end, a woman in a long white lab coat collects them and sets them up for display. The end result of this process seems to be a display shelf full of labeled bottles, which you could take if you wished.
One shelf is loaded with [[colourful bottles->drinkPolymorph]] of many fun shapes and hues, and another with [[plain bottles of clear liquid->drinkCancellation]] that are simply labelled \"Normal\" in a bold typeface.", "roomId": "bodyWorks" }, "bar": { diff --git a/src/components/MapView.tsx b/src/components/MapView.tsx index b2ee068c..5845236f 100644 --- a/src/components/MapView.tsx +++ b/src/components/MapView.tsx @@ -142,9 +142,9 @@ export default function MapView (props: Props) { const mapText = ` ┌----------┐ ┌--------------┐ ┌-------------------------------------------------┐ ┌-------------┐ |.Teen.....####..............| |...50ft....|.....Body Works....|.................| - |.............| |.Cube.(01)| |..Cineplex....#####...Goblin..|...........(04)....|.................| + |.............| |.Cube.(01)| |...Theater....#####...Goblin..|...........(04)....|.................| |...H & M.....| |..........| |......(02)....| |.......(03)|......___#_________|.....Spencer's...| - |...and Fitch.| |==========| |..............| |===========|...../,,,.,.,,,.,,,,\\...Gits (05)....| + |...and Fitch.| |==========| |..............| |===========|...../,,,.,.,,,.,,,,\\...Gifts (05)...| |...Postale...| |Jabberwock| |..............#####..Orc......|..../,,,.,,,.,,,,,.,,\\...............| |...Republic..| |.Park.....####..............| |..Wedding..|...#.,,┌-----------┐,,.#.............| |.......(00)..\\ |.....(19).| └-----....-----┘ |.....(20)..|../,,.,| ͳ ͳ ͳ |,,,,\\............| @@ -155,7 +155,7 @@ const mapText = ` |..............|,,,| # /,,,,,,,,,.,,,,,,\\.(26).|..Topic..#.,,,,└-----------┘,,,.,/...........\\ |..............|,,,└-----------+-,,,.,,,,,,,,,,.,,,,\\.....|...(27)...\\,,,,,.,,,,,,,,.,,,,,,/...Sears.....╔░ |..American....|,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,\\....|...........\\,,,,,,,,,.,,,,,,,,,/.....(06).....╠░ -|..Eagle (18)..|,,,,..........,,.,,,░░░░░░░░░░░░░,,,,,,=========#=====┘,,,,,,.......,,,,,/...............╙░ +|..Eagle (18)..|,,,,..........,,.,,,░░░░░░░░░░░░░,,,,,,=========#=====┘,,,,,.Feedback,,,,/...............╙░ |..............#.,,,.Kid Zone.,,,,,░░░░░Ice░░░░░░░,,.,...........,,,,.,,,,,,,.Kiosk.,,,.□............../ |..............|,,,,.(25).....,,,,,░░░░░Rink░░░░░░,,,,.Photo......,,,,,,.,,,,..(22).,,,.□..............| └--------------|,,,,..........,,,.,░░░░░(24)░░░░░░,,,,.Booth (23).,,,,,,,,,,........,,,.□..............| diff --git a/src/components/feature/DullDoorViews.tsx b/src/components/feature/DullDoorViews.tsx index 1091e53e..ea04b889 100644 --- a/src/components/feature/DullDoorViews.tsx +++ b/src/components/feature/DullDoorViews.tsx @@ -18,7 +18,7 @@ export const DullDoorRoomView = () => { } return
-

.

+

.

} @@ -44,14 +44,14 @@ export default function DullDoorModalView () { if (!wasColoredEntering) { return (
-

Refreshing!

-

Doctor Hope gives you a bored look of disappointment as a stream of clear liquid falls down from the open pipes above you. The liquid covers your body, leaving you feeling refreshed.

+

You're already free of whatever dye is in the water of the adjacent fountain, but no harm getting a little cleaner! You give your hands a scrub and feel refreshed, ready to brave the mall once more.

) } else { return (
-

As you sit in the chair, Doctor Hope looks up with excitement and begins to approach. As your hand touches the clean rope, however, she rolls her eyes and returns to her work. A stream of clear liquid covers your body, leaving you feeling refreshed.

+

There's enough soap in this jug to last years, so nobody is going to notice if you help yourself. After all, the mall ownership likely doesn't appreciate those multi-coloured footprints you've been leaving!

+

With a generous pump of soap and some vigorous scrubbing, you're left dye-free and smelling vaguely of lemons.

) } diff --git a/src/components/feature/RainbowGateViews.tsx b/src/components/feature/RainbowGateViews.tsx index a1bcc2d2..2efdb9c0 100644 --- a/src/components/feature/RainbowGateViews.tsx +++ b/src/components/feature/RainbowGateViews.tsx @@ -22,7 +22,7 @@ export const RainbowGateRoomView = () => { } return
-

Sit and pull a rope?
.

+

.

} @@ -40,16 +40,17 @@ export default function RainbowGateModalView () { if (visits === 1) { return (
-

Doctor Hope looms over you with a smile. "You wish to help in my experiments? Just sit in this chair, pull that rope, and you'll in for a truly eye-opening journey. Why, it's a miracle of modern science!"

-

You sit in the chair (it's not especially comfortable and it's ... slightly wet?) and pull the rope. A roar of machinery echoes through the air as gears spin, and lightning arcs up two metal trusses you hadn't noticed. The doctor starts to cackle wildly, yelling, "It works! It WORKS!" to no one in particular. The machine's hum hits a crescendo when suddenly everything comes to a stop. Silence. A bucket of paint falls unceremoniously from the ceiling, landing on you.

-

Your chat name color is now {userMap[myId].nameColor}.

+

It's just as satisfying as you always imagined to hop over the lip of the fountain and let the spray engulf you. You could swear you hear brief rhythmic clapping over the mall's speakers and the start of an upbeat pop song.

+

Kicking your feet and letting loose, you become drenched head to toe in the colourful waters. You wipe your face and see a dwarven guard trying to get your attention, the clapping in fact being the clacking of their metal flashlight against the fountain.

+

You can't hear what they're saying over the spray of the water but you do seem them pointing insistently at a small yellow sign reading "No Splashing." It's not exactly fun to just stand still in the middle of this thing, so you wade back to the edge and hop out.

+

Dyed water drips off you in tiny streams. Your chat name color is now {userMap[myId].nameColor}.

) } else { return (
-

The ambiguously credentialed doctor gives you a nod. "Back for more?
I appreciate a fellow lover of science!"

-

You sit in the damp, uncomfortable chair, and pull the rope. You have just enough time to notice that the rope was attached directly to the bucket this time around. It lands on you with a loud squelching noise.

+

Studiously looking anywhere but at the cautionary sign, you hop back into the fountain. The dwarven guard looks more exasperated than angry and doesn't seem inclined to stop you, though their aura of disappointment makes the experience less carefree than the first time.

+

Once you've had your fill you hop back out, with a fresh coat of watery paint.

Your chat name color is now {userMap[myId].nameColor}.

)