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)
6 ! SPIRITWRAK is free software; you can redistribute it and/or modify
7 ! it under the terms of the GNU General Public License as published by
8 ! the Free Software Foundation; either version 3 of the License, or
9 ! (at your option) any later version.
11 ! SPIRITWRAK is distributed in the hope that it will be useful, but
12 ! WITHOUT ANY WARRANTY; without even the implied warranty of
13 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 ! General Public License for more details.
16 ! You should have received a copy of the GNU General Public License
17 ! along with SPIRITWRAK. If not, see <https://www.gnu.org/licenses/>.
18 ! *********************************************************************
20 ! ----------------- (Frobar's home) -------------------------
22 Object FROBAR_Foyer "Entrance Foyer"
23 with description "You are in the Entrance Foyer of a \
24 small but tasteful home. The exit is to the southwest. \
25 The general area is tastefully done in maroon carpeting \
26 and brass fixtures. Another room lies to the north.",
27 name "maroon" "carpeting" "brass" "fixtures",
33 Object FROBAR_Parlor "Parlor"
34 with description "You are in a very decorative parlor. \
35 Various furnishings of high quality are arranged around \
36 an enormous rug with intricate golden symbols in the weave \
37 design. Open doorways lead south, north, east and west.",
38 name "rug" "doorways" "furnishings" "symbols",
45 Object frobar_plant "large potted plant" FROBAR_Parlor
46 with name "plant" "large" "potted",
47 initial "A large potted plant sits in one corner.",
48 description "A well-tended house-plant.",
51 if (the_spell_was == throck_spell) {
52 "The plant seems even healthier now.";
53 ! if (Frobar in FROBAR_Bedroom)
54 ! (couldn't think of a proper reaction...:)
59 Object FROBAR_Lounge "Lounge"
60 with description "A large room here apparently serves as a lounge \
61 for entertaining. The walls and furniture all have interesting \
62 design work that gives an impression of dignified age. A doorway \
64 name "furniture" "doorway",
68 Object FROBAR_Study "Study"
69 with description "This is a study room with fancy wood paneling and \
70 plush carpeting. There is an exit to the west.",
71 name "wood" "paneling" "carpeting",
75 Nearby FROBAR_shelves "large bookshelf"
76 with name "shelves" "shelf" "bookshelf",
77 initial "A large bookshelf takes up most of the north wall.",
78 description "It's filled with odds and ends, mostly uninteresting.",
82 Object FROBAR_Journal "plain journal" FROBAR_shelves
83 with name "journal" "plain",
86 description "This is a short journal of notes that \
87 Frobar was keeping. The contents are quite dull, mostly \
88 consisting of entries like ~Remember to water plant~ and \
89 so forth. In fact, the only non-trivial entry follows:^^\
90 ~Perhaps today I will go visit Barsap's latest creation. \
91 Then again, maybe I won't. This so-called 'Gambit' of his \
92 is supposed to be some silly diversion where people can \
93 hop around floating platforms trying to reach the southeast \
95 platform on the bottom level, just so they can get \
96 teleported back to the top, and start all over again! \
97 Can this be a monetarily beneficial thing? I doubt it.~";
99 ! (twisted -- four ancient ones)
100 Object p5 "twisted parchment" FROBAR_shelves
101 class parchment_class,
103 description "~...understand. I, like many of the Order, \
104 have understood that the greatest Saints of our Order were \
105 the Three, those Three that we know as the Ancient Ones. \
106 Why then, do I find in ancient cairns, in hidden temples, \
107 and in versions of the Scriptures found in unsettled lands, \
108 that _four_ beings that called themselves the Ancient Ones \
109 did do battle with evil and were defeated? This surely is \
110 not to be believed, but I...~";
112 Object FROBAR_Desk "large wood desk" FROBAR_Study
114 description "A massive wood desk carved from a single block of wood.",
116 has static supporter;
118 Object FROBAR_Bedroom "Bedroom"
119 with description "A nice cozy bedroom. The exit is south.",
123 Object FROBAR_bed "large bed" FROBAR_Bedroom
125 description "A large comfortable-looking bed.",
127 LookUnder: "Sorry, no monsters here.";
129 has static enterable supporter;
131 !Object FROBAR_Painting "large painting" FROBAR_Bedroom
132 ! with name "painting",
133 ! initial "There is a large painting hanging on the wall.",
135 ! if (self hasnt general)
136 ! "It appears to be an oil painting of a \
137 ! scroll on a table. A small note on the frame says, \
138 ! ~Still-life with Scroll, -FF, 791~";
140 ! "It appears to be an oil painting of a \
141 ! table. A small note on the frame says, \
142 ! ~Still-life, -FF, 791~";
146 ! if (self hasnt general) {
148 ! move painted_scroll to player;
150 ! print "As you touch the painting, your hands \
151 !run across the scroll, and the oil takes on a three-dimensional \
152 !quality! You ignore the strange sensations as you reach \
153 !into the painting, and withdraw the scroll";
154 ! if (Frobar in FROBAR_Bedroom)
155 ! "! Frobar watches the events over your \
156 !shoulder, and seems puzzled. ~Now, why didn't I ever think to try \
161 ! "The painting seems to be nothing more than \
162 !an oil painting now.";
166 ! ----------------- (Thief's home) -------------------------
168 Object THIEF_Bottom_of_staircase "Wondrous Stairway"
169 with description "An enormous spiral staircase seems to wind miles \
170 above your head in this curious column-like chamber. Strange \
171 points of light brighten the chamber from above. \
172 To the west is a small exit.",
173 name "points" "light" "staircase" "stairway" "stairs",
174 ! TODO -- fix this weirdness...
176 w_to "You can't go that way.", ! but later...
180 print "^You begin the long trek upwards. Strangely, \
181 the stair seems to twist and move as you step on it, \
182 turning like a corkscrew, until you are \
183 graciously deposited at the top, far above your \
184 previous location.^";
189 Object THIEF_Ent "Fancy Hall"
190 with description "This must be an apartment or penthouse in the \
191 skyscraper. You are in a very high hall, with black slate stone \
192 walls that seem to reflect shadows everywhere. There is a room \
193 to the north. The southern edge of this room drops off into the \
194 darkness, followed by a long spiral staircase. The ceiling overhead \
195 seems to have tiny points of light like a night sky.",
196 name "slate" "shadows" "staircase" "points" "light",
197 d_to THIEF_Bottom_of_staircase,
201 Object THIEF_Foyer "Magnificent Foyer"
202 with description "This is an exceptionally grand entrance foyer, \
203 with sweeping arched ceilings and sparkling chandeliers. The \
204 room is dimly lit. Open hallways lead south and west.",
210 Object THIEF_Lounge "Fancy Lounge"
211 with description "A tastefully overdone lounge with tapestries \
212 and gold enamel finished walls. The room is dimly lit, although \
213 you see no windows or other sources of light. Open hallways lead \
215 name "tapestries" "enamel",
217 w_to THIEF_Storeroom,
220 Object THIEF_Journal "short journal" THIEF_Lounge
222 initial "There's an open journal sitting here.",
225 description "This appears to be a short collection of notes:^^\
226 ~TIPS ON CRACKING THE NEW FROBOZZCO 3-DIAL COMBO LOCKS: ^\
227 Remember, there's a slight flaw in the design. For every \
228 correct number in the correct dial, pressing the opening button \
229 with cause a small click. Dials with the correct number in the \
230 wrong dial place will cause a small thunk. The lock mechanism \
231 scans for correct numbers in correct places first, and then \
232 for correct numbers in the wrong place in the 'remaining dials'. \
233 Simple! But don't forget, closing the locks will automatically \
234 lock and reset the dials!^^\
235 NEW FLATHEAD PAINTING: ^\
236 I've completed making the copy of the new Leonardo Flathead painting, \
237 received courtesy of the Royal Museum. Glad to say my skills in \
238 art forgery are undiminished -- I can barely tell the difference \
239 between the two myself! I'll soon replace the original with the \
240 copy, and no one will be the wiser!~";
243 Object THIEF_Storeroom "Workroom"
245 print "A sight to inspire even the most avaricious, this \
246 storeroom is filled with all sorts of rare and precious treasures. \
247 A hallway leads east";
248 if (self hasnt general)
249 print ". You notice that the west wall appears to be made of \
257 if ((noun == w_obj) && (self hasnt general))
258 "The west wall is a solid piece of granite, which \
259 seems very odd, considering the other walls are clearly made of \
262 if ((the_spell_was==ledak_spell) && (Painting_FAKE in self)) {
263 if (Painting_REAL in self)
264 print "One of the paintings";
265 else print "The painting";
266 remove Painting_FAKE;
267 " is surrounded by a yellow glow! It crumbles into \
273 Nearby THIEF_treasure "precious treasures"
274 with name "treasure" "jewels" "gemstones" "artifacts",
275 description "Piles of rare gemstones, precious jewelry, \
276 priceless artifacts, and other treasures line the walls \
280 "Fortunately, your high moral standing allows you \
281 the benefit of having no need for such materials of excess.";
285 Object pasta "pile of fettucini carbonari"
286 with name "pile" "fettucini" "carbonari" "pasta",
287 description "A large pile of fettucini dripping in \
291 if (self hasnt general) {
293 "You manage to stuff yourself with pasta, \
294 but there's still quite a lot left.";
297 "You've already had enough of this stuff \
298 to last a lifetime. Just the thought of eating more is enough to \
304 Object c50 "coin" class coin_class;
306 Object Painting_FAKE "priceless painting" THIEF_Storeroom
307 with name "painting",
308 plural "priceless paintings",
309 short_name "priceless painting",
310 description "It's a beautiful oil painting of a dark stormy \
311 scene. On the horizon, you can see the edges of mountaintops. Near \
312 the top of the painting, two winged figures are carrying a lone \
313 individual towards a break in the clouds, where a bright white light \
319 if (location == Museum_north) { ! player returned fake painting to museum!
321 "A museum curator appears and takes the \
322 painting. With an expert eye, he looks closely at it. ~This is \
323 a fake! I warn you sir, art forgery is a dangerous game.~ He \
324 leaves, much disgusted.";
327 if (Painting_REAL in parent(self))
328 "They both look so genuine! You can't decide!";
330 if (the_spell_was == ledak_spell) {
332 "One of the paintings is surrounded by a bright \
333 yellow glow, and disintegrates!";
336 if (Painting_REAL in parent(self))
337 "Search which one? Goodness, you can't decide!";
342 ! -------------ETHEREAL PLANE OF ATRII ------------
344 Object ATRII_1 "Ethereal Plane of Atrii"
345 with description "Standing on a featureless gray plane that \
346 stretches to the infinite horizon against a gray sky, you \
347 can only conclude one thing -- you're on the Ethereal Plane \
348 of Atrii. Well, at least it fits the description Brother \
349 Palemon gave you. It seems like you could go in any \
350 direction from here.",
351 cant_go "An invisible force blocks your way!",
352 name "plane" "horizon" "sky",
357 Object ATRII_2 "Ethereal Plane of Atrii"
358 with description "Flat, featureless gray is in every direction \
359 you look. Stranger still is the upright rectangular hole in the \
360 fabric of space that stands in the center of this area. \
361 Otherwise, you could wander this gray dimension in any direction, \
363 cant_go "An invisible force blocks your way!",
370 Nearby ATRII_2_hole "rectangular hole"
371 with name "hole" "rectangle" "opening",
372 description "Surely you are in a place where the very laws of \
373 nature and the Gods work by different rules! Here stands a \
374 rectangular hole, seemingly torn out of the very space you \
375 stand in. You see some curious metal chamber through the \
376 opening, but there is nothing behind the opening.",
379 print "^You step through and feel your stomach twist. \
380 You stumble past a set of open metal doors into...^";
382 PlayerTo(Skyscraper);
383 return 2; ! allow, but print nothing...
385 has scenery enterable;
387 Object ATRII_3 "Ethereal Plane of Atrii"
388 with description "Flat, featureless gray is in every direction \
389 you look. Stranger still is the flat, glass-like square in the \
390 center of the 'floor' of this area. \
391 Otherwise, you could wander this gray dimension in any direction, \
393 cant_go "An invisible force blocks your way!",
400 Nearby ATRII_3_ice "square of ice"
401 with name "square" "ice" "glass-like",
402 description "It looks and feels like a perfect square of ice, \
403 flush with the featureless gray surface you stand on.",
406 print "You step onto the square, and before you know it, your \
407 surroundings shift and start to fade! You feel a \
408 sudden chilling wind. The ice seems to lengthen and stretch. The \
409 gray plane slowly turns white and bumpy.^";
411 PlayerTo(Frozen_river2);
414 has scenery enterable;
416 Object ATRII_4 "Ethereal Plane of Atrii"
417 with description "Flat, featureless gray is in every direction \
418 you look. Stranger still is the large black hole to the south. \
419 Otherwise, you could wander this gray dimension in any direction, \
421 cant_go "An invisible force blocks your way!",
424 s_to [; <<Enter ATRII_4_hole>>; ],
427 Nearby ATRII_4_hole "black hole"
428 with name "hole" "black",
429 description "It looks like a large hole, probably twice your \
430 height. It's completely black and featureless.",
433 print "^You step into the black hole. You stumble \
434 forward, surrounded by blacker-than-night darkness.^";
436 PlayerTo(Subway_Tunnel);
439 has scenery enterable;
441 ! (secret subway tunnel)
442 Object Subway_Tunnel "Dark Tunnel"
443 with description "You're in a large dark tunnel that seems \
444 to run north and south. To the south you see light. There \
445 seem to be two metal tracks running along the ground.",
446 s_to GURTH_GUSPlatform,
447 n_to "You walk north, and run into a invisible force!",
452 print "^You step out into an underground chamber. \
453 A burly uniformed figure sees you exit the tunnel and yells, \
454 ~Hey, no playing in the tunnels, pal!~^";
460 "^You hear a rumbling noise echoed from somewhere, and \
461 the entire tunnel seems to shake! Then, all is quiet.";
464 "^Suddenly, without warning, a huge train car appears \
465 heading south! It plows straight into you!";
468 "^Suddenly, a huge train car appears heading north! \
469 You barely avoid getting pulverized! Strangely, \
470 you watch as the train continues north, and \
471 seems disappear into blackness nearby. It's as \
472 though the train was simply removed from the tunnel \
477 Nearby ST_tracks "tracks"
478 with name "tracks" "tracks" "metal",
479 description "Two long metal tracks, running north and south. \
480 There's something oddly familiar about them.",
483 Object ATRII_5 "Ethereal Plane of Atrii"
484 with description "Flat, featureless gray is in every direction \
485 you look. It seems like you could go in any \
486 direction from here.",
487 cant_go "An invisible force blocks your way!",
492 Object p9 "ripped parchment" ATRII_5
493 class parchment_class,
495 description "~...now know that the Rod we believe is \
496 the Rod of the Ancients, sequestered in our Monastery, is \
497 an artifact of evil! Imprisoned inside, \
498 true to the scriptures (at least this much is, what \
499 isn't, I can nowadays say is much) we know, is Anabais. \
500 What is worse, is that this very Rod is an artifact of \
501 evil power created by Anabais, in the image of the True \
502 Rod of the Ancients, which he planned to use to aid \
503 him in his evil gains! \
504 Were that evil one free again, and had about him both \
505 his brothers and his Rod of Evil, we would witness a \
507 greater than Quendor has ever known! I take relief in \
508 the knowledge that he will never be freed, and he will \
509 never regain his implement of evil; only an innocent \
510 being can break the false rod and \
511 free him from his prison, and subsequently, \
512 the false rod cannot be regained by Anabais through his \
513 own will, or another evil being. \
514 In fact, only a being of good again can gather \
515 the resulting pieces, and only through this being \
516 can Anabais regain his evil artifact, for...~";
519 Object ATRII_6 "Ethereal Plane of Atrii"
520 with description "Flat, featureless gray is in every direction \
521 you look. It seems like you could go in any \
522 direction from here.",
523 cant_go "An invisible force blocks your way!",
530 Object ATRII_7 "Ethereal Plane of Atrii"
531 with description "Flat, featureless gray is in every direction \
532 you look. Stranger still is the odd-shaped depression in the gray \
534 Otherwise, you could wander this gray dimension in any direction, \
536 cant_go "An invisible force blocks your way!",
543 Nearby ATRII_7_depression "depression"
544 with name "depression" "cavity",
545 description "It's a large elongated depression in the gray 'floor'. \
546 The cavity has a flat bottom, and somewhat cigar-like shape.",
549 print "^You step into the depression. Your very \
550 surroundings start to fade, replaced by sunlight that \
551 makes you squint! The gray plane undulates and \
552 buckles and turns into a great body of water \
553 before your very eyes.^";
555 PlayerTo(sailboat); ! useful if the player 'lost' the boat at sea.
558 has scenery enterable;
560 Object ATRII_8 "Ethereal Plane of Atrii"
561 with description "Flat, featureless gray is in every direction \
562 you look. Directly overhead, you notice odd streaks of \
563 light. From here, you could wander this gray dimension in any direction, \
566 cant_go "An invisible force blocks your way!",
571 ! ----------- Special Implementor's Residence -----------
573 Object Imp_Liv "Strange Room"
576 if (player in Imp_Curtains)
577 "can't see much behind these curtains.";
578 else "feel a great sense of dread! Surely, given the way \
579 you got here, this must be the domicile of a dreaded Implementor! \
580 The entire place feels strange and \
581 alien and, well, ~modern~. There's some sort of kitchen to the \
582 east. Long curtains cover what must be a window to the south.";
587 s_to [; <<Enter Imp_Curtains>>; ],
589 if (Imp in Imp_Bedroom) {
590 if (Imp_Liv.number == 3) {
594 else "^You hear some faint noises to the west.";
596 ! create some noises if player in curtains
597 if (player in Imp_Curtains) {
599 "^You hear some faint noises nearby.";
600 if (Imp in Imp_Kitchen)
601 "^You hear some faint noises to the east.";
606 ! if player hasn't 'listened' twice to start Imp,
607 ! start him anyway (otherwise, in truth, player
608 ! would be permanently stuck in (my) apartment.
609 if (Imp_Liv.number < 4) {
615 ! if player actually listens, better noises...
617 if (Imp in Imp_Bedroom) {
618 if (Imp hasnt general) { ! i.e. -- awake
619 if (Imp_Liv.number == 1) {
621 "It sounds like someone is talking to himself to \
622 the west. You hear: ~Now, wait just a second here, the player object \
623 is gone! How did that happen?~";
625 if (Imp_Liv.number == 2) {
627 "It sounds like someone is talking to himself to \
628 the west. You hear: ~That can't be right. I must be getting tired. \
629 Think I'll make myself a nice hot cup of coffee.~";
630 ! on next turn via Imp_Liv.each_turn, Imp daemon will be started...
632 ! otherwise, Imp has already made his rounds and
633 ! returned to bedroom, _not_ falling asleep
634 "You hear someone whistling a merry tune to the west.";
637 "You hear someone snoring loudly to the west.";
639 if (Imp in Imp_Liv) {
641 "You hear someone walking nearby. The footsteps \
642 soon fade to the east.";
644 "You hear someone walking nearby. The footsteps \
645 soon fade to the west.";
647 if (Imp in Imp_Kitchen) {
648 ! This assumes the daemon will run before the player turn.
649 if (Imp.number == 2) {
650 switch (Imp.weight) {
651 118: print "You hear an irritated voice say, \
652 ~What happened to my coffee maker?~ Slightly softer, you \
653 hear ~Well, I guess I'll have that iced tea.~";
654 119, 122: print "You hear a voice to the east say, \
655 ~Looks like I've got coffee, thank goodness.~";
656 121: print "You hear a voice to the east say, \
657 ~Great, I'm all out of coffee. Good thing I still have some \
660 " Shortly after this, you hear sounds of someone to \
661 the east starting some kitchen activity.";
663 else "You hear some brief busy noises from the west, \
664 followed by what sounds like someone drinking something. Shortly \
665 thereafter, you hear the sounds of someone walking into the area \
671 Nearby Imp_Curtains "set of curtains"
672 with name "curtain" "curtains",
673 description "Some heavy-cloth curtains along the south wall.",
675 Open: "You draw back the curtains and see a sight that \
676 beggars the mind! Through the windows, the night sky falls across \
677 some unknown landscape, dotted with strange bright points of light. \
678 Tall buildings seem to be everywhere. Whatever world you've stumbled \
679 onto, it certainly is not your own! You hastily close \
681 Enter: print "In an attempt to hide, you part the curtains. ";
683 has static enterable;
685 Object Imp_Kitchen "Strange Kitchen"
686 with description "A room that could be a kitchen, \
687 if it didn't seem completely strange. Harsh bright lights seem to \
688 be coming from some unknown source. Strange-looking white countertops and \
689 cabinets fill the area, along with a curious white closet-like object. \
690 A room lies to the west.",
691 name "cabinet" "cabinets" "closet" "refrigerator" "countertops",
695 Object Coffee_maker "curious machine" Imp_Kitchen
696 with name "machine" "curious",
697 description "A white plastic device that seems to \
698 encase a glass pitcher or kettle of some sort. Most odd.",
703 Object regular_coffee_can "can of regular coffee" Imp_Kitchen
704 with name "can" "coffee" "regular",
706 "The can reads: ~Brand-X coffee crystals~^^\
707 ~Rich, mountain-grown flavor.~";
711 "You'd need a good can-opener for that.";
718 Object Imp_Bedroom "Strange Bedroom"
719 with description "A very curious small bedroom. \
720 A white desk sits here amongst other odd furnishings.",
721 name "furnishings" "bed" "chair",
725 !Nearby Imp_Bed "furnishings"
726 ! with name "furnishings" "bed" "chair",
727 ! description "Some weird bedroom furniture.",
730 Object Imp_Desk "desk" Imp_Bedroom
732 description "A white desk, with a strange, modern look.",
734 has scenery supporter;
736 Object Imp_Computer "strange machine" Imp_Desk
737 with name "machine" "computer",
740 print "It's a strange metal box. On top, perhaps connected in some \
741 way, is another metal box with a glass plate on the front. Strange wires \
742 seem to be attached to the boxes somehow. \
743 In front of the boxes is an odd plastic \
744 flat object with rows and rows of plastic buttons labeled every letter in \
746 if (self hasnt general) {
748 print ".^^Looking closer, you notice curious glowing \
749 letters on the glass plate. You read the letters, and \
750 feel drawn to respond...^^\
751 SPIRITWRAK DEVELOPMENT SYSTEM:^\
752 (AUTOMATIC OBJECT GARBAGE-COLLECTION)^\
753 REMOVE OBJECT IMPENETRABLE_STEEL_WALL? (Y/N) ";
754 if (YesOrNo() == 0) "You press a button labeled ~N~. The strange box \
755 emits a tiny beep, and the glass plate is covered with fantastic colorful \
758 ! set-up the secret room
760 give cave_intersection general;
762 "You press a button labeled ~Y~. The strange box \
763 emits a tiny beep, and the glass plate is covered with fantastic colorful \
767 else ". The glass plate currently has strange glowing colorful \
768 patterns displayed on it.";
773 print "~I'm afraid you'll have to go back.~ The Implementor \
774 snaps his fingers, and suddenly, you're back in...^";
781 Nearby Imp_door "door"
784 if (self in Imp_Liv) {
785 if (player notin Imp_Curtains)
786 "There's a closed door to the west.";
789 else "There's a closed door to the east.";
792 if (self in Imp_Liv) {
793 if (player notin Imp_Curtains)
794 "There's an open door to the west.";
797 else "There's an open door to the east.";
799 description "A plain-looking door. A note \
800 attached to it says ~DO NOT DISTURB, IMPLEMENTOR AT WORK~.",
802 if (self in Imp_Liv) return w_to;
806 if (self in Imp_Liv) return Imp_Bedroom;
809 found_in Imp_Liv Imp_Bedroom,
812 if ((Imp in Imp_Bedroom) && (Imp hasnt general)) {
813 print "You open the door, revealing a small room with \
814 what must be an Implementor sitting behind a desk. The Implementor looks \
815 up, startled. ~You're here?~ he says, observantly. ";
820 has static door openable;
823 ! *************** And, for my final trick, the endgame **************
825 Object Mystical_Cave "Mystical Cave"
826 with description "You've entered a wondrous natural cave, lit \
827 everywhere by reflected light from some sort of purple crystalline substance \
828 in the walls. A tunnel exits to the northwest.",
829 name "reflected" "crystal" "crystalline" "substance",
832 if (Mystical_Cave.number ~= 4)
833 "The purple light in the chamber seems to pulse with energy, \
834 and find your way blocked by an invisible force!";
837 ! fill with things, if necc.
838 print "As you leave, a sudden tremor shakes the \
839 cave! You just narrowly avoid a sudden cave-in behind you!^";
840 give cave_intersection ~general;
841 return cave_intersection;
846 Nearby purple_sphere "purple sphere"
847 with name "sphere" "purple",
848 initial "There's a purple crystal sphere partially embedded \
849 in the rock floor here.",
850 description "A large purple sphere that seems to pulse with \
854 ! various endgame trickery...
855 if (silver_rod_piece in player) {
856 while (child(player)~=0) {
857 give child(player) ~worn;
858 move child(player) to Mystical_Cave;
860 move silver_rod_piece to player;
862 print "The sphere pulses with angry energy! It seems to \
863 be fighting the silver rod piece you hold! With a sudden burst, you \
864 feel your mind reel and your very surroundings change!^";
865 give stone_marker general;
866 ! give snowy_intersection general ~visited;
867 give snowy_intersection general;
868 StartTimer(White_Dragon,3);
869 PlayerTo(Dragon_Cave);
872 if (green_rod_piece in player) {
873 while (child(player)~=0) {
874 give child(player) ~worn;
875 move child(player) to Mystical_Cave;
877 move green_rod_piece to player;
879 print "The sphere pulses with angry energy! It seems to \
880 be fighting the green rod piece you hold! With a sudden burst, you \
881 feel your mind reel and your very surroundings change!^";
882 StartTimer(captain,3);
886 if (red_rod_piece in player) {
887 while (child(player)~=0) {
888 give child(player) ~worn;
889 move child(player) to Mystical_Cave;
891 move red_rod_piece to player;
893 print "The sphere pulses with angry energy! It seems to \
894 be fighting the red rod piece you hold! With a sudden burst, you \
895 feel your mind reel and your very surroundings change!^";
896 ! give Stadium_entrance general ~visited;
897 ! remove stadium_sign;
898 ! remove stadium_statue;
899 ! move statue_base to Stadium_entrance;
900 StartTimer(statue_base,2);
901 PlayerTo(Stadium_entrance2);
904 if (brown_rod_piece in player) {
905 while (child(player)~=0) {
906 give child(player) ~worn;
907 move child(player) to Mystical_Cave;
909 move brown_rod_piece to player;
911 print "The sphere pulses with angry energy! It seems to \
912 be fighting the brown rod piece you hold! With a sudden burst, you \
913 feel your mind reel and your very surroundings change!^";
914 ! give GURTH_House general ~visited;
915 ! move bad_brick to GURTH_House;
916 StartTimer(bad_brick,7);
917 PlayerTo(GURTH_House2);
921 "A purple blast of force throws you back!";
925 Object skeleton "skeleton" Mystical_Cave
926 with name "skeleton" "bones",
927 initial "Lying in one corner of the room is a skeleton.",
928 description "Just some bones, not much else, is all.",
930 Pull, Push, Turn, ThrownAt, Touch, Attack, Rub,
931 Cut, Shake, Squeeze, Kiss:
933 "The skeleton crumbles into dust, as though \
934 many years of time had suddenly caught up with it in one \
939 ! (black -- final parchment of Palemon's final words)
940 Object p8 "blackened parchment" Mystical_Cave
941 class parchment_class,
942 with name "blackened",
943 description "~I write these final words not in the hope \
944 that others will find and heed them, for this is too great \
945 a hope in my moment of death, but rather, to try and maintain my mind and soul \
946 in the face of the terror I now know is the truth.^^\
947 For how can a man survive, knowing that his entire life, \
948 his entire belief, has been a ruse, a dupe, from the \
949 early beginning? That he has merely been a pawn in a \
950 working of evil that cannot be stopped?^^\
951 I have fought all manner of terrors, and recovered that which \
952 I know is the _true_ Rod of the Ancients, broken and scattered \
953 eons ago in the face of great evil. I sought also those \
954 ancient spheres that the Four Ancients never had the chance to \
955 use against the evil four elemental demons, but alas, I could \
956 not find them all, and sequestered those which I did with \
957 good people that the elemental evil could not touch.^^\
958 Alas, my quest has ended here. I lie trapped here, \
959 with the pieces of the true Rod in hand, unable to go forward, trapped by the \
960 elemental mystic locks on the rod that prevent it from leaving this \
961 very room, yet unable to go back, to leave the rod here and \
962 deny the very real danger of the defeat of the Ancients, of \
963 the power that the evil elementals hold.^^\
964 What is a faith destroyed? Who can help me to believe, in my moment \
971 Object Dragon_Cave "Giant Cavern"
972 with description "You find yourself in a huge cavern. To the west \
973 is a large exit that looks out into a void of snow-covered mountains.",
975 w_to "You hesitate. The cave seems to just \
976 exit off the side of a mountain, and all you can see below is whiteness. \
977 It could be a long way down.",
979 out_to [; <<Jump>>; ],
982 print "You close your eyes and leap out of the cave! \
983 You plummet through silent white winds. \
984 Moments later, you fall right into an enormous snowbank, and \
985 roll downwards, into...^";
986 PlayerTo(snowy_intersection2);
991 Object On_Boat "On strange boat"
992 with description "You are on a long open boat, riding the waves of \
993 some great sea. The boat seems to be filled with sailors from \
995 name "waves" "sea" "mast" "floorboards" "ship" "boat",
998 if (captain has general) {
999 if (noun==green_rod_piece) {
1000 remove green_rod_piece; ! it'll be back
1001 give shipwreck general;
1002 Mystical_Cave.number = Mystical_Cave.number + 1;
1005 print "You drop the green rod and watch it roll near \
1006 a mast and get stuck in the floorboards.^^\
1007 There's a load crack! The ship is breaking apart! Sailors \
1008 scramble in vain for safety! You hang onto the side of the \
1009 boat, but the vessel rocks wildly, and you fall into the waters. \
1010 ^^As you sink, you notice the waters seem to change to a purplish \
1011 hue, and you find yourself back in...^";
1012 PlayerTo(Mystical_Cave);
1017 "The sailors are holding you fast, so you \
1018 can't do this at the moment.";
1022 Nearby militia "sailors"
1023 with name "sailors" "militia" "navy",
1024 description "A bunch of dour-looking navy sailors.",
1028 "The ship breaks asunder! Sailors scramble madly \
1029 and fall into the violent waves! You hear \
1030 the captain scream ~Blast! I can't swim!~ before the \
1031 waters cover you completely.";
1035 Object ENDGAME_ROOM "Nothingness"
1036 with description "Nothingness surrounds you. Yet, you feel like \
1037 your conscious being extends into worlds and dimensions never \
1038 imagined. You float in a void of total being.",
1039 number 0, ! number of elementals banished
1041 switch (ENDGAME_timer.number) {
1042 0: ENDGAME_timer.number = 1;
1043 if (black_elemental in ENDGAME_ROOM)
1044 "^Echoing in your mind, you hear a voice, that you \
1045 somehow know is from the black sphere. ~Give me the rod priest, \
1046 and you shall be immortalized as a symbol to an entire civilization!~";
1047 1: ENDGAME_timer.number = 2;
1048 if (smoke_elemental in ENDGAME_ROOM)
1049 "^Echoing in your mind, you hear a voice, that you \
1050 somehow know is from the smoke-colored sphere. ~Give me the rod priest, \
1051 and I shall let you be witness to a feat of great magic, never \
1052 before witnessed!~";
1053 2: ENDGAME_timer.number = 3;
1054 if (gray_elemental in ENDGAME_ROOM)
1055 "^Echoing in your mind, you hear a voice, that you \
1056 somehow know is from the gray-colored sphere. ~Give me the rod priest, \
1057 and I will grant you power over all who surround you!~";
1058 3: ENDGAME_timer.number = 4;
1059 if (white_elemental in ENDGAME_ROOM)
1060 "^Echoing in your mind, you hear a voice, that you \
1061 somehow know is from the white sphere. ~Give me the rod priest, \
1062 and you will gain the attention of one of the more powerful \
1063 figures of your time!~";
1068 Object ENDGAME_timer "void" ENDGAME_ROOM
1069 with name "void" "nothingness",
1070 description "The absence of anything. Yet, at the same \
1071 time, the sense that everything possible is near.",
1076 if (ENDGAME_ROOM.number < 3)
1077 print "The spheres nearby suddenly converge";
1078 else print "The sphere nearby suddenly converges";
1079 " towards you! In your mind, you hear \
1080 ~Hesitation, foolish priest, was the downfall of the Ancient \
1081 Ones~ before you feel the full force of the void.";
1085 ! *** fake room/encounter for bad ending #x
1086 Object badend1 "On Giant Cube"
1087 with description "You stand on a single giant floating white \
1088 cube, in the middle of some dimly lit cavern. \
1089 ^^A small newt floats nearby, concentrating on something.^^\
1090 The newt suddenly opens its eyes! ~What?~ it croaks in \
1091 surprise. ~Who are you? You've broken my concentration on \
1092 the spell, you fool!~ the newt croaks. You feel the cube \
1093 shift, then stop floating! You plummet into the lava you \
1094 feared was below..."
1097 Object badend2 "Top of Pyramid"
1098 with description "You are on top of a pyramid in some \
1099 ancient city. You see dense jungle to the horizon. \
1100 An ancient civilization spreads before you, in all its \
1101 mysterious glory.^^Several robed figures surround you.^^\
1102 Suddenly, you realize you are tightly bound! One of the \
1103 figures points towards the horizon and makes a complicated \
1104 gesture. In a language you do not understand, he seems \
1105 to make a prayer to some nameless god! Fearing the \
1106 inevitable, you struggle mightily, but to no avail. \
1107 In moments, the group of robed figures hurls you off the \
1108 pyramid to your death!"
1115 Object Imp "Implementor" Imp_Bedroom
1116 with name "Implementor",
1119 print "Some Implementor. Looks more like a oddly-dressed \
1120 young man badly in need of a haircut";
1121 if (self has general)
1122 ". He's also sound asleep!";
1126 print "^Someone you assume must be an Implementor \
1128 if (self has general)
1133 weight 120, ! about right
1135 ! if asleep, which is usually the case
1136 if (self has general) {
1137 if (action==##WakeOther or ##Attack) {
1138 print "You manage to rouse the Implementor from his \
1139 slumber. He stares at you, bewildered. ~What are you doing here?~ \
1141 ImpSendBack(); rtrue;
1144 "He appears to be sound asleep right now, and isn't very \
1148 ! (I suppose this is unnecessary. -- i.e. the player shouldn't be able to
1149 ! interact with the implementor unless the implementor is asleep)
1150 ! print "Well, that got his attention. The Implementor \
1151 !looks completely startled. ~What are you doing here?~ he says. ";
1152 !ImpSendBack(); rtrue;
1156 ! ASSUMPTION -- daemon started by start event
1158 if (Imp.number == 0) {
1160 if ((player in Imp_Liv) && (player notin Imp_Curtains)) {
1161 print "^The door to the west suddenly flies open! \
1162 A somewhat bedraggled Implementor steps out! He spots you and his \
1163 jaw drops. ~You, here?~ he says. ";
1164 ImpSendBack(); rtrue;
1167 print "^You hear a door open to the west.^";
1169 move Imp to Imp_Liv;
1172 ! first a little 'lazy' clause that kicks the player
1173 ! out if the Imp is moving around and the player isn't
1175 if ((Imp.number < 5) && (player notin Imp_Curtains)) {
1176 if (Imp in location) print "^The Implementor ";
1177 else print "^From nearby, an Implementor rushes up and \
1179 print " grabs you by the shoulder! \
1180 ~What are you doing here?~ he \
1181 says. "; ImpSendBack(); return 1;
1183 ! now, otherwise, we move the Imp and set his
1184 ! number accordingly. Room descs and 'Listen'
1185 ! traps in Imp_Liv will need to use this info
1186 switch (Imp.number) {
1187 ! [step 1, moving to Kitchen]
1188 1: move Imp to Imp_Kitchen;
1190 if (Coffee_maker notin Imp_Kitchen) Imp.weight = 118;
1192 if (regular_coffee_can in Imp_Kitchen) {
1194 remove regular_coffee_can;
1197 if (decaf_coffee_can in Imp_Kitchen) {
1199 remove decaf_coffee_can;
1202 ! no coffee, gosh darn it
1208 ! [step 2, making/drinking the beverage]
1210 ! [step 3, leaving kitchen, back to living room]
1212 move Imp to Imp_Liv;
1213 ! [step 4, goes back into bedroom]
1215 give Imp_door ~open;
1216 if (player in Imp_Curtains)
1217 print "^You hear a door close to the west.^";
1218 move Imp to Imp_Bedroom;
1219 ! move coffee_cup to Imp_Bedroom;
1220 if (Imp.weight == 122)
1221 give Imp general; ! asleep
1228 !Object coffee_cup "large cup"
1229 ! with name "cup" "large",
1230 ! description "A large mug, with the residue of some brown liquid \
1234 ! has container open;
1236 ! MOVEPRINTNPC routine, from Gareth Rees' 'THIEF.INF'
1237 ! (TODO -- you really don't need this, since only Frobar moves in this fashion)
1238 [ MovePrintNPC n dest dir;
1239 if (n in location) {
1240 print "^", (The) n, " walks off";
1241 if (dir ~= in_obj or out_obj or u_obj && dir ~= d_obj)
1242 print " to the ", LanguageDirection(dir.door_dir);
1245 if (dest == 0) remove n; ! This seems odd - if dest bogus, 'unlink' NPC?
1246 else move n to dest;
1248 print "^", (The) n, " walks in.^";
1251 Object White_Dragon "White Dragon" Dragon_Cave
1252 with name "dragon" "white" "giant",
1254 print "There is a gigantic white dragon here";
1255 if (self has general)
1256 " sleeping peacefully.";
1259 description "A giant white dragon, the size of a small house.",
1263 if (location == Dragon_Cave) {
1265 "^The dragon suddenly snorts and wakes! It sees you \
1266 and attacks! In moments, you are no more...";
1270 give stone_marker ~general;
1271 move stone_marker_top to snowy_intersection2;
1272 "^You hear a roar from the east! From out of the \
1273 sky, a giant white dragon descends! It draws near, spots you, \
1274 and bellows in rage! You shrink back, and pray for a quick but \
1275 painless end.^^There is a loud crack! The dragon, in trying to \
1276 land, almost impales itself on the obelisk marker! Part of the \
1277 marker breaks off, and the dragon flies off, whimpering in pain!";
1281 Attack, ThrowAt, WakeOther:
1283 "You disturb the sleeping dragon, who promptly makes you wish \
1285 default: "Best not to disturb the dragon, I'd guess.";
1289 Object captain "sea captain" On_Boat
1290 with name "captain",
1291 description "A rough-looking navy captain.",
1294 if (self hasnt general) {
1295 if (captain.number == 0) {
1297 "^You suddenly realize that you are being \
1298 held fast by two navy sailors! The captain walks forward and \
1299 points his cutlass near your ear.^^\
1300 ~What we have here, lads, is a stowaway!~ Some sailor cries out \
1301 ~Overboard with the stowaway!~ The captain smiles. \
1302 ~Now, we was planning on feeding you to the groupers, \
1303 but we could use a scullion in the hold. One things for sure, \
1304 ye ain't finding passage on this ship if ye ain't aligned with \
1305 the Antharian Navy cause!~ Some sailor cries out \
1306 (unnecessarily) ~The Antharian Navy cause!~. ~So, tell us lad, \
1307 are ye with us? If ye are true, you'll tell me the Antharian \
1308 Navy patron saint! So speak quickly, lad, if ye wish to stay \
1311 else "^~Speak up fellow! We havn't got all day!~";
1317 "The captain sighs. ~Into the water with ye, then,~ \
1318 he says, and the two sailors push you roughly overboard. \
1319 You land in the sea with a splash, and struggle to stay afloat. \
1320 The ship sails off, but oddly, moments later, it seems to \
1321 stall and start to sink! Before you get a chance to reflect on \
1322 this, a large grouper swallows you whole.";
1325 if (self has general)
1326 "The captain's a bit too busy trying to save \
1329 if (noun=='minirva') {
1332 StartTimer(militia,2);
1333 "~Aye, that's right. Escort the new scullion \
1334 down to the hold where --~^^\
1335 The captain's orders are cut short by a sudden grinding noise, \
1336 and the boat rocks violently! ~Reef, captain!~ you hear someone \
1337 cry. ~Blast!~ the captain says, ~quickly men, we've got to --~ \
1338 But it's too late. The boat starts to tip and sway, and \
1339 the two sailors release you and hastily try to help raise the \
1343 if (noun=='duncanthrax') {
1345 "The sailors suddenly pale at the mention of \
1346 Lord Duncanthrax. ~A traitor in our midst, eh?~ the captain \
1347 shouts and beheads you with one stroke.";
1349 if (noun=='ulysses' or 'odysseus')
1350 "~Nay lad, me thinks that \
1352 else "~Nay lad, that doesn't sound right.~";
1354 Attack, ThrowAt, Kiss, Show, Give:
1355 "Given that you are in the grips of several \
1356 strong navy sailors, this is impossible.";
1360 ! ***** THE EVIL ELEMENTALS
1361 Object black_elemental "black sphere" ENDGAME_ROOM
1362 with name "anabais" "black" "sphere" "earth",
1363 description "A black sphere of energy.",
1366 if (noun==brown_sphere) {
1367 remove self; remove brown_sphere;
1368 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1369 if (ENDGAME_ROOM.number == 4) {
1370 GameWinner(); rtrue; }
1371 "The black sphere howls in rage and is no more!";
1374 if (noun==TRUEROD) {
1376 print "You feel a strange foreboding feeling as \
1377 the black sphere seems to engulf the rod, then you! Your \
1378 surroundings change once again!^";
1383 default: "The black sphere is unresponsive.";
1387 Object smoke_elemental "smoke-colored sphere" ENDGAME_ROOM
1388 with name "smoke" "sphere" "fire", ! TODO new name...
1389 description "A smoke-filled sphere of energy.",
1392 if (noun==red_sphere) {
1393 remove self; remove red_sphere;
1394 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1395 if (ENDGAME_ROOM.number == 4) {
1396 GameWinner(); rtrue; }
1397 "The smoke-filled sphere howls in rage and is no more!";
1400 if (noun==TRUEROD) {
1402 print "You feel a strange foreboding feeling as \
1403 the smoke-filled sphere seems to engulf the rod, then you! Your \
1404 surroundings change once again!^";
1409 default: "The smoke-filled sphere is unresponsive.";
1413 Object gray_elemental "gray sphere" ENDGAME_ROOM
1414 with name "gray" "sphere" "water", ! TODO new name
1415 description "A gray sphere of energy.",
1418 if (noun==green_sphere) {
1419 remove self; remove green_sphere;
1420 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1421 if (ENDGAME_ROOM.number == 4) {
1422 GameWinner(); rtrue; }
1423 "The gray sphere howls in rage and is no more!";
1426 if (noun==TRUEROD) {
1428 print "You feel a strange foreboding feeling as \
1429 the gray sphere seems to engulf the rod, then you! Your \
1430 surroundings change once again!^";
1431 PlayerTo(FUBLIO_Cave);
1432 StartTimer(mad_hermit,3);
1435 default: "The gray sphere is unresponsive.";
1439 Object white_elemental "white sphere" ENDGAME_ROOM
1440 with name "white" "sphere" "air", ! TODO new name
1441 description "A white sphere of energy.",
1444 if (noun==silver_sphere) {
1445 remove self; remove silver_sphere;
1446 ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1;
1447 if (ENDGAME_ROOM.number == 4) {
1448 GameWinner(); rtrue; }
1449 "The white sphere howls in rage and is no more!";
1452 if (noun==TRUEROD) {
1454 print "You feel a strange foreboding feeling as \
1455 the white sphere seems to engulf the rod, then you! Your \
1456 surroundings change once again!^";
1457 PlayerTo(TROPHY_SECRET);
1460 default: "The white sphere is unresponsive.";
1465 ! ******************
1467 ! ******************
1469 Object fancy_scroll "fancy scroll"
1474 Object wigro_spell "turn undead" fancy_scroll
1478 "You speak the chant. Nothing seems to happen.";
1482 Object briefcase "briefcase" Subway_Tunnel
1483 with name "briefcase" "case",
1484 description "A somewhat battered brown-leather briefcase.",
1488 has container openable;
1490 Object red_scroll "red scroll" briefcase
1495 Object luncho_spell "send object to lower plane" red_scroll
1500 "You see a brief flash of smoke, but nothing happens.";
1501 if (second has animate)
1502 "You feel a slight rumbling beneath your feet, but nothing else \
1505 if ((second hasnt static) && (second hasnt scenery)) {
1506 if (second has clothing) give second ~worn;
1507 if (in_atrii == 1) {
1508 move second to MON_Chapel2;
1511 move second to Hades_5;
1512 print "There is a sudden puff of smoke, and "; DefArt(second);
1513 " suddenly vanishes!";
1515 "Your chant goes unanswered.";
1520 ! ******************
1522 ! ******************
1524 Object Atrii_gate "strange contraption" GUE_Labs_SECRET
1525 with name "contraption" "plate" "disc" "strange",
1526 description "It looks like a large, slightly convex round disc \
1527 made of some silvery material.",
1530 print "As you step onto the silvery disc, you feel a \
1531 strange jolt run through your body. A bright white \
1532 flash blinds you momentarily!^^You blink, trying to \
1533 register your surroundings.^";
1538 move noun to ATRII_1;
1539 CDefArt(noun); " suddenly disappears in a bright \
1540 flash of light as you place it on the silver disc!";
1541 Push, Pull, Touch, Take:
1542 "As you reach for the strange contraption, you notice \
1543 white sparks of something arc from the silver surface \
1544 to your fingers! You hastily draw back.";
1546 has static supporter enterable;
1548 ! *** the true rod pieces, and the golden rod (after joined)
1549 Object silver_rod_piece "silver rod piece" Mystical_Cave
1552 description "A strange short section of rod colored \
1556 if (location ~= Mystical_Cave) {
1557 if (second == TRUEROD)
1558 <<Join TRUEROD self>>;
1559 if ((second == brown_rod_piece) ||
1560 (second == red_rod_piece) ||
1561 (second == green_rod_piece)) {
1562 if (TRUEROD.number == 0) {
1564 move TRUEROD to parent(self);
1565 remove self; remove second;
1566 "There is a dazzling golden light as \
1567 you join the two rod pieces! What remains is a new, strange \
1570 else "There is a dazzling burst of \
1571 golden light. However, the pieces will not join, and seem \
1572 to be seeking out something else...";
1575 else "Some strange purple flash of force \
1576 blocks your efforts.";
1579 Object red_rod_piece "red rod piece" Mystical_Cave
1582 description "A strange short section of rod colored \
1586 if (location ~= Mystical_Cave) {
1587 if (second == TRUEROD)
1588 <<Join TRUEROD self>>;
1589 if ((second == silver_rod_piece) ||
1590 (second == brown_rod_piece) ||
1591 (second == green_rod_piece)) {
1592 if (TRUEROD.number == 0) {
1594 move TRUEROD to parent(self);
1595 remove self; remove second;
1596 "There is a dazzling golden light as \
1597 you join the two rod pieces! What remains is a new, strange \
1600 else "There is a dazzling burst of \
1601 golden light. However, the pieces will not join, and seem \
1602 to be seeking out something else...";
1605 else "Some strange purple flash of force \
1606 blocks your efforts.";
1609 Object green_rod_piece "green rod piece" Mystical_Cave
1612 description "A strange short section of rod colored \
1616 if (location ~= Mystical_Cave) {
1617 if (second == TRUEROD)
1618 <<Join TRUEROD self>>;
1619 if ((second == silver_rod_piece) ||
1620 (second == red_rod_piece) ||
1621 (second == brown_rod_piece)) {
1622 if (TRUEROD.number == 0) {
1624 move TRUEROD to parent(self);
1625 remove self; remove second;
1626 "There is a dazzling golden light as \
1627 you join the two rod pieces! What remains is a new, strange \
1630 else "There is a dazzling burst of \
1631 golden light. However, the pieces will not join, and seem \
1632 to be seeking out something else...";
1635 else "Some strange purple flash of force \
1636 blocks your efforts.";
1639 Object brown_rod_piece "brown rod piece" Mystical_Cave
1642 description "A strange short section of rod colored \
1646 if (location ~= Mystical_Cave) {
1647 if (second == TRUEROD)
1648 <<Join TRUEROD self>>;
1649 if ((second == silver_rod_piece) ||
1650 (second == red_rod_piece) ||
1651 (second == green_rod_piece)) {
1652 if (TRUEROD.number == 0) {
1654 move TRUEROD to parent(self);
1655 remove self; remove second;
1656 "There is a dazzling golden light as \
1657 you join the two rod pieces! What remains is a new, strange \
1660 else "There is a dazzling burst of \
1661 golden light. However, the pieces will not join, and seem \
1662 to be seeking out something else...";
1665 else "Some strange purple flash of force \
1666 blocks your efforts.";
1669 Object TRUEROD "golden rod"
1674 print "A wondrous, shimmering golden rod";
1675 if (TRUEROD.number < 3)
1676 " that seems slightly short.";
1681 if (TRUEROD.number == 3) {
1683 ! TODO -- this is essentially another 'win', but not a good one
1684 "You wave the rod, and feel a sudden blast of force! \
1685 The spheres howl in terror and \
1686 suddenly explode! The jolt of power from the rod sends you \
1687 hurtling through space, and you are lost in an endless \
1688 tumble through the void...";
1691 if ((second == silver_rod_piece) ||
1692 (second == red_rod_piece) ||
1693 (second == green_rod_piece) ||
1694 (second == brown_rod_piece)) {
1696 TRUEROD.number = TRUEROD.number + 1;
1697 print "You feel a strange surge of \
1698 mystic energy as you join the rod pieces. ", (The) second, " \
1699 joins with the golden rod";
1700 if (TRUEROD.number == 3) {
1702 print "!^^Time and space seem to grind to \
1704 Your surroundings and the very ground you stand on shatter like \
1705 planes of glass, revealing a strange, new dimension...^";
1707 PlayerTo(ENDGAME_ROOM);
1708 StartTimer(ENDGAME_timer,12);
1716 ! *** The results of winning the game ***
1719 print "The last sphere howls in rage and disappears!";
1721 " You scream in agony as the void that surrounds you \
1722 seems to implode! You feel yourself dissipating into the \
1723 surrounding nothingness. ~Is this my reward?~ you scream, \
1724 ~Is this, then, the end?~^^\
1725 A white light makes you open your eyes.^^\
1726 You are lying on a beach. The Great Sea laps at your \
1727 tattered garments. Slowly, you rise to your knees.^^\
1728 The sun, like a bloated, radiant bird, is sinking below the \
1729 wave on the horizon. Another day is coming to an end.^^\
1730 A voice startles you. ~Tis a fine spot for watching \
1731 sunsets.~ You turn to see Morgan the Ranger, Frobar and \
1732 the Thief nearby. The Thief helps you to your feet, and Frobar \
1733 glances your way. ~I sensed a great upheaval in the \
1734 fabric of time and space not long ago. I gather you \
1735 have quite a story to tell,~ he says. ~We \
1736 probably can relate to much of what you have seen, \
1737 although your unwavering faith is something we \
1738 desire to understand.~ Morgan explains, ~Belief in the \
1739 face of the unbelievable is an enviable strength.~ \
1740 The Thief chuckles quietly. \
1741 ~Perhaps you will join us at Delbins, where we will \
1742 partake in a belief of fine cuisine while you tell all?~ he says. \
1743 He notices your weary expression and \
1744 adds with surprising seriousness, ~Not that I \
1745 prepose to offer advice from one as myself, \
1746 but humbly, I admit, that many a time, a belief in myself \
1747 was often sufficient.~ He pauses. \
1748 ~Gods or no, now, you make your own destiny.~";