X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=chapters%2F05.rst;h=f1342a93da49ccf5d25a9e1639482f13a5552793;hb=583066756567c4985f9f616b1f8a48936fef94e0;hp=138c850548b0c082a0872773dc17929782dc296b;hpb=4fdc1023c4a964cafafa137b12ac5943f0241746;p=ibg.git diff --git a/chapters/05.rst b/chapters/05.rst index 138c850..f1342a9 100644 --- a/chapters/05.rst +++ b/chapters/05.rst @@ -7,8 +7,14 @@ | *I was an innkeeper, who loved to carouse;* | *J was a joiner, and built up a house.* -.. image:: /images/picI.png - :align: left +.. only:: html + + .. image:: /images/picI.png + :align: left + +.. raw:: latex + + \dropcap{i} n even the simplest story, there's bound to be scope for the player to attempt activities that you hadn't anticipated. Sometimes there may be @@ -58,7 +64,7 @@ LISTEN TO NEST or LISTEN TO TREE, but fairly inappropriate here; we really need to substitute a more relevant response after LISTEN TO BIRD. Here's how we do it: -.. code-block:: inform6 +.. code-block:: inform Object bird "baby bird" forest with description "Too young to fly, the nestling tweets helplessly.", @@ -127,7 +133,7 @@ false`` then the interpreter carries on to perform the default action as though it hadn't been intercepted. Sometimes that's what you want it to do, but not here: if instead we'd written this: -.. code-block:: inform6 +.. code-block:: inform Object bird "baby bird" forest with description "Too young to fly, the nestling tweets helplessly.", @@ -174,7 +180,7 @@ might lead her to believe that she can go inside: Again, that isn't perhaps the most appropriate response, but it's easy to change: -.. code-block:: inform6 +.. code-block:: inform Object before_cottage "In front of a cottage" with description @@ -215,7 +221,7 @@ receives the obviously nonsensical reply "You can't see any such thing". That's easy to fix; we can add a new ``cottage`` object, making it a piece of ``scenery`` just like the ``tree``: -.. code-block:: inform6 +.. code-block:: inform Object cottage "tiny cottage" before_cottage with description "It's small and simple, but you're very happy here.", @@ -238,7 +244,7 @@ response: The situation here is similar to our LISTEN TO BIRD problem, and the solution we adopt is similar as well: -.. code-block:: inform6 +.. code-block:: inform Object cottage "tiny cottage" before_cottage with description "It's small and simple, but you're very happy here.", @@ -255,7 +261,7 @@ This time, however, we've done it using one statement rather than two. It turns out that the sequence "``print`` a string which ends with a newline character, and then ``return true``" is so frequently needed that there's a special statement which does it all. That is, this single statement (where -you'll note that the string doesn't need to end in ``^``):: +you'll note that the string *doesn't* need to end in ``^``):: print_ret "It's such a lovely day -- much too nice to go inside."; @@ -276,7 +282,7 @@ currently gives the completely misleading response "I don't think much is to be achieved by that"). Yet another opportunity to use a ``before`` property, but now with a difference. -.. code-block:: inform6 +.. code-block:: inform Object tree "tall sycamore tree" clearing with description @@ -340,7 +346,7 @@ interception not on an object-by-object basis, as we have been doing so far, but instead for every ``Drop`` which takes place in our troublesome ``top_of_tree`` room. This is what we have to write: -.. code-block:: inform6 +.. code-block:: inform Object top_of_tree "At the top of the tree" with description "You cling precariously to the trunk.", @@ -421,7 +427,7 @@ Of course, you might think that the standard message "Dropped" is slightly unhelpful in these non-standard circumstances. If you prefer to hint at what's just happened, you could use this alternative solution: -.. code-block:: inform6 +.. code-block:: inform Object top_of_tree "At the top of the tree" with description "You cling precariously to the trunk.", @@ -448,7 +454,7 @@ nest, or vice versa. It would be better not to end the game until we'd checked for the bird actually being in the nest; fortunately, that's easy to do: -.. code-block:: inform6 +.. code-block:: inform Object branch "wide firm bough" top_of_tree with description "It's flat enough to support a small object.", @@ -461,7 +467,7 @@ The extended ``if`` statement:: if (bird in nest && nest in branch) deadflag = 2; should now be read as: "Test whether the ``bird`` is currently in (or on) -the ``nest``, and whether the ``nest`` is currently on (or in) the +the ``nest``, *and* whether the ``nest`` is currently on (or in) the ``branch``; if both parts are ``true``, set the value of ``deadflag`` to 2; otherwise, do nothing".