Constant TINY_P = 0; Constant TALL_P = 1; Constant HUGE_P = 2; Room At_West_End_Of_Twopit_Room "At West End of Twopit Room" with name 'west' 'w//' 'end' 'of' 'twopit' 'room', description "You are at the west end of the twopit room. There is a large hole in the wall above the pit at this end of the room.", e_to At_East_End_Of_Twopit_Room, w_to In_Slab_Room, d_to In_West_Pit, u_to "It is too far up for you to reach.", before [; Enter: if (noun == HoleAbovePit_1) "It is too far up for you to reach."; ]; Object PlantStickingUp "beanstalk" with name 'plant' 'beanstalk' 'stalk' 'bean' 'giant' 'tiny' 'little' 'murmuring' 'twelve' 'foot' 'tall' 'bellowing', describe [; if (Plant.height == TALL_P) "The top of a 12-foot-tall beanstalk is poking out of the west pit."; "There is a huge beanstalk growing out of the west pit up to the hole."; ], before [; Examine: RunRoutines(self, describe); rtrue; Climb: if (Plant.height == HUGE_P) <>; ], found_in At_West_End_Of_Twopit_Room At_East_End_Of_Twopit_Room, has absent static; Scenic HoleAbovePit_1 "hole above pit" with name 'hole' 'large' 'above' 'pit', description "The hole is in the wall above the pit at this end of the room.", found_in In_West_Pit At_West_End_Of_Twopit_Room; ! ------------------------------------------------------------------------------ Room In_West_Pit "In West Pit" with name 'in' 'west' 'pit', description "You are at the bottom of the western pit in the twopit room. There is a large hole in the wall about 25 feet above you.", before [; Climb: if (noun == Plant) rfalse; if (Plant.height == TINY_P) "There is nothing here to climb. Use ~up~ or ~out~ to leave the pit."; ], u_to At_West_End_Of_Twopit_Room, has nodwarf; Object -> Plant "plant" with name 'plant' 'beanstalk' 'stalk' 'bean' 'giant' 'tiny' 'little' 'murmuring' 'twelve' 'foot' 'tall' 'bellowing', describe [; switch (self.height) { TINY_P: "There is a tiny little plant in the pit, murmuring ~Water, water, ...~"; TALL_P: "There is a 12-foot-tall beanstalk stretching up out of the pit, bellowing ~Water!! Water!!~"; HUGE_P: "There is a gigantic beanstalk stretching all the way up to the hole."; } ], before [; Climb: switch (self.height) { TINY_P: "It's just a little plant!"; TALL_P: print "You have climbed up the plant and out of the pit.^"; PlayerTo(At_West_End_Of_Twopit_Room); rtrue; HUGE_P: print "You clamber up the plant and scurry through the hole at the top.^"; PlayerTo(In_Narrow_Corridor); rtrue; } Take: "The plant has exceptionally deep roots and cannot be pulled free."; Water: if (bottle notin player) "You have nothing to water the plant with."; switch (child(bottle)) { nothing: "The bottle is empty."; oil_in_the_bottle: remove oil_in_the_bottle; "The plant indignantly shakes the oil off its leaves and asks, ~Water?~"; } remove water_in_the_bottle; switch ((self.height)++) { TINY_P: print "The plant spurts into furious growth for a few seconds.^^"; give PlantStickingUp ~absent; TALL_P: print "The plant grows explosively, almost filling the bottom of the pit.^^"; HUGE_P: print "You've over-watered the plant! It's shriveling up! It's, it's...^^"; give PlantStickingUp absent; remove PlantStickingUp; self.height = TINY_P; } <>; Oil: <>; Examine: self.describe(); rtrue; ], height TINY_P; ! ------------------------------------------------------------------------------ Room At_East_End_Of_Twopit_Room "At East End of Twopit Room" with name 'east' 'e//' 'end' 'of' 'twopit' 'room', description "You are at the east end of the twopit room. The floor here is littered with thin rock slabs, which make it easy to descend the pits. There is a path here bypassing the pits to connect passages from east and west. There are holes all over, but the only big one is on the wall directly over the west pit where you can't get to it.", e_to In_Swiss_Cheese_Room, w_to At_West_End_Of_Twopit_Room, d_to In_East_Pit; Scenic -> "thin rock slabs" with name 'slabs' 'slab' 'rocks' 'stairs' 'thin' 'rock', description "They almost form natural stairs down into the pit.", before [; LookUnder, Push, Pull, Take: "Surely you're joking. You'd have to blast them aside."; ], has multitude; ! ------------------------------------------------------------------------------ Room In_East_Pit "In East Pit" with name 'in' 'east' 'e//' 'pit', description "You are at the bottom of the eastern pit in the twopit room. There is a small pool of oil in one corner of the pit.", u_to At_East_End_Of_Twopit_Room, has nodwarf; Scenic -> Oil "pool of oil" with name 'pool' 'oil' 'small', description "It looks like ordinary oil.", before [; Drink: "Absolutely not."; Take: if (bottle notin player) "You have nothing in which to carry the oil."; <>; Insert: if (second == bottle) <>; "You have nothing in which to carry the oil."; ]; Scenic "hole above pit" with name 'hole' 'large' 'above' 'pit', description "The hole is in the wall above you.", found_in In_East_Pit At_East_End_Of_Twopit_Room; ! ------------------------------------------------------------------------------ Room In_Slab_Room "Slab Room" with name 'slab' 'room', description "You are in a large low circular chamber whose floor is an immense slab fallen from the ceiling (slab room). East and west there once were large passages, but they are now filled with boulders. Low small passages go north and south, and the south one quickly bends west around the boulders.", s_to At_West_End_Of_Twopit_Room, u_to In_Secret_N_S_Canyon_0, n_to In_Bedquilt; Scenic -> "slab" with name 'slab' 'immense', description "It is now the floor here.", before [; LookUnder, Push, Pull, Take: "Surely you're joking."; ]; Scenic -> "boulders" with name 'boulder' 'boulders' 'rocks' 'stones', description "They're just ordinary boulders.", has multitude;