1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight_tads3.t</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (TADS 3) - Theme (Breeze Dark)"/>
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
<span style="color:#7a7c7d">// TADS3 Example File</span>
<span style="color:#7a7c7d">// Source: https://www.tads.org/t3doc/doc/t3QuickStart.htm</span>
<span style="color:#27ae60">#charset </span><span style="color:#f44f4f">"us-ascii"</span>
<span style="color:#27ae60">#include </span><span style="color:#f44f4f"><adv3.h></span>
<span style="color:#27ae60">#include </span><span style="color:#f44f4f"><en_us.h></span>
versionInfo: GameID
IFID <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'558c20af-6559-477a-9f98-b7b4274cd304</span><span style="color:#f44f4f">'</span>
name <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'The Best Burglar</span><span style="color:#f44f4f">'</span>
byline <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'by Eric Eve</span><span style="color:#f44f4f">'</span>
htmlByline <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'by </span><span style="color:#27ae60;font-style:italic"><a href="mailto:eric.eve@hmc.ox.ac.uk"></span>
<span style="color:#f44f4f"> Eric Eve</span><span style="color:#27ae60;font-style:italic"></a></span><span style="color:#f44f4f">'</span>
version <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'3</span><span style="color:#f44f4f">'</span>
authorEmail <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'Eric Eve </span><span style="color:#27ae60;font-style:italic"><eric.eve@hmc.ox.ac.uk></span><span style="color:#f44f4f">'</span>
desc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'You are the world</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s best burglar faced with the greatest challenge</span>
<span style="color:#f44f4f"> of your felonious career.</span><span style="color:#f44f4f">'</span>
htmlDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'You are the world</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s best burglar faced with the greatest</span>
<span style="color:#f44f4f"> challenge of your felonious career.</span><span style="color:#f44f4f">'</span>
;
gameMain: GameMainDef
<span style="color:#7a7c7d">/* the initial player character is 'me' */</span>
initialPlayerChar <span style="color:#3f8058">=</span> me
showIntro<span style="color:#3f8058">()</span>
{
<span style="color:#f44f4f">"</span><span style="color:#27ae60;font-style:italic"><b></span><span style="color:#f44f4f">The Best Burglar</span><span style="color:#27ae60;font-style:italic"></b></span><span style="color:#3daee9;font-weight:bold">\n</span><span style="color:#f44f4f">Well, you've got this far. Now it's just a</span>
<span style="color:#f44f4f"> quick nip inside the house and out again carrying the Orb of Ultimate</span>
<span style="color:#f44f4f"> Satisfaction, an object that no burglar has ever managed to steal</span>
<span style="color:#f44f4f"> before. If you can pull it off you're sure to win the Burglar of the</span>
<span style="color:#f44f4f"> Year Award, putting you at the pinnacle of your profession.</span><span style="color:#3daee9;font-weight:bold">\b</span><span style="color:#f44f4f">"</span>;
}
showGoodbye<span style="color:#3f8058">()</span>
{
<span style="color:#f44f4f">"Thanks for playing! "</span>;
}
;
startRoom: OutdoorRoom <span style="color:#f44f4f">'Driveway</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"The large red-brick Tudor house stands immediately to the north of this end</span>
<span style="color:#f44f4f"> of the driveway, while the drive back to the road where you left your</span>
<span style="color:#f44f4f"> getaway vehicle runs off though a belt of trees to the southwest."</span>
roomFirstDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"Here you are in the drive of Number 305 Erehwon Avenue,</span>
<span style="color:#f44f4f"> with the great house you've come to burgle standing just before you to</span>
<span style="color:#f44f4f"> the north. The drive back to the road where you left your getaway</span>
<span style="color:#f44f4f"> vehicle runs off though a belt of trees to the southwest."</span>
north <span style="color:#3f8058">=</span> frontDoor
<span style="font-weight:bold">in</span> asExit<span style="color:#3f8058">(</span>north<span style="color:#3f8058">)</span>
southwest <span style="color:#3f8058">=</span> drive
;
<span style="color:#3f8058">+</span> me: Actor
pcDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"You're Alexis Lightfinger, burglar extraordinaire, the most</span>
<span style="color:#f44f4f"> professional thief in the known universe; but you're on a job now, so</span>
<span style="color:#f44f4f"> you don't have time for the narcissistic indulgence of admiring your own</span>
<span style="color:#f44f4f"> appearance. You're far too professional not to have come fully prepared,</span>
<span style="color:#f44f4f"> so there's no practical need to look yourself over again. "</span>
;
<span style="color:#3f8058">++</span> Container <span style="color:#f44f4f">'large white swag bag*bags</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'swag bag</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a large white bag with </span><span style="color:#27ae60;font-style:italic"><q></span><span style="color:#f44f4f">SWAG</span><span style="color:#27ae60;font-style:italic"></q></span><span style="color:#f44f4f"> printed on it in very large</span>
<span style="color:#f44f4f"> letters. Everyone knows that no real burglar would ever carry such a thing,</span>
<span style="color:#f44f4f"> so by carrying it you know no one will take you for a real burglar. Cunning,</span>
<span style="color:#f44f4f"> eh? "</span>
;
<span style="color:#3f8058">+</span> frontDoor: LockableWithKey<span style="color:#3f8058">,</span> Door <span style="color:#f44f4f">'solid oak front door*doors</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'front door</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"The lintel above the front door is carved with the date 1589, presumably</span>
<span style="color:#f44f4f"> the date the house was built. The door itself is made of solid oak. "</span>
keyList <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span>brassKey<span style="color:#3f8058">]</span>
makeOpen<span style="color:#3f8058">(</span>stat<span style="color:#3f8058">)</span>
{
<span style="font-weight:bold">inherited</span><span style="color:#3f8058">(</span>stat<span style="color:#3f8058">)</span>;
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>stat<span style="color:#3f8058">)</span>
achievement.awardPointsOnce<span style="color:#3f8058">()</span>;
}
achievement: Achievement { <span style="color:#3f8058">+</span><span style="color:#f67400">10</span> <span style="color:#f44f4f">"opening the front door"</span> }
;
<span style="color:#3f8058">+</span> flowerPot: ComplexContainer <span style="color:#f44f4f">'terracotta small flower flowerpot/pot*pots</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">'flower pot</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a perfectly ordinary small terracota pot, though it looks like no</span>
<span style="color:#f44f4f"> one's got round to putting a plant in it yet. "</span>
subContainer: ComplexComponent<span style="color:#3f8058">,</span> Container { bulkCapacity <span style="color:#3f8058">=</span> <span style="color:#f67400">3</span>}
subUnderside: ComplexComponent<span style="color:#3f8058">,</span> Underside { }
initSpecialDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"A small flower pot rests on the ground not far from the</span>
<span style="color:#f44f4f"> front door. "</span>
bulk <span style="color:#3f8058">=</span> <span style="color:#f67400">3</span>
bulkCapacity <span style="color:#3f8058">=</span> <span style="color:#f67400">3</span>
;
<span style="color:#3f8058">++</span> brassKey: Hidden<span style="color:#3f8058">,</span> Key <span style="color:#f44f4f">'small brass key*keys</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'small brass key</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's an ordinary enough small brass key. "</span>
subLocation <span style="color:#3f8058">=</span> <span style="color:#3f8058">&</span>subUnderside
;
<span style="color:#3f8058">+</span> Enterable <span style="color:#3f8058">-></span> frontDoor <span style="color:#f44f4f">'large red red-brick tudor house/mansion/front</span>
<span style="color:#f44f4f"> *houses*buildings</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'house</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a large red-brick Tudor house with mullioned windows, climbing</span>
<span style="color:#f44f4f"> creepers and the date 1589 carved over the door. "</span>
;
<span style="color:#3f8058">++</span> Component <span style="color:#f44f4f">'(door) carved lintel</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'lintel</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"Its most noteworthy feature is the date 1589 carved into it. "</span>
;
<span style="color:#3f8058">+</span> Decoration <span style="color:#f44f4f">'mullioned windows</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'windows</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"They're architecturally attractive, no doubt, but not especially helpful to</span>
<span style="color:#f44f4f"> burglars. "</span>
notImportantMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'It</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s a matter of professional pride with you never to</span>
<span style="color:#f44f4f"> mess with windows. </span><span style="color:#f44f4f">'</span>
isPlural <span style="color:#3f8058">=</span> <span style="font-weight:bold">true</span>
;
<span style="color:#3f8058">+</span> Decoration <span style="color:#f44f4f">'green climbing ivy/creepers/creeper</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'creepers</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"The front of the house is festooned with green creepers -- ivy, perhaps,</span>
<span style="color:#f44f4f"> but botany was never your strong point since in the main plants aren't</span>
<span style="color:#f44f4f"> worth burgling. "</span>
notImportantMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'The creepers can</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">t help you burgle the house -- they</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">re</span>
<span style="color:#f44f4f"> certainly not strong enough to climb and they</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">re certainly not worth</span>
<span style="color:#f44f4f"> stealing -- so you may as well leave them alone. </span><span style="color:#f44f4f">'</span>
isPlural <span style="color:#3f8058">=</span> <span style="font-weight:bold">true</span>
;
<span style="color:#3f8058">+</span> drive: PathPassage <span style="color:#f44f4f">'drive/path/avenue</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'drive</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"The drive leading back to the road runs off through a belt of trees to the</span>
<span style="color:#f44f4f"> southwest. "</span>
dobjFor<span style="color:#3f8058">(</span>TravelVia<span style="color:#3f8058">)</span>
{
action<span style="color:#3f8058">()</span>
{
<span style="color:#f44f4f">"You retrace your steps back to the road, where your trusty unmarked</span>
<span style="color:#f44f4f"> burglarmobile is still parked, ready for your quick getaway. "</span>;
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>orb.isIn<span style="color:#3f8058">(</span>me<span style="color:#3f8058">))</span>
{
<span style="color:#f44f4f">"Congratulations! You have got away with the Orb of Ultimate</span>
<span style="color:#f44f4f"> Satisfaction, a feat never before performed. As you slip the orb</span>
<span style="color:#f44f4f"> onto the back seat of your car and climb into the driver's seat</span>
<span style="color:#f44f4f"> you tell yourself that you're now absolutely certain to win</span>
<span style="color:#f44f4f"> the Burglar of the Year Award!</span><span style="color:#3daee9;font-weight:bold">\b</span><span style="color:#f44f4f">"</span>;
achievement.awardPointsOnce<span style="color:#3f8058">()</span>;
finishGameMsg<span style="color:#3f8058">(</span>ftVictory<span style="color:#3f8058">,</span> <span style="color:#3f8058">[</span>finishOptionUndo<span style="color:#3f8058">,</span>
finishOptionFullScore<span style="color:#3f8058">])</span>;
}
<span style="font-weight:bold">else</span>
{
<span style="color:#f44f4f">"It's a shame you didn't manage to steal the orb, though.</span>
<span style="color:#f44f4f"> Without it you'll never win the Burglar of the Year Award</span>
<span style="color:#f44f4f"> now.</span><span style="color:#3daee9;font-weight:bold">\b</span><span style="color:#f44f4f">"</span>;
finishGameMsg<span style="color:#3f8058">(</span>ftFailure<span style="color:#3f8058">,</span> <span style="color:#3f8058">[</span>finishOptionUndo<span style="color:#3f8058">])</span>;
}
}
}
okayRubMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'What -- all of it? That may take a while! </span><span style="color:#f44f4f">'</span>
achievement: Achievement { <span style="color:#3f8058">+</span><span style="color:#f67400">10</span> <span style="color:#f44f4f">"getting away with the orb"</span> }
;
<span style="color:#3f8058">+</span> Decoration <span style="color:#f44f4f">'belt/trees</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'trees</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"The trees are in full leaf, which is good, because they hide what you're</span>
<span style="color:#f44f4f"> doing from the road. "</span>
notImportantMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'The trees are doing a good job of hiding you from the</span>
<span style="color:#f44f4f"> road, so you may as well leave them alone. It</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s not as if they</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">re</span>
<span style="color:#f44f4f"> something you could steal, after all. </span><span style="color:#f44f4f">'</span>
;
hallway: Room <span style="color:#f44f4f">'Hallway</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"This hall is or grand proportions but pretty bare. The front door lies to</span>
<span style="color:#f44f4f"> the south and other exits lead east, north and west. "</span>
south <span style="color:#3f8058">=</span> hallDoor
out asExit<span style="color:#3f8058">(</span>south<span style="color:#3f8058">)</span>
west <span style="color:#3f8058">=</span> study
north: FakeConnector { <span style="color:#f44f4f">"You're pretty sure that only leads to the kitchen,</span>
<span style="color:#f44f4f"> and you haven't come here to cook a meal. "</span> }
east: DeadEndConnector { <span style="color:#f44f4f">'the living room</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">"You </span><span style="color:#27aeae;font-style:italic"><<one of>></span><span style="color:#f44f4f">walk through the</span>
<span style="color:#f44f4f"> doorway and find yourself in</span><span style="color:#27aeae;font-style:italic"><<or>></span><span style="color:#f44f4f">return to</span><span style="color:#27aeae;font-style:italic"><<stopping>></span><span style="color:#f44f4f"> the living room</span>
<span style="color:#f44f4f"> where you take </span><span style="color:#27aeae;font-style:italic"><<one of>></span><span style="color:#f44f4f"> a </span><span style="color:#27aeae;font-style:italic"><<or>></span><span style="color:#f44f4f">another</span><span style="color:#27aeae;font-style:italic"><<stopping>></span><span style="color:#f44f4f"> quick look around,</span>
<span style="color:#f44f4f"> but </span><span style="color:#27aeae;font-style:italic"><<one of>><<or>></span><span style="color:#f44f4f"> once again</span><span style="color:#27aeae;font-style:italic"><<stopping>></span><span style="color:#f44f4f"> failing to find anything of</span>
<span style="color:#f44f4f"> interest you quickly return to the hall. "</span>}
;
<span style="color:#3f8058">+</span> hallDoor: Lockable<span style="color:#3f8058">,</span> Door <span style="color:#3f8058">-></span> frontDoor <span style="color:#f44f4f">'front door*doors</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'front door</span><span style="color:#f44f4f">'</span>
;
<span style="color:#3f8058">+</span> table:Surface <span style="color:#f44f4f">'small wooden mahogany side table/legs*tables</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'small table</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a small mahogany table standing on four thin legs. "</span>
initSpecialDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"A small table rests by the east wall. "</span>
bulk <span style="color:#3f8058">=</span> <span style="color:#f67400">5</span>
dobjFor<span style="color:#3f8058">(</span>Take<span style="color:#3f8058">)</span>
{
check<span style="color:#3f8058">()</span>
{
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>contents.length <span style="color:#3f8058">></span> <span style="color:#f67400">0</span><span style="color:#3f8058">)</span>
failCheck<span style="color:#3f8058">(</span><span style="color:#f44f4f">'It</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s probably not a very good idea to try picking</span>
<span style="color:#f44f4f"> up the table while </span><span style="color:#27ae60;font-style:italic"><<contents[1].nameIs></span><span style="color:#f44f4f">> still on it. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">)</span>;
}
}
;
<span style="color:#3f8058">++</span> vase: Container <span style="color:#f44f4f">'cheap china floral vase/pattern</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'vase</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's only a cheap thing, made of china but painted in a tasteless floral</span>
<span style="color:#f44f4f"> pattern using far too many primary colours. "</span>
bulk <span style="color:#3f8058">=</span> <span style="color:#f67400">3</span>
bulkCapacity <span style="color:#3f8058">=</span> <span style="color:#f67400">3</span>
;
<span style="color:#3f8058">+++</span> silverKey: Hidden<span style="color:#3f8058">,</span> Key <span style="color:#f44f4f">'small silver key*keys</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'small silver key</span><span style="color:#f44f4f">'</span>
;
study: Room <span style="color:#f44f4f">'Study</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"This study is much as you would expect: somewhat spartan. A desk stands in</span>
<span style="color:#f44f4f"> the middle of the room with a chair placed just behind it. A </span><span style="color:#27aeae;font-style:italic"><<if</span>
<span style="color:#27aeae;font-style:italic"> picture.moved>></span><span style="color:#f44f4f">safe is built into </span><span style="color:#27aeae;font-style:italic"><<else>></span><span style="color:#f44f4f"> rather bland painting hangs on</span>
<span style="color:#f44f4f"> </span><span style="color:#27aeae;font-style:italic"><<end>></span><span style="color:#f44f4f"> the west wall. The way out is to the east. "</span>
east <span style="color:#3f8058">=</span> hallway
out asExit<span style="color:#3f8058">(</span>east<span style="color:#3f8058">)</span>
;
<span style="color:#3f8058">+</span> desk: Heavy<span style="color:#3f8058">,</span> Platform <span style="color:#f44f4f">'plain wooden desk</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'desk</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a plain wooden desk with a single drawer. "</span>
dobjFor<span style="color:#3f8058">(</span>Open<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>Open<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>Close<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>Close<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>LookIn<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>LookIn<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>UnlockWith<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>UnlockWith<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">,</span> IndirectObject<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>LockWith<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>LockWith<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">,</span> IndirectObject<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>Lock<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>Lock<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>Unlock<span style="color:#3f8058">)</span> remapTo<span style="color:#3f8058">(</span>Unlock<span style="color:#3f8058">,</span> drawer<span style="color:#3f8058">)</span>
;
<span style="color:#3f8058">++</span> drawer: KeyedContainer<span style="color:#3f8058">,</span> Component <span style="color:#f44f4f">'(desk) drawer*drawers</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'drawer</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's an ordinary desk drawer with a small silver lock. "</span>
keyList <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span>silverKey<span style="color:#3f8058">]</span>
;
<span style="color:#3f8058">+++</span> notebook: Readable <span style="color:#f44f4f">'small bright red notebook/book/cover/pages</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">'small red notebook</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a small notebook with a bright red cover. "</span>
readDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"You open the notebook and flick through its pages. The only</span>
<span style="color:#f44f4f"> thing you find of any interest is a page with </span><span style="color:#27ae60;font-style:italic"><q></span><span style="color:#f44f4f">SAFE DATE</span><span style="color:#27ae60;font-style:italic"></q></span><span style="color:#f44f4f"> scrawled</span>
<span style="color:#f44f4f"> across it. After satisfying yourself that the notebook contains nothing</span>
<span style="color:#f44f4f"> else of any potential relevance you snap it shut again. </span><span style="color:#27ae60;font-style:italic"><.reveal</span>
<span style="color:#27ae60;font-style:italic"> safe-date></span><span style="color:#f44f4f">"</span>
dobjFor<span style="color:#3f8058">(</span>Open<span style="color:#3f8058">)</span> asDobjFor<span style="color:#3f8058">(</span>Read<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>LookIn<span style="color:#3f8058">)</span> asDobjFor<span style="color:#3f8058">(</span>Read<span style="color:#3f8058">)</span>
dobjFor<span style="color:#3f8058">(</span>Read<span style="color:#3f8058">)</span>
{
action<span style="color:#3f8058">()</span>
{
<span style="font-weight:bold">inherited</span>;
achievement.awardPointsOnce<span style="color:#3f8058">()</span>;
}
}
cannotCloseMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'It</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s already closed. </span><span style="color:#f44f4f">'</span>
achievement: Achievement { <span style="color:#3f8058">+</span><span style="color:#f67400">5</span> <span style="color:#f44f4f">"reading the notebook"</span> }
;
<span style="color:#3f8058">+</span> CustomImmovable<span style="color:#3f8058">,</span> Chair <span style="color:#f44f4f">'red office swivel chair</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'chair</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a typical office swivel chair, covered in red fabric. "</span>
cannotTakeMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'You see no reason to burden yourself with such a useless</span>
<span style="color:#f44f4f"> object; that would be quite unprofessional. </span><span style="color:#f44f4f">'</span>
;
<span style="color:#3f8058">+</span> picture: RoomPartItem<span style="color:#3f8058">,</span> Thing <span style="color:#f44f4f">'rather bland picture/painting/landscape</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">'picture</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a landscape, pleasantly executed enough, but of no great distinction</span>
<span style="color:#f44f4f"> and definitely not worth the bother of stealing. "</span>
initNominalRoomPartLocation <span style="color:#3f8058">=</span> defaultWestWall
initSpecialDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"A rather bland painting hangs on the west wall. "</span>
isListed <span style="color:#3f8058">=</span> <span style="color:#3f8058">(</span>moved<span style="color:#3f8058">)</span>
bulk <span style="color:#3f8058">=</span> <span style="color:#f67400">8</span>
dobjFor<span style="color:#3f8058">(</span>LookBehind<span style="color:#3f8058">)</span>
{
action<span style="color:#3f8058">()</span>
{
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>moved<span style="color:#3f8058">)</span>
<span style="font-weight:bold">inherited</span>;
<span style="font-weight:bold">else</span>
{
safe.discover<span style="color:#3f8058">()</span>;
<span style="color:#f44f4f">"Behind the picture is a safe built into the wall. "</span>;
}
}
}
moveInto<span style="color:#3f8058">(</span>newDest<span style="color:#3f8058">)</span>
{
<span style="font-weight:bold">if</span><span style="color:#3f8058">(!</span>safe.discovered<span style="color:#3f8058">)</span>
{
<span style="color:#f44f4f">"Removing the painting from the wall reveals a safe behind. "</span>;
safe.discover<span style="color:#3f8058">()</span>;
}
<span style="font-weight:bold">inherited</span><span style="color:#3f8058">(</span>newDest<span style="color:#3f8058">)</span>;
}
;
<span style="color:#3f8058">+</span> safe: RoomPartItem<span style="color:#3f8058">,</span> Hidden<span style="color:#3f8058">,</span> CustomFixture<span style="color:#3f8058">,</span> ComplexContainer
<span style="color:#f44f4f">'sturdy steel safe</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'safe</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It's a sturdy steel safe with a single dial on its door. "</span>
subContainer: ComplexComponent<span style="color:#3f8058">,</span> IndirectLockable<span style="color:#3f8058">,</span> OpenableContainer
{
bulkCapacity <span style="color:#3f8058">=</span> <span style="color:#f67400">5</span>
makeOpen<span style="color:#3f8058">(</span>stat<span style="color:#3f8058">)</span>
{
<span style="font-weight:bold">inherited</span><span style="color:#3f8058">(</span>stat<span style="color:#3f8058">)</span>;
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>stat<span style="color:#3f8058">)</span>
achievement.awardPointsOnce<span style="color:#3f8058">()</span>;
}
achievement: Achievement { <span style="color:#3f8058">+</span><span style="color:#f67400">10</span> <span style="color:#f44f4f">"opening the safe"</span> }
}
specialDesc <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"A safe is built into the west wall. "</span>
specialNominalRoomPartLocation <span style="color:#3f8058">=</span> defaultWestWall
cannotTakeMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'It</span><span style="color:#f44f4f">'</span>s firmly built into the wall; you can<span style="color:#f44f4f">'t budge it. </span><span style="color:#f44f4f">'</span>
discover<span style="color:#3f8058">()</span>
{
<span style="font-weight:bold">if</span><span style="color:#3f8058">(!</span>discovered<span style="color:#3f8058">)</span>
{
<span style="font-weight:bold">foreach</span><span style="color:#3f8058">(</span><span style="font-weight:bold">local</span> cur <span style="font-weight:bold">in</span> allContents<span style="color:#3f8058">)</span>
cur.discover<span style="color:#3f8058">()</span>;
achievement.awardPointsOnce<span style="color:#3f8058">()</span>;
}
<span style="font-weight:bold">inherited</span><span style="color:#3f8058">()</span>;
}
achievement: Achievement { <span style="color:#3f8058">+</span><span style="color:#f67400">5</span> <span style="color:#f44f4f">"finding the safe"</span> }
;
<span style="color:#3f8058">++</span> safeDoor: Hidden<span style="color:#3f8058">,</span> ContainerDoor <span style="color:#f44f4f">'(safe) door</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'safe door</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It has a circular dial attached to its centre. "</span>
;
<span style="color:#3f8058">+++</span> safeDial: Hidden<span style="color:#3f8058">,</span> Component<span style="color:#3f8058">,</span> NumberedDial <span style="color:#f44f4f">'circular dial*dials</span><span style="color:#f44f4f">'</span> <span style="color:#f44f4f">'dial</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"The dial can be turned to any number between </span><span style="color:#27aeae;font-style:italic"><<minSetting>></span><span style="color:#f44f4f"> and</span>
<span style="color:#f44f4f"> </span><span style="color:#27aeae;font-style:italic"><<maxSetting>></span><span style="color:#f44f4f">. It's currently at </span><span style="color:#27aeae;font-style:italic"><<curSetting>></span><span style="color:#f44f4f">. "</span>
minSetting <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span>
maxSetting <span style="color:#3f8058">=</span> <span style="color:#f67400">99</span>
curSetting <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'35</span><span style="color:#f44f4f">'</span>
num1 <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span>
num2 <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span>
correctCombination <span style="color:#3f8058">=</span> <span style="color:#f67400">1589</span>
makeSetting<span style="color:#3f8058">(</span>val<span style="color:#3f8058">)</span>
{
<span style="font-weight:bold">inherited</span><span style="color:#3f8058">(</span>val<span style="color:#3f8058">)</span>;
num2 <span style="color:#3f8058">=</span> num1;
num1 <span style="color:#3f8058">=</span> toInteger<span style="color:#3f8058">(</span>val<span style="color:#3f8058">)</span>;
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span><span style="color:#f67400">100</span> * num2 <span style="color:#3f8058">+</span> num1 <span style="color:#3f8058">==</span> correctCombination<span style="color:#3f8058">)</span>
{
<span style="color:#f44f4f">"You hear a slight </span><span style="color:#27ae60;font-style:italic"><i></span><span style="color:#f44f4f">click</span><span style="color:#27ae60;font-style:italic"></i></span><span style="color:#f44f4f"> come from the safe door. "</span>;
safe.makeLocked<span style="color:#3f8058">(</span><span style="font-weight:bold">nil</span><span style="color:#3f8058">)</span>;
}
<span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span><span style="color:#3f8058">(!</span>safe.isOpen<span style="color:#3f8058">)</span>
safe.makeLocked<span style="color:#3f8058">(</span><span style="font-weight:bold">true</span><span style="color:#3f8058">)</span>;
}
;
<span style="color:#3f8058">++</span> orb: Thing <span style="color:#f44f4f">'ultimate battered dull metal orb/sphere/ball/satisfaction</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">'Orb of Ultimate Satisfaction</span><span style="color:#f44f4f">'</span>
<span style="color:#f44f4f">"It doesn't look much be honest, just a battered sphere made of some dull</span>
<span style="color:#f44f4f"> metal, but you've been told it's the most valuable and desirable object</span>
<span style="color:#f44f4f"> in the known universe! "</span>
aName <span style="color:#3f8058">=</span> <span style="color:#3f8058">(</span>theName<span style="color:#3f8058">)</span>
subLocation <span style="color:#3f8058">=</span> <span style="color:#3f8058">&</span>subContainer
okayRubMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'As {you/he} rub{s} {the dobj/him} a shimmering djiin suddenly</span>
<span style="color:#f44f4f"> appears in the air before you!</span><span style="color:#3daee9;font-weight:bold">\b</span>
<span style="color:#f44f4f"> </span><span style="color:#27ae60;font-style:italic"><q></span><span style="color:#f44f4f">Hello, you have reached the automated holographic answering service</span>
<span style="color:#f44f4f"> of Jeannie the Genie,</span><span style="color:#27ae60;font-style:italic"></q></span><span style="color:#f44f4f"> she announces. </span><span style="color:#27ae60;font-style:italic"><q></span><span style="color:#f44f4f">I</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">m sorry I</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">m not</span>
<span style="color:#f44f4f"> available to respond to your rub in person right now, but my hours of</span>
<span style="color:#f44f4f"> activity have been heavily curtailed by the European Working Time</span>
<span style="color:#f44f4f"> Directive. Before making a wish, please make sure that you have</span>
<span style="color:#f44f4f"> conducted a full risk assessment in line with the latest Health and</span>
<span style="color:#f44f4f"> Safety Guidelines. Also, please note that before any wish can be granted</span>
<span style="color:#f44f4f"> you must sign a Form P45/PDQ/LOL indemnifying this wish-granting agency</span>
<span style="color:#f44f4f"> against any consequential loss or damage arising from the fulfilment of</span>
<span style="color:#f44f4f"> your desires. Thank you for rubbing. Have a nice day!</span><span style="color:#27ae60;font-style:italic"></q></span><span style="color:#3daee9;font-weight:bold">\b</span>
<span style="color:#f44f4f"> Her message complete, the holographic djiin fades away into</span>
<span style="color:#f44f4f"> non-existence. </span><span style="color:#f44f4f">'</span>
moveInto<span style="color:#3f8058">(</span>dest<span style="color:#3f8058">)</span>
{
<span style="font-weight:bold">inherited</span><span style="color:#3f8058">(</span>dest<span style="color:#3f8058">)</span>;
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>dest.isOrIsIn<span style="color:#3f8058">(</span>me<span style="color:#3f8058">))</span>
achievement.awardPointsOnce<span style="color:#3f8058">()</span>;
}
achievement: Achievement { <span style="color:#3f8058">+</span><span style="color:#f67400">10</span> <span style="color:#f44f4f">"taking the orb"</span> }
;
<span style="color:#7a7c7d">//------------------------------------------------------------------------------</span>
<span style="color:#7a7c7d">/* DEFINE A NEW VERB */</span>
DefineTAction<span style="color:#3f8058">(</span>Rub<span style="color:#3f8058">)</span>
;
VerbRule<span style="color:#3f8058">(</span>Rub<span style="color:#3f8058">)</span>
<span style="color:#f44f4f">'rub</span><span style="color:#f44f4f">'</span> dobjList
: RubAction
verbPhrase <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'rub/rubbing (what)</span><span style="color:#f44f4f">'</span>
;
<span style="color:#7a7c7d">/* When creating a new verb, you'll want to modify the Thing class so as to provide</span>
<span style="color:#7a7c7d"> default handling for the command. The defaults specified here will be used except</span>
<span style="color:#7a7c7d"> on objects for which you define explicit handling of the command. */</span>
<span style="font-weight:bold">modify</span> Thing
dobjFor<span style="color:#3f8058">(</span>Rub<span style="color:#3f8058">)</span>
{
preCond <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span>touchObj<span style="color:#3f8058">]</span>
action<span style="color:#3f8058">()</span> { mainReport<span style="color:#3f8058">(</span>okayRubMsg<span style="color:#3f8058">)</span>; }
}
okayRubMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'{You/he} rub{s} {the dobj/him} but not much happens as a</span>
<span style="color:#f44f4f"> result. </span><span style="color:#f44f4f">'</span>
shouldNotBreakMsg <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'Only amateurs go round breaking things unnecessarily. </span><span style="color:#f44f4f">'</span>
;
<span style="color:#7a7c7d">//------------------------------------------------------------------------------</span>
<span style="color:#7a7c7d">/* HINTS */</span>
TopHintMenu;
<span style="color:#3f8058">+</span> Goal <span style="color:#3f8058">-></span> <span style="color:#3f8058">(</span>frontDoor.achievement<span style="color:#3f8058">)</span>
<span style="color:#f44f4f">'How do I get into the house?</span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'Well, the windows don</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">t seem a good way in. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'So perhaps you</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">d better try the front door. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Could someone have left a key around somewhere? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Is there anything lying around where someone could have hidden a key? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'What about that flowerpot? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Try looking under the flowerpot. </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
goalState <span style="color:#3f8058">=</span> OpenGoal
;
<span style="color:#7a7c7d">/* The closeWhenSeen property of the following Goal object is an example of how to</span>
<span style="color:#7a7c7d"> make your hint menu respond dynamically to the player's current situation. */</span>
<span style="color:#3f8058">+</span> Goal <span style="color:#f44f4f">'Where can I find the orb? </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'Something like that is bound to be kept safe. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'So it</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s probably inside the house. </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
goalState <span style="color:#3f8058">=</span> OpenGoal
closeWhenSeen <span style="color:#3f8058">=</span> hallway
;
<span style="color:#3f8058">+</span> Goal <span style="color:#f44f4f">'Where can I find the orb?</span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'It</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">s sure to be kept somewhere safe. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'You</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">d better hunt around. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Somewhere in the study seems the most likely place. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
deskHint<span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'But it should be safely locked in a safe </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Where might someone hide a safe in this study? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'What could be behind that picture on the wall? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Try looking behind the picture (or simply taking the picture). </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
openWhenSeen <span style="color:#3f8058">=</span> hallway
closeWhenSeen <span style="color:#3f8058">=</span> orb
;
<span style="color:#3f8058">++</span> deskHint: Hint <span style="color:#f44f4f">'Have you tried looking in the desk drawer? </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>deskGoal<span style="color:#3f8058">]</span>
;
<span style="color:#3f8058">+</span> deskGoal: Goal <span style="color:#f44f4f">'How do I get the desk drawer open?</span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'Have you examined the drawer? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'What might you need to unlock it? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Where might you find such a thing? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'What have you seen that a small key might be hidden in? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'How carefully have you searched the hall? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'What is (or was) on the hall table? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'What might that vase be for? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Try looking in the vase. </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
closeWhenSeen <span style="color:#3f8058">=</span> notebook
;
<span style="color:#3f8058">+</span> Goal <span style="color:#f44f4f">'How do I get the safe open?</span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'How carefully have you examined the safe? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Where might someone leave a clue to the combination? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
deskHint<span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Make sure you read the notebook. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Once you</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">ve found the combination you need to use the dial. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'If the combination is a number larger than 99 you</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">ll need to enter it</span>
<span style="color:#f44f4f"> in stages. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'For example, if the combination were 1234 you</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">d first need to turn the</span>
<span style="color:#f44f4f"> dial to 12 and then turn it to 34. </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
openWhenSeen <span style="color:#3f8058">=</span> safe
closeWhenAchieved <span style="color:#3f8058">=</span> <span style="color:#3f8058">(</span>safe.subContainer.achievement<span style="color:#3f8058">)</span>
;
<span style="color:#3f8058">+</span> Goal <span style="color:#f44f4f">'What does the clue in the notebook mean?</span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'Well, </span><span style="color:#27ae60;font-style:italic"><q></span><span style="color:#f44f4f">SAFE</span><span style="color:#27ae60;font-style:italic"></q></span><span style="color:#f44f4f"> might refer to something you want to open. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Have you seen a date round here? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'When was this house built? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Where might you find the year in which this house was built? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'How carefully have you looked at the front of the house? </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'Did you examine the door? </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
openWhenRevealed <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'safe-date</span><span style="color:#f44f4f">'</span>
closeWhenAchieved <span style="color:#3f8058">=</span> <span style="color:#3f8058">(</span>safe.subContainer.achievement<span style="color:#3f8058">)</span>
;
<span style="color:#3f8058">+</span> Goal <span style="color:#f44f4f">'What do I do with the orb now I</span><span style="color:#3daee9;font-weight:bold">\'</span><span style="color:#f44f4f">ve got it?</span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">[</span>
<span style="color:#f44f4f">'Well, you could try rubbing it. </span><span style="color:#f44f4f">'</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">'But the main thing to do now is to escape with it. </span><span style="color:#f44f4f">'</span>
<span style="color:#3f8058">]</span>
openWhenSeen <span style="color:#3f8058">=</span> orb
;
</pre></body></html>
|