|
|
1.1 root 1: {*** TRANSITIONS ***}
2: hitms = (($eq ($verb) %1) :
3: (%2 : ($move .ME %2))
4: ($setg GO TRUE)
5: (%3: (($parm 3)))
6: )
7: ;
8: synvb = (($eq ($verb) %1) :
9: ($setg Verb %2));
10: road1(ACTION) = ($setv n s e w ne nw se sw u d)
11: (hitms n gard1 0)
12: (hitms s gard5 0)
13: (hitms e road2 0)
14: (hitms w road3 0)
15: (hitms ne gard2 0)
16: (hitms nw gard3 0)
17: (hitms se gard6 0)
18: (hitms sw gard7 0)
19: ;
20:
21: road2(ACTION) =
22: (hitms n gard2 0)
23: (hitms s gard6 0)
24: (hitms e road7 0)
25: (hitms w road1 0)
26: (hitms ne gard2 0)
27: (hitms nw gard1 0)
28: (hitms se gard6 0)
29: (hitms sw gard5 0)
30: ;
31:
32: road3(ACTION) =
33: (hitms n gard3 0)
34: (hitms s gard7 0)
35: (hitms e road1 0)
36: (hitms w road8 entr8)
37: (hitms ne gard1 0)
38: (hitms nw gard3 0)
39: (hitms se gard5 0)
40: (hitms sw gard7 0)
41: ;
42:
43: road4(ACTION) =
44: (hitms n farm1 0)
45: (hitms s road7 0)
46: (hitms e frst1 0)
47: (hitms w gard2 0)
48: (hitms ne frst1 0)
49: (hitms nw gard2 0)
50: (hitms se frst1 0)
51: (hitms sw gard2 0)
52: ;
53:
54: road5(ACTION) =
55: (hitms n road7 0)
56: (hitms s road6 0)
57: (hitms e frst1 0)
58: (hitms w gard6 0)
59: (hitms ne frst1 0)
60: (hitms nw gard6 0)
61: (hitms se frst1 0)
62: (hitms sw gard6 0)
63: ;
64:
65: road6(ACTION) =
66: (hitms n road5 0)
67: (hitms s town1 0)
68: (hitms e frst1 0)
69: (hitms w gard6 0)
70: (hitms ne frst1 0)
71: (hitms nw gard6 0)
72: (hitms se frst1 0)
73: (hitms sw gard6 0)
74: ;
75:
76: road7(ACTION) =
77: (hitms n road4 0)
78: (hitms s road5 0)
79: (hitms e frst1 0)
80: (hitms w road2 0)
81: (hitms ne frst1 0)
82: (hitms nw gard2 0)
83: (hitms se frst1 0)
84: (hitms sw gard6 0)
85: ;
86:
87: road8(ACTION) = ($miss tress tress east8 west8 0 0 0 0 0 0);
88:
89: east8 =
90: ($setg GO TRUE)
91: ( ($eq @HWY8 0) : ($move .ME road3)
92: { ELSE } : (dump8 ($cont road8))
93: ($setg HWY8 ($minus @HWY8 1))
94: (get8 ($cont roadx))
95: (Slook 0 ($loc .ME))
96: ($setg LOOKP FALSE)
97: );
98:
99: west8 =
100: ($setg GO TRUE)
101: (dump8 ($cont road8))
102: ($setg HWY8 ($plus @HWY8 1))
103: (get8 ($cont roadx))
104: (Slook 0 ($loc .ME))
105: ($setg LOOKP FALSE);
106:
107: dump8 = (($link %1) : (dump8 ($link %1))) { start at bottom }
108: (($ne %1 .ME) : { Everything else leaves }
109: ($setp %1 RDLOC @HWY8) { Retain its location on HWY 8 }
110: ($move %1 roadx) { Put it in the box }
111: );
112:
113: get8 = ( %1 :
114: (get8 ($link %1))
115: (($eq ($prop %1 RDLOC) @HWY8) :
116: ($move %1 road8)
117: )
118: );
119:
120: entr8 = (dump8 ($cont road8))
121: ($setg HWY8 0)
122: (get8 ($cont roadx));
123:
124:
125:
126:
127:
128:
129: gard1(ACTION) =
130: (hitms n gard4 0)
131: (hitms s road1 0)
132: (hitms e gard2 0)
133: (hitms w gard3 0)
134: ;
135:
136: gard2(ACTION) =
137: (hitms n gard4 0)
138: (hitms s road2 0)
139: (hitms e gard2 0)
140: (hitms w gard1 0)
141: ;
142:
143: gard3(ACTION) =
144: (hitms n gard4 0)
145: (hitms s road3 0)
146: (hitms e gard1 0)
147: (hitms w gard3 0)
148: ;
149:
150: gard4(ACTION) =
151: (hitms n gard4 0)
152: (hitms s gard1 0)
153: (hitms e gard2 0)
154: (hitms w gard3 0)
155: ;
156:
157:
158: gard5(ACTION) =
159: (hitms n road1 0)
160: (hitms s gard8 0)
161: (hitms e gard6 0)
162: (hitms w gard7 0)
163: ;
164:
165: gard6(ACTION) =
166: (hitms n road2 0)
167: (hitms s gard8 0)
168: (hitms e gard6 0)
169: (hitms w gard5 0)
170: ;
171:
172: gard7(ACTION) =
173: (hitms n road3 0)
174: (hitms s gard8 0)
175: (hitms e gard5 0)
176: (hitms w gard7 0)
177: ;
178:
179: gard8(ACTION) =
180: (hitms n gard5 0)
181: (hitms s gard8 0)
182: (hitms e gard6 0)
183: (hitms w gard7 0)
184: ;
185:
186:
187:
188:
189: frst1(ACTION) =
190: (hitms n frst3 0)
191: (hitms s frst1 0)
192: (hitms e frst2 0)
193: (hitms w frst2 0)
194: ;
195:
196: frst2(ACTION) =
197: (hitms n frst1 0)
198: (hitms s frst2 0)
199: (hitms e frst2 0)
200: (hitms w frst1 0)
201: ;
202:
203: frst3(ACTION) =
204: (hitms n frst1 0)
205: (hitms s frst4 0)
206: (hitms e frst2 0)
207: (hitms w frst2 0)
208: ;
209:
210: frst4(ACTION) =
211: (hitms n frst3 0)
212: (hitms s frst2 0)
213: (hitms e frst1 0)
214: (hitms w road7 0)
215: ;
216:
217:
218: farm1 (ACTION) =
219: (synvb enter north)
220:
221: (hitms n farm2 0)
222: (hitms s road4 0)
223: (hitms e farm3 0)
224: (hitms w farm4 0)
225: (hitms ne farm3 0)
226: (hitms nw farm4 0)
227: ;
228:
229: farm2 (ACTION) =
230: (synvb out s)
231: (synvb enter n)
232: (synvb east up)
233:
234: (hitms n farm6 0)
235: (hitms s farm1 0)
236: (hitms up farm7 0)
237: ;
238:
239: farm3 (ACTION) =
240: (hitms n farm5 0)
241: (hitms s farm1 0)
242: (hitms e frst1 0)
243: (hitms nw farm5 0)
244: (hitms sw farm1 0)
245: ;
246:
247: farm4 (ACTION) =
248: (hitms n farm5 0)
249: (hitms s farm1 0)
250: (hitms w gard4 0)
251: (hitms ne farm5 0)
252: (hitms se farm1 0)
253: ;
254:
255: farm5 (ACTION) =
256: (hitms e farm3 0)
257: (hitms w farm4 0)
258: (hitms se farm3 0)
259: (hitms sw farm4 0)
260: ;
261:
262: farm6 (ACTION) =
263: (hitms out farm2 0)
264: (hitms s farm2 0)
265: ;
266: farm7 (ACTION) =
267: (hitms e farm2 0)
268: (hitms d farm2 PanL)
269: ;
270:
271:
272: town1 (ACTION) =
273: (hitms n road6 0)
274: (hitms s town2 0)
275: (hitms e town3 0)
276: (hitms w town4 0)
277: ;
278:
279: town2 (ACTION) =
280: (hitms n town1 0)
281: (hitms e town5 0)
282: (hitms w town6 0)
283: ;
284:
285: town3 (ACTION) =
286: (hitms out town1 0)
287: (hitms w town1 0)
288: ;
289:
290: town4 (ACTION) =
291: (hitms e town1 0)
292: (hitms out town1 0)
293: ;
294:
295: town5 (ACTION) =
296: (hitms w town2 0)
297: (hitms out town2 0)
298: (TWN5x);
299:
300: town6 (ACTION) =
301: (hitms e town2 0)
302: (hitms out town2 0)
303: ;
304:
305:
306: cel01 (ACTION) =
307:
308: (hitms n cel02 0)
309: (hitms s 0 ny)
310: (hitms w cel04 0)
311: (hitms u farm7 0)
312: ;
313: cel02 (ACTION) =
314: (hitms n cel05 0)
315: (hitms s cel01 0)
316: (hitms e 0 ny)
317: ;
318:
319: cel03 (ACTION) =
320: (hitms s cel05 0)
321: (hitms w cel13 0)
322: (hitms ne cel09 0)
323: (hitms d cel09 0)
324: ;
325:
326: cel04 (ACTION) =
327: (synvb down north)
328: (hitms n cel10 0)
329: (hitms e cel01 0)
330: (hitms w cel08 0)
331: ;
332:
333:
334: MV56=($setg Cel6x 5);
335: MV76=($setg Cel6x 7);
336: MV67=( ($and ($ne @Cel6x 7)
337: ($prop dragon AWAKE)): ($say
338: "The ice dragon blocks your attempt to cross!\n\n")
339: : ($move .ME cel07) );
340:
341: MV65=( ($and ($ne @Cel6x 5)
342: ($prop dragon AWAKE)): ($say
343: "The ice dragon blocks your attempt to leave!\n")
344: : ($move .ME cel05) );
345:
346:
347: cel05 (ACTION) =
348: (hitms n cel03 0)
349: (hitms s cel02 0)
350: (hitms ne cel06 MV56)
351: ;
352:
353: cel06 (ACTION) =
354: (hitms e 0 MV67)
355: (hitms w 0 MV65)
356: (($eq ($loc .ME) cel06) {still here}:
357: ($setg LOOKP TRUE)
358: )
359: ;
360:
361: cel07 (ACTION) =
362: (synvb out west)
363: (hitms w cel06 MV76)
364: ;
365:
366: cel08 (ACTION) =
367: (hitms e cel04 0)
368: (hitms w 0 ny)
369: ;
370:
371: cel09 (ACTION) =
372: (hitms n 0 ny)
373: ;
374:
375: cel10 (ACTION) =
376: (hitms s cel04 0)
377: (hitms d cel11 0)
378: ;
379:
380: cel11 (ACTION) =
381: (hitms e cel12 0)
382: (hitms n 0 ny)
383: ;
384:
385: cel12 (ACTION) =
386: (hitms n cel11 0)
387: (hitms e 0 ny)
388: ;
389:
390: cel13 (ACTION) = (($eq ($verb) down):
391: (($prop cel13 HOLED):
392: ($say "You plunge into the icy waters!\n")
393: ($move .ME cel14)
394: ($exit 1)
395: )
396: )
397: (($eq ($verb) drop):
398: (cdrop)
399: (($not ($prop cel13 HOLED)):
400: (($ge ($prop ($dobj) WEIGH)
401: ($prop [red crystal] WEIGH)
402: ):
403: ($say
404: "You have broken the ice! You watch helplessly as ")
405: (($sdesc ($dobj)))
406: ($say "
407: sinks swiftly into the dark and frigid depths.\n")
408: ($setp cel13 HOLED TRUE)
409: ($move hole cel13)
410: ($move ($dobj) .ALL)
411: ($exit 1)
412: {else}: {give him a hint}
413: ($say
414: "The icy floor chips a little, but remains intact.\n")
415: )
416: )
417: ($exit 1)
418: )
419: (hitms e cel03 0)
420: (hitms w 0 ny)
421: ;
422:
423: cel14 (ACTION) =
424: (($eq ($verb) up):
425: (($prop cel13 HOLED):
426: ($say "You pop out through a hole in the ice!\n")
427: ($move .ME cel13)
428: ($exit 1)
429: :{else}
430: ($say "You are blocked by an icy roof above!\n")
431: )
432: )
433: (hitms w cel15 0)
434:
435: (($eq ($loc .ME) cel14): { Poor sap didn't move.}
436: ($say
437: "Your breath expires. The last thing you feel is the odd sensation
438: of water filling your lungs. ") (die)
439: );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.