Inform 6 had a fake verb #LetGo
that was generated whenever a container or supporter had one of its objects removed, allowing appropriate before
and after
rules to be declared and fired accordingly. There are several places in a game I’m writing where I want a rule to fire under the same circumstances; what’s the I7 equivalent of it?
Is there anything wrong with writing rules like these? Btw I tried these in a demo project so I know they work. The biscuit tin is a container in the room.
Before taking vovo when vovo is in biscuit tin:[applies to specific biscuit called vovo]
instead say "LEAVE THE VOVO ALONE!";
Before taking noun when noun is in biscuit tin:[applies to anything in the biscuit tin]
say "DON'T TAKE ANYTHING FROM THE BISCUIT TIN!";
PS Edit - You can also get more general, like ‘Before taking noun when noun is on a supporter:’
-Wade
I6 had the verbs EMPTY, REMOVE, and TRANSFER, which could yoink an item from a container without invoking the Take action. The LetGo fake-action was intended to cover all these cases.
In I7, EMPTY and TRANSFER are gone, and REMOVE works by way of the Take action. So LetGo is no longer needed and you can do what severedhand suggested.
Nope, that’s perfectly fine as long as #Take
does in fact hit all the potential cases in which something can leave a container. (I’m not thrilled with it because of the possibility of adding more actions that move objects around in the world state, but it’s not like fake verbs are an amazing solution either.)