Warning, /frameworks/syntax-highlighting/autotests/reference/highlight_tads3.t.ref is written in an unsupported language. File is not indexed.

0001 <Comment>// TADS3 Example File</Comment><br/>
0002 <Comment>// Source: https://www.tads.org/t3doc/doc/t3QuickStart.htm</Comment><br/>
0003 <Normal Text></Normal Text><br/>
0004 <Preprocessor>#charset </Preprocessor><String>"us-ascii"</String><br/>
0005 <Preprocessor>#include </Preprocessor><String><adv3.h></String><br/>
0006 <Preprocessor>#include </Preprocessor><String><en_us.h></String><br/>
0007 <Normal Text></Normal Text><br/>
0008 <Normal Text>versionInfo: GameID</Normal Text><br/>
0009 <Normal Text>    IFID </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'558c20af-6559-477a-9f98-b7b4274cd304</ValString><String>'</String><br/>
0010 <Normal Text>    name </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'The Best Burglar</ValString><String>'</String><br/>
0011 <Normal Text>    byline </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'by Eric Eve</ValString><String>'</String><br/>
0012 <Normal Text>    htmlByline </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'by </ValString><HTML Tag><a href="mailto:eric.eve@hmc.ox.ac.uk"></HTML Tag><br/>
0013 <ValString>                  Eric Eve</ValString><HTML Tag></a></HTML Tag><String>'</String><br/>
0014 <Normal Text>    version </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'3</ValString><String>'</String><br/>
0015 <Normal Text>    authorEmail </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'Eric Eve </ValString><HTML Tag><eric.eve@hmc.ox.ac.uk></HTML Tag><String>'</String><br/>
0016 <Normal Text>    desc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'You are the world</ValString><Backslash Code>\'</Backslash Code><ValString>s best burglar faced with the greatest challenge</ValString><br/>
0017 <ValString>        of your felonious career.</ValString><String>'</String><br/>
0018 <Normal Text>    htmlDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'You are the world</ValString><Backslash Code>\'</Backslash Code><ValString>s best burglar faced with the greatest</ValString><br/>
0019 <ValString>        challenge of your felonious career.</ValString><String>'</String><br/>
0020 <Normal Text>;</Normal Text><br/>
0021 <Normal Text></Normal Text><br/>
0022 <Normal Text>gameMain: GameMainDef</Normal Text><br/>
0023 <Normal Text>    </Normal Text><Comment>/* the initial player character is 'me' */</Comment><br/>
0024 <Normal Text>    initialPlayerChar </Normal Text><Symbol>=</Symbol><Normal Text> me</Normal Text><br/>
0025 <Normal Text></Normal Text><br/>
0026 <Normal Text>    showIntro</Normal Text><Symbol>()</Symbol><br/>
0027 <Normal Text>    {</Normal Text><br/>
0028 <Normal Text>        </Normal Text><String>"</String><HTML Tag><b></HTML Tag><String>The Best Burglar</String><HTML Tag></b></HTML Tag><Backslash Code>\n</Backslash Code><String>Well, you've got this far. Now it's just a</String><br/>
0029 <String>        quick nip inside the house and out again carrying the Orb of Ultimate</String><br/>
0030 <String>        Satisfaction, an object that no burglar has ever managed to steal</String><br/>
0031 <String>        before. If you can pull it off you're sure to win the Burglar of the</String><br/>
0032 <String>        Year Award, putting you at the pinnacle of your profession.</String><Backslash Code>\b</Backslash Code><String>"</String><Normal Text>;</Normal Text><br/>
0033 <Normal Text>    }</Normal Text><br/>
0034 <Normal Text></Normal Text><br/>
0035 <Normal Text>    showGoodbye</Normal Text><Symbol>()</Symbol><br/>
0036 <Normal Text>    {</Normal Text><br/>
0037 <Normal Text>        </Normal Text><String>"Thanks for playing! "</String><Normal Text>;</Normal Text><br/>
0038 <Normal Text>    }</Normal Text><br/>
0039 <Normal Text>;</Normal Text><br/>
0040 <Normal Text></Normal Text><br/>
0041 <Normal Text>startRoom: OutdoorRoom </Normal Text><ValString>'Driveway</ValString><String>'</String><br/>
0042 <Normal Text>    </Normal Text><String>"The large red-brick Tudor house stands immediately to the north of this end</String><br/>
0043 <String>    of the driveway, while the drive back to the road where you left your</String><br/>
0044 <String>    getaway vehicle runs off though a belt of trees to the southwest."</String><br/>
0045 <Normal Text></Normal Text><br/>
0046 <Normal Text>    roomFirstDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"Here you are in the drive of Number 305 Erehwon Avenue,</String><br/>
0047 <String>        with the great house you've come to burgle standing just before you to</String><br/>
0048 <String>        the north. The drive back to the road where you left your getaway</String><br/>
0049 <String>        vehicle runs off though a belt of trees to the southwest."</String><br/>
0050 <Normal Text></Normal Text><br/>
0051 <Normal Text>    north </Normal Text><Symbol>=</Symbol><Normal Text> frontDoor</Normal Text><br/>
0052 <Normal Text>    </Normal Text><Keyword>in</Keyword><Normal Text> asExit</Normal Text><Symbol>(</Symbol><Normal Text>north</Normal Text><Symbol>)</Symbol><br/>
0053 <Normal Text>    southwest </Normal Text><Symbol>=</Symbol><Normal Text> drive</Normal Text><br/>
0054 <Normal Text>;</Normal Text><br/>
0055 <Normal Text></Normal Text><br/>
0056 <Symbol>+</Symbol><Normal Text> me: Actor</Normal Text><br/>
0057 <Normal Text>    pcDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"You're Alexis Lightfinger, burglar extraordinaire, the most</String><br/>
0058 <String>        professional thief in the known universe; but you're on a job now, so</String><br/>
0059 <String>        you don't have time for the narcissistic indulgence of admiring your own</String><br/>
0060 <String>        appearance. You're far too professional not to have come fully prepared,</String><br/>
0061 <String>        so there's no practical need to look yourself over again. "</String><br/>
0062 <Normal Text>;</Normal Text><br/>
0063 <Normal Text></Normal Text><br/>
0064 <Symbol>++</Symbol><Normal Text> Container </Normal Text><ValString>'large white swag bag*bags</ValString><String>'</String><Normal Text> </Normal Text><ValString>'swag bag</ValString><String>'</String><br/>
0065 <Normal Text>    </Normal Text><String>"It's a large white bag with </String><HTML Tag><q></HTML Tag><String>SWAG</String><HTML Tag></q></HTML Tag><String> printed on it in very large</String><br/>
0066 <String>    letters. Everyone knows that no real burglar would ever carry such a thing,</String><br/>
0067 <String>    so by carrying it you know no one will take you for a real burglar. Cunning,</String><br/>
0068 <String>    eh? "</String><br/>
0069 <Normal Text>;</Normal Text><br/>
0070 <Normal Text></Normal Text><br/>
0071 <Symbol>+</Symbol><Normal Text> frontDoor: LockableWithKey</Normal Text><Symbol>,</Symbol><Normal Text> Door </Normal Text><ValString>'solid oak front door*doors</ValString><String>'</String><Normal Text> </Normal Text><ValString>'front door</ValString><String>'</String><br/>
0072 <Normal Text>    </Normal Text><String>"The lintel above the front door is carved with the date 1589, presumably</String><br/>
0073 <String>    the date the house was built. The door itself is made of solid oak. "</String><br/>
0074 <Normal Text>    keyList </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>[</Symbol><Normal Text>brassKey</Normal Text><Symbol>]</Symbol><br/>
0075 <Normal Text></Normal Text><br/>
0076 <Normal Text>    makeOpen</Normal Text><Symbol>(</Symbol><Normal Text>stat</Normal Text><Symbol>)</Symbol><br/>
0077 <Normal Text>    {</Normal Text><br/>
0078 <Normal Text>        </Normal Text><Keyword>inherited</Keyword><Symbol>(</Symbol><Normal Text>stat</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0079 <Normal Text>        </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Normal Text>stat</Normal Text><Symbol>)</Symbol><br/>
0080 <Normal Text>            achievement.awardPointsOnce</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0081 <Normal Text>    }</Normal Text><br/>
0082 <Normal Text></Normal Text><br/>
0083 <Normal Text>    achievement: Achievement { </Normal Text><Symbol>+</Symbol><Decimal>10</Decimal><Normal Text> </Normal Text><String>"opening the front door"</String><Normal Text> }</Normal Text><br/>
0084 <Normal Text></Normal Text><br/>
0085 <Normal Text>;</Normal Text><br/>
0086 <Normal Text></Normal Text><br/>
0087 <Symbol>+</Symbol><Normal Text> flowerPot: ComplexContainer </Normal Text><ValString>'terracotta small flower flowerpot/pot*pots</ValString><String>'</String><br/>
0088 <Normal Text>    </Normal Text><ValString>'flower pot</ValString><String>'</String><br/>
0089 <Normal Text>    </Normal Text><String>"It's a perfectly ordinary small terracota pot, though it looks like no</String><br/>
0090 <String>    one's got round to putting a plant in it yet. "</String><br/>
0091 <Normal Text>    subContainer: ComplexComponent</Normal Text><Symbol>,</Symbol><Normal Text> Container { bulkCapacity </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>3</Decimal><Normal Text>}</Normal Text><br/>
0092 <Normal Text>    subUnderside: ComplexComponent</Normal Text><Symbol>,</Symbol><Normal Text> Underside { }</Normal Text><br/>
0093 <Normal Text></Normal Text><br/>
0094 <Normal Text>    initSpecialDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"A small flower pot rests on the ground not far from the</String><br/>
0095 <String>        front door. "</String><br/>
0096 <Normal Text></Normal Text><br/>
0097 <Normal Text>    bulk </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>3</Decimal><br/>
0098 <Normal Text>    bulkCapacity </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>3</Decimal><br/>
0099 <Normal Text>;</Normal Text><br/>
0100 <Normal Text></Normal Text><br/>
0101 <Symbol>++</Symbol><Normal Text> brassKey: Hidden</Normal Text><Symbol>,</Symbol><Normal Text> Key </Normal Text><ValString>'small brass key*keys</ValString><String>'</String><Normal Text> </Normal Text><ValString>'small brass key</ValString><String>'</String><br/>
0102 <Normal Text>    </Normal Text><String>"It's an ordinary enough small brass key. "</String><br/>
0103 <Normal Text>    subLocation </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>&</Symbol><Normal Text>subUnderside</Normal Text><br/>
0104 <Normal Text>;</Normal Text><br/>
0105 <Normal Text></Normal Text><br/>
0106 <Symbol>+</Symbol><Normal Text> Enterable </Normal Text><Symbol>-></Symbol><Normal Text> frontDoor </Normal Text><ValString>'large red red-brick tudor house/mansion/front</ValString><br/>
0107 <ValString>    *houses*buildings</ValString><String>'</String><Normal Text> </Normal Text><ValString>'house</ValString><String>'</String><br/>
0108 <Normal Text>    </Normal Text><String>"It's a large red-brick Tudor house with mullioned windows, climbing</String><br/>
0109 <String>    creepers and the date 1589 carved over the door. "</String><br/>
0110 <Normal Text>;</Normal Text><br/>
0111 <Normal Text></Normal Text><br/>
0112 <Symbol>++</Symbol><Normal Text> Component </Normal Text><ValString>'(door) carved lintel</ValString><String>'</String><Normal Text> </Normal Text><ValString>'lintel</ValString><String>'</String><br/>
0113 <Normal Text>    </Normal Text><String>"Its most noteworthy feature is the date 1589 carved into it. "</String><br/>
0114 <Normal Text>;</Normal Text><br/>
0115 <Normal Text></Normal Text><br/>
0116 <Symbol>+</Symbol><Normal Text> Decoration </Normal Text><ValString>'mullioned windows</ValString><String>'</String><Normal Text> </Normal Text><ValString>'windows</ValString><String>'</String><br/>
0117 <Normal Text>    </Normal Text><String>"They're architecturally attractive, no doubt, but not especially helpful to</String><br/>
0118 <String>    burglars. "</String><br/>
0119 <Normal Text></Normal Text><br/>
0120 <Normal Text>    notImportantMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'It</ValString><Backslash Code>\'</Backslash Code><ValString>s a matter of professional pride with you never to</ValString><br/>
0121 <ValString>        mess with windows. </ValString><String>'</String><br/>
0122 <Normal Text>    isPlural </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>true</Keyword><br/>
0123 <Normal Text>;</Normal Text><br/>
0124 <Normal Text></Normal Text><br/>
0125 <Symbol>+</Symbol><Normal Text> Decoration </Normal Text><ValString>'green climbing ivy/creepers/creeper</ValString><String>'</String><Normal Text> </Normal Text><ValString>'creepers</ValString><String>'</String><br/>
0126 <Normal Text>    </Normal Text><String>"The front of the house is festooned with green creepers -- ivy, perhaps,</String><br/>
0127 <String>    but botany was never your strong point since in the main plants aren't</String><br/>
0128 <String>    worth burgling. "</String><br/>
0129 <Normal Text></Normal Text><br/>
0130 <Normal Text>    notImportantMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'The creepers can</ValString><Backslash Code>\'</Backslash Code><ValString>t help you burgle the house -- they</ValString><Backslash Code>\'</Backslash Code><ValString>re</ValString><br/>
0131 <ValString>        certainly not strong enough to climb and they</ValString><Backslash Code>\'</Backslash Code><ValString>re certainly not worth</ValString><br/>
0132 <ValString>        stealing -- so you may as well leave them alone. </ValString><String>'</String><br/>
0133 <Normal Text>    isPlural </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>true</Keyword><br/>
0134 <Normal Text>;</Normal Text><br/>
0135 <Normal Text></Normal Text><br/>
0136 <Symbol>+</Symbol><Normal Text> drive: PathPassage </Normal Text><ValString>'drive/path/avenue</ValString><String>'</String><Normal Text> </Normal Text><ValString>'drive</ValString><String>'</String><br/>
0137 <Normal Text>    </Normal Text><String>"The drive leading back to the road runs off through a belt of trees to the</String><br/>
0138 <String>    southwest. "</String><br/>
0139 <Normal Text></Normal Text><br/>
0140 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>TravelVia</Normal Text><Symbol>)</Symbol><br/>
0141 <Normal Text>    {</Normal Text><br/>
0142 <Normal Text>        action</Normal Text><Symbol>()</Symbol><br/>
0143 <Normal Text>        {</Normal Text><br/>
0144 <Normal Text>            </Normal Text><String>"You retrace your steps back to the road, where your trusty unmarked</String><br/>
0145 <String>            burglarmobile is still parked, ready for your quick getaway. "</String><Normal Text>;</Normal Text><br/>
0146 <Normal Text></Normal Text><br/>
0147 <Normal Text>            </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Normal Text>orb.isIn</Normal Text><Symbol>(</Symbol><Normal Text>me</Normal Text><Symbol>))</Symbol><br/>
0148 <Normal Text>            {</Normal Text><br/>
0149 <Normal Text>                </Normal Text><String>"Congratulations! You have got away with the Orb of Ultimate</String><br/>
0150 <String>                Satisfaction, a feat never before performed. As you slip the orb</String><br/>
0151 <String>                onto the back seat of your car and climb into the driver's seat</String><br/>
0152 <String>                you tell yourself that you're now absolutely certain to win</String><br/>
0153 <String>                the Burglar of the Year Award!</String><Backslash Code>\b</Backslash Code><String>"</String><Normal Text>;</Normal Text><br/>
0154 <Normal Text></Normal Text><br/>
0155 <Normal Text>                achievement.awardPointsOnce</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0156 <Normal Text></Normal Text><br/>
0157 <Normal Text>                finishGameMsg</Normal Text><Symbol>(</Symbol><Normal Text>ftVictory</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>[</Symbol><Normal Text>finishOptionUndo</Normal Text><Symbol>,</Symbol><br/>
0158 <Normal Text>                    finishOptionFullScore</Normal Text><Symbol>])</Symbol><Normal Text>;</Normal Text><br/>
0159 <Normal Text>            }</Normal Text><br/>
0160 <Normal Text>            </Normal Text><Keyword>else</Keyword><br/>
0161 <Normal Text>            {</Normal Text><br/>
0162 <Normal Text>                </Normal Text><String>"It's a shame you didn't manage to steal the orb, though.</String><br/>
0163 <String>                Without it you'll never win the Burglar of the Year Award</String><br/>
0164 <String>                now.</String><Backslash Code>\b</Backslash Code><String>"</String><Normal Text>;</Normal Text><br/>
0165 <Normal Text></Normal Text><br/>
0166 <Normal Text>                finishGameMsg</Normal Text><Symbol>(</Symbol><Normal Text>ftFailure</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>[</Symbol><Normal Text>finishOptionUndo</Normal Text><Symbol>])</Symbol><Normal Text>;</Normal Text><br/>
0167 <Normal Text>            }</Normal Text><br/>
0168 <Normal Text>        }</Normal Text><br/>
0169 <Normal Text>    }</Normal Text><br/>
0170 <Normal Text></Normal Text><br/>
0171 <Normal Text>    okayRubMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'What -- all of it? That may take a while! </ValString><String>'</String><br/>
0172 <Normal Text>    achievement: Achievement { </Normal Text><Symbol>+</Symbol><Decimal>10</Decimal><Normal Text> </Normal Text><String>"getting away with the orb"</String><Normal Text> }</Normal Text><br/>
0173 <Normal Text>;</Normal Text><br/>
0174 <Normal Text></Normal Text><br/>
0175 <Symbol>+</Symbol><Normal Text> Decoration </Normal Text><ValString>'belt/trees</ValString><String>'</String><Normal Text> </Normal Text><ValString>'trees</ValString><String>'</String><br/>
0176 <Normal Text>    </Normal Text><String>"The trees are in full leaf, which is good, because they hide what you're</String><br/>
0177 <String>    doing from the road. "</String><br/>
0178 <Normal Text></Normal Text><br/>
0179 <Normal Text>    notImportantMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'The trees are doing a good job of hiding you from the</ValString><br/>
0180 <ValString>        road, so you may as well leave them alone. It</ValString><Backslash Code>\'</Backslash Code><ValString>s not as if they</ValString><Backslash Code>\'</Backslash Code><ValString>re</ValString><br/>
0181 <ValString>        something you could steal, after all. </ValString><String>'</String><br/>
0182 <Normal Text>;</Normal Text><br/>
0183 <Normal Text></Normal Text><br/>
0184 <Normal Text>hallway: Room </Normal Text><ValString>'Hallway</ValString><String>'</String><br/>
0185 <Normal Text>    </Normal Text><String>"This hall is or grand proportions but pretty bare. The front door lies to</String><br/>
0186 <String>    the south and other exits lead east, north and west. "</String><br/>
0187 <Normal Text></Normal Text><br/>
0188 <Normal Text>    south </Normal Text><Symbol>=</Symbol><Normal Text> hallDoor</Normal Text><br/>
0189 <Normal Text>    out asExit</Normal Text><Symbol>(</Symbol><Normal Text>south</Normal Text><Symbol>)</Symbol><br/>
0190 <Normal Text>    west </Normal Text><Symbol>=</Symbol><Normal Text> study</Normal Text><br/>
0191 <Normal Text>    north: FakeConnector { </Normal Text><String>"You're pretty sure that only leads to the kitchen,</String><br/>
0192 <String>        and you haven't come here to cook a meal. "</String><Normal Text> }</Normal Text><br/>
0193 <Normal Text></Normal Text><br/>
0194 <Normal Text>    east: DeadEndConnector { </Normal Text><ValString>'the living room</ValString><String>'</String><Normal Text> </Normal Text><String>"You </String><Embedded Expression><<one of>></Embedded Expression><String>walk through the</String><br/>
0195 <String>        doorway and find yourself in</String><Embedded Expression><<or>></Embedded Expression><String>return to</String><Embedded Expression><<stopping>></Embedded Expression><String> the living room</String><br/>
0196 <String>        where you take </String><Embedded Expression><<one of>></Embedded Expression><String> a </String><Embedded Expression><<or>></Embedded Expression><String>another</String><Embedded Expression><<stopping>></Embedded Expression><String> quick look around,</String><br/>
0197 <String>        but </String><Embedded Expression><<one of>><<or>></Embedded Expression><String> once again</String><Embedded Expression><<stopping>></Embedded Expression><String> failing to find anything of</String><br/>
0198 <String>        interest you quickly return to the hall. "</String><Normal Text>}</Normal Text><br/>
0199 <Normal Text>;</Normal Text><br/>
0200 <Normal Text></Normal Text><br/>
0201 <Symbol>+</Symbol><Normal Text> hallDoor: Lockable</Normal Text><Symbol>,</Symbol><Normal Text> Door </Normal Text><Symbol>-></Symbol><Normal Text> frontDoor </Normal Text><ValString>'front door*doors</ValString><String>'</String><Normal Text> </Normal Text><ValString>'front door</ValString><String>'</String><br/>
0202 <Normal Text>;</Normal Text><br/>
0203 <Normal Text></Normal Text><br/>
0204 <Symbol>+</Symbol><Normal Text> table:Surface </Normal Text><ValString>'small wooden mahogany side table/legs*tables</ValString><String>'</String><Normal Text> </Normal Text><ValString>'small table</ValString><String>'</String><br/>
0205 <Normal Text>    </Normal Text><String>"It's a small mahogany table standing on four thin legs. "</String><br/>
0206 <Normal Text>    initSpecialDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"A small table rests by the east wall. "</String><br/>
0207 <Normal Text>    bulk </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><br/>
0208 <Normal Text></Normal Text><br/>
0209 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Take</Normal Text><Symbol>)</Symbol><br/>
0210 <Normal Text>    {</Normal Text><br/>
0211 <Normal Text>        check</Normal Text><Symbol>()</Symbol><br/>
0212 <Normal Text>        {</Normal Text><br/>
0213 <Normal Text>            </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Normal Text>contents.length </Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><Symbol>)</Symbol><br/>
0214 <Normal Text>                failCheck</Normal Text><Symbol>(</Symbol><ValString>'It</ValString><Backslash Code>\'</Backslash Code><ValString>s probably not a very good idea to try picking</ValString><br/>
0215 <ValString>                    up the table while </ValString><HTML Tag><<contents[1].nameIs></HTML Tag><ValString>> still on it. </ValString><String>'</String><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0216 <Normal Text>        }</Normal Text><br/>
0217 <Normal Text>    }</Normal Text><br/>
0218 <Normal Text>;</Normal Text><br/>
0219 <Normal Text></Normal Text><br/>
0220 <Symbol>++</Symbol><Normal Text> vase: Container </Normal Text><ValString>'cheap china floral vase/pattern</ValString><String>'</String><Normal Text> </Normal Text><ValString>'vase</ValString><String>'</String><br/>
0221 <Normal Text>    </Normal Text><String>"It's only a cheap thing, made of china but painted in a tasteless floral</String><br/>
0222 <String>    pattern using far too many primary colours. "</String><br/>
0223 <Normal Text></Normal Text><br/>
0224 <Normal Text>    bulk </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>3</Decimal><br/>
0225 <Normal Text>    bulkCapacity </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>3</Decimal><br/>
0226 <Normal Text>;</Normal Text><br/>
0227 <Normal Text></Normal Text><br/>
0228 <Symbol>+++</Symbol><Normal Text> silverKey: Hidden</Normal Text><Symbol>,</Symbol><Normal Text> Key </Normal Text><ValString>'small silver key*keys</ValString><String>'</String><Normal Text> </Normal Text><ValString>'small silver key</ValString><String>'</String><br/>
0229 <Normal Text>;</Normal Text><br/>
0230 <Normal Text></Normal Text><br/>
0231 <Normal Text>study: Room </Normal Text><ValString>'Study</ValString><String>'</String><br/>
0232 <Normal Text>    </Normal Text><String>"This study is much as you would expect: somewhat spartan. A desk stands in</String><br/>
0233 <String>    the middle of the room with a chair placed just behind it. A </String><Embedded Expression><<if</Embedded Expression><br/>
0234 <Embedded Expression>      picture.moved>></Embedded Expression><String>safe is built into </String><Embedded Expression><<else>></Embedded Expression><String> rather bland painting hangs on</String><br/>
0235 <String>    </String><Embedded Expression><<end>></Embedded Expression><String> the west wall. The way out is to the east. "</String><br/>
0236 <Normal Text>    east </Normal Text><Symbol>=</Symbol><Normal Text> hallway</Normal Text><br/>
0237 <Normal Text>    out asExit</Normal Text><Symbol>(</Symbol><Normal Text>east</Normal Text><Symbol>)</Symbol><br/>
0238 <Normal Text>;</Normal Text><br/>
0239 <Normal Text></Normal Text><br/>
0240 <Symbol>+</Symbol><Normal Text> desk: Heavy</Normal Text><Symbol>,</Symbol><Normal Text> Platform </Normal Text><ValString>'plain wooden desk</ValString><String>'</String><Normal Text> </Normal Text><ValString>'desk</ValString><String>'</String><br/>
0241 <Normal Text>    </Normal Text><String>"It's a plain wooden desk with a single drawer. "</String><br/>
0242 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Open</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>Open</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>)</Symbol><br/>
0243 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Close</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>Close</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>)</Symbol><br/>
0244 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>LookIn</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>LookIn</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>)</Symbol><br/>
0245 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>UnlockWith</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>UnlockWith</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>,</Symbol><Normal Text> IndirectObject</Normal Text><Symbol>)</Symbol><br/>
0246 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>LockWith</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>LockWith</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>,</Symbol><Normal Text> IndirectObject</Normal Text><Symbol>)</Symbol><br/>
0247 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Lock</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>Lock</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>)</Symbol><br/>
0248 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Unlock</Normal Text><Symbol>)</Symbol><Normal Text> remapTo</Normal Text><Symbol>(</Symbol><Normal Text>Unlock</Normal Text><Symbol>,</Symbol><Normal Text> drawer</Normal Text><Symbol>)</Symbol><br/>
0249 <Normal Text>;</Normal Text><br/>
0250 <Normal Text></Normal Text><br/>
0251 <Symbol>++</Symbol><Normal Text> drawer: KeyedContainer</Normal Text><Symbol>,</Symbol><Normal Text> Component </Normal Text><ValString>'(desk) drawer*drawers</ValString><String>'</String><Normal Text> </Normal Text><ValString>'drawer</ValString><String>'</String><br/>
0252 <Normal Text>    </Normal Text><String>"It's an ordinary desk drawer with a small silver lock. "</String><br/>
0253 <Normal Text>    keyList </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>[</Symbol><Normal Text>silverKey</Normal Text><Symbol>]</Symbol><br/>
0254 <Normal Text>;</Normal Text><br/>
0255 <Normal Text></Normal Text><br/>
0256 <Symbol>+++</Symbol><Normal Text> notebook: Readable </Normal Text><ValString>'small bright red notebook/book/cover/pages</ValString><String>'</String><br/>
0257 <Normal Text>    </Normal Text><ValString>'small red notebook</ValString><String>'</String><br/>
0258 <Normal Text>    </Normal Text><String>"It's a small notebook with a bright red cover. "</String><br/>
0259 <Normal Text></Normal Text><br/>
0260 <Normal Text>    readDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"You open the notebook and flick through its pages. The only</String><br/>
0261 <String>        thing you find of any interest is a page with </String><HTML Tag><q></HTML Tag><String>SAFE DATE</String><HTML Tag></q></HTML Tag><String> scrawled</String><br/>
0262 <String>        across it. After satisfying yourself that the notebook contains nothing</String><br/>
0263 <String>        else of any potential relevance you snap it shut again. </String><HTML Tag><.reveal</HTML Tag><br/>
0264 <HTML Tag>        safe-date></HTML Tag><String>"</String><br/>
0265 <Normal Text></Normal Text><br/>
0266 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Open</Normal Text><Symbol>)</Symbol><Normal Text> asDobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Read</Normal Text><Symbol>)</Symbol><br/>
0267 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>LookIn</Normal Text><Symbol>)</Symbol><Normal Text> asDobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Read</Normal Text><Symbol>)</Symbol><br/>
0268 <Normal Text></Normal Text><br/>
0269 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Read</Normal Text><Symbol>)</Symbol><br/>
0270 <Normal Text>    {</Normal Text><br/>
0271 <Normal Text>        action</Normal Text><Symbol>()</Symbol><br/>
0272 <Normal Text>        {</Normal Text><br/>
0273 <Normal Text>            </Normal Text><Keyword>inherited</Keyword><Normal Text>;</Normal Text><br/>
0274 <Normal Text>            achievement.awardPointsOnce</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0275 <Normal Text>        }</Normal Text><br/>
0276 <Normal Text>    }</Normal Text><br/>
0277 <Normal Text></Normal Text><br/>
0278 <Normal Text>    cannotCloseMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'It</ValString><Backslash Code>\'</Backslash Code><ValString>s already closed. </ValString><String>'</String><br/>
0279 <Normal Text>    achievement: Achievement { </Normal Text><Symbol>+</Symbol><Decimal>5</Decimal><Normal Text> </Normal Text><String>"reading the notebook"</String><Normal Text> }</Normal Text><br/>
0280 <Normal Text>;</Normal Text><br/>
0281 <Normal Text></Normal Text><br/>
0282 <Symbol>+</Symbol><Normal Text> CustomImmovable</Normal Text><Symbol>,</Symbol><Normal Text> Chair </Normal Text><ValString>'red office swivel chair</ValString><String>'</String><Normal Text> </Normal Text><ValString>'chair</ValString><String>'</String><br/>
0283 <Normal Text>    </Normal Text><String>"It's a typical office swivel chair, covered in red fabric. "</String><br/>
0284 <Normal Text></Normal Text><br/>
0285 <Normal Text>    cannotTakeMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'You see no reason to burden yourself with such a useless</ValString><br/>
0286 <ValString>        object; that would be quite unprofessional. </ValString><String>'</String><br/>
0287 <Normal Text></Normal Text><br/>
0288 <Normal Text>;</Normal Text><br/>
0289 <Normal Text></Normal Text><br/>
0290 <Symbol>+</Symbol><Normal Text> picture: RoomPartItem</Normal Text><Symbol>,</Symbol><Normal Text> Thing </Normal Text><ValString>'rather bland picture/painting/landscape</ValString><String>'</String><br/>
0291 <Normal Text>    </Normal Text><ValString>'picture</ValString><String>'</String><br/>
0292 <Normal Text>    </Normal Text><String>"It's a landscape, pleasantly executed enough, but of no great distinction</String><br/>
0293 <String>    and definitely not worth the bother of stealing. "</String><br/>
0294 <Normal Text></Normal Text><br/>
0295 <Normal Text>    initNominalRoomPartLocation </Normal Text><Symbol>=</Symbol><Normal Text> defaultWestWall</Normal Text><br/>
0296 <Normal Text>    initSpecialDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"A rather bland painting hangs on the west wall. "</String><br/>
0297 <Normal Text>    isListed </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>moved</Normal Text><Symbol>)</Symbol><br/>
0298 <Normal Text></Normal Text><br/>
0299 <Normal Text>    bulk </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>8</Decimal><br/>
0300 <Normal Text></Normal Text><br/>
0301 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>LookBehind</Normal Text><Symbol>)</Symbol><br/>
0302 <Normal Text>    {</Normal Text><br/>
0303 <Normal Text>        action</Normal Text><Symbol>()</Symbol><br/>
0304 <Normal Text>        {</Normal Text><br/>
0305 <Normal Text>            </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Normal Text>moved</Normal Text><Symbol>)</Symbol><br/>
0306 <Normal Text>                </Normal Text><Keyword>inherited</Keyword><Normal Text>;</Normal Text><br/>
0307 <Normal Text>            </Normal Text><Keyword>else</Keyword><br/>
0308 <Normal Text>            {</Normal Text><br/>
0309 <Normal Text>                safe.discover</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0310 <Normal Text>                </Normal Text><String>"Behind the picture is a safe built into the wall. "</String><Normal Text>;</Normal Text><br/>
0311 <Normal Text>            }</Normal Text><br/>
0312 <Normal Text>        }</Normal Text><br/>
0313 <Normal Text>    }</Normal Text><br/>
0314 <Normal Text></Normal Text><br/>
0315 <Normal Text>    moveInto</Normal Text><Symbol>(</Symbol><Normal Text>newDest</Normal Text><Symbol>)</Symbol><br/>
0316 <Normal Text>    {</Normal Text><br/>
0317 <Normal Text>        </Normal Text><Keyword>if</Keyword><Symbol>(!</Symbol><Normal Text>safe.discovered</Normal Text><Symbol>)</Symbol><br/>
0318 <Normal Text>        {</Normal Text><br/>
0319 <Normal Text>            </Normal Text><String>"Removing the painting from the wall reveals a safe behind. "</String><Normal Text>;</Normal Text><br/>
0320 <Normal Text>            safe.discover</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0321 <Normal Text>        }</Normal Text><br/>
0322 <Normal Text>        </Normal Text><Keyword>inherited</Keyword><Symbol>(</Symbol><Normal Text>newDest</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0323 <Normal Text>    }</Normal Text><br/>
0324 <Normal Text>;</Normal Text><br/>
0325 <Normal Text></Normal Text><br/>
0326 <Symbol>+</Symbol><Normal Text> safe: RoomPartItem</Normal Text><Symbol>,</Symbol><Normal Text> Hidden</Normal Text><Symbol>,</Symbol><Normal Text> CustomFixture</Normal Text><Symbol>,</Symbol><Normal Text> ComplexContainer</Normal Text><br/>
0327 <Normal Text>    </Normal Text><ValString>'sturdy steel safe</ValString><String>'</String><Normal Text> </Normal Text><ValString>'safe</ValString><String>'</String><br/>
0328 <Normal Text>    </Normal Text><String>"It's a sturdy steel safe with a single dial on its door. "</String><br/>
0329 <Normal Text></Normal Text><br/>
0330 <Normal Text>    subContainer: ComplexComponent</Normal Text><Symbol>,</Symbol><Normal Text> IndirectLockable</Normal Text><Symbol>,</Symbol><Normal Text> OpenableContainer</Normal Text><br/>
0331 <Normal Text>    {</Normal Text><br/>
0332 <Normal Text>        bulkCapacity </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><br/>
0333 <Normal Text>        makeOpen</Normal Text><Symbol>(</Symbol><Normal Text>stat</Normal Text><Symbol>)</Symbol><br/>
0334 <Normal Text>        {</Normal Text><br/>
0335 <Normal Text>            </Normal Text><Keyword>inherited</Keyword><Symbol>(</Symbol><Normal Text>stat</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0336 <Normal Text>            </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Normal Text>stat</Normal Text><Symbol>)</Symbol><br/>
0337 <Normal Text>                achievement.awardPointsOnce</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0338 <Normal Text>        }</Normal Text><br/>
0339 <Normal Text></Normal Text><br/>
0340 <Normal Text>        achievement: Achievement { </Normal Text><Symbol>+</Symbol><Decimal>10</Decimal><Normal Text> </Normal Text><String>"opening the safe"</String><Normal Text> }</Normal Text><br/>
0341 <Normal Text>    }</Normal Text><br/>
0342 <Normal Text></Normal Text><br/>
0343 <Normal Text>    specialDesc </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"A safe is built into the west wall. "</String><br/>
0344 <Normal Text>    specialNominalRoomPartLocation </Normal Text><Symbol>=</Symbol><Normal Text> defaultWestWall</Normal Text><br/>
0345 <Normal Text>    cannotTakeMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'It</ValString><String>'</String><Normal Text>s firmly built into the wall; you can</Normal Text><ValString>'t budge it. </ValString><String>'</String><br/>
0346 <Normal Text></Normal Text><br/>
0347 <Normal Text>    discover</Normal Text><Symbol>()</Symbol><br/>
0348 <Normal Text>    {</Normal Text><br/>
0349 <Normal Text>        </Normal Text><Keyword>if</Keyword><Symbol>(!</Symbol><Normal Text>discovered</Normal Text><Symbol>)</Symbol><br/>
0350 <Normal Text>        {</Normal Text><br/>
0351 <Normal Text>            </Normal Text><Keyword>foreach</Keyword><Symbol>(</Symbol><Keyword>local</Keyword><Normal Text> cur </Normal Text><Keyword>in</Keyword><Normal Text> allContents</Normal Text><Symbol>)</Symbol><br/>
0352 <Normal Text>                cur.discover</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0353 <Normal Text></Normal Text><br/>
0354 <Normal Text>            achievement.awardPointsOnce</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0355 <Normal Text>        }</Normal Text><br/>
0356 <Normal Text>        </Normal Text><Keyword>inherited</Keyword><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0357 <Normal Text>    }</Normal Text><br/>
0358 <Normal Text></Normal Text><br/>
0359 <Normal Text>    achievement: Achievement { </Normal Text><Symbol>+</Symbol><Decimal>5</Decimal><Normal Text> </Normal Text><String>"finding the safe"</String><Normal Text> }</Normal Text><br/>
0360 <Normal Text>;</Normal Text><br/>
0361 <Normal Text></Normal Text><br/>
0362 <Symbol>++</Symbol><Normal Text> safeDoor:  Hidden</Normal Text><Symbol>,</Symbol><Normal Text> ContainerDoor </Normal Text><ValString>'(safe) door</ValString><String>'</String><Normal Text> </Normal Text><ValString>'safe door</ValString><String>'</String><br/>
0363 <Normal Text>    </Normal Text><String>"It has a circular dial attached to its centre. "</String><br/>
0364 <Normal Text>;</Normal Text><br/>
0365 <Normal Text></Normal Text><br/>
0366 <Symbol>+++</Symbol><Normal Text> safeDial: Hidden</Normal Text><Symbol>,</Symbol><Normal Text> Component</Normal Text><Symbol>,</Symbol><Normal Text>  NumberedDial </Normal Text><ValString>'circular dial*dials</ValString><String>'</String><Normal Text> </Normal Text><ValString>'dial</ValString><String>'</String><br/>
0367 <Normal Text>    </Normal Text><String>"The dial can be turned to any number between </String><Embedded Expression><<minSetting>></Embedded Expression><String> and</String><br/>
0368 <String>    </String><Embedded Expression><<maxSetting>></Embedded Expression><String>. It's currently at </String><Embedded Expression><<curSetting>></Embedded Expression><String>. "</String><br/>
0369 <Normal Text></Normal Text><br/>
0370 <Normal Text>    minSetting </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/>
0371 <Normal Text>    maxSetting </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>99</Decimal><br/>
0372 <Normal Text>    curSetting </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'35</ValString><String>'</String><br/>
0373 <Normal Text></Normal Text><br/>
0374 <Normal Text>    num1 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/>
0375 <Normal Text>    num2 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/>
0376 <Normal Text>    correctCombination </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1589</Decimal><br/>
0377 <Normal Text></Normal Text><br/>
0378 <Normal Text>    makeSetting</Normal Text><Symbol>(</Symbol><Normal Text>val</Normal Text><Symbol>)</Symbol><br/>
0379 <Normal Text>    {</Normal Text><br/>
0380 <Normal Text>        </Normal Text><Keyword>inherited</Keyword><Symbol>(</Symbol><Normal Text>val</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0381 <Normal Text>        num2 </Normal Text><Symbol>=</Symbol><Normal Text> num1;</Normal Text><br/>
0382 <Normal Text>        num1 </Normal Text><Symbol>=</Symbol><Normal Text> toInteger</Normal Text><Symbol>(</Symbol><Normal Text>val</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0383 <Normal Text>        </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Decimal>100</Decimal><Normal Text> * num2 </Normal Text><Symbol>+</Symbol><Normal Text> num1 </Normal Text><Symbol>==</Symbol><Normal Text> correctCombination</Normal Text><Symbol>)</Symbol><br/>
0384 <Normal Text>        {</Normal Text><br/>
0385 <Normal Text>            </Normal Text><String>"You hear a slight </String><HTML Tag><i></HTML Tag><String>click</String><HTML Tag></i></HTML Tag><String> come from the safe door. "</String><Normal Text>;</Normal Text><br/>
0386 <Normal Text>            safe.makeLocked</Normal Text><Symbol>(</Symbol><Keyword>nil</Keyword><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0387 <Normal Text>        }</Normal Text><br/>
0388 <Normal Text>        </Normal Text><Keyword>else</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Symbol>(!</Symbol><Normal Text>safe.isOpen</Normal Text><Symbol>)</Symbol><br/>
0389 <Normal Text>            safe.makeLocked</Normal Text><Symbol>(</Symbol><Keyword>true</Keyword><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0390 <Normal Text>    }</Normal Text><br/>
0391 <Normal Text>;</Normal Text><br/>
0392 <Normal Text></Normal Text><br/>
0393 <Symbol>++</Symbol><Normal Text> orb: Thing </Normal Text><ValString>'ultimate battered dull metal orb/sphere/ball/satisfaction</ValString><String>'</String><br/>
0394 <Normal Text>    </Normal Text><ValString>'Orb of Ultimate Satisfaction</ValString><String>'</String><br/>
0395 <Normal Text>    </Normal Text><String>"It doesn't look much be honest, just a battered sphere made of some dull</String><br/>
0396 <String>    metal, but you've been told it's the most valuable and desirable object</String><br/>
0397 <String>    in the known universe! "</String><br/>
0398 <Normal Text></Normal Text><br/>
0399 <Normal Text>    aName </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>theName</Normal Text><Symbol>)</Symbol><br/>
0400 <Normal Text></Normal Text><br/>
0401 <Normal Text>    subLocation </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>&</Symbol><Normal Text>subContainer</Normal Text><br/>
0402 <Normal Text></Normal Text><br/>
0403 <Normal Text>    okayRubMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'As {you/he} rub{s} {the dobj/him} a shimmering djiin suddenly</ValString><br/>
0404 <ValString>        appears in the air before you!</ValString><Backslash Code>\b</Backslash Code><br/>
0405 <ValString>        </ValString><HTML Tag><q></HTML Tag><ValString>Hello, you have reached the automated holographic answering service</ValString><br/>
0406 <ValString>        of Jeannie the Genie,</ValString><HTML Tag></q></HTML Tag><ValString> she announces. </ValString><HTML Tag><q></HTML Tag><ValString>I</ValString><Backslash Code>\'</Backslash Code><ValString>m sorry I</ValString><Backslash Code>\'</Backslash Code><ValString>m not</ValString><br/>
0407 <ValString>        available to respond to your rub in person right now, but my hours of</ValString><br/>
0408 <ValString>        activity have been heavily curtailed by the European Working Time</ValString><br/>
0409 <ValString>        Directive. Before making a wish, please make sure that you have</ValString><br/>
0410 <ValString>        conducted a full risk assessment in line with the latest Health and</ValString><br/>
0411 <ValString>        Safety Guidelines. Also, please note that before any wish can be granted</ValString><br/>
0412 <ValString>        you must sign a Form P45/PDQ/LOL indemnifying this wish-granting agency</ValString><br/>
0413 <ValString>        against any consequential loss or damage arising from the fulfilment of</ValString><br/>
0414 <ValString>        your desires. Thank you for rubbing. Have a nice day!</ValString><HTML Tag></q></HTML Tag><Backslash Code>\b</Backslash Code><br/>
0415 <ValString>        Her message complete, the holographic djiin fades away into</ValString><br/>
0416 <ValString>        non-existence. </ValString><String>'</String><br/>
0417 <Normal Text></Normal Text><br/>
0418 <Normal Text>    moveInto</Normal Text><Symbol>(</Symbol><Normal Text>dest</Normal Text><Symbol>)</Symbol><br/>
0419 <Normal Text>    {</Normal Text><br/>
0420 <Normal Text>        </Normal Text><Keyword>inherited</Keyword><Symbol>(</Symbol><Normal Text>dest</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
0421 <Normal Text>        </Normal Text><Keyword>if</Keyword><Symbol>(</Symbol><Normal Text>dest.isOrIsIn</Normal Text><Symbol>(</Symbol><Normal Text>me</Normal Text><Symbol>))</Symbol><br/>
0422 <Normal Text>            achievement.awardPointsOnce</Normal Text><Symbol>()</Symbol><Normal Text>;</Normal Text><br/>
0423 <Normal Text>    }</Normal Text><br/>
0424 <Normal Text></Normal Text><br/>
0425 <Normal Text>    achievement: Achievement { </Normal Text><Symbol>+</Symbol><Decimal>10</Decimal><Normal Text> </Normal Text><String>"taking the orb"</String><Normal Text> }</Normal Text><br/>
0426 <Normal Text>;</Normal Text><br/>
0427 <Normal Text></Normal Text><br/>
0428 <Comment>//------------------------------------------------------------------------------</Comment><br/>
0429 <Normal Text></Normal Text><br/>
0430 <Comment>/* DEFINE A NEW VERB */</Comment><br/>
0431 <Normal Text></Normal Text><br/>
0432 <Normal Text>DefineTAction</Normal Text><Symbol>(</Symbol><Normal Text>Rub</Normal Text><Symbol>)</Symbol><br/>
0433 <Normal Text>;</Normal Text><br/>
0434 <Normal Text></Normal Text><br/>
0435 <Normal Text>VerbRule</Normal Text><Symbol>(</Symbol><Normal Text>Rub</Normal Text><Symbol>)</Symbol><br/>
0436 <Normal Text>    </Normal Text><ValString>'rub</ValString><String>'</String><Normal Text> dobjList</Normal Text><br/>
0437 <Normal Text>    : RubAction</Normal Text><br/>
0438 <Normal Text>    verbPhrase </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'rub/rubbing (what)</ValString><String>'</String><br/>
0439 <Normal Text>;</Normal Text><br/>
0440 <Normal Text></Normal Text><br/>
0441 <Comment>/* When creating a new verb, you'll want to modify the Thing class so as to provide</Comment><br/>
0442 <Comment>   default handling for the command. The defaults specified here will be used except</Comment><br/>
0443 <Comment>   on objects for which you define explicit handling of the command. */</Comment><br/>
0444 <Normal Text></Normal Text><br/>
0445 <Keyword>modify</Keyword><Normal Text> Thing</Normal Text><br/>
0446 <Normal Text>    dobjFor</Normal Text><Symbol>(</Symbol><Normal Text>Rub</Normal Text><Symbol>)</Symbol><br/>
0447 <Normal Text>    {</Normal Text><br/>
0448 <Normal Text>        preCond </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>[</Symbol><Normal Text>touchObj</Normal Text><Symbol>]</Symbol><br/>
0449 <Normal Text>        action</Normal Text><Symbol>()</Symbol><Normal Text> { mainReport</Normal Text><Symbol>(</Symbol><Normal Text>okayRubMsg</Normal Text><Symbol>)</Symbol><Normal Text>; }</Normal Text><br/>
0450 <Normal Text>    }</Normal Text><br/>
0451 <Normal Text></Normal Text><br/>
0452 <Normal Text>    okayRubMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'{You/he} rub{s} {the dobj/him} but not much happens as a</ValString><br/>
0453 <ValString>        result. </ValString><String>'</String><br/>
0454 <Normal Text></Normal Text><br/>
0455 <Normal Text>    shouldNotBreakMsg </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'Only amateurs go round breaking things unnecessarily. </ValString><String>'</String><br/>
0456 <Normal Text>;</Normal Text><br/>
0457 <Normal Text></Normal Text><br/>
0458 <Comment>//------------------------------------------------------------------------------</Comment><br/>
0459 <Normal Text></Normal Text><br/>
0460 <Comment>/* HINTS */</Comment><br/>
0461 <Normal Text></Normal Text><br/>
0462 <Normal Text>TopHintMenu;</Normal Text><br/>
0463 <Normal Text></Normal Text><br/>
0464 <Symbol>+</Symbol><Normal Text> Goal </Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>frontDoor.achievement</Normal Text><Symbol>)</Symbol><br/>
0465 <Normal Text>    </Normal Text><ValString>'How do I get into the house?</ValString><String>'</String><br/>
0466 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0467 <Normal Text>        </Normal Text><ValString>'Well, the windows don</ValString><Backslash Code>\'</Backslash Code><ValString>t seem a good way in. </ValString><String>'</String><Symbol>,</Symbol><br/>
0468 <Normal Text>        </Normal Text><ValString>'So perhaps you</ValString><Backslash Code>\'</Backslash Code><ValString>d better try the front door. </ValString><String>'</String><Symbol>,</Symbol><br/>
0469 <Normal Text>        </Normal Text><ValString>'Could someone have left a key around somewhere? </ValString><String>'</String><Symbol>,</Symbol><br/>
0470 <Normal Text>        </Normal Text><ValString>'Is there anything lying around where someone could have hidden a key? </ValString><String>'</String><Symbol>,</Symbol><br/>
0471 <Normal Text>        </Normal Text><ValString>'What about that flowerpot? </ValString><String>'</String><Symbol>,</Symbol><br/>
0472 <Normal Text>        </Normal Text><ValString>'Try looking under the flowerpot. </ValString><String>'</String><br/>
0473 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0474 <Normal Text></Normal Text><br/>
0475 <Normal Text>    goalState </Normal Text><Symbol>=</Symbol><Normal Text> OpenGoal</Normal Text><br/>
0476 <Normal Text>;</Normal Text><br/>
0477 <Normal Text></Normal Text><br/>
0478 <Comment>/* The closeWhenSeen property of the following Goal object is an example of how to</Comment><br/>
0479 <Comment>   make your hint menu respond dynamically to the player's current situation. */</Comment><br/>
0480 <Normal Text></Normal Text><br/>
0481 <Symbol>+</Symbol><Normal Text> Goal </Normal Text><ValString>'Where can I find the orb? </ValString><String>'</String><br/>
0482 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0483 <Normal Text>        </Normal Text><ValString>'Something like that is bound to be kept safe. </ValString><String>'</String><Symbol>,</Symbol><br/>
0484 <Normal Text>        </Normal Text><ValString>'So it</ValString><Backslash Code>\'</Backslash Code><ValString>s probably inside the house. </ValString><String>'</String><br/>
0485 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0486 <Normal Text></Normal Text><br/>
0487 <Normal Text>    goalState </Normal Text><Symbol>=</Symbol><Normal Text> OpenGoal</Normal Text><br/>
0488 <Normal Text>    closeWhenSeen </Normal Text><Symbol>=</Symbol><Normal Text> hallway</Normal Text><br/>
0489 <Normal Text>;</Normal Text><br/>
0490 <Normal Text></Normal Text><br/>
0491 <Symbol>+</Symbol><Normal Text> Goal </Normal Text><ValString>'Where can I find the orb?</ValString><String>'</String><br/>
0492 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0493 <Normal Text>        </Normal Text><ValString>'It</ValString><Backslash Code>\'</Backslash Code><ValString>s sure to be kept somewhere safe. </ValString><String>'</String><Symbol>,</Symbol><br/>
0494 <Normal Text>        </Normal Text><ValString>'You</ValString><Backslash Code>\'</Backslash Code><ValString>d better hunt around. </ValString><String>'</String><Symbol>,</Symbol><br/>
0495 <Normal Text>        </Normal Text><ValString>'Somewhere in the study seems the most likely place. </ValString><String>'</String><Symbol>,</Symbol><br/>
0496 <Normal Text>        deskHint</Normal Text><Symbol>,</Symbol><br/>
0497 <Normal Text>        </Normal Text><ValString>'But it should be safely locked in a safe </ValString><String>'</String><Symbol>,</Symbol><br/>
0498 <Normal Text>        </Normal Text><ValString>'Where might someone hide a safe in this study? </ValString><String>'</String><Symbol>,</Symbol><br/>
0499 <Normal Text>        </Normal Text><ValString>'What could be behind that picture on the wall? </ValString><String>'</String><Symbol>,</Symbol><br/>
0500 <Normal Text>        </Normal Text><ValString>'Try looking behind the picture (or simply taking the picture). </ValString><String>'</String><br/>
0501 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0502 <Normal Text></Normal Text><br/>
0503 <Normal Text>    openWhenSeen </Normal Text><Symbol>=</Symbol><Normal Text> hallway</Normal Text><br/>
0504 <Normal Text>    closeWhenSeen </Normal Text><Symbol>=</Symbol><Normal Text> orb</Normal Text><br/>
0505 <Normal Text>;</Normal Text><br/>
0506 <Normal Text></Normal Text><br/>
0507 <Symbol>++</Symbol><Normal Text> deskHint: Hint </Normal Text><ValString>'Have you tried looking in the desk drawer? </ValString><String>'</String><br/>
0508 <Normal Text>    </Normal Text><Symbol>[</Symbol><Normal Text>deskGoal</Normal Text><Symbol>]</Symbol><br/>
0509 <Normal Text>;</Normal Text><br/>
0510 <Normal Text></Normal Text><br/>
0511 <Symbol>+</Symbol><Normal Text> deskGoal: Goal </Normal Text><ValString>'How do I get the desk drawer open?</ValString><String>'</String><br/>
0512 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0513 <Normal Text>        </Normal Text><ValString>'Have you examined the drawer? </ValString><String>'</String><Symbol>,</Symbol><br/>
0514 <Normal Text>        </Normal Text><ValString>'What might you need to unlock it? </ValString><String>'</String><Symbol>,</Symbol><br/>
0515 <Normal Text>        </Normal Text><ValString>'Where might you find such a thing? </ValString><String>'</String><Symbol>,</Symbol><br/>
0516 <Normal Text>        </Normal Text><ValString>'What have you seen that a small key might be hidden in? </ValString><String>'</String><Symbol>,</Symbol><br/>
0517 <Normal Text>        </Normal Text><ValString>'How carefully have you searched the hall? </ValString><String>'</String><Symbol>,</Symbol><br/>
0518 <Normal Text>        </Normal Text><ValString>'What is (or was) on the hall table? </ValString><String>'</String><Symbol>,</Symbol><br/>
0519 <Normal Text>        </Normal Text><ValString>'What might that vase be for? </ValString><String>'</String><Symbol>,</Symbol><br/>
0520 <Normal Text>        </Normal Text><ValString>'Try looking in the vase. </ValString><String>'</String><br/>
0521 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0522 <Normal Text>    closeWhenSeen </Normal Text><Symbol>=</Symbol><Normal Text> notebook</Normal Text><br/>
0523 <Normal Text>;</Normal Text><br/>
0524 <Normal Text></Normal Text><br/>
0525 <Symbol>+</Symbol><Normal Text> Goal </Normal Text><ValString>'How do I get the safe open?</ValString><String>'</String><br/>
0526 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0527 <Normal Text>        </Normal Text><ValString>'How carefully have you examined the safe? </ValString><String>'</String><Symbol>,</Symbol><br/>
0528 <Normal Text>        </Normal Text><ValString>'Where might someone leave a clue to the combination? </ValString><String>'</String><Symbol>,</Symbol><br/>
0529 <Normal Text>        deskHint</Normal Text><Symbol>,</Symbol><br/>
0530 <Normal Text>        </Normal Text><ValString>'Make sure you read the notebook. </ValString><String>'</String><Symbol>,</Symbol><br/>
0531 <Normal Text>        </Normal Text><ValString>'Once you</ValString><Backslash Code>\'</Backslash Code><ValString>ve found the combination you need to use the dial. </ValString><String>'</String><Symbol>,</Symbol><br/>
0532 <Normal Text>        </Normal Text><ValString>'If the combination is a number larger than 99 you</ValString><Backslash Code>\'</Backslash Code><ValString>ll need to enter it</ValString><br/>
0533 <ValString>        in stages. </ValString><String>'</String><Symbol>,</Symbol><br/>
0534 <Normal Text>        </Normal Text><ValString>'For example, if the combination were 1234 you</ValString><Backslash Code>\'</Backslash Code><ValString>d first need to turn the</ValString><br/>
0535 <ValString>        dial to 12 and then turn it to 34. </ValString><String>'</String><br/>
0536 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0537 <Normal Text></Normal Text><br/>
0538 <Normal Text>    openWhenSeen </Normal Text><Symbol>=</Symbol><Normal Text> safe</Normal Text><br/>
0539 <Normal Text>    closeWhenAchieved </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>safe.subContainer.achievement</Normal Text><Symbol>)</Symbol><br/>
0540 <Normal Text>;</Normal Text><br/>
0541 <Normal Text></Normal Text><br/>
0542 <Symbol>+</Symbol><Normal Text> Goal </Normal Text><ValString>'What does the clue in the notebook mean?</ValString><String>'</String><br/>
0543 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0544 <Normal Text>        </Normal Text><ValString>'Well, </ValString><HTML Tag><q></HTML Tag><ValString>SAFE</ValString><HTML Tag></q></HTML Tag><ValString> might refer to something you want to open. </ValString><String>'</String><Symbol>,</Symbol><br/>
0545 <Normal Text>        </Normal Text><ValString>'Have you seen a date round here? </ValString><String>'</String><Symbol>,</Symbol><br/>
0546 <Normal Text>        </Normal Text><ValString>'When was this house built? </ValString><String>'</String><Symbol>,</Symbol><br/>
0547 <Normal Text>        </Normal Text><ValString>'Where might you find the year in which this house was built? </ValString><String>'</String><Symbol>,</Symbol><br/>
0548 <Normal Text>        </Normal Text><ValString>'How carefully have you looked at the front of the house? </ValString><String>'</String><Symbol>,</Symbol><br/>
0549 <Normal Text>        </Normal Text><ValString>'Did you examine the door? </ValString><String>'</String><br/>
0550 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0551 <Normal Text></Normal Text><br/>
0552 <Normal Text>    openWhenRevealed </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><ValString>'safe-date</ValString><String>'</String><br/>
0553 <Normal Text>    closeWhenAchieved </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>safe.subContainer.achievement</Normal Text><Symbol>)</Symbol><br/>
0554 <Normal Text>;</Normal Text><br/>
0555 <Normal Text></Normal Text><br/>
0556 <Normal Text></Normal Text><br/>
0557 <Symbol>+</Symbol><Normal Text> Goal </Normal Text><ValString>'What do I do with the orb now I</ValString><Backslash Code>\'</Backslash Code><ValString>ve got it?</ValString><String>'</String><br/>
0558 <Normal Text>    </Normal Text><Symbol>[</Symbol><br/>
0559 <Normal Text>        </Normal Text><ValString>'Well, you could try rubbing it. </ValString><String>'</String><Symbol>,</Symbol><br/>
0560 <Normal Text>        </Normal Text><ValString>'But the main thing to do now is to escape with it. </ValString><String>'</String><br/>
0561 <Normal Text>    </Normal Text><Symbol>]</Symbol><br/>
0562 <Normal Text>    openWhenSeen </Normal Text><Symbol>=</Symbol><Normal Text> orb</Normal Text><br/>
0563 <Normal Text>;</Normal Text><br/>