Another thing you could do is make a table of the actions that you expect the player to do–though I hit a bug that made this very annoying, or maybe I messed up.
The basic idea is that you have a table that stores the action or actions that the boss wants you to do, as well as some text to print before and after those actions. The game cues up the actions one at a time, erasing the table as it goes; every time you do the right thing it goes on to the next one, and when the table is empty it finishes the scene.
The complication is that sometimes you need more than one action to be acceptable–in particular, when you stand up off the chair, you execute both the action of exiting and the action of getting off the chair, so you want those both to pass. And the bug is that you can’t actually make a preset list of stored actions by writing {exiting, getting off the chair}, so I had to kludge. (I reported the bug.)
Here’s what I got:
[code]Briefing Room is a room. The boss is a man in Briefing Room. The description of the boss is “Like a boss.” Sarah is a woman in Briefing Room. The description of Sarah is “Sarah looks somewhat uncomfortable.” A chair is an enterable supporter in the Briefing Room. The player is on the chair.
Meeting is a scene. Meeting begins when play begins. Meeting ends when time for the boss to leave is true.
When meeting ends:
say “The boss nods and leaves the room.”;
now the boss is nowhere.
The boss can be pleased or annoyed. The boss is pleased.
Every turn when the boss is annoyed: say “The boss [one of]looks at you disapprovingly[or]glares again[or]sighs and taps his watch[or]coughs unsubtly[cycling].”
The actions boss expects is a list of stored actions that varies.
When play begins:
add the action of looking to the actions boss expects. [This cues up the initial looking action, which prints the room description, as an action boss expects, so it doesn’t get blocked by the don’t do the wrong thing rule. We have to cue it up in this roundabout way because we can’t declare the actions boss expects to be {looking} initially because of the bug.]
The reward text is some text that varies.
Time for the boss to leave is a truth state that varies. Time for the boss to leave is initially false.
Every turn when the boss is pleased during Meeting (this is the move on to the next task rule):
if the Table of Boss Expectations is empty: [we’ve done all we need]
now time for the boss to leave is true;
otherwise:
repeat through the Table of Boss Expectations:
add the expected action entry to the actions boss expects;
if there is an introduction entry: [if there isn’t one, then what we have is one of those mostly blank rows that’s being used to build a list of actions for the actions boss expects, so we add it and go on to the next row]
say the introduction entry;
now the reward text is the encouragement entry;
blank out the whole row;
break;
otherwise:
blank out the whole row.
Before doing something when the current action is not listed in the actions boss expects during meeting (this is the don’t do the wrong thing rule):
now the boss is annoyed;
say “Catching a nasty glare from the boss, you decide not to do that.”;
stop the action.
Every turn when the current action is listed in the actions boss expects during meeting (this is the reward correct action rule):
now the boss is pleased;
now the actions boss expects is {};
say the reward text.
The reward correct action rule is listed before the move on to the next task rule in the Every Turn rulebook. [So we print the reward text at the end of the turn and then cue up the next action.]
After looking for the first time: follow the move on to the next task rule. [This cues up the first task after the initial room description is printed, without waiting for a turn.]
Table of Boss Expectations
introduction expected action encouragement
“The boss says, ‘Fred is our new team member. Fred, why don’t you wave?’” waving hands “The boss says, ‘There, that wasn’t so bad.’”
“The boss says, ‘Now let’s our team members familiarize themselves with each other. Sarah, have a look at Fred. Fred, look at Sarah.’” examining Sarah “‘OK, now you know who each other are.’”
– getting off the chair – [This mostly blank row allows us to have both getting off the chair and exiting as acceptable actions for the last step. If I could just put a list of actions in the table, we wouldn’t have to do this.]
“‘Fred, how about you stand up?’” exiting “‘OK then. Seems like you know how to control yourself.’”[/code]
One nice thing is that this can be adapted pretty smoothly to allow multiple such sequences. You can set up a table variable with something like “The instruction table is a table name that varies.” Then you can rewrite all the rules for boss expectations to refer to that variable, and you can trigger a different table whenever you need to. (This will probably take some work to implement.)
Another nice thing is that it’s easy to add to the sequence–just add rows to the table.
I did something like this for the tutorial in one of my games, though there are enough weirdnesses in that that I wouldn’t try to copy it directly–for one thing, it’s entirely about NPC actions.