1#	SCCS Id: @(#)sokoban.des	3.4	1999/03/15
2#	Copyright (c) 1998-1999 by Kevin Hugo
3# NetHack may be freely redistributed.  See license for details.
4#
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.
8#
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.
32
33
34### Bottom (first) level of Sokoban ###
35MAZE:"soko4-1",' '
36FLAGS:noteleport,hardfloor
37GEOMETRY:center,center
38#12345678901234567890123456789012345678901234567890
39MAP
40------  -----
41|....|  |...|
42|....----...|
43|...........|
44|..|-|.|-|..|
45---------|.---
46|......|.....|
47|..----|.....|
48--.|   |.....|
49 |.|---|.....|
50 |...........|
51 |..|---------
52 ----
53ENDMAP
54BRANCH:(06,04,06,04),(0,0,0,0)
55STAIR:(06,06),up
56REGION:(00,00,13,12),lit,"ordinary"
57NON_DIGGABLE:(00,00,13,12)
58NON_PASSWALL:(00,00,13,12)
59
60# Boulders
61OBJECT:'`',"boulder",(02,02)
62OBJECT:'`',"boulder",(02,03)
63#
64OBJECT:'`',"boulder",(10,02)
65OBJECT:'`',"boulder",(09,03)
66OBJECT:'`',"boulder",(10,04)
67#
68OBJECT:'`',"boulder",(08,07)
69OBJECT:'`',"boulder",(09,08)
70OBJECT:'`',"boulder",(09,09)
71OBJECT:'`',"boulder",(08,10)
72OBJECT:'`',"boulder",(10,10)
73
74# Traps
75TRAP:"pit",(03,06)
76TRAP:"pit",(04,06)
77TRAP:"pit",(05,06)
78TRAP:"pit",(02,08)
79TRAP:"pit",(02,09)
80TRAP:"pit",(04,10)
81TRAP:"pit",(05,10)
82TRAP:"pit",(06,10)
83TRAP:"pit",(07,10)
84
85# A little help
86OBJECT:'?',"earth",(02,11)
87OBJECT:'?',"earth",(03,11)
88
89# Random objects
90OBJECT:'%',random,random
91OBJECT:'%',random,random
92OBJECT:'%',random,random
93OBJECT:'%',random,random
94OBJECT:'=',random,random
95OBJECT:'/',random,random
96
97
98MAZE:"soko4-2",' '
99FLAGS:noteleport,hardfloor
100GEOMETRY:center,center
101#12345678901234567890123456789012345678901234567890
102MAP
103-------- ------
104|.|....|-|....|
105|.|-..........|
106|.||....|.....|
107|.||....|.....|
108|.|-----|.-----
109|.|    |......|
110|.-----|......|
111|.............|
112|..|---|......|
113----   --------
114ENDMAP
115BRANCH:(03,01,03,01),(0,0,0,0)
116STAIR:(01,01),up
117REGION:(00,00,14,10),lit,"ordinary"
118NON_DIGGABLE:(00,00,14,10)
119NON_PASSWALL:(00,00,14,10)
120
121# Boulders
122OBJECT:'`',"boulder",(05,02)
123OBJECT:'`',"boulder",(06,02)
124OBJECT:'`',"boulder",(06,03)
125OBJECT:'`',"boulder",(07,03)
126#
127OBJECT:'`',"boulder",(09,05)
128OBJECT:'`',"boulder",(10,03)
129OBJECT:'`',"boulder",(11,02)
130OBJECT:'`',"boulder",(12,03)
131#
132OBJECT:'`',"boulder",(07,08)
133OBJECT:'`',"boulder",(08,08)
134OBJECT:'`',"boulder",(09,08)
135OBJECT:'`',"boulder",(10,08)
136
137# Traps
138TRAP:"pit",(01,02)
139TRAP:"pit",(01,03)
140TRAP:"pit",(01,04)
141TRAP:"pit",(01,05)
142TRAP:"pit",(01,06)
143TRAP:"pit",(01,07)
144TRAP:"pit",(03,08)
145TRAP:"pit",(04,08)
146TRAP:"pit",(05,08)
147TRAP:"pit",(06,08)
148
149# A little help
150OBJECT:'?',"earth",(01,09)
151OBJECT:'?',"earth",(02,09)
152
153# Random objects
154OBJECT:'%',random,random
155OBJECT:'%',random,random
156OBJECT:'%',random,random
157OBJECT:'%',random,random
158OBJECT:'=',random,random
159OBJECT:'/',random,random
160
161
162### Second level ###
163MAZE:"soko3-1",' '
164FLAGS:noteleport
165GEOMETRY:center,center
166#12345678901234567890123456789012345678901234567890
167MAP
168-----------       -----------
169|....|....|--     |.........|
170|....|......|     |.........|
171|.........|--     |.........|
172|....|....|       |.........|
173|-.---------      |.........|
174|....|.....|      |.........|
175|....|.....|      |.........|
176|..........|      |.........|
177|....|.....|---------------+|
178|....|......................|
179-----------------------------
180ENDMAP
181STAIR:(11,02),down
182STAIR:(23,04),up
183DOOR:locked,(27,09)
184REGION:(00,00,28,11),lit,"ordinary"
185NON_DIGGABLE:(00,00,28,11)
186NON_PASSWALL:(00,00,28,11)
187
188# Boulders
189OBJECT:'`',"boulder",(03,02)
190OBJECT:'`',"boulder",(04,02)
191#
192OBJECT:'`',"boulder",(06,02)
193OBJECT:'`',"boulder",(06,03)
194OBJECT:'`',"boulder",(07,02)
195#
196OBJECT:'`',"boulder",(03,06)
197OBJECT:'`',"boulder",(02,07)
198OBJECT:'`',"boulder",(03,07)
199OBJECT:'`',"boulder",(03,08)
200OBJECT:'`',"boulder",(02,09)
201OBJECT:'`',"boulder",(03,09)
202OBJECT:'`',"boulder",(04,09)
203#
204OBJECT:'`',"boulder",(06,07)
205OBJECT:'`',"boulder",(06,09)
206OBJECT:'`',"boulder",(08,07)
207OBJECT:'`',"boulder",(08,10)
208OBJECT:'`',"boulder",(09,08)
209OBJECT:'`',"boulder",(09,09)
210OBJECT:'`',"boulder",(10,07)
211OBJECT:'`',"boulder",(10,10)
212
213# Traps
214TRAP:"hole",(12,10)
215TRAP:"hole",(13,10)
216TRAP:"hole",(14,10)
217TRAP:"hole",(15,10)
218TRAP:"hole",(16,10)
219TRAP:"hole",(17,10)
220TRAP:"hole",(18,10)
221TRAP:"hole",(19,10)
222TRAP:"hole",(20,10)
223TRAP:"hole",(21,10)
224TRAP:"hole",(22,10)
225TRAP:"hole",(23,10)
226TRAP:"hole",(24,10)
227TRAP:"hole",(25,10)
228TRAP:"hole",(26,10)
229
230# Random objects
231OBJECT:'%',random,random
232OBJECT:'%',random,random
233OBJECT:'%',random,random
234OBJECT:'%',random,random
235OBJECT:'=',random,random
236OBJECT:'/',random,random
237
238
239MAZE:"soko3-2",' '
240FLAGS:noteleport
241GEOMETRY:center,center
242#12345678901234567890123456789012345678901234567890
243MAP
244 ----          -----------
245-|..|-------   |.........|
246|..........|   |.........|
247|..-----.-.|   |.........|
248|..|...|...|   |.........|
249|.........-|   |.........|
250|.......|..|   |.........|
251|.----..--.|   |.........|
252|........|.--  |.........|
253|.---.-.....------------+|
254|...|...-................|
255|.........----------------
256----|..|..|
257    -------
258ENDMAP
259STAIR:(03,01),down
260STAIR:(20,04),up
261DOOR:locked,(24,09)
262REGION:(00,00,25,13),lit,"ordinary"
263NON_DIGGABLE:(00,00,25,13)
264NON_PASSWALL:(00,00,25,13)
265
266# Boulders
267OBJECT:'`',"boulder",(02,03)
268OBJECT:'`',"boulder",(08,03)
269OBJECT:'`',"boulder",(09,04)
270OBJECT:'`',"boulder",(02,05)
271OBJECT:'`',"boulder",(04,05)
272OBJECT:'`',"boulder",(09,05)
273OBJECT:'`',"boulder",(02,06)
274OBJECT:'`',"boulder",(05,06)
275OBJECT:'`',"boulder",(06,07)
276OBJECT:'`',"boulder",(03,08)
277OBJECT:'`',"boulder",(07,08)
278OBJECT:'`',"boulder",(05,09)
279OBJECT:'`',"boulder",(10,09)
280OBJECT:'`',"boulder",(07,10)
281OBJECT:'`',"boulder",(10,10)
282OBJECT:'`',"boulder",(03,11)
283
284# Traps
285TRAP:"hole",(12,10)
286TRAP:"hole",(13,10)
287TRAP:"hole",(14,10)
288TRAP:"hole",(15,10)
289TRAP:"hole",(16,10)
290TRAP:"hole",(17,10)
291TRAP:"hole",(18,10)
292TRAP:"hole",(19,10)
293TRAP:"hole",(20,10)
294TRAP:"hole",(21,10)
295TRAP:"hole",(22,10)
296TRAP:"hole",(23,10)
297
298# Random objects
299OBJECT:'%',random,random
300OBJECT:'%',random,random
301OBJECT:'%',random,random
302OBJECT:'%',random,random
303OBJECT:'=',random,random
304OBJECT:'/',random,random
305
306
307### Third level ###
308MAZE:"soko2-1",' '
309FLAGS:noteleport
310GEOMETRY:center,center
311#12345678901234567890123456789012345678901234567890
312MAP
313--------------------
314|........|...|.....|
315|.....-..|.-.|.....|
316|..|.....|...|.....|
317|-.|..-..|.-.|.....|
318|...--.......|.....|
319|...|...-...-|.....|
320|...|..|...--|.....|
321|-..|..|----------+|
322|..................|
323|...|..|------------
324--------
325ENDMAP
326STAIR:(06,10),down
327STAIR:(16,04),up
328DOOR:locked,(18,08)
329REGION:(00,00,19,11),lit,"ordinary"
330NON_DIGGABLE:(00,00,19,11)
331NON_PASSWALL:(00,00,19,11)
332
333# Boulders
334OBJECT:'`',"boulder",(02,02)
335OBJECT:'`',"boulder",(03,02)
336#
337OBJECT:'`',"boulder",(05,03)
338OBJECT:'`',"boulder",(07,03)
339OBJECT:'`',"boulder",(07,02)
340OBJECT:'`',"boulder",(08,02)
341#
342OBJECT:'`',"boulder",(10,03)
343OBJECT:'`',"boulder",(11,03)
344#
345OBJECT:'`',"boulder",(02,07)
346OBJECT:'`',"boulder",(02,08)
347OBJECT:'`',"boulder",(03,09)
348#
349OBJECT:'`',"boulder",(05,07)
350OBJECT:'`',"boulder",(06,06)
351
352# Traps
353TRAP:"hole",(08,09)
354TRAP:"hole",(09,09)
355TRAP:"hole",(10,09)
356TRAP:"hole",(11,09)
357TRAP:"hole",(12,09)
358TRAP:"hole",(13,09)
359TRAP:"hole",(14,09)
360TRAP:"hole",(15,09)
361TRAP:"hole",(16,09)
362TRAP:"hole",(17,09)
363
364# Random objects
365OBJECT:'%',random,random
366OBJECT:'%',random,random
367OBJECT:'%',random,random
368OBJECT:'%',random,random
369OBJECT:'=',random,random
370OBJECT:'/',random,random
371
372
373MAZE:"soko2-2",' '
374FLAGS:noteleport
375GEOMETRY:center,center
376#12345678901234567890123456789012345678901234567890
377MAP
378  --------
379--|.|....|
380|........|----------
381|.-...-..|.|.......|
382|...-......|.......|
383|.-....|...|.......|
384|....-.--.-|.......|
385|..........|.......|
386|.--...|...|.......|
387|....-.|---|.......|
388--|....|----------+|
389  |................|
390  ------------------
391ENDMAP
392STAIR:(06,11),down
393STAIR:(15,06),up
394DOOR:locked,(18,10)
395REGION:(00,00,19,12),lit,"ordinary"
396NON_DIGGABLE:(00,00,19,12)
397NON_PASSWALL:(00,00,19,12)
398
399# Boulders
400OBJECT:'`',"boulder",(04,02)
401OBJECT:'`',"boulder",(04,03)
402OBJECT:'`',"boulder",(05,03)
403OBJECT:'`',"boulder",(07,03)
404OBJECT:'`',"boulder",(08,03)
405OBJECT:'`',"boulder",(02,04)
406OBJECT:'`',"boulder",(03,04)
407OBJECT:'`',"boulder",(05,05)
408OBJECT:'`',"boulder",(06,06)
409OBJECT:'`',"boulder",(09,06)
410OBJECT:'`',"boulder",(03,07)
411OBJECT:'`',"boulder",(04,07)
412OBJECT:'`',"boulder",(07,07)
413OBJECT:'`',"boulder",(06,09)
414OBJECT:'`',"boulder",(05,10)
415OBJECT:'`',"boulder",(05,11)
416
417# Traps
418TRAP:"hole",(07,11)
419TRAP:"hole",(08,11)
420TRAP:"hole",(09,11)
421TRAP:"hole",(10,11)
422TRAP:"hole",(11,11)
423TRAP:"hole",(12,11)
424TRAP:"hole",(13,11)
425TRAP:"hole",(14,11)
426TRAP:"hole",(15,11)
427TRAP:"hole",(16,11)
428TRAP:"hole",(17,11)
429
430# Random objects
431OBJECT:'%',random,random
432OBJECT:'%',random,random
433OBJECT:'%',random,random
434OBJECT:'%',random,random
435OBJECT:'=',random,random
436OBJECT:'/',random,random
437
438
439### Top (last) level of Sokoban ###
440MAZE:"soko1-1",' '
441FLAGS:noteleport
442GEOMETRY:center,center
443#12345678901234567890123456789012345678901234567890
444MAP
445--------------------------
446|........................|
447|.......|---------------.|
448-------.------         |.|
449 |...........|         |.|
450 |...........|         |.|
451--------.-----         |.|
452|............|         |.|
453|............|         |.|
454-----.--------   ------|.|
455 |..........|  --|.....|.|
456 |..........|  |.+.....|.|
457 |.........|-  |-|.....|.|
458-------.----   |.+.....+.|
459|........|     |-|.....|--
460|........|     |.+.....|
461|...|-----     --|.....|
462-----            -------
463ENDMAP
464RANDOM_PLACES:(16,11),(16,13),(16,15)
465STAIR:(01,01),down
466REGION:(00,00,25,17),lit,"ordinary"
467NON_DIGGABLE:(00,00,25,17)
468NON_PASSWALL:(00,00,25,17)
469
470# Boulders
471OBJECT:'`',"boulder",(03,05)
472OBJECT:'`',"boulder",(05,05)
473OBJECT:'`',"boulder",(07,05)
474OBJECT:'`',"boulder",(09,05)
475OBJECT:'`',"boulder",(11,05)
476#
477OBJECT:'`',"boulder",(04,07)
478OBJECT:'`',"boulder",(04,08)
479OBJECT:'`',"boulder",(06,07)
480OBJECT:'`',"boulder",(09,07)
481OBJECT:'`',"boulder",(11,07)
482#
483OBJECT:'`',"boulder",(03,12)
484OBJECT:'`',"boulder",(04,10)
485OBJECT:'`',"boulder",(05,12)
486OBJECT:'`',"boulder",(06,10)
487OBJECT:'`',"boulder",(07,11)
488OBJECT:'`',"boulder",(08,10)
489OBJECT:'`',"boulder",(09,12)
490#
491OBJECT:'`',"boulder",(03,14)
492
493# Traps
494TRAP:"hole",(08,01)
495TRAP:"hole",(09,01)
496TRAP:"hole",(10,01)
497TRAP:"hole",(11,01)
498TRAP:"hole",(12,01)
499TRAP:"hole",(13,01)
500TRAP:"hole",(14,01)
501TRAP:"hole",(15,01)
502TRAP:"hole",(16,01)
503TRAP:"hole",(17,01)
504TRAP:"hole",(18,01)
505TRAP:"hole",(19,01)
506TRAP:"hole",(20,01)
507TRAP:"hole",(21,01)
508TRAP:"hole",(22,01)
509TRAP:"hole",(23,01)
510
511MONSTER:'m',"giant mimic", random, m_object "boulder"
512MONSTER:'m',"giant mimic", random, m_object "boulder"
513
514# Random objects
515OBJECT:'%',random,random
516OBJECT:'%',random,random
517OBJECT:'%',random,random
518OBJECT:'%',random,random
519OBJECT:'=',random,random
520OBJECT:'/',random,random
521
522# Rewards
523DOOR:locked,(23,13)
524DOOR:closed,(17,11)
525DOOR:closed,(17,13)
526DOOR:closed,(17,15)
527REGION:(18,10,22,16),lit,"zoo",filled,true
528OBJECT:'(',"bag of holding",place[0]
529ENGRAVING:place[0],burn,"Elbereth"
530
531
532MAZE:"soko1-2",' '
533FLAGS:noteleport
534GEOMETRY:center,center
535#12345678901234567890123456789012345678901234567890
536MAP
537  ------------------------
538  |......................|
539  |..-------------------.|
540----.|    -----        |.|
541|..|.--  --...|        |.|
542|.....|--|....|        |.|
543|.....|..|....|        |.|
544--....|......--        |.|
545 |.......|...|   ------|.|
546 |....|..|...| --|.....|.|
547 |....|--|...| |.+.....|.|
548 |.......|..-- |-|.....|.|
549 ----....|.--  |.+.....+.|
550    ---.--.|   |-|.....|--
551     |.....|   |.+.....|
552     |..|..|   --|.....|
553     -------     -------
554ENDMAP
555RANDOM_PLACES:(16,10),(16,12),(16,14)
556STAIR:(06,15),down
557REGION:(00,00,25,16),lit,"ordinary"
558NON_DIGGABLE:(00,00,25,16)
559NON_PASSWALL:(00,00,25,16)
560
561# Boulders
562OBJECT:'`',"boulder",(04,04)
563OBJECT:'`',"boulder",(02,06)
564OBJECT:'`',"boulder",(03,06)
565OBJECT:'`',"boulder",(04,07)
566OBJECT:'`',"boulder",(05,07)
567OBJECT:'`',"boulder",(02,08)
568OBJECT:'`',"boulder",(05,08)
569OBJECT:'`',"boulder",(03,09)
570OBJECT:'`',"boulder",(04,09)
571OBJECT:'`',"boulder",(03,10)
572OBJECT:'`',"boulder",(05,10)
573OBJECT:'`',"boulder",(06,12)
574#
575OBJECT:'`',"boulder",(07,14)
576#
577OBJECT:'`',"boulder",(11,05)
578OBJECT:'`',"boulder",(12,06)
579OBJECT:'`',"boulder",(10,07)
580OBJECT:'`',"boulder",(11,07)
581OBJECT:'`',"boulder",(10,08)
582OBJECT:'`',"boulder",(12,09)
583OBJECT:'`',"boulder",(11,10)
584
585# Traps
586TRAP:"hole",(05,01)
587TRAP:"hole",(06,01)
588TRAP:"hole",(07,01)
589TRAP:"hole",(08,01)
590TRAP:"hole",(09,01)
591TRAP:"hole",(10,01)
592TRAP:"hole",(11,01)
593TRAP:"hole",(12,01)
594TRAP:"hole",(13,01)
595TRAP:"hole",(14,01)
596TRAP:"hole",(15,01)
597TRAP:"hole",(16,01)
598TRAP:"hole",(17,01)
599TRAP:"hole",(18,01)
600TRAP:"hole",(19,01)
601TRAP:"hole",(20,01)
602TRAP:"hole",(21,01)
603TRAP:"hole",(22,01)
604
605MONSTER:'m',"giant mimic", random, m_object "boulder"
606MONSTER:'m',"giant mimic", random, m_object "boulder"
607
608# Random objects
609OBJECT:'%',random,random
610OBJECT:'%',random,random
611OBJECT:'%',random,random
612OBJECT:'%',random,random
613OBJECT:'=',random,random
614OBJECT:'/',random,random
615
616# Rewards
617DOOR:locked,(23,12)
618DOOR:closed,(17,10)
619DOOR:closed,(17,12)
620DOOR:closed,(17,14)
621REGION:(18,09,22,15),lit,"zoo",filled,true
622OBJECT:'"',"amulet of reflection",place[0]
623ENGRAVING:place[0],burn,"Elbereth"
624