Document explicitly what m-prefix does to each command
[aNetHack.git] / dat / sokoban.des
blobc4983451d44be16b1f6f2001c06406a10dce079c
1 # NetHack 3.6   sokoban.des     $NHDT-Date: 1432512784 2015/05/25 00:13:04 $  $NHDT-Branch: master $:$NHDT-Revision: 1.13 $
2 #       Copyright (c) 1998-1999 by Kevin Hugo
3 # NetHack may be freely redistributed.  See license for details.
5 # In case you haven't played the game Sokoban, you'll learn
6 # quickly.  This branch isn't particularly difficult, just time
7 # consuming.  Some players may wish to skip this branch.
9 # The following actions are currently permitted without penalty:
10 #   Carrying or throwing a boulder already in inventory
11 #     (player or nonplayer).
12 #   Teleporting boulders.
13 #   Digging in the floor.
14 # The following actions are permitted, but with a luck penalty:
15 #   Breaking boulders.
16 #   Stone-to-fleshing boulders.
17 #   Creating new boulders (e.g., with a scroll of earth).
18 #   Jumping.
19 #   Being pulled by a thrown iron ball.
20 #   Hurtling through the air from Newton's 3rd law.
21 #   Squeezing past boulders when naked or as a giant.
22 # These actions are not permitted:
23 #   Moving diagonally between two boulders and/or walls.
24 #   Pushing a boulder diagonally.
25 #   Picking up boulders (player or nonplayer).
26 #   Digging or walking through walls.
27 #   Teleporting within levels or between levels of this branch.
28 #   Using cursed potions of gain level.
29 #   Escaping a pit/hole (e.g., by flying, levitation, or
30 #     passing a dexterity check).
31 #   Bones files are not permitted.
34 ### Bottom (first) level of Sokoban ###
35 MAZE:"soko4-1",' '
36 FLAGS:noteleport,hardfloor,premapped,solidify
37 GEOMETRY:center,center
38 #12345678901234567890123456789012345678901234567890
39 MAP
40 ------  ----- 
41 |....|  |...| 
42 |....----...| 
43 |...........| 
44 |..|-|.|-|..| 
45 ---------|.---
46 |......|.....|
47 |..----|.....|
48 --.|   |.....|
49  |.|---|.....|
50  |...........|
51  |..|---------
52  ----         
53 ENDMAP
54 BRANCH:(06,04,06,04),(0,0,0,0)
55 STAIR:(06,06),up
56 REGION:(00,00,13,12),lit,"ordinary"
57 NON_DIGGABLE:(00,00,13,12)
58 NON_PASSWALL:(00,00,13,12)
60 # Boulders
61 OBJECT:('`',"boulder"),(02,02)
62 OBJECT:('`',"boulder"),(02,03)
64 OBJECT:('`',"boulder"),(10,02)
65 OBJECT:('`',"boulder"),(09,03)
66 OBJECT:('`',"boulder"),(10,04)
68 OBJECT:('`',"boulder"),(08,07)
69 OBJECT:('`',"boulder"),(09,08)
70 OBJECT:('`',"boulder"),(09,09)
71 OBJECT:('`',"boulder"),(08,10)
72 OBJECT:('`',"boulder"),(10,10)
74 # Traps
75 TRAP:"pit",(03,06)
76 TRAP:"pit",(04,06)
77 TRAP:"pit",(05,06)
78 TRAP:"pit",(02,08)
79 TRAP:"pit",(02,09)
80 TRAP:"pit",(04,10)
81 TRAP:"pit",(05,10)
82 TRAP:"pit",(06,10)
83 TRAP:"pit",(07,10)
85 # A little help
86 OBJECT:('?',"earth"),(02,11)
87 OBJECT:('?',"earth"),(03,11)
89 # Random objects
90 OBJECT:'%',random
91 OBJECT:'%',random
92 OBJECT:'%',random
93 OBJECT:'%',random
94 OBJECT:'=',random
95 OBJECT:'/',random
98 MAZE:"soko4-2",' '
99 FLAGS:noteleport,hardfloor,premapped,solidify
100 GEOMETRY:center,center
101 #12345678901234567890123456789012345678901234567890
103 -------- ------
104 |.|....|-|....|
105 |.|-..........|
106 |.||....|.....|
107 |.||....|.....|
108 |.|-----|.-----
109 |.|    |......|
110 |.-----|......|
111 |.............|
112 |..|---|......|
113 ----   --------
114 ENDMAP
115 BRANCH:(03,01,03,01),(0,0,0,0)
116 STAIR:(01,01),up
117 REGION:(00,00,14,10),lit,"ordinary"
118 NON_DIGGABLE:(00,00,14,10)
119 NON_PASSWALL:(00,00,14,10)
121 # Boulders
122 OBJECT:('`',"boulder"),(05,02)
123 OBJECT:('`',"boulder"),(06,02)
124 OBJECT:('`',"boulder"),(06,03)
125 OBJECT:('`',"boulder"),(07,03)
127 OBJECT:('`',"boulder"),(09,05)
128 OBJECT:('`',"boulder"),(10,03)
129 OBJECT:('`',"boulder"),(11,02)
130 OBJECT:('`',"boulder"),(12,03)
132 OBJECT:('`',"boulder"),(07,08)
133 OBJECT:('`',"boulder"),(08,08)
134 OBJECT:('`',"boulder"),(09,08)
135 OBJECT:('`',"boulder"),(10,08)
137 # Traps
138 TRAP:"pit",(01,02)
139 TRAP:"pit",(01,03)
140 TRAP:"pit",(01,04)
141 TRAP:"pit",(01,05)
142 TRAP:"pit",(01,06)
143 TRAP:"pit",(01,07)
144 TRAP:"pit",(03,08)
145 TRAP:"pit",(04,08)
146 TRAP:"pit",(05,08)
147 TRAP:"pit",(06,08)
149 # A little help
150 OBJECT:('?',"earth"),(01,09)
151 OBJECT:('?',"earth"),(02,09)
153 # Random objects
154 OBJECT:'%',random
155 OBJECT:'%',random
156 OBJECT:'%',random
157 OBJECT:'%',random
158 OBJECT:'=',random
159 OBJECT:'/',random
162 ### Second level ###
163 MAZE:"soko3-1",' '
164 FLAGS:noteleport,premapped,solidify
165 GEOMETRY:center,center
166 #12345678901234567890123456789012345678901234567890
168 -----------       -----------
169 |....|....|--     |.........|
170 |....|......|     |.........|
171 |.........|--     |.........|
172 |....|....|       |.........|
173 |-.---------      |.........|
174 |....|.....|      |.........|
175 |....|.....|      |.........|
176 |..........|      |.........|
177 |....|.....|---------------+|
178 |....|......................|
179 -----------------------------
180 ENDMAP
181 STAIR:(11,02),down
182 STAIR:(23,04),up
183 DOOR:locked,(27,09)
184 REGION:(00,00,28,11),lit,"ordinary"
185 NON_DIGGABLE:(00,00,28,11)
186 NON_PASSWALL:(00,00,28,11)
188 # Boulders
189 OBJECT:('`',"boulder"),(03,02)
190 OBJECT:('`',"boulder"),(04,02)
192 OBJECT:('`',"boulder"),(06,02)
193 OBJECT:('`',"boulder"),(06,03)
194 OBJECT:('`',"boulder"),(07,02)
196 OBJECT:('`',"boulder"),(03,06)
197 OBJECT:('`',"boulder"),(02,07)
198 OBJECT:('`',"boulder"),(03,07)
199 OBJECT:('`',"boulder"),(03,08)
200 OBJECT:('`',"boulder"),(02,09)
201 OBJECT:('`',"boulder"),(03,09)
202 OBJECT:('`',"boulder"),(04,09)
204 OBJECT:('`',"boulder"),(06,07)
205 OBJECT:('`',"boulder"),(06,09)
206 OBJECT:('`',"boulder"),(08,07)
207 OBJECT:('`',"boulder"),(08,10)
208 OBJECT:('`',"boulder"),(09,08)
209 OBJECT:('`',"boulder"),(09,09)
210 OBJECT:('`',"boulder"),(10,07)
211 OBJECT:('`',"boulder"),(10,10)
213 # Traps
214 TRAP:"hole",(12,10)
215 TRAP:"hole",(13,10)
216 TRAP:"hole",(14,10)
217 TRAP:"hole",(15,10)
218 TRAP:"hole",(16,10)
219 TRAP:"hole",(17,10)
220 TRAP:"hole",(18,10)
221 TRAP:"hole",(19,10)
222 TRAP:"hole",(20,10)
223 TRAP:"hole",(21,10)
224 TRAP:"hole",(22,10)
225 TRAP:"hole",(23,10)
226 TRAP:"hole",(24,10)
227 TRAP:"hole",(25,10)
228 TRAP:"hole",(26,10)
230 # Random objects
231 OBJECT:'%',random
232 OBJECT:'%',random
233 OBJECT:'%',random
234 OBJECT:'%',random
235 OBJECT:'=',random
236 OBJECT:'/',random
239 MAZE:"soko3-2",' '
240 FLAGS:noteleport,premapped,solidify
241 GEOMETRY:center,center
242 #12345678901234567890123456789012345678901234567890
244  ----          -----------
245 -|..|-------   |.........|
246 |..........|   |.........|
247 |..-----.-.|   |.........|
248 |..|...|...|   |.........|
249 |.........-|   |.........|
250 |.......|..|   |.........|
251 |.----..--.|   |.........|
252 |........|.--  |.........|
253 |.---.-.....------------+|
254 |...|...-................|
255 |.........----------------
256 ----|..|..|               
257     -------               
258 ENDMAP
259 STAIR:(03,01),down
260 STAIR:(20,04),up
261 DOOR:locked,(24,09)
262 REGION:(00,00,25,13),lit,"ordinary"
263 NON_DIGGABLE:(00,00,25,13)
264 NON_PASSWALL:(00,00,25,13)
266 # Boulders
267 OBJECT:('`',"boulder"),(02,03)
268 OBJECT:('`',"boulder"),(08,03)
269 OBJECT:('`',"boulder"),(09,04)
270 OBJECT:('`',"boulder"),(02,05)
271 OBJECT:('`',"boulder"),(04,05)
272 OBJECT:('`',"boulder"),(09,05)
273 OBJECT:('`',"boulder"),(02,06)
274 OBJECT:('`',"boulder"),(05,06)
275 OBJECT:('`',"boulder"),(06,07)
276 OBJECT:('`',"boulder"),(03,08)
277 OBJECT:('`',"boulder"),(07,08)
278 OBJECT:('`',"boulder"),(05,09)
279 OBJECT:('`',"boulder"),(10,09)
280 OBJECT:('`',"boulder"),(07,10)
281 OBJECT:('`',"boulder"),(10,10)
282 OBJECT:('`',"boulder"),(03,11)
284 # Traps
285 TRAP:"hole",(12,10)
286 TRAP:"hole",(13,10)
287 TRAP:"hole",(14,10)
288 TRAP:"hole",(15,10)
289 TRAP:"hole",(16,10)
290 TRAP:"hole",(17,10)
291 TRAP:"hole",(18,10)
292 TRAP:"hole",(19,10)
293 TRAP:"hole",(20,10)
294 TRAP:"hole",(21,10)
295 TRAP:"hole",(22,10)
296 TRAP:"hole",(23,10)
298 # Random objects
299 OBJECT:'%',random
300 OBJECT:'%',random
301 OBJECT:'%',random
302 OBJECT:'%',random
303 OBJECT:'=',random
304 OBJECT:'/',random
307 ### Third level ###
308 MAZE:"soko2-1",' '
309 FLAGS:noteleport,premapped,solidify
310 GEOMETRY:center,center
311 #12345678901234567890123456789012345678901234567890
313 --------------------
314 |........|...|.....|
315 |.....-..|.-.|.....|
316 |..|.....|...|.....|
317 |-.|..-..|.-.|.....|
318 |...--.......|.....|
319 |...|...-...-|.....|
320 |...|..|...--|.....|
321 |-..|..|----------+|
322 |..................|
323 |...|..|------------
324 --------            
325 ENDMAP
326 STAIR:(06,10),down
327 STAIR:(16,04),up
328 DOOR:locked,(18,08)
329 REGION:(00,00,19,11),lit,"ordinary"
330 NON_DIGGABLE:(00,00,19,11)
331 NON_PASSWALL:(00,00,19,11)
333 # Boulders
334 OBJECT:('`',"boulder"),(02,02)
335 OBJECT:('`',"boulder"),(03,02)
337 OBJECT:('`',"boulder"),(05,03)
338 OBJECT:('`',"boulder"),(07,03)
339 OBJECT:('`',"boulder"),(07,02)
340 OBJECT:('`',"boulder"),(08,02)
342 OBJECT:('`',"boulder"),(10,03)
343 OBJECT:('`',"boulder"),(11,03)
345 OBJECT:('`',"boulder"),(02,07)
346 OBJECT:('`',"boulder"),(02,08)
347 OBJECT:('`',"boulder"),(03,09)
349 OBJECT:('`',"boulder"),(05,07)
350 OBJECT:('`',"boulder"),(06,06)
352 # Traps
353 TRAP:"hole",(08,09)
354 TRAP:"hole",(09,09)
355 TRAP:"hole",(10,09)
356 TRAP:"hole",(11,09)
357 TRAP:"hole",(12,09)
358 TRAP:"hole",(13,09)
359 TRAP:"hole",(14,09)
360 TRAP:"hole",(15,09)
361 TRAP:"hole",(16,09)
362 TRAP:"hole",(17,09)
364 # Random objects
365 OBJECT:'%',random
366 OBJECT:'%',random
367 OBJECT:'%',random
368 OBJECT:'%',random
369 OBJECT:'=',random
370 OBJECT:'/',random
373 MAZE:"soko2-2",' '
374 FLAGS:noteleport,premapped,solidify
375 GEOMETRY:center,center
376 #12345678901234567890123456789012345678901234567890
378   --------          
379 --|.|....|          
380 |........|----------
381 |.-...-..|.|.......|
382 |...-......|.......|
383 |.-....|...|.......|
384 |....-.--.-|.......|
385 |..........|.......|
386 |.--...|...|.......|
387 |....-.|---|.......|
388 --|....|----------+|
389   |................|
390   ------------------
391 ENDMAP
392 STAIR:(06,11),down
393 STAIR:(15,06),up
394 DOOR:locked,(18,10)
395 REGION:(00,00,19,12),lit,"ordinary"
396 NON_DIGGABLE:(00,00,19,12)
397 NON_PASSWALL:(00,00,19,12)
399 # Boulders
400 OBJECT:('`',"boulder"),(04,02)
401 OBJECT:('`',"boulder"),(04,03)
402 OBJECT:('`',"boulder"),(05,03)
403 OBJECT:('`',"boulder"),(07,03)
404 OBJECT:('`',"boulder"),(08,03)
405 OBJECT:('`',"boulder"),(02,04)
406 OBJECT:('`',"boulder"),(03,04)
407 OBJECT:('`',"boulder"),(05,05)
408 OBJECT:('`',"boulder"),(06,06)
409 OBJECT:('`',"boulder"),(09,06)
410 OBJECT:('`',"boulder"),(03,07)
411 OBJECT:('`',"boulder"),(04,07)
412 OBJECT:('`',"boulder"),(07,07)
413 OBJECT:('`',"boulder"),(06,09)
414 OBJECT:('`',"boulder"),(05,10)
415 OBJECT:('`',"boulder"),(05,11)
417 # Traps
418 TRAP:"hole",(07,11)
419 TRAP:"hole",(08,11)
420 TRAP:"hole",(09,11)
421 TRAP:"hole",(10,11)
422 TRAP:"hole",(11,11)
423 TRAP:"hole",(12,11)
424 TRAP:"hole",(13,11)
425 TRAP:"hole",(14,11)
426 TRAP:"hole",(15,11)
427 TRAP:"hole",(16,11)
428 TRAP:"hole",(17,11)
430 # Random objects
431 OBJECT:'%',random
432 OBJECT:'%',random
433 OBJECT:'%',random
434 OBJECT:'%',random
435 OBJECT:'=',random
436 OBJECT:'/',random
439 ### Top (last) level of Sokoban ###
440 MAZE:"soko1-1",' '
441 FLAGS:noteleport,premapped,solidify
442 GEOMETRY:center,center
443 #12345678901234567890123456789012345678901234567890
445 --------------------------
446 |........................|
447 |.......|---------------.|
448 -------.------         |.|
449  |...........|         |.|
450  |...........|         |.|
451 --------.-----         |.|
452 |............|         |.|
453 |............|         |.|
454 -----.--------   ------|.|
455  |..........|  --|.....|.|
456  |..........|  |.+.....|.|
457  |.........|-  |-|.....|.|
458 -------.----   |.+.....+.|
459 |........|     |-|.....|--
460 |........|     |.+.....|  
461 |...|-----     --|.....|  
462 -----            -------  
463 ENDMAP
464 $place = { (16,11),(16,13),(16,15) }
465 SHUFFLE: $place
467 STAIR:(01,01),down
468 REGION:(00,00,25,17),lit,"ordinary"
469 NON_DIGGABLE:(00,00,25,17)
470 NON_PASSWALL:(00,00,25,17)
472 # Boulders
473 OBJECT:('`',"boulder"),(03,05)
474 OBJECT:('`',"boulder"),(05,05)
475 OBJECT:('`',"boulder"),(07,05)
476 OBJECT:('`',"boulder"),(09,05)
477 OBJECT:('`',"boulder"),(11,05)
479 OBJECT:('`',"boulder"),(04,07)
480 OBJECT:('`',"boulder"),(04,08)
481 OBJECT:('`',"boulder"),(06,07)
482 OBJECT:('`',"boulder"),(09,07)
483 OBJECT:('`',"boulder"),(11,07)
485 OBJECT:('`',"boulder"),(03,12)
486 OBJECT:('`',"boulder"),(04,10)
487 OBJECT:('`',"boulder"),(05,12)
488 OBJECT:('`',"boulder"),(06,10)
489 OBJECT:('`',"boulder"),(07,11)
490 OBJECT:('`',"boulder"),(08,10)
491 OBJECT:('`',"boulder"),(09,12)
493 OBJECT:('`',"boulder"),(03,14)
495 # Traps
496 TRAP:"hole",(08,01)
497 TRAP:"hole",(09,01)
498 TRAP:"hole",(10,01)
499 TRAP:"hole",(11,01)
500 TRAP:"hole",(12,01)
501 TRAP:"hole",(13,01)
502 TRAP:"hole",(14,01)
503 TRAP:"hole",(15,01)
504 TRAP:"hole",(16,01)
505 TRAP:"hole",(17,01)
506 TRAP:"hole",(18,01)
507 TRAP:"hole",(19,01)
508 TRAP:"hole",(20,01)
509 TRAP:"hole",(21,01)
510 TRAP:"hole",(22,01)
511 TRAP:"hole",(23,01)
513 MONSTER:('m',"giant mimic"), random, m_object "boulder"
514 MONSTER:('m',"giant mimic"), random, m_object "boulder"
516 # Random objects
517 OBJECT:'%',random
518 OBJECT:'%',random
519 OBJECT:'%',random
520 OBJECT:'%',random
521 OBJECT:'=',random
522 OBJECT:'/',random
524 # Rewards
525 DOOR:locked,(23,13)
526 DOOR:closed,(17,11)
527 DOOR:closed,(17,13)
528 DOOR:closed,(17,15)
529 REGION:(18,10,22,16),lit,"zoo",filled,irregular
530 IF [50%] {
531   OBJECT:('(',"bag of holding"),$place[0]
532 } ELSE {
533   OBJECT:('"',"amulet of reflection"),$place[0]
535 ENGRAVING:$place[0],burn,"Elbereth"
536 OBJECT:('?', "scare monster"),$place[0],cursed
539 MAZE:"soko1-2",' '
540 FLAGS:noteleport,premapped,solidify
541 GEOMETRY:center,center
542 #12345678901234567890123456789012345678901234567890
544   ------------------------
545   |......................|
546   |..-------------------.|
547 ----.|    -----        |.|
548 |..|.--  --...|        |.|
549 |.....|--|....|        |.|
550 |.....|..|....|        |.|
551 --....|......--        |.|
552  |.......|...|   ------|.|
553  |....|..|...| --|.....|.|
554  |....|--|...| |.+.....|.|
555  |.......|..-- |-|.....|.|
556  ----....|.--  |.+.....+.|
557     ---.--.|   |-|.....|--
558      |.....|   |.+.....|  
559      |..|..|   --|.....|  
560      -------     -------  
561 ENDMAP
562 $place = { (16,10),(16,12),(16,14) }
563 SHUFFLE: $place
565 STAIR:(06,15),down
566 REGION:(00,00,25,16),lit,"ordinary"
567 NON_DIGGABLE:(00,00,25,16)
568 NON_PASSWALL:(00,00,25,16)
570 # Boulders
571 OBJECT:('`',"boulder"),(04,04)
572 OBJECT:('`',"boulder"),(02,06)
573 OBJECT:('`',"boulder"),(03,06)
574 OBJECT:('`',"boulder"),(04,07)
575 OBJECT:('`',"boulder"),(05,07)
576 OBJECT:('`',"boulder"),(02,08)
577 OBJECT:('`',"boulder"),(05,08)
578 OBJECT:('`',"boulder"),(03,09)
579 OBJECT:('`',"boulder"),(04,09)
580 OBJECT:('`',"boulder"),(03,10)
581 OBJECT:('`',"boulder"),(05,10)
582 OBJECT:('`',"boulder"),(06,12)
584 OBJECT:('`',"boulder"),(07,14)
586 OBJECT:('`',"boulder"),(11,05)
587 OBJECT:('`',"boulder"),(12,06)
588 OBJECT:('`',"boulder"),(10,07)
589 OBJECT:('`',"boulder"),(11,07)
590 OBJECT:('`',"boulder"),(10,08)
591 OBJECT:('`',"boulder"),(12,09)
592 OBJECT:('`',"boulder"),(11,10)
594 # Traps
595 TRAP:"hole",(05,01)
596 TRAP:"hole",(06,01)
597 TRAP:"hole",(07,01)
598 TRAP:"hole",(08,01)
599 TRAP:"hole",(09,01)
600 TRAP:"hole",(10,01)
601 TRAP:"hole",(11,01)
602 TRAP:"hole",(12,01)
603 TRAP:"hole",(13,01)
604 TRAP:"hole",(14,01)
605 TRAP:"hole",(15,01)
606 TRAP:"hole",(16,01)
607 TRAP:"hole",(17,01)
608 TRAP:"hole",(18,01)
609 TRAP:"hole",(19,01)
610 TRAP:"hole",(20,01)
611 TRAP:"hole",(21,01)
612 TRAP:"hole",(22,01)
614 MONSTER:('m',"giant mimic"), random, m_object "boulder"
615 MONSTER:('m',"giant mimic"), random, m_object "boulder"
617 # Random objects
618 OBJECT:'%',random
619 OBJECT:'%',random
620 OBJECT:'%',random
621 OBJECT:'%',random
622 OBJECT:'=',random
623 OBJECT:'/',random
625 # Rewards
626 DOOR:locked,(23,12)
627 DOOR:closed,(17,10)
628 DOOR:closed,(17,12)
629 DOOR:closed,(17,14)
630 REGION:(18,09,22,15),lit,"zoo",filled,irregular
631 IF [50%] {
632   OBJECT:('(',"bag of holding"),$place[0]
633 } ELSE {
634   OBJECT:('"',"amulet of reflection"),$place[0]
636 ENGRAVING:$place[0],burn,"Elbereth"
637 OBJECT:('?', "scare monster"),$place[0],cursed