moss-n-puddles/world/version2.ev
Howard Abrams 8e2918564b Automate the adventure/puzzle
A character can acquire a horn (from stealing it from the witch) and
own the horn (traveling at will). The puzzle now gifts the players who
win a blue medal for their effort.
2025-07-22 21:17:36 -07:00

669 lines
23 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Main Bar Area
# This room should display /tables/, as exits, differently, but this will be part of standard room with the setting in the Exit, not a special room.
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:1]]
@dig/teleport Wyldwood Bar;mp10
# Main Bar Area:1 ends here
# Describe it:
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:2]]
@desc here = An amazing room formed from a ring of living |Ytrees|n. The canopy of |Yboughs|n above twinkle with the |Ylights|n of small, glowing orbs. Working the bar, a haughty-looking |Yelf|n; waiting on tables, a smiling |Ymushroom man|n, er...person.
# Main Bar Area:2 ends here
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:5]]
@detail trees;tree;trunk;trunks = You've never see black elder tree trunks so large or that grow so close together. The course, dark gray trunks the absorb soft light from the |Yorbs|n making the room appear much larger.
# Main Bar Area:5 ends here
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:6]]
@detail boughs;bough;branches;canopy = The branches of the black elder |Ytrees|n sport slender leaves and cluster of elder |Yberries|n.
# Main Bar Area:6 ends here
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:7]]
@detail berries;berry = The cluster of berries from the |Ycanopy|n above are high and out of reach.
# Main Bar Area:7 ends here
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:8]]
@detail lights;light;orbs = Hundreds of small, dancing orbs float around the |Ycanopy|n above the room, casting a soft glow of light.
# Main Bar Area:8 ends here
# Catch all for tables, if we want to create separate rooms for tables:
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:9]]
@detail tables;table = Formed from the stumps of giant trees, but strange the roots grew in a way to make easy access for chairs.
# Main Bar Area:9 ends here
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:10]]
@detail chairs;chair = Didn't know that trees could grow in the shape of a chair, and yet, you're looking at examples.
# Main Bar Area:10 ends here
# And how to leave …
# [[file:../../../projects/mud-rpg.org::*Main Bar Area][Main Bar Area:11]]
@open corridor of glowing orbs;corridor;leave = Frog Meadow
#
@desc corridor = The lights swaying in the boughs of the trees seem to swirl into a large oval shape between two tree trunks. More lights illuminate a corridor out from this tree ring ...
#
@set corridor/traverse_msg = "You follow the orbs through the trees and out of this mystical forest."
# Main Bar Area:11 ends here
# Bowl of Candy
# Gives out candy, as there is a never-ending bowl of them on the bar.
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:1]]
@create/drop bowl of candies;bowl : typeclasses.consumables.Producer
# Bowl of Candy:1 ends here
# With a description:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:2]]
@desc bowl = A large white daisy forms a bowl holding a collection of colored hard candies.
# Bowl of Candy:2 ends here
# Hold off on the viewing:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:4]]
@set bowl/hidden_tag = "hidden_bowl"
#
@lock bowl = view:tag(hidden_bowl)
# Bowl of Candy:4 ends here
# We have to have the bowl of candy describe what it /makes/:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:5]]
@set bowl/make_name = "candy"
# Bowl of Candy:5 ends here
# Including some plural aliases:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:6]]
@set bowl/make_aliases = ["candies"]
# Bowl of Candy:6 ends here
# And a verb when they /get/ the consumable:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:7]]
@set bowl/make_verb = "$conj(grab) a"
#
@set bowl/make_note = " from the bowl"
# Bowl of Candy:7 ends here
# And the bowl needs to know the /description/ of the Consumable, so that it can attach that:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:9]]
@set bowl/make_desc = "Bright << red ^ orange ^ yellow ^ blue ^ violet >> candy with << flecks ^ spots ^ stripes >> of << red ^ orange ^ purple ^ violet ^ orange >>."
# Bowl of Candy:9 ends here
# How many candies are there when you pick them?
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:10]]
@set bowl/make_amount = 1
# Bowl of Candy:10 ends here
# How many candies do you eat at a time:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:11]]
@set bowl/make_eat_amount = 1
# Bowl of Candy:11 ends here
# Messages can be randomly selected:
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:12]]
@set bowl/make_eat_msgs = [
"Tastes of elderberry. Do I even know what that tastes like?",
"Tastes of elderflower...certainly not youngerflower.",
"Tastes of forest berry. I believe I got lucky with this one.",
"Wildflower, as that intense flavor is not tame.",
"Tastes of eggnog, with an aftertaste of Cousin Eddie's RV.",
"Tastes like pickled cucumber.",
"Tastes like maple bacon.",
"That burning horseradish is clearing the sinuses!",
"Sriracha flavor!? Wow!",
"Taste of cotton candy covered bacon. Two flavors distinct flavors for sure.",
"Tastes like a bowl of borscht.",
"Dill pickle candy!?",
"Curry flavored candy!?",
"Tastes uniquely of smoked paprika.",
"Tastes of blue cheese, without all the calories.",
"Tastes like charcoal.",
"Tastes like olive oil.",
"Tastes like honeycomb... with bits of bee.",
"Tastes like cereal milk.",
"Tastes like avocado. A very ripe avocado.",
"Tastes like dirt...and worm.",
"Tastes like fish sauce...anchovy? mackeral? carp?",
"Garlic flavored hard candy, a favorite of witches.",
"Tastes like fermented soybean. I'm sure this is a delicacy somewhere.",
"Tastes like tomato... sauce.",
"Tastes like sauerkraut.",
"Tastes like honey mustard.",
"Tastes like charred pineapple.",
"Tastes like smoked salmon.",
"Tastes like pumpkin curry, and rice...with a hint of spice.",
"Tastes like miso caramel and wasp. Candy-covered insects is an odd choice.",
"Tastes like celery.",
"Tastes like pumpernickel.",
"Tastes like spicy kimchi.",
]
# Bowl of Candy:12 ends here
# Let the user know when they consumed them all.
# [[file:../../../projects/mud-rpg.org::*Bowl of Candy][Bowl of Candy:13]]
@set bowl/make_finish_msg =
# Bowl of Candy:13 ends here
# Portal
# An exit, is always a /way out/, not a way in, obviously.
# [[file:../../../projects/mud-rpg.org::*Portal][Portal:1]]
@teleport mp05
#
@open follow the glowing orbs;orbs;light;glowing orbs;follow = Wyldwood Bar
# Portal:1 ends here
# A description if they look at the orbs:
# [[file:../../../projects/mud-rpg.org::*Portal][Portal:2]]
@desc orbs = The orbs swirl around in a circular pattern creating a mesmorizing vortex of light leading into another part of the forest.
# Portal:2 ends here
# And a nice journey message to go east out of the forest:
# [[file:../../../projects/mud-rpg.org::*Portal][Portal:3]]
@set orbs/traverse_msg = "You follow the orbs deeper into the forest, until you seem to drift away..."
# Portal:3 ends here
# Since the opened portal is a /room state/, we just need to:
# [[file:../../../projects/mud-rpg.org::*Portal][Portal:4]]
@desc/portal_open here = A large waterfall cascades on the far side of this meadow creating a stream that meanders through the tall grass and large yellow flowers. They nod their sleepy heads to you as you pass by in the twilight. A gap in the trees show how you can return to the footpath in the forest.
You also notice a glowing orb... and then another, and another. The field, filled with soft light, illuminates another path...
# Portal:4 ends here
# Lets do them all with the Raven:
# [[file:../../../projects/mud-rpg.org::*Opening the Portal][Opening the Portal:7]]
@set/character me/triggers:session1 = {
"open": {"desc": "Open the Portal to the Wyldwood Bar",
"timer": 3,
"events": [
"@teleport/quiet Frog Meadow",
"The big, hairy beast trembles with the appearance of the raven, and flees behind the waterfall.",
"You notice a glowing orb dancing in front of you... and then another, and another. The field, filled with soft light, illuminates a different path into the forest...",
"@teleport/quiet follow the glowing orbs = Frog Meadow",
"@roomstate portal_open",
"@teleport/quiet Radiant Workshop",
]
},
"close": {"desc": "Close the Portal to the Wyldwood Bar",
"timer": 3,
"events": [
"@teleport/quiet Frog Meadow",
"The glowing orbs that filled the field start to wink out.",
"@teleport/tonone follow the glowing orbs",
"@roomstate portal_open",
"@teleport/quiet Radiant Workshop",
]
},
}
# Opening the Portal:7 ends here
# Closing the Portal
# First, close the portal by moving it to the =None= location:
# [[file:../../../projects/mud-rpg.org::*Closing the Portal][Closing the Portal:1]]
@teleport/tonone follow the glowing orbs
# Closing the Portal:1 ends here
# [[file:../../../projects/mud-rpg.org::*Closing the Portal][Closing the Portal:2]]
@teleport Frog Meadow
#
@roomstate portal_open
# Closing the Portal:2 ends here
# Bartender
# Return to the Bar …
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:1]]
@teleport Wyldwood Bar
# Bartender:1 ends here
# A haughty elf named Elendil
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:2]]
@create/drop Bartender;barkeep;Elendil: typeclasses.puppets.Puppet
# Bartender:2 ends here
# And all the RP system stuff:
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:3]]
py bt = self.search('Bartender'); bt.db.gender = 'male'; bt.db._sdesc = 'blonde elf'; bt.db.pose = 'working behind the bar'
# Bartender:3 ends here
# And default pose:
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:4]]
pose default bartender = working behind the bar
# Bartender:4 ends here
# And an unpuppeted pose:
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:5]]
@set bartender/pose_sleep = "fiddling with something behind the bar"
# Bartender:5 ends here
# And a good description:
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:6]]
@desc Bartender = A haughty-looking elf with green eyes and long blond hair with two intricate braids accentuating incredibly pointed ears. His nose, pointed, often points straight up in order to look down on you.
# Bartender:6 ends here
# And lets make him initially invisible:
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:8]]
@set Bartender/hidden_tag = "hidden_bartender"
#
@lock Bartender = view:tag(hidden_bartender)
# Bartender:8 ends here
# Helpful commands:
# [[file:../../../projects/mud-rpg.org::*Bartender][Bartender:9]]
nick write $1 = py me.search('shrub').write("$1")
nick hi $1 = say/to $1 = Greetings and welcome to the Wyldwood.
nick ticket = say/regrettably All ticket holders drink free here.
# Bartender:9 ends here
# Automated Responses
# Seems that different triggering hooks could have different delayed responses. What sort of events?
# - arrive
# - leave
# - say
# - sayto : where the =say= command targets a particular puppet
# - give
# Start with the bartender.
# [[file:../../../projects/mud-rpg.org::*Automated Responses][Automated Responses:1]]
@set bartender/arrive:dabbler = "5 ;; say/to old gnome = Ah, welcome, sir. I've acquired another one of those whiskys from the Mud World. This one claims to taste like a... hrm... << burning hosptial ^ seagull's armpit, er wingpit, I guess ^ going down on a mermaid, wait, I believe you've done that ^ licking a salty ashtray >>. ;; 10 ;; emote takes a brown glass bottle from a chest, and pours some into a glass. ;; shake whisky = gnome"
# Automated Responses:1 ends here
# Pixie Quartet
# A haughty elf named Elendil
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:1]]
@create/drop Pixies;pixie: typeclasses.puppets.Puppet
# Pixie Quartet:1 ends here
# And give them a better name/description:
# And all the RP system stuff:
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:2]]
py bt = self.search('pixies'); bt.db._sdesc = "quartet of pixies"; bt.db.pose_default = 'playing music atop a giant fieldcap mushroom'; bt.db.pose = 'playing music'; bt.db.gender = 'ambiguous';
# Pixie Quartet:2 ends here
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:3]]
@desc pixies = Atop a giant fieldcap mushroom, a quartet of pixies playing the strangest instruments you've never seen, fill the room with music.
# Pixie Quartet:3 ends here
# And default pose:
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:4]]
pose default pixies = drinking at the bar instead of performing
# Pixie Quartet:4 ends here
# And an unpuppeted pose:
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:5]]
@set pixies/pose_sleep = "playing music atop a giant mushroom"
# Pixie Quartet:5 ends here
# And details:
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:6]]
@detail mushroom = A giant, beige-colored mushroom grows on the side of this room providing a perfect stage for the pixie musicians.
# Pixie Quartet:6 ends here
# And when Dabbler arrives …
# [[file:../../../projects/mud-rpg.org::*Pixie Quartet][Pixie Quartet:8]]
@set pixies/arrive:dabbler = "12 ;; gm The quartet on the mushroom start playing an << interesting ^ odd >> << composition ^ song ^ arrangment >>. ;; The pixie leader says, \"As you can tell, we're playing << a jazz standard ^ a jazz melody ^ something the Mudders call, jazz fusion >>. That's right, something we picked up from << our travels in ^ >> the Mud World."
# Pixie Quartet:8 ends here
# Awakened Shrub
# Next great NPC will a cameo from the Awakened Shrub.
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:1]]
@create/drop Shrub;bush;chalkboard;awakened shrub: typeclasses.puppets.Shrub
# Awakened Shrub:1 ends here
# And describe it:
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:2]]
@desc shrub = If a small shrub had the facial muscles to smile and show how much it enjoys itself, this lil' guy would be it. The short leaves indicates it once was a boxwood, but the way it nurses that glass of water shows those days are way behind. When you look its way, it waves a branch at you. You notice one of its branches clutch a small chalkboard while another holds a piece of chalk.
# Awakened Shrub:2 ends here
# And tag it:
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:3]]
py bt = self.search('shrub'); bt.db.gender = 'neutral'; bt.db._sdesc = 'shrub'; bt.db.pose_default = 'nursing a glass of water'; bt.db.pose = 'nursing a glass of water'
# Awakened Shrub:3 ends here
# And default pose:
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:4]]
pose default shrub = writing something in a notebook
# Awakened Shrub:4 ends here
# And an unpuppeted pose:
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:5]]
@set shrub/pose_sleep = "nursing a glass of water"
# Awakened Shrub:5 ends here
# And lets not let anyone pick it up:
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:6]]
@set shrub/get_err_msg = "It doesn't seem to appreciate your advances and shakes a top branch, no. Remember, no means, no."
# Awakened Shrub:6 ends here
# Be cool if it could write something:
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:9]]
@set shrub/inside = "The chalkboard reads,|/|/ Hello, My name is Shrub McShrubberson. What's yours?"
# Awakened Shrub:9 ends here
# [[file:../../../projects/mud-rpg.org::*Awakened Shrub][Awakened Shrub:11]]
@detail chalkboard = The shrub is holding a small chalkboard with a wood frame.
# Awakened Shrub:11 ends here
# A GM should have /events/ and at least interesting NPCs show up. Keep in mind, all ideas need to be Feywild themed.
# - =bubbles= :: A /target/ is mentioned speaking with bubbles … no real effects in the game need to be kept up.
# - darkness :: The room gets temporarily dark. Need a good joke if someone asks about it.
# [[file:../../../projects/mud-rpg.org::*Dabbler][Dabbler:2]]
@set/character #34/triggers:session1 = {
"bubbles": {"desc": "Character blows bubbles",
"timer": 5,
"events": [
"The old gnome hits his staff on the floor.",
("You notice bubbles coming out every time you open your mouth to speak.",
"Every time |s speaks, you notice bubbles coming from the mouth of the {0}."
)
]
},
"dark": {"desc": "Make the room go black",
"timer": 5,
"events": [
"The old gnome slams his staff against the floor. The room goes completely dark.",
"The music stops.",
"In the darkness, you see a pair of large red eyes, and a low gutteral growl.",
("You can't help it, but scream!",
"You hear a scream!"),
"The glowing orbs along the branches of this room relight and the music, starts again. Much better."
]
},
}
# Dabbler:2 ends here
# Dragon
# Sir Tavolar Roblees.
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:1]]
@create Sir Roblees;faery dragon: typeclasses.puppets.Puppet
# Dragon:1 ends here
# And all the RP system stuff:
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:2]]
py bt = self.search('dragon'); bt.db.gender = 'male'; bt.db._sdesc = 'tiny, orange dragon'; bt.db.pose_default = 'staring into space'; bt.db.pose = 'twirling a tendril near his mouth like a mustache'
# Dragon:2 ends here
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:3]]
@desc dragon = A dragon with orange-spotted wings like a butterfly. He makes up for his tiny size with machismo. He wears a white plumed hat and a fancy dagger like a sword. He sports a sharp-toothed grin. Like a cat, he expresses his delight by the twitching of his barbed tail.
# Dragon:3 ends here
# And his default pose:
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:4]]
pose default dragon = twirling a tendril near his mouth like a mustache
# Dragon:4 ends here
# And an unpuppeted pose:
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:5]]
@set dragon/pose_sleep = "staring into space"
# Dragon:5 ends here
# And give him the powers he deserves:
# And the ability to fly:
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:6]]
@create magic short sword;sword:typeclasses.things.Wand
#
@desc sword = A decorative dagger that seems to be a sword in the hands, er, claws of this tiny dragon.
#
@teleport/quiet magic short sword = Sir Roblees
# Dragon:6 ends here
# And the flying messages:
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:7]]
@set me/disappear_msg = "After a raspberry sound, the gnome, Dabbler, disappears in a wisp of smoke."
#
@set gnome/reappear_msg = "<<White ^ Light blue ^ Gray>> mist appears...along with the smell of sulphur... ;; When the smoke clears, an old gnome <<emerges ^ materializes ^ shows up, looking a bit confused>>."
#
@set gnome/magic_msg = "$You() $conj(<< strike ^ tap ^ hit ^ whack >>) the << floor ^ ground >> with $pron(your) << gnarled ^ old ^ magic ^ >> staff. ;; << Sparks ^ Colored lights ^ Flashes ^ Flares >> of |moctarine|n << appear ^ emerge ^ materialize >> as << the ^ >> magic << coalesces ^ blends >>..."
# Dragon:7 ends here
# And lets put him in the Workshop:
# [[file:../../../projects/mud-rpg.org::*Dragon][Dragon:8]]
@teleport/quiet Sir Roblees = Wyldwood Bar
# Dragon:8 ends here
# Cocktails
# Lets create a sign for the list of cocktails:
# [[file:../../../projects/mud-rpg.org::*Cocktails][Cocktails:1]]
@create/drop sign above the bar;sign;list:typeclasses.readables.Readable
# Cocktails:1 ends here
# And the description:
# [[file:../../../projects/mud-rpg.org::*Cocktails][Cocktails:2]]
@desc sign = You see a large sign made of wood over the bar, hanging from a branch of one of the living trees. Painted words at the top read, |wWyldwood Cocktails|n, and a list of drinks you can order.
# Cocktails:2 ends here
# Might as well allow the user to read it:
# [[file:../../../projects/mud-rpg.org::*Cocktails][Cocktails:3]]
@set sign/inside = "|wCocktails|n|/ - Moonlit Mirage|/ - Puck's Revenge|/ - Glimmering Gossamer|/ - Whimsical Willow|/ - Charmed Chalice|/ - Enchanted Elixir|/ - Sylvan Serenade|/ - Brambleberry Bliss|/ - Twilight Tonic|/"
# Cocktails:3 ends here
# And lock down the sign:
# [[file:../../../projects/mud-rpg.org::*Cocktails][Cocktails:4]]
@lock sign = get:false()
#
@set sign/get_err_msg = "The tree trunk that holds the sign has grown around it making it impossible to remove."
# Cocktails:4 ends here
# Needs the ability to create a drink.
# [[file:../../../projects/mud-rpg.org::*Cocktails][Cocktails:5]]
@set bartender/currentgame = "session1"
# Cocktails:5 ends here
# The preps come in three forms with how detailed we want to spam the room.
# [[file:../../../projects/mud-rpg.org::*Cocktails][Cocktails:6]]
@set bartender/triggers:session1 = {
"prep1": {
"desc": "Single preparation step for making a cocktail",
"timer": 1,
"events": [
"The bartender grabs a << few ^ couple of >> << bottles ^ jars ^ bottles ^ odd containers >> from << the shelf ^ a locked chest ^ a wooden box >>."
]
},
"prep2": {
"desc": "Preparation steps for making a cocktail",
"timer": 5,
"events": [
"The bartender grabs a << few ^ couple of >> << bottles ^ jars ^ bottles ^ odd containers >> from << the shelf ^ a locked chest ^ a wooden box >>.",
"<< He ^ The bartender >> shakes and strains the << drink ^ concoction ^ elixir >> into a cocktail glass."
]
},
"prep3": {
"desc": "Preparation steps for making a cocktail",
"timer": 4,
"events": [
"The bartender grabs a << few ^ couple of >> << bottles ^ jars ^ bottles ^ odd containers >> from << the shelf ^ a locked chest ^ a wooden box >>.",
"<< He ^ The bartender >> then shakes and strains the << drink ^ concoction ^ elixir >> into a cocktail glass.",
"He carefully, garnishes the << drink ^ cocktail >>."
]
}
}
# Cocktails:6 ends here