What is ACCESS_RB?

I had been going all along on the assumption that this part of Speech Motivations would work:

[code]audience is a plural-named person. The printed name of audience is “anyone who can hear”.

For printing the name of audience when someone is among the audience: say “[the list of people who are among the audience]”

For finding an interlocutor for someone (called actor) (this is the address the whole audience rule):
let np be the number of people who are among the audience;
if np is 0:
if exclaiming something to:
now the interlocutor of the actor is the actor;
otherwise:
if the actor is the player, say “There’s no one here to talk to.”;
now the interlocutor of the actor is nothing;
rule succeeds;
if np is not 1:
now the interlocutor of the actor is the audience;
if the actor is the player, say “(addressing [the audience])”;
rule succeeds;
now the interlocutor of the actor is a random person who is among the audience;
if the actor is the player, say “(addressing [the interlocutor of the actor])”;
[/code]

Unfortunately, it doesn’t always work:

[code]Include Speech Motivations by Mike Ciul

Test is a room. Bob is a man in Test. Sue is a woman in Test.

test me with “actions/t Bob/ T foo”[/code]

If you run this, you’ll see that telling the audience about Bob is no problem, but telling the audience about an unparseable thing results in the error “Those aren’t available.” - apparently referring to the audience. I think I traced this message back to the basic accessibility rule, and digging around in the I6 source, it calls a rulebook called ACCESS_RB. But I don’t know what that is. I’d like to be able to manage this using the Flexible Action Requirement extension I’m working on, but maybe I’m on the wrong track.

I suppose I could put the audience in a room (call it the Auditorium) and then use a rule for reaching inside the auditorium. Or move the audience to the location whenever it’s the interlocutor. But both of those seem pretty hacky. Can anyone help?

Hm. I’m not sure what the library is doing here. There are two ObjectIsUntouchable routines defined (for 6G60), and the one that runs ACCESS_RB (in WorldModel.i6) is the one that doesn’t get used. (The one that does, in Light.i6, runs ACCESSIBILITY_RB.)

That’s in a one-room game, so you must be doing something else.

I missed that there were two. So the basic accessibility rule runs the accessibility rulebook, no weirdness. For some reason I thought the basic accessibility rule was IN the accessibility rulebook, which would be recursive. But it’s not, it’s an action processing rule.

So I think this is all I need:

Accessibility rule when the audience is expected to respond: rule succeeds.

A recent thread about accessibility rules made me think that a successful accessibility rule would stop the action. But I guess I misunderstood.