I7 : Instead of doing something to a person except talking?

instead of doing something to a person: say "No you don't!";

So far so good - but I don’t get how I should make talking an exception.

If you have defined a talking action then the syntax is:

Instead of doing something other than talking to a person: say "No you don't!";

Note that this will prevent self actions like “examine me” too.

You can use an adjective (an other) to exclude the player:

[code]Definition: a person is an other if it is not the player.

Instead of doing something other than talking to an other:
say “No you don’t!”;[/code]

I think the default responses might be preferable to such a catch-all, but… “doing something except talking” should produce the effect you want, if talking is either an existing action or a behaviour group.

To define talking as a behaviour group, something like this should work:

Asking it about is talking.
Telling it about is talking
Showing it to is talking.
Giving it to is talking.
Answering it that is talking.
Asking it for is talking.

You might also want to make an exception for asking people to do things, but I don’t think that can be easily fit into your instead clause. The action is “asking someone to try doing something”, but it doesn’t seem to work if you write “Asking someone to try doing something is talking”, and even if it did work, I’m not sure if it would work correctly (since in this action I think the person spoken to is “the actor” rather than “the noun”).

Edit: Regarding the “other” adjective, I usually define and use it like this:

Definition: a person is other if it is not the player. [So we can say "a list of other people" for example.]
Definition: a person is another if it is not the player. [So we can talk about "another person".]
Definition: a person is else if it is not the player. [This allows us to talk about "someone else".]

Instead of doing something to another person:

Instead of doing something to someone else:

Thanks, I think I’m almost there!

Understand "talk to [someone]" as talking.
Talking is an action applying to one thing.
Report talking: Say "You have a nice conversation about puzzle design.";

Definition: a person is another if it is not the player. [So we can talk about "another person".]

Instead of doing something except talking to another person:
	say "He do not care for that. Try talking to him instead.";

Kitchen is a room.
Mario is a man in kitchen.

But I would like to also make looking an exception, and possibly other actions too.

Defining a bunch of actions under a single label, as Celtic Minstrel suggested, sounds right. But I can’t get this ‘behaviour group’ thing to work. I tried:

talking is slightly-okay-stuff. looking is slightly-okay-stuff.
But I don’t know how get the instead line to both make exceptions for slightly-okay-stuff and require that the action requires another person. (also, to me it feels sorta wierd to just saying that looking is slightly-okay-stuff., without first defining slightly-okay-stuff in some way … but it seem to work, though)

… Any suggestions?

With the way Inform works, a sentence of the form “X is Y” is (often) a definition in itself. With behaviour groups, for whatever reason, the thing being defined always comes on the right hand side.

I’m fairly sure that “doing something except blah to a person” can never match looking, since looking is an action with no argument.

For behaviour classes, the LHS can be any action description (it would be kinda useless, but you can even write “doing something is slightly-okay-stuff”). I’m not sure if that helps, or what exactly you’re using the behaviour group for based on the code you’ve posted.

talking is slightly-okay-stuff.
examining is slightly-okay-stuff.

Instead of doing something other than slightly-okay-stuff when the noun is another person:
	say "He do not care for that. Try talking to him instead.";

For the record, if you want to allow looking at the person, the name of the action you need is “examining”, not “looking”. The looking action should be thought of as looking around only, not looking at or in something. (Looking in something is “searching”.)

Working - Thanks a lot! :slight_smile: