DefineSystemAction(Instructions) // original source text
InstructionsAction : SystemAction // after macro expansion
We'll include information on the TALK TO command if there are any in-conversation state objects in the game; if not, we'll assume there's no need for this command.
We'll mention the TOPICS command if there are any SuggestedTopic instances in the game; if not, then the game will never have anything to suggest, so the TOPICS command isn't needed.
We'll include information on special topics if there are any SpecialTopic objects defined.
Level 0 is "kind," which means that the player character can never be killed, and it's impossible to make the game unwinnable. When this setting is used, the instructions will reassure the player that saving is necessary only to suspend the session.
Level 1 is "standard," which means that the player character can be killed, and/or that unwinnable positions are possible, but that there are no especially bad unwinnable situations. When this setting is selected, we'll warn the player that they should save every so often.
(An "especially bad" situation is one in which the game becomes unwinnable at some point, but this won't become apparent to the player until much later. For example, suppose the first scene takes place in a location that can never be reached again after the first scene, and suppose that there's some object you can obtain in this scene. This object will be required in the very last scene to win the game; if you don't have the object, you can't win. This is an "especially bad" unwinnable situation: if you leave the first scene without getting the necessary object, the game is unwinnable from that point forward. In order to win, you have to go back and play almost the whole game over again. Saved positions are almost useless in a case like this, since most of the saved positions will be after the fatal mistake; no matter how often you saved, you'll still have to go back and do everything over again from near the beginning.)
Level 2 is "cruel," which means that the game can become unwinnable in especially bad ways, as described above. If this level is selected, we'll warn the player more sternly to save frequently.
We set this to 1 ("standard") by default, because even games that aren't intentionally designed to be cruel often have subtle situations where the game becomes unwinnable, because of things like the irreversible loss of an object, or an unrepeatable event sequence; it almost always takes extra design work to ensure that a game is always winnable.
customVerbs = ['brush my teeth', 'pick the lock']
Set this to nil if the game doesn't allow truncation at all.