On the desk is a node.


On the desk is a node.

Though that’s true, it shouldn’t print that when the look command is used.

How can this be achieved?

It needs to be taken, so it can’t be scenery.

Maybe "rule for printing a paragraph about node when it is on the desk: do nothing.

Or you can make it scenery, and when the player tries taking it, you move a previously unused “node” object to their inventory and remove the scenery object from play.

Which is a bit more convoluted.

If I’m imagining the situation correctly, something like this might work:

[code]Study is a room.

The desk is a supporter in study. “A metal desk stands in the center of the room.” The description is “A very plain desk.[if node is part of desk] It has a node built into it, which looks a little loose.”

The node is part of the desk.

Before taking the node while the node is part of the desk:
say “You loosen the node a little more.”;
now the node is on the desk.[/code]

node is an item, on the desk. like a pen or a book or the most recent copy of “breasts monthly”.

it says “on the desk is a node” and all it has to do is not say that one line. if there’s a screwdriver on the floor, that it mentions that, fine. but the node is already mentioned in story as an important piece and the flaugh is broken by the game mentioning it again in a separate paragraph.

I think i could modify the code you mention into something that would work for me.

in the event I am wrong about this, please feel free to continue submitting ideas/thoughts.

EDIT: it did not work. :c

EDIT: I kicked it and it works.

If the desk is a scenery supporter, you can try

The describe what's on scenery supporters rule does nothing.

or try something more closely targeted to the desk.

But another way to do it is to make sure the game knows it’s mentioned the node. This

[code]Study is a room. “A brightly pulsating node pulsates on the desk.”

The desk is a scenery supporter in the study. A node is on the desk.[/code]

gives us this:

but this:

[code]Study is a room. “A brightly pulsating [node] pulsates on the desk.”

The desk is a scenery supporter in the study. A node is on the desk.[/code]

gives us this:

because the bracketed [node] in the room description makes Inform run its routine for printing the name of the node, and that lets it know that it’s already mentioned the node and doesn’t need to mention it again to say it’s on the desk.

I’d forgotten about functionality matt w’s talking about. It’s simple, it’s elegant, and you should totally use it.

I’ve read somewhere that it’s good I7 practice to use [bracketed nouns] as often as possible, too. For reasons like this, I assume.

to be clear, if i use “blah blah giggity [item] ding dong.” it removes the -whole- sentences the bracketed item is in after i take said item?

No. That’s text in the room description, it won’t change unless you tell it to.

Okay so can i use "[if player does not have the item]blah blah giggity [item] ding dong. [end if]yay!" and the results will be:
player does not have the item:

player does have the item:

Yep. Just like any other if-statement in the description.

Though you should probably test on something like “[if item is in the location]” or “[if item is on the desk]” or whatever–if the player picks up the item and drops it in another room, you don’t want “blah blah giggity giggity [item] ding dong” to show up in the room description again.