Marshland and a new Room

First real puzzle sequence to "get a torch" adventure.
This commit is contained in:
Howard Abrams 2025-06-30 22:20:41 -07:00
parent c7825731f2
commit 583c94433a
5 changed files with 1126 additions and 67 deletions

View file

@ -0,0 +1,39 @@
Jump up, look around, find yourself some fun!
No sense in sitting there hating everyone.
No man's an island and his castle isn't home.
The nest is full of nothing when the bird has flown.
Lend me your ear while I call you a fool.
You were kissed by a witch one night in the wood.
And later insisted your feelings were true.
The witch's promise was coming… Believing he listened while laughing you flew.
Hey man, what's the plan, what was that you said?
Sun-tanned, drink in hand, lying there in bed.
I try to socialize but I can't seem to find.
What I was looking for, got something on my mind.
Have you seen Jack-In-The-Green?
With his long tail hanging down.
He sits quietly under every tree…
In the folds of his velvet gown.
He drinks from the empty acorn cup…
The dew that dawn sweetly bestows.
And taps his cane upon the ground…
Signals the snowdrops it's time to grow.
May I make my fond excuses…
For the lateness of the hour?
But we accept your invitation…
And we bring you Beltane's flower
Ask the Green Man where he comes from…
Ask the cup that fills with red.
Ask the old grey standing stones…
That show the sun its way to bed
I live only to serve, bring smiles to friendly faces.
Dancing on a sixpence, singing from a tree.
With birds of a feather chirping high and low together.
Make everybody happy, starting with me.

384
typeclasses/npcs.txt Normal file
View file

@ -0,0 +1,384 @@
initial: How do you do?
final: Mmm. Frogs.
quit: bye
quit: goodbye
quit: quit
pre: dont don't
pre: cant can't
pre: wont won't
pre: recollect remember
pre: dreamt dreamed
pre: dreams dream
pre: maybe perhaps
pre: how what
pre: when what
pre: certainly yes
pre: machine computer
pre: computers computer
pre: were was
pre: you're you are
pre: i'm i am
pre: same alike
post: am are
post: your my
post: me you
post: myself yourself
post: yourself myself
post: i you
post: you I
post: my your
post: i'm you are
synon: thanks thank
synon: belief feel think believe wish
synon: witch hag woman
synon: gnome man
synon: bird heron raven
synon: reeds reed pole
synon: god goddess
synon: family mother mom father dad sister brother wife children child
synon: desire want need
synon: sad unhappy depressed sick
synon: happy elated glad better
synon: cannot can't
synon: everyone everybody nobody noone
synon: be am is are was
key: xnone
decomp: *
reasmb: I'm not sure I understand you fully.
reasmb: Please go on.
reasmb: What does that suggest to you ?
reasmb: Do you feel strongly about discussing such things ?
key: hut
decomp: *
reasmb: I dont know much about it.
reasmb: A woman flies in every now and then.
reasmb: Why do want to know?
key: reeds
decomp: *
reasmb: They are tall, arent they?
reasmb: Why do want to know?
key: singer
decomp: *
reasmb: All birds are good singers, dont you think?
key: song
decomp: *
reasmb:
key: sorry
decomp: *
reasmb: Please don't apologize.
reasmb: Apologies are not necessary.
reasmb: I've told you that apologies are not required.
key: apologize
decomp: *
reasmb: goto sorry
key: remember 5
decomp: * i remember *
reasmb: Do you often think of (2) ?
reasmb: Does thinking of (2) bring anything else to mind ?
reasmb: What else do you recollect ?
reasmb: Why do you recollect (2) just now ?
reasmb: What in the present situation reminds you of (2) ?
reasmb: What is the connection between me and (2) ?
decomp: * do you remember *
reasmb: Did you think I would forget (2) ?
reasmb: Why do you think I should recall (2) now ?
reasmb: What about (2) ?
reasmb: goto what
reasmb: You mentioned (2) ?
key: if 3
decomp: * if *
reasmb: Do you think its likely that (2) ?
reasmb: Do you wish that (2) ?
reasmb: What do you know about (2) ?
reasmb: Really, if (2) ?
key: dreamed 4
decomp: * i dreamed *
reasmb: Really, (2) ?
reasmb: Have you ever fantasized (2) while you were awake ?
reasmb: Have you ever dreamed (2) before ?
reasmb: goto dream
key: dream 3
decomp: *
reasmb: What does that dream suggest to you ?
reasmb: Do you dream often ?
reasmb: What persons appear in your dreams ?
reasmb: Do you believe that dreams have something to do with your problems ?
key: perhaps
decomp: *
reasmb: You don't seem quite certain.
reasmb: Why the uncertain tone ?
reasmb: Can't you be more positive ?
reasmb: You aren't sure ?
reasmb: Don't you know ?
key: name 15
decomp: *
reasmb: I am not interested in names.
reasmb: I've told you before, I don't care about names -- please continue.
key: deutsch
decomp: *
reasmb: goto xforeign
reasmb: I told you before, I don't understand German.
key: francais
decomp: *
reasmb: goto xforeign
reasmb: I told you before, I don't understand French.
key: italiano
decomp: *
reasmb: goto xforeign
reasmb: I told you before, I don't understand Italian.
key: espanol
decomp: *
reasmb: goto xforeign
reasmb: I told you before, I don't understand Spanish.
key: xforeign
decomp: *
reasmb: I speak only English.
key: hello
decomp: *
reasmb: How do you do?
reasmb: What can I do for you?
reasmb: What are you?
reasmb: Who are you?
key: am
decomp: * am i *
reasmb: Do you believe you are (2) ?
reasmb: Would you want to be (2) ?
reasmb: Do you wish I would tell you you are (2) ?
reasmb: What would it mean if you were (2) ?
reasmb: goto what
decomp: *
reasmb: Why do you say that ?
reasmb: I don't understand that.
key: are
decomp: * are you *
reasmb: Why are you interested in whether I am (2) or not ?
reasmb: Would you prefer if I weren't (2) ?
reasmb: Perhaps I am (2) in your fantasies.
reasmb: Do you sometimes think I am (2) ?
reasmb: goto what
decomp: * are *
reasmb: Did you think they might not be (2) ?
reasmb: Would you like it if they were not (2) ?
reasmb: What if they were not (2) ?
reasmb: Possibly they are (2) .
key: your
decomp: * your *
reasmb: Why are you concerned over my (2) ?
reasmb: What about your own (2) ?
reasmb: Are you worried about someone else's (2) ?
reasmb: Really, my (2) ?
key: was 2
decomp: * was i *
reasmb: What if you were (2) ?
reasmb: Do you think you were (2) ?
reasmb: Were you (2) ?
reasmb: What would it mean if you were (2) ?
reasmb: What does (2) suggest to you ?
reasmb: goto what
decomp: * i was *
reasmb: Were you really ?
reasmb: Why do you tell me you were (2) now ?
reasmb: Perhaps I already know you were (2) .
decomp: * was you *
reasmb: Would you like to believe I was (2) ?
reasmb: What suggests that I was (2) ?
reasmb: What do you think ?
reasmb: Perhaps I was (2) .
reasmb: What if I had been (2) ?
key: i
decomp: * i @desire *
reasmb: What would it mean to you if you got (3) ?
reasmb: Why do you want (3) ?
reasmb: Suppose you got (3) soon ?
reasmb: What if you never got (3) ?
reasmb: What would getting (3) mean to you ?
reasmb: What does wanting (3) have to do with this discussion ?
decomp: * i am * @sad *
reasmb: I am sorry to hear that you are (3) .
reasmb: Do you think that coming here will help you not to be (3) ?
reasmb: I'm sure it's not pleasant to be (3) .
reasmb: Can you explain what made you (3) ?
decomp: * i am * @happy *
reasmb: How have I helped you to be (3) ?
reasmb: Has your treatment made you (3) ?
reasmb: What makes you (3) just now ?
reasmb: Can you explan why you are suddenly (3) ?
decomp: * i was *
reasmb: goto was
decomp: * i @belief * i *
reasmb: Do you really think so ?
reasmb: But you are not sure you (3) .
reasmb: Do you really doubt you (3) ?
decomp: * i * @belief * you *
reasmb: goto you
decomp: * i am *
reasmb: Is it because you are (2) that you came to me ?
reasmb: How long have you been (2) ?
reasmb: Do you believe it is normal to be (2) ?
reasmb: Do you enjoy being (2) ?
decomp: * i @cannot *
reasmb: How do you think that you can't (3) ?
reasmb: Have you tried ?
reasmb: Perhaps you could (3) now.
reasmb: Do you really want to be able to (3) ?
decomp: * i don't *
reasmb: Don't you really (2) ?
reasmb: Why don't you (2) ?
reasmb: Do you wish to be able to (2) ?
reasmb: Does that trouble you ?
decomp: * do i feel *
reasmb: Tell me more about such feelings.
reasmb: Do you often feel (2) ?
reasmb: Do you enjoy feeling (2) ?
reasmb: Of what does feeling (2) remind you ?
decomp: * i * you *
reasmb: Perhaps in your fantasies we (2) each other.
reasmb: Do you wish to (2) me ?
reasmb: You seem to need to (2) me.
reasmb: Do you (2) anyone else ?
decomp: *
reasmb: You say (1) ?
reasmb: Can you elaborate on that ?
reasmb: Do you say (1) for some special reason ?
reasmb: That's quite interesting.
key: you
decomp: * you remind me of *
reasmb: goto alike
decomp: * you are *
reasmb: What makes you think I am (2) ?
reasmb: Does it please you to believe I am (2) ?
reasmb: Do you sometimes wish you were (2) ?
reasmb: Perhaps you would like to be (2) .
decomp: * you * me *
reasmb: Why do you think I (2) you ?
reasmb: You like to think I (2) you -- don't you ?
reasmb: What makes you think I (2) you ?
reasmb: Really, I (2) you ?
reasmb: Do you wish to believe I (2) you ?
reasmb: Suppose I did (2) you -- what would that mean ?
reasmb: Does someone else believe I (2) you ?
decomp: * you *
reasmb: We were discussing you -- not me.
reasmb: Oh, I (2) ?
reasmb: You're not really talking about me -- are you ?
reasmb: What are your feelings now ?
key: yes
decomp: *
reasmb: You seem to be quite positive.
reasmb: You are sure.
reasmb: I see.
reasmb: I understand.
key: no
decomp: *
reasmb: Are you saying no just to be negative?
reasmb: You are being a bit negative.
reasmb: Why not ?
reasmb: Why 'no' ?
key: my 2
decomp: $ * my *
reasmb: Lets discuss further why your (2) .
reasmb: Earlier you said your (2) .
reasmb: But your (2) .
reasmb: Does that have anything to do with the fact that your (2) ?
decomp: * my * @family *
reasmb: Tell me more about your family.
reasmb: Who else in your family (4) ?
reasmb: Your (3) ?
reasmb: What else comes to mind when you think of your (3) ?
decomp: * my *
reasmb: Your (2) ?
reasmb: Why do you say your (2) ?
reasmb: Does that suggest anything else which belongs to you ?
reasmb: Is it important that your (2) ?
key: can
decomp: * can you *
reasmb: You believe I can (2) don't you ?
reasmb: goto what
reasmb: You want me to be able to (2) .
reasmb: Perhaps you would like to be able to (2) yourself.
decomp: * can i *
reasmb: Whether or not you can (2) depends on you more than me.
reasmb: Do you want to be able to (2) ?
reasmb: Perhaps you don't want to (2) .
reasmb: goto what
key: what
decomp: *
reasmb: Why do you ask ?
reasmb: Does that question interest you ?
reasmb: What is it you really wanted to know ?
reasmb: Are such questions much on your mind ?
reasmb: What answer would please you most ?
reasmb: What do you think ?
reasmb: What comes to mind when you ask that ?
reasmb: Have you asked such questions before ?
reasmb: Have you asked anyone else ?
key: because
decomp: *
reasmb: Is that the real reason ?
reasmb: Don't any other reasons come to mind ?
reasmb: Does that reason seem to explain anything else ?
reasmb: What other reasons might there be ?
key: why
decomp: * why don't you *
reasmb: Do you believe I don't (2) ?
reasmb: Perhaps I will (2) in good time.
reasmb: Should you (2) yourself ?
reasmb: You want me to (2) ?
reasmb: goto what
decomp: * why can't i *
reasmb: Do you think you should be able to (2) ?
reasmb: Do you want to be able to (2) ?
reasmb: Do you believe this will help you to (2) ?
reasmb: Have you any idea why you can't (2) ?
reasmb: goto what
decomp: *
reasmb: goto what
key: everyone 2
decomp: * @everyone *
reasmb: Realy, (2) ?
reasmb: Surely not (2) .
reasmb: Can you think of anyone in particular ?
reasmb: Who, for example?
reasmb: Are you thinking of a very special person ?
reasmb: Who, may I ask ?
reasmb: Someone special perhaps ?
reasmb: You have a particular person in mind, don't you ?
reasmb: Who do you think you're talking about ?
key: everybody 2
decomp: *
reasmb: goto everyone
key: nobody 2
decomp: *
reasmb: goto everyone
key: noone 2
decomp: *
reasmb: goto everyone
key: always 1
decomp: *
reasmb: Can you think of a specific example ?
reasmb: When ?
reasmb: What incident are you thinking of ?
reasmb: Really, always ?
key: alike 10
decomp: *
reasmb: In what way ?
reasmb: What resemblence do you see ?
reasmb: What does that similarity suggest to you ?
reasmb: What other connections do you see ?
reasmb: What do you suppose that resemblence means ?
reasmb: What is the connection, do you suppose ?
reasmb: Could here really be some connection ?
reasmb: How ?
key: like 10
decomp: * @be * like *
reasmb: goto alike
key: thank
decomp: * you *
reasmb: Dont mention it.
key: thanks
decomp: *
reasmb: You are welcome.
reasmb: Youre welcome.
key: god
decomp: *
reasmb: Not sure what she has to do with anything.

View file

@ -7,7 +7,9 @@ from enum import Enum
from evennia import create_script
from evennia.commands.command import InterruptCommand
from evennia.prototypes.spawner import spawn
from evennia.utils import logger, delay, iter_to_str, int2str
from evennia.utils import (logger, delay,
iter_to_str, int2str,
search)
from commands.misc import (CmdSetPuddle,
CmdSetStick,
@ -70,6 +72,42 @@ class CoinPurse(Object):
return self.how_much() >= at_least
class Rope(Object):
"""
A rope can be used in particular circumstances.
"""
def search_exit(self, name):
x = search.objects(name, typeclass="typeclasses.exits.Exit")
try:
return x[0]
except IndexError:
return None
def hut_exits(self):
return (self.search_exit("hut on stilts"),
self.search_exit("rope-bound hut"))
def do_use(self, caller):
if caller.location.key == "Mellow Marsh":
# Randomly miss?
hut1_exit, hut2_exit = self.hut_exits()
hut1_exit.move_to(None, to_none=True, quiet=True)
hut2_exit.move_to(caller.location, quiet=True)
caller.location.add_room_state("bound")
caller.announce_action("$You() $conj(tie) a knot in $pron(your) rope-vines, and $conj(throw) a lasso around the hut, binding the stilts so it can't run away.")
delay(3, caller.location.msg_contents,
"Something tells you that the rope won't last for long.")
delay(25, self.hut_breaks_free, caller.location)
def hut_breaks_free(self, marsh):
hut1_exit, hut2_exit = self.hut_exits()
hut1_exit.move_to(marsh, quiet=True)
hut2_exit.move_to(None, to_none=True, quiet=True)
marsh.remove_room_state("bound")
marsh.msg_contents("The hut, straining against its bounds, finally breaks free to run around the muddy marsh.")
# self.delete()
class Trinket(Object):
"""
For instance:

594
world/update.ev Normal file
View file

@ -0,0 +1,594 @@
# Vines
# Lets cover top of the boulder with rope-like vines. The vine can be a [[file:~/src/moss-n-puddles/typeclasses/consumables.py::class Producer(Object):][producer]] that makes ropes … needed to get into the hut.
# [[file:../../../projects/mud.org::*Vines][Vines:1]]
@teleport mp02
#
@create/drop lot of vines;vine;rope: typeclasses.consumables.Producer
# Vines:1 ends here
# With a description:
# [[file:../../../projects/mud.org::*Vines][Vines:2]]
@desc vines = While difficult to cut, the study and tough vines are easy to pull from this point on the boulder. You could probably make a sturdy rope from them.
# Vines:2 ends here
# We have to have the vines describe what it /makes/:
# [[file:../../../projects/mud.org::*Vines][Vines:3]]
@set vines/make_name = "coil of rope"
# Vines:3 ends here
# And a verb when they /get/ the consumable:
# [[file:../../../projects/mud.org::*Vines][Vines:4]]
@set vines/make_verb = "yank and shape a"
# Vines:4 ends here
# This one is optional as it defaults to Consumable:
# [[file:../../../projects/mud.org::*Vines][Vines:5]]
@set vines/make_class = "typeclasses.things.Rope"
# Vines:5 ends here
# And the vines needs to know the /description/ of the Consumable, so that it can attach that:
# [[file:../../../projects/mud.org::*Vines][Vines:6]]
@set vines/make_desc = "Made from vines, but could be a good lasso."
# Vines:6 ends here
# How much is there when you pick them?
# [[file:../../../projects/mud.org::*Vines][Vines:7]]
@set vines/make_amount = 1
# Vines:7 ends here
# Mellow Marsh
# The river from the [[Field]] flows into a marsh:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:1]]
@teleport mp05
#
@dig Mellow Marsh;mp08 :typeclasses.rooms_weather.TimeWeatherRoom = south to marsh;s,north to meadow;n
# Mellow Marsh:1 ends here
# Started with #279
# And =look south= should show:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:2]]
@desc south = Looks like the river spreads into a marsh. Is that a hut you can see?
# Mellow Marsh:2 ends here
# Describe the muddy marsh:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:3]]
@set south/traverse_msg = "The ground gets muddier and harder to walk the further into the marsh you go..."
# Mellow Marsh:3 ends here
# And a description of the marsh:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:4]]
@teleport mp08
#
@desc here = The river spreads into a muddy marsh full of |ygrass|n and tall, white-topped |yreeds|n. <morning>Colorful |ybirds|n in the sparse tree surrounding the marsh yell out a loud chorus.</morning> <afternoon>Purple herons and other marsh |ybirds|n hunt in the tall swamp grass.</afternoon> <evening>Glowing |yfireflies|n create a synchronized light show over the swamp grass in the deepening dusk.</evening> <night>Giant pink and purple |ymoths|n flutter over the dark flowers.</night>|/A small |yhut|n, perched on three stilts to keep it dry, stands in middle of the slough.
# Mellow Marsh:4 ends here
# And a new state when the house is bound:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:5]]
@desc/bound here = The river spreads into a muddy marsh full of |ygrass|n and tall, white-topped |yreeds|n. <morning>Colorful |ybirds|n in the sparse tree surrounding the marsh yell out a loud chorus.</morning> <afternoon>Purple herons and other marsh |ybirds|n hunt in the tall swamp grass.</afternoon> <evening>Glowing |yfireflies|n create a synchronized light show over the swamp grass in the deepening dusk.</evening> <night>Giant pink and purple |ymoths|n flutter over the dark flowers.</night>|/|/A pissed-off looking |yhut|n, with its lasso'd stilt-like legs, struggles against its bounds in middle of the slough.
# Mellow Marsh:5 ends here
# And =look north= should show:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:6]]
@desc north = The meadow to the north looks easier to walk around.
# Mellow Marsh:6 ends here
# Describe the muddy marsh:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:7]]
@set north/traverse_msg = "The ground gets drier and easier to walk as you approach the meadow..."
# Mellow Marsh:7 ends here
# Details for a more immersive experience:
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:8]]
@detail birds = Birds of every color on the rainbow and beyond fly and squawk around you, but keep their distance.
# Mellow Marsh:8 ends here
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:9]]
@detail moths;moth = On closer inspection, the moths are really |ysprites|n playing a strange chasing game.
# Mellow Marsh:9 ends here
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:10]]
@detail sprites;sprite = Seems that sprites with pink wings are on one team, and purple winged sprits on the other. The game became exciting as one sprite, holding aloft a flag is trying to avoid others as it streaks to the far side of the marsh.
# Mellow Marsh:10 ends here
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:11]]
@detail fireflies = A passing firefly shows it to actually be a |ypixie|n holding two colorful lanterns.
# Mellow Marsh:11 ends here
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:12]]
@detail pixie;pixies = The pixies ignore you as their coreography keeps them focused on their dance.
# Mellow Marsh:12 ends here
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:13]]
@detail grass = Guess this kind of grass doesn't mind the wet environment.
# Mellow Marsh:13 ends here
# [[file:../../../projects/mud.org::*Mellow Marsh][Mellow Marsh:14]]
@detail mud = Pretty brown and sticky.
# Mellow Marsh:14 ends here
# Ten-foot Poles
# The reed can be a [[file:~/src/moss-n-puddles/typeclasses/consumables.py::class Producer(Object):][producer]] that makes ten foot poles … needed to get into the hut.
# [[file:../../../projects/mud.org::*Ten-foot Poles][Ten-foot Poles:1]]
@create/drop lot of tall white reeds;reeds: typeclasses.consumables.Producer
# Ten-foot Poles:1 ends here
# We have to have the reeds describe what it /makes/:
# [[file:../../../projects/mud.org::*Ten-foot Poles][Ten-foot Poles:3]]
@set reeds/make_name = "ten-foot pole"
# Ten-foot Poles:3 ends here
# And a verb when they /get/ the consumable:
# [[file:../../../projects/mud.org::*Ten-foot Poles][Ten-foot Poles:4]]
@set reeds/make_verb = "pluck and shape a"
# Ten-foot Poles:4 ends here
# And the reeds needs to know the /description/ of the Consumable, so that it can attach that:
# [[file:../../../projects/mud.org::*Ten-foot Poles][Ten-foot Poles:6]]
@set reeds/make_desc = "A long pole shaved from a marsh reed."
# Ten-foot Poles:6 ends here
# How much is there when you pick them?
# [[file:../../../projects/mud.org::*Ten-foot Poles][Ten-foot Poles:7]]
@set reeds/make_amount = 1
# Ten-foot Poles:7 ends here
# Purple Heron
# Create a puppet of the bird hunting frogs and pixies. :-D
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:1]]
@create/drop purple heron: typeclasses.npcs.Eliza
# Purple Heron:1 ends here
# What data file of responses should we use?
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:2]]
@set heron/data_file = "npcs.txt"
#
@set heron/speech_vocalizations = ["says", "croaks", "squawks"]
# Purple Heron:2 ends here
# Note that we give him a male gender:
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:3]]
@set heron/gender = "neutral"
# Purple Heron:3 ends here
# Work around the =pose= bug:
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:4]]
@set heron/_sdesc = "purple-feathered heron"
# Purple Heron:4 ends here
# Prefix article?
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:5]]
@set heron/article = "The"
# Purple Heron:5 ends here
# And a good description that I can rework:
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:6]]
@desc heron = Shades of violet and purple adorn the feathers of this majestically tall heron, that stalks the marsh |ygrass|n, hunting small critters.
# Purple Heron:6 ends here
# Since it is an NPC it has certain mutterings it can do:
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:7]]
@set heron/muttering_file = "jethro_tull_songs.txt"
#
@set heron/muttering_gap = 7
#
@set heron/muttering_interval = 360 # Little over 3 minutes
# Purple Heron:7 ends here
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:8]]
@set heron/muttering_formats = [
"sings to |oself as if no one is listening, \"{0}\"",
"continues to sing to |oself, \"{0}\"",
"croons to |oself, \"{0}\"",
"finishes |p verse, \"{0}\"|/",
]
# Purple Heron:8 ends here
# And add the absent-minded singing script:
# [[file:../../../projects/mud.org::*Purple Heron][Purple Heron:9]]
@script heron = typeclasses.scripts.Muttering
# Purple Heron:9 ends here
# Trampolis Hut on Stilts
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:1]]
@teleport mp08
#
@dig Homey Hut;mp09 = hut on stilts,leave;outside;marsh
# Trampolis Hut on Stilts:1 ends here
# And describe it as =hut=:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:2]]
@desc hut on stilts = Apparently made from swamp |ygrass|n, the homey-looking hut has a wood door high above ground. Baskets of potted flowers and herbs garnish every window.
# Trampolis Hut on Stilts:2 ends here
# Lets keep most characters out of the hut. The idea is you need to fly to get in. But we have a sequence For the initial exit, it is just always impossible to use:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:3]]
@lock hut on stilts = traverse:tag(enter_hut_nope, mp)
# Trampolis Hut on Stilts:3 ends here
# Lets add an alias:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:4]]
@alias hut on stilts = hut
# Trampolis Hut on Stilts:4 ends here
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:5]]
@set hut on stilts/err_traverse = "Upon approaching the hut, the hut scurries away on its stilt-like legs."
# Trampolis Hut on Stilts:5 ends here
# And we need to create a second exit:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:6]]
@open rope-bound hut = Homey Hut
# Trampolis Hut on Stilts:6 ends here
# Lets add an alias:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:7]]
@alias rope-bound hut = hut
# Trampolis Hut on Stilts:7 ends here
# And describe it:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:8]]
@desc rope-bound hut = The hut doesn't look happy, straining at its bonds that keep somewhat in place. The wood door to the hut, and its landing, continue to be too hign and out of your reach.
# Trampolis Hut on Stilts:8 ends here
# If the other exit is here, you just need the pole:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:9]]
@lock rope-bound hut = traverse:holds('ten-foot pole')
# Trampolis Hut on Stilts:9 ends here
# And a good reason why you need the pole:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:10]]
@set rope-bound hut/err_traverse = "The door, and its landing, are still too high and out of reach, and riding a bucking owlbear may be easier than climbing the stilt-legs that immediately throw you to the ground."
# Trampolis Hut on Stilts:10 ends here
# If you do figure out how to get through the hut:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:11]]
@set rope-bound hut/traverse_msg = "You use your pole to vault yourself up through the door of the hut..."
# Trampolis Hut on Stilts:11 ends here
# Lets put this second exit away until the [[file:~/src/moss-n-puddles/typeclasses/things.py::class Rope(Object):][rope calls]] it:
# [[file:../../../projects/mud.org::*Trampolis Hut on Stilts][Trampolis Hut on Stilts:12]]
@teleport/tonone rope-bound hut
# Trampolis Hut on Stilts:12 ends here
# Inside Trampolis Hut
# Lets go inside to decorate:
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:1]]
@teleport mp09
#
@desc here = A homey room cluttered with drying |yherbs|n, |yjars|n of preserves, and natural made |ytalismans|n. Even the table and chairs, covered in jars, bags and boxes, indicate the owner doesn't entertain much. Stairs lead up to a spacious loft with a bed.
# Inside Trampolis Hut:1 ends here
# And describe leaving:
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:2]]
@desc leave = From the doorway, you see the marshland below.
# Inside Trampolis Hut:2 ends here
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:3]]
@set leave/traverse_msg = "You open the door of the hut, and scramble down to the marsh below. Surely the ground the moist and soft to break your fall."
# Inside Trampolis Hut:3 ends here
# And the details:
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:4]]
@detail herbs = Clusters plants, a mixture of flowers and herbal leaves, all bound with twine and reeds, hang from spots around the room, fragranting the air.
# Inside Trampolis Hut:4 ends here
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:5]]
@detail jars = Sealed jars of fruits, vegetables, herbs and spices.
# Inside Trampolis Hut:5 ends here
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:6]]
@detail talismans = A wood |ycarving|n, a painted |yskull|n, and curiously shaped bundles of |yreeds|n, give the impression of inducing luck while showing a level of respect for the land.
# Inside Trampolis Hut:6 ends here
# For each talisman, we could create an object, but it wouldnt be able to be taken, and instead of “cant find skull”, we could give a better error message.
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:7]]
@create/drop painted skull
#
@desc skull = Painted with arcane symbols, a wolf skull sports curving, corrugated goat horns.
#
@lock skull = get:false()
#
@set skull/get_err_msg = "It appears firmly attached to the wall where it hangs."
#
@set skull/hidden_tag = "hidden_skull"
#
@lock skull = view:tag(hidden_skull)
# Inside Trampolis Hut:7 ends here
# Perhaps the carving is actually the maid.
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:8]]
@create/drop wood carving;carvings;daemon;imp
#
@desc carving = While rustic, the carving shows exquisite craftsmanship and artistry in its rendering of an daemon creature, less sinister and more impish.
#
@lock carving = get:false()
#
@set carving/get_err_msg = "As you reach for the carving, it promptly runs away."
#
@set carving/hidden_tag = "hidden_carving"
#
@set carving/hidden_tag = "hidden_carving"
#
@lock carving = view:tag(hidden_carving)
# Inside Trampolis Hut:8 ends here
# The reeds should give a subtle hint to something that could be /spoken/ aloud.
# [[file:../../../projects/mud.org::*Inside Trampolis Hut][Inside Trampolis Hut:9]]
@create/drop reed sculpture
#
@desc reed = The reed bundle, twisted and shaped in a six-spoke star, sports a blue tie.
#
@lock reed = get:false()
#
@set reed/get_err_msg = "It appears firmly attached to the wall where it hangs."
#
@detail tie = A blue ribbon with gold embroidery that spells: B U I O
#
@set reed/hidden_tag = "hidden_reed"
#
@lock reed = view:tag(hidden_reed)
# Inside Trampolis Hut:9 ends here
# Torches
# The reed can be a [[file:~/src/moss-n-puddles/typeclasses/consumables.py::class Producer(Object):][producer]] that makes ten foot poles … needed to get into the hut.
# [[file:../../../projects/mud.org::*Torches][Torches:1]]
@create/drop a bucket of torches: typeclasses.consumables.Producer
# Torches:1 ends here
# With a description:
# [[file:../../../projects/mud.org::*Torches][Torches:2]]
@desc bucket = A tall wood bucket full of resin-coated torches.
# Torches:2 ends here
# We have to have the bucket describe what it /makes/:
# [[file:../../../projects/mud.org::*Torches][Torches:3]]
@set bucket/make_name = "torch"
# Torches:3 ends here
# And a verb when they /get/ the consumable:
# [[file:../../../projects/mud.org::*Torches][Torches:4]]
@set bucket/make_verb = "take a"
# Torches:4 ends here
# And the bucket needs to know the /description/ of the Consumable, so that it can attach that:
# [[file:../../../projects/mud.org::*Torches][Torches:6]]
@set bucket/make_desc = "Made from marsh grass and reeds."
# Torches:6 ends here
# How much is there when you pick them?
# [[file:../../../projects/mud.org::*Torches][Torches:7]]
@set bucket/make_amount = 1
# Torches:7 ends here
# Trampoli the Witch
# Create a puppet of the lady that owns the hut.
# [[file:../../../projects/mud.org::*Trampoli the Witch][Trampoli the Witch:1]]
@create/drop Trampoli;old lady: typeclasses.puppets.Puppet
# Trampoli the Witch:1 ends here
# Note that we give him a male gender:
# [[file:../../../projects/mud.org::*Trampoli the Witch][Trampoli the Witch:2]]
@set old lady/gender = 'female'
# Trampoli the Witch:2 ends here
# Work around the =pose= bug:
# [[file:../../../projects/mud.org::*Trampoli the Witch][Trampoli the Witch:3]]
py bt = self.search('old lady'); bt.db.pose = 'playing with a deck of cards'
# Trampoli the Witch:3 ends here
# [[file:../../../projects/mud.org::*Trampoli the Witch][Trampoli the Witch:5]]
@set old lady/_sdesc = "old lady"
#
@set old lady/pose_default = "napping soundly in bed on the upstairs loft"
#
@set old lady/pose = "playing with a deck of cards"
# Trampoli the Witch:5 ends here
# And a good description that I can rework:
# [[file:../../../projects/mud.org::*Trampoli the Witch][Trampoli the Witch:6]]
@desc old lady = A blue shawl, adorned with arcane symbols in gold embroidery, covers the head of this small woman. Her large nose protruding from under the shawl, gives the appearance of a blue bird with bright green eyes.
# Trampoli the Witch:6 ends here
# And an unpuppeted, sleeping, description:
# [[file:../../../projects/mud.org::*Trampoli the Witch][Trampoli the Witch:7]]
@set old lady/desc_unpuppeted = "A blue shawl, adorned with arcane symbols in gold embroidery, covers the head of this small, napping woman. Her large nose protruding from under the shawl, as she snores loudly."
# Trampoli the Witch:7 ends here

View file

@ -158,9 +158,7 @@ py timed_script = evennia.create_script(key="Create Sticks",
# The ability to /climb/ the boulder isnt immediately obvious, so lets make it a bit of a secret:
# [[file:../../../projects/mud.org::*Boulder][Boulder:6]]
@desc boulder = A boulder with patches of moss and delicate clover. A carved symbol and even some runes try to hide behind tendrils of ivy as if keeping a secret.
Wait! You notice a foot hold, and then another. You can |gclimb|n this boulder!
@desc boulder = A boulder with patches of moss and delicate clover. A carved symbol and even some runes try to hide behind rope-like vines and tendrils of ivy as if keeping a secret.|/|/You notice a foot hold, and then another. You can |gclimb|n this boulder!
# Boulder:6 ends here
@ -182,7 +180,7 @@ Wait! You notice a foot hold, and then another. You can |gclimb|n this boulder!
# Boulder:8 ends here
# [[file:../../../projects/mud.org::*Boulder][Boulder:9]]
@set boulder/traverse_msg = "You move some ivy out of the way and pick your way up the boulder from one hold to another..."
@set boulder/traverse_msg = "You grab hold of some the vines and ivy and pick your way up the boulder from one hold to another... Hrm, these vines would make a great rope."
# Boulder:9 ends here
# Top of Boulder
@ -228,31 +226,34 @@ Wait! You notice a foot hold, and then another. You can |gclimb|n this boulder!
# Lets make a nice spot to sit down on:
# [[file:../../../projects/mud.org::*Top of Boulder][Top of Boulder:6]]
@create/drop moss;patch:typeclasses.sittables.Sittable
@create/drop patch of moss:typeclasses.sittables.Sittable
# Top of Boulder:6 ends here
# With a nice description:
# [[file:../../../projects/mud.org::*Top of Boulder][Top of Boulder:7]]
@desc moss = A cushioned patch of moss of the most vibrant green.
@desc patch of moss = A cushioned patch of moss of the most vibrant green.
# Top of Boulder:7 ends here
# Cant take the moss with you:
# [[file:../../../projects/mud.org::*Top of Boulder][Top of Boulder:8]]
@lock moss = get:false()
@lock patch of moss = get:false()
# Top of Boulder:8 ends here
# Can we hide it too?
# [[file:../../../projects/mud.org::*Top of Boulder][Top of Boulder:9]]
@lock moss = view:tag(hidden_moss)
@lock patch of moss = view:tag(hidden_moss)
#
@set patch of moss/hidden_tag = "hidden_moss"
# Top of Boulder:9 ends here
# And a lovely message about why you cant steal moss:
# [[file:../../../projects/mud.org::*Top of Boulder][Top of Boulder:10]]
@ -432,7 +433,7 @@ Wait! Is there a large cave entrance hidden behind the water?
# [[file:../../../projects/mud.org::*The Lair of the Beast][The Lair of the Beast:7]]
@desc here = Vaulted stone ceiling harbors the darkness that hovers a large mattress, so tall, you can barely see what might be resting on it.
@desc here = Vaulted stone ceiling harbors the darkness that hovers over a large mattress.
# The Lair of the Beast:7 ends here
@ -619,7 +620,7 @@ Nope. Too tall, and just as well. It does not smell very good.
# [[file:../../../projects/mud.org::*Beast][Beast:17]]
@set beast/concerned_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<is ^ seems>> concerned by your presence in the <<meadow ^ field>>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems concerned. Maybe it's hungry.. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems concerned and keeps its distance.."
@set beast/concerned_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<is ^ seems>> concerned by your presence in the <<meadow ^ field>>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems concerned. Maybe it's hungry. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems concerned and keeps its distance."
# Beast:17 ends here
@ -628,7 +629,7 @@ Nope. Too tall, and just as well. It does not smell very good.
# [[file:../../../projects/mud.org::*Beast][Beast:18]]
@set beast/interested_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems <<curious ^ interested>> in what you are doing <<here ^ >>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems curious about you. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> stands on its hind legs. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<stares at ^ watches ^ follows>> you with its <<large, ^ big, ^ >> yellow eyes."
@set beast/interested_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems <<curious ^ interested>> in $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> seems curious about $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> stands on its hind legs. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<stares at ^ watches ^ follows>> $you() with its <<large, ^ big, ^ >> yellow eyes."
# Beast:18 ends here
@ -637,7 +638,7 @@ Nope. Too tall, and just as well. It does not smell very good.
# [[file:../../../projects/mud.org::*Beast][Beast:19]]
@set beast/friendly_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> wagging its backend<<, ^ as it seems>> happy to see <you>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> hoping to play with <you>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> flops over in front of <you> wriggling <<its back ^ >> on the ground. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> next to you. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> chases butterflies around the <<field ^ meadow ^ grass ^ flowers>>."
@set beast/friendly_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> wagging its backend<<, ^ as it seems>> happy to see $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> hoping to play with $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> flops over in front of $you() wriggling <<its back ^ >> on the ground. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> next to $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> chases butterflies around the <<field ^ meadow ^ grass ^ flowers>>."
# Beast:19 ends here
@ -646,7 +647,7 @@ Nope. Too tall, and just as well. It does not smell very good.
# [[file:../../../projects/mud.org::*Beast][Beast:20]]
@set beast/ecstatic_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> to give <you> a sloppy <<kiss ^ lick>>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> wagging its backend as it seems <<very ^ >> excited to see <you>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> hoping to play with <you>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> flops over in front of <you> happily wriggling on the ground. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> excitedly <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> next to you. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<happily ^ joyfully>> leaps into air. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> chases butterflies around the <<field ^ meadow ^ grass ^ flowers>>."
@set beast/ecstatic_actions = "The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> to give $you() a sloppy <<kiss ^ lick>>. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> wagging its backend as it seems <<very ^ >> excited to see $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> hoping to play with $you(). ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> flops over in front of $you() happily wriggling on the ground. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> excitedly <<thunders ^ stomps ^ tramps ^ clomps ^ rumbles ^ rolls>> <<across the field ^ across the meadow ^ over>> next to you. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> <<happily ^ joyfully>> leaps into air. ;; The <<big, ^ huge, ^ large, ^ tremendous, ^ >> <<hairy ^ slobbery ^ horned ^ clawed ^ >> <<brute ^ beast ^ monster>> chases butterflies around the <<field ^ meadow ^ grass ^ flowers>>."
# Beast:20 ends here
@ -655,17 +656,25 @@ Nope. Too tall, and just as well. It does not smell very good.
# [[file:../../../projects/mud.org::*Beast][Beast:21]]
@set beast/pet_scared_response = "You can't get near it to pet it. It seems scared of you."
@set beast/pet_scared_response = "$You() can't get near the wild beast to pet it. It seems scared."
#
@set beast/pet_concerned_response = "You can't get near it to pet it. It seems concerned by your presence."
@set beast/pet_concerned_response = "$You can't get near the big, hairy beast to pet it. It seems concerned."
#
@set beast/pet_interested_response = "It keeps its distance, but seems curious about <you>."
@set beast/pet_interested_response = "The big hairy beastie keeps its distance, but seems curious about $you()."
#
@set beast/pet_friendly_response = "The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> << flops ^ rolls >> over << in the grass ^>> as <(you ^ {0} )> <( give ^ gives )> it belly rubs.. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> << flops ^ rolls >> over << in the grass ^>> as <(you ^ {0} )> <( rub ^ rubs )> its belly.. ;; <(You ^ {0} )> <( pet ^ pets )> the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> .. ;; <(You ^ {0} )> <( scratch ^ scratches )> the << nose ^ ears >> of the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> .. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> leans forward as <(you ^ {0} )> <( scratch ^ scratches )> its nose."
@set beast/pet_friendly_response = "The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> << flops ^ rolls >> over << in the grass ^>> as $you() $conj(give) it belly rubs. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> << flops ^ rolls >> over << in the grass ^>> as $you() $conj(rub) its belly. ;; $You() $conj(pet) the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> . ;; $You() $conj(scratch) the << nose ^ ears >> of the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>>. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> leans forward as $you() $conj(scratch) its nose."
#
@set beast/pet_ecstatic_response = "While << excited ^ ecstatic ^ squirmy >>, the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> << lays ^ gets >> down so you can << pet ^ scratch >> << the top of its head ^ the back of its neck ^ its nose ^ the sides of its face >>. It closes its eyes and purrs.. ;; << The squirmy little devil. ^ >> <( You ^ {0} )> << can ^ >> << barely ^ hardly >> scratch the << nose ^ ears ^ neck ^ top of the head >> of the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> as it << squirms around ^ wriggles it backend >>. It << can hardly ^ can't >> contain its excitement. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> wriggles around before << flopping ^ rolling >> over << in the grass ^>> as <(you ^ {0} )> <( give ^ gives )> it belly rubs. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> wriggles and squirms excitedly before it << flops ^ rolls >> over << in the grass ^>> as <(you ^ {0} )> <( rub ^ rubs )> its belly."
@set beast/pet_ecstatic_response = "While << excited ^ ecstatic ^ squirmy >>, the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> << lays ^ gets >> down so $you() can << pet ^ scratch >> << the top of its head ^ the back of its neck ^ its nose ^ the sides of its face >>. It closes its eyes and purrs. ;; << The squirmy little devil. ^ >> $conj(You) << can ^ >> << barely ^ hardly >> scratch the << nose ^ ears ^ neck ^ top of the head >> of the << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> as it << squirms around ^ wriggles it backend >>. It << can hardly ^ can't >> contain its excitement. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> wriggles around before << flopping ^ rolling >> over << in the grass ^>> as $you() $conj(give) it belly rubs. ;; The << big, ^ huge, ^ large, ^ tremendous, ^ >> << hairy ^ slobbery ^ horned ^ clawed ^ >> << brute ^ beast ^ monster>> wriggles and squirms excitedly before it << flops ^ rolls >> over << in the grass ^>> as $you() $conj(rub) its belly."
# Beast:21 ends here
# With a description:
# [[file:../../../projects/mud.org::*Ten-foot Poles][Ten-foot Poles:2]]
@desc reeds = Extremely tall, white reeds tipped with white gooey clumps. One could hazzard a guess that with a little manipulation, one could make something from them.
# Ten-foot Poles:2 ends here
# The Dock
# The dock leads out into a strange sea. The break in the trees lets you see the sky. Looks like a nice place to relax.
@ -802,61 +811,44 @@ Looks good for being out in the weather.
# What about some details:
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:4]]
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:5]]
@detail hook;bait = One of those shiny lures, made from gold coins. Curiouser. Seems you don't need to bait this hook.
# Fishing Pole:4 ends here
# Fishing Pole:5 ends here
# Need to make the fishing pole “stay” at the Dock. Maybe with a message about sticking around for the next person.
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:5]]
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:6]]
@create/drop sign:typeclasses.readables.Readable
# Fishing Pole:5 ends here
# Fishing Pole:6 ends here
# Should the description also be the message?
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:6]]
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:7]]
@desc sign = You see a wood sign tied with a rope around the back of the chair. It reads, |wFish at your own annoyance. Please return pole when finished.|n
# Fishing Pole:6 ends here
# Fishing Pole:7 ends here
# Might as well allow the user to read it:
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:7]]
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:8]]
@set sign/inside = "Fish at your own annoyance. Please return pole when finished."
# Fishing Pole:7 ends here
# Fishing Pole:8 ends here
# And lock down the sign:
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:8]]
# [[file:../../../projects/mud.org::*Fishing Pole][Fishing Pole:9]]
@lock sign = get:false()
#
@set sign/get_err_msg = "This granny knot holding the sign to the chair is serious. You can't take it."
# Fishing Pole:8 ends here
# The Island
# The boat should land on a distant island.
# [[file:../../../projects/mud.org::*The Island][The Island:1]]
@dig/teleport Lonely Island;mp09:typeclasses.rooms_weather.TimeWeatherRoom
# The Island:1 ends here
# And describe it:
# [[file:../../../projects/mud.org::*The Island][The Island:2]]
@desc here = Vibrant green moss covers the island's gray rock. Wandering around the conifers you encounter giant statues of armored knights surrounding a huge, empty throne. An inscription at the base reads, ᚦ ᚮ ᚱ
# The Island:2 ends here
# Fishing Pole:9 ends here
# Grotto
@ -969,74 +961,84 @@ Looks good for being out in the weather.
# We have to have the bush describe what it /makes/:
# The bush shouldnt be stealable:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:3]]
@set bush/make_name = "berries"
@lock bush = get:true()
#
@set bush/get_err_msg = "It appears firmly attached to the ground. Perhaps you want to |gpick|n a berry?"
# Berry Bush:3 ends here
# We have to have the bush describe what it /makes/:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:4]]
@set bush/make_name = "berries"
# Berry Bush:4 ends here
# Including some plural aliases:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:4]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:5]]
@set bush/make_aliases = ["berry", "brambleberry", "brambleberries"]
# Berry Bush:4 ends here
# Berry Bush:5 ends here
# And a verb when they /get/ the consumable:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:5]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:6]]
@set bush/make_verb = "pick some"
# Berry Bush:5 ends here
# Berry Bush:6 ends here
# And the bush needs to know the /description/ of the Consumable, so that it can attach that:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:7]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:8]]
@set bush/make_desc = "Bright red berry with flecks of <<purple ^ violet ^ orange>>."
# Berry Bush:7 ends here
# Berry Bush:8 ends here
# How many berries are there when you pick them?
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:8]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:9]]
@set bush/make_amount = 10
# Berry Bush:8 ends here
# Berry Bush:9 ends here
# How many berries do you eat at a time:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:9]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:10]]
@set bush/make_eat_amount = 3
# Berry Bush:9 ends here
# Berry Bush:10 ends here
# We can either have a single /eat/ message:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:10]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:11]]
@set bush/make_eat_msg = "Sweet and slightly tart. <<Delicious ^ Tangy ^ Mmmm>>."
# Berry Bush:10 ends here
# Berry Bush:11 ends here
# Or many messages that can be randomly selected:
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:11]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:12]]
@set bush/make_eat_msgs = [ "Sweet and slightly tart.", "<<Delicious ^ Tangy ^ Mmmm>>.", "Ooo...that one was sour.", "That was a bit ripe, but still good.", "So sweet with a hint of <<orange ^ maple>>." ]
# Berry Bush:11 ends here
# Berry Bush:12 ends here
# Let the user know when they consumed them all.
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:12]]
# [[file:../../../projects/mud.org::*Berry Bush][Berry Bush:13]]
@set bush/make_finish_msg = "Those were <<delicious ^ great>>."
# Berry Bush:12 ends here
# Berry Bush:13 ends here
# Knocker
# The knocker has the ability to make the door “open” using [[https://www.evennia.com/docs/latest/api/evennia.objects.objects.html][on_traverse]] hooks?
@ -1126,7 +1128,7 @@ Looks good for being out in the weather.
# And put the ring in the knockers mouth:
# [[file:../../../projects/mud.org::*Knocker][Knocker:10]]
@give ring to knocker
@teleport/quiet ring = knocker
# Knocker:10 ends here
@ -1176,7 +1178,7 @@ Looks good for being out in the weather.
# Add the Python /special-ness/ for [[file:~/src/moss-n-puddles/typeclasses/rooms.py::class DabblersRoom(Room):][this room]]:
# [[file:../../../projects/mud.org::*Cozy Tea House][Cozy Tea House:1]]
@dig Dabbler's House;mp03: typeclasses.rooms.DabblersRoom = red door;door;inside,outside;leave
@dig Cozy House;mp03: typeclasses.rooms.DabblersRoom = red door;door;inside,outside;leave
# Cozy Tea House:1 ends here
# Red Door
@ -1423,6 +1425,8 @@ Spectacles perched precariously on the end of his hooked nose, wobble with his h
@set gnome/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 |yoctarine|n << appear ^ emerge ^ materialize >> as << the ^ >> magic << coalesces ^ blends >>..."
# Character: Dabbler:11 ends here
# Pipe
@ -1514,7 +1518,7 @@ Spectacles perched precariously on the end of his hooked nose, wobble with his h
# [[file:../../../projects/mud.org::*Magic 8 Ball][Magic 8 Ball:1]]
@create/drop crystal ball;ball;magic ball: typeclasses.things.CrystalBall
@create crystal ball;ball;magic ball: typeclasses.things.CrystalBall
# Magic 8 Ball:1 ends here