1 ! *********************************************************************
2 ! SPECIAL.INF -- Add-on for SPIRITWRAK
3 ! Contains: 'specials' that I wanted to keep separate from
4 ! the other 'city-based' .INF files (Atrii, NPC homes)
5 ! *********************************************************************
7 ! ----------------- (Frobar's home) -------------------------
9 Object FROBAR_Foyer "Entrance Foyer"
10 with description "You are in the Entrance Foyer of a \
11 small but tasteful home. The exit is to the southwest. \
12 The general area is tastefully done in maroon carpeting \
13 and brass fixtures. Another room lies to the north.",
14 name "maroon" "carpeting" "brass" "fixtures",
20 Object FROBAR_Parlor "Parlor"
21 with description "You are in a very decorative parlor. \
22 Various furnishings of high quality are arranged around \
23 an enormous rug with intricate golden symbols in the weave \
24 design. Open doorways lead south, north, east and west.",
25 name "rug" "doorways" "furnishings" "symbols",
32 Object frobar_plant "large potted plant" FROBAR_Parlor
33 with name "plant" "large" "potted",
34 initial "A large potted plant sits in one corner.",
35 description "A well-tended house-plant.",
38 if (the_spell_was == throck_spell) {
39 "The plant seems even healthier now.";
40 ! if (Frobar in FROBAR_Bedroom)
41 ! (couldn't think of a proper reaction...:)
46 Object FROBAR_Lounge "Lounge"
47 with description "A large room here apparently serves as a lounge \
48 for entertaining. The walls and furniture all have interesting \
49 design work that gives an impression of dignified age. A doorway \
51 name "furniture" "doorway",
55 Object FROBAR_Study "Study"
56 with description "This is a study room with fancy wood paneling and \
57 plush carpeting. There is an exit to the west.",
58 name "wood" "paneling" "carpeting",
62 Nearby FROBAR_shelves "large bookshelf"
63 with name "shelves" "shelf" "bookshelf",
64 initial "A large bookshelf takes up most of the north wall.",
65 description "It's filled with odds and ends, mostly uninteresting.",
69 Object FROBAR_Journal "plain journal" FROBAR_shelves
70 with name "journal" "plain",
73 description "This is a short journal of notes that \
74 Frobar was keeping. The contents are quite dull, mostly \
75 consisting of entries like ~Remember to water plant~ and \
76 so forth. In fact, the only non-trivial entry follows:^^\
77 ~Perhaps today I will go visit Barsap's latest creation. \
78 Then again, maybe I won't. This so-called 'Gambit' of his \
79 is supposed to be some silly diversion where people can \
80 hop around floating platforms trying to reach the southeast \
82 platform on the bottom level, just so they can get \
83 teleported back to the top, and start all over again! \
84 Can this be a monetarily beneficial thing? I doubt it.~";
86 ! (twisted -- four ancient ones)
87 Object p5 "twisted parchment" FROBAR_shelves
88 class parchment_class,
90 description "~...understand. I, like many of the Order, \
91 have understood that the greatest Saints of our Order were \
92 the Three, those Three that we know as the Ancient Ones. \
93 Why then, do I find in ancient cairns, in hidden temples, \
94 and in versions of the Scriptures found in unsettled lands, \
95 that _four_ beings that called themselves the Ancient Ones \
96 did do battle with evil and were defeated? This surely is \
97 not to be believed, but I...~";
99 Object FROBAR_Desk "large wood desk" FROBAR_Study
101 description "A massive wood desk carved from a single block of wood.",
103 has static supporter;
105 Object FROBAR_Bedroom "Bedroom"
106 with description "A nice cozy bedroom. The exit is south.",
110 Object FROBAR_bed "large bed" FROBAR_Bedroom
112 description "A large comfortable-looking bed.",
114 LookUnder: "Sorry, no monsters here.";
116 has static enterable supporter;
118 !Object FROBAR_Painting "large painting" FROBAR_Bedroom
119 ! with name "painting",
120 ! initial "There is a large painting hanging on the wall.",
122 ! if (self hasnt general)
123 ! "It appears to be an oil painting of a \
124 ! scroll on a table. A small note on the frame says, \
125 ! ~Still-life with Scroll, -FF, 791~";
127 ! "It appears to be an oil painting of a \
128 ! table. A small note on the frame says, \
129 ! ~Still-life, -FF, 791~";
133 ! if (self hasnt general) {
135 ! move painted_scroll to player;
137 ! print "As you touch the painting, your hands \
138 !run across the scroll, and the oil takes on a three-dimensional \
139 !quality! You ignore the strange sensations as you reach \
140 !into the painting, and withdraw the scroll";
141 ! if (Frobar in FROBAR_Bedroom)
142 ! "! Frobar watches the events over your \
143 !shoulder, and seems puzzled. ~Now, why didn't I ever think to try \
148 ! "The painting seems to be nothing more than \
149 !an oil painting now.";
153 ! ----------------- (Thief's home) -------------------------
155 Object THIEF_Bottom_of_staircase "Wondrous Stairway"
156 with description "An enormous spiral staircase seems to wind miles \
157 above your head in this curious column-like chamber. Strange \
158 points of light brighten the chamber from above. \
159 To the west is a small exit.",
160 name "points" "light" "staircase" "stairway" "stairs",
161 ! TODO -- fix this weirdness...
163 w_to "You can't go that way.", ! but later...
167 print "^You begin the long trek upwards. Strangely, \
168 the stair seems to twist and move as you step on it, \
169 turning like a corkscrew, until you are \
170 graciously deposited at the top, far above your \
171 previous location.^";
176 Object THIEF_Ent "Fancy Hall"
177 with description "This must be an apartment or penthouse in the \
178 skyscraper. You are in a very high hall, with black slate stone \
179 walls that seem to reflect shadows everywhere. There is a room \
180 to the north. The southern edge of this room drops off into the \
181 darkness, followed by a long spiral staircase. The ceiling overhead \
182 seems to have tiny points of light like a night sky.",
183 name "slate" "shadows" "staircase" "points" "light",
184 d_to THIEF_Bottom_of_staircase,
188 Object THIEF_Foyer "Magnificent Foyer"
189 with description "This is an exceptionally grand entrance foyer, \
190 with sweeping arched ceilings and sparkling chandeliers. The \
191 room is dimly lit. Open hallways lead south and west.",
197 Object THIEF_Lounge "Fancy Lounge"
198 with description "A tastefully overdone lounge with tapestries \
199 and gold enamel finished walls. The room is dimly lit, although \
200 you see no windows or other sources of light. Open hallways lead \
202 name "tapestries" "enamel",
204 w_to THIEF_Storeroom,
207 Object THIEF_Journal "short journal" THIEF_Lounge
209 initial "There's an open journal sitting here.",
212 description "This appears to be a short collection of notes:^^\
213 ~TIPS ON CRACKING THE NEW FROBOZZCO 3-DIAL COMBO LOCKS: ^\
214 Remember, there's a slight flaw in the design. For every \
215 correct number in the correct dial, pressing the opening button \
216 with cause a small click. Dials with the correct number in the \
217 wrong dial place will cause a small thunk. The lock mechanism \
218 scans for correct numbers in correct places first, and then \
219 for correct numbers in the wrong place in the 'remaining dials'. \
220 Simple! But don't forget, closing the locks will automatically \
221 lock and reset the dials!^^\
222 NEW FLATHEAD PAINTING: ^\
223 I've completed making the copy of the new Leonardo Flathead painting, \
224 received courtesy of the Royal Museum. Glad to say my skills in \
225 art forgery are undiminished -- I can barely tell the difference \
226 between the two myself! I'll soon replace the original with the \
227 copy, and no one will be the wiser!~";
230 Object THIEF_Storeroom "Workroom"
232 print "A sight to inspire even the most avaricious, this \
233 storeroom is filled with all sorts of rare and precious treasures. \
234 A hallway leads east";
235 if (self hasnt general)
236 print ". You notice that the west wall appears to be made of \
244 if ((noun == w_obj) && (self hasnt general))
245 "The west wall is a solid piece of granite, which \
246 seems very odd, considering the other walls are clearly made of \
249 if ((the_spell_was==ledak_spell) && (Painting_FAKE in self)) {
250 if (Painting_REAL in self)
251 print "One of the paintings";
252 else print "The painting";
253 remove Painting_FAKE;
254 " is surrounded by a yellow glow! It crumbles into \
260 Nearby THIEF_treasure "precious treasures"
261 with name "treasure" "jewels" "gemstones" "artifacts",
262 description "Piles of rare gemstones, precious jewelry, \
263 priceless artifacts, and other treasures line the walls \
267 "Fortunately, your high moral standing allows you \
268 the benefit of having no need for such materials of excess.";
272 Object pasta "pile of fettucini carbonari"
273 with name "pile" "fettucini" "carbonari" "pasta",
274 description "A large pile of fettucini dripping in \
278 if (self hasnt general) {
280 "You manage to stuff yourself with pasta, \
281 but there's still quite a lot left.";
284 "You've already had enough of this stuff \
285 to last a lifetime. Just the thought of eating more is enough to \
291 Object c50 "coin" class coin_class;
293 Object Painting_FAKE "priceless painting" THIEF_Storeroom
294 with name "painting",
295 plural "priceless paintings",
296 short_name "priceless painting",
297 description "It's a beautiful oil painting of a dark stormy \
298 scene. On the horizon, you can see the edges of mountaintops. Near \
299 the top of the painting, two winged figures are carrying a lone \
300 individual towards a break in the clouds, where a bright white light \
306 if (location == Museum_north) { ! player returned fake painting to museum!
308 "A museum curator appears and takes the \
309 painting. With an expert eye, he looks closely at it. ~This is \
310 a fake! I warn you sir, art forgery is a dangerous game.~ He \
311 leaves, much disgusted.";
314 if (Painting_REAL in parent(self))
315 "They both look so genuine! You can't decide!";
317 if (the_spell_was == ledak_spell) {
319 "One of the paintings is surrounded by a bright \
320 yellow glow, and disintegrates!";
323 if (Painting_REAL in parent(self))
324 "Search which one? Goodness, you can't decide!";
329 ! -------------ETHEREAL PLANE OF ATRII ------------
331 Object ATRII_1 "Ethereal Plane of Atrii"
332 with description "Standing on a featureless gray plane that \
333 stretches to the infinite horizon against a gray sky, you \
334 can only conclude one thing -- you're on the Ethereal Plane \
335 of Atrii. Well, at least it fits the description Brother \
336 Palemon gave you. It seems like you could go in any \
337 direction from here.",
338 cant_go "An invisible force blocks your way!",
339 name "plane" "horizon" "sky",
344 Object ATRII_2 "Ethereal Plane of Atrii"
345 with description "Flat, featureless gray is in every direction \
346 you look. Stranger still is the upright rectangular hole in the \
347 fabric of space that stands in the center of this area. \
348 Otherwise, you could wander this gray dimension in any direction, \
350 cant_go "An invisible force blocks your way!",
357 Nearby ATRII_2_hole "rectangular hole"
358 with name "hole" "rectangle" "opening",
359 description "Surely you are in a place where the very laws of \
360 nature and the Gods work by different rules! Here stands a \
361 rectangular hole, seemingly torn out of the very space you \
362 stand in. You see some curious metal chamber through the \
363 opening, but there is nothing behind the opening.",
366 print "^You step through and feel your stomach twist. \
367 You stumble past a set of open metal doors into...^";
369 PlayerTo(Skyscraper);
370 return 2; ! allow, but print nothing...
372 has scenery enterable;
374 Object ATRII_3 "Ethereal Plane of Atrii"
375 with description "Flat, featureless gray is in every direction \
376 you look. Stranger still is the flat, glass-like square in the \
377 center of the 'floor' of this area. \
378 Otherwise, you could wander this gray dimension in any direction, \
380 cant_go "An invisible force blocks your way!",
387 Nearby ATRII_3_ice "square of ice"
388 with name "square" "ice" "glass-like",
389 description "It looks and feels like a perfect square of ice, \
390 flush with the featureless gray surface you stand on.",
393 print "You step onto the square, and before you know it, your \
394 surroundings shift and start to fade! You feel a \
395 sudden chilling wind. The ice seems to lengthen and stretch. The \
396 gray plane slowly turns white and bumpy.^";
398 PlayerTo(Frozen_river2);
401 has scenery enterable;
403 Object ATRII_4 "Ethereal Plane of Atrii"
404 with description "Flat, featureless gray is in every direction \
405 you look. Stranger still is the large black hole to the south. \
406 Otherwise, you could wander this gray dimension in any direction, \
408 cant_go "An invisible force blocks your way!",
411 s_to [; <<Enter ATRII_4_hole>>; ],
414 Nearby ATRII_4_hole "black hole"
415 with name "hole" "black",
416 description "It looks like a large hole, probably twice your \
417 height. It's completely black and featureless.",
420 print "^You step into the black hole. You stumble \
421 forward, surrounded by blacker-than-night darkness.^";
423 PlayerTo(Subway_Tunnel);
426 has scenery enterable;
428 ! (secret subway tunnel)
429 Object Subway_Tunnel "Dark Tunnel"
430 with description "You're in a large dark tunnel that seems \
431 to run north and south. To the south you see light. There \
432 seem to be two metal tracks running along the ground.",
433 s_to GURTH_GUSPlatform,
434 n_to "You walk north, and run into a invisible force!",
439 print "^You step out into an underground chamber. \
440 A burly uniformed figure sees you exit the tunnel and yells, \
441 ~Hey, no playing in the tunnels, pal!~^";
447 "^You hear a rumbling noise echoed from somewhere, and \
448 the entire tunnel seems to shake! Then, all is quiet.";
451 "^Suddenly, without warning, a huge train car appears \
452 heading south! It plows straight into you!";
455 "^Suddenly, a huge train car appears heading north! \
456 You barely avoid getting pulverized! Strangely, \
457 you watch as the train continues north, and \
458 seems disappear into blackness nearby. It's as \
459 though the train was simply removed from the tunnel \
464 Nearby ST_tracks "tracks"
465 with name "tracks" "tracks" "metal",
466 description "Two long metal tracks, running north and south. \
467 There's something oddly familiar about them.",
470 Object ATRII_5 "Ethereal Plane of Atrii"
471 with description "Flat, featureless gray is in every direction \
472 you look. It seems like you could go in any \
473 direction from here.",
474 cant_go "An invisible force blocks your way!",
479 Object p9 "ripped parchment" ATRII_5
480 class parchment_class,
482 description "~...now know that the Rod we believe is \
483 the Rod of the Ancients, sequestered in our Monastery, is \
484 an artifact of evil! Imprisoned inside, \
485 true to the scriptures (at least this much is, what \
486 isn't, I can nowadays say is much) we know, is Anabais. \
487 What is worse, is that this very Rod is an artifact of \
488 evil power created by Anabais, in the image of the True \
489 Rod of the Ancients, which he planned to use to aid \
490 him in his evil gains! \
491 Were that evil one free again, and had about him both \
492 his brothers and his Rod of Evil, we would witness a \
494 greater than Quendor has ever known! I take relief in \
495 the knowledge that he will never be freed, and he will \
496 never regain his implement of evil; only an innocent \
497 being can break the false rod and \
498 free him from his prison, and subsequently, \
499 the false rod cannot be regained by Anabais through his \
500 own will, or another evil being. \
501 In fact, only a being of good again can gather \
502 the resulting pieces, and only through this being \
503 can Anabais regain his evil artifact, for...~";
506 Object ATRII_6 "Ethereal Plane of Atrii"
507 with description "Flat, featureless gray is in every direction \
508 you look. It seems like you could go in any \
509 direction from here.",
510 cant_go "An invisible force blocks your way!",
517 Object ATRII_7 "Ethereal Plane of Atrii"
518 with description "Flat, featureless gray is in every direction \
519 you look. Stranger still is the odd-shaped depression in the gray \
521 Otherwise, you could wander this gray dimension in any direction, \
523 cant_go "An invisible force blocks your way!",
530 Nearby ATRII_7_depression "depression"
531 with name "depression" "cavity",
532 description "It's a large elongated depression in the gray 'floor'. \
533 The cavity has a flat bottom, and somewhat cigar-like shape.",
536 print "^You step into the depression. Your very \
537 surroundings start to fade, replaced by sunlight that \
538 makes you squint! The gray plane undulates and \
539 buckles and turns into a great body of water \
540 before your very eyes.^";
542 PlayerTo(sailboat); ! useful if the player 'lost' the boat at sea.
545 has scenery enterable;
547 Object ATRII_8 "Ethereal Plane of Atrii"
548 with description "Flat, featureless gray is in every direction \
549 you look. Directly overhead, you notice odd streaks of \
550 light. From here, you could wander this gray dimension in any direction, \
553 cant_go "An invisible force blocks your way!",
558 ! ----------- Special Implementor's Residence -----------
560 Object Imp_Liv "Strange Room"
563 if (player in Imp_Curtains)
564 "can't see much behind these curtains.";
565 else "feel a great sense of dread! Surely, given the way \
566 you got here, this must be the domicile of a dreaded Implementor! \
567 The entire place feels strange and \
568 alien and, well, ~modern~. There's some sort of kitchen to the \
569 east. Long curtains cover what must be a window to the south.";
574 s_to [; <<Enter Imp_Curtains>>; ],
576 if (Imp in Imp_Bedroom) {
577 if (Imp_Liv.number == 3) {
581 else "^You hear some faint noises to the west.";
583 ! create some noises if player in curtains
584 if (player in Imp_Curtains) {
586 "^You hear some faint noises nearby.";
587 if (Imp in Imp_Kitchen)
588 "^You hear some faint noises to the east.";
593 ! if player hasn't 'listened' twice to start Imp,
594 ! start him anyway (otherwise, in truth, player
595 ! would be permanently stuck in (my) apartment.
596 if (Imp_Liv.number < 4) {
602 ! if player actually listens, better noises...
604 if (Imp in Imp_Bedroom) {
605 if (Imp hasnt general) { ! i.e. -- awake
606 if (Imp_Liv.number == 1) {
608 "It sounds like someone is talking to himself to \
609 the west. You hear: ~Now, wait just a second here, the player object \
610 is gone! How did that happen?~";
612 if (Imp_Liv.number == 2) {
614 "It sounds like someone is talking to himself to \
615 the west. You hear: ~That can't be right. I must be getting tired. \
616 Think I'll make myself a nice hot cup of coffee.~";
617 ! on next turn via Imp_Liv.each_turn, Imp daemon will be started...
619 ! otherwise, Imp has already made his rounds and
620 ! returned to bedroom, _not_ falling asleep
621 "You hear someone whistling a merry tune to the west.";
624 "You hear someone snoring loudly to the west.";
626 if (Imp in Imp_Liv) {
628 "You hear someone walking nearby. The footsteps \
629 soon fade to the east.";
631 "You hear someone walking nearby. The footsteps \
632 soon fade to the west.";
634 if (Imp in Imp_Kitchen) {
635 ! This assumes the daemon will run before the player turn.
636 if (Imp.number == 2) {
637 switch (Imp.weight) {
638 118: print "You hear an irritated voice say, \
639 ~What happened to my coffee maker?~ Slightly softer, you \
640 hear ~Well, I guess I'll have that iced tea.~";
641 119, 122: print "You hear a voice to the east say, \
642 ~Looks like I've got coffee, thank goodness.~";
643 121: print "You hear a voice to the east say, \
644 ~Great, I'm all out of coffee. Good thing I still have some \
647 " Shortly after this, you hear sounds of someone to \
648 the east starting some kitchen activity.";
650 else "You hear some brief busy noises from the west, \
651 followed by what sounds like someone drinking something. Shortly \
652 thereafter, you hear the sounds of someone walking into the area \
658 Nearby Imp_Curtains "set of curtains"
659 with name "curtain" "curtains",
660 description "Some heavy-cloth curtains along the south wall.",
662 Open: "You draw back the curtains and see a sight that \
663 beggars the mind! Through the windows, the night sky falls across \
664 some unknown landscape, dotted with strange bright points of light. \
665 Tall buildings seem to be everywhere. Whatever world you've stumbled \
666 onto, it certainly is not your own! You hastily close \
668 Enter: print "In an attempt to hide, you part the curtains. ";
670 has static enterable;
672 Object Imp_Kitchen "Strange Kitchen"
673 with description "A room that could be a kitchen, \
674 if it didn't seem completely strange. Harsh bright lights seem to \
675 be coming from some unknown source. Strange-looking white countertops and \
676 cabinets fill the area, along with a curious white closet-like object. \
677 A room lies to the west.",
678 name "cabinet" "cabinets" "closet" "refrigerator" "countertops",
682 Object Coffee_maker "curious machine" Imp_Kitchen
683 with name "machine" "curious",
684 description "A white plastic device that seems to \
685 encase a glass pitcher or kettle of some sort. Most odd.",
690 Object regular_coffee_can "can of regular coffee" Imp_Kitchen
691 with name "can" "coffee" "regular",
693 "The can reads: ~Brand-X coffee crystals~^^\
694 ~Rich, mountain-grown flavor.~";
698 "You'd need a good can-opener for that.";
705 Object Imp_Bedroom "Strange Bedroom"
706 with description "A very curious small bedroom. \
707 A white desk sits here amongst other odd furnishings.",
708 name "furnishings" "bed" "chair",
712 !Nearby Imp_Bed "furnishings"
713 ! with name "furnishings" "bed" "chair",
714 ! description "Some weird bedroom furniture.",
717 Object Imp_Desk "desk" Imp_Bedroom
719 description "A white desk, with a strange, modern look.",
721 has scenery supporter;
723 Object Imp_Computer "strange machine" Imp_Desk
724 with name "machine" "computer",
727 print "It's a strange metal box. On top, perhaps connected in some \
728 way, is another metal box with a glass plate on the front. Strange wires \
729 seem to be attached to the boxes somehow. \
730 In front of the boxes is an odd plastic \
731 flat object with rows and rows of plastic buttons labeled every letter in \
733 if (self hasnt general) {
735 print ".^^Looking closer, you notice curious glowing \
736 letters on the glass plate. You read the letters, and \
737 feel drawn to respond...^^\
738 SPIRITWRAK DEVELOPMENT SYSTEM:^\
739 (AUTOMATIC OBJECT GARBAGE-COLLECTION)^\
740 REMOVE OBJECT IMPENETRABLE_STEEL_WALL? (Y/N) ";
741 if (YesOrNo() == 0) "You press a button labeled ~N~. The strange box \
742 emits a tiny beep, and the glass plate is covered with fantastic colorful \
745 ! set-up the secret room
747 give cave_intersection general;
749 "You press a button labeled ~Y~. The strange box \
750 emits a tiny beep, and the glass plate is covered with fantastic colorful \
754 else ". The glass plate currently has strange glowing colorful \
755 patterns displayed on it.";
760 print "~I'm afraid you'll have to go back.~ The Implementor \
761 snaps his fingers, and suddenly, you're back in...^";
768 Nearby Imp_door "door"
771 if (self in Imp_Liv) {
772 if (player notin Imp_Curtains)
773 "There's a closed door to the west.";
776 else "There's a closed door to the east.";
779 if (self in Imp_Liv) {
780 if (player notin Imp_Curtains)
781 "There's an open door to the west.";
784 else "There's an open door to the east.";
786 description "A plain-looking door. A note \
787 attached to it says ~DO NOT DISTURB, IMPLEMENTOR AT WORK~.",
789 if (self in Imp_Liv) return w_to;
793 if (self in Imp_Liv) return Imp_Bedroom;
796 found_in Imp_Liv Imp_Bedroom,
799 if ((Imp in Imp_Bedroom) && (Imp hasnt general)) {
800 print "You open the door, revealing a small room with \
801 what must be an Implementor sitting behind a desk. The Implementor looks \
802 up, startled. ~You're here?~ he says, observantly. ";
807 has static door openable;
810 ! *************** And, for my final trick, the endgame **************
812 Object Mystical_Cave "Mystical Cave"
813 with description "You've entered a wondrous natural cave, lit \
814 everywhere by reflected light from some sort of purple crystalline substance \
815 in the walls. A tunnel exits to the northwest.",
816 name "reflected" "crystal" "crystalline" "substance",
819 if (Mystical_Cave.number ~= 4)
820 "The purple light in the chamber seems to pulse with energy, \
821 and find your way blocked by an invisible force!";
824 ! fill with things, if necc.
825 print "As you leave, a sudden tremor shakes the \
826 cave! You just narrowly avoid a sudden cave-in behind you!^";
827 give cave_intersection ~general;
828 return cave_intersection;
833 Nearby purple_sphere "purple sphere"
834 with name "sphere" "purple",
835 initial "There's a purple crystal sphere partially embedded \
836 in the rock floor here.",
837 description "A large purple sphere that seems to pulse with \
841 ! various endgame trickery...
842 if (silver_rod_piece in player) {
843 while (child(player)~=0) {
844 give child(player) ~worn;
845 move child(player) to Mystical_Cave;
847 move silver_rod_piece to player;
849 print "The sphere pulses with angry energy! It seems to \
850 be fighting the silver rod piece you hold! With a sudden burst, you \
851 feel your mind reel and your very surroundings change!^";
852 give stone_marker general;
853 ! give snowy_intersection general ~visited;
854 give snowy_intersection general;
855 StartTimer(White_Dragon,3);
856 PlayerTo(Dragon_Cave);
859 if (green_rod_piece in player) {
860 while (child(player)~=0) {
861 give child(player) ~worn;
862 move child(player) to Mystical_Cave;
864 move green_rod_piece to player;
866 print "The sphere pulses with angry energy! It seems to \
867 be fighting the green rod piece you hold! With a sudden burst, you \
868 feel your mind reel and your very surroundings change!^";
869 StartTimer(captain,3);
873 if (red_rod_piece in player) {
874 while (child(player)~=0) {
875 give child(player) ~worn;
876 move child(player) to Mystical_Cave;
878 move red_rod_piece to player;
880 print "The sphere pulses with angry energy! It seems to \
881 be fighting the red rod piece you hold! With a sudden burst, you \
882 feel your mind reel and your very surroundings change!^";
883 ! give Stadium_entrance general ~visited;
884 ! remove stadium_sign;
885 ! remove stadium_statue;
886 ! move statue_base to Stadium_entrance;
887 StartTimer(statue_base,2);
888 PlayerTo(Stadium_entrance2);
891 if (brown_rod_piece in player) {
892 while (child(player)~=0) {
893 give child(player) ~worn;
894 move child(player) to Mystical_Cave;
896 move brown_rod_piece to player;
898 print "The sphere pulses with angry energy! It seems to \
899 be fighting the brown rod piece you hold! With a sudden burst, you \
900 feel your mind reel and your very surroundings change!^";
901 ! give GURTH_House general ~visited;
902 ! move bad_brick to GURTH_House;
903 StartTimer(bad_brick,7);
904 PlayerTo(GURTH_House2);
908 "A purple blast of force throws you back!";
912 Object skeleton "skeleton" Mystical_Cave
913 with name "skeleton" "bones",
914 initial "Lying in one corner of the room is a skeleton.",
915 description "Just some bones, not much else, is all.",
917 Pull, Push, Turn, ThrownAt, Touch, Attack, Rub,
918 Cut, Shake, Squeeze, Kiss:
920 "The skeleton crumbles into dust, as though \
921 many years of time had suddenly caught up with it in one \
926 ! (black -- final parchment of Palemon's final words)
927 Object p8 "blackened parchment" Mystical_Cave
928 class parchment_class,
929 with name "blackened",
930 description "~I write these final words not in the hope \
931 that others will find and heed them, for this is too great \
932 a hope in my moment of death, but rather, to try and maintain my mind and soul \
933 in the face of the terror I now know is the truth.^^\
934 For how can a man survive, knowing that his entire life, \
935 his entire belief, has been a ruse, a dupe, from the \
936 early beginning? That he has merely been a pawn in a \
937 working of evil that cannot be stopped?^^\
938 I have fought all manner of terrors, and recovered that which \
939 I know is the _true_ Rod of the Ancients, broken and scattered \
940 eons ago in the face of great evil. I sought also those \
941 ancient spheres that the Four Ancients never had the chance to \
942 use against the evil four elemental demons, but alas, I could \
943 not find them all, and sequestered those which I did with \
944 good people that the elemental evil could not touch.^^\
945 Alas, my quest has ended here. I lie trapped here, \
946 with the pieces of the true Rod in hand, unable to go forward, trapped by the \
947 elemental mystic locks on the rod that prevent it from leaving this \
948 very room, yet unable to go back, to leave the rod here and \
949 deny the very real danger of the defeat of the Ancients, of \
950 the power that the evil elementals hold.^^\
951 What is a faith destroyed? Who can help me to believe, in my moment \
958 Object Dragon_Cave "Giant Cavern"
959 with description "You find yourself in a huge cavern. To the west \
960 is a large exit that looks out into a void of snow-covered mountains.",
962 w_to "You hesitate. The cave seems to just \
963 exit off the side of a mountain, and all you can see below is whiteness. \
964 It could be a long way down.",
966 out_to [; <<Jump>>; ],
969 print "You close your eyes and leap out of the cave! \
970 You plummet through silent white winds. \
971 Moments later, you fall right into an enormous snowbank, and \
972 roll downwards, into...^";
973 PlayerTo(snowy_intersection2);
978 Object On_Boat "On strange boat"
979 with description "You are on a long open boat, riding the waves of \
980 some great sea. The boat seems to be filled with sailors from \
982 name "waves" "sea" "mast" "floorboards" "ship" "boat",
985 if (captain has general) {
986 if (noun==green_rod_piece) {
987 remove green_rod_piece; ! it'll be back
988 give shipwreck general;
989 Mystical_Cave.number = Mystical_Cave.number + 1;
992 print "You drop the green rod and watch it roll near \
993 a mast and get stuck in the floorboards.^^\
994 There's a load crack! The ship is breaking apart! Sailors \
995 scramble in vain for safety! You hang onto the side of the \
996 boat, but the vessel rocks wildly, and you fall into the waters. \
997 ^^As you sink, you notice the waters seem to change to a purplish \
998 hue, and you find yourself back in...^";
999 PlayerTo(Mystical_Cave);
1004 "The sailors are holding you fast, so you \
1005 can't do this at the moment.";
1009 Nearby militia "sailors"
1010 with name "sailors" "militia" "navy",
1011 description "A bunch of dour-looking navy sailors.",
1015 "The ship breaks asunder! Sailors scramble madly \
1016 and fall into the violent waves! You hear \
1017 the captain scream ~Blast! I can't swim!~ before the \
1018 waters cover you completely.";
1022 Object ENDGAME_ROOM "Nothingness"
1023 with description "Nothingness surrounds you. Yet, you feel like \
1024 your conscious being extends into worlds and dimensions never \
1025 imagined. You float in a void of total being.",
1026 number 0, ! number of elementals banished
1028 switch (ENDGAME_timer.number) {
1029 0: ENDGAME_timer.number = 1;
1030 if (black_elemental in ENDGAME_ROOM)
1031 "^Echoing in your mind, you hear a voice, that you \
1032 somehow know is from the black sphere. ~Give me the rod priest, \
1033 and you shall be immortalized as a symbol to an entire civilization!~";
1034 1: ENDGAME_timer.number = 2;
1035 if (smoke_elemental in ENDGAME_ROOM)
1036 "^Echoing in your mind, you hear a voice, that you \
1037 somehow know is from the smoke-colored sphere. ~Give me the rod priest, \
1038 and I shall let you be witness to a feat of great magic, never \
1039 before witnessed!~";
1040 2: ENDGAME_timer.number = 3;
1041 if (gray_elemental in ENDGAME_ROOM)
1042 "^Echoing in your mind, you hear a voice, that you \
1043 somehow know is from the gray-colored sphere. ~Give me the rod priest, \
1044 and I will grant you power over all who surround you!~";
1045 3: ENDGAME_timer.number = 4;
1046 if (white_elemental in ENDGAME_ROOM)
1047 "^Echoing in your mind, you hear a voice, that you \
1048 somehow know is from the white sphere. ~Give me the rod priest, \
1049 and you will gain the attention of one of the more powerful \
1050 figures of your time!~";
1055 Object ENDGAME_timer "void" ENDGAME_ROOM
1056 with name "void" "nothingness",
1057 description "The absence of anything. Yet, at the same \
1058 time, the sense that everything possible is near.",
1063 if (ENDGAME_ROOM.number < 3)
1064 print "The spheres nearby suddenly converge";
1065 else print "The sphere nearby suddenly converges";
1066 " towards you! In your mind, you hear \
1067 ~Hesitation, foolish priest, was the downfall of the Ancient \
1068 Ones~ before you feel the full force of the void.";
1072 ! *** fake room/encounter for bad ending #x
1073 Object badend1 "On Giant Cube"
1074 with description "You stand on a single giant floating white \
1075 cube, in the middle of some dimly lit cavern. \
1076 ^^A small newt floats nearby, concentrating on something.^^\
1077 The newt suddenly opens its eyes! ~What?~ it croaks in \
1078 surprise. ~Who are you? You've broken my concentration on \
1079 the spell, you fool!~ the newt croaks. You feel the cube \
1080 shift, then stop floating! You plummet into the lava you \
1081 feared was below..."
1084 Object badend2 "Top of Pyramid"
1085 with description "You are on top of a pyramid in some \
1086 ancient city. You see dense jungle to the horizon. \
1087 An ancient civilization spreads before you, in all its \
1088 mysterious glory.^^Several robed figures surround you.^^\
1089 Suddenly, you realize you are tightly bound! One of the \
1090 figures points towards the horizon and makes a complicated \
1091 gesture. In a language you do not understand, he seems \
1092 to make a prayer to some nameless god! Fearing the \
1093 inevitable, you struggle mightily, but to no avail. \
1094 In moments, the group of robed figures hurls you off the \
1095 pyramid to your death!"
1102 Object Imp "Implementor" Imp_Bedroom
1103 with name "Implementor",
1106 print "Some Implementor. Looks more like a oddly-dressed \
1107 young man badly in need of a haircut";
1108 if (self has general)
1109 ". He's also sound asleep!";
1113 print "^Someone you assume must be an Implementor \
1115 if (self has general)
1120 weight 120, ! about right
1122 ! if asleep, which is usually the case
1123 if (self has general) {
1124 if (action==##WakeOther or ##Attack) {
1125 print "You manage to rouse the Implementor from his \
1126 slumber. He stares at you, bewildered. ~What are you doing here?~ \
1128 ImpSendBack(); rtrue;
1131 "He appears to be sound asleep right now, and isn't very \
1135 ! (I suppose this is unnecessary. -- i.e. the player shouldn't be able to
1136 ! interact with the implementor unless the implementor is asleep)
1137 ! print "Well, that got his attention. The Implementor \
1138 !looks completely startled. ~What are you doing here?~ he says. ";
1139 !ImpSendBack(); rtrue;
1143 ! ASSUMPTION -- daemon started by start event
1145 if (Imp.number == 0) {
1147 if ((player in Imp_Liv) && (player notin Imp_Curtains)) {
1148 print "^The door to the west suddenly flies open! \
1149 A somewhat bedraggled Implementor steps out! He spots you and his \
1150 jaw drops. ~You, here?~ he says. ";
1151 ImpSendBack(); rtrue;
1154 print "^You hear a door open to the west.^";
1156 move Imp to Imp_Liv;
1159 ! first a little 'lazy' clause that kicks the player
1160 ! out if the Imp is moving around and the player isn't
1162 if ((Imp.number < 5) && (player notin Imp_Curtains)) {
1163 if (Imp in location) print "^The Implementor ";
1164 else print "^From nearby, an Implementor rushes up and \
1166 print " grabs you by the shoulder! \
1167 ~What are you doing here?~ he \
1168 says. "; ImpSendBack(); return 1;
1170 ! now, otherwise, we move the Imp and set his
1171 ! number accordingly. Room descs and 'Listen'
1172 ! traps in Imp_Liv will need to use this info
1173 switch (Imp.number) {
1174 ! [step 1, moving to Kitchen]
1175 1: move Imp to Imp_Kitchen;
1177 if (Coffee_maker notin Imp_Kitchen) Imp.weight = 118;
1179 if (regular_coffee_can in Imp_Kitchen) {
1181 remove regular_coffee_can;
1184 if (decaf_coffee_can in Imp_Kitchen) {
1186 remove decaf_coffee_can;
1189 ! no coffee, gosh darn it
1195 ! [step 2, making/drinking the beverage]
1197 ! [step 3, leaving kitchen, back to living room]
1199 move Imp to Imp_Liv;
1200 ! [step 4, goes back into bedroom]
1202 give Imp_door ~open;
1203 if (player in Imp_Curtains)
1204 print "^You hear a door close to the west.^";
1205 move Imp to Imp_Bedroom;
1206 ! move coffee_cup to Imp_Bedroom;
1207 if (Imp.weight == 122)
1208 give Imp general; ! asleep
1215 !Object coffee_cup "large cup"
1216 ! with name "cup" "large",
1217 ! description "A large mug, with the residue of some brown liquid \
1221 ! has container open;
1223 ! MOVEPRINTNPC routine, from Gareth Rees' 'THIEF.INF'
1224 ! (TODO -- you really don't need this, since only Frobar moves in this fashion)
1225 [ MovePrintNPC n dest dir;
1226 if (n in location) {
1227 print "^", (The) n, " walks off";
1228 if (dir ~= in_obj or out_obj or u_obj && dir ~= d_obj)
1229 print " to the ", (DirectionName) dir.door_dir;
1232 if (dest == 0) remove n; ! This seems odd - if dest bogus, 'unlink' NPC?
1233 else move n to dest;
1235 print "^", (The) n, " walks in.^";
1238 Object White_Dragon "White Dragon" Dragon_Cave
1239 with name "dragon" "white" "giant",
1241 print "There is a gigantic white dragon here";
1242 if (self has general)
1243 " sleeping peacefully.";
1246 description "A giant white dragon, the size of a small house.",
1250 if (location == Dragon_Cave) {
1252 "^The dragon suddenly snorts and wakes! It sees you \
1253 and attacks! In moments, you are no more...";
1257 give stone_marker ~general;
1258 move stone_marker_top to snowy_intersection2;
1259 "^You hear a roar from the east! From out of the \
1260 sky, a giant white dragon descends! It draws near, spots you, \
1261 and bellows in rage! You shrink back, and pray for a quick but \
1262 painless end.^^There is a loud crack! The dragon, in trying to \
1263 land, almost impales itself on the obelisk marker! Part of the \
1264 marker breaks off, and the dragon flies off, whimpering in pain!";
1268 Attack, ThrowAt, WakeOther:
1270 "You disturb the sleeping dragon, who promptly makes you wish \
1272 default: "Best not to disturb the dragon, I'd guess.";
1276 Object captain "sea captain" On_Boat
1277 with name "captain",
1278 description "A rough-looking navy captain.",
1281 if (self hasnt general) {
1282 if (captain.number == 0) {
1284 "^You suddenly realize that you are being \
1285 held fast by two navy sailors! The captain walks forward and \
1286 points his cutlass near your ear.^^\
1287 ~What we have here, lads, is a stowaway!~ Some sailor cries out \
1288 ~Overboard with the stowaway!~ The captain smiles. \
1289 ~Now, we was planning on feeding you to the groupers, \
1290 but we could use a scullion in the hold. One things for sure, \
1291 ye ain't finding passage on this ship if ye ain't aligned with \
1292 the Antharian Navy cause!~ Some sailor cries out \
1293 (unnecessarily) ~The Antharian Navy cause!~. ~So, tell us lad, \
1294 are ye with us? If ye are true, you'll tell me the Antharian \
1295 Navy patron saint! So speak quickly, lad, if ye wish to stay \
1298 else "^~Speak up fellow! We havn't got all day!~";
1304 "The captain sighs. ~Into the water with ye, then,~ \
1305 he says, and the two sailors push you roughly overboard. \
1306 You land in the sea with a splash, and struggle to stay afloat. \
1307 The ship sails off, but oddly, moments later, it seems to \
1308 stall and start to sink! Before you get a chance to reflect on \
1309 this, a large grouper swallows you whole.";
1312 if (self has general)
1313 "The captain's a bit too busy trying to save \
1316 if (noun=='minirva') {
1319 StartTimer(militia,2);
1320 "~Aye, that's right. Escort the new scullion \
1321 down to the hold where --~^^\
1322 The captain's orders are cut short by a sudden grinding noise, \
1323 and the boat rocks violently! ~Reef, captain!~ you hear someone \
1324 cry. ~Blast!~ the captain says, ~quickly men, we've got to --~ \
1325 But it's too late. The boat starts to tip and sway, and \
1326 the two sailors release you and hastily try to help raise the \
1330 if (noun=='duncanthrax') {
1332 "The sailors suddenly pale at the mention of \
1333 Lord Duncanthrax. ~A traitor in our midst, eh?~ the captain \
1334 shouts and beheads you with one stroke.";
1336 if (noun=='ulysses' or 'odysseus')
1337 "~Nay lad, me thinks that \
1339 else "~Nay lad, that doesn't sound right.~";
1341 Attack, ThrowAt, Kiss, Show, Give:
1342 "Given that you are in the grips of several \
1343 strong navy sailors, this is impossible.";
1347 ! ***** THE EVIL ELEMENTALS
1348 Object black_elemental "black sphere" ENDGAME_ROOM
1349 with name "anabais" "black" "sphere" "earth",
1350 description "A black sphere of energy.",
1353 if (noun==brown_sphere) {
1354 remove self; remove brown_sphere;
1355 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1356 if (ENDGAME_ROOM.number == 4) {
1357 GameWinner(); rtrue; }
1358 "The black sphere howls in rage and is no more!";
1361 if (noun==TRUEROD) {
1363 print "You feel a strange foreboding feeling as \
1364 the black sphere seems to engulf the rod, then you! Your \
1365 surroundings change once again!^";
1370 default: "The black sphere is unresponsive.";
1374 Object smoke_elemental "smoke-colored sphere" ENDGAME_ROOM
1375 with name "smoke" "sphere" "fire", ! TODO new name...
1376 description "A smoke-filled sphere of energy.",
1379 if (noun==red_sphere) {
1380 remove self; remove red_sphere;
1381 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1382 if (ENDGAME_ROOM.number == 4) {
1383 GameWinner(); rtrue; }
1384 "The smoke-filled sphere howls in rage and is no more!";
1387 if (noun==TRUEROD) {
1389 print "You feel a strange foreboding feeling as \
1390 the smoke-filled sphere seems to engulf the rod, then you! Your \
1391 surroundings change once again!^";
1396 default: "The smoke-filled sphere is unresponsive.";
1400 Object gray_elemental "gray sphere" ENDGAME_ROOM
1401 with name "gray" "sphere" "water", ! TODO new name
1402 description "A gray sphere of energy.",
1405 if (noun==green_sphere) {
1406 remove self; remove green_sphere;
1407 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1408 if (ENDGAME_ROOM.number == 4) {
1409 GameWinner(); rtrue; }
1410 "The gray sphere howls in rage and is no more!";
1413 if (noun==TRUEROD) {
1415 print "You feel a strange foreboding feeling as \
1416 the gray sphere seems to engulf the rod, then you! Your \
1417 surroundings change once again!^";
1418 PlayerTo(FUBLIO_Cave);
1419 StartTimer(mad_hermit,3);
1422 default: "The gray sphere is unresponsive.";
1426 Object white_elemental "white sphere" ENDGAME_ROOM
1427 with name "white" "sphere" "air", ! TODO new name
1428 description "A white sphere of energy.",
1431 if (noun==silver_sphere) {
1432 remove self; remove silver_sphere;
1433 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1434 if (ENDGAME_ROOM.number == 4) {
1435 GameWinner(); rtrue; }
1436 "The white sphere howls in rage and is no more!";
1439 if (noun==TRUEROD) {
1441 print "You feel a strange foreboding feeling as \
1442 the white sphere seems to engulf the rod, then you! Your \
1443 surroundings change once again!^";
1444 PlayerTo(TROPHY_SECRET);
1447 default: "The white sphere is unresponsive.";
1452 ! ******************
1454 ! ******************
1456 Object fancy_scroll "fancy scroll"
1461 Object wigro_spell "turn undead" fancy_scroll
1465 "You speak the chant. Nothing seems to happen.";
1469 Object briefcase "briefcase" Subway_Tunnel
1470 with name "briefcase" "case",
1471 description "A somewhat battered brown-leather briefcase.",
1475 has container openable;
1477 Object red_scroll "red scroll" briefcase
1482 Object luncho_spell "send object to lower plane" red_scroll
1487 "You see a brief flash of smoke, but nothing happens.";
1488 if (second has animate)
1489 "You feel a slight rumbling beneath your feet, but nothing else \
1492 if ((second hasnt static) && (second hasnt scenery)) {
1493 if (second has clothing) give second ~worn;
1494 if (in_atrii == 1) {
1495 move second to MON_Chapel2;
1498 move second to Hades_5;
1499 print "There is a sudden puff of smoke, and "; DefArt(second);
1500 " suddenly vanishes!";
1502 "Your chant goes unanswered.";
1507 ! ******************
1509 ! ******************
1511 Object Atrii_gate "strange contraption" GUE_Labs_SECRET
1512 with name "contraption" "plate" "disc" "strange",
1513 description "It looks like a large, slightly convex round disc \
1514 made of some silvery material.",
1517 print "As you step onto the silvery disc, you feel a \
1518 strange jolt run through your body. A bright white \
1519 flash blinds you momentarily!^^You blink, trying to \
1520 register your surroundings.^";
1525 move noun to ATRII_1;
1526 CDefArt(noun); " suddenly disappears in a bright \
1527 flash of light as you place it on the silver disc!";
1528 Push, Pull, Touch, Take:
1529 "As you reach for the strange contraption, you notice \
1530 white sparks of something arc from the silver surface \
1531 to your fingers! You hastily draw back.";
1533 has static supporter enterable;
1535 ! *** the true rod pieces, and the golden rod (after joined)
1536 Object silver_rod_piece "silver rod piece" Mystical_Cave
1539 description "A strange short section of rod colored \
1543 if (location ~= Mystical_Cave) {
1544 if (second == TRUEROD)
1545 <<Join TRUEROD self>>;
1546 if ((second == brown_rod_piece) ||
1547 (second == red_rod_piece) ||
1548 (second == green_rod_piece)) {
1549 if (TRUEROD.number == 0) {
1551 move TRUEROD to parent(self);
1552 remove self; remove second;
1553 "There is a dazzling golden light as \
1554 you join the two rod pieces! What remains is a new, strange \
1557 else "There is a dazzling burst of \
1558 golden light. However, the pieces will not join, and seem \
1559 to be seeking out something else...";
1562 else "Some strange purple flash of force \
1563 blocks your efforts.";
1566 Object red_rod_piece "red rod piece" Mystical_Cave
1569 description "A strange short section of rod colored \
1573 if (location ~= Mystical_Cave) {
1574 if (second == TRUEROD)
1575 <<Join TRUEROD self>>;
1576 if ((second == silver_rod_piece) ||
1577 (second == brown_rod_piece) ||
1578 (second == green_rod_piece)) {
1579 if (TRUEROD.number == 0) {
1581 move TRUEROD to parent(self);
1582 remove self; remove second;
1583 "There is a dazzling golden light as \
1584 you join the two rod pieces! What remains is a new, strange \
1587 else "There is a dazzling burst of \
1588 golden light. However, the pieces will not join, and seem \
1589 to be seeking out something else...";
1592 else "Some strange purple flash of force \
1593 blocks your efforts.";
1596 Object green_rod_piece "green rod piece" Mystical_Cave
1599 description "A strange short section of rod colored \
1603 if (location ~= Mystical_Cave) {
1604 if (second == TRUEROD)
1605 <<Join TRUEROD self>>;
1606 if ((second == silver_rod_piece) ||
1607 (second == red_rod_piece) ||
1608 (second == brown_rod_piece)) {
1609 if (TRUEROD.number == 0) {
1611 move TRUEROD to parent(self);
1612 remove self; remove second;
1613 "There is a dazzling golden light as \
1614 you join the two rod pieces! What remains is a new, strange \
1617 else "There is a dazzling burst of \
1618 golden light. However, the pieces will not join, and seem \
1619 to be seeking out something else...";
1622 else "Some strange purple flash of force \
1623 blocks your efforts.";
1626 Object brown_rod_piece "brown rod piece" Mystical_Cave
1629 description "A strange short section of rod colored \
1633 if (location ~= Mystical_Cave) {
1634 if (second == TRUEROD)
1635 <<Join TRUEROD self>>;
1636 if ((second == silver_rod_piece) ||
1637 (second == red_rod_piece) ||
1638 (second == green_rod_piece)) {
1639 if (TRUEROD.number == 0) {
1641 move TRUEROD to parent(self);
1642 remove self; remove second;
1643 "There is a dazzling golden light as \
1644 you join the two rod pieces! What remains is a new, strange \
1647 else "There is a dazzling burst of \
1648 golden light. However, the pieces will not join, and seem \
1649 to be seeking out something else...";
1652 else "Some strange purple flash of force \
1653 blocks your efforts.";
1656 Object TRUEROD "golden rod"
1661 print "A wondrous, shimmering golden rod";
1662 if (TRUEROD.number < 3)
1663 " that seems slightly short.";
1668 if (TRUEROD.number == 3) {
1670 ! TODO -- this is essentially another 'win', but not a good one
1671 "You wave the rod, and feel a sudden blast of force! \
1672 The spheres howl in terror and \
1673 suddenly explode! The jolt of power from the rod sends you \
1674 hurtling through space, and you are lost in an endless \
1675 tumble through the void...";
1678 if ((second == silver_rod_piece) ||
1679 (second == red_rod_piece) ||
1680 (second == green_rod_piece) ||
1681 (second == brown_rod_piece)) {
1683 TRUEROD.number = TRUEROD.number + 1;
1684 print "You feel a strange surge of \
1685 mystic energy as you join the rod pieces. ", (The) second, " \
1686 joins with the golden rod";
1687 if (TRUEROD.number == 3) {
1689 print "!^^Time and space seem to grind to \
1691 Your surroundings and the very ground you stand on shatter like \
1692 planes of glass, revealing a strange, new dimension...^";
1694 PlayerTo(ENDGAME_ROOM);
1695 StartTimer(ENDGAME_timer,12);
1703 ! *** The results of winning the game ***
1706 print "The last sphere howls in rage and disappears!";
1708 " You scream in agony as the void that surrounds you \
1709 seems to implode! You feel yourself dissipating into the \
1710 surrounding nothingness. ~Is this my reward?~ you scream, \
1711 ~Is this, then, the end?~^^\
1712 A white light makes you open your eyes.^^\
1713 You are lying on a beach. The Great Sea laps at your \
1714 tattered garments. Slowly, you rise to your knees.^^\
1715 The sun, like a bloated, radiant bird, is sinking below the \
1716 wave on the horizon. Another day is coming to an end.^^\
1717 A voice startles you. ~Tis a fine spot for watching \
1718 sunsets.~ You turn to see Morgan the Ranger, Frobar and \
1719 the Thief nearby. The Thief helps you to your feet, and Frobar \
1720 glances your way. ~I sensed a great upheaval in the \
1721 fabric of time and space not long ago. I gather you \
1722 have quite a story to tell,~ he says. ~We \
1723 probably can relate to much of what you have seen, \
1724 although your unwavering faith is something we \
1725 desire to understand.~ Morgan explains, ~Belief in the \
1726 face of the unbelievable is an enviable strength.~ \
1727 The Thief chuckles quietly. \
1728 ~Perhaps you will join us at Delbins, where we will \
1729 partake in a belief of fine cuisine while you tell all?~ he says. \
1730 He notices your weary expression and \
1731 adds with surprising seriousness, ~Not that I \
1732 prepose to offer advice from one as myself, \
1733 but humbly, I admit, that many a time, a belief in myself \
1734 was often sufficient.~ He pauses. \
1735 ~Gods or no, now, you make your own destiny.~";