Rename game files to lowercase
[spiritwrak.git] / src / FROSTHAM.INF
diff --git a/src/FROSTHAM.INF b/src/FROSTHAM.INF
deleted file mode 100644 (file)
index 691db7e..0000000
+++ /dev/null
@@ -1,1162 +0,0 @@
-
-! **************************************************************
-! frostham.inf
-! ------------
-! Frostham locations in SPIRITWRAK, included in spirit.inf
-! (Do not compile and/or use separately!)
-! **************************************************************
-
-Object FROSTHAM_Outskirts "Frostham Outskirts"
-   with description [;
-           print  "You are at the northern outskirts of Frostham. \
-The city proper is to the south. A few \
-snow covered residences are nearby. \
-A trail leads into a valley to the north";
-           if (self hasnt general) {
-              give self general;
- ".^^The last time you saw Frostham was before you \
-entered the Monastery -- many years ago at least. \
-Oddly, it seemed bigger and less desolate then.";
-           }
-           else ".";
-        ],
-        name "city" "snow" "residences" "trail" "valley",
-        n_to Valley_trail,
-        s_to FROSTHAM_2,
-        cant_go "You walk around the local area a bit, finding \  
-                 nothing of interest.",
-   has light;
-
-Object FROSTHAM_2 "Frostham"
-   with description "You are in Frostham City, the famous winter-\
-lover's haven. The once booming ski vacation spot seems \
-to be a bit more run-down than in times past. \
-The city thins out towards the north, while \
-another section of town is to the south. To the west is \
-a large wood structure. To the southwest is a small \
-building. To the southeast is another small building, possibly a \
-store.",
-        name "wood" "structure" "building" "store",
-        n_to FROSTHAM_Outskirts,
-        w_to FROSTHAM_Resort,
-        sw_to FROSTHAM_Governer1,
-        s_to FROSTHAM_GUSStop,
-        se_to FROSTHAM_Store,
-        cant_go "You walk around the local streets a bit, finding \  
-                 nothing of interest.",
-        each_turn [ i ;
-           if (GROC_hall1 has general)
-              i = CheckHall();
-! Why check the grocery hallway here?  
-! Conceptually, if the player dies in the hallway (rather
-! difficult, but possible by swearing, for example),
-! the hallway should 'adjust' itself to the new weight.
-! I simply check this here, because the player must go
-! this way to reach the hallway for a second time.
-        ],
-   has light;
-
-Object FROSTHAM_Store "General Store"
-   with description [; 
-print "This appears to be a small grocery store, \
-strangely abandoned at the moment. Shelves line the walls, \
-although, since no one is minding \
-the store, the current stock seems to be a bit depleted. \
-You notice an exit south marked ~EMPLOYEES ONLY~ that \
-appears to lead to ";
-if (GROC_hall1.number == 1)
-print "some hallway.";
-else
-print "a dark hole.";
-" The way back out is to the northwest.";
-],
-        name "stock" "shelves",
-        nw_to FROSTHAM_2,
-        s_to [;
-if (GROC_hall1.number == 1) return GROC_hall1;
-else 
-   "You pull back before falling into what appears to be a deep \
-pit of some sort beyond the south exit."; 
-],
-   after [ i ;
-      Go:
-         if (noun == n_obj) {
-            i = CheckHall();
-            if (i == 1)
-               print "You hear a grinding noise from behind \
-you.^";
-         }
-   ],
-   has light;   
-
-Class Barrel_class
-   with name "crate",
-        before [;
-           Take, Pull, Turn: "It's rather heavy.";
-           Push:  "It's heavy, but you manage to make it slide \
-along the floor a bit.";
-           PushDir:
-if (location == FROSTHAM_Store && second == nw_obj)
-   "A portion of the door seal blocks the crate from going outside.";
-if (location == GROC_hall1 && second == s_obj) {
-   print "^You give the crate a good shove.^";
-   move self to GROC_hall2;
-   <<Go s_obj>>;
-}
-if (location == GROC_hall1 && second == n_obj) {
-   print "^You give the crate a good shove.^";
-   move self to FROSTHAM_Store;
-   <<Go n_obj>>;
-}
-if (location == GROC_hall2 && second == n_obj) {
-   print "^You give the crate a good shove.^";
-   move self to GROC_hall1;
-   <<Go n_obj>>;
-}
-if (location == FROSTHAM_Store && second == s_obj && GROC_hall1.number == 1) {
-   print "^You give the crate a good shove.^";
-   move self to GROC_hall1;
-   <<Go s_obj>>;
-}
-! (we do our own version to allow the CheckHall() to
-! work properly)
-AllowPushDir(); rtrue;
-        ],   
-   has static;
-
-Object BARREL1 "dusty crate" FROSTHAM_Store
-   class Barrel_class,
-   with name "dusty",
-        description "A dust-covered crate.",
-;
-Object BARREL2 "moldy crate" FROSTHAM_Store
-   class Barrel_class,
-   with name "moldy",
-        description "A mold-covered crate.",
-;
-Object BARREL3 "filthy crate" FROSTHAM_Store
-   class Barrel_class,
-   with name "filthy",
-        description "A filth-covered crate.",
-;
-
-Object GROC_hall1 "North end of Hallway"
-   with name "end" "hallway",
-        number 1,
-        description [;
-          print "You're at the north end of a short N-S hall. \
-The hallway";
- switch (GROC_hall1.number) {
- 1: print " slopes sharply upwards to the south. \
-You notice two dark doorways above you along the northern wall, \
-one above the other, \
-but no obvious means of getting to them";
- 2: print " travels evenly to the south. \
-You notice a dark doorway above you along the northern wall, \
-but no obvious means of getting to it";
- 3: print " slopes sharply downwards to the south";
- }
- ". To the north is an exit."; 
-],
-   each_turn [;
-      if (self hasnt general) {
-         give self general;
-         "^The hallway suddenly creaks underfoot! The floor \
-shakes briefly and dust seems to rise from cracks near the \
-walls. Apparently, your unexpected presence has jarred \
-some old mechanisms back to life!";
-      }
-   ],
-   n_to [;
-switch (GROC_hall1.number) {
-   1: return FROSTHAM_Store;
-   2: return GROC_stockroom;
-   3: return GROC_attic;
-}
-   ], 
-   after [ i ;
-      Go:
-         if (noun == n_obj or s_obj) {
-            i = CheckHall();
-            if (i == 2)
-print "^You hear a low grinding noise. \
-The hallway underfoot suddenly shifts and drops!^";
-         }
-   ],
-   s_to GROC_hall2,
-   before [;
-      Jump:  "You jump for a bit. The floor feels strangely \
-unsteady.";
-   ],
-   has light;
-
-
-Object GROC_hall2 "South end of Hallway"
-   with name "end" "hallway",
-        number 3,
-        description [;
-          print "You're at the south end of a short N-S hall \
-that seems to lead nowhere. The hallway";
- switch (GROC_hall2.number) {
- 1: "  slopes sharply upwards to the north.";
- 2: "  travels evenly to the north.";
- 3: "  slopes sharply downwards to the north.";
- }
- ],
-   after [ i ;
-      Go:
-         if (noun == s_obj) {
-            i = CheckHall();
-            if (i == 1)
-print "^You hear a low grinding noise. \
-The hallway underfoot suddenly shifts and drops!^";
-         }
-   ],
-   before [;
-      Jump:  "You jump for a bit. The floor feels strangely \
-unsteady.";
-   ],
-   n_to GROC_hall1,
-   has light;
-
-! (Routine for checking 'weights' of two sides of hallway)
-! (assumes called from room's _after_ routine, thus all
-! barrels and players are in their after_turn places)
-! RETURNS: 0 if no change
-!          1 if NORTH END now higher than before
-!          2 if NORTH END now lower than before
-[ CheckHall
-    i ! local total of weight points for north end
-    j ! local total of weight points for south end
-    k ! local -- orig setting of north end (.number)
-    ;
-  i = 0;  j = 0;
-  k = GROC_hall1.number;
-  if (player in GROC_hall1) 
-     i = i + 2;
-  if (player in GROC_hall2) 
-     j = j + 2;
-  if (BARREL1 in GROC_hall1) i = i + 1;
-  if (BARREL1 in GROC_hall2) j = j + 1;
-  if (BARREL2 in GROC_hall1) i = i + 1;
-  if (BARREL2 in GROC_hall2) j = j + 1;
-  if (BARREL3 in GROC_hall1) i = i + 1;
-  if (BARREL3 in GROC_hall2) j = j + 1;
-  if (i == j) {
-     GROC_hall1.number = 2;
-     GROC_hall2.number = 2;
-  }
-  if (i > j) {
-     GROC_hall1.number = 1;
-     GROC_hall2.number = 3;
-  }
-  if (i < j) {
-     GROC_hall1.number = 3;
-     GROC_hall2.number = 1;
-  }
-  if (GROC_hall1.number == k)
-     return 0;
-  if (GROC_hall1.number > k)
-     return 1;
-  if (GROC_hall1.number < k)
-     return 2;
-];  
-
-
-Object GROC_stockroom "Stockroom" 
-    with description [; 
-print "This is a tiny poorly lit room, that \
-is covered in dust. An exit south leads to a"; 
-if (GROC_hall1.number == 2) print " short hallway"; 
-else print " dark hole"; 
-if (GROC_attic has general) 
-   print ". Above, a hole has been exposed in the ceiling structure"; 
-"."; 
-     ],  
-      name "dust", 
-      u_to [; if (GROC_attic hasnt general)
-"You can't go that way.";
-           else return GROC_attic;
-        ],
-        s_to [;
-if (GROC_hall1.number == 2) return GROC_hall1;
-else 
-   "You pull back before falling into what appears to be a deep \
-pit of some sort beyond the south exit."; 
-        ],
-   after [ i ;
-      Go:
-         if (noun == n_obj) {
-            i = CheckHall();
-            if (i == 2 or 1)
-               print "You hear a low grinding noise behind you.^";
-         }
-   ],
-        has light;
-
-Object GROC_attic "Attic"
-   with description [;
-print "This is an exceptionally cramped attic, obviously \
-unused for some time. The floorboards are starting to crack.";
-if (self has general)
-   print " One section of the floor is particularly poor, and has \
-a gaping hole leading downwards into darkness.";
-" An exit heads south.";
-        ],       
-        name "sag" "crack" "hole",
-        d_to [;
-           if (GROC_attic hasnt general)
-"You can't go that way.";
-           else return GROC_stockroom;
-        ],
-        s_to [;
-if (GROC_hall1.number == 3) return GROC_hall1;
-else 
-   "You pull back at the edge of the exit. The floor, it \
-appears, is too far below you!";
-        ],
-   after [ i ;
-      Go:
-         if (noun == n_obj) {
-            i = CheckHall();
-            if (i == 2)
-               print "You hear a low grinding noise behind you.^";
-         }
-   ],
-        has light;
-
-Object attic_floorboards "floorboards" GROC_attic
-   with name "boards" "floorboards",
-        description [;
-print "Some badly rotting floorboards";
-if (GROC_attic has general)
-   " with a noticeable hole in one section.";
-else {
-   if (self has general)
-      " with a noticeable sag in one section.";
-   else ".";
-}
-        ],
-   before [;
-     Take: "They're nailed into the floor.";
-     Push, Pull, Attack, Shake:
-if (self has general)
-   "The floor shakes a bit, but nothing else happens.";
-else {
-   move loose_board to GROC_stockroom;
-   give self general;
-   "The floor shakes under your abuse, and suddenly, a \
-portion in the middle sags considerably! But nothing else \
-happens.";
-}
-   ],     
-   has scenery;
-
-Object loose_board "loose board"
-   with name "loose" "board",
-        initial "You notice a loose board, partially \
-broken, hanging from the ceiling structure.",
-        description "A portion of the ceiling boards \
-has apparently broken loose.",
-        before [;
-           Pull, Attack, Shake:
-give GROC_attic general;
-remove self;
-"You give the board a good couple of yanks. The board \
-soon breaks off, taking a small portion of the ceiling \
-with it! After the dust settles, you notice the rather \
-poor remodeling job you've done to the ceiling.";
-        ], 
-has static;
-
-
-! (the coffee was moved to the cafe in Borphee)
-Object decaf_coffee_can "can of decaf coffee" 
-   with name "can" "coffee" "decaf",
-        description "The can reads: ~Frobozz coffee crystals~^^\
-                    ~Rich, mountain-grown flavor.~^^DECAFFEINATED.",
-        before [;
-           Open:
-            "You'd need a good can-opener for that.";
-        ],
-        size 15,
-;
-   
-Object icebox_key "square key" GROC_attic
-   with name "key" "square",
-   size 5,
-;   
-   
-   
-Object icebox "icebox" GROC_stockroom
-   with name "icebox" "box",
-        description "A rather old-looking icebox.",
-        capacity 10,
-        size 20,
-        with_key icebox_key,
-        when_closed "A dust-covered icebox stands closed against \
-the northern wall.",
-        when_open [ x;
-         print "The icebox is open. ";
-         x = children(self);
-         if (x == 0) "It is also empty.";
-         print "Inside ";
-         if (x == 1) print "is: "; else print "are: ^";
-         x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
-         WriteListFrom (child(self), x, 1); 
-         rtrue;
-       ],
-   has static container openable lockable locked;
-
-Object cerealbox1 "blue cereal box" icebox
-   with name "box" "blue" "Crunchies",
-        description "A blue paper box with lettering that reads:^^\
-                    ~Grueslayer Crunchies!^^\
-                    (It's not just for adventurers anymore!)^^\
-                    [Free bonus scroll surprise inside!]~^^\
-                    Writing on the box reads ~50zm~.",
-        size 10, capacity 5,
-        before [;
-           Receive:
-              if (noun == cerealbox2 or cerealbox3) {
-                 "That doesn't quite fit.";
-              }
-           Cast:
-              if (the_spell_was == zemdor_spell) {
-                 if (self hasnt general) {
-                    give self general;
-                    move cerealbox2 to parent(cerealbox1);
-                    move cerealbox3 to parent(cerealbox1);
-                    Achieved(1);
-                    "The box of cereal suddenly seems to dance with magic! \
-                    Before your very eyes, the box suddenly splits into \
-                    three boxes! The magic fades, but the boxes remain.";
-                 }
-                 else
-                    "The magic fights against the cereal box, but fails. \
-                    I guess you can only triplicate once.";
-              }
-        ],                            
-   has container openable;
-   
-Object cerealbox2 "navy-blue cereal box"
-   with name "box" "navy-blue" "Sugarglobs",
-        description "A navy-blue paper box with lettering that reads:^^\
-                    ~Frobozz Super Sugar Globs!^^\
-                    (Seventeen times the sugar of any other cereal!)^^\
-                    [Free bonus Frobozz toy inside!]~^^\
-                    Writing on the box reads ~50zm~.",
-        !weight 10,
-        size 10, capacity 5,
-        before [;
-           Receive:
-              if (noun == cerealbox1 or cerealbox3) {
-                 "That doesn't quite fit.";
-              }
-        ],        
-   has container openable;
-
-Object cerealbox3 "royal-blue cereal box"
-   with name "box" "royal-blue" "Dornflakes",
-        description "A royal-blue paper box with lettering that reads:^^\
-                    ~Dornflakes^^\
-                    (Just like Grandma Dimwit used to make!)^^\
-                    [Free bonus Frobozz toy inside!]~^^\
-                    Writing on the box reads ~50zm~.",
-        !weight 10,
-        size 10, capacity 5,
-        before [;
-           Receive:
-              if (noun == cerealbox1 or cerealbox2) {
-                 "That doesn't quite fit.";
-              }
-        ],        
-   has container openable;
-      
-! A Breakfast cereal class -- what a concept   
-Class cereal_class   
-   with name "cereal",
-        description "A quantity of overly-sweetened breakfast cereal.",
-        !weight 5,
-        size 8,
-        before [;
-           Eat:  
-              remove self;
-              "You consume the cereal. The sugar rush occurs five seconds \
-              later and ends just as quickly.";
-        ],
-   has edible;
-   
-Object cereal1 "crunchy cereal" cerealbox1
-   class cereal_class
-   with name "crunchy";      
-Object cereal2 "sugary cereal" cerealbox2
-   class cereal_class
-   with name "sugary";      
-Object cereal3 "flaky cereal" cerealbox3
-   class cereal_class
-   with name "flaky";   
-   
-Object baking_powder "packet of baking powder" icebox
-   with name "powder" "baking" "packet",
-        short_name "packet of baking powder",
-        description "A single-use packet of baking powder from \
-~Port Foozle Bakers Guild~ products.",
-        !weight 5,
-        size 5,
-        before [;
-           Eat:
-             remove self;
-             "You eat the baking powder. Yuck.";
-        ],
-   has edible;
-
-Object butter "stick of butter" icebox
-   with name "butter" "stick" "fat",
-        description "A good-sized stick of butter.",
-        !weight 5,
-        size 5,
-        before [;
-           Eat:
-             remove self;
-             print "You eat the entire stick of butter.";
-             if (random(20) < 15)
-" Your heart will no doubt thank you for that someday.";
-             deadflag = 1;
-             " The sudden \
-intake of concentrated fat is too much of a shock to your \
-system, and an important artery somewhere bursts.";
-        ],
-   has edible;
-
-Object FROSTHAM_Resort "Ski Resort"
-   with description "You are inside a large ski resort. Perhaps \
-                    it's not ski-season, as the entire place is \
-                    basically empty. Frostham city lies to the \
-                    east.",
-        name "resort" "city" "ski" "skis" "earmuff" "earmuffs",
-        e_to FROSTHAM_2,
-        out_to FROSTHAM_2,
-        w_to "You don't have a lift-ticket. Also, you don't have \
-             skis. Most importantly, however, the slopes look \
-             pretty lousy.",
-   has light;
-
-Object FROSTHAM_Governer1 "Governor's House, Waiting Room"
-   with description "You are in a waiting room in the house of the Frostham \
-                    Governor. The carpet is surprisingly plush. \
-                    The walls have been painted a rather bland \
-                    peach-like color. The furnishings \
-                    are also colored peach, which complements the \
-                    walls without being too nouveau. The way out \
-                    is to the northeast.",
-        name "carpet" "furnishings",
-        ne_to FROSTHAM_2,
-        out_to FROSTHAM_2,
-        s_to Gov_door,
-        after [;
-           Go:
-              if (noun==n_obj) {
-                 give Gov_door ~open locked;
-                 print "You hear the door slam and lock behind you.^";
-              }
-        ],
-   has light;
-
-Object Gov_couch "couch" FROSTHAM_Governer1 
-   with name "couch" "peach",
-        initial "A comfortable-looking peach-colored couch is here.",
-        description "It looks pretty comfy, but the color wouldn't \
-have been your first choice.",
-        before [;
-           Search:
-              if (self hasnt general) {
-                 give self general;
-                 move c1 to FROSTHAM_Governer1;
-                 "You rummage through the cushions and a coin falls out!";
-              }
-              "You find nothing of interest.";
-        ],
-   has static enterable supporter;
-
-Object travel_posters "travel brochure" FROSTHAM_Governer1
-   with name "brochure" "travel",
-        description "The brochure has pictures of various cheerful-looking \
-                     people in rather cheerful-looking places. \
-                     Bold lettering reads ~FEEL BETTER IN MIZNIA~, \
-                     ~IT'S ARAGAIN, AGAIN~, \
-                     and ~NEW BORPHEE, EVERYONE'S FAVORITE CITY~",
-        size 10,
-   ;
-
-Object c1 "coin" class coin_class;
-
-Object Gov_desk1 "desk" FROSTHAM_Governer1
-   with name "desk" "waiting" "room",
-        description "A fairly plain-looking desk",
-   has scenery supporter;
-
-Object Gov_ledger "ledger" Gov_desk1
-   with name "ledger",
-        description [;
-           if (receptionist in FROSTHAM_Governer1) 
-              "The receptionist seems to be using it at the moment.";
-           "The ledger reads:^^\
-           ~ -- New signed petition for presentation and coronation of \
-new King delivered to Aragain Magistrate, awaiting word of \
-event schedule.~^^That's all. I guess the governor hasn't been \
-very busy as of late.";
-        ],
-        !weight 20,
-        size 15,
-        before [;
-           Take: 
-              if (receptionist in FROSTHAM_Governer1) 
-                 "The receptionist gives you a rather menacing look.";
-        ],
-;
-
-
-Object alarm_clock "alarm clock" Gov_desk1
-   with name "clock" "alarm",
-        description [; 
-print "A small round desk-clock, with a set of bells \
-on the top, and a small pull-knob on the back. \
-Strangely, the clock seems to be stopped. Two hands, black and golden, \
-are sitting at ",alarm_clock.number," and ",
-alarm_clock_dial.number;
-        " respectively.";
-                     ],
-        article "an",
-        number 9,   ! setting of the clock hand
-        time_left 0,
-        time_out [ x ;
-           alarm_clock.number = alarm_clock.number + 1;
-           if (alarm_clock.number > 12) alarm_clock.number = 1;
-           x = TestScope(alarm_clock,player);
-           if (x==1) print "^The alarm clock suddenly makes an \
-awful grinding noise";
-           if (alarm_clock.number == alarm_clock_dial.number) {
-              ! alarm goes off
-              if (x==1) print ", followed by a ear-splitting clang!^";
-              ! certain events follow:
-              ! if receptionist still in office and self in office,
-              ! receptionist leaves (if player in office, he'll
-              ! see this, or see it outside the office)
-              if ((receptionist in FROSTHAM_Governer1) &&
-          (((self in FROSTHAM_Governer1) || (self in Gov_desk1)) ||
-           ((self in player) && (player in FROSTHAM_Governer1))) ) {
-                 remove receptionist;  ! a long lunch hour, apparently...
-                 ! give alarm_clock general;
-                 Achieved(2);
-                 if (player in FROSTHAM_Governer1) 
-                    "^The receptionist suddenly jumps from her \
-seat and rushes out of the room, screaming ~Lunchtime!~";
-                 if (player in FROSTHAM_2)
-                    "^You see a woman rush out of the building \
-to the southwest, and quickly vanish.";
-                 rtrue;
-              }
-              ! future: boutique in Miznia -- brings salesman to front
-              if (((self in MIZNIA_Boutique) || (self in player)) && 
-                   (player in MIZNIA_Boutique)) {
-                   print "^From somewhere in the back of the \
-store, a tailor rushes out and";
-                   if (MIZNIA_Boutique hasnt general) {
-                      give MIZNIA_Boutique general;
-                      move fancy_scroll to player;
-                      Achieved(23);
-" sees you. ~We've got a rather \
-busy schedule,~ he explains, ~but let me see what I can do.~  \
-He gives you a somewhat unapproving look. ~The ascetic-monk \
-look is out, you know. Here.~ He pins a rolled paper object \
-to your clothes. ~The latest craze -- wearing magic scrolls. \
-Beats using them nowadays, I hear. Now, like I said, we're \
-very busy.~ He goes off to the back of the store."; 
-                   }
-                   else 
-" recognizes you. \
-~I've done all I can for you right now,~ he explains as \
-goes off to the back of the store."; 
-              }
-              rtrue;
-           }
-           else if (x==1) "!";
-        ],
-        size 5,
-        add_to_scope alarm_clock_dial alarm_clock_bells alarm_clock_hands,
-   has transparent;
-
-Object alarm_clock_dial "knob" 
-   with name "pull" "knob",
-        description "A small, pullable knob on the back of the clock.",
-        number 12,
-        before [;
-           Push:
-              print "The knob ";
-              if (self has general) {
-                 give self ~general;
-                 "pushes in a short bit.";
-              }
-              else "is as far in as it can go.";
-           Pull:
-              print "The knob ";
-              if (self hasnt general) {
-                 give self general;
-                 "pulls out a short bit.";
-              }
-              else "is as far out as it can go.";
-           Turn:
-              if (self hasnt general) {
-                 ! wind clock
-                 StartTimer(alarm_clock,1); 
-                 "The knob turns -- barely. You \
-hear a small clicking noise as well.";
-              }
-              else {
-                 ! set alarm hand
-                 alarm_clock_dial.number = alarm_clock_dial.number + 1;
-                 if (alarm_clock_dial.number > 12)
-                    alarm_clock_dial.number = 1;
-                 print "The knob turns easily. You notice the \
-golden hand on the front sweep to ",alarm_clock_dial.number;
-                 ".";
-              }
-            !  if (alarm_clock hasnt general) {
-            !  }
-            !  "It doesn't turn anymore.  I guess the receptionist \
-            !  broke the clock (not that it was in good shape to \
-            !  begin with).";
-       ],
-   has static;
-
-Object alarm_clock_hands "hands"
-   with name "hand" "hands"
-   has static;
-
-Object alarm_clock_bells "bells"
-   with name "bell" "bells"
-   has static;
-
-Object FROSTHAM_Governer2 "Governor's Office"
-   with description "You are in a rather spacious office. The \
-carpeting is quite plush, and all the furnishings seem \
-excessively lavish.",
-        name "carpeting" "furnishings", 
-        n_to Gov_door,
-   has light;
-
-Object Gov_desk2 "desk" FROSTHAM_Governer2
-   with name "desk" "office",
-        description "A fairly impressive looking desk, made from \
-                    a massive lacquered piece of black oak wood.",
-        before [;
-          Cast:
-           if (the_spell_was == egdelp_spell)
-              "The desk is covered with a ugly waxy film. \
-The governor looks extremely annoyed and wipes the desk clean with \
-a stack of papers.";
-          Push, Pull, Rub, Attack, Search:
-              "~Do you mind?~ the governor says.";
-        ],
-   has scenery supporter;
-
-Object Gov_door "door" 
-   with name "door" "office",
-        when_closed [;
-             print "There's a closed door to the ";
-             if (self in FROSTHAM_Governer1) 
-                   "south.";
-             else "north.";
-        ],
-        when_open [;
-             print "There's an open door to the ";
-             if (self in FROSTHAM_Governer1) 
-                   "south.";
-             else "north.";
-        ],
-        description "It's just a thick door.",
-        door_dir [ ; if (location==FROSTHAM_Governer1) return s_to;
-                    return n_to;
-                 ],
-        door_to [ ; if (location==FROSTHAM_Governer1)
-                      return FROSTHAM_Governer2;
-                   return FROSTHAM_Governer1;
-                ],
-        before [ ;
-           Open:
-              if ((location==FROSTHAM_Governer1) &&
-                  (receptionist in FROSTHAM_Governer1))
-              "The receptionist puts a hand in your way and says, \
-               ~The governor is currently busy.~";
-           Close:
-              if (location==FROSTHAM_Governer2)
-                 "~Close it on your way _out_~, the governor snarls.";
-        ],
-        found_in FROSTHAM_Governer1 FROSTHAM_Governer2,
-   has static door openable lockable;
-
-Object FROSTHAM_GUSStop "Subway Entrance"
-   with description "You're near the southern end of the city. \
-                     The rest of the city lies to the north. \
-                     There's also a rather conspicuous \
-                     stairway down here.",
-        name "stairway",
-        n_to FROSTHAM_2,
-        u_to "You can't go that way.",
-        d_to FROSTHAM_GUSStation,
-        cant_go "You walk around the local streets a bit, finding \  
-                 nothing of interest.",
-   has light; 
-
-            
-! ******************************************************************
-! People/Creatures
-! ******************************************************************
-
-Object ski_instructor "ski instructor" FROSTHAM_Resort
-   with name "instructor" "dude" "skier" "guy" "tall" "lanky",
-        initial [;
-           print "A tall lanky guy is here, holding two colorful \
-skis. He seems to be ";
-           if (waxy_scroll in self)
-               "waxing them with a scroll.";
-            "concentrating greatly on waxing \
-            his skis."; 
-        ],
-        description "A tall lanky guy, like I said. He's \
-            decked out in fancy bright winter clothes.",
-        life [;
-           Attack, ThrowAt:
-              "~Dude, you must chill.~";
-           Answer, Tell:
-             if (special_word == 'hello' or 'hi')
-                "The skier gives you the 'thumbs-up' sign. \
-~Hey, dude.~";
-             else "~Uh, whatever, dude.~";
-           Show:
-             if (noun==rag)
-                "~Hey dude, can I borrow that?~";
-             "~Uh, whatever, dude.~";
-           Order:
-             if (action==##Give) {
-             if (noun=='skis')
-                "~No way, dude.~";
-             if (((noun==waxy_scroll) && (self hasnt general)) ||
-                 ((noun==rag) && (self has general)))
-                "~I'm using it, dude.~";
-             }
-             "~Dude, I have no idea what you're talking about.~";
-           Ask: 
-             if (second=='rag')
-                "~A rag makes an excellent ski-maintenance accessory, dude.~";
-             if ((second=='scroll' or 'waxy') && (self hasnt general))
-                "~Something I found at the top of a run. \
-                 Doesn't work too well, but hey, I gotta wax.~";
-             if (second=='skis') 
-                "~My rad Grayslopes Slaloms. If you don't wax 'em \
-                 every 30 seconds, they lose their speed.~";  
-             if ((second=='slopes') || (second=='slope') ||
-                 (second=='powder') || (second=='runs') ||
-                 (second=='skiing'))
-                "The skier takes you aside. ~Listen dude, \
-                between you and me, the slopes here rot. They \
-                used to be way better. But you know, I hear there \
-                are some _killer_ drops up north.~";
-             "~Dude, I have no idea what you're talking about.~";
-           Give:
-             if (noun==rag) {
-                move waxy_scroll to FROSTHAM_Resort;
-                move rag to self;
-                give self general;
-                Achieved(3);
-                "The skier gladly takes the rag and starts \
-                polishing immediately. He lets the scroll \
-                fall to the ground. ~Excellent man, thanks!~";
-             }
-             "~No thanks, dude.~";
-           default: "At the moment, the skier is too busy waxing.";
-        ],
-        each_turn [;
-            if (waxy_scroll notin self && self hasnt general) {
-                Achieved(3);
-                remove self;
-                "^~Dude, like, that scroll thing just \
-vanished! What a cosmic experience!~ On that note, \
-the skier opts to head for the slopes, and leaves to the west.";
-            }
-            if (random(20) < 5)
-               "^The skier polishes a spot on his skis.";
-        ], 
-        before [;
-           Cast:
-              if (the_spell_was == foblub_spell or espnis_spell)
-                 "A pair of fluffy earmuffs the skier is wearing \
-prevents him from hearing the full impact of your sermon.";
-        ],
-   has animate transparent;
-
-Object receptionist "receptionist" FROSTHAM_Governer1
-   with name "receptionist",
-        initial "A receptionist sits behind a desk, engrossed in \
-                the ledger.",
-        description "A gruff-looking lady who apparently is far \
-                more interested in her work than you.",
-        each_turn [;
-           if (receptionist hasnt general) {
-              give receptionist general;
-              "^Without even looking up, the receptionist says, \
-              ~The governor is busy right now.~";
-           }
-           if (random(10) == 1)
-              "^The receptionist turns a page in the ledger.";
-        ],
-        life [;
-           Answer, Order:
-              print "The receptionist";
-              if (special_word=='hello')
-                 ", without looking up, says \
-                 ~Can I help you?~.";
-              " seems to be ignoring you.";
-           Ask:
-              print "The receptionist";
-              if (second=='governor')
-                 ", without looking up, says \
-                 ~He's very busy right now.~.";
-              " shrugs.";
-           default:
-              "The receptionist seems to be ignoring you.";
-        ],   
-        react_before [;
-           Cast: 
-"The receptionist, in a rather shrill voice says, \
-~If you're gonna wait, do it quietly,~ disrupting your chant.";
-           Blow:
-if (noun==whistle)
-"You make an unusually high-pitched noise. The receptionist, \
-in a rather shrill voice says, \
-~If you're gonna wait, do it quietly.~";
-           Sneeze:
-"~If you want to spread germs, do it outside.~";
-           Yell:
-"~If you're gonna wait, do it quietly.~";
-           Sing:
-"~We're not holding auditions, you know.~";
-        ],
-   has animate female;
-
-Object governor "governor" FROSTHAM_Governer2
-   with name "governor" "gov",
-        initial "The governor of Frostham is sitting behind a \
-                 desk here, trying to look busy.",
-        description "A sour-looking man who tries his best not \
-                 to notice you.",
-        each_turn [ i ;
-           if (governor hasnt general) {
-              give governor general;
-              move c2 to player;
-              "^The governor scowls as you enter. ~What do you want?~ \
-               he says, and doesn't wait for a response. ~Oh, I know. \
-               More complaints about the snow, I suppose? Well \
-               look, I didn't ask for this job. Do you want it? I \
-               didn't think so.~ He shoves something into your hand. \
-               ~Here, buy yourself a cup of coffee, and stop \
-               bothering me.~";
-           }
-           i = random(4);
-           print "^The governor ";
-           if (i == 1) 
-              "thumbs through some papers.";
-           if (i==2)
-              "balances a pencil on his nose.";
-           if (i==3)
-              "scribbles something meaningless.";
-           if (i==4)
-              "looks up and notices you. ~Don't you \
-              have anything else to do?~ he says.";
-        ],
-        life [;
-           Ask:
-              if (second=='key' or 'shiny') {
-                 print "~Some key an important visitor \
-forgot while visiting. Probably useless now";
-                 if (parent(cab_key) == player)
-                    print ". You can keep it, for all I care";
-                 ".~";
-              }
-              if (second=='receptionist')
-                 "~I think she's out to lunch,~ he says, \
-with obvious annoyance.";
-              if (second=='magistrate' or 'king' or 'sydney')
-                 "He looks at you suspiciously. \
-~Never heard of him,~ he says.";
-              if (second=='ledger')
-                 "~I think my receptionist has it.~";
-              if (second=='pencil')
-                 "~Please! I'm a very busy man!~";
-              "~Sorry, that's not my problem. Now run along.~";
-           Kiss:
-              "The governor brushes you off. ~Are you \
-planning on running for office or something?~";
-           Attack, ThrowAt:
-              deadflag = 1;
-              "As you make a threatening move, the governor \
-presses some unseen switch behind his desk. Before you \
-know it, a hidden trapdoor opens in the floor and you \
-plunge to your death. A good politician is always \
-prepared, it seems...";
-           Tell:
-              "~Sure, sure. Scram, will you?~";
-           Answer, Order:
-              if (special_word=='hello')
-                 "~Yeah, sure. So what's your problem?~";
-              "The governor is busy trying to look busy.";
-           Give:
-              "Bribing a politician, eh?";
-           Show:
-              if (noun==Gov_ledger)
-                 "~Hey, return that to the receptionist!~"; 
-              "~Please! I'm a very busy man!~";
-        ],
-        react_after [;
-           Take:
-              if (noun == cab_key)
-                 "~Oh sure, just go ahead and take things \
-from my office. See if I care.~";
-        ],
-        before [;
-           Cast:
-             if (the_spell_was == foblub_spell)
-                "Actually, the governor seems pretty glued to his \
-seat already. In any event, nothing seems to happen.";
-             if (the_spell_was == espnis_spell)
-                "The governor seems to nod off, but only for \
-a second.";
-        ],
-   has animate transparent;
-
-
-! ***************
-! More objects...
-! ***************
-
-Object pencil "pencil" governor
-   with name "pencil";
-
-Object c2 "coin" class coin_class;
-
-! (cereal box prizes)
-Object whistle "whistle" cerealbox2
-   with name "whistle",
-        description "A tiny plastic whistle.",
-        !weight 1,
-        size 1,
-        before [;
-           Blow: 
-              "You make an unusually high-pitched noise.";
-        ],
-;
-! (a fancier packaged prize :)
-Object plastic_wrapper "plastic wrapper" cerealbox3
-   with name "wrapper" "plastic",
-        description "A small plastic see-through package.",
-        before [;
-           Open:
-              while (child(self)~=0) move child(self) to parent(self);
-              remove plastic_wrapper;
-              "The wrapper rips open with ease, and disintegrates, \
-              leaving the contents behind.";
-        ],
-        !weight 0,
-        size 5,
-   has container openable transparent;
-   
-Object toy_volcano "toy volcano" plastic_wrapper
-   with name "toy" "volcano",
-        description "A strange thing indeed -- a miniature \
-              ceramic toy, that has been painted and shaped \
-              in painstaking detail to look like a volcano.",
-        !weight 5,
-        size 5,
-;
-
-Object volcano_note "instruction notice" plastic_wrapper
-   with name "notice" "instruction",
-        article "an",
-        description "~Frobozz Instant Volcano~^^\
-        (parental supervision recommended)^^\
-        To use:  Just add a good quantity of water! We suggest \
-        a very large safety radius.~",
-        size 5,
-;
-        
-
-
-! ******************
-! Scrolls and spells
-! ******************
-
-Object waxy_scroll "waxy scroll" ski_instructor
-   class scroll_class,
-   with name "waxy",
-;
-
-Object egdelp_spell "create waxy build-up on wood" waxy_scroll
-   class spell_class,
-   with name "egdelp",
-        magic [;
-           if (second ~= 0 && second ~= player) {
-           CDefArt(second); " looks pretty polished as is."; }
-           else { "The chant, seeking wood to polish, fails."; }
-        ],
-;
-
-Object sugar_scroll "sugar-coated scroll" cerealbox1
-   class scroll_class,
-   with name "sugar-coated" "coated",
-;
-
-Object zemdor_spell "triplicate object" sugar_scroll
-   class spell_class,
-   with name "zemdor",
-        number 0,
-        magic [;
-           if (second == 0)
-              "The chant, seeking a locus for \
-triplication, fails.";
-           if (second has animate)
-              "The chant, not designed for living creatures, fails.";
-           if (second has is_spell)
-"This violates certain unwritten laws of magic.";
-           if (second has is_coin) {
-              ! new twist for zemdor, as sugg. by player
-              print "The coin shimmers suddenly! You blink in \
-                 disbelief as the coin seems to split \
-                 into three copies of itself! ";
-              if (self hasnt general) {
-                 give self general;
-                 move c12 to parent(second);
-                 move c13 to parent(second);
-                 "You notice there are now three coins where \
-there was once but one!";   
-              }
-              "Suddenly, a financial nymph appears! She gives \
-you a denunciatory look. ~Line 7234-6 of the Pierpont \
-tax laws clearly states that repeated unauthorized \
-triplication of monetary \
-items is strictly forbidden,~ she says, and takes the \
-the two newly created coins before disappearing.";
-           }
-           print (The) second, " shimmers suddenly! You blink in \
-                 disbelief as ", (the) second, " seems to split \
-                 into three copies of itself! ";
-                 "But, as you finish the chant, \
-                 the mystic energy seems to fade, and the copies \
-                 coalesce back into one unchanged object. The \
-chant fails.";
-        ],
-;
-
-Object c12 "coin" class coin_class;
-Object c13 "coin" class coin_class;
-