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/>