More than eight excluded actions

If I want to prevent a range of actions, I can use “doing anything except”. (“Before the bird doing anything except looking, going, or singing…”) However, this is limited to eight action descriptions. Is there any way to get around this limitation?

I seem to recall running into this a few months ago. I believe you can get around it by defining kinds of action – “Inserting it into is wibbling. Removing it from is wibbling. [etc.]” Then, “Before the bird doing anything except wibbling…”

My memory may be faulty, but it’s worth a try, anyhow.

Here is what I have. It might be too simplistic for what you want to do.

[code]“faction test game” by Andrew Schultz

room 1 is a room.

the box is a thing in room 1.

examining is loafing. looking is loafing. waiting is loafing. waving is loafing.

After loafing:
if c-read is true:
say “[turn count]Boo.”;

After not loafing:
say “[the current action]”;
if c-read is true:
say “[turn count]Yay.”;

c-read is a truth state that varies.

after reading a command:
now c-read is true;

[to test before-activities…]
[instead of loafing:
say “USELESS!!!”;]

test noloaf with “take box/drop box”;
test loaf with “x me/x box”;

There’s a bit of an edge case where before the player does anything, their first action is defined as looking. But I think it may be a matter of just sorting things.

The difficulty comes in because I need the actions to only be blocked for an NPC, not for the PC. I’m going to try Jim’s suggestion and see if that applies here.

Unfortunately this is not accepted by the compiler.

Experimental results:

Defining types of action as “bird-action” does work. However, “Before the bird doing anything except bird-action” does not work, nor does “the bird going is bird-action”. “Before the bird doing anything when the current action is bird-action” compiles but doesn’t work, since the current action is (e.g.) “the bird going south”, not “going south”.

This is what I eventually came up with.

Include Editable Stored Actions by Ron Newcomb.

Going is bird-action. Entering is bird-action. [Etc...]
Before the bird doing anything:
	let the idea be the current action;
	change the actor part of the idea to the player; [Remove the actor part to allow comparison.]
	unless the idea is bird-action, [do something] instead.