mirror of
https://github.com/ganelson/inform.git
synced 2024-07-16 22:14:23 +03:00
4081 lines
219 KiB
HTML
4081 lines
219 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>S/act</title>
|
|
<meta name="viewport" content="width=device-width initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta http-equiv="Content-Language" content="en-gb">
|
|
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
</head>
|
|
<body>
|
|
<nav role="navigation">
|
|
<h1><a href="../webs.html">Sources</a></h1>
|
|
<ul>
|
|
<li><a href="../compiler.html">compiler</a></li>
|
|
<li><a href="../other.html">other tools</a></li>
|
|
<li><a href="../extensions.html"><b>extensions and kits</b></a></li>
|
|
<li><a href="../units.html">unit test tools</a></li>
|
|
/ul>
|
|
<h2>Extensions</h2>
|
|
<ul>
|
|
<li><a href="../basic_inform/index.html">Basic Inform</a></li>
|
|
<li><a href="../standard_rules/index.html">Standard Rules</a></li>
|
|
</ul>
|
|
<h2>Kits</h2>
|
|
<ul>
|
|
<li><a href="../BasicInformKit/index.html">BasicInformKit</a></li>
|
|
<li><a href="../BasicInformExtrasKit/index.html">BasicInformExtrasKit</a></li>
|
|
<li><a href="../CommandParserKit/index.html">CommandParserKit</a></li>
|
|
<li><a href="../EnglishLanguageKit/index.html">EnglishLanguageKit</a></li>
|
|
<li><a href="../WorldModelKit/index.html">WorldModelKit</a></li>
|
|
</ul>
|
|
|
|
|
|
</nav>
|
|
<main role="main">
|
|
|
|
<!--Weave of 'S/act2' generated by 7-->
|
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../extensions.html">Extensions</a></li><li><a href="index.html">srules</a></li><li><b>Actions</b></li></ul><p class="purpose">The standard stock of actions, along with the rules which define them; and the command grammar which requests them.</p>
|
|
|
|
<ul class="toc"><li><a href="#SP2">§2. Taking inventory</a></li><li><a href="#SP6">§6. Taking</a></li><li><a href="#SP10">§10. Removing it from</a></li><li><a href="#SP12">§12. Dropping</a></li><li><a href="#SP16">§16. Putting it on</a></li><li><a href="#SP20">§20. Inserting it into</a></li><li><a href="#SP24">§24. Eating</a></li><li><a href="#SP28">§28. Going</a></li><li><a href="#SP32">§32. Entering</a></li><li><a href="#SP36">§36. Exiting</a></li><li><a href="#SP40">§40. Getting off</a></li><li><a href="#SP44">§44. Looking</a></li><li><a href="#SP47">§47. Examining</a></li><li><a href="#SP50">§50. Looking under</a></li><li><a href="#SP53">§53. Searching</a></li><li><a href="#SP56">§56. Consulting it about</a></li><li><a href="#SP58">§58. Locking it with</a></li><li><a href="#SP62">§62. Unlocking it with</a></li><li><a href="#SP66">§66. Switching on</a></li><li><a href="#SP70">§70. Switching off</a></li><li><a href="#SP74">§74. Opening</a></li><li><a href="#SP78">§78. Closing</a></li><li><a href="#SP82">§82. Wearing</a></li><li><a href="#SP86">§86. Taking off</a></li><li><a href="#SP90">§90. Giving it to</a></li><li><a href="#SP94">§94. Showing it to</a></li><li><a href="#SP96">§96. Waking</a></li><li><a href="#SP98">§98. Throwing it at</a></li><li><a href="#SP100">§100. Attacking</a></li><li><a href="#SP102">§102. Kissing</a></li><li><a href="#SP104">§104. Answering it that</a></li><li><a href="#SP106">§106. Telling it about</a></li><li><a href="#SP109">§109. Asking it about</a></li><li><a href="#SP111">§111. Asking it for</a></li><li><a href="#SP113">§113. Waiting</a></li><li><a href="#SP115">§115. Touching</a></li><li><a href="#SP117">§117. Waving</a></li><li><a href="#SP120">§120. Pulling</a></li><li><a href="#SP123">§123. Pushing</a></li><li><a href="#SP126">§126. Turning</a></li><li><a href="#SP129">§129. Pushing it to</a></li><li><a href="#SP131">§131. Squeezing</a></li><li><a href="#SP134">§134. Saying yes</a></li><li><a href="#SP138">§138. Burning</a></li><li><a href="#SP140">§140. Waking up</a></li><li><a href="#SP142">§142. Thinking</a></li><li><a href="#SP144">§144. Smelling</a></li><li><a href="#SP146">§146. Listening to</a></li><li><a href="#SP148">§148. Tasting</a></li><li><a href="#SP150">§150. Cutting</a></li><li><a href="#SP152">§152. Jumping</a></li><li><a href="#SP154">§154. Tying it to</a></li><li><a href="#SP156">§156. Drinking</a></li><li><a href="#SP158">§158. Saying sorry</a></li><li><a href="#SP160">§160. Swinging</a></li><li><a href="#SP162">§162. Rubbing</a></li><li><a href="#SP165">§165. Setting it to</a></li><li><a href="#SP167">§167. Waving hands</a></li><li><a href="#SP169">§169. Buying</a></li><li><a href="#SP171">§171. Climbing</a></li><li><a href="#SP173">§173. Sleeping</a></li><li><a href="#SP175">§175. Out of world actions</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>Inform comes with no actions built in, and Basic Inform defines none either.
|
|
The compiler makes only one (perhaps unexpected) assumption: that the 8th
|
|
action defined is "going".
|
|
</p>
|
|
|
|
<p class="inwebparagraph">The order, and the subheadings, here are responsible for the order
|
|
and subheadings used in the Actions page of the Index.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
|
|
<span class="plain">Part Five - Actions</span>
|
|
|
|
<span class="plain">Section 1 - Verbs needed for adaptive text</span>
|
|
|
|
<span class="plain">To achieve is a verb. To appreciate is a verb. To arrive is a verb. To care is a verb.</span>
|
|
<span class="plain">To close is a verb. To die is a verb. To discover is a verb. To drop is a verb.</span>
|
|
<span class="plain">To eat is a verb. To feel is a verb. To find is a verb. To get is a verb.</span>
|
|
<span class="plain">To give is a verb. To go is a verb. To happen is a verb. To hear is a verb.</span>
|
|
<span class="plain">To jump is a verb. To lack is a verb. To lead is a verb. To like is a verb.</span>
|
|
<span class="plain">To listen is a verb. To lock is a verb. To look is a verb. To need is a verb.</span>
|
|
<span class="plain">To open is a verb. To pass is a verb. To pick is a verb. To provoke is a verb.</span>
|
|
<span class="plain">To pull is a verb. To push is a verb. To put is a verb. To rub is a verb.</span>
|
|
<span class="plain">To say is a verb. To search is a verb. To see is a verb. To seem is a verb.</span>
|
|
<span class="plain">To set is a verb. To smell is a verb. To sniff is a verb. To squeeze is a verb.</span>
|
|
<span class="plain">To switch is a verb. To take is a verb. To talk is a verb. To taste is a verb.</span>
|
|
<span class="plain">To touch is a verb. To turn is a verb. To wait is a verb. To wave is a verb.</span>
|
|
<span class="plain">To win is a verb.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Taking inventory. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 2 - Standard actions concerning the actor's possessions</span>
|
|
|
|
<span class="plain">Taking inventory is an action applying to nothing.</span>
|
|
<span class="plain">The taking inventory action translates into I6 as "Inv".</span>
|
|
|
|
<span class="plain">The specification of the taking inventory action is "Taking an inventory of</span>
|
|
<span class="plain">one's immediate possessions: the things being carried, either directly or in</span>
|
|
<span class="plain">any containers being carried. When the player performs this action, either</span>
|
|
<span class="plain">the inventory listing, or else a special message if nothing is being carried</span>
|
|
<span class="plain">or worn, is printed during the carry out rules: nothing happens at the report</span>
|
|
<span class="plain">stage. The opposite happens for other people performing the action: nothing</span>
|
|
<span class="plain">happens during carry out, but a report such as 'Mr X looks through his</span>
|
|
<span class="plain">possessions.' is produced (provided Mr X is visible)."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>There used to be a rule, documented here, to do with pronouns, and
|
|
this was explained in terms of Missee Lee, a black and white cat
|
|
living in North Oxford; named for a Cambridge-educated pirate queen in
|
|
the South China seas who is the heroine — or villainess — of the
|
|
tenth in Arthur Ransome's Swallows and Amazons series of children's
|
|
books, "Missee Lee" (1941). The rule was then removed, but it
|
|
seemed sad to delete the only mention of Missee, and all the more so
|
|
since she died (at a grand old age and in mid-spring) in 2008.
|
|
</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out taking inventory (this is the print empty inventory rule):</span>
|
|
<span class="plain">if the first thing held by the player is nothing,</span>
|
|
<span class="plain">say "[We] [are] carrying nothing." (A) instead.</span>
|
|
|
|
<span class="plain">Carry out taking inventory (this is the print standard inventory rule):</span>
|
|
<span class="plain">say "[We] [are] carrying:[line break]" (A);</span>
|
|
<span class="plain">list the contents of the player, with newlines, indented, including contents,</span>
|
|
<span class="plain">giving inventory information, with extra indentation.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor taking inventory (this is the report other people taking</span>
|
|
<span class="plain">inventory rule):</span>
|
|
<span class="plain">if the actor is not the player and the action is not silent:</span>
|
|
<span class="plain">say "[The actor] [look] through [their] possessions." (A);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Taking. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Taking is an action applying to one thing.</span>
|
|
<span class="plain">The taking action translates into I6 as "Take".</span>
|
|
|
|
<span class="plain">The specification of the taking action is "The taking action is the only way</span>
|
|
<span class="plain">an action in the Standard Rules can cause something to be carried by an actor.</span>
|
|
<span class="plain">It is very simple in operation (the entire carry out stage consists only of</span>
|
|
<span class="plain">'now the actor carries the noun') but many checks must be performed before it</span>
|
|
<span class="plain">can be allowed to happen."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor taking (this is the can't take yourself rule):</span>
|
|
<span class="plain">if the actor is the noun:</span>
|
|
<span class="plain">if the actor is the player, say "[We] [are] always self-possessed." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take other people rule):</span>
|
|
<span class="plain">if the noun is a person:</span>
|
|
<span class="plain">if the actor is the player, say "I don't suppose [the noun] [would care] for that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take component parts rule):</span>
|
|
<span class="plain">if the noun is part of something (called the whole):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][Those] [seem] to be a part of [the whole]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take people's possessions rule):</span>
|
|
<span class="plain">let the local ceiling be the common ancestor of the actor with the noun;</span>
|
|
<span class="plain">let the owner be the not-counting-parts holder of the noun;</span>
|
|
<span class="plain">while the owner is not nothing and the owner is not the local ceiling:</span>
|
|
<span class="plain">if the owner is a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][Those] [seem] to belong to [the owner]." (A);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">let the owner be the not-counting-parts holder of the owner;</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take items out of play rule):</span>
|
|
<span class="plain">let H be the noun;</span>
|
|
<span class="plain">while H is not nothing and H is not a room:</span>
|
|
<span class="plain">let H be the not-counting-parts holder of H;</span>
|
|
<span class="plain">if H is nothing:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][Those] [aren't] available." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take what you're inside rule):</span>
|
|
<span class="plain">let the local ceiling be the common ancestor of the actor with the noun;</span>
|
|
<span class="plain">if the local ceiling is the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [would have] to get</span>
|
|
<span class="plain">[if noun is a supporter]off[otherwise]out of[end if] [the noun] first." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take what's already taken rule):</span>
|
|
<span class="plain">if the actor is carrying the noun or the actor is wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] already [have] [regarding the noun][those]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take scenery rule):</span>
|
|
<span class="plain">if the noun is scenery:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] hardly portable." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can only take things rule):</span>
|
|
<span class="plain">if the noun is not a thing:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [cannot] carry [the noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't take what's fixed in place rule):</span>
|
|
<span class="plain">if the noun is fixed in place:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] fixed in place." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the use player's holdall to avoid exceeding</span>
|
|
<span class="plain">carrying capacity rule):</span>
|
|
<span class="plain">if the number of things carried by the actor is at least the</span>
|
|
<span class="plain">carrying capacity of the actor:</span>
|
|
<span class="plain">if the actor is holding a player's holdall (called the current working sack):</span>
|
|
<span class="plain">let the transferred item be nothing;</span>
|
|
<span class="plain">repeat with the possible item running through things carried by</span>
|
|
<span class="plain">the actor:</span>
|
|
<span class="plain">if the possible item is not lit and the possible item is not</span>
|
|
<span class="plain">the current working sack, let the transferred item be the possible item;</span>
|
|
<span class="plain">if the transferred item is not nothing:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(putting [the transferred item] into [the current working sack]</span>
|
|
<span class="plain">to make room)[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor trying inserting the transferred item</span>
|
|
<span class="plain">into the current working sack;</span>
|
|
<span class="plain">if the transferred item is not in the current working sack:</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking (this is the can't exceed carrying capacity rule):</span>
|
|
<span class="plain">if the number of things carried by the actor is at least the</span>
|
|
<span class="plain">carrying capacity of the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We]['re] carrying too many things already." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor taking (this is the standard taking rule):</span>
|
|
<span class="plain">now the actor carries the noun;</span>
|
|
<span class="plain">if the actor is the player, now the noun is handled.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor taking (this is the standard report taking rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Taken." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [pick] up [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP10"></a><b>§10. Removing it from. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Removing it from is an action applying to two things.</span>
|
|
<span class="plain">The removing it from action translates into I6 as "Remove".</span>
|
|
|
|
<span class="plain">The specification of the removing it from action is "Removing is not really</span>
|
|
<span class="plain">an action in its own right. Whereas there are many ways to put something down</span>
|
|
<span class="plain">(on the floor, on top of something, inside something else, giving it to</span>
|
|
<span class="plain">somebody else, and so on), Inform has only one way to take something: the</span>
|
|
<span class="plain">taking action. Removing exists only to provide some nicely worded replies</span>
|
|
<span class="plain">to impossible requests, and in all sensible cases is converted into taking.</span>
|
|
<span class="plain">Because of this, it's usually a bad idea to write rules about removing:</span>
|
|
<span class="plain">if you write a rule such as 'Instead of removing the key, ...' then it</span>
|
|
<span class="plain">won't apply if the player simply types TAKE KEY instead. The safe way to</span>
|
|
<span class="plain">do this is to write a rule about taking, which covers all possibilities."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP11"></a><b>§11. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor removing something from (this is the can't remove what's not inside rule):</span>
|
|
<span class="plain">if the holder of the noun is not the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "But [regarding the noun][they] [aren't] there now." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor removing something from (this is the can't remove from people rule):</span>
|
|
<span class="plain">let the owner be the holder of the noun;</span>
|
|
<span class="plain">if the owner is a person:</span>
|
|
<span class="plain">if the owner is the actor, convert to the taking off action on the noun;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][Those] [seem] to belong to [the owner]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor removing something from (this is the convert remove to take rule):</span>
|
|
<span class="plain">convert to the taking action on the noun.</span>
|
|
|
|
<span class="plain">The can't take component parts rule is listed before the can't remove what's not</span>
|
|
<span class="plain">inside rule in the check removing it from rules.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP12"></a><b>§12. Dropping. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Dropping is an action applying to one thing.</span>
|
|
<span class="plain">The dropping action translates into I6 as "Drop".</span>
|
|
|
|
<span class="plain">The specification of the dropping action is "Dropping is one of five actions</span>
|
|
<span class="plain">by which an actor can get rid of something carried: the others are inserting</span>
|
|
<span class="plain">(into a container), putting (onto a supporter), giving (to someone else) and</span>
|
|
<span class="plain">eating. Dropping means dropping onto the actor's current floor, which is</span>
|
|
<span class="plain">usually the floor of a room - but might be the inside of a box if the actor</span>
|
|
<span class="plain">is also inside that box, and so on.</span>
|
|
|
|
<span class="plain">The can't drop clothes being worn rule silently tries the taking off action</span>
|
|
<span class="plain">on any clothing being dropped: unlisting this rule removes both this behaviour</span>
|
|
<span class="plain">and also the requirement that clothes cannot simply be dropped."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor dropping (this is the can't drop yourself rule):</span>
|
|
<span class="plain">if the noun is the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [lack] the dexterity." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor dropping something which is part of the actor (this is the</span>
|
|
<span class="plain">can't drop body parts rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't drop] part of [ourselves]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor dropping (this is the can't drop what's already dropped rule):</span>
|
|
<span class="plain">if the noun is in the holder of the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [are] already here." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor dropping (this is the can't drop what's not held rule):</span>
|
|
<span class="plain">if the actor is carrying the noun, continue the action;</span>
|
|
<span class="plain">if the actor is wearing the noun, continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [haven't] got [regarding the noun][those]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor dropping (this is the can't drop clothes being worn rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(first taking [the noun] off)[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor trying taking off the noun;</span>
|
|
<span class="plain">if the actor is wearing the noun, stop the action;</span>
|
|
|
|
<span class="plain">Check an actor dropping (this is the can't drop if this exceeds carrying</span>
|
|
<span class="plain">capacity rule):</span>
|
|
<span class="plain">let the receptacle be the holder of the actor;</span>
|
|
<span class="plain">if the receptacle is a room, continue the action; [room floors have infinite capacity]</span>
|
|
<span class="plain">if the receptacle provides the property carrying capacity:</span>
|
|
<span class="plain">if the receptacle is a supporter:</span>
|
|
<span class="plain">if the number of things on the receptacle is at least the carrying</span>
|
|
<span class="plain">capacity of the receptacle:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no more room on [the receptacle]." (A);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">otherwise if the receptacle is a container:</span>
|
|
<span class="plain">if the number of things in the receptacle is at least the carrying</span>
|
|
<span class="plain">capacity of the receptacle:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no more room in [the receptacle]." (B);</span>
|
|
<span class="plain">stop the action;</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP14"></a><b>§14. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor dropping (this is the standard dropping rule):</span>
|
|
<span class="plain">now the noun is in the holder of the actor.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor dropping (this is the standard report dropping rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Dropped." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [put] down [the noun]." (B);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP16"></a><b>§16. Putting it on. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Putting it on is an action applying to two things.</span>
|
|
<span class="plain">The putting it on action translates into I6 as "PutOn".</span>
|
|
|
|
<span class="plain">The specification of the putting it on action is "By this action, an actor puts</span>
|
|
<span class="plain">something he is holding on top of a supporter: for instance, putting an apple</span>
|
|
<span class="plain">on a table."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP17"></a><b>§17. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor putting something on (this is the convert put to drop where possible rule):</span>
|
|
<span class="plain">if the second noun is down or the actor is on the second noun,</span>
|
|
<span class="plain">convert to the dropping action on the noun.</span>
|
|
|
|
<span class="plain">Check an actor putting something on (this is the can't put what's not held rule):</span>
|
|
<span class="plain">if the actor is carrying the noun, continue the action;</span>
|
|
<span class="plain">if the actor is wearing the noun, continue the action;</span>
|
|
<span class="plain">carry out the implicitly taking activity with the noun;</span>
|
|
<span class="plain">if the actor is carrying the noun, continue the action;</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor putting something on (this is the can't put something on itself rule):</span>
|
|
<span class="plain">let the noun-CPC be the component parts core of the noun;</span>
|
|
<span class="plain">let the second-CPC be the component parts core of the second noun;</span>
|
|
<span class="plain">let the transfer ceiling be the common ancestor of the noun-CPC with the second-CPC;</span>
|
|
<span class="plain">if the transfer ceiling is the noun-CPC:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't put] something on top of itself." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor putting something on (this is the can't put onto what's not a supporter rule):</span>
|
|
<span class="plain">if the second noun is not a supporter:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Putting things on [the second noun] [would achieve] nothing." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor putting something on (this is the can't put clothes being worn rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(first taking [regarding the noun][them] off)[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor trying taking off the noun;</span>
|
|
<span class="plain">if the actor is wearing the noun, stop the action.</span>
|
|
|
|
<span class="plain">Check an actor putting something on (this is the can't put if this exceeds</span>
|
|
<span class="plain">carrying capacity rule):</span>
|
|
<span class="plain">if the second noun provides the property carrying capacity:</span>
|
|
<span class="plain">if the number of things on the second noun is at least the carrying capacity</span>
|
|
<span class="plain">of the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[There] [are] no more room on [the second noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP18"></a><b>§18. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor putting something on (this is the standard putting rule):</span>
|
|
<span class="plain">now the noun is on the second noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor putting something on (this is the concise report putting rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player and the I6 parser is running multiple actions:</span>
|
|
<span class="plain">say "Done." (A);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor putting something on (this is the standard report putting rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[The actor] [put] [the noun] on [the second noun]." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP20"></a><b>§20. Inserting it into. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Inserting it into is an action applying to two things.</span>
|
|
<span class="plain">The inserting it into action translates into I6 as "Insert".</span>
|
|
|
|
<span class="plain">The specification of the inserting it into action is "By this action, an actor puts</span>
|
|
<span class="plain">something he is holding into a container: for instance, putting a coin into a</span>
|
|
<span class="plain">collection box."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP21"></a><b>§21. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor inserting something into (this is the convert insert to drop where</span>
|
|
<span class="plain">possible rule):</span>
|
|
<span class="plain">if the second noun is down or the actor is in the second noun,</span>
|
|
<span class="plain">convert to the dropping action on the noun.</span>
|
|
|
|
<span class="plain">Check an actor inserting something into (this is the can't insert what's not held rule):</span>
|
|
<span class="plain">if the actor is carrying the noun, continue the action;</span>
|
|
<span class="plain">if the actor is wearing the noun, continue the action;</span>
|
|
<span class="plain">carry out the implicitly taking activity with the noun;</span>
|
|
<span class="plain">if the actor is carrying the noun, continue the action;</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor inserting something into (this is the can't insert something into itself rule):</span>
|
|
<span class="plain">let the noun-CPC be the component parts core of the noun;</span>
|
|
<span class="plain">let the second-CPC be the component parts core of the second noun;</span>
|
|
<span class="plain">let the transfer ceiling be the common ancestor of the noun-CPC with the second-CPC;</span>
|
|
<span class="plain">if the transfer ceiling is the noun-CPC:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't put] something inside itself." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor inserting something into (this is the can't insert into closed containers rule):</span>
|
|
<span class="plain">if the second noun is a closed container:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The second noun] [are] closed." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor inserting something into (this is the can't insert into what's not a</span>
|
|
<span class="plain">container rule):</span>
|
|
<span class="plain">if the second noun is not a container:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the second noun][Those] [can't contain] things." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor inserting something into (this is the can't insert clothes being worn rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(first taking [regarding the noun][them] off)[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor trying taking off the noun;</span>
|
|
<span class="plain">if the actor is wearing the noun, stop the action;</span>
|
|
|
|
<span class="plain">Check an actor inserting something into (this is the can't insert if this exceeds</span>
|
|
<span class="plain">carrying capacity rule):</span>
|
|
<span class="plain">if the second noun provides the property carrying capacity:</span>
|
|
<span class="plain">if the number of things in the second noun is at least the carrying capacity</span>
|
|
<span class="plain">of the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no more room in [the second noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP22"></a><b>§22. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor inserting something into (this is the standard inserting rule):</span>
|
|
<span class="plain">now the noun is in the second noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP23"></a><b>§23. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor inserting something into (this is the concise report inserting rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player and the I6 parser is running multiple actions:</span>
|
|
<span class="plain">say "Done." (A);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor inserting something into (this is the standard report inserting rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[The actor] [put] [the noun] into [the second noun]." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP24"></a><b>§24. Eating. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Eating is an action applying to one thing.</span>
|
|
<span class="plain">The eating action translates into I6 as "Eat".</span>
|
|
|
|
<span class="plain">The specification of the eating action is "Eating is the only one of the</span>
|
|
<span class="plain">built-in actions which can, in effect, destroy something: the carry out</span>
|
|
<span class="plain">rule removes what's being eaten from play, and nothing in the Standard</span>
|
|
<span class="plain">Rules can then get at it again.</span>
|
|
|
|
<span class="plain">Note that, uncontroversially, one can only eat things with the 'edible'</span>
|
|
<span class="plain">either/or property. Until 2011, the action also required that the foodstuff</span>
|
|
<span class="plain">had to be carried by the eater, which meant that a player standing next</span>
|
|
<span class="plain">to a bush with berries who typed EAT BERRIES would force a '(first taking</span>
|
|
<span class="plain">the berries)' action. This is no longer true. Taking is now only forced if</span>
|
|
<span class="plain">the foodstuff is portable."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP25"></a><b>§25. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor eating (this is the can't eat unless edible rule):</span>
|
|
<span class="plain">if the noun is not a thing or the noun is not edible:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] plainly inedible." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor eating (this is the can't eat clothing without removing it first rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(first taking [the noun] off)[command clarification break]" (A);</span>
|
|
<span class="plain">try the actor trying taking off the noun;</span>
|
|
<span class="plain">if the actor is wearing the noun, stop the action.</span>
|
|
|
|
<span class="plain">Check an actor eating (this is the can't eat other people's food rule):</span>
|
|
<span class="plain">if the noun is enclosed by a person (called the owner) who is not the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The owner] [might not appreciate] that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor eating (this is the can't eat portable food without carrying it rule):</span>
|
|
<span class="plain">if the noun is portable and the actor is not carrying the noun:</span>
|
|
<span class="plain">carry out the implicitly taking activity with the noun;</span>
|
|
<span class="plain">if the actor is not carrying the noun, stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP26"></a><b>§26. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor eating (this is the standard eating rule):</span>
|
|
<span class="plain">now the noun is nowhere.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP27"></a><b>§27. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor eating (this is the standard report eating rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [eat] [the noun]. Not bad." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [eat] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP28"></a><b>§28. Going. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 3 - Standard actions which move the actor</span>
|
|
|
|
<span class="plain">Going is an action applying to one visible thing.</span>
|
|
<span class="plain">The going action translates into I6 as "Go".</span>
|
|
|
|
<span class="plain">The specification of the going action is "This is the action which allows people</span>
|
|
<span class="plain">to move from one room to another, using whatever map connections and doors are</span>
|
|
<span class="plain">to hand. The Standard Rules are written so that the noun can be either a</span>
|
|
<span class="plain">direction or a door in the location of the actor: while the player's commands</span>
|
|
<span class="plain">only lead to going actions with directions as nouns, going actions can also</span>
|
|
<span class="plain">happen as a result of entering actions, and then the noun can indeed be</span>
|
|
<span class="plain">a door."</span>
|
|
|
|
<span class="plain">The going action has a room called the room gone from (matched as "from").</span>
|
|
<span class="plain">The going action has an object called the room gone to (matched as "to").</span>
|
|
<span class="plain">The going action has an object called the door gone through (matched as "through").</span>
|
|
<span class="plain">The going action has an object called the vehicle gone by (matched as "by").</span>
|
|
<span class="plain">The going action has an object called the thing gone with (matched as "with").</span>
|
|
|
|
<span class="plain">Rule for setting action variables for going (this is the standard set going variables rule):</span>
|
|
<span class="plain">now the thing gone with is the item-pushed-between-rooms;</span>
|
|
<span class="plain">now the room gone from is the location of the actor;</span>
|
|
<span class="plain">if the actor is in an enterable vehicle (called the carriage),</span>
|
|
<span class="plain">now the vehicle gone by is the carriage;</span>
|
|
<span class="plain">let the target be nothing;</span>
|
|
<span class="plain">if the noun is a direction:</span>
|
|
<span class="plain">let direction D be the noun;</span>
|
|
<span class="plain">let the target be the room-or-door direction D from the room gone from;</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the noun is a door, let the target be the noun;</span>
|
|
<span class="plain">if the target is a door:</span>
|
|
<span class="plain">now the door gone through is the target;</span>
|
|
<span class="plain">now the target is the other side of the target from the room gone from;</span>
|
|
<span class="plain">now the room gone to is the target.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP29"></a><b>§29. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor going when the actor is on a supporter (called the chaise)</span>
|
|
<span class="plain">(this is the stand up before going rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(first getting off [the chaise])[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor exiting.</span>
|
|
|
|
<span class="plain">Check an actor going (this is the can't travel in what's not a vehicle rule):</span>
|
|
<span class="plain">let nonvehicle be the holder of the actor;</span>
|
|
<span class="plain">if nonvehicle is the room gone from, continue the action;</span>
|
|
<span class="plain">if nonvehicle is the vehicle gone by, continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if nonvehicle is a supporter:</span>
|
|
<span class="plain">say "[We] [would have] to get off [the nonvehicle] first." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[We] [would have] to get out of [the nonvehicle] first." (B);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor going (this is the can't go through undescribed doors rule):</span>
|
|
<span class="plain">if the door gone through is not nothing and the door gone through is undescribed:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't go] that way." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor going (this is the can't go through closed doors rule):</span>
|
|
<span class="plain">if the door gone through is not nothing and the door gone through is closed:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "(first opening [the door gone through])[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor opening the door gone through;</span>
|
|
<span class="plain">if the door gone through is open, continue the action;</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor going (this is the determine map connection rule):</span>
|
|
<span class="plain">let the target be nothing;</span>
|
|
<span class="plain">if the noun is a direction:</span>
|
|
<span class="plain">let direction D be the noun;</span>
|
|
<span class="plain">let the target be the room-or-door direction D from the room gone from;</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the noun is a door, let the target be the noun;</span>
|
|
<span class="plain">if the target is a door:</span>
|
|
<span class="plain">now the target is the other side of the target from the room gone from;</span>
|
|
<span class="plain">now the room gone to is the target.</span>
|
|
|
|
<span class="plain">Check an actor going (this is the can't go that way rule):</span>
|
|
<span class="plain">if the room gone to is nothing:</span>
|
|
<span class="plain">if the door gone through is nothing:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't go] that way." (A);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't], since [the door gone through] [lead] nowhere." (B);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP30"></a><b>§30. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor going (this is the move player and vehicle rule):</span>
|
|
<span class="plain">if the vehicle gone by is nothing,</span>
|
|
<span class="plain">surreptitiously move the actor to the room gone to during going;</span>
|
|
<span class="plain">otherwise</span>
|
|
<span class="plain">surreptitiously move the vehicle gone by to the room gone to during going;</span>
|
|
<span class="plain">if the location is not the location of the player:</span>
|
|
<span class="plain">now the location is the location of the player.</span>
|
|
|
|
<span class="plain">Carry out an actor going (this is the move floating objects rule):</span>
|
|
<span class="plain">if the actor is the player or the player is within the vehicle gone by</span>
|
|
<span class="plain">or the player is within the thing gone with:</span>
|
|
<span class="plain">update backdrop positions.</span>
|
|
|
|
<span class="plain">Carry out an actor going (this is the check light in new location rule):</span>
|
|
<span class="plain">if the actor is the player or the player is within the vehicle gone by</span>
|
|
<span class="plain">or the player is within the thing gone with:</span>
|
|
<span class="plain">surreptitiously reckon darkness.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP31"></a><b>§31. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor going (this is the describe room gone into rule):</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">produce a room description with going spacing conventions;</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the noun is a direction:</span>
|
|
<span class="plain">if the location is the room gone from or the player is within the</span>
|
|
<span class="plain">vehicle gone by or the player is within the thing gone with:</span>
|
|
<span class="plain">if the room gone from is the room gone to:</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the noun is up:</span>
|
|
<span class="plain">say "[The actor] [go] up" (A);</span>
|
|
<span class="plain">otherwise if the noun is down:</span>
|
|
<span class="plain">say "[The actor] [go] down" (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [go] [noun]" (C);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">let the back way be the opposite of the noun;</span>
|
|
<span class="plain">if the location is the room gone to:</span>
|
|
<span class="plain">let the room back the other way be the room back way from the</span>
|
|
<span class="plain">location;</span>
|
|
<span class="plain">let the room normally this way be the room noun from the</span>
|
|
<span class="plain">room gone from;</span>
|
|
<span class="plain">if the room back the other way is the room gone from or</span>
|
|
<span class="plain">the room back the other way is the room normally this way:</span>
|
|
<span class="plain">if the back way is up:</span>
|
|
<span class="plain">say "[The actor] [arrive] from above" (D);</span>
|
|
<span class="plain">otherwise if the back way is down:</span>
|
|
<span class="plain">say "[The actor] [arrive] from below" (E);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [arrive] from [the back way]" (F);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [arrive]" (G);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the back way is up:</span>
|
|
<span class="plain">say "[The actor] [arrive] at [the room gone to] from above" (H);</span>
|
|
<span class="plain">otherwise if the back way is down:</span>
|
|
<span class="plain">say "[The actor] [arrive] at [the room gone to] from below" (I);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [arrive] at [the room gone to] from [the back way]" (J);</span>
|
|
<span class="plain">otherwise if the location is the room gone from:</span>
|
|
<span class="plain">say "[The actor] [go] through [the noun]" (K);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [arrive] from [the noun]" (L);</span>
|
|
<span class="plain">if the vehicle gone by is not nothing:</span>
|
|
<span class="plain">say " ";</span>
|
|
<span class="plain">if the vehicle gone by is a supporter:</span>
|
|
<span class="plain">say "on [the vehicle gone by]" (M);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "in [the vehicle gone by]" (N);</span>
|
|
<span class="plain">if the thing gone with is not nothing:</span>
|
|
<span class="plain">if the player is within the thing gone with:</span>
|
|
<span class="plain">say ", pushing [the thing gone with] in front, and [us] along too" (O);</span>
|
|
<span class="plain">otherwise if the player is within the vehicle gone by:</span>
|
|
<span class="plain">say ", pushing [the thing gone with] in front" (P);</span>
|
|
<span class="plain">otherwise if the location is the room gone from:</span>
|
|
<span class="plain">say ", pushing [the thing gone with] away" (Q);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say ", pushing [the thing gone with] in" (R);</span>
|
|
<span class="plain">if the player is within the vehicle gone by and the player is not</span>
|
|
<span class="plain">within the thing gone with:</span>
|
|
<span class="plain">say ", taking [us] along" (S);</span>
|
|
<span class="plain">say ".";</span>
|
|
<span class="plain">try looking;</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">say ".";</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP32"></a><b>§32. Entering. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Entering is an action applying to one thing.</span>
|
|
<span class="plain">The entering action translates into I6 as "Enter".</span>
|
|
|
|
<span class="plain">The specification of the entering action is "Whereas the going action allows</span>
|
|
<span class="plain">people to move from one location to another in the model world, the entering</span>
|
|
<span class="plain">action is for movement inside a location: for instance, climbing into a cage</span>
|
|
<span class="plain">or sitting on a couch. (Entering is not allowed to change location, so any</span>
|
|
<span class="plain">attempt to enter a door is converted into a going action.) What makes</span>
|
|
<span class="plain">entering trickier than it looks is that the player may try to enter an</span>
|
|
<span class="plain">object which is itself inside, or part of, something else, which might in</span>
|
|
<span class="plain">turn be... and so on. To preserve realism, the implicitly pass through other</span>
|
|
<span class="plain">barriers rule automatically generates entering and exiting actions needed</span>
|
|
<span class="plain">to pass between anything which might be in the way: for instance, in a</span>
|
|
<span class="plain">room with two open cages, an actor in cage A who tries entering cage B first</span>
|
|
<span class="plain">has to perform an exiting action."</span>
|
|
|
|
<span class="plain">Rule for supplying a missing noun while entering (this is the find what to enter</span>
|
|
<span class="plain">rule):</span>
|
|
<span class="plain">if something enterable (called the box) is in the location,</span>
|
|
<span class="plain">now the noun is the box;</span>
|
|
<span class="plain">otherwise continue the activity.</span>
|
|
|
|
<span class="plain">The find what to enter rule is listed last in the for supplying a missing noun</span>
|
|
<span class="plain">rulebook.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP33"></a><b>§33. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor entering (this is the convert enter door into go rule):</span>
|
|
<span class="plain">if the noun is a door, convert to the going action on the noun.</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the convert enter compass direction into go rule):</span>
|
|
<span class="plain">if the noun is a direction, convert to the going action on the noun.</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the can't enter what's already entered rule):</span>
|
|
<span class="plain">if the actor is the noun, make no decision;</span>
|
|
<span class="plain">let the local ceiling be the common ancestor of the actor with the noun;</span>
|
|
<span class="plain">if the local ceiling is the noun:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">if the noun is a supporter:</span>
|
|
<span class="plain">say "But [we]['re] already on [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "But [we]['re] already in [the noun]." (B);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the can't enter what's not enterable rule):</span>
|
|
<span class="plain">if the noun is not enterable:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">if the player's command includes "stand":</span>
|
|
<span class="plain">say "[regarding the noun][They're] not something [we] [can] stand on." (A);</span>
|
|
<span class="plain">otherwise if the player's command includes "sit":</span>
|
|
<span class="plain">say "[regarding the noun][They're] not something [we] [can] sit down on." (B);</span>
|
|
<span class="plain">otherwise if the player's command includes "lie":</span>
|
|
<span class="plain">say "[regarding the noun][They're] not something [we] [can] lie down on." (C);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[regarding the noun][They're] not something [we] [can] enter." (D);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the can't enter closed containers rule):</span>
|
|
<span class="plain">if the noun is a closed container:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "[We] [can't get] into the closed [noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the can't enter if this exceeds carrying</span>
|
|
<span class="plain">capacity rule):</span>
|
|
<span class="plain">if the noun provides the property carrying capacity:</span>
|
|
<span class="plain">if the noun is a supporter:</span>
|
|
<span class="plain">if the number of things on the noun is at least the carrying</span>
|
|
<span class="plain">capacity of the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no more room on [the noun]." (A);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">otherwise if the noun is a container:</span>
|
|
<span class="plain">if the number of things in the noun is at least the carrying</span>
|
|
<span class="plain">capacity of the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no more room in [the noun]." (B);</span>
|
|
<span class="plain">stop the action;</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the can't enter something carried rule):</span>
|
|
<span class="plain">let the local ceiling be the common ancestor of the actor with the noun;</span>
|
|
<span class="plain">if the local ceiling is the actor:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "[We] [can] only get into something free-standing." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor entering (this is the implicitly pass through other barriers rule):</span>
|
|
<span class="plain">if the holder of the actor is the holder of the noun, continue the action;</span>
|
|
<span class="plain">let the local ceiling be the common ancestor of the actor with the noun;</span>
|
|
<span class="plain">while the holder of the actor is not the local ceiling:</span>
|
|
<span class="plain">let the current home be the holder of the actor;</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">if the current home is a supporter or the current home is an animal:</span>
|
|
<span class="plain">say "(getting off [the current home])[command clarification break]" (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "(getting out of [the current home])[command clarification break]" (B);</span>
|
|
<span class="plain">silently try the actor trying exiting;</span>
|
|
<span class="plain">if the holder of the actor is the current home, stop the action;</span>
|
|
<span class="plain">if the holder of the actor is the noun, stop the action;</span>
|
|
<span class="plain">if the holder of the actor is the holder of the noun, continue the action;</span>
|
|
<span class="plain">let the target be the holder of the noun;</span>
|
|
<span class="plain">if the noun is part of the target, let the target be the holder of the target;</span>
|
|
<span class="plain">while the target is a thing:</span>
|
|
<span class="plain">if the holder of the target is the local ceiling:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">if the target is a supporter:</span>
|
|
<span class="plain">say "(getting onto [the target])[command clarification break]" (C);</span>
|
|
<span class="plain">otherwise if the target is a container:</span>
|
|
<span class="plain">say "(getting into [the target])[command clarification break]" (D);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "(entering [the target])[command clarification break]" (E);</span>
|
|
<span class="plain">silently try the actor trying entering the target;</span>
|
|
<span class="plain">if the holder of the actor is not the target, stop the action;</span>
|
|
<span class="plain">convert to the entering action on the noun;</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">let the target be the holder of the target;</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP34"></a><b>§34. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor entering (this is the standard entering rule):</span>
|
|
<span class="plain">surreptitiously move the actor to the noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP35"></a><b>§35. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor entering (this is the standard report entering rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the noun is a supporter:</span>
|
|
<span class="plain">say "[We] [get] onto [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[We] [get] into [the noun]." (B);</span>
|
|
<span class="plain">otherwise if the noun is a container:</span>
|
|
<span class="plain">say "[The actor] [get] into [the noun]." (C);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [get] onto [the noun]." (D);</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor entering (this is the describe contents entered into rule):</span>
|
|
<span class="plain">if the actor is the player, describe locale for the noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP36"></a><b>§36. Exiting. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Exiting is an action applying to nothing.</span>
|
|
<span class="plain">The exiting action translates into I6 as "Exit".</span>
|
|
<span class="plain">The exiting action has an object called the container exited from (matched as "from").</span>
|
|
|
|
<span class="plain">The specification of the exiting action is "Whereas the going action allows</span>
|
|
<span class="plain">people to move from one location to another in the model world, and the</span>
|
|
<span class="plain">entering action is for movement deeper inside the objects in a location,</span>
|
|
<span class="plain">the exiting action is for movement back out towards the main floor area.</span>
|
|
<span class="plain">Climbing out of a cupboard, for instance, is an exiting action. Exiting</span>
|
|
<span class="plain">when already in the main floor area of a room with a map connection to</span>
|
|
<span class="plain">the outside is converted to a going action. Finally, note that whereas</span>
|
|
<span class="plain">entering works for either containers or supporters, exiting is purely for</span>
|
|
<span class="plain">getting oneself out of containers: if the actor is on top of a supporter</span>
|
|
<span class="plain">instead, an exiting action is converted to the getting off action."</span>
|
|
|
|
<span class="plain">Setting action variables for exiting:</span>
|
|
<span class="plain">now the container exited from is the holder of the actor.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP37"></a><b>§37. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor exiting (this is the convert exit into go out rule):</span>
|
|
<span class="plain">let the local room be the location of the actor;</span>
|
|
<span class="plain">if the container exited from is the local room:</span>
|
|
<span class="plain">if the room-or-door outside from the local room is not nothing,</span>
|
|
<span class="plain">convert to the going action on the outside;</span>
|
|
|
|
<span class="plain">Check an actor exiting (this is the can't exit when not inside anything rule):</span>
|
|
<span class="plain">let the local room be the location of the actor;</span>
|
|
<span class="plain">if the container exited from is the local room:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "But [we] [aren't] in anything at the [if story tense is present</span>
|
|
<span class="plain">tense]moment[otherwise]time[end if]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor exiting (this is the can't exit closed containers rule):</span>
|
|
<span class="plain">if the actor is in a closed container (called the cage):</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "You can't get out of the closed [cage]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor exiting (this is the convert exit into get off rule):</span>
|
|
<span class="plain">if the actor is on a supporter (called the platform),</span>
|
|
<span class="plain">convert to the getting off action on the platform.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP38"></a><b>§38. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor exiting (this is the standard exiting rule):</span>
|
|
<span class="plain">let the former exterior be the not-counting-parts holder of the container exited from;</span>
|
|
<span class="plain">surreptitiously move the actor to the former exterior.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP39"></a><b>§39. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor exiting (this is the standard report exiting rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the container exited from is a supporter:</span>
|
|
<span class="plain">say "[We] [get] off [the container exited from]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[We] [get] out of [the container exited from]." (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [get] out of [the container exited from]." (C);</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor exiting (this is the describe room emerged into rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">surreptitiously reckon darkness;</span>
|
|
<span class="plain">produce a room description with going spacing conventions.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP40"></a><b>§40. Getting off. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Getting off is an action applying to one thing.</span>
|
|
<span class="plain">The getting off action translates into I6 as "GetOff".</span>
|
|
|
|
<span class="plain">The specification of the getting off action is "The getting off action is for</span>
|
|
<span class="plain">actors who are currently on top of a supporter: perhaps standing on a platform,</span>
|
|
<span class="plain">but maybe only sitting on a chair or even lying down in bed. Unlike the similar</span>
|
|
<span class="plain">exiting action, getting off takes a noun: the platform, chair, bed or what</span>
|
|
<span class="plain">have you."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP41"></a><b>§41. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor getting off (this is the can't get off things rule):</span>
|
|
<span class="plain">if the actor is on the noun, continue the action;</span>
|
|
<span class="plain">if the actor is carried by the noun, continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "But [we] [aren't] on [the noun] at the [if story tense is present</span>
|
|
<span class="plain">tense]moment[otherwise]time[end if]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP42"></a><b>§42. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor getting off (this is the standard getting off rule):</span>
|
|
<span class="plain">let the former exterior be the not-counting-parts holder of the noun;</span>
|
|
<span class="plain">surreptitiously move the actor to the former exterior.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP43"></a><b>§43. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor getting off (this is the standard report getting off rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[The actor] [get] off [the noun]." (A);</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor getting off (this is the describe room stood up into rule):</span>
|
|
<span class="plain">if the actor is the player,</span>
|
|
<span class="plain">produce a room description with going spacing conventions.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP44"></a><b>§44. Looking. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 4 - Standard actions concerning the actor's vision</span>
|
|
|
|
<span class="plain">Looking is an action applying to nothing.</span>
|
|
<span class="plain">The looking action translates into I6 as "Look".</span>
|
|
|
|
<span class="plain">The specification of the looking action is "The looking action describes the</span>
|
|
<span class="plain">player's current room and any visible items, but is made more complicated</span>
|
|
<span class="plain">by the problem of visibility. Inform calculates this by dividing the room</span>
|
|
<span class="plain">into visibility levels. For an actor on the floor of a room, there is only</span>
|
|
<span class="plain">one such level: the room itself. But an actor sitting on a chair inside</span>
|
|
<span class="plain">a packing case which is itself on a gantry would have four visibility levels:</span>
|
|
<span class="plain">chair, case, gantry, room. The looking rules use a special phrase, 'the</span>
|
|
<span class="plain">visibility-holder of X', to go up from one level to the next: thus the</span>
|
|
<span class="plain">visibility-holder of the case is the gantry.</span>
|
|
|
|
<span class="plain">The 'visibility level count' is the number of levels which the player can</span>
|
|
<span class="plain">actually see, and the 'visibility ceiling' is the uppermost visible level.</span>
|
|
<span class="plain">For a player standing on the floor of a lighted room, this will be a count</span>
|
|
<span class="plain">of 1 with the ceiling set to the room. But a player sitting on a chair in</span>
|
|
<span class="plain">a closed opaque packing case would have visibility level count 2, and</span>
|
|
<span class="plain">visibility ceiling equal to the case. Moreover, light has to be available</span>
|
|
<span class="plain">in order to see anything at all: if the player is in darkness, the level</span>
|
|
<span class="plain">count is 0 and the ceiling is nothing.</span>
|
|
|
|
<span class="plain">Finally, note that several actions other than looking also produce room</span>
|
|
<span class="plain">descriptions in some cases. The most familiar is going, but exiting a</span>
|
|
<span class="plain">container or getting off a supporter will also generate a room description.</span>
|
|
<span class="plain">(The phrase used by the relevant rules is 'produce a room description with</span>
|
|
<span class="plain">going spacing conventions' and carry out or report rules for newly written</span>
|
|
<span class="plain">actions are welcome to use this too if they would like to. The spacing</span>
|
|
<span class="plain">conventions affect paragraph division, and note that the main description</span>
|
|
<span class="plain">paragraph may be omitted for a place not newly visited, depending on the</span>
|
|
<span class="plain">VERBOSE settings.) Room descriptions like this are produced by running the</span>
|
|
<span class="plain">check, carry out and report rules for looking, but are not subject to</span>
|
|
<span class="plain">before, instead or after rules: so they do not count as a new action. The</span>
|
|
<span class="plain">looking variable 'room-describing action' holds the action name of the</span>
|
|
<span class="plain">reason a room description is currently being made: if the player typed</span>
|
|
<span class="plain">LOOK, this will indeed be set to the looking action, but if we're</span>
|
|
<span class="plain">describing a room just reached by GO EAST, say, it will be set to the going</span>
|
|
<span class="plain">action. This can be used to customise carry out looking rules so that</span>
|
|
<span class="plain">different forms of description are used on going to a room as compared with</span>
|
|
<span class="plain">looking around while already there."</span>
|
|
|
|
<span class="plain">The looking action has an action name called the room-describing action.</span>
|
|
<span class="plain">The looking action has a truth state called abbreviated form allowed.</span>
|
|
<span class="plain">The looking action has a number called the visibility level count.</span>
|
|
<span class="plain">The looking action has an object called the visibility ceiling.</span>
|
|
|
|
<span class="plain">Setting action variables for looking (this is the determine visibility ceiling</span>
|
|
<span class="plain">rule):</span>
|
|
<span class="plain">if the actor is the player, calculate visibility ceiling at low level;</span>
|
|
<span class="plain">now the visibility level count is the visibility ceiling count calculated;</span>
|
|
<span class="plain">now the visibility ceiling is the visibility ceiling calculated;</span>
|
|
<span class="plain">now the room-describing action is the looking action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP45"></a><b>§45. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out looking (this is the declare everything unmentioned rule):</span>
|
|
<span class="plain">repeat with item running through things:</span>
|
|
<span class="plain">now the item is not mentioned.</span>
|
|
|
|
<span class="plain">Carry out looking (this is the room description heading rule):</span>
|
|
<span class="plain">say bold type;</span>
|
|
<span class="plain">if the visibility level count is 0:</span>
|
|
<span class="plain">begin the printing the name of a dark room activity;</span>
|
|
<span class="plain">if handling the printing the name of a dark room activity:</span>
|
|
<span class="plain">say "Darkness" (A);</span>
|
|
<span class="plain">end the printing the name of a dark room activity;</span>
|
|
<span class="plain">otherwise if the visibility ceiling is the location:</span>
|
|
<span class="plain">say "[visibility ceiling]";</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The visibility ceiling]";</span>
|
|
<span class="plain">say roman type;</span>
|
|
<span class="plain">let intermediate level be the visibility-holder of the actor;</span>
|
|
<span class="plain">repeat with intermediate level count running from 2 to the visibility level count:</span>
|
|
<span class="plain">if the intermediate level is a supporter or the intermediate level is an animal:</span>
|
|
<span class="plain">say " (on [the intermediate level])" (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say " (in [the intermediate level])" (C);</span>
|
|
<span class="plain">let the intermediate level be the visibility-holder of the intermediate level;</span>
|
|
<span class="plain">say line break;</span>
|
|
<span class="plain">say run paragraph on with special look spacing.</span>
|
|
|
|
<span class="plain">Carry out looking (this is the room description body text rule):</span>
|
|
<span class="plain">if the visibility level count is 0:</span>
|
|
<span class="plain">if set to abbreviated room descriptions, continue the action;</span>
|
|
<span class="plain">if set to sometimes abbreviated room descriptions and</span>
|
|
<span class="plain">abbreviated form allowed is true and</span>
|
|
<span class="plain">darkness witnessed is true,</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">begin the printing the description of a dark room activity;</span>
|
|
<span class="plain">if handling the printing the description of a dark room activity:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[It] [are] pitch dark, and [we] [can't see] a thing." (A);</span>
|
|
<span class="plain">end the printing the description of a dark room activity;</span>
|
|
<span class="plain">otherwise if the visibility ceiling is the location:</span>
|
|
<span class="plain">if set to abbreviated room descriptions, continue the action;</span>
|
|
<span class="plain">if set to sometimes abbreviated room descriptions and abbreviated form</span>
|
|
<span class="plain">allowed is true and the location is visited, continue the action;</span>
|
|
<span class="plain">print the location's description;</span>
|
|
|
|
<span class="plain">Carry out looking (this is the room description paragraphs about objects rule):</span>
|
|
<span class="plain">if the visibility level count is greater than 0:</span>
|
|
<span class="plain">let the intermediate position be the actor;</span>
|
|
<span class="plain">let the IP count be the visibility level count;</span>
|
|
<span class="plain">while the IP count is greater than 0:</span>
|
|
<span class="plain">now the intermediate position is marked for listing;</span>
|
|
<span class="plain">let the intermediate position be the visibility-holder of the</span>
|
|
<span class="plain">intermediate position;</span>
|
|
<span class="plain">decrease the IP count by 1;</span>
|
|
<span class="plain">let the top-down IP count be the visibility level count;</span>
|
|
<span class="plain">while the top-down IP count is greater than 0:</span>
|
|
<span class="plain">let the intermediate position be the actor;</span>
|
|
<span class="plain">let the IP count be 0;</span>
|
|
<span class="plain">while the IP count is less than the top-down IP count:</span>
|
|
<span class="plain">let the intermediate position be the visibility-holder of the</span>
|
|
<span class="plain">intermediate position;</span>
|
|
<span class="plain">increase the IP count by 1;</span>
|
|
<span class="plain">describe locale for the intermediate position;</span>
|
|
<span class="plain">decrease the top-down IP count by 1;</span>
|
|
<span class="plain">continue the action;</span>
|
|
|
|
<span class="plain">Carry out looking (this is the check new arrival rule):</span>
|
|
<span class="plain">if in darkness:</span>
|
|
<span class="plain">now the darkness witnessed is true;</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the location is a room, now the location is visited;</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP46"></a><b>§46. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor looking (this is the other people looking rule):</span>
|
|
<span class="plain">if the actor is not the player:</span>
|
|
<span class="plain">say "[The actor] [look] around." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP47"></a><b>§47. Examining. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Examining is an action applying to one visible thing and requiring light.</span>
|
|
<span class="plain">The examining action translates into I6 as "Examine".</span>
|
|
|
|
<span class="plain">The specification of the examining action is "The act of looking closely at</span>
|
|
<span class="plain">something. Note that the noun could be either a direction or a thing, which</span>
|
|
<span class="plain">is why the Standard Rules include the 'examine directions rule' to deal with</span>
|
|
<span class="plain">directions: it simply says 'You see nothing unexpected in that direction.'</span>
|
|
<span class="plain">and stops the action. (If you would like to handle directions differently,</span>
|
|
<span class="plain">list another rule instead of this one in the carry out examining rules.)</span>
|
|
|
|
<span class="plain">Some things have no description property, or rather, have only a blank text</span>
|
|
<span class="plain">as one. It's possible that something interesting may be said anyway (see</span>
|
|
<span class="plain">the rules for directions, containers, supporters and devices), but if not,</span>
|
|
<span class="plain">we give up with a bland response. This is done by the examine undescribed</span>
|
|
<span class="plain">things rule."</span>
|
|
|
|
<span class="plain">The examining action has a truth state called examine text printed.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP48"></a><b>§48. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out examining (this is the standard examining rule):</span>
|
|
<span class="plain">if the noun provides the property description and the description of the noun is not "":</span>
|
|
<span class="plain">say "[description of the noun][line break]";</span>
|
|
<span class="plain">now examine text printed is true.</span>
|
|
|
|
<span class="plain">Carry out examining (this is the examine directions rule):</span>
|
|
<span class="plain">if the noun is a direction:</span>
|
|
<span class="plain">say "[We] [see] nothing unexpected in that direction." (A);</span>
|
|
<span class="plain">now examine text printed is true.</span>
|
|
|
|
<span class="plain">Carry out examining (this is the examine containers rule):</span>
|
|
<span class="plain">if the noun is a container:</span>
|
|
<span class="plain">if the noun is open or the noun is transparent:</span>
|
|
<span class="plain">if something described which is not scenery is in the noun and something which</span>
|
|
<span class="plain">is not the player is in the noun:</span>
|
|
<span class="plain">say "In [the noun] " (A);</span>
|
|
<span class="plain">list the contents of the noun, as a sentence, tersely, not listing</span>
|
|
<span class="plain">concealed items, prefacing with is/are;</span>
|
|
<span class="plain">say ".";</span>
|
|
<span class="plain">now examine text printed is true;</span>
|
|
<span class="plain">otherwise if examine text printed is false:</span>
|
|
<span class="plain">if the player is in the noun:</span>
|
|
<span class="plain">make no decision;</span>
|
|
<span class="plain">say "[The noun] [are] empty." (B);</span>
|
|
<span class="plain">now examine text printed is true;</span>
|
|
|
|
<span class="plain">Carry out examining (this is the examine supporters rule):</span>
|
|
<span class="plain">if the noun is a supporter:</span>
|
|
<span class="plain">if something described which is not scenery is on the noun and something which is</span>
|
|
<span class="plain">not the player is on the noun:</span>
|
|
<span class="plain">say "On [the noun] " (A);</span>
|
|
<span class="plain">list the contents of the noun, as a sentence, tersely, not listing</span>
|
|
<span class="plain">concealed items, prefacing with is/are, including contents,</span>
|
|
<span class="plain">giving brief inventory information;</span>
|
|
<span class="plain">say ".";</span>
|
|
<span class="plain">now examine text printed is true.</span>
|
|
|
|
<span class="plain">Carry out examining (this is the examine devices rule):</span>
|
|
<span class="plain">if the noun is a device:</span>
|
|
<span class="plain">say "[The noun] [are] [if story tense is present tense]currently [end if]switched</span>
|
|
<span class="plain">[if the noun is switched on]on[otherwise]off[end if]." (A);</span>
|
|
<span class="plain">now examine text printed is true.</span>
|
|
|
|
<span class="plain">Carry out examining (this is the examine undescribed things rule):</span>
|
|
<span class="plain">if examine text printed is false:</span>
|
|
<span class="plain">say "[We] [see] nothing special about [the noun]." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP49"></a><b>§49. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor examining (this is the report other people examining rule):</span>
|
|
<span class="plain">if the actor is not the player:</span>
|
|
<span class="plain">say "[The actor] [look] closely at [the noun]." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP50"></a><b>§50. Looking under. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Looking under is an action applying to one visible thing and requiring light.</span>
|
|
<span class="plain">The looking under action translates into I6 as "LookUnder".</span>
|
|
|
|
<span class="plain">The specification of the looking under action is "The standard Inform world</span>
|
|
<span class="plain">model does not have a concept of things being under other things, so this</span>
|
|
<span class="plain">action is only minimally provided by the Standard Rules, but it exists here</span>
|
|
<span class="plain">for traditional reasons (and because, after all, LOOK UNDER TABLE is the</span>
|
|
<span class="plain">sort of command which ought to be recognised even if it does nothing useful).</span>
|
|
<span class="plain">The action ordinarily either tells the player he finds nothing of interest,</span>
|
|
<span class="plain">or reports that somebody else has looked under something.</span>
|
|
|
|
<span class="plain">The usual way to make this action do something useful is to write a rule</span>
|
|
<span class="plain">like 'Instead of looking under the cabinet for the first time: now the</span>
|
|
<span class="plain">player has the silver key; say ...' and so on."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP51"></a><b>§51. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor looking under (this is the standard looking under rule):</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "[We] [find] nothing of interest." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP52"></a><b>§52. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor looking under (this is the report other people looking under rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is not the player:</span>
|
|
<span class="plain">say "[The actor] [look] under [the noun]." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP53"></a><b>§53. Searching. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Searching is an action applying to one thing and requiring light.</span>
|
|
<span class="plain">The searching action translates into I6 as "Search".</span>
|
|
|
|
<span class="plain">The specification of the searching action is "Searching looks at the contents</span>
|
|
<span class="plain">of an open or transparent container, or at the items on top of a supporter.</span>
|
|
<span class="plain">These are often mentioned in room descriptions already, and then the action</span>
|
|
<span class="plain">is unnecessary, but that wouldn't be true for something like a kitchen</span>
|
|
<span class="plain">cupboard which is scenery - mentioned in passing in a room description, but</span>
|
|
<span class="plain">not made a fuss of. Searching such a cupboard would then, by listing its</span>
|
|
<span class="plain">contents, give the player more information than the ordinary room description</span>
|
|
<span class="plain">shows.</span>
|
|
|
|
<span class="plain">The usual check rules restrict searching to containers and supporters: so</span>
|
|
<span class="plain">the Standard Rules do not allow the searching of people, for instance. But</span>
|
|
<span class="plain">it is easy to add instead rules ('Instead of searching Dr Watson: ...') or</span>
|
|
<span class="plain">even a new carry out rule ('Check searching someone (called the suspect): ...')</span>
|
|
<span class="plain">to extend the way searching normally works."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP54"></a><b>§54. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor searching (this is the can't search unless container or supporter rule):</span>
|
|
<span class="plain">if the noun is not a container and the noun is not a supporter:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "[We] [find] nothing of interest." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor searching (this is the can't search closed opaque containers rule):</span>
|
|
<span class="plain">if the noun is a closed opaque container:</span>
|
|
<span class="plain">if the player is the actor:</span>
|
|
<span class="plain">say "[We] [can't see] inside, since [the noun] [are] closed." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP55"></a><b>§55. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report searching a container (this is the standard search containers rule):</span>
|
|
<span class="plain">if the noun contains a described thing which is not scenery:</span>
|
|
<span class="plain">say "In [the noun] " (A);</span>
|
|
<span class="plain">list the contents of the noun, as a sentence, tersely, not listing</span>
|
|
<span class="plain">concealed items, prefacing with is/are;</span>
|
|
<span class="plain">say ".";</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The noun] [are] empty." (B).</span>
|
|
|
|
<span class="plain">Report searching a supporter (this is the standard search supporters rule):</span>
|
|
<span class="plain">if the noun supports a described thing which is not scenery:</span>
|
|
<span class="plain">say "On [the noun] " (A);</span>
|
|
<span class="plain">list the contents of the noun, as a sentence, tersely, not listing</span>
|
|
<span class="plain">concealed items, prefacing with is/are;</span>
|
|
<span class="plain">say ".";</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] nothing on [the noun]." (B).</span>
|
|
|
|
<span class="plain">Report an actor searching (this is the report other people searching rule):</span>
|
|
<span class="plain">if the actor is not the player:</span>
|
|
<span class="plain">say "[The actor] [search] [the noun]." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP56"></a><b>§56. Consulting it about. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Consulting it about is an action applying to one thing and one topic.</span>
|
|
<span class="plain">The consulting it about action translates into I6 as "Consult".</span>
|
|
|
|
<span class="plain">The specification of the consulting it about action is "Consulting is a very</span>
|
|
<span class="plain">flexible and potentially powerful action, but only because it leaves almost</span>
|
|
<span class="plain">all of the work to the author to deal with directly. The idea is for it to</span>
|
|
<span class="plain">respond to commands such as LOOK UP HENRY FITZROY IN HISTORY BOOK, where</span>
|
|
<span class="plain">the topic would be the snippet of command HENRY FITZROY and the thing would</span>
|
|
<span class="plain">be the book.</span>
|
|
|
|
<span class="plain">The Standard Rules simply parry such requests by saying that the player finds</span>
|
|
<span class="plain">nothing of interest. All interesting responses must be provided by the author,</span>
|
|
<span class="plain">using rules like 'Instead of consulting the history book about...'"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP57"></a><b>§57. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor consulting something about (this is the block consulting rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [discover] nothing of interest in [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [look] at [the noun]." (B);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP58"></a><b>§58. Locking it with. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 5 - Standard actions which change the state of things</span>
|
|
|
|
<span class="plain">Locking it with is an action applying to one thing and one carried thing.</span>
|
|
<span class="plain">The locking it with action translates into I6 as "Lock".</span>
|
|
|
|
<span class="plain">The specification of the locking it with action is "Locking is the act of</span>
|
|
<span class="plain">using an object such as a key to ensure that something such as a door or</span>
|
|
<span class="plain">container cannot be opened unless first unlocked. (Only closed things can be</span>
|
|
<span class="plain">locked.)</span>
|
|
|
|
<span class="plain">Locking can be performed on any kind of thing which provides the either/or</span>
|
|
<span class="plain">properties lockable, locked, openable and open. The 'can't lock without a lock</span>
|
|
<span class="plain">rule' tests to see if the noun both provides the lockable property, and if</span>
|
|
<span class="plain">it is in fact lockable: it is then assumed that the other properties can</span>
|
|
<span class="plain">safely be checked. In the Standard Rules, the container and door kinds both</span>
|
|
<span class="plain">satisfy these requirements.</span>
|
|
|
|
<span class="plain">We can create a new kind on which opening, closing, locking and unlocking</span>
|
|
<span class="plain">will work thus: 'A briefcase is a kind of thing. A briefcase can be openable.</span>
|
|
<span class="plain">A briefcase can be open. A briefcase can be lockable. A briefcase can be</span>
|
|
<span class="plain">locked. A briefcase is usually openable, lockable, open and unlocked.'</span>
|
|
|
|
<span class="plain">Inform checks whether the key fits using the 'can't lock without the correct</span>
|
|
<span class="plain">key rule'. To satisfy this, the actor must be directly holding the second</span>
|
|
<span class="plain">noun, and it must be the current value of the 'matching key' property for</span>
|
|
<span class="plain">the noun. (This property is seldom referred to directly because it is</span>
|
|
<span class="plain">automatically set by assertions like 'The silver key unlocks the wicket</span>
|
|
<span class="plain">gate.')</span>
|
|
|
|
<span class="plain">The Standard Rules provide locking and unlocking actions at a fairly basic</span>
|
|
<span class="plain">level: they can be much enhanced using the extension Locksmith by Emily</span>
|
|
<span class="plain">Short, which is included with all distributions of Inform."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP59"></a><b>§59. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor locking something with (this is the can't lock without a lock rule):</span>
|
|
<span class="plain">if the noun provides the property lockable and the noun is lockable:</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][Those] [don't] seem to be something [we] [can] lock." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor locking something with (this is the can't lock what's already</span>
|
|
<span class="plain">locked rule):</span>
|
|
<span class="plain">if the noun is locked:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] locked at the [if story tense is present</span>
|
|
<span class="plain">tense]moment[otherwise]time[end if]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor locking something with (this is the can't lock what's open rule):</span>
|
|
<span class="plain">if the noun is open:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "First [we] [would have] to close [the noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor locking something with (this is the can't lock without the correct key rule):</span>
|
|
<span class="plain">if the holder of the second noun is not the actor or</span>
|
|
<span class="plain">the noun does not provide the property matching key or</span>
|
|
<span class="plain">the matching key of the noun is not the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the second noun][Those] [don't] seem to fit the lock." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP60"></a><b>§60. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor locking something with (this is the standard locking rule):</span>
|
|
<span class="plain">now the noun is locked.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP61"></a><b>§61. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor locking something with (this is the standard report locking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [lock] [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the actor is visible:</span>
|
|
<span class="plain">say "[The actor] [lock] [the noun]." (B);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP62"></a><b>§62. Unlocking it with. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Unlocking it with is an action applying to one thing and one carried thing.</span>
|
|
<span class="plain">The unlocking it with action translates into I6 as "Unlock".</span>
|
|
|
|
<span class="plain">The specification of the unlocking it with action is "Unlocking undoes the</span>
|
|
<span class="plain">effect of locking, and renders the noun openable again provided that the</span>
|
|
<span class="plain">actor is carrying the right key (which must be the second noun).</span>
|
|
|
|
<span class="plain">Unlocking can be performed on any kind of thing which provides the either/or</span>
|
|
<span class="plain">properties lockable, locked, openable and open. The 'can't unlock without a lock</span>
|
|
<span class="plain">rule' tests to see if the noun both provides the lockable property, and if</span>
|
|
<span class="plain">it is in fact lockable: it is then assumed that the other properties can</span>
|
|
<span class="plain">safely be checked. In the Standard Rules, the container and door kinds both</span>
|
|
<span class="plain">satisfy these requirements.</span>
|
|
|
|
<span class="plain">We can create a new kind on which opening, closing, locking and unlocking</span>
|
|
<span class="plain">will work thus: 'A briefcase is a kind of thing. A briefcase can be openable.</span>
|
|
<span class="plain">A briefcase can be open. A briefcase can be lockable. A briefcase can be</span>
|
|
<span class="plain">locked. A briefcase is usually openable, lockable, open and unlocked.'</span>
|
|
|
|
<span class="plain">Inform checks whether the key fits using the 'can't unlock without the correct</span>
|
|
<span class="plain">key rule'. To satisfy this, the actor must be directly holding the second</span>
|
|
<span class="plain">noun, and it must be the current value of the 'matching key' property for</span>
|
|
<span class="plain">the noun. (This property is seldom referred to directly because it is</span>
|
|
<span class="plain">automatically set by assertions like 'The silver key unlocks the wicket</span>
|
|
<span class="plain">gate.')</span>
|
|
|
|
<span class="plain">The Standard Rules provide locking and unlocking actions at a fairly basic</span>
|
|
<span class="plain">level: they can be much enhanced using the extension Locksmith by Emily</span>
|
|
<span class="plain">Short, which is included with all distributions of Inform."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP63"></a><b>§63. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor unlocking something with (this is the can't unlock without a lock rule):</span>
|
|
<span class="plain">if the noun provides the property lockable and the noun is lockable:</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][Those] [don't] seem to be something [we] [can] unlock." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor unlocking something with (this is the can't unlock what's already unlocked rule):</span>
|
|
<span class="plain">if the noun is not locked:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] unlocked at the [if story tense is present</span>
|
|
<span class="plain">tense]moment[otherwise]time[end if]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor unlocking something with (this is the can't unlock without the correct key rule):</span>
|
|
<span class="plain">if the holder of the second noun is not the actor or</span>
|
|
<span class="plain">the noun does not provide the property matching key or</span>
|
|
<span class="plain">the matching key of the noun is not the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the second noun][Those] [don't] seem to fit the lock." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP64"></a><b>§64. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor unlocking something with (this is the standard unlocking rule):</span>
|
|
<span class="plain">now the noun is not locked.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP65"></a><b>§65. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor unlocking something with (this is the standard report unlocking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [unlock] [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">if the actor is visible:</span>
|
|
<span class="plain">say "[The actor] [unlock] [the noun]." (B);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP66"></a><b>§66. Switching on. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Switching on is an action applying to one thing.</span>
|
|
<span class="plain">The switching on action translates into I6 as "SwitchOn".</span>
|
|
|
|
<span class="plain">The specification of the switching on action is "The switching on and switching</span>
|
|
<span class="plain">off actions are for the simplest kind of machinery operation: they are for</span>
|
|
<span class="plain">objects representing machines (or more likely parts of machines), which are</span>
|
|
<span class="plain">considered to be either off or on at any given time.</span>
|
|
|
|
<span class="plain">The actions are intended to be used where the noun is a device, but in fact</span>
|
|
<span class="plain">they could work just as well with any kind which can be 'switched on' or</span>
|
|
<span class="plain">'switched off'."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP67"></a><b>§67. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor switching on (this is the can't switch on unless switchable rule):</span>
|
|
<span class="plain">if the noun provides the property switched on, continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [aren't] something [we] [can] switch." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor switching on (this is the can't switch on what's already on rule):</span>
|
|
<span class="plain">if the noun is switched on:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] already on." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP68"></a><b>§68. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor switching on (this is the standard switching on rule):</span>
|
|
<span class="plain">now the noun is switched on.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP69"></a><b>§69. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor switching on (this is the standard report switching on rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[The actor] [switch] [the noun] on." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP70"></a><b>§70. Switching off. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Switching off is an action applying to one thing.</span>
|
|
<span class="plain">The switching off action translates into I6 as "SwitchOff".</span>
|
|
|
|
<span class="plain">The specification of the switching off action is "The switching off and switching</span>
|
|
<span class="plain">on actions are for the simplest kind of machinery operation: they are for</span>
|
|
<span class="plain">objects representing machines (or more likely parts of machines), which are</span>
|
|
<span class="plain">considered to be either off or on at any given time.</span>
|
|
|
|
<span class="plain">The actions are intended to be used where the noun is a device, but in fact</span>
|
|
<span class="plain">they could work just as well with any kind which can be 'switched on' or</span>
|
|
<span class="plain">'switched off'."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP71"></a><b>§71. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor switching off (this is the can't switch off unless switchable rule):</span>
|
|
<span class="plain">if the noun provides the property switched on, continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [aren't] something [we] [can] switch." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor switching off (this is the can't switch off what's already off rule):</span>
|
|
<span class="plain">if the noun is switched off:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] already off." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP72"></a><b>§72. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor switching off (this is the standard switching off rule):</span>
|
|
<span class="plain">now the noun is switched off.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP73"></a><b>§73. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor switching off (this is the standard report switching off rule):</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[The actor] [switch] [the noun] off." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP74"></a><b>§74. Opening. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Opening is an action applying to one thing.</span>
|
|
<span class="plain">The opening action translates into I6 as "Open".</span>
|
|
|
|
<span class="plain">The specification of the opening action is "Opening makes something no longer</span>
|
|
<span class="plain">a physical barrier. The action can be performed on any kind of thing which</span>
|
|
<span class="plain">provides the either/or properties openable and open. The 'can't open unless</span>
|
|
<span class="plain">openable rule' tests to see if the noun both can be and actually is openable.</span>
|
|
<span class="plain">(It is assumed that anything which can be openable can also be open.)</span>
|
|
<span class="plain">In the Standard Rules, the container and door kinds both satisfy these</span>
|
|
<span class="plain">requirements.</span>
|
|
|
|
<span class="plain">In the event that the thing to be opened is also lockable, we are forbidden</span>
|
|
<span class="plain">to open it when it is locked. Both containers and doors can be lockable,</span>
|
|
<span class="plain">but the opening and closing actions would also work fine with kinds which</span>
|
|
<span class="plain">cannot be.</span>
|
|
|
|
<span class="plain">We can create a new kind on which opening and closing will work thus:</span>
|
|
<span class="plain">'A case file is a kind of thing. A case file can be openable.</span>
|
|
<span class="plain">A case file can be open. A case file is usually openable and closed.'</span>
|
|
|
|
<span class="plain">The meaning of open and closed is different for different kinds of thing.</span>
|
|
<span class="plain">When a container is closed, that means people outside cannot reach in,</span>
|
|
<span class="plain">and vice versa; when a door is closed, people cannot use the 'going' action</span>
|
|
<span class="plain">to pass through it. If we were to create a new kind such as 'case file',</span>
|
|
<span class="plain">we would also need to write rules to make the open and closed properties</span>
|
|
<span class="plain">interesting for this kind."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP75"></a><b>§75. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor opening (this is the can't open unless openable rule):</span>
|
|
<span class="plain">if the noun provides the property openable and the noun is openable:</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [aren't] something [we] [can] open." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor opening (this is the can't open what's locked rule):</span>
|
|
<span class="plain">if the noun provides the property lockable and the noun is locked:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [seem] to be locked." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor opening (this is the can't open what's already open rule):</span>
|
|
<span class="plain">if the noun is open:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] already open." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP76"></a><b>§76. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor opening (this is the standard opening rule):</span>
|
|
<span class="plain">now the noun is open.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP77"></a><b>§77. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor opening (this is the reveal any newly visible interior rule):</span>
|
|
<span class="plain">if the actor is the player and</span>
|
|
<span class="plain">the noun is an opaque container and</span>
|
|
<span class="plain">the first thing held by the noun is not nothing and</span>
|
|
<span class="plain">the noun does not enclose the actor:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [open] [the noun], revealing " (A);</span>
|
|
<span class="plain">list the contents of the noun, as a sentence, tersely, not listing</span>
|
|
<span class="plain">concealed items;</span>
|
|
<span class="plain">say ".";</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Report an actor opening (this is the standard report opening rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [open] [the noun]." (A);</span>
|
|
<span class="plain">otherwise if the player can see the actor:</span>
|
|
<span class="plain">say "[The actor] [open] [the noun]." (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The noun] [open]." (C);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP78"></a><b>§78. Closing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Closing is an action applying to one thing.</span>
|
|
<span class="plain">The closing action translates into I6 as "Close".</span>
|
|
|
|
<span class="plain">The specification of the closing action is "Closing makes something into</span>
|
|
<span class="plain">a physical barrier. The action can be performed on any kind of thing which</span>
|
|
<span class="plain">provides the either/or properties openable and open. The 'can't close unless</span>
|
|
<span class="plain">openable rule' tests to see if the noun both can be and actually is openable.</span>
|
|
<span class="plain">(It is assumed that anything which can be openable can also be open, and</span>
|
|
<span class="plain">hence can also be closed.) In the Standard Rules, the container and door</span>
|
|
<span class="plain">kinds both satisfy these requirements.</span>
|
|
|
|
<span class="plain">We can create a new kind on which opening and closing will work thus:</span>
|
|
<span class="plain">'A case file is a kind of thing. A case file can be openable.</span>
|
|
<span class="plain">A case file can be open. A case file is usually openable and closed.'</span>
|
|
|
|
<span class="plain">The meaning of open and closed is different for different kinds of thing.</span>
|
|
<span class="plain">When a container is closed, that means people outside cannot reach in,</span>
|
|
<span class="plain">and vice versa; when a door is closed, people cannot use the 'going' action</span>
|
|
<span class="plain">to pass through it. If we were to create a new kind such as 'case file',</span>
|
|
<span class="plain">we would also need to write rules to make the open and closed properties</span>
|
|
<span class="plain">interesting for this kind."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP79"></a><b>§79. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor closing (this is the can't close unless openable rule):</span>
|
|
<span class="plain">if the noun provides the property openable and the noun is openable:</span>
|
|
<span class="plain">continue the action;</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [aren't] something [we] [can] close." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor closing (this is the can't close what's already closed rule):</span>
|
|
<span class="plain">if the noun is closed:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They're] already closed." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP80"></a><b>§80. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor closing (this is the standard closing rule):</span>
|
|
<span class="plain">now the noun is closed.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP81"></a><b>§81. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor closing (this is the standard report closing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [close] [the noun]." (A);</span>
|
|
<span class="plain">otherwise if the player can see the actor:</span>
|
|
<span class="plain">say "[The actor] [close] [the noun]." (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The noun] [close]." (C);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP82"></a><b>§82. Wearing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Wearing is an action applying to one carried thing.</span>
|
|
<span class="plain">The wearing action translates into I6 as "Wear".</span>
|
|
|
|
<span class="plain">The specification of the wearing action is "The Standard Rules give Inform</span>
|
|
<span class="plain">only a simple model of clothing. A thing can be worn only if it has the</span>
|
|
<span class="plain">either/or property of being 'wearable'. (Typing a sentence like 'Mr Jones</span>
|
|
<span class="plain">wears the Homburg hat.' automatically implies that the hat is wearable,</span>
|
|
<span class="plain">which is why we only seldom need to use the word 'wearable' directly.)</span>
|
|
<span class="plain">There is no checking of how much or how little any actor is wearing, or</span>
|
|
<span class="plain">how incongruous this may appear: nor any distinction between under or</span>
|
|
<span class="plain">over-clothes.</span>
|
|
|
|
<span class="plain">To put on an article of clothing, the actor must be directly carrying it,</span>
|
|
<span class="plain">as enforced by the 'can't wear what's not held rule'."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP83"></a><b>§83. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor wearing (this is the can't wear what's not clothing rule):</span>
|
|
<span class="plain">if the noun is not a thing or the noun is not wearable:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't wear] [regarding the noun][those]!" (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor wearing (this is the can't wear what's not held rule):</span>
|
|
<span class="plain">if the holder of the noun is not the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [aren't] holding [regarding the noun][those]!" (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor wearing (this is the can't wear what's already worn rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We]['re] already wearing [regarding the noun][those]!" (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP84"></a><b>§84. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor wearing (this is the standard wearing rule):</span>
|
|
<span class="plain">now the actor wears the noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP85"></a><b>§85. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor wearing (this is the standard report wearing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [put] on [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [put] on [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP86"></a><b>§86. Taking off. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Taking off is an action applying to one thing.</span>
|
|
<span class="plain">The taking off action translates into I6 as "Disrobe".</span>
|
|
|
|
<span class="plain">Does the player mean taking off something worn: it is very likely.</span>
|
|
|
|
<span class="plain">The specification of the taking off action is "The Standard Rules give Inform</span>
|
|
<span class="plain">only a simple model of clothing. A thing can be worn only if it has the</span>
|
|
<span class="plain">either/or property of being 'wearable'. (Typing a sentence like 'Mr Jones</span>
|
|
<span class="plain">wears the Homburg hat.' automatically implies that the hat is wearable,</span>
|
|
<span class="plain">which is why we only seldom need to use the word 'wearable' directly.)</span>
|
|
<span class="plain">There is no checking of how much or how little any actor is wearing, or</span>
|
|
<span class="plain">how incongruous this may appear: nor any distinction between under or</span>
|
|
<span class="plain">over-clothes.</span>
|
|
|
|
<span class="plain">When an article of clothing is taken off, it becomes a thing directly</span>
|
|
<span class="plain">carried by its former wearer, rather than being (say) dropped onto the floor."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP87"></a><b>§87. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor taking off (this is the can't take off what's not worn rule):</span>
|
|
<span class="plain">if the actor is not wearing the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [aren't] wearing [the noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor taking off (this is the can't exceed carrying capacity when taking off rule):</span>
|
|
<span class="plain">if the number of things carried by the actor is at least the carrying capacity of the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We]['re] carrying too many things already." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP88"></a><b>§88. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor taking off (this is the standard taking off rule):</span>
|
|
<span class="plain">now the actor carries the noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP89"></a><b>§89. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor taking off (this is the standard report taking off rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [take] off [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [take] off [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP90"></a><b>§90. Giving it to. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 6 - Standard actions concerning other people</span>
|
|
|
|
<span class="plain">Giving it to is an action applying to one carried thing and one thing.</span>
|
|
<span class="plain">The giving it to action translates into I6 as "Give".</span>
|
|
|
|
<span class="plain">The specification of the giving it to action is "This action is indexed by</span>
|
|
<span class="plain">Inform under 'Actions concerning other people', but it could just as easily</span>
|
|
<span class="plain">have gone under 'Actions concerning the actor's possessions' because -</span>
|
|
<span class="plain">like dropping, putting it on or inserting it into - this is an action</span>
|
|
<span class="plain">which gets rid of something being carried.</span>
|
|
|
|
<span class="plain">The Standard Rules implement this action fully - if it reaches the carry</span>
|
|
<span class="plain">out and report rulebooks, then the item is indeed transferred to the</span>
|
|
<span class="plain">recipient, and this is properly reported. But giving something to</span>
|
|
<span class="plain">somebody is not like putting something on a shelf: the recipient has</span>
|
|
<span class="plain">to agree. The final check rule, the 'block giving rule', assumes that</span>
|
|
<span class="plain">the recipient does not consent - so the gift fails to happen. The way</span>
|
|
<span class="plain">to make the giving action use its abilities fully is to replace the</span>
|
|
<span class="plain">block giving rule with a rule which makes a more sophisticated decision</span>
|
|
<span class="plain">about who will accept what from whom, and only blocks some attempts,</span>
|
|
<span class="plain">letting others run on into the carry out and report rules."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP91"></a><b>§91. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor giving something to (this is the can't give what you haven't got rule):</span>
|
|
<span class="plain">if the actor is not the holder of the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [aren't] holding [the noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor giving something to (this is the can't give to yourself rule):</span>
|
|
<span class="plain">if the actor is the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [can't give] [the noun] to [ourselves]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor giving something to (this is the can't give to a non-person rule):</span>
|
|
<span class="plain">if the second noun is not a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The second noun] [aren't] able to receive things." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor giving something to (this is the can't give clothes being worn rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">say "(first taking [the noun] off)[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor trying taking off the noun;</span>
|
|
<span class="plain">if the actor is wearing the noun, stop the action;</span>
|
|
|
|
<span class="plain">Check an actor giving something to (this is the block giving rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The second noun] [don't] seem interested." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor giving something to (this is the can't exceed carrying capacity</span>
|
|
<span class="plain">when giving rule):</span>
|
|
<span class="plain">if the number of things carried by the second noun is at least the carrying</span>
|
|
<span class="plain">capacity of the second noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The second noun] [are] carrying too many things already." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP92"></a><b>§92. </b>Carry out.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Carry out an actor giving something to (this is the standard giving rule):</span>
|
|
<span class="plain">move the noun to the second noun.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP93"></a><b>§93. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor giving something to (this is the standard report giving rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [give] [the noun] to [the second noun]." (A);</span>
|
|
<span class="plain">otherwise if the second noun is the player:</span>
|
|
<span class="plain">say "[The actor] [give] [the noun] to [us]." (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [give] [the noun] to [the second noun]." (C).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP94"></a><b>§94. Showing it to. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Showing it to is an action applying to one carried thing and one visible thing.</span>
|
|
<span class="plain">The showing it to action translates into I6 as "Show".</span>
|
|
|
|
<span class="plain">The specification of the showing it to action is "Anyone can show anyone</span>
|
|
<span class="plain">else something which they are carrying, but not some nearby piece of</span>
|
|
<span class="plain">scenery, say - so this action is suitable for showing the emerald locket</span>
|
|
<span class="plain">to Katarina, but not showing the Orange River Rock Room to Mr Douglas.</span>
|
|
|
|
<span class="plain">The Standard Rules implement this action in only a minimal way, checking</span>
|
|
<span class="plain">that it makes sense but then blocking all such attempts with a message</span>
|
|
<span class="plain">such as 'Katarina is not interested.' - this is the task of the 'block</span>
|
|
<span class="plain">showing rule'. As a result, there are no carry out or report rules. To</span>
|
|
<span class="plain">make it into a systematic and interesting action, we would need to</span>
|
|
<span class="plain">unlist the block showing rule and then to write carry out and report</span>
|
|
<span class="plain">rules: but usually for IF purposes we only need to make a handful of</span>
|
|
<span class="plain">special cases of showing work properly, and for those we can simply</span>
|
|
<span class="plain">write Instead rules to handle them."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP95"></a><b>§95. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor showing something to (this is the can't show what you haven't</span>
|
|
<span class="plain">got rule):</span>
|
|
<span class="plain">if the actor is not the holder of the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [aren't] holding [the noun]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor showing something to (this is the convert show to yourself to</span>
|
|
<span class="plain">examine rule):</span>
|
|
<span class="plain">if the actor is the second noun:</span>
|
|
<span class="plain">convert to the examining action on the noun.</span>
|
|
|
|
<span class="plain">Check an actor showing something to (this is the block showing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The second noun] [are] unimpressed." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP96"></a><b>§96. Waking. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Waking is an action applying to one thing.</span>
|
|
<span class="plain">The waking action translates into I6 as "WakeOther".</span>
|
|
|
|
<span class="plain">The specification of the waking action is "This is the act of jostling</span>
|
|
<span class="plain">a sleeping person to wake him or her up, and it finds its way into the</span>
|
|
<span class="plain">Standard Rules only for historical reasons. Inform does not by default</span>
|
|
<span class="plain">provide any model for people being asleep or awake, so this action does</span>
|
|
<span class="plain">not do anything in the standard implementation: instead, it is always</span>
|
|
<span class="plain">stopped by the block waking rule."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP97"></a><b>§97. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor waking (this is the block waking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "That [seem] unnecessary." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP98"></a><b>§98. Throwing it at. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Throwing it at is an action applying to one carried thing and one visible thing.</span>
|
|
<span class="plain">The throwing it at action translates into I6 as "ThrowAt".</span>
|
|
|
|
<span class="plain">The specification of the throwing it at action is "Throwing something at</span>
|
|
<span class="plain">someone or something is difficult for Inform to model. So many considerations</span>
|
|
<span class="plain">apply: just because the actor can see the target, does it follow that the</span>
|
|
<span class="plain">target can accurately hit it? What if the projectile is heavy, like an</span>
|
|
<span class="plain">anvil, or something not easily aimable, like a feather? What if there</span>
|
|
<span class="plain">is a barrier in the way, like a cage with bars spaced so that only items</span>
|
|
<span class="plain">of a certain size get through? And then: what should happen as a result?</span>
|
|
<span class="plain">Will the projectile break, or do damage, or fall to the floor, or into</span>
|
|
<span class="plain">a container or onto a supporter? And so on.</span>
|
|
|
|
<span class="plain">Because it seems hopeless to try to model this in any general way,</span>
|
|
<span class="plain">Inform instead provides the action for the user to attach specific rules to.</span>
|
|
<span class="plain">The check rules in the Standard Rules simply require that the projectile</span>
|
|
<span class="plain">is not an item of clothing still worn (this will be relevant for women</span>
|
|
<span class="plain">attending a Tom Jones concert) but then, in either the 'futile to throw</span>
|
|
<span class="plain">things at inanimate objects rule' or the 'block throwing at rule', will</span>
|
|
<span class="plain">refuse to carry out the action with a bland message.</span>
|
|
|
|
<span class="plain">To make throwing do something, then, we must either write Instead rules</span>
|
|
<span class="plain">for special circumstances, or else unlist these check rules and write</span>
|
|
<span class="plain">suitable carry out and report rules to pick up the thread."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP99"></a><b>§99. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor throwing something at (this is the implicitly remove thrown clothing rule):</span>
|
|
<span class="plain">if the actor is wearing the noun:</span>
|
|
<span class="plain">say "(first taking [the noun] off)[command clarification break]" (A);</span>
|
|
<span class="plain">silently try the actor trying taking off the noun;</span>
|
|
<span class="plain">if the actor is wearing the noun, stop the action;</span>
|
|
|
|
<span class="plain">Check an actor throwing something at (this is the futile to throw things at inanimate</span>
|
|
<span class="plain">objects rule):</span>
|
|
<span class="plain">if the second noun is not a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Futile." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor throwing something at (this is the block throwing at rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [lack] the nerve when it [if story tense is the past</span>
|
|
<span class="plain">tense]came[otherwise]comes[end if] to the crucial moment." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP100"></a><b>§100. Attacking. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Attacking is an action applying to one thing.</span>
|
|
<span class="plain">The attacking action translates into I6 as "Attack".</span>
|
|
|
|
<span class="plain">The specification of the attacking action is "Violence is seldom the answer,</span>
|
|
<span class="plain">and attempts to attack another person are normally blocked as being unrealistic</span>
|
|
<span class="plain">or not seriously meant. (I might find a shop assistant annoying, but IF is</span>
|
|
<span class="plain">not Grand Theft Auto, and responding by killing him is not really one of</span>
|
|
<span class="plain">my options.) So the Standard Rules simply block attempts to fight people,</span>
|
|
<span class="plain">but the action exists for rules to make exceptions."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP101"></a><b>§101. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor attacking (this is the block attacking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "Violence [aren't] the answer to this one." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP102"></a><b>§102. Kissing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Kissing is an action applying to one thing.</span>
|
|
<span class="plain">The kissing action translates into I6 as "Kiss".</span>
|
|
|
|
<span class="plain">The specification of the kissing action is "Possibly because Inform was</span>
|
|
<span class="plain">originally written by an Englishman, attempts at kissing another person are</span>
|
|
<span class="plain">normally blocked as being unrealistic or not seriously meant. So the</span>
|
|
<span class="plain">Standard Rules simply block attempts to kiss people, but the action exists</span>
|
|
<span class="plain">for rules to make exceptions."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP103"></a><b>§103. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor kissing (this is the kissing yourself rule):</span>
|
|
<span class="plain">if the noun is the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [don't] get much from that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor kissing (this is the block kissing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [might not] like that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP104"></a><b>§104. Answering it that. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Answering it that is an action applying to one thing and one topic.</span>
|
|
<span class="plain">The answering it that action translates into I6 as "Answer".</span>
|
|
|
|
<span class="plain">The specification of the answering it that action is "The Standard Rules do</span>
|
|
<span class="plain">not include any systematic way to handle conversation: instead, Inform is</span>
|
|
<span class="plain">set up so that it is as easy as we can make it to write specific rules</span>
|
|
<span class="plain">handling speech in particular games, and so that if no such rules are</span>
|
|
<span class="plain">written then all attempts to communicate are gracefully if not very</span>
|
|
<span class="plain">interestingly rejected.</span>
|
|
|
|
<span class="plain">The topic here can be any double-quoted text, which can itself contain</span>
|
|
<span class="plain">tokens in square brackets: see the documentation on Understanding.</span>
|
|
|
|
<span class="plain">Answering is an action existing so that the player can say something free-form</span>
|
|
<span class="plain">to somebody else. A convention of IF is that a command such as DAPHNE, TAKE</span>
|
|
<span class="plain">MASK is a request to Daphne to perform an action: if the persuasion rules in</span>
|
|
<span class="plain">force mean that she consents, the action 'Daphne taking the mask' does</span>
|
|
<span class="plain">indeed then result. But if the player types DAPHNE, 12375 or DAPHNE, GREAT</span>
|
|
<span class="plain">HEAVENS - or anything else not making sense as a command - the action</span>
|
|
<span class="plain">'answering Daphne that ...' will be generated.</span>
|
|
|
|
<span class="plain">The name of the action arises because it is also caused by typing, say,</span>
|
|
<span class="plain">ANSWER 12375 when Daphne (say) has asked a question."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP105"></a><b>§105. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor answering something that (this is the block answering rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no reply." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP106"></a><b>§106. Telling it about. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Telling it about is an action applying to one thing and one topic.</span>
|
|
<span class="plain">The telling it about action translates into I6 as "Tell".</span>
|
|
|
|
<span class="plain">The specification of the telling it about action is "The Standard Rules do</span>
|
|
<span class="plain">not include any systematic way to handle conversation: instead, Inform is</span>
|
|
<span class="plain">set up so that it is as easy as we can make it to write specific rules</span>
|
|
<span class="plain">handling speech in particular games, and so that if no such rules are</span>
|
|
<span class="plain">written then all attempts to communicate are gracefully if not very</span>
|
|
<span class="plain">interestingly rejected.</span>
|
|
|
|
<span class="plain">The topic here can be any double-quoted text, which can itself contain</span>
|
|
<span class="plain">tokens in square brackets: see the documentation on Understanding.</span>
|
|
|
|
<span class="plain">Telling is an action existing only to catch commands like TELL ALEX ABOUT</span>
|
|
<span class="plain">GUITAR. Customarily in IF, such a command is shorthand which the player</span>
|
|
<span class="plain">accepts as a conventional form: it means 'tell Alex what I now know about</span>
|
|
<span class="plain">the guitar' and would make sense if the player had himself recently</span>
|
|
<span class="plain">discovered something significant about the guitar which might interest</span>
|
|
<span class="plain">Alex."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP107"></a><b>§107. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor telling something about (this is the telling yourself rule):</span>
|
|
<span class="plain">if the actor is the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [talk] to [ourselves] a while." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP108"></a><b>§108. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor telling something about (this is the block telling rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "This [provoke] no reaction." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP109"></a><b>§109. Asking it about. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Asking it about is an action applying to one thing and one topic.</span>
|
|
<span class="plain">The asking it about action translates into I6 as "Ask".</span>
|
|
|
|
<span class="plain">The specification of the asking it about action is "The Standard Rules do</span>
|
|
<span class="plain">not include any systematic way to handle conversation: instead, Inform is</span>
|
|
<span class="plain">set up so that it is as easy as we can make it to write specific rules</span>
|
|
<span class="plain">handling speech in particular games, and so that if no such rules are</span>
|
|
<span class="plain">written then all attempts to communicate are gracefully if not very</span>
|
|
<span class="plain">interestingly rejected.</span>
|
|
|
|
<span class="plain">The topic here can be any double-quoted text, which can itself contain</span>
|
|
<span class="plain">tokens in square brackets: see the documentation on Understanding.</span>
|
|
|
|
<span class="plain">Asking is an action existing only to catch commands like ASK STEPHEN ABOUT</span>
|
|
<span class="plain">PENELOPE. Customarily in IF, such a command is shorthand which the player</span>
|
|
<span class="plain">accepts as a conventional form: it means 'engage Mary in conversation and</span>
|
|
<span class="plain">try to find out what she might know about'. It's understood as a convention</span>
|
|
<span class="plain">of the genre that Mary should not be expected to respond in cases where</span>
|
|
<span class="plain">there is no reason to suppose that she has anything relevant to pass on -</span>
|
|
<span class="plain">ASK JANE ABOUT RICE PUDDING, for instance, need not conjure up a recipe</span>
|
|
<span class="plain">even if Jane is a 19th-century servant and therefore almost certainly</span>
|
|
<span class="plain">knows one."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP110"></a><b>§110. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor asking something about (this is the block asking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There] [are] no reply." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP111"></a><b>§111. Asking it for. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Asking it for is an action applying to two things.</span>
|
|
<span class="plain">The asking it for action translates into I6 as "AskFor".</span>
|
|
|
|
<span class="plain">The specification of the asking it for action is "The Standard Rules do</span>
|
|
<span class="plain">not include any systematic way to handle conversation, but this is</span>
|
|
<span class="plain">action is not quite conversation: it doesn't involve any spoken text as</span>
|
|
<span class="plain">such. It exists to catch commands like ASK SALLY FOR THE EGG WHISK,</span>
|
|
<span class="plain">where the whisk is something which Sally has and the player can see.</span>
|
|
|
|
<span class="plain">Slightly oddly, but for historical reasons, an actor asking himself for</span>
|
|
<span class="plain">something is treated to an inventory listing instead. All other cases</span>
|
|
<span class="plain">are converted to the giving action: that is, ASK SALLY FOR THE EGG WHISK</span>
|
|
<span class="plain">is treated as if it were SALLY, GIVE ME THE EGG WHISK - an action for</span>
|
|
<span class="plain">Sally to perform and which then follows rules for giving.</span>
|
|
|
|
<span class="plain">To ask for information or something intangible, see the asking it about</span>
|
|
<span class="plain">action."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP112"></a><b>§112. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor asking something for (this is the asking yourself for something rule):</span>
|
|
<span class="plain">if the actor is the noun and the actor is the player:</span>
|
|
<span class="plain">try taking inventory instead.</span>
|
|
|
|
<span class="plain">Check an actor asking something for (this is the translate asking for to giving rule):</span>
|
|
<span class="plain">convert to request of the noun to perform giving it to action with the second noun and the actor.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP113"></a><b>§113. Waiting. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 7 - Standard actions which are checked but then do nothing unless rules intervene</span>
|
|
|
|
<span class="plain">Waiting is an action applying to nothing.</span>
|
|
<span class="plain">The waiting action translates into I6 as "Wait".</span>
|
|
|
|
<span class="plain">The specification of the waiting action is "The inaction action: where would</span>
|
|
<span class="plain">we be without waiting? Waiting does not cause time to pass by - that happens</span>
|
|
<span class="plain">anyway - but represents a positive choice by the actor not to fill that time.</span>
|
|
<span class="plain">It is an action so that rules can be attached to it: for instance, we could</span>
|
|
<span class="plain">imagine that a player who consciously decides to sit and wait might notice</span>
|
|
<span class="plain">something which a busy player does not, and we could write a rule accordingly.</span>
|
|
|
|
<span class="plain">Note the absence of check or carry out rules - anyone can wait, at any time,</span>
|
|
<span class="plain">and it makes nothing happen."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP114"></a><b>§114. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor waiting (this is the standard report waiting rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "Time [pass]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [wait]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP115"></a><b>§115. Touching. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Touching is an action applying to one thing.</span>
|
|
<span class="plain">The touching action translates into I6 as "Touch".</span>
|
|
|
|
<span class="plain">The specification of the touching action is "Touching is just that, touching</span>
|
|
<span class="plain">something without applying pressure: a touch-sensitive screen or a living</span>
|
|
<span class="plain">creature might react, but a standard push-button or lever will probably not.</span>
|
|
|
|
<span class="plain">In the Standard Rules there are no check touching rules, since touchability</span>
|
|
<span class="plain">is already a requirement of the noun for the action anyway, and no carry out</span>
|
|
<span class="plain">rules because nothing in the standard Inform world model reacts to</span>
|
|
<span class="plain">a mere touch - though report rules do mean that attempts to touch other</span>
|
|
<span class="plain">people provoke a special reply."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP116"></a><b>§116. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor touching (this is the report touching yourself rule):</span>
|
|
<span class="plain">if the noun is the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [achieve] nothing by this." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [touch] [themselves]." (B);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor touching (this is the report touching other people rule):</span>
|
|
<span class="plain">if the noun is a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[The noun] [might not like] that." (A);</span>
|
|
<span class="plain">otherwise if the noun is the player:</span>
|
|
<span class="plain">say "[The actor] [touch] [us]." (B);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [touch] [the noun]." (C);</span>
|
|
<span class="plain">stop the action;</span>
|
|
<span class="plain">continue the action.</span>
|
|
|
|
<span class="plain">Report an actor touching (this is the report touching things rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [feel] nothing unexpected." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [touch] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP117"></a><b>§117. Waving. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Waving is an action applying to one thing.</span>
|
|
<span class="plain">The waving action translates into I6 as "Wave".</span>
|
|
|
|
<span class="plain">The specification of the waving action is "Waving in this sense is like</span>
|
|
<span class="plain">waving a sceptre: the item to be waved must be directly held (or worn)</span>
|
|
<span class="plain">by the actor.</span>
|
|
|
|
<span class="plain">In the Standard Rules there are no carry out rules for this action because</span>
|
|
<span class="plain">nothing in the standard Inform world model which reacts to it. The action</span>
|
|
<span class="plain">is provided for authors to hang more interesting behaviour onto for special</span>
|
|
<span class="plain">cases: say, waving a particular rusty iron rod with a star on the end."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP118"></a><b>§118. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor waving (this is the can't wave what's not held rule):</span>
|
|
<span class="plain">if the actor is not the holder of the noun:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "But [we] [aren't] holding [regarding the noun][those]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP119"></a><b>§119. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor waving (this is the report waving things rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [wave] [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [wave] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP120"></a><b>§120. Pulling. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Pulling is an action applying to one thing.</span>
|
|
<span class="plain">The Pulling action translates into I6 as "Pull".</span>
|
|
|
|
<span class="plain">The specification of the pulling action is "Pulling is the act of pulling</span>
|
|
<span class="plain">something not grossly larger than the actor by an amount which would not</span>
|
|
<span class="plain">substantially move it.</span>
|
|
|
|
<span class="plain">In the Standard Rules there are no carry out rules for this action because</span>
|
|
<span class="plain">nothing in the standard Inform world model which reacts to it. The action</span>
|
|
<span class="plain">is provided for authors to hang more interesting behaviour onto for special</span>
|
|
<span class="plain">cases: say, pulling a lever. ('The big red lever is a fixed in place device.</span>
|
|
<span class="plain">Instead of pulling the big red lever, try switching on the lever. Instead</span>
|
|
<span class="plain">of pushing the big red lever, try switching off the lever.')"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP121"></a><b>§121. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor pulling (this is the can't pull what's fixed in place rule):</span>
|
|
<span class="plain">if the noun is fixed in place:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [are] fixed in place." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pulling (this is the can't pull scenery rule):</span>
|
|
<span class="plain">if the noun is scenery:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [are] unable to." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pulling (this is the can't pull people rule):</span>
|
|
<span class="plain">if the noun is a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [might not like] that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP122"></a><b>§122. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor pulling (this is the report pulling rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "Nothing obvious [happen]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [pull] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP123"></a><b>§123. Pushing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Pushing is an action applying to one thing.</span>
|
|
<span class="plain">The Pushing action translates into I6 as "Push".</span>
|
|
|
|
<span class="plain">The specification of the pushing action is "Pushing is the act of pushing</span>
|
|
<span class="plain">something not grossly larger than the actor by an amount which would not</span>
|
|
<span class="plain">substantially move it. (See also the pushing it to action, which involves</span>
|
|
<span class="plain">a longer-distance push between rooms.)</span>
|
|
|
|
<span class="plain">In the Standard Rules there are no carry out rules for this action because</span>
|
|
<span class="plain">nothing in the standard Inform world model which reacts to it. The action</span>
|
|
<span class="plain">is provided for authors to hang more interesting behaviour onto for special</span>
|
|
<span class="plain">cases: say, pulling a lever. ('The big red lever is a fixed in place device.</span>
|
|
<span class="plain">Instead of pulling the big red lever, try switching on the lever. Instead</span>
|
|
<span class="plain">of pushing the big red lever, try switching off the lever.')"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP124"></a><b>§124. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor pushing something (this is the can't push what's fixed in place rule):</span>
|
|
<span class="plain">if the noun is fixed in place:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [are] fixed in place." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something (this is the can't push scenery rule):</span>
|
|
<span class="plain">if the noun is scenery:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [are] unable to." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something (this is the can't push people rule):</span>
|
|
<span class="plain">if the noun is a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [might not like] that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP125"></a><b>§125. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor pushing something (this is the report pushing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "Nothing obvious [happen]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [push] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP126"></a><b>§126. Turning. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Turning is an action applying to one thing.</span>
|
|
<span class="plain">The Turning action translates into I6 as "Turn".</span>
|
|
|
|
<span class="plain">The specification of the turning action is "Turning is the act of rotating</span>
|
|
<span class="plain">something - say, a dial.</span>
|
|
|
|
<span class="plain">In the Standard Rules there are no carry out rules for this action because</span>
|
|
<span class="plain">nothing in the standard Inform world model which reacts to it. The action</span>
|
|
<span class="plain">is provided for authors to hang more interesting behaviour onto for special</span>
|
|
<span class="plain">cases: say, turning a capstan."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP127"></a><b>§127. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor turning (this is the can't turn what's fixed in place rule):</span>
|
|
<span class="plain">if the noun is fixed in place:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [are] fixed in place." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor turning (this is the can't turn scenery rule):</span>
|
|
<span class="plain">if the noun is scenery:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [are] unable to." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor turning (this is the can't turn people rule):</span>
|
|
<span class="plain">if the noun is a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [might not like] that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP128"></a><b>§128. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor turning (this is the report turning rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "Nothing obvious [happen]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [turn] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP129"></a><b>§129. Pushing it to. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Pushing it to is an action applying to one thing and one visible thing.</span>
|
|
<span class="plain">The Pushing it to action translates into I6 as "PushDir".</span>
|
|
|
|
<span class="plain">The specification of the pushing it to action is "This action covers pushing</span>
|
|
<span class="plain">a large object, not being carried, so that the actor pushes it from one room</span>
|
|
<span class="plain">to another: for instance, pushing a bale of hay to the east.</span>
|
|
|
|
<span class="plain">This is rapidly converted into a special form of the going action. If the</span>
|
|
<span class="plain">noun object has the either/or property 'pushable between rooms', then the</span>
|
|
<span class="plain">action is converted to going by the 'standard pushing in directions rule'.</span>
|
|
<span class="plain">If that going action succeeds, then the original pushing it to action</span>
|
|
<span class="plain">stops; it's only if that fails that we run on into the 'block pushing in</span>
|
|
<span class="plain">directions rule', which then puts an end to the matter."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP130"></a><b>§130. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor pushing something to (this is the can't push unpushable things rule):</span>
|
|
<span class="plain">if the noun is not pushable between rooms:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [cannot] be pushed from place to place." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something to (this is the can't push to non-directions rule):</span>
|
|
<span class="plain">if the second noun is not a direction:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[regarding the noun][They] [aren't] a direction." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something to (this is the can't push vertically rule):</span>
|
|
<span class="plain">if the second noun is up or the second noun is down:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [cannot] be pushed up or down." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something to (this is the can't push from within rule):</span>
|
|
<span class="plain">if the noun encloses the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [cannot] be pushed from here." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something to (this is the standard pushing in directions rule):</span>
|
|
<span class="plain">convert to special going-with-push action.</span>
|
|
|
|
<span class="plain">Check an actor pushing something to (this is the block pushing in directions rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [cannot] be pushed from place to place." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP131"></a><b>§131. Squeezing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Squeezing is an action applying to one thing.</span>
|
|
<span class="plain">The Squeezing action translates into I6 as "Squeeze".</span>
|
|
|
|
<span class="plain">The specification of the squeezing action is "Squeezing is an action which</span>
|
|
<span class="plain">can conveniently vary from squeezing something hand-held, like a washing-up</span>
|
|
<span class="plain">liquid bottle, right up to squeezing a pillar in a bear hug.</span>
|
|
|
|
<span class="plain">In the Standard Rules there are no carry out rules for this action because</span>
|
|
<span class="plain">nothing in the standard Inform world model which reacts to it. The action</span>
|
|
<span class="plain">is provided for authors to hang more interesting behaviour onto for special</span>
|
|
<span class="plain">cases. A mildly fruity message is produced to players who attempt to</span>
|
|
<span class="plain">squeeze people, which is blocked by a check squeezing rule."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP132"></a><b>§132. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor squeezing (this is the innuendo about squeezing people rule):</span>
|
|
<span class="plain">if the noun is a person:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [might not like] that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP133"></a><b>§133. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor squeezing (this is the report squeezing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [achieve] nothing by this." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [squeeze] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP134"></a><b>§134. Saying yes. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 8 - Standard actions which always do nothing unless rules intervene</span>
|
|
|
|
<span class="plain">Saying yes is an action applying to nothing.</span>
|
|
<span class="plain">The Saying yes action translates into I6 as "Yes".</span>
|
|
|
|
<span class="plain">The specification of the saying yes action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP135"></a><b>§135. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor saying yes (this is the block saying yes rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "That was a rhetorical question." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP136"></a><b>§136. </b>Saying no.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Saying no is an action applying to nothing.</span>
|
|
<span class="plain">The Saying no action translates into I6 as "No".</span>
|
|
|
|
<span class="plain">The specification of the saying no action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP137"></a><b>§137. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor saying no (this is the block saying no rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "That was a rhetorical question." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP138"></a><b>§138. Burning. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Burning is an action applying to one thing.</span>
|
|
<span class="plain">The Burning action translates into I6 as "Burn".</span>
|
|
|
|
<span class="plain">The specification of the burning action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP139"></a><b>§139. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor burning (this is the block burning rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "This dangerous act [would achieve] little." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP140"></a><b>§140. Waking up. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Waking up is an action applying to nothing.</span>
|
|
<span class="plain">The Waking up action translates into I6 as "Wake".</span>
|
|
|
|
<span class="plain">The specification of the waking up action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP141"></a><b>§141. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor waking up (this is the block waking up rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "The dreadful truth [are], this [are not] a dream." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP142"></a><b>§142. Thinking. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Thinking is an action applying to nothing.</span>
|
|
<span class="plain">The Thinking action translates into I6 as "Think".</span>
|
|
|
|
<span class="plain">The specification of the thinking action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP143"></a><b>§143. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor thinking (this is the block thinking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "What a good idea." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP144"></a><b>§144. Smelling. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Smelling is an action applying to nothing or one thing.</span>
|
|
<span class="plain">The Smelling action translates into I6 as "Smell".</span>
|
|
|
|
<span class="plain">The specification of the smelling action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, replying only</span>
|
|
<span class="plain">that the player smells nothing unexpected."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP145"></a><b>§145. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor smelling (this is the report smelling rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [smell] nothing unexpected." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [sniff]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP146"></a><b>§146. Listening to. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Listening to is an action applying to nothing or one thing and abbreviable.</span>
|
|
<span class="plain">The Listening to action translates into I6 as "Listen".</span>
|
|
|
|
<span class="plain">The specification of the listening to action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, replying only</span>
|
|
<span class="plain">that the player hears nothing unexpected."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP147"></a><b>§147. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor listening to (this is the report listening rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [hear] nothing unexpected." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [listen]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP148"></a><b>§148. Tasting. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Tasting is an action applying to one thing.</span>
|
|
<span class="plain">The Tasting action translates into I6 as "Taste".</span>
|
|
|
|
<span class="plain">The specification of the tasting action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, replying only</span>
|
|
<span class="plain">that the player tastes nothing unexpected."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP149"></a><b>§149. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor tasting (this is the report tasting rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [taste] nothing unexpected." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [taste] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP150"></a><b>§150. Cutting. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Cutting is an action applying to one thing.</span>
|
|
<span class="plain">The Cutting action translates into I6 as "Cut".</span>
|
|
|
|
<span class="plain">The specification of the cutting action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP151"></a><b>§151. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor cutting (this is the block cutting rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Cutting [regarding the noun][them] up [would achieve] little." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP152"></a><b>§152. Jumping. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Jumping is an action applying to nothing.</span>
|
|
<span class="plain">The Jumping action translates into I6 as "Jump".</span>
|
|
|
|
<span class="plain">The specification of the jumping action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, simply reporting</span>
|
|
<span class="plain">a little jump on the spot."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP153"></a><b>§153. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor jumping (this is the report jumping rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [jump] on the spot." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [jump] on the spot." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP154"></a><b>§154. Tying it to. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Tying it to is an action applying to two things.</span>
|
|
<span class="plain">The Tying it to action translates into I6 as "Tie".</span>
|
|
|
|
<span class="plain">The specification of the tying it to action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP155"></a><b>§155. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor tying something to (this is the block tying rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [would achieve] nothing by this." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP156"></a><b>§156. Drinking. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Drinking is an action applying to one thing.</span>
|
|
<span class="plain">The Drinking action translates into I6 as "Drink".</span>
|
|
|
|
<span class="plain">The specification of the drinking action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP157"></a><b>§157. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor drinking (this is the block drinking rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There's] nothing suitable to drink here." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP158"></a><b>§158. Saying sorry. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Saying sorry is an action applying to nothing.</span>
|
|
<span class="plain">The Saying sorry action translates into I6 as "Sorry".</span>
|
|
|
|
<span class="plain">The specification of the saying sorry action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP159"></a><b>§159. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor saying sorry (this is the block saying sorry rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Oh, don't [if American dialect option is</span>
|
|
<span class="plain">active]apologize[otherwise]apologise[end if]." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP160"></a><b>§160. Swinging. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Swinging is an action applying to one thing.</span>
|
|
<span class="plain">The Swinging action translates into I6 as "Swing".</span>
|
|
|
|
<span class="plain">The specification of the swinging action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP161"></a><b>§161. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor swinging (this is the block swinging rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "[There's] nothing sensible to swing here." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP162"></a><b>§162. Rubbing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Rubbing is an action applying to one thing.</span>
|
|
<span class="plain">The Rubbing action translates into I6 as "Rub".</span>
|
|
|
|
<span class="plain">The specification of the rubbing action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, simply reporting</span>
|
|
<span class="plain">that it has happened."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP163"></a><b>§163. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor rubbing (this is the can't rub another person rule):</span>
|
|
<span class="plain">if the noun is a person who is not the actor:</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[The noun] [might not like] that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP164"></a><b>§164. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor rubbing (this is the report rubbing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [rub] [the noun]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [rub] [the noun]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP165"></a><b>§165. Setting it to. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Setting it to is an action applying to one thing and one topic.</span>
|
|
<span class="plain">The Setting it to action translates into I6 as "SetTo".</span>
|
|
|
|
<span class="plain">The specification of the setting it to action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP166"></a><b>§166. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor setting something to (this is the block setting it to rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "No, [we] [can't set] [regarding the noun][those] to anything." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP167"></a><b>§167. Waving hands. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Waving hands is an action applying to nothing.</span>
|
|
<span class="plain">The Waving hands action translates into I6 as "WaveHands".</span>
|
|
|
|
<span class="plain">The specification of the waving hands action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, simply reporting</span>
|
|
<span class="plain">a little wave of the hands."</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP168"></a><b>§168. </b>Report.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Report an actor waving hands (this is the report waving hands rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">if the action is not silent:</span>
|
|
<span class="plain">say "[We] [wave]." (A);</span>
|
|
<span class="plain">otherwise:</span>
|
|
<span class="plain">say "[The actor] [wave]." (B).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP169"></a><b>§169. Buying. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Buying is an action applying to one thing.</span>
|
|
<span class="plain">The Buying action translates into I6 as "Buy".</span>
|
|
|
|
<span class="plain">The specification of the buying action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP170"></a><b>§170. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor buying (this is the block buying rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">now the prior named object is nothing;</span>
|
|
<span class="plain">say "Nothing [are] on sale." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP171"></a><b>§171. Climbing. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Climbing is an action applying to one thing.</span>
|
|
<span class="plain">The Climbing action translates into I6 as "Climb".</span>
|
|
|
|
<span class="plain">The specification of the climbing action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP172"></a><b>§172. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor climbing (this is the block climbing rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "Little [are] to be achieved by that." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP173"></a><b>§173. Sleeping. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Sleeping is an action applying to nothing.</span>
|
|
<span class="plain">The Sleeping action translates into I6 as "Sleep".</span>
|
|
|
|
<span class="plain">The specification of the sleeping action is</span>
|
|
<span class="plain">"The Standard Rules define this action in only a minimal way, blocking it</span>
|
|
<span class="plain">with a check rule which stops it in all cases. It exists so that before</span>
|
|
<span class="plain">or instead rules can be written to make it do interesting things in special</span>
|
|
<span class="plain">cases. (Or to reconstruct the action as something more substantial, unlist</span>
|
|
<span class="plain">the block rule and supply carry out and report rules, together perhaps</span>
|
|
<span class="plain">with some further check rules.)"</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP174"></a><b>§174. </b>Check.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Check an actor sleeping (this is the block sleeping rule):</span>
|
|
<span class="plain">if the actor is the player:</span>
|
|
<span class="plain">say "[We] [aren't] feeling especially drowsy." (A);</span>
|
|
<span class="plain">stop the action.</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP175"></a><b>§175. Out of world actions. </b>We start with a brace of actions which control the (virtual) hardware of
|
|
the virtual machine: restore, save, quit, restart, verify, and transcript
|
|
on and off. All of these are implemented at the I6 level where, in fact,
|
|
they are delegated quickly to assembly language instructions for whichever
|
|
is the current VM: so these are close to the metal, as they say.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Section 9 - Standard actions which happen out of world</span>
|
|
|
|
<span class="plain">Quitting the game is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The quitting the game action translates into I6 as "Quit".</span>
|
|
|
|
<span class="plain">The quit the game rule is listed in the carry out quitting the game rulebook.</span>
|
|
<span class="plain">The quit the game rule translates into I6 as "QUIT_THE_GAME_R" with</span>
|
|
<span class="plain">"Are you sure you want to quit? " (A).</span>
|
|
|
|
<span class="plain">Saving the game is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The saving the game action translates into I6 as "Save".</span>
|
|
|
|
<span class="plain">The save the game rule is listed in the carry out saving the game rulebook.</span>
|
|
<span class="plain">The save the game rule translates into I6 as "SAVE_THE_GAME_R" with</span>
|
|
<span class="plain">"Save failed." (A),</span>
|
|
<span class="plain">"Ok." (B).</span>
|
|
|
|
<span class="plain">Restoring the game is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The restoring the game action translates into I6 as "Restore".</span>
|
|
|
|
<span class="plain">The restore the game rule is listed in the carry out restoring the game rulebook.</span>
|
|
<span class="plain">The restore the game rule translates into I6 as "RESTORE_THE_GAME_R" with</span>
|
|
<span class="plain">"Restore failed." (A),</span>
|
|
<span class="plain">"Ok." (B).</span>
|
|
|
|
<span class="plain">Restarting the game is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The restarting the game action translates into I6 as "Restart".</span>
|
|
|
|
<span class="plain">The restart the game rule is listed in the carry out restarting the game rulebook.</span>
|
|
<span class="plain">The restart the game rule translates into I6 as "RESTART_THE_GAME_R" with</span>
|
|
<span class="plain">"Are you sure you want to restart? " (A),</span>
|
|
<span class="plain">"Failed." (B).</span>
|
|
|
|
<span class="plain">Verifying the story file is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The verifying the story file action translates into I6 as "Verify".</span>
|
|
|
|
<span class="plain">The verify the story file rule is listed in the carry out verifying the story file rulebook.</span>
|
|
<span class="plain">The verify the story file rule translates into I6 as "VERIFY_THE_STORY_FILE_R" with</span>
|
|
<span class="plain">"The game file has verified as intact." (A),</span>
|
|
<span class="plain">"The game file did not verify as intact, and may be corrupt." (B).</span>
|
|
|
|
<span class="plain">Switching the story transcript on is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The switching the story transcript on action translates into I6 as "ScriptOn".</span>
|
|
|
|
<span class="plain">The switch the story transcript on rule is listed in the carry out switching the story</span>
|
|
<span class="plain">transcript on rulebook.</span>
|
|
<span class="plain">The switch the story transcript on rule translates into I6 as "SWITCH_TRANSCRIPT_ON_R" with</span>
|
|
<span class="plain">"Transcripting is already on." (A),</span>
|
|
<span class="plain">"Start of a transcript of" (B),</span>
|
|
<span class="plain">"Attempt to begin transcript failed." (C).</span>
|
|
|
|
<span class="plain">Switching the story transcript off is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The switching the story transcript off action translates into I6 as "ScriptOff".</span>
|
|
|
|
<span class="plain">The switch the story transcript off rule is listed in the carry out switching the story</span>
|
|
<span class="plain">transcript off rulebook.</span>
|
|
<span class="plain">The switch the story transcript off rule translates into I6 as "SWITCH_TRANSCRIPT_OFF_R" with</span>
|
|
<span class="plain">"Transcripting is already off." (A),</span>
|
|
<span class="plain">"[line break]End of transcript." (B),</span>
|
|
<span class="plain">"Attempt to end transcript failed." (C).</span>
|
|
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP176"></a><b>§176. </b>The VERSION command is not quite so close to the metal — it is implemented
|
|
in I6, at the end of the day — but it does involve reading the bytes of the
|
|
story file header, so it needs to take quite different forms for the
|
|
different formats being compiled to.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Requesting the story file version is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The requesting the story file version action translates into I6 as "Version".</span>
|
|
|
|
<span class="plain">The announce the story file version rule is listed in the carry out requesting the story</span>
|
|
<span class="plain">file version rulebook.</span>
|
|
<span class="plain">The announce the story file version rule translates into I6 as "ANNOUNCE_STORY_FILE_VERSION_R".</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP177"></a><b>§177. </b>There's really no very good reason why we provide the out-of-world command
|
|
SCORE but not (say) TIME, or any one of dozens of other traditional what's-my-status
|
|
commands: DIAGNOSE, say, or PLACES. But we are conservative on this; it's easy
|
|
for users or extensions to provide these verbs if they want them, and they are
|
|
not always appropriate for every project. Even SCORE is questionable, but its
|
|
removal would be a gesture too far.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Requesting the score is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The requesting the score action translates into I6 as "Score".</span>
|
|
|
|
<span class="plain">The announce the score rule is listed in the carry out requesting the score rulebook.</span>
|
|
<span class="plain">The announce the score rule translates into I6 as "ANNOUNCE_SCORE_R" with</span>
|
|
<span class="plain">"[if the story has ended]In that game you scored[otherwise]You have so far scored[end if]</span>
|
|
<span class="plain">[score] out of a possible [maximum score], in [turn count] turn[s]" (A),</span>
|
|
<span class="plain">", earning you the rank of " (B),</span>
|
|
<span class="plain">"[There] [are] no score in this story." (C),</span>
|
|
<span class="plain">"[bracket]Your score has just gone up by [number understood in words]</span>
|
|
<span class="plain">point[s].[close bracket]" (D),</span>
|
|
<span class="plain">"[bracket]Your score has just gone down by [number understood in words]</span>
|
|
<span class="plain">point[s].[close bracket]" (E).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP178"></a><b>§178. </b>It's perhaps clumsy to have three actions for switching the style of room
|
|
description, but this accords with I6 custom (and Infocom's, for that matter),
|
|
and does no harm.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Preferring abbreviated room descriptions is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The preferring abbreviated room descriptions action translates into I6 as "LMode3".</span>
|
|
|
|
<span class="plain">The prefer abbreviated room descriptions rule is listed in the carry out preferring</span>
|
|
<span class="plain">abbreviated room descriptions rulebook.</span>
|
|
<span class="plain">The prefer abbreviated room descriptions rule translates into I6 as "PREFER_ABBREVIATED_R".</span>
|
|
|
|
<span class="plain">The standard report preferring abbreviated room descriptions rule is listed in the</span>
|
|
<span class="plain">report preferring abbreviated room descriptions rulebook.</span>
|
|
<span class="plain">The standard report preferring abbreviated room descriptions rule translates into</span>
|
|
<span class="plain">I6 as "REP_PREFER_ABBREVIATED_R" with</span>
|
|
<span class="plain">" is now in its 'superbrief' mode, which always gives short descriptions</span>
|
|
<span class="plain">of locations (even if you haven't been there before)." (A).</span>
|
|
|
|
<span class="plain">Preferring unabbreviated room descriptions is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The preferring unabbreviated room descriptions action translates into I6 as "LMode2".</span>
|
|
|
|
<span class="plain">The prefer unabbreviated room descriptions rule is listed in the carry out preferring</span>
|
|
<span class="plain">unabbreviated room descriptions rulebook.</span>
|
|
<span class="plain">The prefer unabbreviated room descriptions rule translates into I6 as "PREFER_UNABBREVIATED_R".</span>
|
|
|
|
<span class="plain">The standard report preferring unabbreviated room descriptions rule is listed in the</span>
|
|
<span class="plain">report preferring unabbreviated room descriptions rulebook.</span>
|
|
<span class="plain">The standard report preferring unabbreviated room descriptions rule translates into</span>
|
|
<span class="plain">I6 as "REP_PREFER_UNABBREVIATED_R" with</span>
|
|
<span class="plain">" is now in its 'verbose' mode, which always gives long descriptions of</span>
|
|
<span class="plain">locations (even if you've been there before)." (A).</span>
|
|
|
|
<span class="plain">Preferring sometimes abbreviated room descriptions is an action out of world and</span>
|
|
<span class="plain">applying to nothing.</span>
|
|
<span class="plain">The preferring sometimes abbreviated room descriptions action translates into I6 as "LMode1".</span>
|
|
|
|
<span class="plain">The prefer sometimes abbreviated room descriptions rule is listed in the carry out</span>
|
|
<span class="plain">preferring sometimes abbreviated room descriptions rulebook.</span>
|
|
<span class="plain">The prefer sometimes abbreviated room descriptions rule translates into I6 as</span>
|
|
<span class="plain">"PREFER_SOMETIMES_ABBREVIATED_R".</span>
|
|
|
|
<span class="plain">The standard report preferring sometimes abbreviated room descriptions rule is listed</span>
|
|
<span class="plain">in the report preferring sometimes abbreviated room descriptions rulebook.</span>
|
|
<span class="plain">The standard report preferring sometimes abbreviated room descriptions rule translates</span>
|
|
<span class="plain">into I6 as "REP_PREFER_SOMETIMES_ABBR_R" with</span>
|
|
<span class="plain">" is now in its 'brief' printing mode, which gives long descriptions</span>
|
|
<span class="plain">of places never before visited and short descriptions otherwise." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP179"></a><b>§179. </b>Similarly, two different actions handle "notify" and "notify off".
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Switching score notification on is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The switching score notification on action translates into I6 as "NotifyOn".</span>
|
|
|
|
<span class="plain">The switch score notification on rule is listed in the carry out switching score</span>
|
|
<span class="plain">notification on rulebook.</span>
|
|
<span class="plain">The switch score notification on rule translates into I6 as "SWITCH_SCORE_NOTIFY_ON_R".</span>
|
|
|
|
<span class="plain">The standard report switching score notification on rule is listed in the report</span>
|
|
<span class="plain">switching score notification on rulebook.</span>
|
|
<span class="plain">The standard report switching score notification on rule translates into</span>
|
|
<span class="plain">I6 as "REP_SWITCH_NOTIFY_ON_R" with "Score notification on." (A).</span>
|
|
|
|
<span class="plain">Switching score notification off is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The switching score notification off action translates into I6 as "NotifyOff".</span>
|
|
|
|
<span class="plain">The switch score notification off rule is listed in the carry out switching score</span>
|
|
<span class="plain">notification off rulebook.</span>
|
|
<span class="plain">The switch score notification off rule translates into I6 as "SWITCH_SCORE_NOTIFY_OFF_R".</span>
|
|
|
|
<span class="plain">The standard report switching score notification off rule is listed in the report</span>
|
|
<span class="plain">switching score notification off rulebook.</span>
|
|
<span class="plain">The standard report switching score notification off rule translates into</span>
|
|
<span class="plain">I6 as "REP_SWITCH_NOTIFY_OFF_R" with "Score notification off." (A).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP180"></a><b>§180. </b>Lastly, the "pronouns" verb, which is perhaps more often used by people
|
|
debugging the I6 parser than by actual players.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="plain">Requesting the pronoun meanings is an action out of world and applying to nothing.</span>
|
|
<span class="plain">The requesting the pronoun meanings action translates into I6 as "Pronouns".</span>
|
|
|
|
<span class="plain">The announce the pronoun meanings rule is listed in the carry out requesting the</span>
|
|
<span class="plain">pronoun meanings rulebook.</span>
|
|
<span class="plain">The announce the pronoun meanings rule translates into I6 as "ANNOUNCE_PRONOUN_MEANINGS_R" with</span>
|
|
<span class="plain">"At the moment, " (A),</span>
|
|
<span class="plain">"means " (B),</span>
|
|
<span class="plain">"is unset" (C),</span>
|
|
<span class="plain">"no pronouns are known to the game." (D).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<hr class="tocbar">
|
|
<ul class="toc"><li><a href="S-act.html">Back to 'Activities'</a></li><li><a href="S-cg.html">Continue with 'Command Grammar'</a></li></ul><hr class="tocbar">
|
|
<!--End of weave-->
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|