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