Check whether an activity is running

I’ve run into an infinite recursion problem with activities and have found a way to prevent it. Rather than calling the activity recursively on a new object from within itself, now the rules will call a separate phrase which puts the object into a queue and only calls the activity if it is not already running.

It works in theory, but how do I check whether the activity is running or not? The manual suggests “if the ____ activity is not going on”, but this gives the following error:

[code] In the sentence ‘unless the activating activity is going on, cause activation’ , it looks as if you intend ‘activating activity is going on’ to be a condition, but that would mean comparing two kinds of value which cannot mix - an activity on objects and a - so this must be incorrect.

I was trying to match this phrase:

unless (activating activity is going on - a condition) , (cause activation - a phrase)

This was what I found out:

activating activity is going on = a condition

cause activation = an instruction to do something

I’m not sure what’s going wrong, but it seems bad. Is there a better way to test, outside of a rule?

(Note: activating something is an activity on objects, “cause activation” invokes a complicated loop to activate everything in the list.)

That should work. This compiles:

The Kitchen is a room.

Activating something is an activity on objects.

Every turn:
	unless the activating activity is going on, cause activation.

To cause activation:
	say "Go."

Maybe you’ve defined some other term that contains the words “going on”?

Hm, that might be it. I’ll check that.

EDIT: You’re right, it was a different use of the word “on” in the same extension that caused it. Thanks!