Removing the "You can see" from Printed Name display?

I want to make it so that the player may retain something like the Initial Appearance despite having handled an object?

e.g. after dropping the Demon Core, the player may get, instead of

the player gets

This should probably be obvious, but I’m not getting it.

I think you want a “rule for writing a paragraph about,” as in section 17.22:

Rule for writing a paragraph about Demon Core: say "The Demon Core must be where you dropped it, but you're chained to the water heater and can't move your head far enough to glimpse it. You can feel a tingling heat from it, though. Good thing you're already dead."

Except, as your red text seems to indicate that you know, you don’t want to print “You’re chained to the water heater” etc. whenever you write a paragraph about the Demon Core. You want to put a condition that specifies that the player is chained in order to print this text. For this activity, if the rule for writing a paragraph doesn’t print any text, things fall through to the standard “You can see the Demon Core here”; which is good, because it prevents these rules from missing a case and erasing the Demon Core from the description completely.

Huh. I tried making a “rule for printing the Demon Core’s name”, but I guess that only deals with what’s inside the ‘You can see’ block?

Right, or any other time the game refers to the Demon Core.

http://inform7.com/extensions/Ron%20Newcomb/Default%20Messages/index.html

Seriously, I love this thing…

That looks pretty neat. May I show it to other IF people I know?

Don’t need my permission. It’s a publically accessible extension. :slight_smile:

Oh. Cool!

One more question, not to open a new thread or anything, but

This doesn’t work. I can’t seem to compare radioactivity.

edit: made new thread for googlability

Can’t test right now, but I think it should be something more like:

[if the radioactivity of the notebook is more than 5TBq]

However, you can’t do what you’re trying to do inside of a say statement. Say statements only allow one if/else. So you can do “more than 5” or “less than 10” but you can’t do both. You’d have to define that conditional outside of the say statement and either print a new block of text or use text substitution.

Edit: Also I didn’t find a new thread…?

I think you want “[if the radioactivity of the item described…]” “The notebook” parses the same way as “a notebook,” so that will trigger if any notebook meets the condition (assuming the condition parses at all).

I haven’t made a new thread yet.

Anyway, it doesn’t seem to parse, even specifying it as you did. Do I need to have a “Definition:” before it’ll work?

OK, after some fiddling, I think I’ve got it:

An exposed notebook is a kind of thing with description "[if the radioactivity of the item described is greater than 5TBq and the radioactivity of the item described is less than 10TBq]Get thee to a superfund site![else]A notebook placeholder."

Three points:
As I mentioned before, you have to use “item described.” When I tried it with “radioactivity of the notebook” it didn’t even compile, which surprised me a little – I expected it to treat “the notebook” as basically “some notebook, somewhere” (which would’ve been more insidious.)
You can’t say “if the radioactivity of the item described is greater than 5tbq and less than 10tbq”; you have to spell it out so there are complete conditions on either side of the “and.”
It has to be “greater than,” not “more than.” That’s what really got me. (The compiler errors were actually helpful here, since they nailed down which part was failing.)

It works! Thanks!

Also, “>” works for it too. I tried that once, but the real hole for me was not using “the item described”. I bet there’s a way to get a list of all those internal variables like “item described” and “current room” and so on, but I don’t know what it is. Oh well.

Here are the big ones I can think of:

The noun: In rules for actions, the first object that the action applies to.
The second noun: In rules for actions, the second object that the action applies to.
The topic understood: In rules for actions that take free-form text instead of object names, the text that was input. (e.g., If you type “SET DIAL TO FORBO”, the topic understood would be “FORBO”.)
The person asked: In persuasion rules and rules for actions, the person who is being asked to perform an action, or the person who is carrying it out.
The actor: In rules for actions, the person who is carrying out an action. (I’m not sure how much this differs from “the person asked” in most cases.") [UPDATE: Right, there’s some potential weirdness with “the actor.”]
The location: The room enclosing the player.

Anyone got some more? I may not have these all quite right, especially “the person asked.”

Odd… Every time I’ve tried to do multiple conditionals in a say statement, it tells me that it’s too complex.

You’re probably trying to do nested conditionals like this:

say "[if the player is in the boiler room]You can see a [if the boiler is switched on]steaming [end if]boiler here.[end if]"

That’s what becomes too complex for say phrases. If you make sure the conditionals are not nested it compiles fine, although obviously it’s usually better to handle such situations with more elegant methods:

say "[if the player is in the boiler room]You can see a [end if][if the player is in the boiler room and the boiler is switched on]steaming [end if][if the player is in the boiler room]boiler here.[end if]"

You can also use “[otherwise if]” in say phrases as well.

For the most part, whenever I create sub-phrases to get around the nesting restrictions, I end up being glad I did.