! ********************************************************************* ! SPECIAL.INF -- Add-on for SPIRITWRAK ! Contains: 'specials' that I wanted to keep separate from ! the other 'city-based' .INF files (Atrii, NPC homes) ! ********************************************************************* ! ----------------- (Frobar's home) ------------------------- Object FROBAR_Foyer "Entrance Foyer" with description "You are in the Entrance Foyer of a \ small but tasteful home. The exit is to the southwest. \ The general area is tastefully done in maroon carpeting \ and brass fixtures. Another room lies to the north.", name "maroon" "carpeting" "brass" "fixtures", sw_to FROBAR_Ent, out_to FROBAR_Ent, n_to FROBAR_Parlor, has light; Object FROBAR_Parlor "Parlor" with description "You are in a very decorative parlor. \ Various furnishings of high quality are arranged around \ an enormous rug with intricate golden symbols in the weave \ design. Open doorways lead south, north, east and west.", name "rug" "doorways" "furnishings" "symbols", s_to FROBAR_Foyer, n_to FROBAR_Bedroom, e_to FROBAR_Study, w_to FROBAR_Lounge, has light; Object frobar_plant "large potted plant" FROBAR_Parlor with name "plant" "large" "potted", initial "A large potted plant sits in one corner.", description "A well-tended house-plant.", before [; Cast: if (the_spell_was == throck_spell) { "The plant seems even healthier now."; ! if (Frobar in FROBAR_Bedroom) ! (couldn't think of a proper reaction...:) } ], has static; Object FROBAR_Lounge "Lounge" with description "A large room here apparently serves as a lounge \ for entertaining. The walls and furniture all have interesting \ design work that gives an impression of dignified age. A doorway \ heads east.", name "furniture" "doorway", e_to FROBAR_Parlor, has light; Object FROBAR_Study "Study" with description "This is a study room with fancy wood paneling and \ plush carpeting. There is an exit to the west.", name "wood" "paneling" "carpeting", w_to FROBAR_Parlor, has light; Nearby FROBAR_shelves "large bookshelf" with name "shelves" "shelf" "bookshelf", initial "A large bookshelf takes up most of the north wall.", description "It's filled with odds and ends, mostly uninteresting.", capacity 30, has static supporter; Object FROBAR_Journal "plain journal" FROBAR_shelves with name "journal" "plain", ! weight 15, size 15, description "This is a short journal of notes that \ Frobar was keeping. The contents are quite dull, mostly \ consisting of entries like ~Remember to water plant~ and \ so forth. In fact, the only non-trivial entry follows:^^\ ~Perhaps today I will go visit Barsap's latest creation. \ Then again, maybe I won't. This so-called 'Gambit' of his \ is supposed to be some silly diversion where people can \ hop around floating platforms trying to reach the southeast \ corner \ platform on the bottom level, just so they can get \ teleported back to the top, and start all over again! \ Can this be a monetarily beneficial thing? I doubt it.~"; ! (twisted -- four ancient ones) Object p5 "twisted parchment" FROBAR_shelves class parchment_class, with name "twisted", description "~...understand. I, like many of the Order, \ have understood that the greatest Saints of our Order were \ the Three, those Three that we know as the Ancient Ones. \ Why then, do I find in ancient cairns, in hidden temples, \ and in versions of the Scriptures found in unsettled lands, \ that _four_ beings that called themselves the Ancient Ones \ did do battle with evil and were defeated? This surely is \ not to be believed, but I...~"; Object FROBAR_Desk "large wood desk" FROBAR_Study with name "desk", description "A massive wood desk carved from a single block of wood.", capacity 20, has static supporter; Object FROBAR_Bedroom "Bedroom" with description "A nice cozy bedroom. The exit is south.", s_to FROBAR_Parlor, has light; Object FROBAR_bed "large bed" FROBAR_Bedroom with name "bed", description "A large comfortable-looking bed.", before [; LookUnder: "Sorry, no monsters here."; ], has static enterable supporter; !Object FROBAR_Painting "large painting" FROBAR_Bedroom ! with name "painting", ! initial "There is a large painting hanging on the wall.", ! description [; ! if (self hasnt general) ! "It appears to be an oil painting of a \ ! scroll on a table. A small note on the frame says, \ ! ~Still-life with Scroll, -FF, 791~"; ! else ! "It appears to be an oil painting of a \ ! table. A small note on the frame says, \ ! ~Still-life, -FF, 791~"; ! ], ! before [; ! Touch, Rub, Push: ! if (self hasnt general) { ! give self general; ! move painted_scroll to player; ! Achieved(23); ! print "As you touch the painting, your hands \ !run across the scroll, and the oil takes on a three-dimensional \ !quality! You ignore the strange sensations as you reach \ !into the painting, and withdraw the scroll"; ! if (Frobar in FROBAR_Bedroom) ! "! Frobar watches the events over your \ !shoulder, and seems puzzled. ~Now, why didn't I ever think to try \ !that,~ he muses."; ! else "!"; ! } ! else ! "The painting seems to be nothing more than \ !an oil painting now."; ! ], ! has static; ! ----------------- (Thief's home) ------------------------- Object THIEF_Bottom_of_staircase "Wondrous Stairway" with description "An enormous spiral staircase seems to wind miles \ above your head in this curious column-like chamber. Strange \ points of light brighten the chamber from above. \ To the west is a small exit.", name "points" "light" "staircase" "stairway" "stairs", ! TODO -- fix this weirdness... u_to THIEF_Ent, w_to "You can't go that way.", ! but later... before [; Go: if (noun == u_obj) print "^You begin the long trek upwards. Strangely, \ the stair seems to twist and move as you step on it, \ turning like a corkscrew, until you are \ graciously deposited at the top, far above your \ previous location.^"; ], has light; Object THIEF_Ent "Fancy Hall" with description "This must be an apartment or penthouse in the \ skyscraper. You are in a very high hall, with black slate stone \ walls that seem to reflect shadows everywhere. There is a room \ to the north. The southern edge of this room drops off into the \ darkness, followed by a long spiral staircase. The ceiling overhead \ seems to have tiny points of light like a night sky.", name "slate" "shadows" "staircase" "points" "light", d_to THIEF_Bottom_of_staircase, n_to THIEF_Foyer, has light; Object THIEF_Foyer "Magnificent Foyer" with description "This is an exceptionally grand entrance foyer, \ with sweeping arched ceilings and sparkling chandeliers. The \ room is dimly lit. Open hallways lead south and west.", name "chandeliers", s_to THIEF_Ent, w_to THIEF_Lounge, has light; Object THIEF_Lounge "Fancy Lounge" with description "A tastefully overdone lounge with tapestries \ and gold enamel finished walls. The room is dimly lit, although \ you see no windows or other sources of light. Open hallways lead \ east and west.", name "tapestries" "enamel", e_to THIEF_Foyer, w_to THIEF_Storeroom, has light; Object THIEF_Journal "short journal" THIEF_Lounge with name "journal", initial "There's an open journal sitting here.", ! weight 15, size 15, description "This appears to be a short collection of notes:^^\ ~TIPS ON CRACKING THE NEW FROBOZZCO 3-DIAL COMBO LOCKS: ^\ Remember, there's a slight flaw in the design. For every \ correct number in the correct dial, pressing the opening button \ with cause a small click. Dials with the correct number in the \ wrong dial place will cause a small thunk. The lock mechanism \ scans for correct numbers in correct places first, and then \ for correct numbers in the wrong place in the 'remaining dials'. \ Simple! But don't forget, closing the locks will automatically \ lock and reset the dials!^^\ NEW FLATHEAD PAINTING: ^\ I've completed making the copy of the new Leonardo Flathead painting, \ received courtesy of the Royal Museum. Glad to say my skills in \ art forgery are undiminished -- I can barely tell the difference \ between the two myself! I'll soon replace the original with the \ copy, and no one will be the wiser!~"; Object THIEF_Storeroom "Workroom" with description [; print "A sight to inspire even the most avaricious, this \ storeroom is filled with all sorts of rare and precious treasures. \ A hallway leads east"; if (self hasnt general) print ". You notice that the west wall appears to be made of \ solid granite"; "."; ], name "hallway", e_to THIEF_Lounge, before [; Examine: if ((noun == w_obj) && (self hasnt general)) "The west wall is a solid piece of granite, which \ seems very odd, considering the other walls are clearly made of \ slate."; Cast: if ((the_spell_was==ledak_spell) && (Painting_FAKE in self)) { if (Painting_REAL in self) print "One of the paintings"; else print "The painting"; remove Painting_FAKE; " is surrounded by a yellow glow! It crumbles into \ dust!"; } ], has light; Nearby THIEF_treasure "precious treasures" with name "treasure" "jewels" "gemstones" "artifacts", description "Piles of rare gemstones, precious jewelry, \ priceless artifacts, and other treasures line the walls \ here.", before [; Take: "Fortunately, your high moral standing allows you \ the benefit of having no need for such materials of excess."; ], has scenery; Object pasta "pile of fettucini carbonari" with name "pile" "fettucini" "carbonari" "pasta", description "A large pile of fettucini dripping in \ carbonari sauce.", before [; Eat: if (self hasnt general) { give self general; "You manage to stuff yourself with pasta, \ but there's still quite a lot left."; } else "You've already had enough of this stuff \ to last a lifetime. Just the thought of eating more is enough to \ make you queasy."; ], size 16, has edible; Object c50 "coin" class coin_class; Object Painting_FAKE "priceless painting" THIEF_Storeroom with name "painting", plural "priceless paintings", short_name "priceless painting", description "It's a beautiful oil painting of a dark stormy \ scene. On the horizon, you can see the edges of mountaintops. Near \ the top of the painting, two winged figures are carrying a lone \ individual towards a break in the clouds, where a bright white light \ seems to emanate.", ! weight 25, size 25, before [; Drop: if (location == Museum_north) { ! player returned fake painting to museum! remove self; "A museum curator appears and takes the \ painting. With an expert eye, he looks closely at it. ~This is \ a fake! I warn you sir, art forgery is a dangerous game.~ He \ leaves, much disgusted."; } Take: if (Painting_REAL in parent(self)) "They both look so genuine! You can't decide!"; Cast: if (the_spell_was == ledak_spell) { remove self; "One of the paintings is surrounded by a bright \ yellow glow, and disintegrates!"; } Search: if (Painting_REAL in parent(self)) "Search which one? Goodness, you can't decide!"; ], ; ! -------------ETHEREAL PLANE OF ATRII ------------ Object ATRII_1 "Ethereal Plane of Atrii" with description "Standing on a featureless gray plane that \ stretches to the infinite horizon against a gray sky, you \ can only conclude one thing -- you're on the Ethereal Plane \ of Atrii. Well, at least it fits the description Brother \ Palemon gave you. It seems like you could go in any \ direction from here.", cant_go "An invisible force blocks your way!", name "plane" "horizon" "sky", sw_to ATRII_2, se_to ATRII_3, has light; Object ATRII_2 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. Stranger still is the upright rectangular hole in the \ fabric of space that stands in the center of this area. \ Otherwise, you could wander this gray dimension in any direction, \ it seems.", cant_go "An invisible force blocks your way!", ne_to ATRII_1, sw_to ATRII_4, e_to ATRII_3, s_to ATRII_6, has light; Nearby ATRII_2_hole "rectangular hole" with name "hole" "rectangle" "opening", description "Surely you are in a place where the very laws of \ nature and the Gods work by different rules! Here stands a \ rectangular hole, seemingly torn out of the very space you \ stand in. You see some curious metal chamber through the \ opening, but there is nothing behind the opening.", before [; Enter: print "^You step through and feel your stomach twist. \ You stumble past a set of open metal doors into...^"; in_atrii = 0; PlayerTo(Skyscraper); return 2; ! allow, but print nothing... ], has scenery enterable; Object ATRII_3 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. Stranger still is the flat, glass-like square in the \ center of the 'floor' of this area. \ Otherwise, you could wander this gray dimension in any direction, \ it seems.", cant_go "An invisible force blocks your way!", nw_to ATRII_1, w_to ATRII_2, se_to ATRII_5, s_to ATRII_7, has light; Nearby ATRII_3_ice "square of ice" with name "square" "ice" "glass-like", description "It looks and feels like a perfect square of ice, \ flush with the featureless gray surface you stand on.", before [; Enter: print "You step onto the square, and before you know it, your \ surroundings shift and start to fade! You feel a \ sudden chilling wind. The ice seems to lengthen and stretch. The \ gray plane slowly turns white and bumpy.^"; in_atrii = 0; PlayerTo(Frozen_river2); return 2; ], has scenery enterable; Object ATRII_4 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. Stranger still is the large black hole to the south. \ Otherwise, you could wander this gray dimension in any direction, \ it seems.", cant_go "An invisible force blocks your way!", ne_to ATRII_2, se_to ATRII_6, s_to [; <>; ], has light; Nearby ATRII_4_hole "black hole" with name "hole" "black", description "It looks like a large hole, probably twice your \ height. It's completely black and featureless.", before [; Enter: print "^You step into the black hole. You stumble \ forward, surrounded by blacker-than-night darkness.^"; in_atrii = 0; PlayerTo(Subway_Tunnel); return 2; ], has scenery enterable; ! (secret subway tunnel) Object Subway_Tunnel "Dark Tunnel" with description "You're in a large dark tunnel that seems \ to run north and south. To the south you see light. There \ seem to be two metal tracks running along the ground.", s_to GURTH_GUSPlatform, n_to "You walk north, and run into a invisible force!", before [; Go: if (noun==s_obj) { Achieved(25); print "^You step out into an underground chamber. \ A burly uniformed figure sees you exit the tunnel and yells, \ ~Hey, no playing in the tunnels, pal!~^"; } ], each_turn [ i ; i = random(40); if (i > 35) "^You hear a rumbling noise echoed from somewhere, and \ the entire tunnel seems to shake! Then, all is quiet."; if (i == 17 or 18) { deadflag = 1; "^Suddenly, without warning, a huge train car appears \ heading south! It plows straight into you!"; } if (i==6 or 7) "^Suddenly, a huge train car appears heading north! \ You barely avoid getting pulverized! Strangely, \ you watch as the train continues north, and \ seems disappear into blackness nearby. It's as \ though the train was simply removed from the tunnel \ somehow."; ], ; Nearby ST_tracks "tracks" with name "tracks" "tracks" "metal", description "Two long metal tracks, running north and south. \ There's something oddly familiar about them.", has scenery; Object ATRII_5 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. It seems like you could go in any \ direction from here.", cant_go "An invisible force blocks your way!", nw_to ATRII_3, sw_to ATRII_7 has light; Object p9 "ripped parchment" ATRII_5 class parchment_class, with name "ripped", description "~...now know that the Rod we believe is \ the Rod of the Ancients, sequestered in our Monastery, is \ an artifact of evil! Imprisoned inside, \ true to the scriptures (at least this much is, what \ isn't, I can nowadays say is much) we know, is Anabais. \ What is worse, is that this very Rod is an artifact of \ evil power created by Anabais, in the image of the True \ Rod of the Ancients, which he planned to use to aid \ him in his evil gains! \ Were that evil one free again, and had about him both \ his brothers and his Rod of Evil, we would witness a \ reckoning \ greater than Quendor has ever known! I take relief in \ the knowledge that he will never be freed, and he will \ never regain his implement of evil; only an innocent \ being can break the false rod and \ free him from his prison, and subsequently, \ the false rod cannot be regained by Anabais through his \ own will, or another evil being. \ In fact, only a being of good again can gather \ the resulting pieces, and only through this being \ can Anabais regain his evil artifact, for...~"; Object ATRII_6 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. It seems like you could go in any \ direction from here.", cant_go "An invisible force blocks your way!", nw_to ATRII_4, e_to ATRII_7, n_to ATRII_2, se_to ATRII_8, has light; Object ATRII_7 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. Stranger still is the odd-shaped depression in the gray \ plane here. \ Otherwise, you could wander this gray dimension in any direction, \ it seems.", cant_go "An invisible force blocks your way!", ne_to ATRII_5, w_to ATRII_6, sw_to ATRII_8, n_to ATRII_3, has light; Nearby ATRII_7_depression "depression" with name "depression" "cavity", description "It's a large elongated depression in the gray 'floor'. \ The cavity has a flat bottom, and somewhat cigar-like shape.", before [; Enter: print "^You step into the depression. Your very \ surroundings start to fade, replaced by sunlight that \ makes you squint! The gray plane undulates and \ buckles and turns into a great body of water \ before your very eyes.^"; in_atrii = 0; PlayerTo(sailboat); ! useful if the player 'lost' the boat at sea. return 2; ], has scenery enterable; Object ATRII_8 "Ethereal Plane of Atrii" with description "Flat, featureless gray is in every direction \ you look. Directly overhead, you notice odd streaks of \ light. From here, you could wander this gray dimension in any direction, \ it seems.", name "streaks", cant_go "An invisible force blocks your way!", nw_to ATRII_6, ne_to ATRII_7, has light; ! ----------- Special Implementor's Residence ----------- Object Imp_Liv "Strange Room" with description [; print "You "; if (player in Imp_Curtains) "can't see much behind these curtains."; else "feel a great sense of dread! Surely, given the way \ you got here, this must be the domicile of a dreaded Implementor! \ The entire place feels strange and \ alien and, well, ~modern~. There's some sort of kitchen to the \ east. Long curtains cover what must be a window to the south."; ], number 1, e_to Imp_Kitchen, w_to Imp_door, s_to [; <>; ], each_turn [ ; if (Imp in Imp_Bedroom) { if (Imp_Liv.number == 3) { StartDaemon(Imp); Imp_Liv.number = 4; } else "^You hear some faint noises to the west."; } ! create some noises if player in curtains if (player in Imp_Curtains) { if (Imp in Imp_Liv) "^You hear some faint noises nearby."; if (Imp in Imp_Kitchen) "^You hear some faint noises to the east."; } ], time_left 0, time_out [; ! if player hasn't 'listened' twice to start Imp, ! start him anyway (otherwise, in truth, player ! would be permanently stuck in (my) apartment. if (Imp_Liv.number < 4) { StartDaemon(Imp); Imp_Liv.number = 4; } ], before [; ! if player actually listens, better noises... Listen: if (Imp in Imp_Bedroom) { if (Imp hasnt general) { ! i.e. -- awake if (Imp_Liv.number == 1) { Imp_Liv.number = 2; "It sounds like someone is talking to himself to \ the west. You hear: ~Now, wait just a second here, the player object \ is gone! How did that happen?~"; } if (Imp_Liv.number == 2) { Imp_Liv.number = 3; "It sounds like someone is talking to himself to \ the west. You hear: ~That can't be right. I must be getting tired. \ Think I'll make myself a nice hot cup of coffee.~"; ! on next turn via Imp_Liv.each_turn, Imp daemon will be started... } ! otherwise, Imp has already made his rounds and ! returned to bedroom, _not_ falling asleep "You hear someone whistling a merry tune to the west."; } else "You hear someone snoring loudly to the west."; } if (Imp in Imp_Liv) { if (Imp.number == 1) "You hear someone walking nearby. The footsteps \ soon fade to the east."; if (Imp.number == 4) "You hear someone walking nearby. The footsteps \ soon fade to the west."; } if (Imp in Imp_Kitchen) { ! This assumes the daemon will run before the player turn. if (Imp.number == 2) { switch (Imp.weight) { 118: print "You hear an irritated voice say, \ ~What happened to my coffee maker?~ Slightly softer, you \ hear ~Well, I guess I'll have that iced tea.~"; 119, 122: print "You hear a voice to the east say, \ ~Looks like I've got coffee, thank goodness.~"; 121: print "You hear a voice to the east say, \ ~Great, I'm all out of coffee. Good thing I still have some \ iced tea.~"; } " Shortly after this, you hear sounds of someone to \ the east starting some kitchen activity."; } else "You hear some brief busy noises from the west, \ followed by what sounds like someone drinking something. Shortly \ thereafter, you hear the sounds of someone walking into the area \ from the east."; } ], has light; Nearby Imp_Curtains "set of curtains" with name "curtain" "curtains", description "Some heavy-cloth curtains along the south wall.", before [; Open: "You draw back the curtains and see a sight that \ beggars the mind! Through the windows, the night sky falls across \ some unknown landscape, dotted with strange bright points of light. \ Tall buildings seem to be everywhere. Whatever world you've stumbled \ onto, it certainly is not your own! You hastily close \ the curtains."; Enter: print "In an attempt to hide, you part the curtains. "; ], has static enterable; Object Imp_Kitchen "Strange Kitchen" with description "A room that could be a kitchen, \ if it didn't seem completely strange. Harsh bright lights seem to \ be coming from some unknown source. Strange-looking white countertops and \ cabinets fill the area, along with a curious white closet-like object. \ A room lies to the west.", name "cabinet" "cabinets" "closet" "refrigerator" "countertops", w_to Imp_Liv, has light; Object Coffee_maker "curious machine" Imp_Kitchen with name "machine" "curious", description "A white plastic device that seems to \ encase a glass pitcher or kettle of some sort. Most odd.", ! weight 15, size 15, ; Object regular_coffee_can "can of regular coffee" Imp_Kitchen with name "can" "coffee" "regular", description [; "The can reads: ~Brand-X coffee crystals~^^\ ~Rich, mountain-grown flavor.~"; ], before [; Open: "You'd need a good can-opener for that."; ], ! weight 15, size 15, ; Object Imp_Bedroom "Strange Bedroom" with description "A very curious small bedroom. \ A white desk sits here amongst other odd furnishings.", name "furnishings" "bed" "chair", e_to Imp_door, has light; !Nearby Imp_Bed "furnishings" ! with name "furnishings" "bed" "chair", ! description "Some weird bedroom furniture.", ! has scenery; Object Imp_Desk "desk" Imp_Bedroom with name "desk", description "A white desk, with a strange, modern look.", capacity 6, has scenery supporter; Object Imp_Computer "strange machine" Imp_Desk with name "machine" "computer", description [ ; print "It's a strange metal box. On top, perhaps connected in some \ way, is another metal box with a glass plate on the front. Strange wires \ seem to be attached to the boxes somehow. \ In front of the boxes is an odd plastic \ flat object with rows and rows of plastic buttons labeled every letter in \ the alphabet"; if (self hasnt general) { give self general; print ".^^Looking closer, you notice curious glowing \ letters on the glass plate. You read the letters, and \ feel drawn to respond...^^\ SPIRITWRAK DEVELOPMENT SYSTEM:^\ (AUTOMATIC OBJECT GARBAGE-COLLECTION)^\ REMOVE OBJECT IMPENETRABLE_STEEL_WALL? (Y/N) "; if (YesOrNo() == 0) "You press a button labeled ~N~. The strange box \ emits a tiny beep, and the glass plate is covered with fantastic colorful \ designs."; else { ! set-up the secret room remove steel_wall; give cave_intersection general; Achieved(18); "You press a button labeled ~Y~. The strange box \ emits a tiny beep, and the glass plate is covered with fantastic colorful \ designs."; } } else ". The glass plate currently has strange glowing colorful \ patterns displayed on it."; ], has static; [ ImpSendBack ; print "~I'm afraid you'll have to go back.~ The Implementor \ snaps his fingers, and suddenly, you're back in...^"; spell_block = 0; StopDaemon(Imp); StopTimer(Imp_Liv); PlayerTo(ATRII_8); ]; Nearby Imp_door "door" with name "door", when_closed [; if (self in Imp_Liv) { if (player notin Imp_Curtains) "There's a closed door to the west."; else rtrue; } else "There's a closed door to the east."; ], when_open [; if (self in Imp_Liv) { if (player notin Imp_Curtains) "There's an open door to the west."; else rtrue; } else "There's an open door to the east."; ], description "A plain-looking door. A note \ attached to it says ~DO NOT DISTURB, IMPLEMENTOR AT WORK~.", door_dir [; if (self in Imp_Liv) return w_to; else return e_to; ], door_to [; if (self in Imp_Liv) return Imp_Bedroom; else return Imp_Liv; ], found_in Imp_Liv Imp_Bedroom, before [; Open: if ((Imp in Imp_Bedroom) && (Imp hasnt general)) { print "You open the door, revealing a small room with \ what must be an Implementor sitting behind a desk. The Implementor looks \ up, startled. ~You're here?~ he says, observantly. "; ImpSendBack(); return 1; } ], has static door openable; ! *************** And, for my final trick, the endgame ************** Object Mystical_Cave "Mystical Cave" with description "You've entered a wondrous natural cave, lit \ everywhere by reflected light from some sort of purple crystalline substance \ in the walls. A tunnel exits to the northwest.", name "reflected" "crystal" "crystalline" "substance", number 0, nw_to [; if (Mystical_Cave.number ~= 4) "The purple light in the chamber seems to pulse with energy, \ and find your way blocked by an invisible force!"; else { spell_block = 0; ! fill with things, if necc. print "As you leave, a sudden tremor shakes the \ cave! You just narrowly avoid a sudden cave-in behind you!^"; give cave_intersection ~general; return cave_intersection; } ], has light; Nearby purple_sphere "purple sphere" with name "sphere" "purple", initial "There's a purple crystal sphere partially embedded \ in the rock floor here.", description "A large purple sphere that seems to pulse with \ strange energy.", before [; Push, Touch, Rub: ! various endgame trickery... if (silver_rod_piece in player) { while (child(player)~=0) { give child(player) ~worn; move child(player) to Mystical_Cave; } move silver_rod_piece to player; spell_block = 1; print "The sphere pulses with angry energy! It seems to \ be fighting the silver rod piece you hold! With a sudden burst, you \ feel your mind reel and your very surroundings change!^"; give stone_marker general; ! give snowy_intersection general ~visited; give snowy_intersection general; StartTimer(White_Dragon,3); PlayerTo(Dragon_Cave); rtrue; } if (green_rod_piece in player) { while (child(player)~=0) { give child(player) ~worn; move child(player) to Mystical_Cave; } move green_rod_piece to player; spell_block = 1; print "The sphere pulses with angry energy! It seems to \ be fighting the green rod piece you hold! With a sudden burst, you \ feel your mind reel and your very surroundings change!^"; StartTimer(captain,3); PlayerTo(On_Boat); rtrue; } if (red_rod_piece in player) { while (child(player)~=0) { give child(player) ~worn; move child(player) to Mystical_Cave; } move red_rod_piece to player; spell_block = 1; print "The sphere pulses with angry energy! It seems to \ be fighting the red rod piece you hold! With a sudden burst, you \ feel your mind reel and your very surroundings change!^"; ! give Stadium_entrance general ~visited; ! remove stadium_sign; ! remove stadium_statue; ! move statue_base to Stadium_entrance; StartTimer(statue_base,2); PlayerTo(Stadium_entrance2); rtrue; } if (brown_rod_piece in player) { while (child(player)~=0) { give child(player) ~worn; move child(player) to Mystical_Cave; } move brown_rod_piece to player; spell_block = 1; print "The sphere pulses with angry energy! It seems to \ be fighting the brown rod piece you hold! With a sudden burst, you \ feel your mind reel and your very surroundings change!^"; ! give GURTH_House general ~visited; ! move bad_brick to GURTH_House; StartTimer(bad_brick,7); PlayerTo(GURTH_House2); rtrue; } ! default... "A purple blast of force throws you back!"; ], has static; Object skeleton "skeleton" Mystical_Cave with name "skeleton" "bones", initial "Lying in one corner of the room is a skeleton.", description "Just some bones, not much else, is all.", before [; Pull, Push, Turn, ThrownAt, Touch, Attack, Rub, Cut, Shake, Squeeze, Kiss: remove self; "The skeleton crumbles into dust, as though \ many years of time had suddenly caught up with it in one \ moment."; ], has static; ! (black -- final parchment of Palemon's final words) Object p8 "blackened parchment" Mystical_Cave class parchment_class, with name "blackened", description "~I write these final words not in the hope \ that others will find and heed them, for this is too great \ a hope in my moment of death, but rather, to try and maintain my mind and soul \ in the face of the terror I now know is the truth.^^\ For how can a man survive, knowing that his entire life, \ his entire belief, has been a ruse, a dupe, from the \ early beginning? That he has merely been a pawn in a \ working of evil that cannot be stopped?^^\ I have fought all manner of terrors, and recovered that which \ I know is the _true_ Rod of the Ancients, broken and scattered \ eons ago in the face of great evil. I sought also those \ ancient spheres that the Four Ancients never had the chance to \ use against the evil four elemental demons, but alas, I could \ not find them all, and sequestered those which I did with \ good people that the elemental evil could not touch.^^\ Alas, my quest has ended here. I lie trapped here, \ with the pieces of the true Rod in hand, unable to go forward, trapped by the \ elemental mystic locks on the rod that prevent it from leaving this \ very room, yet unable to go back, to leave the rod here and \ deny the very real danger of the defeat of the Ancients, of \ the power that the evil elementals hold.^^\ What is a faith destroyed? Who can help me to believe, in my moment \ of disbelief?^^\ --P--~"; Object Dragon_Cave "Giant Cavern" with description "You find yourself in a huge cavern. To the west \ is a large exit that looks out into a void of snow-covered mountains.", name "mountains", w_to "You hesitate. The cave seems to just \ exit off the side of a mountain, and all you can see below is whiteness. \ It could be a long way down.", d_to [; <>; ], out_to [; <>; ], before [; Jump: print "You close your eyes and leap out of the cave! \ You plummet through silent white winds. \ Moments later, you fall right into an enormous snowbank, and \ roll downwards, into...^"; PlayerTo(snowy_intersection2); rtrue; ], has light; Object On_Boat "On strange boat" with description "You are on a long open boat, riding the waves of \ some great sea. The boat seems to be filled with sailors from \ some militia.", name "waves" "sea" "mast" "floorboards" "ship" "boat", before [; Drop: if (captain has general) { if (noun==green_rod_piece) { remove green_rod_piece; ! it'll be back give shipwreck general; Mystical_Cave.number = Mystical_Cave.number + 1; StopTimer(captain); StopTimer(militia); print "You drop the green rod and watch it roll near \ a mast and get stuck in the floorboards.^^\ There's a load crack! The ship is breaking apart! Sailors \ scramble in vain for safety! You hang onto the side of the \ boat, but the vessel rocks wildly, and you fall into the waters. \ ^^As you sink, you notice the waters seem to change to a purplish \ hue, and you find yourself back in...^"; PlayerTo(Mystical_Cave); rtrue; } } else "The sailors are holding you fast, so you \ can't do this at the moment."; ], has light; Nearby militia "sailors" with name "sailors" "militia" "navy", description "A bunch of dour-looking navy sailors.", time_left 0, time_out [; deadflag = 1; "The ship breaks asunder! Sailors scramble madly \ and fall into the violent waves! You hear \ the captain scream ~Blast! I can't swim!~ before the \ waters cover you completely."; ], has scenery; Object ENDGAME_ROOM "Nothingness" with description "Nothingness surrounds you. Yet, you feel like \ your conscious being extends into worlds and dimensions never \ imagined. You float in a void of total being.", number 0, ! number of elementals banished each_turn [; switch (ENDGAME_timer.number) { 0: ENDGAME_timer.number = 1; if (black_elemental in ENDGAME_ROOM) "^Echoing in your mind, you hear a voice, that you \ somehow know is from the black sphere. ~Give me the rod priest, \ and you shall be immortalized as a symbol to an entire civilization!~"; 1: ENDGAME_timer.number = 2; if (smoke_elemental in ENDGAME_ROOM) "^Echoing in your mind, you hear a voice, that you \ somehow know is from the smoke-colored sphere. ~Give me the rod priest, \ and I shall let you be witness to a feat of great magic, never \ before witnessed!~"; 2: ENDGAME_timer.number = 3; if (gray_elemental in ENDGAME_ROOM) "^Echoing in your mind, you hear a voice, that you \ somehow know is from the gray-colored sphere. ~Give me the rod priest, \ and I will grant you power over all who surround you!~"; 3: ENDGAME_timer.number = 4; if (white_elemental in ENDGAME_ROOM) "^Echoing in your mind, you hear a voice, that you \ somehow know is from the white sphere. ~Give me the rod priest, \ and you will gain the attention of one of the more powerful \ figures of your time!~"; } ], has light; Object ENDGAME_timer "void" ENDGAME_ROOM with name "void" "nothingness", description "The absence of anything. Yet, at the same \ time, the sense that everything possible is near.", number 0, time_left 0, time_out [; deadflag = 1; if (ENDGAME_ROOM.number < 3) print "The spheres nearby suddenly converge"; else print "The sphere nearby suddenly converges"; " towards you! In your mind, you hear \ ~Hesitation, foolish priest, was the downfall of the Ancient \ Ones~ before you feel the full force of the void."; ], has scenery; ! *** fake room/encounter for bad ending #x Object badend1 "On Giant Cube" with description "You stand on a single giant floating white \ cube, in the middle of some dimly lit cavern. \ ^^A small newt floats nearby, concentrating on something.^^\ The newt suddenly opens its eyes! ~What?~ it croaks in \ surprise. ~Who are you? You've broken my concentration on \ the spell, you fool!~ the newt croaks. You feel the cube \ shift, then stop floating! You plummet into the lava you \ feared was below..." has light; Object badend2 "Top of Pyramid" with description "You are on top of a pyramid in some \ ancient city. You see dense jungle to the horizon. \ An ancient civilization spreads before you, in all its \ mysterious glory.^^Several robed figures surround you.^^\ Suddenly, you realize you are tightly bound! One of the \ figures points towards the horizon and makes a complicated \ gesture. In a language you do not understand, he seems \ to make a prayer to some nameless god! Fearing the \ inevitable, you struggle mightily, but to no avail. \ In moments, the group of robed figures hurls you off the \ pyramid to your death!" has light; ! ************* ! Creatures ! ************* Object Imp "Implementor" Imp_Bedroom with name "Implementor", article "an", description [; print "Some Implementor. Looks more like a oddly-dressed \ young man badly in need of a haircut"; if (self has general) ". He's also sound asleep!"; else "."; ], describe [; print "^Someone you assume must be an Implementor \ is here"; if (self has general) ", sound asleep."; else "."; ], number 0, weight 120, ! about right life [; ! if asleep, which is usually the case if (self has general) { if (action==##WakeOther or ##Attack) { print "You manage to rouse the Implementor from his \ slumber. He stares at you, bewildered. ~What are you doing here?~ \ he asks. "; ImpSendBack(); rtrue; } else "He appears to be sound asleep right now, and isn't very \ responsive."; } ! else { ! (I suppose this is unnecessary. -- i.e. the player shouldn't be able to ! interact with the implementor unless the implementor is asleep) ! print "Well, that got his attention. The Implementor \ !looks completely startled. ~What are you doing here?~ he says. "; !ImpSendBack(); rtrue; ! } ], daemon [; ! ASSUMPTION -- daemon started by start event StopTimer(Imp_Liv); if (Imp.number == 0) { give Imp_door open; if ((player in Imp_Liv) && (player notin Imp_Curtains)) { print "^The door to the west suddenly flies open! \ A somewhat bedraggled Implementor steps out! He spots you and his \ jaw drops. ~You, here?~ he says. "; ImpSendBack(); rtrue; } else print "^You hear a door open to the west.^"; Imp.number = 1; move Imp to Imp_Liv; } else { ! first a little 'lazy' clause that kicks the player ! out if the Imp is moving around and the player isn't ! in the curtains if ((Imp.number < 5) && (player notin Imp_Curtains)) { if (Imp in location) print "^The Implementor "; else print "^From nearby, an Implementor rushes up and \ "; print " grabs you by the shoulder! \ ~What are you doing here?~ he \ says. "; ImpSendBack(); return 1; } ! now, otherwise, we move the Imp and set his ! number accordingly. Room descs and 'Listen' ! traps in Imp_Liv will need to use this info switch (Imp.number) { ! [step 1, moving to Kitchen] 1: move Imp to Imp_Kitchen; Imp.number = 2; if (Coffee_maker notin Imp_Kitchen) Imp.weight = 118; else { if (regular_coffee_can in Imp_Kitchen) { Imp.weight = 119; remove regular_coffee_can; } else { if (decaf_coffee_can in Imp_Kitchen) { Imp.weight = 122; remove decaf_coffee_can; } else { ! no coffee, gosh darn it Imp.weight = 121; } } } return 0; ! [step 2, making/drinking the beverage] 2: Imp.number = 3; ! [step 3, leaving kitchen, back to living room] 3: Imp.number = 4; move Imp to Imp_Liv; ! [step 4, goes back into bedroom] 4: Imp.number = 5; give Imp_door ~open; if (player in Imp_Curtains) print "^You hear a door close to the west.^"; move Imp to Imp_Bedroom; ! move coffee_cup to Imp_Bedroom; if (Imp.weight == 122) give Imp general; ! asleep StopDaemon(Imp); } } ], has animate; !Object coffee_cup "large cup" ! with name "cup" "large", ! description "A large mug, with the residue of some brown liquid \ !left in it.", ! weight 5, ! size 4, ! has container open; ! MOVEPRINTNPC routine, from Gareth Rees' 'THIEF.INF' ! (TODO -- you really don't need this, since only Frobar moves in this fashion) [ MovePrintNPC n dest dir; if (n in location) { print "^", (The) n, " walks off"; if (dir ~= in_obj or out_obj or u_obj && dir ~= d_obj) print " to the ", (DirectionName) dir.door_dir; print ".^"; } if (dest == 0) remove n; ! This seems odd - if dest bogus, 'unlink' NPC? else move n to dest; if (n in location) print "^", (The) n, " walks in.^"; ]; Object White_Dragon "White Dragon" Dragon_Cave with name "dragon" "white" "giant", describe [; print "There is a gigantic white dragon here"; if (self has general) " sleeping peacefully."; "!"; ], description "A giant white dragon, the size of a small house.", time_left 0, time_out [; give self ~general; if (location == Dragon_Cave) { deadflag = 1; "^The dragon suddenly snorts and wakes! It sees you \ and attacks! In moments, you are no more..."; } else { remove self; give stone_marker ~general; move stone_marker_top to snowy_intersection2; "^You hear a roar from the east! From out of the \ sky, a giant white dragon descends! It draws near, spots you, \ and bellows in rage! You shrink back, and pray for a quick but \ painless end.^^There is a loud crack! The dragon, in trying to \ land, almost impales itself on the obelisk marker! Part of the \ marker breaks off, and the dragon flies off, whimpering in pain!"; } ], life [; Attack, ThrowAt, WakeOther: deadflag = 1; "You disturb the sleeping dragon, who promptly makes you wish \ you hadn't."; default: "Best not to disturb the dragon, I'd guess."; ], has animate; Object captain "sea captain" On_Boat with name "captain", description "A rough-looking navy captain.", number 0, each_turn [; if (self hasnt general) { if (captain.number == 0) { captain.number = 1; "^You suddenly realize that you are being \ held fast by two navy sailors! The captain walks forward and \ points his cutlass near your ear.^^\ ~What we have here, lads, is a stowaway!~ Some sailor cries out \ ~Overboard with the stowaway!~ The captain smiles. \ ~Now, we was planning on feeding you to the groupers, \ but we could use a scullion in the hold. One things for sure, \ ye ain't finding passage on this ship if ye ain't aligned with \ the Antharian Navy cause!~ Some sailor cries out \ (unnecessarily) ~The Antharian Navy cause!~. ~So, tell us lad, \ are ye with us? If ye are true, you'll tell me the Antharian \ Navy patron saint! So speak quickly, lad, if ye wish to stay \ dry!~"; } else "^~Speak up fellow! We havn't got all day!~"; } ], time_left 0, time_out [; deadflag = 1; "The captain sighs. ~Into the water with ye, then,~ \ he says, and the two sailors push you roughly overboard. \ You land in the sea with a splash, and struggle to stay afloat. \ The ship sails off, but oddly, moments later, it seems to \ stall and start to sink! Before you get a chance to reflect on \ this, a large grouper swallows you whole."; ], life [; if (self has general) "The captain's a bit too busy trying to save \ a sinking ship."; Answer: if (noun=='minirva') { give self general; StopTimer(self); StartTimer(militia,2); "~Aye, that's right. Escort the new scullion \ down to the hold where --~^^\ The captain's orders are cut short by a sudden grinding noise, \ and the boat rocks violently! ~Reef, captain!~ you hear someone \ cry. ~Blast!~ the captain says, ~quickly men, we've got to --~ \ But it's too late. The boat starts to tip and sway, and \ the two sailors release you and hastily try to help raise the \ rigging!"; } else { if (noun=='duncanthrax') { deadflag = 1; "The sailors suddenly pale at the mention of \ Lord Duncanthrax. ~A traitor in our midst, eh?~ the captain \ shouts and beheads you with one stroke."; } if (noun=='ulysses' or 'odysseus') "~Nay lad, me thinks that \ was a sailor.~"; else "~Nay lad, that doesn't sound right.~"; } Attack, ThrowAt, Kiss, Show, Give: "Given that you are in the grips of several \ strong navy sailors, this is impossible."; ], has animate; ! ***** THE EVIL ELEMENTALS Object black_elemental "black sphere" ENDGAME_ROOM with name "anabais" "black" "sphere" "earth", description "A black sphere of energy.", life [; ThrowAt: if (noun==brown_sphere) { remove self; remove brown_sphere; ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1; if (ENDGAME_ROOM.number == 4) { GameWinner(); rtrue; } "The black sphere howls in rage and is no more!"; } Give: if (noun==TRUEROD) { remove TRUEROD; print "You feel a strange foreboding feeling as \ the black sphere seems to engulf the rod, then you! Your \ surroundings change once again!^"; deadflag = 1; PlayerTo(badend2); rtrue; } default: "The black sphere is unresponsive."; ], has animate; Object smoke_elemental "smoke-colored sphere" ENDGAME_ROOM with name "smoke" "sphere" "fire", ! TODO new name... description "A smoke-filled sphere of energy.", life [; ThrowAt: if (noun==red_sphere) { remove self; remove red_sphere; ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1; if (ENDGAME_ROOM.number == 4) { GameWinner(); rtrue; } "The smoke-filled sphere howls in rage and is no more!"; } Give: if (noun==TRUEROD) { remove TRUEROD; print "You feel a strange foreboding feeling as \ the smoke-filled sphere seems to engulf the rod, then you! Your \ surroundings change once again!^"; deadflag = 1; PlayerTo(badend1); rtrue; } default: "The smoke-filled sphere is unresponsive."; ], has animate; Object gray_elemental "gray sphere" ENDGAME_ROOM with name "gray" "sphere" "water", ! TODO new name description "A gray sphere of energy.", life [; ThrowAt: if (noun==green_sphere) { remove self; remove green_sphere; ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1; if (ENDGAME_ROOM.number == 4) { GameWinner(); rtrue; } "The gray sphere howls in rage and is no more!"; } Give: if (noun==TRUEROD) { remove TRUEROD; print "You feel a strange foreboding feeling as \ the gray sphere seems to engulf the rod, then you! Your \ surroundings change once again!^"; PlayerTo(FUBLIO_Cave); StartTimer(mad_hermit,3); rtrue; } default: "The gray sphere is unresponsive."; ], has animate; Object white_elemental "white sphere" ENDGAME_ROOM with name "white" "sphere" "air", ! TODO new name description "A white sphere of energy.", life [; ThrowAt: if (noun==silver_sphere) { remove self; remove silver_sphere; ENDGAME_ROOM.number = ENDGAME_ROOM.number + 1; if (ENDGAME_ROOM.number == 4) { GameWinner(); rtrue; } "The white sphere howls in rage and is no more!"; } Give: if (noun==TRUEROD) { remove TRUEROD; print "You feel a strange foreboding feeling as \ the white sphere seems to engulf the rod, then you! Your \ surroundings change once again!^"; PlayerTo(TROPHY_SECRET); rtrue; } default: "The white sphere is unresponsive."; ], has animate; ! ****************** ! scrolls/spells ! ****************** Object fancy_scroll "fancy scroll" class scroll_class, with name "fancy", ; Object wigro_spell "turn undead" fancy_scroll class spell_class, with name "wigro", magic [; "You speak the chant. Nothing seems to happen."; ], ; Object briefcase "briefcase" Subway_Tunnel with name "briefcase" "case", description "A somewhat battered brown-leather briefcase.", capacity 5, ! weight 20, size 15, has container openable; Object red_scroll "red scroll" briefcase class scroll_class, with name "red", ; Object luncho_spell "send object to lower plane" red_scroll class spell_class, with name "luncho", magic [; if (second == 0) "You see a brief flash of smoke, but nothing happens."; if (second has animate) "You feel a slight rumbling beneath your feet, but nothing else \ happens."; else { if ((second hasnt static) && (second hasnt scenery)) { if (second has clothing) give second ~worn; if (in_atrii == 1) { move second to MON_Chapel2; } else move second to Hades_5; print "There is a sudden puff of smoke, and "; DefArt(second); " suddenly vanishes!"; } "Your chant goes unanswered."; } ], ; ! ****************** ! special obs ! ****************** Object Atrii_gate "strange contraption" GUE_Labs_SECRET with name "contraption" "plate" "disc" "strange", description "It looks like a large, slightly convex round disc \ made of some silvery material.", before [; Enter: print "As you step onto the silvery disc, you feel a \ strange jolt run through your body. A bright white \ flash blinds you momentarily!^^You blink, trying to \ register your surroundings.^"; in_atrii = 1; PlayerTo(ATRII_1); return 2; Receive: move noun to ATRII_1; CDefArt(noun); " suddenly disappears in a bright \ flash of light as you place it on the silver disc!"; Push, Pull, Touch, Take: "As you reach for the strange contraption, you notice \ white sparks of something arc from the silver surface \ to your fingers! You hastily draw back."; ], has static supporter enterable; ! *** the true rod pieces, and the golden rod (after joined) Object silver_rod_piece "silver rod piece" Mystical_Cave class rod_class, with name "silver", description "A strange short section of rod colored \ silver.", before [; Join: if (location ~= Mystical_Cave) { if (second == TRUEROD) <>; if ((second == brown_rod_piece) || (second == red_rod_piece) || (second == green_rod_piece)) { if (TRUEROD.number == 0) { TRUEROD.number = 1; move TRUEROD to parent(self); remove self; remove second; "There is a dazzling golden light as \ you join the two rod pieces! What remains is a new, strange \ rod piece!"; } else "There is a dazzling burst of \ golden light. However, the pieces will not join, and seem \ to be seeking out something else..."; } } else "Some strange purple flash of force \ blocks your efforts."; ], ; Object red_rod_piece "red rod piece" Mystical_Cave class rod_class, with name "red", description "A strange short section of rod colored \ red.", before [; Join: if (location ~= Mystical_Cave) { if (second == TRUEROD) <>; if ((second == silver_rod_piece) || (second == brown_rod_piece) || (second == green_rod_piece)) { if (TRUEROD.number == 0) { TRUEROD.number = 1; move TRUEROD to parent(self); remove self; remove second; "There is a dazzling golden light as \ you join the two rod pieces! What remains is a new, strange \ rod piece!"; } else "There is a dazzling burst of \ golden light. However, the pieces will not join, and seem \ to be seeking out something else..."; } } else "Some strange purple flash of force \ blocks your efforts."; ], ; Object green_rod_piece "green rod piece" Mystical_Cave class rod_class, with name "green", description "A strange short section of rod colored \ green.", before [; Join: if (location ~= Mystical_Cave) { if (second == TRUEROD) <>; if ((second == silver_rod_piece) || (second == red_rod_piece) || (second == brown_rod_piece)) { if (TRUEROD.number == 0) { TRUEROD.number = 1; move TRUEROD to parent(self); remove self; remove second; "There is a dazzling golden light as \ you join the two rod pieces! What remains is a new, strange \ rod piece!"; } else "There is a dazzling burst of \ golden light. However, the pieces will not join, and seem \ to be seeking out something else..."; } } else "Some strange purple flash of force \ blocks your efforts."; ], ; Object brown_rod_piece "brown rod piece" Mystical_Cave class rod_class, with name "brown", description "A strange short section of rod colored \ brown.", before [; Join: if (location ~= Mystical_Cave) { if (second == TRUEROD) <>; if ((second == silver_rod_piece) || (second == red_rod_piece) || (second == green_rod_piece)) { if (TRUEROD.number == 0) { TRUEROD.number = 1; move TRUEROD to parent(self); remove self; remove second; "There is a dazzling golden light as \ you join the two rod pieces! What remains is a new, strange \ rod piece!"; } else "There is a dazzling burst of \ golden light. However, the pieces will not join, and seem \ to be seeking out something else..."; } } else "Some strange purple flash of force \ blocks your efforts."; ], ; Object TRUEROD "golden rod" class rod_class, with name "golden", number 0, description [; print "A wondrous, shimmering golden rod"; if (TRUEROD.number < 3) " that seems slightly short."; else "."; ], before [; Wave: if (TRUEROD.number == 3) { deadflag = 1; ! TODO -- this is essentially another 'win', but not a good one "You wave the rod, and feel a sudden blast of force! \ The spheres howl in terror and \ suddenly explode! The jolt of power from the rod sends you \ hurtling through space, and you are lost in an endless \ tumble through the void..."; } Join: if ((second == silver_rod_piece) || (second == red_rod_piece) || (second == green_rod_piece) || (second == brown_rod_piece)) { remove second; TRUEROD.number = TRUEROD.number + 1; print "You feel a strange surge of \ mystic energy as you join the rod pieces. ", (The) second, " \ joins with the golden rod"; if (TRUEROD.number == 3) { Achieved(19); print "!^^Time and space seem to grind to \ a halt.^^\ Your surroundings and the very ground you stand on shatter like \ planes of glass, revealing a strange, new dimension...^"; spell_block = 1; PlayerTo(ENDGAME_ROOM); StartTimer(ENDGAME_timer,12); rtrue; } else "!"; } ], ; ! *** The results of winning the game *** [ GameWinner ; Achieved(26); print "The last sphere howls in rage and disappears!"; deadflag = 2; " You scream in agony as the void that surrounds you \ seems to implode! You feel yourself dissipating into the \ surrounding nothingness. ~Is this my reward?~ you scream, \ ~Is this, then, the end?~^^\ A white light makes you open your eyes.^^\ You are lying on a beach. The Great Sea laps at your \ tattered garments. Slowly, you rise to your knees.^^\ The sun, like a bloated, radiant bird, is sinking below the \ wave on the horizon. Another day is coming to an end.^^\ A voice startles you. ~Tis a fine spot for watching \ sunsets.~ You turn to see Morgan the Ranger, Frobar and \ the Thief nearby. The Thief helps you to your feet, and Frobar \ glances your way. ~I sensed a great upheaval in the \ fabric of time and space not long ago. I gather you \ have quite a story to tell,~ he says. ~We \ probably can relate to much of what you have seen, \ although your unwavering faith is something we \ desire to understand.~ Morgan explains, ~Belief in the \ face of the unbelievable is an enviable strength.~ \ The Thief chuckles quietly. \ ~Perhaps you will join us at Delbins, where we will \ partake in a belief of fine cuisine while you tell all?~ he says. \ He notices your weary expression and \ adds with surprising seriousness, ~Not that I \ prepose to offer advice from one as myself, \ but humbly, I admit, that many a time, a belief in myself \ was often sufficient.~ He pauses. \ ~Gods or no, now, you make your own destiny.~"; ];