1 ! This source is public domain
3 Constant Story "Pick Up the Phone Booth and Dye";
4 Constant Headline "^This game is public domain^
5 Eric Schmidt <eschimdt@@64safeaccess.com>^";
10 Constant MAX_SCORE = 20;
21 "Unfortunately, you do not have enough hands to hold
22 both the bucket and the phone booth. You drop the booth
26 CompassDirection ground "ground" compass
27 with name 'ground', door_dir d_to;
29 Object field "Field" has light
30 with description "This is just an ordinary field in the middle
31 of nowhere. You have no idea why you're here.";
33 Object -> booth "phone booth" has supporter enterable
34 with name 'large' 'phone' 'booth',
35 description [; if (dye notin self)
36 "The phone booth is large and has the word ~TELEPHONE~
37 in red in the front.";
38 "The phone booth is large and has dye splattered all
41 before [; Open: "Try as you might, you cannot force the booth open!"; ],
44 if (bucket in player) { Boothdeath(); rtrue; }
45 print "You grasp the phone booth and slowly lift it up.";
48 print " The bucket falls off the phone booth and hits
52 " The dye pours out of the bucket.";
58 "^^You have managed to pick up the phone booth
59 and the dye at the same time. Congratulations!";
65 Object -> bucket "bucket" has container open
66 with name 'white' 'bucket' 'pail',
67 description "The bucket is all white.",
69 Take: if (player in booth && bucket notin booth)
70 "You can't reach the bucket.";
71 Pour: if (dye notin self)
72 "The dye is no longer available.";
74 Receive: if (noun == player) "I don't think you'd fit.";
75 if (noun == booth) "That's impossible.";
78 Take: if (booth in player) { BoothDeath(); rtrue; }
79 "You take the bucket.";
82 Object -> -> dye "dye"
83 with name 'thin' 'blue' 'dye',
85 description "The dye is thin and blue.",
86 before [; Take: if (self notin bucket)
87 "You cannot hold the dye with your bare hands.";
88 if (bucket in player) "You already have that.";
91 "You cannot hold the dye with your bare hands.";
93 if (self in bucket) <<Drop bucket>>;
95 if (bucket notin player || self notin bucket)
96 "You don't have the dye.";
100 "You pour the dye all over the booth. It
104 "You pour the dye over the sign. It soon
107 "How would you manage that?";
108 selfobj: "You comtemplate this, but decide
110 d_obj, ground: remove self;
111 "You pour the dye into the ground.";
114 PutOn: <<Pour self second>>;
115 Drink: remove self; "Well, that didn't taste half-bad.";
118 Object -> sign "sign" has static supporter
120 description [; if (dye notin self)
121 "The sign reads, ~To win the game, you must
122 be holding both the booth and the dye at the
124 "Some moron put dye all over the sign, and you can't
129 if (noun == bucket) {
130 if (player in booth) "From way up here?";
131 move bucket to field;
132 print "You attempt to balance the bucket on the sign, but it
136 " The dye spills out of the bucket and soaks into the ground.";
141 if (noun == booth) "That doesn't seem very realistic, does it?";
147 "You can't pour ", (the) noun, ".";
151 if (dye in sign or nothing) {
153 "A chilly gale picks up, but recedes after a few seconds.";
155 "Nothing seems to happen.";
158 Verb 'pour' 'slosh' 'splatter'
159 * noun 'over'/'on'/'onto' noun -> Pour;
161 Verb 'xyzzy' * -> Xyzzy;