|
|
1.1 root 1: cg = ($say "Can't go that way.\n");
2: ny = ($say "That exit seems impassable today!?\n");
3:
4: die = ($say "You are dead. Better luck next time.\n")
5: ($spec 3 0 0 0 0);
6:
7: VERB n,s,e,w,ne,se,nw,sw;
8: VERB up,down;
9: VERB enter,out;
10:
11: u=up; d=down;
12: north=n; south=s; east=e; west=w;
13:
14: Looks = ($setg LOOKP TRUE)(($dobj): ($say "Huh?\n")($exit 1));
15: ccg = (($not @GO) :
16: (cg)
17: )
18: ($setg GO FALSE)
19: ;
20:
21:
22: n (PREACT) = Looks; n (ACTION) = ccg;
23: s (PREACT) = Looks; s (ACTION) = ccg;
24: e (PREACT) = Looks; e (ACTION) = ccg;
25: w (PREACT) = Looks; w (ACTION) = ccg;
26:
27: nw(PREACT) = Looks; nw(ACTION) = ccg;
28: ne(PREACT) = Looks; ne(ACTION) = ccg;
29: sw(PREACT) = Looks; sw(ACTION) = ccg;
30: se(PREACT) = Looks; se(ACTION) = ccg;
31:
32: u (PREACT) = Looks; u (ACTION) = ccg;
33: d (PREACT) = Looks; d (ACTION) = ccg;
34:
35: out (PREACT) = Looks; out(ACTION) = ccg;
36: enter (PREACT) = Looks; enter(ACTION) = ccg;
37:
38: VERB say;
39: say (PREACT) =
40: (($not ($dobj)):
41: ($say "Type just what you want to say: ")
42: ($setg Dobj ($read)))
43: (($ge ($dobj) 0) :
44: ($say "You want to make ")
45: (($sdesc ($dobj)))
46: ($say " a linguistic artifact?? Strange!\n")
47: ($exit 1));
48: say (ACTION) =
49: (($eqst ($dobj) Shazm) :
50: (WzTgl)
51: :{else}
52: ($say "Very well. '")($say ($dobj))($say "'.\n"));
53: incant = say; chant = say; shout = say; yell = say;
54:
55: VERB take; VERB drop;
56: take(PREACT) = (Avail ($dobj))
57: (($eq ($prop ($dobj) WEIGH) CAPAC):
58: ($say "You can't take that!\n")
59: ($exit 1)
60: )
61: (($ge ($plus ($prop .ME HAS)
62: ($prop ($dobj) WEIGH))
63: ($prop .ME HOLDS)):
64: ($say "You can't carry that much more!\n")
65: ($exit 1)
66: );
67: drop(PREACT) =
68: (($ne ($loc ($dobj)) .ME) :
69: ($say "You don't have it with you.\n")($exit 1));
70: ROUTINE ctake; ROUTINE cdrop;
71:
72:
73: DWIMD = (($not (See ($dobj) ($cont ($loc .ME)))):
74: ($rtrn 0)
75: )
76: (($not (Reach ($dobj) ($cont ($loc .ME)))):
77: ($rtrn 0)
78: )
79: (($and ($eq ($verb) take) ($eq ($loc ($dobj)) .ME)):
80: ($rtrn 0)
81: )
82: (($and ($eq ($verb) drop) ($ne ($loc ($dobj)) .ME)):
83: ($rtrn 0)
84: )
85: ($rtrn 1)
86: ;
87:
88: DWIMI = (($not (See ($iobj) ($cont ($loc .ME)))):
89: ($rtrn 0)
90: )
91: (($not (Reach ($iobj) ($cont ($loc .ME)))):
92: ($rtrn 0)
93: )
94: (($and ($eq ($verb) take) ($eq ($loc ($iobj)) .ME)):
95: ($rtrn 0)
96: )
97: (($and ($eq ($verb) drop) ($ne ($loc ($iobj)) .ME)):
98: ($rtrn 0)
99: )
100:
101: ($rtrn 1)
102: ;
103:
104:
105:
106:
107:
108: take(ACTION) = (ctake);
109: ctake =
110: ($setp .ME HAS ($plus ($prop .ME HAS) ($prop ($dobj) WEIGH) ) )
111: {($say "You are holding ")($num ($prop .ME HAS))($say " lbs.\n")}
112: ($say "Taken.\n") ($move ($dobj) .ME)
113: ;
114:
115: drop(ACTION) = (cdrop);
116: cdrop =
117: ($say "Dropped.\n") ($move ($dobj) ($loc .ME))
118: ($setp .ME HAS ($minus ($prop .ME HAS)($prop ($dobj) WEIGH)))
119: ;
120:
121: VERB put;
122: put (PREACT) =
123: (($ne ($loc ($dobj)) .ME) :
124: ($say "You don't have it with you.\n")($exit 1))
125: (Avail ($iobj));
126: put(ACTION) =
127: (($not ($and ($prop ($iobj) OPEN)
128: ($prop ($iobj) OPENS))):
129: ($say "You can't seem to manage that trick.\n")($exit 0))
130: (($gt ($plus ($prop ($iobj) HAS)
131: ($prop ($dobj) WEIGH))
132: ($prop ($iobj) HOLDS)):
133: ($say "It won't fit!\n")($exit 0))
134: ($say "OK\n") ($move ($dobj) ($iobj))
135: ($setp ($iobj) HAS ($plus ($prop ($iobj) HAS) ($prop ($dobj) WEIGH)))
136: ;
137:
138:
139:
140:
141:
142:
143:
144:
145:
146: VERB open; VERB close;
147: open(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj)));
148: close(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj)));
149: open(ACTION) =
150: (($not ($prop ($dobj) OPENS)):
151: ($say "I don't know how to open that!\n")($exit 0))
152: (($and ($prop ($dobj) LOCKS)
153: ($prop ($dobj) LOCKD)):
154: ($say "I can't open it, it's locked!\n")($exit 0))
155: (($prop ($dobj) OPEN):
156: ($say "It's already open!\n")($exit 0))
157: ($setp ($dobj) OPEN TRUE)
158: ($say "Opened.\n")
159: (($and ($ne 0 ($cont ($dobj))) ($not ($prop ($dobj) TRANS))):
160: (Llook 1 ($cont ($dobj)))
161: )
162: ;
163:
164: close (ACTION) =
165: (($not ($prop ($dobj) OPENS)):
166: ($say "I don't know how to close that!\n")($exit 0))
167: (($not ($prop ($dobj) OPEN)):
168: ($say "It's already closed!\n")($exit 0))
169: ($setp ($dobj) OPEN FALSE)
170: ($say "Closed\n")
171: ;
172:
173:
174: VERB lock; VERB unlock;
175: lock(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj)));
176: unlock(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj)));
177:
178: Lockact =
179: (($prop ($dobj) LOCKS) :
180: ($say "Hm, you don't seem to have the right key.\n")
181: {else}:
182: ($say "I don't know how to lock or unlock such a thing.\n")
183: );
184:
185: lock(ACTION) = Lockact;
186: unlock(ACTION) = Lockact;
187:
188: Lockup =
189: (($prop %1 OPEN):
190: ($say "You must close it first.\n")($exit 1))
191: (($prop %1 LOCKD):
192: ($say "It's already locked!\n")($exit 1))
193: (($not ($prop %1 LOCKS)):($exit 0))
194: (($eq ($loc %2) .ME):
195: ($say %3)
196: ($setp %1 LOCKD TRUE)
197: ($exit 1))
198: ;
199: Ulock =
200: (($not($prop %1 LOCKD)):
201: ($say "It's already unlocked!\n")($exit 1))
202: (($not ($prop %1 LOCKS)):($exit 0))
203: (($eq ($loc %2) .ME):
204: ($say %3)
205: ($setp %1 LOCKD FALSE)
206: ($exit 1))
207: ;
208:
209:
210:
211:
212: VERB move;
213: move(PREACT) = (Avail ($dobj));
214: move(ACTION) =
215: ($say "Nothing seems to happen.\n");
216: push=move;
217: pull=move;
218: lift=move;
219:
220: VERB break;
221: break(PREACT) = (Avail ($dobj));
222: break(ACTION) =
223: ($say "It seems to be unbreakable.\n");
224:
225: VERB wake;
226: wake(PREACT) = (Avail ($dobj));
227: wake(ACTION) = ($say "I don't know how to wake ")(($sdesc ($dobj)))
228: ($say ".\n");
229:
230: VERB strike; hit=strike; kill=strike;
231: strike(PREACT) = (Avail ($dobj))
232: (($iobj):
233: (($ne ($loc ($iobj)) .ME):
234: ($say "You don't have it with you.\n")
235: ($exit 1)
236: )
237: );
238: strike(ACTION) = ($say "Hitting ")(($sdesc ($dobj)))($say
239: " doesn't seem to do anything.");
240:
241: VERB touch; feel=touch;
242: touch(PREACT) = (Avail ($dobj))
243: (($iobj):
244: (($ne ($loc ($iobj)) .ME):
245: ($say "You don't have it with you.\n")
246: ($exit 1)
247: )
248: );
249: touch(ACTION) = ($say "Touching ")(($sdesc ($dobj)))
250: ($say " doesn't seem too useful.\n");
251:
252:
253:
254:
255:
256:
257: VERB rub;
258: rub(PREACT) = (Avail ($dobj));
259: rub(ACTION) = ($say "Nothing happens when you rub ")
260: (($sdesc ($dobj)))($say ".\n");
261:
262: VERB cut;
263: cut(PREACT) = (($not ($iobj)): ($say "You need tools to do that.\n")
264: ($exit 1))
265: (Avail ($iobj));
266:
267: VERB pry;
268: pry(PREACT) = (Avail ($dobj))
269: (($not ($iobj)): ($say "You need tools to do that.\n")
270: ($exit 1))
271: (Avail ($iobj));
272:
273: pry(ACTION) = ($say "I can't seem to manage that.\n");
274:
275: VERB throw;
276: throw(PREACT) = (($ne ($loc ($dobj)) .ME): ($say "You aren't holding it!\n")
277: ($exit 1));
278: throw(ACTION) = ($move ($dobj) ($loc .ME))
279: ($say "Thrown.\n");
280:
281: VERB read;
282: read(PREACT) = (Avail ($dobj));
283: read(ACTION) = ($say "It doesn't have anything on it to read.\n");
284:
285: VERB light;
286: light(PREACT) = (Avail ($dobj));
287:
288: tress = ($say "You were warned about trespassing! The fence is electrified!\n")
289: (die);
290:
291:
292:
293: VERB look;
294: VERB quit;
295: VERB inven;
296: VERB score;
297: VERB save;
298: VERB restore;
299:
300: look(ACTION) = (Llook 0 ($loc .ME))
301: ;
302: inven(ACTION) = (($not ($cont .ME)):
303: ($say "You are empty-handed.\n")
304: ($exit 1))
305: ($setp .ME CONTS TRUE)
306: ($say "You are carrying:\n")
307: (Slook 1 ($cont .ME))
308: ;
309: quit(ACTION) = ($spec 3 0 0 0 0);
310:
311: score(ACTION) =
312: (($eq ($loc .ME) town5):
313: ($say
314: "A mysterious glowing network of lights appears, and you can
315: just make out the words:
316: Your account is now at $")
317: ($num @SCORE)
318: ($say ".
319: Thank you for letting Arpa-Citizen's be your host.\n")
320: ($say
321: "The network then disappears.\n")
322: {else}:
323: ($say
324: "Hmm, you'll have to check at the local bank.\n"));
325:
326:
327: save(ACTION) = ($spec 4 0 0 0 0);
328: restore(ACTION) = ($spec 5 0 0 0 0);
329:
330: { Wizardly Tricks }
331:
332: VERB Debug, BEAM, JOIN, Open, GLOW,GRAB, WHERE;
333: WizP = (($not @Wizrd) :
334: ($say "Only a real Wizard can do that!\n")
335: ($exit 1)
336: );
337: Debug(PREACT) = WizP;
338: BEAM(PREACT) = WizP;
339: GRAB(PREACT) = WizP;
340: JOIN(PREACT) = WizP;
341: Open(PREACT) = WizP;
342: GLOW(PREACT) = WizP;
343: WHERE(PREACT) = WizP;
344:
345: Debug(ACTION) = ($spec 8 8 0 0 0);
346: BEAM(ACTION) = ($move .ME ($dobj))
347: ($setg LOOKP TRUE);
348: JOIN(ACTION) = ($move .ME ($loc ($dobj)))
349: ($setg LOOKP TRUE);
350: Open(ACTION) = ($setp ($dobj) OPEN TRUE)($say "Opened.\n");
351: GLOW(ACTION) = ($setp .ME LIGHT ($not ($prop .ME LIGHT)))
352: (($prop .ME LIGHT) :
353: ($say
354: "Your body begins to radiate a strong but gentle white light!\n")
355: : ($say
356: "The light from your body fades away.\n"));
357: GRAB(ACTION) = ($say "You have the ")($name ($dobj))($say ", Boss!\n")
358: ($move ($dobj) .ME);
359: WHERE(ACTION) = ($say "The True Name of this place is '")
360: ($name ($loc .ME))
361: ($say "'.\n");
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.