In a room I’m making, I’m listing a lot of the initial items in the room description rather than in the locale description. Using the bracketed notation for objects is nice for this. However, it always expands the object out into its full name, when sometimes I would rather print out a shorter name without adjectives when in the room description. Is there any efficient way to vary what was written in the brackets from the printed name?
There are almost certainly more elegant ways to do this, but one technique I’ve used is to just write the object into the room description (using an if check if it’s not always present) and then make it undescribed. This works fine for scenery type items, and it’s also easy for portable ones since once an object has been handled, it automatically becomes described. Tiny example:
The Kitchen is a room. The description is "A kitchen[if the stapler is undescribed], with an incongrous stapler on one counter[end if]." The stapler is in the kitchen. The printed name is "annoyingly long-windedly-named stapler". The stapler is undescribed.
I know you don’t have to make things BRIEF-compatible, and most don’t / aren’t, but if you are, the technique you’ve described will make the stapler disappear in BRIEF if the player re-enters the room.
As I was saying, before I deleted my comment in a fit of madness, I think this does what you want:
"Untitled" Laboratory is a room. The description is "This is a very boring laboratory. Someone has glued [the stapler] in the middle of the floor." The stapler is in the Laboratory. It is fixed in place. The printed name is "very annoyingly long named stapler". Rule for printing the name of the stapler while looking: say "stapler". The garden is south of the laboratory. test me with “l/s/n/x stapler”.
If the object is genuinely scenery and won’t be going any where else, it won’t get mentioned elsewhere in the locale description regardless of whether its name is mentioned (in or out of brackets) in the room description, so you can just describe or name it any way you want, without bracketing it.
If it’s portable scenery, or scenery that might conceivably be destroyed or removed from the room in some other way, then the whole sentence in the room description describing its presence is in any event going to need to be enclosed in an [if the whatever is in the room]…[end if] sequence (or similar), and again you can describe/name it any way you wish, unbracketed, within that sentence.
So, in a nutshell- just make it scenery and don’t bracket the name in a room description.
If it’s something that needs to be described differently after it’s been picked up and put down again, @severedhand’s technique can be a good one, since even portable scenery can’t be moved or taken without making an exception rule to allow it.
However if you want it to behave as scenery/undescribed again once it’s been picked up and put down again, you’ll need those exception rules either to allow it to be taken despite being scenery (you’ll also need to make it portable), or a foolproof rule to reinstitute its status as undescribed when it leaves the player’s possession. (Once in the player’s possession, scenery stays scenery, whereas something described becomes undescribed.)
PS there’s also a property ‘handled/not handled’ which every thing has. Initially a thing is not handled but it is set automatically to being handled at the end of the first turn a thing is in the player’s possession (at the same time that undescribed things in the player’s possession are set to being described). You can also use this property to vary how something is described after it has been in the player’s possession if you don’t want to make it undescribed.
If you just want to create a shortcut to be able to put things in the room description and leave them out of the additional locale list, you could do something like this:
Note that in this implementation, we only check if the sword is “in” the room, rather than enclosed by it - hence the differing descriptions when it is on the table (or obviously, if the player is carrying it).
That’s a neat alternative to making it scenery or undescribed, especially when you might want it mentioned in the locale description in the conventional way, but only under some circumstances.
My technique probably is pretty great, but whatever it is, I didn’t offer it in this thread
So you probably meant @DeusIrae 's?
Thank you all for the replies. @BadParser 's solution is closest to what I was envisioning, but they were all very informative. Thank you for the quick replies