You can just write a “For reading a command” rule that feeds “get all” into the player’s command when a flag is set (and then unsets the flag, or there will be weeping and lamentations). Then when you want to issue the “get all,” set the flag.
[code]Lab is a room. “You can see a boompdoggle in the room description.” A rock, a cruller, a cronut, a donut, and a bownut are in Lab. A boompdoggle is scenery in Lab.
Forcing getting all is a truth state that varies.
To force getting all:
now forcing getting all is true.
For reading a command when forcing getting all is true:
change the text of the player’s command to “get all”;
now forcing getting all is false.
After jumping:
say “For some reason you are mechanically compelled to pick everything up.”;
force getting all.[/code]
And if you want to store this in a table of stored actions, just create a dummy action without any Understand statement that invokes it, and put that in the table:
[code]Lab is a room. “You can see a boompdoggle in the room description.” A rock, a cruller, a cronut, a donut, and a bownut are in Lab. A boompdoggle is scenery in Lab.
Forcing getting all is a truth state that varies.
To force getting all:
now forcing getting all is true.
For reading a command when forcing getting all is true:
change the text of the player’s command to “get all”;
now forcing getting all is false.
Mechanically picking up everything in sight is an action applying to nothing.
Carry out mechanically picking up everything in sight: Force getting all.
Table of compulsions
compulsion
taking inventory
taking the cronut
eating the cronut
dropping the cronut
mechanically picking up everything in sight
Every turn:
repeat through the table of compulsions:[in combination with the “break” command, this just gets the first row]
if there is a compulsion entry:
say “For some reason you cannot avoid [compulsion entry].”;
try the compulsion entry;
blank out the whole row;
break.[/code]
(Is there a more elegant way to just pick the first nonempty row of the table?)
Also with a bit of tinkering you should be able to make this apply to any text you want (so you could feed in “drop all” or “get the donut and the cronut”).