X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2FARAGAIN.INF;fp=src%2FARAGAIN.INF;h=0000000000000000000000000000000000000000;hb=8cf6c360a875867b3cb9b78b9e73a0e72d527d17;hp=9c80e1aee6afd5e2750412c4f3fa7ae7aea88e2b;hpb=eabbe6652d6c382ba6fe25cba07074f73020b4d0;p=spiritwrak.git diff --git a/src/ARAGAIN.INF b/src/ARAGAIN.INF deleted file mode 100644 index 9c80e1a..0000000 --- a/src/ARAGAIN.INF +++ /dev/null @@ -1,1642 +0,0 @@ - -! ******************************************************************* -! ARAGIN.INF -! -- Add-on for SPIRITWRAK (don't use alone!) -! for Aragain city, royal grounds, possibly Barsap's Gambit -! ******************************************************************* - - -Object ARAGAIN_GUSStop "Aragain North" - with description "You are just north of the newly \ -built Aragain City. The general vicinity \ -is busy with important-looking people. \ -A stairway goes down here, \ -while a large walkway heads south into Aragain.", - name "people" "stairway" "walkway", - d_to ARAGAIN_GUSStation, - s_to ARAGAIN_Entrance, - has light; - -Object ARAGAIN_Entrance "Aragain Entrance" - with description "Before you is a truly astounding sight. \ -A huge metal gate to the south blocks the entrance into the newly \ -built Aragain Royal Grounds. Worse yet, a seemingly \ -endless line of people stands before the gate. \ -They look like dignitaries, diplomats, or \ -just plain politicians. A walkway heads north.", - name "walkway" "pastries", - n_to ARAGAIN_GUSStop, - s_to ARAGAIN_Entrance_gate, - cant_go "The only interesting place seems to be past \ - that gate.", - has light; - -Nearby line1 "line" - with name "line" "people" "dignitaries" "diplomats" "politicians", - description "A god-awful line of well-dressed people. You \ - notice that many of them are holding what appear \ - to be round pastries of some sort.", - life [; -default: "No one in the line seems to be paying you any attention."; - ], - before [; - Cast: - if (the_spell_was == espnis_spell) -"A few people doze off as you canvass the line. They are \ -quickly replaced by others."; - ], - has animate concealed; - -Object gate_sign "large sign" ARAGAIN_Entrance - with initial "There is a large sign bolted to the gate.", - name "sign" "large", - description [; - print "The sign reads:^^\ -~WELCOME TO ARAGAIN!^^\ -As today (and everyday henceforth) has been decreed \ -his royal lordship's birthday, we request that all \ -visitors respect good king Sydney Flathead's wishes \ -and present a cake appropriate for the occasion before \ -entering."; - if (self hasnt general) { - give self general; -"~^^Well, that's odd. If memory and Brother \ -TuffBerry's Quendor History lessons serve, the \ -Flathead family died off more than a hundred years \ -ago."; - } - else "~"; - ], - has static; - - -Object ARAGAIN_Entrance_gate "huge entrance gate" ARAGAIN_Entrance - with name "gate" "entrance", - description "A solid steel gate, probably 40 feet tall, \ -complete with spikes at the top and close-set bars.", - door_dir [; - if (self in ARAGAIN_Entrance) - return s_to; - else return n_to; - ], - door_to [; - if (self in ARAGAIN_Entrance) - return ARAGAIN_Courtyard; - else return ARAGAIN_Entrance; - ], - found_in ARAGAIN_Entrance ARAGAIN_Courtyard, - when_open "The massive gate is open.", - when_closed "The massive gate is closed.", - before [; - Open, Push, Pull: - if (Entrance_guardian hasnt general) - "The guard shoves you away as you approach the gate. \ - He points at the sign. ~No cake, no castle.~"; - Close: - "It must weigh a ton, you can't seem to move it."; - ], - has static door openable locked; - -Object ARAGAIN_Courtyard "Courtyard" - with description "You're standing in a lovely courtyard with \ -magnificent topiary designs and real marble walkways. A large \ -gate stands to the north. To the east is a red stone building \ -with spires and columns. To the west is a large flat stone \ -building. To the south is a huge entranceway into what must \ -be the new Royal Palace, which appears to be carved out of the \ -face of a massive mountain.", - name "marble" "walkway" "red" "spires" "columns" "flat" -"entranceway" "mountain" "Palace", - n_to ARAGAIN_Entrance_gate, - e_to ARAGAIN_Museum, - w_to ARAGAIN_Gambit, - s_to ARAGAIN_Palace, -has light; - -Nearby topiary "topiary" - with name "topiary", - description "Cleverly abused shrubs in the shape of giant \ -crowns.", - has scenery; - -! -- The (rather empty) Royal Museum - -Object ARAGAIN_Museum "Royal Museum" - with description "You're in the entrance to a museum. The \ -lighting is rather dim, throwing light shadows all over the \ -walls. There are exhibit rooms to the north and south, or \ -an exit west.", - name "lighting" "shadows", - w_to ARAGAIN_Courtyard, - n_to Museum_north, - s_to Museum_south, - has light; - -Object Museum_north "North Exhibit Room" - with description "You are in a small exhibit room designed with \ -dark wood floors and plaster-on-stucco walls. The room is dimly lit by \ -hidden lamps or torches behind recessed wall niches. \ -The exit is south.", - name "wood" "plaster" "stucco" "lamps" "torches" "niches", - s_to ARAGAIN_Museum, - each_turn [; - if ((glass_wall in self) && (Thief notin Delbins)) { - if (random(10) == 2 or 7) - "^You get the odd feeling that there's someone behind \ -you, but when you turn around, you see no one!"; - } - ], - before [; - Cast: -if (the_spell_was == huncho_spell or luncho_spell) -"From nearby, a museum curator walks up and abruptly \ -stops your chant. ~Please don't disturb the other patrons,~ \ -he says and walks off. There doesn't seem to be anyone else \ -around, however."; - Blow: - if ((noun == whistle) && (glass_wall in self)) { - remove glass_wall; - print "You produce an extremely high-pitched noise. \ -Suddenly, to the north, a near-invisible wall of glass shatters \ -into a million little shards"; - if (Thief notin Delbins) { - move Painting_REAL to THIEF_Storeroom; - Painting_REAL.initial = nothing; - move magic_door to Museum_north; - "!^^From out of the shadows, a man dressed \ -in black appears! He performs a half-bow in your direction \ -before deftly prying the painting off the wall! ~I'm a great \ -appreciator of the arts, you understand,~ he says, as with a quick \ -twist of his cape, he melds into the shadows and disappears \ -with the painting!^^As you reflect on the thief's actions, \ -you can't help but notice that he apparently dropped something \ -while making his dramatic exit."; - } - else "!"; -! -- guards always come and move player to jail room ? -! -- if thief still in delbins, attempt to get painting is \ -! trapped below, player CANT TAKE IT (as a priest) - } - ], - has light; - -Nearby glass_wall "glass wall" - with name "wall" "glass", - description "Yes, there's a glass wall covering the \ -north wall, all right. It's exceptionally smooth and transparent.", - before [; - Attack: - "Your blows have no effect, it must be quite thick."; - ], - has static concealed; - -Object Painting_REAL "priceless painting" Museum_north - with name "painting", - short_name "priceless painting", - plural "priceless paintings", - initial "There is a priceless painting hanging on the north wall.", - 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.", - size 25, - before [; - Take, Pull, Push, Turn, Attack, Rub, Cut, Touch, Search: - if (self in Museum_north) { - if (glass_wall in Museum_north) - "As you get close to the painting, you find yourself stopped by a \ -nearly-invisible glass wall!"; - else { - if (action == ##Search) - "You notice a slightly loose part \ -of the canvas in one corner, but the painting is apparently \ -bonded to the wall, which limits your investigation."; - if (action ~= ##Touch) - "You can't seem to move the painting at all. \ -It's somehow bonded to the museum wall!"; - } - } - else { - if ((action == ##Take) && (self in THIEF_Storeroom) && - (Painting_FAKE in THIEF_Storeroom)) - "They both look so genuine! You can't decide!"; - if (action == ##Search) { - if ((self in THIEF_Storeroom) && - (Painting_FAKE in THIEF_Storeroom)) - "Search which one? Goodness, you can't decide!"; - if (self hasnt general) { - give self general; - move white_scroll to player; - "You notice a slightly loose part \ -of the canvas in one corner. You carefully peel back a part of the \ -canvas from the back and reveal a hidden scroll!"; - } - } - } - Drop: - if (location == Museum_north) { - ! player returned painting to museum, give him a reward - move c4 to player; - move self to Museum_north; - "A museum curator appears and graciously takes the \ -painting. ~Thank you for recovering this priceless work.~ He \ -gives you a coin. ~The reward. We've been a little short on funds \ -lately.~ The curator somehow attaches the painting to the north wall, \ -and leaves."; - } - ], -; - -Object c4 "coin" class coin_class; - -Object Painting_plaque "plaque" Museum_north - with name "plaque", - initial [; -print "A metal plaque is attached to the wall"; -if (Painting_REAL in Museum_north) - " next to the painting."; -else "."; - ], - description "~ASCENDENCY~ Leonardo Flathead, 777 GUE", - before [; - Take, Pull, Push, Turn, Attack, Rub, Cut, Touch: - if ((self in Museum_north) && (glass_wall in Museum_north)) - "As you get close to the painting, you find yourself stopped by a \ -nearly-invisible glass wall!"; - ], - has static; - -Object Museum_south "South Exhibit Room" - with description "You are in a square exhibit room with \ -wood flooring and plain plaster walls. In the center of the \ -room is an exhibit platform made from a large slab of marble. \ -The room is lit brightly by hidden torches. The exit is north.", - name "wood" "plaster" "torches", - n_to ARAGAIN_Museum - has light; - -Nearby museum_dais "platform" - with name "platform" "slab" "marble", - description "It's a large flat slab of marble, polished \ -smooth, in the center of the floor.", - capacity 20, - has scenery supporter; - -Object TEMPLE_Artifact "flower vase" museum_dais - with name "artifact" "vase", - initial "There's an ancient wood vase sitting on the marble platform.", - description "An extremely narrow short wood vase, possibly for \ -holding long-stemmed flowers. It's clearly of ancient origin, well \ -preserved, with strange carvings and designs \ -of robed figures all over.", - capacity 1, - before [; - Receive: - if (noun hasnt is_rod) - "Strangely, it doesn't quite fit."; - LetGo: - if (self in TEMPLE_1_Opening) - "You can't reach the vase, much less the contents of the vase."; - ], - size 10, - has container open; - -! -- Okay maze-lovers, you asked for it -- Barsap's Gambit - -Object ARAGAIN_Gambit "Warm Room" - with description "You are in a long stone room, which is strangely \ -warm. In the very center of the room is a hole, with a ladder \ -down. An outdoor courtyard lies to the east.", - name "hole" "courtyard" "ladder", - e_to ARAGAIN_Courtyard, - d_to GAMBIT_11, - has light; - -Nearby Gambit_sign "large sign" - with initial "There is a large sign posted near the doorway.", - name "sign", - description "~Welcome to Barsap's Royal Gambit, a \ -delight to entertain all guests to the Aragain Royal Grounds. \ -Please consult your tourbook for rules and regulations regarding \ -this area. His highness, Sydney Flathead, and those in his \ -employ, cannot be held responsible for any accidents or minor -spills at this location.~", - has static; - -! (room names -- GAMBIT_XY, where X=level (1,2,3), Y=room #) - - -! ----------------------------------------------------- -! The all-important "CheckGambit" routine. Called by a -! room when a player attempts to move onto a beam. -! Various important things need to be passed... -! RETNS: 0 if cant go, 1 if player fell, 2 if can go -[ CheckGambit - i ! niche associated with dir player moving in - j ! niche directly below (if player falls) [0 if lev 3] - k ! 'level' currently on (1, 2 or 3) - m ! (local var) - ; - ! ** Step one -- check if there's even a beam there at all - if (children(i) == 0) - return 0; - ! ** Step two -- check if the beam is strong enough - m = child(i); - if (m.number == 99) ! (we have the 'wrong half') - m = child(i.counter_niche); - if (m.number <= 0) { - ! -- nope, beam breaks, we're about to fall - ! -- remove broken beam - remove child(i); remove child(i.counter_niche); - print "As you step onto the wood beam, it breaks with a \ -shuddering crack! "; - if (has_resist_gravity == 0) { - deadflag = 1; - print "You plummet quickly through the air, "; - switch (k) { - 1: print "pass by two levels of floating cubes and beams, "; - 2: print "pass by one level of floating cubes and beams, "; - } - print "and find the bottom of the chamber is filled with \ - red-hot lava..."; - return 1; - } - else { - ! -- player will float, but see if there's anything to float to... - print "Amazingly, you float downwards like a \ -feather, instead of falling to your death! "; - if (k==3) { ! (j==0) { on the bottom level - deadflag = 1; - print "Unfortunately, you float slowly down to \ -the bottom of the chamber, which is filled with red-hot lava."; - return 1; - } - print "You float down towards another network of floating \ -cubes and beams. "; - if (children(j) == 0) { ! no wood beam waiting - deadflag = 1; - print "You pass between two giant floating cubes, \ -similar to the ones you just left. Sadly, no wood beam seems \ -to connect these particular cubes, and you float downwards "; - if (k==1) - print "past yet another level of floating cubes and beams, "; - print "to a pit of hot lava."; - return 1; - } - print "You float to another wood beam and your feet \ -land on it, perfectly balanced! "; - m = child(j); - if (m.number == 99) ! (we have the 'wrong half') - m = child(j.counter_niche); - if (m.number <= 0) { - ! -- beam breaks (again!), player dies - ! -- remove broken beam - remove child(j); remove child(j.counter_niche); - print "Sadly, this wood beam also breaks! You \ -continue to float downwards "; - if (k==1) - print "past yet another level of floating cubes and beams "; - print "into a pit of hot lava."; - deadflag = 1; - return 1; - } - else { - print "^"; - ! -- beam is ok, decrement strength counter - m.number = m.number - 1; - ! -- MOVE PLAYER TO NEW BEAM - ! set-up new WN_TO and ES_TO - if (j.niche_dir == 3 or 4) { - WN_TO = parent(j); - ES_TO = parent(j.counter_niche); - } - else { - ES_TO = parent(j); - WN_TO = parent(j.counter_niche); - } - ! move to appropriate 'on beam' room - ! TODO update beam description.... - if (j.niche_dir == 2 or 4) { - if (k==1) - PlayerTo(GAMBIT_W21); - else - PlayerTo(GAMBIT_W31); - } - else { - if (k==1) - PlayerTo(GAMBIT_W22); - else - PlayerTo(GAMBIT_W32); - } - return 1; - } - } - } - else { - ! -- beam is ok, decrement strength counter - m.number = m.number - 1; - print "You step gingerly onto the wood beam...^"; - if (i.niche_dir == 3 or 4) { - WN_TO = parent(i); - ES_TO = parent(i.counter_niche); - } - else { - ES_TO = parent(i); - WN_TO = parent(i.counter_niche); - } - return 2; - } -]; -! ----------------------------------------------------- - - -Class Gambit_Room_Lev1_Class - with description "You are standing on a large floating white \ -stone cube in a very large underground chamber. The entire place is \ -dimly lit red from somewhere below.", - name "white" "stone" "cube" "chamber", - has light; - - -Object GAMBIT_11 "On Giant White Cube" - with description "As far as you can tell, you are standing on a \ -large white stone cube that somehow floats without visible supports in \ -a terrifyingly large underground chamber. The entire place is \ -dimly lit red from somewhere below. There is a ladder up to a hole \ -high in the ceiling here.", - name "white" "stone" "cube" "chamber" "ladder" "hole", - u_to ARAGAIN_Gambit, - w_to - [ i ; - i = CheckGambit(n112,n212,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - s_to - [ i ; - i = CheckGambit(n113,n213,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], - has light; - -Object GAMBIT_12 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with e_to - [ i ; - i = CheckGambit(n124,n224,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - w_to - [ i ; - i = CheckGambit(n122,n222,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - s_to - [ i ; - i = CheckGambit(n123,n223,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - -Object GAMBIT_13 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with e_to - [ i ; - i = CheckGambit(n134,n234,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - s_to - [ i ; - i = CheckGambit(n133,n233,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - -Object GAMBIT_14 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with w_to - [ i ; - i = CheckGambit(n142,n242,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - n_to - [ i ; - i = CheckGambit(n141,n241,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], - s_to - [ i ; - i = CheckGambit(n143,n243,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - -Object GAMBIT_15 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with e_to - [ i ; - i = CheckGambit(n154,n254,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - w_to - [ i ; - i = CheckGambit(n152,n252,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - n_to - [ i ; - i = CheckGambit(n151,n251,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], - s_to - [ i ; - i = CheckGambit(n153,n253,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - -Object GAMBIT_16 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with e_to - [ i ; - i = CheckGambit(n164,n264,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - n_to - [ i ; - i = CheckGambit(n161,n261,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], - s_to - [ i ; - i = CheckGambit(n163,n263,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - -Object GAMBIT_17 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with w_to - [ i ; - i = CheckGambit(n172,n272,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - n_to - [ i ; - i = CheckGambit(n171,n271,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - -Object GAMBIT_18 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with w_to - [ i ; - i = CheckGambit(n182,n282,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - n_to - [ i ; - i = CheckGambit(n181,n281,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], - e_to - [ i ; - i = CheckGambit(n184,n284,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], -; - -Object GAMBIT_19 "On Giant White Cube" - class Gambit_Room_Lev1_Class - with e_to - [ i ; - i = CheckGambit(n194,n294,1); - if (i ~= 2) return i; - else return GAMBIT_W1; - ], - n_to - [ i ; - i = CheckGambit(n191,n291,1); - if (i ~= 2) return i; - else return GAMBIT_W2; - ], -; - - -! (level 1 niches) - -Object n112 "western niche" GAMBIT_11 - class niche_class - with name "western", - counter_niche n124, - niche_dir 2, ! 2 = on western edge of floor - ; -Object n113 "southern niche" GAMBIT_11 - class niche_class - with name "southern", - counter_niche n141, - niche_dir 3; - -Object n124 "eastern niche" GAMBIT_12 - class niche_class - with name "eastern", - counter_niche n112, - niche_dir 4; -Object n123 "southern niche" GAMBIT_12 - class niche_class - with name "southern", - counter_niche n151, - niche_dir 3; -Object n122 "western niche" GAMBIT_12 - class niche_class - with name "western", - counter_niche n134, - niche_dir 2; - -Object n134 "eastern niche" GAMBIT_13 - class niche_class - with name "eastern", - counter_niche n122, - niche_dir 4; -Object n133 "southern niche" GAMBIT_13 - class niche_class - with name "southern", - counter_niche n161, - niche_dir 3; - -Object n141 "northern niche" GAMBIT_14 - class niche_class - with name "northern", - counter_niche n113, - niche_dir 1; -Object n142 "western niche" GAMBIT_14 - class niche_class - with name "western", - counter_niche n154, - niche_dir 2; -Object n143 "southern niche" GAMBIT_14 - class niche_class - with name "southern", - counter_niche n171, - niche_dir 3; - -Object n151 "northern niche" GAMBIT_15 - class niche_class - with name "northern", - counter_niche n123, - niche_dir 1; -Object n154 "eastern niche" GAMBIT_15 - class niche_class - with name "eastern", - counter_niche n142, - niche_dir 4; -Object n152 "western niche" GAMBIT_15 - class niche_class - with name "western", - counter_niche n164, - niche_dir 2; -Object n153 "southern niche" GAMBIT_15 - class niche_class - with name "southern", - counter_niche n181, - niche_dir 3; - -Object n164 "eastern niche" GAMBIT_16 - class niche_class - with name "eastern", - counter_niche n152, - niche_dir 4; -Object n161 "northern niche" GAMBIT_16 - class niche_class - with name "northern", - counter_niche n133, - niche_dir 1; -Object n163 "southern niche" GAMBIT_16 - class niche_class - with name "southern", - counter_niche n191, - niche_dir 3; - -Object n171 "northern niche" GAMBIT_17 - class niche_class - with name "northern", - counter_niche n143, - niche_dir 1; -Object n172 "western niche" GAMBIT_17 - class niche_class - with name "western", - counter_niche n184, - niche_dir 2; - -Object n181 "northern niche" GAMBIT_18 - class niche_class - with name "northern", - counter_niche n153, - niche_dir 1; -Object n182 "western niche" GAMBIT_18 - class niche_class - with name "western", - counter_niche n194, - niche_dir 2; -Object n184 "eastern niche" GAMBIT_18 - class niche_class - with name "eastern", - counter_niche n172, - niche_dir 4; - -Object n191 "northern niche" GAMBIT_19 - class niche_class - with name "northern", - counter_niche n163, - niche_dir 1; -Object n194 "eastern niche" GAMBIT_19 - class niche_class - with name "eastern", - counter_niche n182, - niche_dir 4; - -! (level 1 initial wood beam layout) -! wood beam, as two 'halves' -! (the 'trick' here, is to devise a method of testing for the -! correct '.number', without having to constantly update -! both halves (which, when separated in niches, is impossible) -! Thus, one half will always have number=99, which indicates -! 'wrong half to test'. The other half, which is gained by -! checking child(self.counter_niche), has the useful .number - -! Object e11 "ebony beam" n112 class ebony_beam_class; -! Object e111 "ebony beam" n124 class ebony_beam_class with number 99; -Object e12 "ebony beam" n113 class ebony_beam_class; -Object e121 "ebony beam" n141 class ebony_beam_class with number 99; -Object e13 "ebony beam" n153 class ebony_beam_class; -Object e131 "ebony beam" n181 class ebony_beam_class with number 99; - -Object p11 "pine beam" n123 class pine_beam_class; -Object p111 "pine beam" n151 class pine_beam_class with number 99; -Object p12 "pine beam" n122 class pine_beam_class; -Object p121 "pine beam" n134 class pine_beam_class with number 99; -Object p13 "pine beam" n133 class pine_beam_class; -Object p131 "pine beam" n161 class pine_beam_class with number 99; -Object p14 "pine beam" n194 class pine_beam_class; -Object p141 "pine beam" n182 class pine_beam_class with number 99; -Object p15 "pine beam" n112 class pine_beam_class; -Object p151 "pine beam" n124 class pine_beam_class with number 99; - -! (side note: with balsa beams, 2nd side need not be 99, since -! it will always break on the first try, and the default number is 0 -Object b11 "balsa beam" n152 class balsa_beam_class; -Object b111 "balsa beam" n164 class balsa_beam_class; -Object b12 "balsa beam" n143 class balsa_beam_class; -Object b121 "balsa beam" n171 class balsa_beam_class; -Object b13 "balsa beam" n163 class balsa_beam_class; -Object b131 "balsa beam" n191 class balsa_beam_class; -Object b14 "balsa beam" n142 class balsa_beam_class; -Object b141 "balsa beam" n154 class balsa_beam_class; -Object b15 "balsa beam" n172 class balsa_beam_class; -Object b151 "balsa beam" n184 class balsa_beam_class; - - -! (remaining 2 levels in sep. files) -Include "gambit2.inf"; -Include "gambit3.inf"; - - -! tricky 'on beam' rooms -- only two for each level -! change description of fake_beam as appropriate -Object GAMBIT_W1 "On wood beam" - with description "You're walking along a very narrow wood beam that runs \ -east to west into darkness. Below, you can see the dark \ -silhouette of a network of beams and floating cubes. Much \ -farther below you can see a dull red glow.", - name "darkness" "network" "silhouette" "cubes" "glow", - w_to [; give self ~visited; return WN_TO; ], - e_to [; give self ~visited; return ES_TO; ], - before [; - Jump: - "There's barely enough room to walk, much less jump."; - Drop: - print "Dropping "; DefArt(noun); - print " will result in your losing both "; - DefArt(noun); - " and probably your balance."; - ], - has light; - -Object GAMBIT_W2 "On wood beam" - with description "You're walking along a very narrow wood beam that runs \ -north to south into darkness. Below, you can see the dark \ -silhouette of a network of beams and floating cubes. Much \ -farther below you can see a dull red glow.", - name "darkness" "network" "silhouette" "cubes" "glow", - n_to [; give self ~visited; return WN_TO; ], - s_to [; give self ~visited; return ES_TO; ], - before [; - Jump: - "There's barely enough room to walk, much less jump."; - Drop: - print "Dropping "; DefArt(noun); - print " will result in your losing both "; - DefArt(noun); - " and probably your balance."; - ], - has light; - -Object GAMBIT_W21 "On wood beam" - with description "You're walking along a very narrow wood beam that runs \ -east to west into darkness. Both above and below, you can see the dark \ -silhouette of a network of beams and floating cubes. \ -Farther below you can see a dull red glow.", - name "darkness" "network" "silhouette" "cubes" "glow", - w_to [; give self ~visited; return WN_TO; ], - e_to [; give self ~visited; return ES_TO; ], - before [; - Jump: - "There's barely enough room to walk, much less jump."; - Drop: - print "Dropping "; DefArt(noun); - print " will result in your losing both "; - DefArt(noun); - " and probably your balance."; - ], - has light; - -Object GAMBIT_W22 "On wood beam" - with description "You're walking along a very narrow wood beam that runs \ -north to south into darkness. Both above and below, you can see the dark \ -silhouette of a network of beams and floating cubes. \ -Farther below you can see a dull red glow.", - name "darkness" "network" "silhouette" "cubes" "glow", - n_to [; give self ~visited; return WN_TO; ], - s_to [; give self ~visited; return ES_TO; ], - before [; - Jump: - "There's barely enough room to walk, much less jump."; - Drop: - print "Dropping "; DefArt(noun); - print " will result in your losing both "; - DefArt(noun); - " and probably your balance."; - ], - has light; - -Object GAMBIT_W31 "On wood beam" - with description [; - print "You're walking along a very narrow wood beam that runs \ -east to west into darkness. Above you can see a network of floating beams \ -and cubes. Below you can see a red glow"; - if ((self hasnt general) && (GAMBIT_W32 hasnt general) && - (amulet has worn) && (ES_TO == GAMBIT_37)) { - give self general; - ".^^Your amulet suddenly gives off a bright flash, then fades!"; - } - else "."; -], - name "darkness" "network" "cubes" "glow", - w_to [; give self ~visited; return WN_TO; ], - e_to [; give self ~visited; return ES_TO; ], - before [; - Jump: - "There's barely enough room to walk, much less jump."; - Drop: - print "Dropping "; DefArt(noun); - print " will result in your losing both "; - DefArt(noun); - " and probably your balance."; - ], - has light; - -Object GAMBIT_W32 "On wood beam" - with description [; - print "You're walking along a very narrow wood beam that runs \ -north to south into darkness. Above you can see a network of floating beams \ -and cubes. Below you can see a red glow."; - if ((self hasnt general) && (GAMBIT_W31 hasnt general) && - (amulet has worn) && (ES_TO == GAMBIT_37)) { - give self general; - ".^^Your amulet suddenly gives off a bright flash, then fades!"; - } - else "."; - ], - name "darkness" "network" "cubes" "glow", - n_to [; give self ~visited; return WN_TO; ], - s_to [; give self ~visited; return ES_TO; ], - before [; - Jump: - "There's barely enough room to walk, much less jump."; - Drop: - print "Dropping "; DefArt(noun); - print " will result in your losing both "; - DefArt(noun); - " and probably your balance."; - ], - has light; - -Object fake_beam "wood beam" - with name "wood" "beam", - description "A long thin wood beam, barely wide enough for \ - both of your feet.", ! change as appropriate - before [; - Turn, Search, Rub, LookUnder, Attack, Take, Push, Pull: - "You'll have to show me how you intend to do \ -this, since you're standing on the wood beam."; - ], - found_in GAMBIT_W1 GAMBIT_W2 GAMBIT_W21 GAMBIT_W22 - GAMBIT_W31 GAMBIT_W32, - has scenery; - - - -! -- The Royal Palace, and its strange secret - -Object ARAGAIN_Palace "Palace Entrance Hall" - with description "A vast hall runs north and south \ -in this massive palace. Royal trappings decorate the walls \ -and ceiling, and red carpet lines the floor. \ -A tremendous open archway exits to the north into some \ -courtyard, while two open solid brass doors mark the \ -entrance south into some audience chamber. Two smaller \ -exits head east and west towards stairways up and down \ -respectively.", - name "trappings" "carpet" "archway" "courtyard" -"brass" "doors", - n_to ARAGAIN_Courtyard, - s_to Palace_Audience, - e_to Palace_office, - w_to Palace_Westwing, - u_to Palace_office, - d_to Palace_Westwing, - has light; - -Object Palace_Audience "Audience Hall" - with description "This is a giant audience hall, equivalent to \ -a large auditorium with a throne on the stage. The hall is \ -filled with luxurious decorations -- red carpeting, expensive \ -chandeliers, sweeping gold-edged drapery. The hall is also \ -currently filled with a large number of dignitaries and \ -important-looking people taking up all the seats. Open brass \ -doors lie to the north.", - name "carpeting" "chandeliers" "drapery" "seats" "brass" "doors", - n_to ARAGAIN_Palace, - has light; - -Nearby audience_people "people" - with name "people" "dignitaries" "diplomats", - description "Just your average throng of official-looking \ -people. Interestingly, many of them seem to be smeared \ -with flour.", - life [; - default: "The audience seems to be too busy waiting \ -for something interesting to happen."; - ], - before [; -Cast: - if (the_spell_was == foblub_spell) - "You give a marvelous sermon on patience. The audience \ -seems glued to their seats, which changes little."; - if (the_spell_was == espnis_spell) - "You give a rather overdone sermon on patience. A few \ -people in the back rows drop off to sleep."; - ], - has animate concealed; - -Object throne "throne" - with name "throne", - description "A large throne.", - before [; - Enter: "This is no time to be playing king."; - ], - has scenery enterable; - -Object Palace_office "Royal Bedroom" - with description "This might have once been a lavish bedroom \ -for royalty. At the moment, it seems like someone has converted \ -it into a private lounge of some sort. A stairway heads down.", - name "stairway", - d_to ARAGAIN_Palace, - has light; - -Object cab_key "shiny key" Gov_desk2 - with name "key" "shiny", - !weight 5, - size 5, - description "A shiny key.", -; - -Object Palace_cabinet "cabinet" Palace_office - with name "cabinet", - with_key cab_key, - description [; - print "A rather new-looking wooden cabinet"; - if (self has general) - ", with a bit of waxy build-up all over it."; - else "."; - ], - when_closed "A wooden cabinet stands against one wall, \ -clearly a new addition to the room.", - when_open [ x; - print "The wooden cabinet has been opened. "; - x = children(self); - if (x == 0) "It seems to be empty."; - print "It contains:^"; - ! if (x == 1) print "is "; else print "are:^"; - x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT; - WriteListFrom (child(self), x, 1); - rtrue; - ], - before [; - Cast: - if (the_spell_was == egdelp_spell) { - give self general; - "The cabinet is covered in waxy build-up."; - } - Open: - if ((self hasnt locked) && (self hasnt open)) { - print "You give the cabinet a good tug"; - if (self hasnt general) - ", but the \ -cabinet doors barely budge. The new-looking wood seems \ -to be rather tightly fitted."; - else { - give self open; - ". The wax makes the doors open with ease."; - } - } - ], - size 25, - capacity 20, - has static container openable lockable locked; - - -! (warped -- true story of the great battle) -Object p6 "warped parchment" Palace_cabinet - class parchment_class, - with name "warped", -description "~...truth. In fact, the truth too terrible to \ -believe, but believe it I must, for all the evidence I \ -have found indicates that the Ancient Ones went up against \ -the evil elementals and lost! With the Rod in hand, they \ -were defeated by trickery! The Rod was broken and \ -scattered into the world, but can be regained and rejoined \ -by any whose heart and spirit are pure! Did the \ -Ancient Ones forsake the spheres of...~"; - - -Object Palace_Westwing "Palace Dungeons" - with description "Dark and spooky, the palace dungeons seem \ -empty at the moment. The north portion of the room is sectioned-off \ -by iron bars that form a makeshift cell.", - n_to [; <>; ], - u_to ARAGAIN_Palace, - has light; - -Nearby prison_cell "prison cell" - with name "cell" "bars" "iron", - when_open [ x; - print "The cell stands open."; - x = children(self); - if (x == 0) { new_line; rtrue; } - print " Inside you notice:^"; - x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT; - WriteListFrom (child(self), x, 1); - rtrue; - ], - when_closed [ x; - print "The cell is closed."; - x = children(self); - if (x == 0) { new_line; rtrue; } - print " Inside you notice:^"; - x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT; - WriteListFrom (child(self), x, 1); - rtrue; - ], - description "A cramped space with a wall of iron bars.", - before [; - Cast: - if (the_spell_was == bekdab_spell) { - print "The bars seem to rust a bit"; - if (self has locked) { - give self ~locked; - ". You hear a lock mechanism in the cell door break!"; - } - else "."; - } - Go: - if ((noun == s_obj) && (player in prison_cell)) { - ; return 2; } - ], - size 50, - has static container openable transparent enterable; - - -! ***************** -! Creatures/people -! ***************** - -Object Entrance_guardian "Tough-looking Palace guard" ARAGAIN_Entrance - with name "guardian" "guard", - initial "A tough-looking palace guard is standing by the gate.", - description "Typical guard -- big, armed to the teeth, and a \ -sour disposition.", - before [; - Cast: - "The guard stops you in mid-chant by blowing a rather \ -shrill whistle. ~None of that priest mumbo-jumbo on \ -my watch!.~"; - ], - react_before [; - Blow: - if (noun==whistle) -"The guard stops you as you are about to blow the whistle. \ -~I blow the whistles around here.~"; - ], - life - [ i ; - Attack, ThrowAt: - "I'd advise against this. He's probably knows 101 \ -ways to dismember an opponent. \ -Also, he's armed and encased in plate mail."; - Ask: - if ((noun == 'cake' or 'gate') && (self hasnt general)) - "~It's pretty simple. Give me a cake, and you get in. \ -That's the rules.~"; - Show: - if ((noun == Baking_Pan) && (cake in Baking_Pan)) - "~Well, hand it over already.~"; - Give: - ! Now for the fun... - if ((noun == Baking_Pan) && (cake notin Baking_Pan)) - "The guard looks at the pan, and hands it back. \ -~I don't see any cake. What are you, a wise guy or something?~"; - if ((noun == Baking_Pan) && (cake in Baking_Pan)) { - move Baking_Pan to Entrance_guardian; - print "The guard grabs the pan, and, to your \ -annoyance, cuts himself a massive slice of cake with his broadsword. \ -The guard takes a bite"; - ! 1st, check for strange foreign objects - objectloop (i in dough) { - if ((i ~= flour) && - (i ~= sugar_cube) && - (i ~= baking_powder) && - (i ~= corbie_egg) && - (i ~= dornberries) && - (i ~= butter)) { - if (i hasnt edible) { - print " and you hear a strange \ -'crunch'. He removes ", (a) i; " from his teeth. ~What's this?~ the \ -guard says, clearly angry. ~I oughta report you to the 'Better \ -Bakers Bureau'.~"; ! hopefully, this will break out of objectloop - } - else { - print ", and chews for a bit. \ -His eyes widen, and he spits the cake out. ~Hey pal, I taste ", (name) i; -" in this so-called cake of yours! Grues could've done a better job \ -than this!~"; - } - } - } - ! 2nd, check overall quality of cake - if (cake.number ~= 0) { - print ", and chews for a bit. \ -He frowns. ~Sorry pal, this doesn't pass inspection. "; - if (cake.number == 1) - "It could stand some more cooking.~"; - if (cake.number == 2) - "Did ya burn it or something?~"; - if (cake.number == 3) - "It'd make an okay pancake, though.~"; - if (cake.number == 4) - "It's hard as a rock!~"; - } - ! finally, check that all proper ingredients are there. - if ((butter in dough) && - (sugar_cube in dough) && - (corbie_egg in dough) && - (baking_powder in dough) && - (dornberries in dough) && - (flour in dough)) { - ! good cake - give self general; - give ARAGAIN_Entrance_gate open ~locked; - Achieved(4); - ", and smacks \ -his lips. ~Finally, someone who can bake an acceptable cake.~ \ -He unlocks and opens the gate. ~You can pass.~"; - } - else - ", and chews for a bit. He seems displeased. \ -~I don't know where you learned to bake, but there's definitely \ -something missing here.~"; - } - default: - "The guard is amazingly good at ignoring distractions."; - ], - each_turn [ i; - i = random(25); - if (i == 1) - "^A couple of dignitaries from Gurth push their way to the \ -front and present a flat object to the guard. The guard frowns. \ -~A fish cake? I don't think so.~ The dignitaries return to the line."; - if (i==3) - "^The guard paces back and forth."; - if (i==5) - "^A representative from Borphee steps up and presents \ -a pile of baked dough-bits on a plate to the guard. ~Frobolli cake, eh? \ -Well, this may be popular where you come from, but it ain't popular \ -here.~ The representative walks off."; - if (i==7) - "^The guard practices his menacing stares."; - if (i==8) - "^The guard blows his whistle at some people in line."; - if (i==9) - "^An official presents a nice morgia root pie to the \ -guard. ~A pie?~ the guard says, clearly exasperated. He points at \ -the sign as the official leaves. ~Cakes folks, we're taking C-A-K-E-S.~"; - if (i==11) - "^The guard polishes a spot on his armor."; - if (i==13) - "^Some dignitary presents the guard with a strange \ -green cake with the words ~EAT ME~ written in frosting. The guard smiles, \ -cuts himself a piece, and suddenly stuffs it into the dignitary's mouth! \ -~You boys are going to have to do better than that,~ he says to the -now tiny dignitary, who stalks off."; - if (i==15) - "^The guard hums a military dirge to himself."; - ], -has animate; - -! -- The evil magistrate -Object Magistrate "magistrate" Palace_Audience - with name "magistrate", - initial "There is a royal magistrate here.", - description "A rather nasty-looking thin tall fellow with an \ -evil grin.", - number 1, - life [; - Attack, ThrowAt: - magroutine1(1); rtrue; - Show: - if (noun==Gov_ledger && Sydney notin Palace_Audience) { - move Sydney to Palace_Audience; - remove Gov_ledger; - "The Magistrate grabs the ledger and \ -frowns as he reads it. ~Fine, you want a presentation?~ He grabs a \ -young boy who was hiding behind \ -the throne and shoves him forward. ~Presenting his royal \ -Highness, King Sydney Flathead, lost heir to the Flathead monarchy!~ \ -The crowd reaction is somewhat mixed. ~Well, his head does look \ -flat,~ you hear one person say."; - } - if (noun==cab_key) { - move cab_key to self; - "The magistrate moves with surprising speed and \ -takes the key. ~I was looking for that!~ he says."; - } - else "~Oh, very interesting.~ he says with heavy \ -sarcasm."; - Give: - if (noun==Gov_ledger && Sydney notin Palace_Audience) { - <>; - } - if (noun==cab_key) { - move cab_key to self; - "The magistrate takes the key. \ -~I was looking for that!~ he says."; - } - else "~I have no need for that!~ he says with a sneer."; - default: "The magistrate pays you absolutely no attention."; - ], - react_before [; - Cast: - if (the_spell_was ~= ledak_spell) { - magroutine1(2); rtrue; - } - ], - each_turn [ i ; - i = random(20); - if (Sydney in Palace_Audience) { - if (i==1) - "^A diplomat approaches the little boy with a \ - document. The Magistrate steps forward and \ - stops him. ~Sydney is much too busy to bother \ - with that.~ the Magistrate says."; - } - else { - if (i==5) - "^An impatient diplomat shouts out, \ - ~Bring out the King!~ The Magistrate smiles \ - and says, ~Did anyone make a petition for \ - a royal presentation?~ The crowd is silent. \ - ~I didn't think so.~"; - } - ], - has animate; - -! (a short code-space saving routine) -[ magroutine1 - w - ; - - ! remove player's possessions - while (child(player) ~= 0) { - give child(player) ~worn; - move child(player) to Palace_office; - } - if (w == 1) - print "You move quickly, but from nowhere, two royal palace \ -guards appear and wrestle you to the ground. ~Lock this \ -fanatic up!~ "; - if (w == 2) - print "You start to chant, but the magistrate has sharp \ -ears, and recognizes your magic! With a quick signal, \ -two royal palace guards appear and wrestle you to the ground. \ -~Lock this babbler up!~ "; -print "the Magistrate says with a sneer. The guards \ -strip you of your possessions and drag you down to the royal \ -dungeons.^"; - PlayerTo(prison_cell); - give prison_cell ~open locked; - rtrue; -]; - - - -Object Sydney "young child" - with name "child" "boy" "sydney", - ! describe "There is a young boy here", - description [; - print "A little boy dressed in uncomfortable-looking frilly clothes"; - if (flat_hat in self) - ". He's wearing a small red hat."; - else "."; - ], - before [; - Cast: - if (the_spell_was == foblub_spell or espnis_spell) -"The boy seems to miss the subtle nuances of your sermon. All \ -that happens is that now he seems even more nervous than before."; - ], - life - [; - Ask, Tell: - if (self has general) - "Young Sydney Flathead only tucks his head lower and whimpers."; - else - "Young Sydney Flathead only shrugs."; - Answer: - if (special_word=='hello' or 'hi') { - if (self hasnt general) - "Young Sydney Flathead doesn't respond -- he seems \ -to find you a bit frightening."; - else - "~Hello,~ the young lad says, somewhat shyly."; - } - "Young Sydney Flathead only stares at you."; - Attack, ThrowAt: - give self ~general; - deadflag = 1; - "The young boy screams in terror as you move to threaten him \ - (shame on you!). Several guards appear out of nowhere, and club \ - you to death for attempting regicide."; - Give: - if (noun==stuffed_toy) { - give self general; - move stuffed_toy to self; - "Tentatively, the boy takes the stuffed toy. You \ -catch the glimpse of a sad smile as he holds it tightly."; - } - "Young Sydney cowers and shakes his head."; - Order: - if (action==##Give) { - if (noun==flat_hat) { - if (self has general) { - remove Magistrate; - remove self; - move flat_hat to player; - move brown_sphere to player; - "Little Sydney smiles and removes the hat and \ -hands it to you. You notice his head is actually round, and the hat \ -was cleverly hiding this.^^\ -~He's no Flathead!~ someone in the audience hall yells out. A distinct \ -murmur of discontent rises from the crowd. The Magistrate slowly \ -backs away. ~Wait! I can explain!~ the Magistrate \ -starts, but soon runs screaming out of the hall, with several angry diplomats \ -hot on his heels!^^\ -~Thank you, kind sir,~ someone behind you says. You turn around. \ -Little Sydney is happily in the arms of a kindly-looking couple. The woman \ -continues. ~Our son was kidnaped, a little while ago. We've \ -been waiting here, hoping to get him back. You did a very brave thing.~ \ -The man steps forward holding some small object. \ -~A priest fellow, such as yourself, told me a long time \ -ago that one day, someone would help us in our time of need, and that \ -I should give him this.~ He gives you a strange round object. \ -~It's the least we can do.~ he says. The couple leaves the hall, \ -with the little boy laughing in their arms."; - } - else "Little Sydney shrinks back and holds on to his \ -hat. He stares at you fearfully."; - } - "Little Sydney shrinks back and stares at you fearfully."; - } - "Sydney shakes his head fretfully."; - ], - has animate transparent; - - - -! ***************** -! scrolls/spells -! ***************** - -Object crumpled_scroll "crumpled scroll" Palace_cabinet - class scroll_class, - with name "crumpled", -; - -Object ledak_spell "detect forgery" crumpled_scroll - class spell_class, - with name "ledak", - magic [; - if ((location==Palace_Audience) && - (Sydney in Palace_Audience) && - ((second == 0) || (second == Sydney))) { -"You notice a soft yellow glow around the young boy. \ -The glow fades."; - } - if (second==0) - "The place appears to be free of forgeries, at the \ -moment."; - else { - if (second==player) "You appear to be the geniune thing."; - CDefArt(second); - " appears to be the genuine thing."; - } - ], -; - -! **************** -! Misc objects -! **************** - -Object flat_hat "red hat" Sydney - with name "hat" "red", - description "A little red hat with no brim. It's unusually \ -flat at the top.", - before [; - Wear: - "It's too small for your head."; - ], - size 10, - has clothing; - -Object brown_sphere "brown sphere" - class sphere_class, - with name "brown", - description "A tiny perfect brown sphere, made of some strange \ -unknown metal.", -; - -! THIEF'S magic door -! Contains an unusual amount of properties... -Object magic_door "strange door" - with name "door" "strange", - !weight 20, - size 30, - description [; - print "A small door labeled ~STAIRS~, of all \ -things"; - if (self hasnt static) - ". Oddest of all is the fact that it isn't \ -attached to anything!"; - else "."; - ], - door_dir [; - if (self has static) { - if (location == Skyscraper) return e_to; - else return w_to; - } - ], - door_to [; - if (self has static) { - if (location == Skyscraper) return THIEF_Bottom_of_staircase; - else return Skyscraper; - } - ], - found_in [; - if (self has static) { - if (location == Skyscraper or THIEF_Bottom_of_staircase) - rtrue; - else rfalse; - } - ! else rtrue???? - ], - describe [; - ! we force a describe routine here, rather than use - ! when_open/closed due to the results that happen - ! after an obj has been moved (which the door will be). - if (self hasnt static) - "^There's an unattached door lying on the ground here."; - else { - if (self has open) { - print "^There's an open door to the"; - if (location == Skyscraper) - " east."; - else - " west."; - } - else { - print "^There's a closed door"; - if (location == Skyscraper) - " in the eastern wall."; - else - " to the west."; - } - } - ], - time_left 0, - time_out [; - ! after timeout -- Thief locks the door - give self ~open locked; - if ((location == THIEF_Bottom_of_staircase) || - (location == THIEF_Ent) || - (location == THIEF_Foyer) || - (location == THIEF_Lounge) || - (location == THIEF_Storeroom)) { - print "^Suddenly, out of the shadows springs a \ -gentleman dressed in black! ~How did you get in here!~ he \ -cries. Quicker than lightning, he envelopes you in his dark \ -cape, which seems to fade into shadows, leaving you in...^"; - PlayerTo(Skyscraper); - rtrue; - } - if (location == Skyscraper) - "^Out of the shadows, a gentleman dressed in \ -black appears! He sees the door to the east and seems \ -somewhat annoyed. ~Much too busy for unexpected guests,~ \ -you hear him say as he slips through the door and closes \ -it behind him. Moments later you hear the sound of a lock \ -closing on the other side.^"; - ], - before [; - Enter: - if (self has static) { - if (location == Skyscraper) <>; - else <>; - } - else - "Since the door doesn't currently lead anywhere, \ -entering it seems pointless."; - Open: - if (self hasnt static) - "The door opens onto...thin air. Without a \ -doorway to attach to, it's not terribly useful, it appears."; - if ((self has static) && (self hasnt open) && - (self hasnt general)) { - give self general; - give self open; - StartTimer(magic_door,15); - "The door opens. There's a dark chamber \ -on the other side, which seems all but impossible, given \ -that the wall previously appeared solid!"; - } - Close: - if (self hasnt static) - "You close the door, which at this moment \ -means you turn the movable door to a new angle. Without a \ -doorway to attach to, it's not terribly useful, it seems."; - Drop: - if (location == Skyscraper) { - move self to Skyscraper; - give self static; - Skyscraper.e_to = magic_door; - THIEF_Bottom_of_staircase.w_to = magic_door; - "As you drop the door, it leaps off the ground \ -and flies towards the eastern wall! Amazingly, it seems to \ -attach itself to the eastern wall!"; - } - ], - has door openable; - -