X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2FSPECIAL.INF;fp=src%2FSPECIAL.INF;h=0000000000000000000000000000000000000000;hb=8cf6c360a875867b3cb9b78b9e73a0e72d527d17;hp=1d22b5cc33ba1c6247f225a20b8d3235d2015d73;hpb=eabbe6652d6c382ba6fe25cba07074f73020b4d0;p=spiritwrak.git diff --git a/src/SPECIAL.INF b/src/SPECIAL.INF deleted file mode 100644 index 1d22b5c..0000000 --- a/src/SPECIAL.INF +++ /dev/null @@ -1,1736 +0,0 @@ -! ********************************************************************* -! 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.~"; -];