2 ! **************************************************************
5 ! Frostham locations in SPIRITWRAK, included in spirit.inf
6 ! (Do not compile and/or use separately!)
7 ! **************************************************************
9 Object FROSTHAM_Outskirts "Frostham Outskirts"
11 print "You are at the northern outskirts of Frostham. \
12 The city proper is to the south. A few \
13 snow covered residences are nearby. \
14 A trail leads into a valley to the north";
15 if (self hasnt general) {
17 ".^^The last time you saw Frostham was before you \
18 entered the Monastery -- many years ago at least. \
19 Oddly, it seemed bigger and less desolate then.";
23 name "city" "snow" "residences" "trail" "valley",
26 cant_go "You walk around the local area a bit, finding \
27 nothing of interest.",
30 Object FROSTHAM_2 "Frostham"
31 with description "You are in Frostham City, the famous winter-\
32 lover's haven. The once booming ski vacation spot seems \
33 to be a bit more run-down than in times past. \
34 The city thins out towards the north, while \
35 another section of town is to the south. To the west is \
36 a large wood structure. To the southwest is a small \
37 building. To the southeast is another small building, possibly a \
39 name "wood" "structure" "building" "store",
40 n_to FROSTHAM_Outskirts,
42 sw_to FROSTHAM_Governer1,
43 s_to FROSTHAM_GUSStop,
45 cant_go "You walk around the local streets a bit, finding \
46 nothing of interest.",
48 if (GROC_hall1 has general)
50 ! Why check the grocery hallway here?
51 ! Conceptually, if the player dies in the hallway (rather
52 ! difficult, but possible by swearing, for example),
53 ! the hallway should 'adjust' itself to the new weight.
54 ! I simply check this here, because the player must go
55 ! this way to reach the hallway for a second time.
59 Object FROSTHAM_Store "General Store"
61 print "This appears to be a small grocery store, \
62 strangely abandoned at the moment. Shelves line the walls, \
63 although, since no one is minding \
64 the store, the current stock seems to be a bit depleted. \
65 You notice an exit south marked ~EMPLOYEES ONLY~ that \
67 if (GROC_hall1.number == 1)
68 print "some hallway.";
71 " The way back out is to the northwest.";
73 name "stock" "shelves",
76 if (GROC_hall1.number == 1) return GROC_hall1;
78 "You pull back before falling into what appears to be a deep \
79 pit of some sort beyond the south exit.";
86 print "You hear a grinding noise from behind \
95 Take, Pull, Turn: "It's rather heavy.";
96 Push: "It's heavy, but you manage to make it slide \
97 along the floor a bit.";
99 if (location == FROSTHAM_Store && second == nw_obj)
100 "A portion of the door seal blocks the crate from going outside.";
101 if (location == GROC_hall1 && second == s_obj) {
102 print "^You give the crate a good shove.^";
103 move self to GROC_hall2;
106 if (location == GROC_hall1 && second == n_obj) {
107 print "^You give the crate a good shove.^";
108 move self to FROSTHAM_Store;
111 if (location == GROC_hall2 && second == n_obj) {
112 print "^You give the crate a good shove.^";
113 move self to GROC_hall1;
116 if (location == FROSTHAM_Store && second == s_obj && GROC_hall1.number == 1) {
117 print "^You give the crate a good shove.^";
118 move self to GROC_hall1;
121 ! (we do our own version to allow the CheckHall() to
123 AllowPushDir(); rtrue;
127 Object BARREL1 "dusty crate" FROSTHAM_Store
130 description "A dust-covered crate.",
132 Object BARREL2 "moldy crate" FROSTHAM_Store
135 description "A mold-covered crate.",
137 Object BARREL3 "filthy crate" FROSTHAM_Store
140 description "A filth-covered crate.",
143 Object GROC_hall1 "North end of Hallway"
144 with name "end" "hallway",
147 print "You're at the north end of a short N-S hall. \
149 switch (GROC_hall1.number) {
150 1: print " slopes sharply upwards to the south. \
151 You notice two dark doorways above you along the northern wall, \
152 one above the other, \
153 but no obvious means of getting to them";
154 2: print " travels evenly to the south. \
155 You notice a dark doorway above you along the northern wall, \
156 but no obvious means of getting to it";
157 3: print " slopes sharply downwards to the south";
159 ". To the north is an exit.";
162 if (self hasnt general) {
164 "^The hallway suddenly creaks underfoot! The floor \
165 shakes briefly and dust seems to rise from cracks near the \
166 walls. Apparently, your unexpected presence has jarred \
167 some old mechanisms back to life!";
171 switch (GROC_hall1.number) {
172 1: return FROSTHAM_Store;
173 2: return GROC_stockroom;
174 3: return GROC_attic;
179 if (noun == n_obj or s_obj) {
182 print "^You hear a low grinding noise. \
183 The hallway underfoot suddenly shifts and drops!^";
188 Jump: "You jump for a bit. The floor feels strangely \
194 Object GROC_hall2 "South end of Hallway"
195 with name "end" "hallway",
198 print "You're at the south end of a short N-S hall \
199 that seems to lead nowhere. The hallway";
200 switch (GROC_hall2.number) {
201 1: " slopes sharply upwards to the north.";
202 2: " travels evenly to the north.";
203 3: " slopes sharply downwards to the north.";
211 print "^You hear a low grinding noise. \
212 The hallway underfoot suddenly shifts and drops!^";
216 Jump: "You jump for a bit. The floor feels strangely \
222 ! (Routine for checking 'weights' of two sides of hallway)
223 ! (assumes called from room's _after_ routine, thus all
224 ! barrels and players are in their after_turn places)
225 ! RETURNS: 0 if no change
226 ! 1 if NORTH END now higher than before
227 ! 2 if NORTH END now lower than before
229 i ! local total of weight points for north end
230 j ! local total of weight points for south end
231 k ! local -- orig setting of north end (.number)
234 k = GROC_hall1.number;
235 if (player in GROC_hall1)
237 if (player in GROC_hall2)
239 if (BARREL1 in GROC_hall1) i = i + 1;
240 if (BARREL1 in GROC_hall2) j = j + 1;
241 if (BARREL2 in GROC_hall1) i = i + 1;
242 if (BARREL2 in GROC_hall2) j = j + 1;
243 if (BARREL3 in GROC_hall1) i = i + 1;
244 if (BARREL3 in GROC_hall2) j = j + 1;
246 GROC_hall1.number = 2;
247 GROC_hall2.number = 2;
250 GROC_hall1.number = 1;
251 GROC_hall2.number = 3;
254 GROC_hall1.number = 3;
255 GROC_hall2.number = 1;
257 if (GROC_hall1.number == k)
259 if (GROC_hall1.number > k)
261 if (GROC_hall1.number < k)
266 Object GROC_stockroom "Stockroom"
268 print "This is a tiny poorly lit room, that \
269 is covered in dust. An exit south leads to a";
270 if (GROC_hall1.number == 2) print " short hallway";
271 else print " dark hole";
272 if (GROC_attic has general)
273 print ". Above, a hole has been exposed in the ceiling structure";
277 u_to [; if (GROC_attic hasnt general)
278 "You can't go that way.";
279 else return GROC_attic;
282 if (GROC_hall1.number == 2) return GROC_hall1;
284 "You pull back before falling into what appears to be a deep \
285 pit of some sort beyond the south exit.";
292 print "You hear a low grinding noise behind you.^";
297 Object GROC_attic "Attic"
299 print "This is an exceptionally cramped attic, obviously \
300 unused for some time. The floorboards are starting to crack.";
301 if (self has general)
302 print " One section of the floor is particularly poor, and has \
303 a gaping hole leading downwards into darkness.";
304 " An exit heads south.";
306 name "sag" "crack" "hole",
308 if (GROC_attic hasnt general)
309 "You can't go that way.";
310 else return GROC_stockroom;
313 if (GROC_hall1.number == 3) return GROC_hall1;
315 "You pull back at the edge of the exit. The floor, it \
316 appears, is too far below you!";
323 print "You hear a low grinding noise behind you.^";
328 Object attic_floorboards "floorboards" GROC_attic
329 with name "boards" "floorboards",
331 print "Some badly rotting floorboards";
332 if (GROC_attic has general)
333 " with a noticeable hole in one section.";
335 if (self has general)
336 " with a noticeable sag in one section.";
341 Take: "They're nailed into the floor.";
342 Push, Pull, Attack, Shake:
343 if (self has general)
344 "The floor shakes a bit, but nothing else happens.";
346 move loose_board to GROC_stockroom;
348 "The floor shakes under your abuse, and suddenly, a \
349 portion in the middle sags considerably! But nothing else \
355 Object loose_board "loose board"
356 with name "loose" "board",
357 initial "You notice a loose board, partially \
358 broken, hanging from the ceiling structure.",
359 description "A portion of the ceiling boards \
360 has apparently broken loose.",
363 give GROC_attic general;
365 "You give the board a good couple of yanks. The board \
366 soon breaks off, taking a small portion of the ceiling \
367 with it! After the dust settles, you notice the rather \
368 poor remodeling job you've done to the ceiling.";
373 ! (the coffee was moved to the cafe in Borphee)
374 Object decaf_coffee_can "can of decaf coffee"
375 with name "can" "coffee" "decaf",
376 description "The can reads: ~Frobozz coffee crystals~^^\
377 ~Rich, mountain-grown flavor.~^^DECAFFEINATED.",
380 "You'd need a good can-opener for that.";
385 Object icebox_key "square key" GROC_attic
386 with name "key" "square",
391 Object icebox "icebox" GROC_stockroom
392 with name "icebox" "box",
393 description "A rather old-looking icebox.",
397 when_closed "A dust-covered icebox stands closed against \
400 print "The icebox is open. ";
402 if (x == 0) "It is also empty.";
404 if (x == 1) print "is: "; else print "are: ^";
405 x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
406 WriteListFrom (child(self), x, 1);
409 has static container openable lockable locked;
411 Object cerealbox1 "blue cereal box" icebox
412 with name "box" "blue" "Crunchies",
413 description "A blue paper box with lettering that reads:^^\
414 ~Grueslayer Crunchies!^^\
415 (It's not just for adventurers anymore!)^^\
416 [Free bonus scroll surprise inside!]~^^\
417 Writing on the box reads ~50zm~.",
421 if (noun == cerealbox2 or cerealbox3) {
422 "That doesn't quite fit.";
425 if (the_spell_was == zemdor_spell) {
426 if (self hasnt general) {
428 move cerealbox2 to parent(cerealbox1);
429 move cerealbox3 to parent(cerealbox1);
431 "The box of cereal suddenly seems to dance with magic! \
432 Before your very eyes, the box suddenly splits into \
433 three boxes! The magic fades, but the boxes remain.";
436 "The magic fights against the cereal box, but fails. \
437 I guess you can only triplicate once.";
440 has container openable;
442 Object cerealbox2 "navy-blue cereal box"
443 with name "box" "navy-blue" "Sugarglobs",
444 description "A navy-blue paper box with lettering that reads:^^\
445 ~Frobozz Super Sugar Globs!^^\
446 (Seventeen times the sugar of any other cereal!)^^\
447 [Free bonus Frobozz toy inside!]~^^\
448 Writing on the box reads ~50zm~.",
453 if (noun == cerealbox1 or cerealbox3) {
454 "That doesn't quite fit.";
457 has container openable;
459 Object cerealbox3 "royal-blue cereal box"
460 with name "box" "royal-blue" "Dornflakes",
461 description "A royal-blue paper box with lettering that reads:^^\
463 (Just like Grandma Dimwit used to make!)^^\
464 [Free bonus Frobozz toy inside!]~^^\
465 Writing on the box reads ~50zm~.",
470 if (noun == cerealbox1 or cerealbox2) {
471 "That doesn't quite fit.";
474 has container openable;
476 ! A Breakfast cereal class -- what a concept
479 description "A quantity of overly-sweetened breakfast cereal.",
485 "You consume the cereal. The sugar rush occurs five seconds \
486 later and ends just as quickly.";
490 Object cereal1 "crunchy cereal" cerealbox1
493 Object cereal2 "sugary cereal" cerealbox2
496 Object cereal3 "flaky cereal" cerealbox3
500 Object baking_powder "packet of baking powder" icebox
501 with name "powder" "baking" "packet",
502 short_name "packet of baking powder",
503 description "A single-use packet of baking powder from \
504 ~Port Foozle Bakers Guild~ products.",
510 "You eat the baking powder. Yuck.";
514 Object butter "stick of butter" icebox
515 with name "butter" "stick" "fat",
516 description "A good-sized stick of butter.",
522 print "You eat the entire stick of butter.";
524 " Your heart will no doubt thank you for that someday.";
527 intake of concentrated fat is too much of a shock to your \
528 system, and an important artery somewhere bursts.";
532 Object FROSTHAM_Resort "Ski Resort"
533 with description "You are inside a large ski resort. Perhaps \
534 it's not ski-season, as the entire place is \
535 basically empty. Frostham city lies to the \
537 name "resort" "city" "ski" "skis" "earmuff" "earmuffs",
540 w_to "You don't have a lift-ticket. Also, you don't have \
541 skis. Most importantly, however, the slopes look \
545 Object FROSTHAM_Governer1 "Governor's House, Waiting Room"
546 with description "You are in a waiting room in the house of the Frostham \
547 Governor. The carpet is surprisingly plush. \
548 The walls have been painted a rather bland \
549 peach-like color. The furnishings \
550 are also colored peach, which complements the \
551 walls without being too nouveau. The way out \
552 is to the northeast.",
553 name "carpet" "furnishings",
560 give Gov_door ~open locked;
561 print "You hear the door slam and lock behind you.^";
566 Object Gov_couch "couch" FROSTHAM_Governer1
567 with name "couch" "peach",
568 initial "A comfortable-looking peach-colored couch is here.",
569 description "It looks pretty comfy, but the color wouldn't \
570 have been your first choice.",
573 if (self hasnt general) {
575 move c1 to FROSTHAM_Governer1;
576 "You rummage through the cushions and a coin falls out!";
578 "You find nothing of interest.";
580 has static enterable supporter;
582 Object travel_posters "travel brochure" FROSTHAM_Governer1
583 with name "brochure" "travel",
584 description "The brochure has pictures of various cheerful-looking \
585 people in rather cheerful-looking places. \
586 Bold lettering reads ~FEEL BETTER IN MIZNIA~, \
587 ~IT'S ARAGAIN, AGAIN~, \
588 and ~NEW BORPHEE, EVERYONE'S FAVORITE CITY~",
592 Object c1 "coin" class coin_class;
594 Object Gov_desk1 "desk" FROSTHAM_Governer1
595 with name "desk" "waiting" "room",
596 description "A fairly plain-looking desk",
597 has scenery supporter;
599 Object Gov_ledger "ledger" Gov_desk1
602 if (receptionist in FROSTHAM_Governer1)
603 "The receptionist seems to be using it at the moment.";
604 "The ledger reads:^^\
605 ~ -- New signed petition for presentation and coronation of \
606 new King delivered to Aragain Magistrate, awaiting word of \
607 event schedule.~^^That's all. I guess the governor hasn't been \
608 very busy as of late.";
614 if (receptionist in FROSTHAM_Governer1)
615 "The receptionist gives you a rather menacing look.";
620 Object alarm_clock "alarm clock" Gov_desk1
621 with name "clock" "alarm",
623 print "A small round desk-clock, with a set of bells \
624 on the top, and a small pull-knob on the back. \
625 Strangely, the clock seems to be stopped. Two hands, black and golden, \
626 are sitting at ",alarm_clock.number," and ",
627 alarm_clock_dial.number;
631 number 9, ! setting of the clock hand
634 alarm_clock.number = alarm_clock.number + 1;
635 if (alarm_clock.number > 12) alarm_clock.number = 1;
636 x = TestScope(alarm_clock,player);
637 if (x==1) print "^The alarm clock suddenly makes an \
638 awful grinding noise";
639 if (alarm_clock.number == alarm_clock_dial.number) {
641 if (x==1) print ", followed by a ear-splitting clang!^";
642 ! certain events follow:
643 ! if receptionist still in office and self in office,
644 ! receptionist leaves (if player in office, he'll
645 ! see this, or see it outside the office)
646 if ((receptionist in FROSTHAM_Governer1) &&
647 (((self in FROSTHAM_Governer1) || (self in Gov_desk1)) ||
648 ((self in player) && (player in FROSTHAM_Governer1))) ) {
649 remove receptionist; ! a long lunch hour, apparently...
650 ! give alarm_clock general;
652 if (player in FROSTHAM_Governer1)
653 "^The receptionist suddenly jumps from her \
654 seat and rushes out of the room, screaming ~Lunchtime!~";
655 if (player in FROSTHAM_2)
656 "^You see a woman rush out of the building \
657 to the southwest, and quickly vanish.";
660 ! future: boutique in Miznia -- brings salesman to front
661 if (((self in MIZNIA_Boutique) || (self in player)) &&
662 (player in MIZNIA_Boutique)) {
663 print "^From somewhere in the back of the \
664 store, a tailor rushes out and";
665 if (MIZNIA_Boutique hasnt general) {
666 give MIZNIA_Boutique general;
667 move fancy_scroll to player;
669 " sees you. ~We've got a rather \
670 busy schedule,~ he explains, ~but let me see what I can do.~ \
671 He gives you a somewhat unapproving look. ~The ascetic-monk \
672 look is out, you know. Here.~ He pins a rolled paper object \
673 to your clothes. ~The latest craze -- wearing magic scrolls. \
674 Beats using them nowadays, I hear. Now, like I said, we're \
675 very busy.~ He goes off to the back of the store.";
679 ~I've done all I can for you right now,~ he explains as \
680 goes off to the back of the store.";
687 add_to_scope alarm_clock_dial alarm_clock_bells alarm_clock_hands,
690 Object alarm_clock_dial "knob"
691 with name "pull" "knob",
692 description "A small, pullable knob on the back of the clock.",
697 if (self has general) {
699 "pushes in a short bit.";
701 else "is as far in as it can go.";
704 if (self hasnt general) {
706 "pulls out a short bit.";
708 else "is as far out as it can go.";
710 if (self hasnt general) {
712 StartTimer(alarm_clock,1);
713 "The knob turns -- barely. You \
714 hear a small clicking noise as well.";
718 alarm_clock_dial.number = alarm_clock_dial.number + 1;
719 if (alarm_clock_dial.number > 12)
720 alarm_clock_dial.number = 1;
721 print "The knob turns easily. You notice the \
722 golden hand on the front sweep to ",alarm_clock_dial.number;
725 ! if (alarm_clock hasnt general) {
727 ! "It doesn't turn anymore. I guess the receptionist \
728 ! broke the clock (not that it was in good shape to \
733 Object alarm_clock_hands "hands"
734 with name "hand" "hands"
737 Object alarm_clock_bells "bells"
738 with name "bell" "bells"
741 Object FROSTHAM_Governer2 "Governor's Office"
742 with description "You are in a rather spacious office. The \
743 carpeting is quite plush, and all the furnishings seem \
744 excessively lavish.",
745 name "carpeting" "furnishings",
749 Object Gov_desk2 "desk" FROSTHAM_Governer2
750 with name "desk" "office",
751 description "A fairly impressive looking desk, made from \
752 a massive lacquered piece of black oak wood.",
755 if (the_spell_was == egdelp_spell)
756 "The desk is covered with a ugly waxy film. \
757 The governor looks extremely annoyed and wipes the desk clean with \
759 Push, Pull, Rub, Attack, Search:
760 "~Do you mind?~ the governor says.";
762 has scenery supporter;
764 Object Gov_door "door"
765 with name "door" "office",
767 print "There's a closed door to the ";
768 if (self in FROSTHAM_Governer1)
773 print "There's an open door to the ";
774 if (self in FROSTHAM_Governer1)
778 description "It's just a thick door.",
779 door_dir [ ; if (location==FROSTHAM_Governer1) return s_to;
782 door_to [ ; if (location==FROSTHAM_Governer1)
783 return FROSTHAM_Governer2;
784 return FROSTHAM_Governer1;
788 if ((location==FROSTHAM_Governer1) &&
789 (receptionist in FROSTHAM_Governer1))
790 "The receptionist puts a hand in your way and says, \
791 ~The governor is currently busy.~";
793 if (location==FROSTHAM_Governer2)
794 "~Close it on your way _out_~, the governor snarls.";
796 found_in FROSTHAM_Governer1 FROSTHAM_Governer2,
797 has static door openable lockable;
799 Object FROSTHAM_GUSStop "Subway Entrance"
800 with description "You're near the southern end of the city. \
801 The rest of the city lies to the north. \
802 There's also a rather conspicuous \
803 stairway down here.",
806 u_to "You can't go that way.",
807 d_to FROSTHAM_GUSStation,
808 cant_go "You walk around the local streets a bit, finding \
809 nothing of interest.",
813 ! ******************************************************************
815 ! ******************************************************************
817 Object ski_instructor "ski instructor" FROSTHAM_Resort
818 with name "instructor" "dude" "skier" "guy" "tall" "lanky",
820 print "A tall lanky guy is here, holding two colorful \
821 skis. He seems to be ";
822 if (waxy_scroll in self)
823 "waxing them with a scroll.";
824 "concentrating greatly on waxing \
827 description "A tall lanky guy, like I said. He's \
828 decked out in fancy bright winter clothes.",
831 "~Dude, you must chill.~";
833 if (special_word == 'hello' or 'hi')
834 "The skier gives you the 'thumbs-up' sign. \
836 else "~Uh, whatever, dude.~";
839 "~Hey dude, can I borrow that?~";
840 "~Uh, whatever, dude.~";
842 if (action==##Give) {
845 if (((noun==waxy_scroll) && (self hasnt general)) ||
846 ((noun==rag) && (self has general)))
847 "~I'm using it, dude.~";
849 "~Dude, I have no idea what you're talking about.~";
852 "~A rag makes an excellent ski-maintenance accessory, dude.~";
853 if ((second=='scroll' or 'waxy') && (self hasnt general))
854 "~Something I found at the top of a run. \
855 Doesn't work too well, but hey, I gotta wax.~";
857 "~My rad Grayslopes Slaloms. If you don't wax 'em \
858 every 30 seconds, they lose their speed.~";
859 if ((second=='slopes') || (second=='slope') ||
860 (second=='powder') || (second=='runs') ||
862 "The skier takes you aside. ~Listen dude, \
863 between you and me, the slopes here rot. They \
864 used to be way better. But you know, I hear there \
865 are some _killer_ drops up north.~";
866 "~Dude, I have no idea what you're talking about.~";
869 move waxy_scroll to FROSTHAM_Resort;
873 "The skier gladly takes the rag and starts \
874 polishing immediately. He lets the scroll \
875 fall to the ground. ~Excellent man, thanks!~";
877 "~No thanks, dude.~";
878 default: "At the moment, the skier is too busy waxing.";
881 if (waxy_scroll notin self && self hasnt general) {
884 "^~Dude, like, that scroll thing just \
885 vanished! What a cosmic experience!~ On that note, \
886 the skier opts to head for the slopes, and leaves to the west.";
889 "^The skier polishes a spot on his skis.";
893 if (the_spell_was == foblub_spell or espnis_spell)
894 "A pair of fluffy earmuffs the skier is wearing \
895 prevents him from hearing the full impact of your sermon.";
897 has animate transparent;
899 Object receptionist "receptionist" FROSTHAM_Governer1
900 with name "receptionist",
901 initial "A receptionist sits behind a desk, engrossed in \
903 description "A gruff-looking lady who apparently is far \
904 more interested in her work than you.",
906 if (receptionist hasnt general) {
907 give receptionist general;
908 "^Without even looking up, the receptionist says, \
909 ~The governor is busy right now.~";
912 "^The receptionist turns a page in the ledger.";
916 print "The receptionist";
917 if (special_word=='hello')
918 ", without looking up, says \
920 " seems to be ignoring you.";
922 print "The receptionist";
923 if (second=='governor')
924 ", without looking up, says \
925 ~He's very busy right now.~.";
928 "The receptionist seems to be ignoring you.";
932 "The receptionist, in a rather shrill voice says, \
933 ~If you're gonna wait, do it quietly,~ disrupting your chant.";
936 "You make an unusually high-pitched noise. The receptionist, \
937 in a rather shrill voice says, \
938 ~If you're gonna wait, do it quietly.~";
940 "~If you want to spread germs, do it outside.~";
942 "~If you're gonna wait, do it quietly.~";
944 "~We're not holding auditions, you know.~";
948 Object governor "governor" FROSTHAM_Governer2
949 with name "governor" "gov",
950 initial "The governor of Frostham is sitting behind a \
951 desk here, trying to look busy.",
952 description "A sour-looking man who tries his best not \
955 if (governor hasnt general) {
956 give governor general;
958 "^The governor scowls as you enter. ~What do you want?~ \
959 he says, and doesn't wait for a response. ~Oh, I know. \
960 More complaints about the snow, I suppose? Well \
961 look, I didn't ask for this job. Do you want it? I \
962 didn't think so.~ He shoves something into your hand. \
963 ~Here, buy yourself a cup of coffee, and stop \
967 print "^The governor ";
969 "thumbs through some papers.";
971 "balances a pencil on his nose.";
973 "scribbles something meaningless.";
975 "looks up and notices you. ~Don't you \
976 have anything else to do?~ he says.";
980 if (second=='key' or 'shiny') {
981 print "~Some key an important visitor \
982 forgot while visiting. Probably useless now";
983 if (parent(cab_key) == player)
984 print ". You can keep it, for all I care";
987 if (second=='receptionist')
988 "~I think she's out to lunch,~ he says, \
989 with obvious annoyance.";
990 if (second=='magistrate' or 'king' or 'sydney')
991 "He looks at you suspiciously. \
992 ~Never heard of him,~ he says.";
993 if (second=='ledger')
994 "~I think my receptionist has it.~";
995 if (second=='pencil')
996 "~Please! I'm a very busy man!~";
997 "~Sorry, that's not my problem. Now run along.~";
999 "The governor brushes you off. ~Are you \
1000 planning on running for office or something?~";
1003 "As you make a threatening move, the governor \
1004 presses some unseen switch behind his desk. Before you \
1005 know it, a hidden trapdoor opens in the floor and you \
1006 plunge to your death. A good politician is always \
1007 prepared, it seems...";
1009 "~Sure, sure. Scram, will you?~";
1011 if (special_word=='hello')
1012 "~Yeah, sure. So what's your problem?~";
1013 "The governor is busy trying to look busy.";
1015 "Bribing a politician, eh?";
1017 if (noun==Gov_ledger)
1018 "~Hey, return that to the receptionist!~";
1019 "~Please! I'm a very busy man!~";
1023 if (noun == cab_key)
1024 "~Oh sure, just go ahead and take things \
1025 from my office. See if I care.~";
1029 if (the_spell_was == foblub_spell)
1030 "Actually, the governor seems pretty glued to his \
1031 seat already. In any event, nothing seems to happen.";
1032 if (the_spell_was == espnis_spell)
1033 "The governor seems to nod off, but only for \
1036 has animate transparent;
1043 Object pencil "pencil" governor
1046 Object c2 "coin" class coin_class;
1048 ! (cereal box prizes)
1049 Object whistle "whistle" cerealbox2
1050 with name "whistle",
1051 description "A tiny plastic whistle.",
1056 "You make an unusually high-pitched noise.";
1059 ! (a fancier packaged prize :)
1060 Object plastic_wrapper "plastic wrapper" cerealbox3
1061 with name "wrapper" "plastic",
1062 description "A small plastic see-through package.",
1065 while (child(self)~=0) move child(self) to parent(self);
1066 remove plastic_wrapper;
1067 "The wrapper rips open with ease, and disintegrates, \
1068 leaving the contents behind.";
1072 has container openable transparent;
1074 Object toy_volcano "toy volcano" plastic_wrapper
1075 with name "toy" "volcano",
1076 description "A strange thing indeed -- a miniature \
1077 ceramic toy, that has been painted and shaped \
1078 in painstaking detail to look like a volcano.",
1083 Object volcano_note "instruction notice" plastic_wrapper
1084 with name "notice" "instruction",
1086 description "~Frobozz Instant Volcano~^^\
1087 (parental supervision recommended)^^\
1088 To use: Just add a good quantity of water! We suggest \
1089 a very large safety radius.~",
1095 ! ******************
1096 ! Scrolls and spells
1097 ! ******************
1099 Object waxy_scroll "waxy scroll" ski_instructor
1104 Object egdelp_spell "create waxy build-up on wood" waxy_scroll
1108 if (second ~= 0 && second ~= player) {
1109 CDefArt(second); " looks pretty polished as is."; }
1110 else { "The chant, seeking wood to polish, fails."; }
1114 Object sugar_scroll "sugar-coated scroll" cerealbox1
1116 with name "sugar-coated" "coated",
1119 Object zemdor_spell "triplicate object" sugar_scroll
1125 "The chant, seeking a locus for \
1126 triplication, fails.";
1127 if (second has animate)
1128 "The chant, not designed for living creatures, fails.";
1129 if (second has is_spell)
1130 "This violates certain unwritten laws of magic.";
1131 if (second has is_coin) {
1132 ! new twist for zemdor, as sugg. by player
1133 print "The coin shimmers suddenly! You blink in \
1134 disbelief as the coin seems to split \
1135 into three copies of itself! ";
1136 if (self hasnt general) {
1138 move c12 to parent(second);
1139 move c13 to parent(second);
1140 "You notice there are now three coins where \
1141 there was once but one!";
1143 "Suddenly, a financial nymph appears! She gives \
1144 you a denunciatory look. ~Line 7234-6 of the Pierpont \
1145 tax laws clearly states that repeated unauthorized \
1146 triplication of monetary \
1147 items is strictly forbidden,~ she says, and takes the \
1148 the two newly created coins before disappearing.";
1150 print (The) second, " shimmers suddenly! You blink in \
1151 disbelief as ", (the) second, " seems to split \
1152 into three copies of itself! ";
1153 "But, as you finish the chant, \
1154 the mystic energy seems to fade, and the copies \
1155 coalesce back into one unchanged object. The \
1160 Object c12 "coin" class coin_class;
1161 Object c13 "coin" class coin_class;