Jenn types --> @dig A Sitting Room
Jenn types --> @open Sitting Room;sr=#3902
Jenn types --> @osucc sitting room=steps into the sitting room.
Jenn types --> @succ sitting room=You step into...
Jenn types --> @desc sitting room=A small door.
Jenn says "And now, into the new room..."
Jenn says "okay, we have this blank room, and we're all stuck in it!
ACK!"
Jenn types --> @open out=back
Jenn says "now we arent :)"
Jenn says "The first thing we need to give a sense of realism is a
description."
Jenn types --> @desc here=The sitting room is cozy and warm, with a large sofa, coffee table, and rocking chair sitting atop a hand knotted rag rug. Bookshelves line three walls, and on the fourth is a large fireplace with a woodbin and fire tools beside it.
Jenn says "We have a room and we have an @desc. One thing that will make this room more realistic is a way to SEE the things in it. There are several ways to do this. I prefer the subtle but solid approach, for the most part: Dark Objects
Jenn types --> @create bookshelf bookshelves
Jenn types --> @lock bookshelf=bookshelf
Jenn says "The lock is to keep people from taking it from the room, and the two names are because some idiots will think the room says bookshelF and get mad when they cant see it. If you want, you can separate the two names using only a semi-colon."
Jenn types --> @set bookshelf=d.
Jenn says "and dark is because there is no need for an object mentioned in the rooms @desc to spam up the rooms contents list."
Jenn types --> @desc bookshelf=The shelves are made of mahogany, and hand rubbed to a gentle sheen. A copy of War and Peace is sitting open atop one of the shelves.
Jenn types --> @fail bookshelf=You run a fingertip over the bookshelf, admiring the grain of the wood.
Jenn types --> @ofail bookshelf=runs a fingertip over the bookshelf, admiring the grain of the wood.
Jenn says "And that is a dark detail. However, you can add MORE realism
by layering your details."
Jenn says "You will notice that the bookshelf's @desc has a copy of
war and peace in it. Right now, there is no way for us to look at the book,
but that can be fixed by doing this:"
Jenn types --> @create War and Peace
Jenn types --> @lock war and peace=war and peace
Jenn types --> @desc war and peace=A very long, very dull, very soporific book.
Jenn types --> @fail war and peace=You pick up War and Peace and read and read and read and read and read and read and READ. Finally tiring of the dull thing, you replace it on the shelf.
Jenn types --> @ofail war and peace=picks up War and Peace and reads and reads and reads and reads and reads and reads and READS. Finally tiring of the dull thing, %N replaces it on the shelf.
Jenn types --> @set war and peace=d
Jenn says "So dark details and layered dark details are a good way of adding a feeling of realism to a room. Another way is to add commands to a room..."
Jenn types --> @open sit on the sofa;sit;sofa=here
Jenn says "that command can serve a dual purpose, by the way, as shown in a minute."
Jenn types --> @desc sofa=A large, overstuffed, purple velvet sofa. Ugly but COMFORTABLE!
Jenn says "by naming your room commands well, you can also use them
as dark details. You'll notice that just having a sit command isn't good
enough."
Jenn sits on the sofa.
Jenn sits on the sofa.
Jenn sits on the sofa.
Jenn says "How many times can one person sit? Theoretically, if you
sit down, you need to stand up again before you can sit back down, right?
Welcome to the beautiful world of @locks."
Jenn says "To make a simple series of cascaded visibility locks, which
is what is called for in this case, you need to first set the command in
question 'sticky'"
Jenn types --> @set sofa=s
Jenn says "we also need a way for people to stand up."
Jenn types --> @open stand up=here
Jenn says "now come the locks: we will need two locks, one on sit, and one on stand up. The lock on sit will make it so that a person cannot sit again until they have stood up. it will also remove that command from the options available when the sitting person looks at the room"
Jenn types --> @lock sit=!sit;!sit
Jenn says "we need a similar lock on stand, to prevent people from standing up when they aren't sitting down. In this case:"
Jenn types --> @lock stand up=sit;sit
Jenn says "what that lock says is: if the person is not sitting, they cant stand, and they wont know that the option exists if they look around. There is still one problem though: you can stand a bajillion times, so we need to place an @effect on stand up, to remove the sticky SIT exit from the player."
Jenn types --> @eff stand up=rem sit
Jenn says "and thus is created a simple cascaded visibility lock."
Jenn says "okay, the final nifty realism trick in building is a bit
more involved."
Jenn types --> @open light a fire;light fire;get firewind=here
Jenn types --> @succ light fire=Taking a long match in hand, you strike it on a brick, then toss it into the fireplace and watch the kindling catch fire.
Jenn types --> @osucc light fire=tosses a lit match into the fireplace and watches the kindling light up.
Jenn says "okay, that exit needs to be sticky :)"
Jenn types --> @set light fire=s
Jenn says "the lock on this is kind of weird :)"
Jenn types --> @lock light fire=!(light fire:here);!(light fire:here)
Jenn says "and the effect is also a bit odd."
Jenn types --> @eff light fire=add light fire:here Jenn says "the effect adds the exit to the room. So now, when someone lights the fire, it stays lit, and everyone sees it as lit. Also, no one can light the fire after it is lit. The lock on the room makes this happen, in conjunction with that @effect on the command."
Jenn types --> @fail light fire=You burn yourself on the flames!
Jenn types --> @ofail light fire=burns %p fingertips in the already lit fireplace!
Jenn says "now, if someone tries to light the fire when its already lit, they get a rather painful surprise. This is great, except no one can put the fire out! That's what we'll set up now:"
Jenn types --> @open douse the fire;douse fire;drop firewind=here
Jenn types --> @lock douse the fire=(light fire:here);(light fire:here)
Jenn types --> @ofail douse fire=looks sorta stupid dousing an already doused fire.
Jenn types --> @fail douse fire=its already out, goof.
Jenn types --> @succ douse fire=You pour a small pail of water over the flames, watching them flicker and die.
Jenn types --> @osucc douse fire=pours a small pail of water over the flames, watching them flicker and die.
Jenn says "and of course, the effect:"
Jenn types --> @eff douse fire=rem light fire:here
Jenn says "and another really nifty trick to add on top of this one is to add an @succ and @fail to the room, and lock the room appropriately..."
Jenn types --> @lock here=light fire:here Locked.
Jenn types --> @succ here=A fire dances merrily in the fireplace.
Jenn types --> @fail here=The hearth is cold and dark.
Jenn says "Now, if someone looks at the room, they can tell whether
or not the fire is lit. By the way, with a good alias on that light fire,
something like fire;fireplace as well as the other ones, i could have described
the fireplace as a dark detail :)"
Jenn says "Also, if you're a purist, you can leave out the @desc of
the room entirely, and just use @succ and @fail."
Jenn types --> @succ here=The sitting room is cozy and warm, with a large sofa, coffee table, and rocking chair sitting atop a hand knotted rag rug. Bookshelves line three walls, and on the fourth is a lit fireplace with a woodbin and fire tools beside it
Jenn types --> @fail here=The sitting room is dark, and chilly, with a large sofa, coffee table, and rocking chair sitting atop a hand knotted rag rug. Bookshelves line three walls, and on the fourth is a cold fireplace with a woodbin and fire tools beside it.