+++ /dev/null
-
-! **************************************************************
-! GURTH.INF -- Add-on for SPIRITWRAK
-! (all rights reserved, copyright 1996, D. Yu
-! **************************************************************
-
-! (author note to self -- Gurth currently isn't going to be too
-! exciting -- I'm running out of .z5 code space. The main
-! planned features are:
-! 1) The abandoned house with the oven for baking the cake
-! 2) A deep forest area somewhat north of the city where
-! a sphere piece will be hidden
-
-! The string array for labels on the GUE Oven dial (may be changed)
-Array OVEN_settings table [;
- "Warm Soup";
- "Hot Chocolate";
- "Pizza";
- "Cake";
- "Fish";
- "Roast Chicken";
- "Baked Potato";
- "Rib Roast";
- "Thermo-nuclear Flash";
-];
-
-Object GURTH_GUSStop "Gurth City Streets"
- with description "A foggy sky covers the ever-busy city of \
-Gurth. A road heads southeast into a larger \
-portion of the city, and stairs lead down here.",
- name "fog" "sky" "road" "stairs",
- d_to GURTH_GUSStation,
- se_to GURTH_NDistrict,
- has light;
-
-Object umbrella "umbrella" GURTH_GUSStop
- with name "umbrella",
- description [;
- if (self has open)
- print "An open";
- else print "A closed";
- " black-cloth umbrella.";
- ],
- !weight 25,
- size 16,
- article "an",
- before [;
- Open:
- if (parent(self) == player) {
- give self open;
- umbrella.size = 20;
- "You snap the umbrella open.";
- }
- else "You need to be holding the umbrella to do that.";
- Close:
- if (parent(self) == player) {
- give self ~open;
- umbrella.size = 16;
- "You snap the umbrella closed.";
- }
- else "You need to be holding the umbrella to do that.";
- ],
- has openable;
-
-Object GURTH_NDistrict "North District"
- with description "Probably the safest district in Gurth, the \
-North District is mostly cobblestone roads and barricaded \
-buildings. A main road heads south, or forks northwest and \
-northeast.",
- name "cobblestone" "buildings" "road",
- nw_to GURTH_GUSStop,
- s_to GURTH_MDistrict,
- ne_to GURTH_Forest,
- has light;
-
-Object GURTH_Forest "Forest Edge"
- with description "Dark forest meets dark city outskirts here. \
-The only exit is along an old path to the southwest -- \
-the forest is too thick for travel otherwise. \
-Rain falls periodically from a dark stormy sky.",
- name "forest" "path" "rain",
- sw_to GURTH_NDistrict,
- each_turn [;
- if (random(10) < 4) {
- "^A rumble of thunder booms overhead.";
- }
- ],
- before [;
- Listen:
- if (Treant in GURTH_Forest)
- "You hear muffled cries for help from \
-somewhere inside the log cabin!";
- ],
- has light;
-
-Object storm1 "storm" GURTH_Forest
- with name "storm" "clouds" "sky" "dark",
- description "It does look a bit stormy overhead.",
- before [;
- Cast:
- if (the_spell_was == shazok_spell) {
- print "A bolt of lightning rips down from the \
-clouds overhead as you finish your chant! It strikes ";
- if (Treant in GURTH_Forest) {
- print "the angry treant! \
-A portion of its top branches catch fire! Howling in pain, \
-the creature runs off into the woods and disappears!";
- SaveWoodsman();
- rtrue;
- }
- else {
- deadflag = 1;
- "you, frying you to a crisp!";
- }
- }
- ],
- has scenery;
-
-Object Treant "angry treant" GURTH_Forest
- with name "treant" "angry" "blighted",
- description "Treants are basically animated trees. They \
-are considered mythical creatures, usually solitary and quite \
-rare. This particular treant looks similar to a great elm tree. \
-You notice that it seems covered with spots of some sort of \
-blight.",
- article "an",
- each_turn [ i ;
- i = random(20);
- print "^The treant ";
- if (i > 10) {
- if (WOOD_House.number == 3) {
- WOOD_House.number = 4;
- remove self;
- "pounds the cabin, and it collapses into \
-splinters! The treant grabs a hapless woodsman from the \
-wreckage and stalks off into the forest with his victim!";
- }
- else {
- WOOD_House.number = WOOD_House.number + 1;
- "hammers on the house and you hear a \
-crack! The cabin sustains some damage!";
- }
- }
- else "angrily attacks the wood cabin, which shakes \
-with the continued blows.";
- ],
- before [;
- Cast:
- if (the_spell_was == egdelp_spell) {
- deadflag = 1;
- "The treant is covered with a waxy buildup, which \
-washes off in the rain. The treant, already \
-rather incensed, turns his attentions to you and mauls you \
-with two giant branches/arms.";
- }
- if (the_spell_was == throck_spell) {
- deadflag = 1;
- "The treant grows a bit bigger. His current bad \
-mood seems to increase proportionately! He turns his attentions \
-to you and pounds you with two huge branches/arms.";
- }
- if (the_spell_was == taclor_spell) {
- print "The treant seems to turn a shade of deep \
-green, and the patches of blight disappear! The ancient tree \
-creature pauses, regards you solemnly, and then walks \
-off into the forest.";
- SaveWoodsman();
- rtrue;
- }
- ],
- has animate;
-
-Object WOOD_House "log cabin" GURTH_Forest
- with name "cabin" "log" "house",
- description [;
- print "A small house built of logs";
- switch (self.number) {
- 0: print ".";
- 1: print ". It looks slightly damaged.";
- 2: print ". It looks partially damaged, the roof logs \
-are broken in several places.";
- 3: print ". It looks very damaged. One wall is \
-nearly broken through.";
- default: print " that has collapsed into little more \
-than a pile of broken logs.";
- }
- if (self has general)
- " You notice some area of wood have spots of wax \
-on them.";
- new_line;
- rtrue;
- ],
- before [;
- Enter:
- if (Treant in GURTH_Forest)
- "The angry treant seems to be in the way.";
- "It's just a tiny log cabin that probably \
-has nothing interesting inside.";
- Cast:
- if (the_spell_was == egdelp_spell) {
- give self general;
- "The outside of the cabin is now covered \
-with spots of waxy buildup.";
- }
- ],
- number 0,
- has static;
-
-[ SaveWoodsman ;
- remove Treant;
- move red_sphere to player;
- "^^Moments later, a woodsman appears from the battered log \
-cabin. ~Much thanks, sir,~ he says. ~Appears I mistook that \
-treant for a dead tree and tried to cut it down. Can't say \
-he took it too well.~ he says sheepishly. ~Say, you don't \
-look like you're from around these parts. Kinda like this \
-funny thing I found in the woods the other day.~ He hands \
-you a strange round object. ~Maybe you know what to do with \
-it?~ He hefts a small hatchet over his shoulder. ~Well, \
-back to do a little logging,~ he says, as he walks off into the \
-deep forest, whistling.";
-];
-
-Object GURTH_MDistrict "Market District"
- with description "The famous Gurth Market District is as noisy, \
-crowded, and dangerous as it ever was. A cobblestone road heads \
-north and south here.",
- name "cobblestone" "road",
- n_to GURTH_NDistrict,
- s_to GURTH_SDistrict,
- e_to "~Get out 'o me way!~ some rude fellow says as you \
-try to pass.",
- w_to "~No push'n, no shov'n!~ some old hag screams at you, \
-and promptly shoves you back.",
- each_turn [;
- if ((random(10) < 5) && (self hasnt general)) {
- give self general;
- move c7 to self;
- "^A clumsy hawker stumbles into you as he \
-crosses the street, hustling off without so much as an \
-apology. You notice he dropped something in his hurry.";
- }
- ],
- has light;
-
-Object c7 "coin" class coin_class;
-
-Object GURTH_SDistrict "South District"
- with description "The general gloomy atmosphere is more noticeable \
-than ever here, in the extremely dangerous South District. The \
-general area is filled with boarded-up houses, and a few shifty-eyed \
-characters are the only people milling about here. A road leads \
-north. To the east is an abandoned flat, probably in better shape \
-than the rest.",
- name "houses" "characters" "people" "road" "flat",
- n_to GURTH_MDistrict,
- s_to [;
- print "You wander down ";
- if (random(20) == 5) {
- deadflag = 1;
- "a back alleyway, and are immediately \
-assaulted by a group of vicious thugs, who batter you senseless.";
- }
- else "an alleyway, find a dead-end, and return \
-here.";
- ],
- w_to [;
- print "You wander down ";
- if (random(20) == 5) {
- deadflag = 1;
- "a sidestreet, and are immediately \
-assaulted by a group of vicious thugs. One of them seems to \
-recognize you. ~That's the Preacher-man who got Davey arrested! \
-Let's show 'em what we think'o that!~ They proceed to beat you senseless.";
- }
- else "a sidestreet, find a dead-end, and return \
-here.";
- ],
- e_to GURTH_House,
- has light;
-
-Object GURTH_House "Front of House"
- with description "You're standing at the rotting front steps of \
-a small flat. The front door to the east has been battered down and \
-you could probably walk right in, or return to the street to \
-the west.",
- name "street" "steps" "flat",
- w_to GURTH_SDistrict,
- e_to House_Ent,
- in_to House_Ent,
- has light;
-
-Object GURTH_House2 "Front of House"
- with description "You're standing near a small construction site. \
-A city street lies west, and a construction ditch is east.",
- name "street" "ditch",
- w_to [;
- deadflag = 1;
- "You step into the street, and several locals \
-give you strange looks. The surrounding neighborhood seems \
-new and busy -- various construction sites mark the \
-work of enterprising shop-keepers of the area.^^\
-~Watch out there!~ someone cries. A sudden \
-pile of bricks falls from a nearby scaffolding, and \
-crushes you.";
- ],
- e_to Construction_site,
- has light;
-
-
-Object bad_brick "dusty brick" GURTH_House2
- with name "brick" "dusty" "old",
- initial "An old discarded brick lies nearby.",
- description "An old brick, slightly cracked in several places.",
- size 15,
- time_left 0,
- time_out [;
- ! Construction Worker appears
- if ((good_brick in Construction_site) ||
- ((good_brick notin Construction_site) &&
- (bad_brick notin Construction_site))) {
- remove good_brick;
- foundation_wall.number = 1;
- }
- else {
- remove bad_brick;
- foundation_wall.number = 2;
- }
- if (location == Construction_site) {
- print "^From behind some scaffolding, a construction \
-worker appears. He walks to a part of the ditch and starts to \
-make some finishing touches on part of a low wall. \
-He finds a brick nearby and applies it to the wall with \
-a good patch of mortar.";
- if (foundation_wall.number == 1)
-" Brushing himself off, he walks off \
-and is soon out of sight.";
- else
-" He looks at the patch somewhat \
-unsatisfied, but shrugs, and walks off, soon out of sight.";
- }
- else
- "^You hear some brief noises from the east.";
- ],
-;
-
-Object Construction_site "Construction Site"
-with description "This is a long square ditch that is \
-likely to be the starting point for some building. It is \
-framed by wood slats and short brick walls. The only way \
-out is to the west.",
- name "ditch" "slats" "wood",
- w_to GURTH_House2,
- has light;
-
-Object good_brick "thick brick" Construction_site
- with name "brick" "thick",
- !weight 30,
- size 15,
- initial "A thick brick lies nearby.",
- description "A thick brick, solid as a rock.",
-;
-
-Object foundation_wall "portion of wall" Construction_site
- with name "wall" "foundation" "portion" "hole" "recess",
- initial "You notice a foundation side wall \
-in the ditch.",
- number 0,
- size 15,
- description [;
- switch (self.number) {
- 0: "It looks somewhat unfinished. Part of it \
-is open into a dark recess in the side of the ditch.";
- 1: "The wall is a finished work of brick and \
-mortar. It looks quite strong.";
- 2: "The wall is a finished work of brick and \
-mortar. You see a spot where the brickwork seems a bit \
-lower in quality.";
- }
- ],
- before [;
- Receive:
- if (self.number > 0)
- "The wall is currently sealed shut.";
- else {
- move noun to self;
- print "You put ", (the) noun, " into the ";
- "small hole in the wall.";
- }
- Search, LetGo:
- if (self.number > 0)
- "The wall is currently sealed shut.";
- Attack:
- if (self.number == 0) {
- deadflag = 1;
- "You kick at the wall. Unfortunately, it wasn't \
-all that stable, and the wall falls apart, burying you under a \
-pile of loose bricks.";
- }
- if (self.number == 1) {
- remove foundation;
- print "You try to break the wall, but only end up \
-hurting your hand. ";
- }
- else {
- give foundation general;
- print "You knock on the weak portion of the \
-wall, and produce a slight crack, that no doubt will \
-cause the homeowners some worry in the future. ";
- }
-! give GURTH_House ~general;
- while (child(player) ~= 0) remove child(player);
-! while (child(GURTH_House) ~= 0) remove child(GURTH_House);
-print "The wall seems to start to glow a purple color, and you \
-step back, to find your surroundings replaced by cold natural \
-cave walls.^";
- Mystical_Cave.number = Mystical_Cave.number + 1;
- PlayerTo(Mystical_Cave);
- rtrue;
- ],
- has static container open;
-
-Object House_Ent "Entrance Room"
- with description "A bare room, with peeling paint and rotting, \
-water-stained walls. There's a room to the east, and a rickety \
-stairway down. The outdoors lie west.",
- name "paint" "stairway" "outdoors",
- e_to House_Kitchen,
- d_to House_Basement,
- w_to GURTH_House,
- out_to GURTH_House,
- has light;
-
-Object House_Basement "Basement"
- with description "A musty, smelly basement. Stairs head up.",
- name "stairs",
- u_to House_Ent,
- before [;
- Smell: "It's smells musty down here, as though \
-the place has been unused for quite some time.";
- ],
-;
-
-Object House_switchbox "dusty metal box" House_Basement
- with name "dusty" "metal" "box",
- when_closed "There's a dusty metal box attached to the wall here.",
- when_open [ x;
- print "There's an open metal box attached to the wall here. ";
- x = children(self);
- if (x == 0) "It seems to be empty.";
- print "It contains:^";
- x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
- WriteListFrom (child(self), x, 1);
- rtrue;
- ],
- capacity 3,
- size 10,
- description "A dusty metal box, attached to the wall.",
- before [;
- Open, Push, Pull, Turn, Touch:
- if (GHOST in House_Basement)
- "Slowly, but quite deliberately, the zombie \
-prevents you from getting near the box.";
- ],
- has static container openable;
-
-
-Object wire "thin wire" House_switchbox
- with name "wire" "thin",
- ! initial "Inside the box is a loose wire.",
- description "A thin stiff string of metal.",
- !weight 2,
- size 1, ! must fit in subway gate slot...
- before [;
- Cast:
-if ((the_spell_was == huncho_spell or luncho_spell) &&
- (self hasnt general))
-"Your chant goes unanswered.";
- Take, Push, Pull, Touch, Rub, Squeeze:
- if (self hasnt general) {
- if (rubber_gloves has worn) {
- if (action==##Take) give self general;
- print "As you touch the wire, you notice a \
-bright spark! Good thing you were wearing rubber gloves! ";
- }
- else {
- print "As your fingers get near the wire, \
-a bright spark of electricity ";
- if (random(10) < 4) {
- deadflag = 1;
- move GHOST to House_Basement;
-"arcs into your hand! The results are quite shocking, I'm afraid.";
- }
- else
-"flashes near your fingers! You pull back just in time.";
- }
- }
- ],
-;
-
-Object foundation "foundation" House_Basement
- with name "foundation" "break" "hole",
- initial "A large break in the wall exposes a good portion of \
- the house's foundation.",
- description "Water damage, or simply age, has exposed a large \
- hole in one of the walls, through which you can see exposed \
- wood and brick, part of the foundation of the house.",
- before [;
- Receive:
- "No need to put things in the foundation like that.";
- Search:
- if (self hasnt general)
- "You briefly search the decaying foundation, but find nothing.";
- else {
- print "You dig around in a familiar spot in the hole ";
- give self ~general;
- if (children(foundation_wall) == 0)
- "but find nothing.";
- Achieved(17);
- while (child(foundation_wall) ~= 0)
- move child(foundation_wall) to House_Basement;
- "and find something!";
- }
- ],
- has static;
-
-Object House_Kitchen "Kitchen"
- with description "You're in the kitchen, by the looks of things. \
-Some broken cabinets are on the wall. Light from partially boarded-up \
-windows lets you see the rotting wood floors. Rooms lie to the \
-north and west.",
- name "cabinets" "windows" "wood",
- w_to House_Ent,
- n_to House_Pantry,
- has light;
-
-! (An oven, a typical inform object)
-Object OVEN "GUE-Automatic oven" House_Kitchen
- with name "oven" "GUE-Automatic",
- when_closed "Strangely untouched and undamaged, a GUE-Automatic oven is \
-sitting closed in a corner of the room.",
- capacity 1,
- when_open [ x;
- print "Strangely untouched and undamaged, a GUE-Automatic oven is \
-sitting open in a corner of the room.";
- x = children(self);
- if (x == 0) " It seems to be empty.";
- print " It contains:^";
- x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
- WriteListFrom (child(self), x, 1);
- rtrue;
- ],
- size 15,
- description "A FrobozzCo best-seller -- this small green oven is \
-perfect for those adventurers who want a home-cooked meal, but are short \
-on time and space. There's a dial and a button \
-on the top.",
- before
- [ x ;
- Open:
- if (self hasnt open) {
- give self open;
- print "You open the oven, ";
- x = children(self);
- if (x==0) "which is empty.";
- print "revealing:^";
- x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
- WriteListFrom (child(self), x, 1);
- rtrue; }
- ],
- add_to_scope oven_dial oven_button,
- has static container openable;
-
-Object oven_dial "oven dial"
- with name "dial",
- number 5,
- description [;
- print "A round dial with small printed words. A line on the \
-oventop marks which dial setting is currently active, which at the \
-moment is ~", (string) OVEN_settings-->(oven_dial.number); "~.";
- ],
- before [;
- Turn:
- oven_dial.number = oven_dial.number + 1;
- if (oven_dial.number > 9) oven_dial.number = 1;
- print "The line is now pointing to ~", (string) OVEN_settings-->(oven_dial.number);
- "~ on the dial.";
- SetTo:
- "The dial has somewhat unusual \
-settings. You'll need to turn to the one you want.";
- ],
- has static;
-
-Object oven_button "oven button"
- with name "button" "black",
- number 0,
- description "A small round black button on the top of the oven.",
- before [;
- Push:
- if (OVEN has open)
- "There is an irritated buzz.";
- else {
- print "You press the button and hear a low spinning noise. \
-Suddenly, the oven makes a ";
- if (oven_dial.number == 9) {
- ! Ye old nuclear flash setting
- if (children(OVEN) ~= 0)
- remove child(OVEN);
-"tremendous 'bang', and nearly springs off \
-the floor! A bright flash of light seems to originate from somewhere \
-inside the oven! Then, just as suddenly, everything is quiet again.";
- }
- ! check object in oven
- ! if obj exists, check for edible
- ! or cake, mutate appropriately.
- if (children(OVEN) ~= 0) {
- if ((Baking_Pan in oven) && (cake in Baking_Pan)) {
- ! we're no doubt cooking the cake again.
- ! as a nice feature of the GUE auto, if the cake
- ! was undone, and the oven setting == 4, give
- ! the cake the 'done' result
- if ((cake.number == 1) && (oven_dial.number == 4))
- cake.number = 0;
- ! otherwise, nothing changes
- }
- if ((Baking_Pan in oven) && (dough in Baking_Pan)) {
- ! first, check oven setting (too cold or too hot)
- ! if setting ok, check number of times folded
- ! (too few, too many). Move 'cake' to pan, make
- ! dough child of cake, and set the 'result' number
- ! of cake accordingly (0, ok, 1 underdone, 2
- ! overdone, 3 underfolded, 4 overfolded)
- ! (assumption is that dough will be only thing
- ! in pan [add's are trapped by dough]
- move dough to cake; ! Zen cooking...
- move cake to Baking_Pan;
- if (oven_dial.number == 4) {
- if (dough.number < 83)
- cake.number = 3;
- if (dough.number > 83)
- cake.number = 4;
- else cake.number = 0; ! well done baker
- }
- else {
- if (oven_dial.number < 4)
- cake.number = 1;
- if (oven_dial.number > 4)
- cake.number = 2;
- }
- }
- }
-"a loud 'pop' and nearly springs off \
-the floor! Then, just as suddenly, everything is quiet again.";
- }
- ],
- has static;
-
-Object House_Pantry "Pantry"
- with description "This was once probably a pantry of some \
-sort. It's now a bare closet-sized room. The exit is south.",
- s_to House_Kitchen,
- has light;
-
-Object Baking_Pan "baking pan" House_Pantry
- with name "pan" "baking",
- description "It's a nice round flat-bottomed ceramic pan.",
- capacity 20,
- !weight 10,
- size 14,
- before
- [ i ;
- Mix:
- if (children(Baking_Pan) == 0)
- "There doesn't seem to be anything in the pan to mix.";
- else {
- if (cake in Baking_Pan)
- "You can't mix anything with the already baked cake in the pan.";
- ! if the dough is already in the pan, add the
- ! 'new children', if any
- if (dough in Baking_Pan) {
- i = 0;
- move dough to OVEN; ! Temp
- while (child(Baking_Pan) ~= 0) {
- i = i + 1;
- move child(Baking_Pan) to dough;
- }
- move dough to Baking_Pan;
- if (i == 0)
- "You need to add something to the pan if you \
-want to mix something new into the dough.";
- "You mix in the new ingredients into the dough.";
- }
- ! Minimally, if the flour, butter and egg are in the
- ! pan, 'dough' will be produced
- if ((flour notin Baking_Pan) ||
- (corbie_egg notin Baking_Pan) ||
- (butter notin Baking_Pan))
- "You mix the contents of the pan around a bit, but \
-some things don't quite coagulate, and the contents remain unmixed.";
- else {
- while (child(Baking_Pan) ~= 0) {
- move child(Baking_Pan) to dough;
- }
- move dough to Baking_Pan;
- "You start mixing. Like magic, in short time you \
-have a doughy mixture in the pan.";
- }
- }
- LetGo:
- if (noun == dough or cake) {
- CDefArt(noun); " is stuck fast in the pan and \
- you can't get it out.";
- }
- else {
- ! we've modified certain ingredient objs that we want \
- ! to 'preserve' in the pan.
- if ((noun == flour) || (noun == sugar_cube) ||
- (noun == baking_powder) || (noun == butter) ||
- (noun == corbie_egg) || (noun==dornberries))
- "It's somewhat scattered about in the pan right \
-now, and you can't quite remove it cleanly.";
- }
- Receive:
- if (cake in self)
- "The cake takes up the entire space in the pan.";
- ! -- trap and nicely parse putting
- ! ingredients in pan, will require modifying
- ! 'short_name's of various ingredients.
- if (noun == flour) {
- flour.short_name = "pile of flour";
- move flour to Baking_Pan;
- flour.description = "A heap of white flour.";
- "You break open the bag and add the flour to the pan.";
- }
- if (noun == sugar_cube) {
- sugar_cube.short_name = "quantity of sugar";
- move sugar_cube to Baking_Pan;
- sugar_cube.description = "Some sugar scattered about.";
- "You crumble the sugar cube into the pan.";
- }
- if (noun == baking_powder) {
- baking_powder.short_name = "small sprinkling of baking powder";
- move baking_powder to Baking_Pan;
- baking_powder.description = "A small pile of very fine white powder.";
- "You open the packet and add the powder to the pan.";
- }
- if (noun == corbie_egg) {
- corbie_egg.short_name = "bit of raw egg";
- move corbie_egg to Baking_Pan;
- corbie_egg.description = "The yolk and the white parts from an egg.";
- "You crack the egg and drop the gooey contents into the \
- pan, discarding the shell.";
- }
- ],
- has container open;
-
-Object pan_sticker "sticker" Baking_Pan
- with name "sticker",
- initial "There's a sticker stuck to the bottom of the pan.",
- description "\
-Frobozz Magic Baking Pan^^\
-HELLO, BAKER!^^\
-To mix ingredients placed in pan, simply say 'MIX PAN'. \
-Baked goods should be removed with a Frobozz Magic \
-Spatula.",
- !weight 1,
- size 5,
-;
-
-Object dough "lump of dough"
- with name "dough",
- number 0, ! equals the number of times folded
- !weight 10,
- size 14,
- description "It looks like a nice beige lump of uncooked dough.",
- before [;
- Eat, Taste:
- if (action==##Eat) remove self;
- "Ugg. Raw dough.";
- Cast:
- if (the_spell_was == gloth_spell) {
- dough.number = dough.number + 83;
- if (dough.number > 500) dough.number = 500;
- "As you speak the chant, the dough seems to \
-twinkle! With a sudden puff of flour, the dough spins and \
-neatly kneads itself many times!";
- }
- Fold:
- dough.number = dough.number + 1;
- print "You roll up your sleeves and start kneading. \
-The dough ";
- if (dough.number > 500) dough.number = 500;
- if (dough.number < 50)
- "folds easily.";
- if (dough.number > 200)
- "has the consistency of a soft rock.";
- "is pliable.";
- ],
- has edible;
-
-Object cake "cake"
- with name "cake",
- number 0,
-! number = condition:
-! 0 ok, 1 undercooked, 2 overck, 3 underfld, 4 overfld
- description [;
- print "It's a ";
- switch (cake.number) {
- 1: "somewhat raw-looking cake.";
- 2: "nice-looking cake, except that it \
-looks a little burned.";
- default: "nice-looking cake.";
- ! The player will have to taste the cake to check the
- ! 'fold quality'.
- }
- ],
- before [;
- Eat:
- remove self;
- "Not bad. Unfortunately, it looks like you can't have \
-your cake and eat it too.";
- Taste:
- print "You taste a tiny bit of the cake. ";
- switch (cake.number) {
- 1: "It tastes a bit underdone.";
- 2: "It tastes a little burned.";
- 3: "It's a little too soft.";
- 4: "It's a bit tough.";
- default: "It tastes great!";
- }
- ],
- !weight 10,
- size 14,
- has edible;
-
-
-
-! ***************
-! animated beings
-! ***************
-
-Object GHOST "frightening zombie" House_Basement
- with name "zombie" "frightening",
- description "A frightening gaunt member of the \
-living dead, with pale skin, and even paler eyes.",
- before [;
- Cast:
- if (the_spell_was == wigro_spell) {
- remove self;
- "The zombie crumbles into dust, turned.";
- }
- ],
- life [;
- ThrowAt:
- if (noun==holywater) {
- remove holywater; remove self;
- "The vial breaks into shards, scattering \
-holy water all over the zombie. The zombie shrieks, and \
-crumbles into dust.";
- }
- Attack: "Your attack knocks it back, but it \
-seems completely unharmed, somehow!";
- Give:
-if (noun==rubber_gloves) {
- move wire to House_Basement;
- move rubber_gloves to House_Basement;
- give rubber_gloves ~worn;
- give wire general;
- give House_switchbox open;
- remove self;
- "The zombie seems to regard the gloves, and slowly puts \
-them on. It proceeds to open the metal box and remove a \
-loose wire, producing a few sparks in the process. Finally, \
-it places the loose wire on the floor, satisfied. It \
-slowly crumbles into dust, but you just manage to hear, \
-~Thanks, I've been trying to get rid of that wire for ages,~ \
-in the faintest of whispers.";
-}
- default: "Zombies are usually not very responsive to \
-those among the living. This one is no exception.";
- ],
- has animate;
-
-! ***************
-! spells/scrolls
-! ***************
-
-Object gray_scroll "gray scroll" House_Basement
- class scroll_class,
- with name "gray",
-;
-
-Object tossio_spell "turn granite to pasta" gray_scroll
- class spell_class,
- with name "tossio",
- magic [;
- if ((location == THIEF_Storeroom) &&
- (second == w_obj) && (THIEF_Storeroom hasnt general)) {
- give THIEF_Storeroom general;
- move pasta to THIEF_Storeroom;
- move c50 to THIEF_Storeroom;
- "As you finish the chant, the granite wall is replaced \
-by a large mass of pasta. A hidden section of the room is revealed, \
-along with the mass of gold coins it was holding! The coins spill \
-out, and nearly flood the room.^^In a flash, a large group of \
-financial nymphs appear on the scene. ~It looks like we found the \
-missing GUS earnings,~ one nymph says to another. Producing large \
-sacks, they quickly collect the mass of coins and disappear with a \
-twinkle.^^Moments later, a single coin falls out of a crack in the \
-previously hidden alcove, rolling to a stop near your feet.";
- }
- "Your chant goes unanswered. I guess you need pure granite.";
- ],
-;
-
-! ***************
-! misc items
-! ***************
-
-Object red_sphere "red sphere"
- class sphere_class
- with name "red",
- description "A tiny perfect red sphere, made of some strange \
- unknown metal.",
-;