Source:NetHack 3.6.1/dat/sokoban.des

From NetHackWiki
(Redirected from Sokoban.des)
Jump to navigation Jump to search

Below is the full text to sokoban.des from the source code of NetHack 3.6.1. To link to a particular line, write [[Source:NetHack 3.6.1/dat/sokoban.des#line123]], for example.

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

 # NetHack 3.6	sokoban.des	$NHDT-Date: 1432512784 2015/05/25 00:13:04 $  $NHDT-Branch: master $:$NHDT-Revision: 1.13 $
 #	Copyright (c) 1998-1999 by Kevin Hugo
 # NetHack may be freely redistributed.  See license for details.
 #
 # In case you haven't played the game Sokoban, you'll learn
 # quickly.  This branch isn't particularly difficult, just time
 # consuming.  Some players may wish to skip this branch.
 #
 # The following actions are currently permitted without penalty:
 #   Carrying or throwing a boulder already in inventory
 #     (player or nonplayer).
 #   Teleporting boulders.
 #   Digging in the floor.
 # The following actions are permitted, but with a luck penalty:
 #   Breaking boulders.
 #   Stone-to-fleshing boulders.
 #   Creating new boulders (e.g., with a scroll of earth).
 #   Jumping.
 #   Being pulled by a thrown iron ball.
 #   Hurtling through the air from Newton's 3rd law.
 #   Squeezing past boulders when naked or as a giant.
 # These actions are not permitted:
 #   Moving diagonally between two boulders and/or walls.
 #   Pushing a boulder diagonally.
 #   Picking up boulders (player or nonplayer).
 #   Digging or walking through walls.
 #   Teleporting within levels or between levels of this branch.
 #   Using cursed potions of gain level.
 #   Escaping a pit/hole (e.g., by flying, levitation, or
 #     passing a dexterity check).
 #   Bones files are not permitted.
 
 
 ### Bottom (first) level of Sokoban ###
 MAZE:"soko4-1",' '
 FLAGS:noteleport,hardfloor,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
 ------  ----- 
 |....|  |...| 
 |....----...| 
 |...........| 
 |..|-|.|-|..| 
 ---------|.---
 |......|.....|
 |..----|.....|
 --.|   |.....|
  |.|---|.....|
  |...........|
  |..|---------
  ----         
 ENDMAP
 BRANCH:(06,04,06,04),(0,0,0,0)
 STAIR:(06,06),up
 REGION:(00,00,13,12),lit,"ordinary"
 NON_DIGGABLE:(00,00,13,12)
 NON_PASSWALL:(00,00,13,12)
 
 # Boulders
 OBJECT:('`',"boulder"),(02,02)
 OBJECT:('`',"boulder"),(02,03)
 #
 OBJECT:('`',"boulder"),(10,02)
 OBJECT:('`',"boulder"),(09,03)
 OBJECT:('`',"boulder"),(10,04)
 #
 OBJECT:('`',"boulder"),(08,07)
 OBJECT:('`',"boulder"),(09,08)
 OBJECT:('`',"boulder"),(09,09)
 OBJECT:('`',"boulder"),(08,10)
 OBJECT:('`',"boulder"),(10,10)
 
 # Traps
 TRAP:"pit",(03,06)
 TRAP:"pit",(04,06)
 TRAP:"pit",(05,06)
 TRAP:"pit",(02,08)
 TRAP:"pit",(02,09)
 TRAP:"pit",(04,10)
 TRAP:"pit",(05,10)
 TRAP:"pit",(06,10)
 TRAP:"pit",(07,10)
 
 # A little help
 OBJECT:('?',"earth"),(02,11)
 OBJECT:('?',"earth"),(03,11)
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 
 MAZE:"soko4-2",' '
 FLAGS:noteleport,hardfloor,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
 -------- ------
 |.|....|-|....|
 |.|-..........|
 |.||....|.....|
 |.||....|.....|
 |.|-----|.-----
 |.|    |......|
 |.-----|......|
 |.............|
 |..|---|......|
 ----   --------
 ENDMAP
 BRANCH:(03,01,03,01),(0,0,0,0)
 STAIR:(01,01),up
 REGION:(00,00,14,10),lit,"ordinary"
 NON_DIGGABLE:(00,00,14,10)
 NON_PASSWALL:(00,00,14,10)
 
 # Boulders
 OBJECT:('`',"boulder"),(05,02)
 OBJECT:('`',"boulder"),(06,02)
 OBJECT:('`',"boulder"),(06,03)
 OBJECT:('`',"boulder"),(07,03)
 #
 OBJECT:('`',"boulder"),(09,05)
 OBJECT:('`',"boulder"),(10,03)
 OBJECT:('`',"boulder"),(11,02)
 OBJECT:('`',"boulder"),(12,03)
 #
 OBJECT:('`',"boulder"),(07,08)
 OBJECT:('`',"boulder"),(08,08)
 OBJECT:('`',"boulder"),(09,08)
 OBJECT:('`',"boulder"),(10,08)
 
 # Traps
 TRAP:"pit",(01,02)
 TRAP:"pit",(01,03)
 TRAP:"pit",(01,04)
 TRAP:"pit",(01,05)
 TRAP:"pit",(01,06)
 TRAP:"pit",(01,07)
 TRAP:"pit",(03,08)
 TRAP:"pit",(04,08)
 TRAP:"pit",(05,08)
 TRAP:"pit",(06,08)
 
 # A little help
 OBJECT:('?',"earth"),(01,09)
 OBJECT:('?',"earth"),(02,09)
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 
 ### Second level ###
 MAZE:"soko3-1",' '
 FLAGS:noteleport,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
 -----------       -----------
 |....|....|--     |.........|
 |....|......|     |.........|
 |.........|--     |.........|
 |....|....|       |.........|
 |-.---------      |.........|
 |....|.....|      |.........|
 |....|.....|      |.........|
 |..........|      |.........|
 |....|.....|---------------+|
 |....|......................|
 -----------------------------
 ENDMAP
 STAIR:(11,02),down
 STAIR:(23,04),up
 DOOR:locked,(27,09)
 REGION:(00,00,28,11),lit,"ordinary"
 NON_DIGGABLE:(00,00,28,11)
 NON_PASSWALL:(00,00,28,11)
 
 # Boulders
 OBJECT:('`',"boulder"),(03,02)
 OBJECT:('`',"boulder"),(04,02)
 #
 OBJECT:('`',"boulder"),(06,02)
 OBJECT:('`',"boulder"),(06,03)
 OBJECT:('`',"boulder"),(07,02)
 #
 OBJECT:('`',"boulder"),(03,06)
 OBJECT:('`',"boulder"),(02,07)
 OBJECT:('`',"boulder"),(03,07)
 OBJECT:('`',"boulder"),(03,08)
 OBJECT:('`',"boulder"),(02,09)
 OBJECT:('`',"boulder"),(03,09)
 OBJECT:('`',"boulder"),(04,09)
 #
 OBJECT:('`',"boulder"),(06,07)
 OBJECT:('`',"boulder"),(06,09)
 OBJECT:('`',"boulder"),(08,07)
 OBJECT:('`',"boulder"),(08,10)
 OBJECT:('`',"boulder"),(09,08)
 OBJECT:('`',"boulder"),(09,09)
 OBJECT:('`',"boulder"),(10,07)
 OBJECT:('`',"boulder"),(10,10)
 
 # Traps
 TRAP:"hole",(12,10)
 TRAP:"hole",(13,10)
 TRAP:"hole",(14,10)
 TRAP:"hole",(15,10)
 TRAP:"hole",(16,10)
 TRAP:"hole",(17,10)
 TRAP:"hole",(18,10)
 TRAP:"hole",(19,10)
 TRAP:"hole",(20,10)
 TRAP:"hole",(21,10)
 TRAP:"hole",(22,10)
 TRAP:"hole",(23,10)
 TRAP:"hole",(24,10)
 TRAP:"hole",(25,10)
 TRAP:"hole",(26,10)
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 
 MAZE:"soko3-2",' '
 FLAGS:noteleport,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
  ----          -----------
 -|..|-------   |.........|
 |..........|   |.........|
 |..-----.-.|   |.........|
 |..|...|...|   |.........|
 |.........-|   |.........|
 |.......|..|   |.........|
 |.----..--.|   |.........|
 |........|.--  |.........|
 |.---.-.....------------+|
 |...|...-................|
 |.........----------------
 ----|..|..|               
     -------               
 ENDMAP
 STAIR:(03,01),down
 STAIR:(20,04),up
 DOOR:locked,(24,09)
 REGION:(00,00,25,13),lit,"ordinary"
 NON_DIGGABLE:(00,00,25,13)
 NON_PASSWALL:(00,00,25,13)
 
 # Boulders
 OBJECT:('`',"boulder"),(02,03)
 OBJECT:('`',"boulder"),(08,03)
 OBJECT:('`',"boulder"),(09,04)
 OBJECT:('`',"boulder"),(02,05)
 OBJECT:('`',"boulder"),(04,05)
 OBJECT:('`',"boulder"),(09,05)
 OBJECT:('`',"boulder"),(02,06)
 OBJECT:('`',"boulder"),(05,06)
 OBJECT:('`',"boulder"),(06,07)
 OBJECT:('`',"boulder"),(03,08)
 OBJECT:('`',"boulder"),(07,08)
 OBJECT:('`',"boulder"),(05,09)
 OBJECT:('`',"boulder"),(10,09)
 OBJECT:('`',"boulder"),(07,10)
 OBJECT:('`',"boulder"),(10,10)
 OBJECT:('`',"boulder"),(03,11)
 
 # Traps
 TRAP:"hole",(12,10)
 TRAP:"hole",(13,10)
 TRAP:"hole",(14,10)
 TRAP:"hole",(15,10)
 TRAP:"hole",(16,10)
 TRAP:"hole",(17,10)
 TRAP:"hole",(18,10)
 TRAP:"hole",(19,10)
 TRAP:"hole",(20,10)
 TRAP:"hole",(21,10)
 TRAP:"hole",(22,10)
 TRAP:"hole",(23,10)
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 
 ### Third level ###
 MAZE:"soko2-1",' '
 FLAGS:noteleport,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
 --------------------
 |........|...|.....|
 |.....-..|.-.|.....|
 |..|.....|...|.....|
 |-.|..-..|.-.|.....|
 |...--.......|.....|
 |...|...-...-|.....|
 |...|..|...--|.....|
 |-..|..|----------+|
 |..................|
 |...|..|------------
 --------            
 ENDMAP
 STAIR:(06,10),down
 STAIR:(16,04),up
 DOOR:locked,(18,08)
 REGION:(00,00,19,11),lit,"ordinary"
 NON_DIGGABLE:(00,00,19,11)
 NON_PASSWALL:(00,00,19,11)
 
 # Boulders
 OBJECT:('`',"boulder"),(02,02)
 OBJECT:('`',"boulder"),(03,02)
 #
 OBJECT:('`',"boulder"),(05,03)
 OBJECT:('`',"boulder"),(07,03)
 OBJECT:('`',"boulder"),(07,02)
 OBJECT:('`',"boulder"),(08,02)
 #
 OBJECT:('`',"boulder"),(10,03)
 OBJECT:('`',"boulder"),(11,03)
 #
 OBJECT:('`',"boulder"),(02,07)
 OBJECT:('`',"boulder"),(02,08)
 OBJECT:('`',"boulder"),(03,09)
 #
 OBJECT:('`',"boulder"),(05,07)
 OBJECT:('`',"boulder"),(06,06)
 
 # Traps
 TRAP:"hole",(08,09)
 TRAP:"hole",(09,09)
 TRAP:"hole",(10,09)
 TRAP:"hole",(11,09)
 TRAP:"hole",(12,09)
 TRAP:"hole",(13,09)
 TRAP:"hole",(14,09)
 TRAP:"hole",(15,09)
 TRAP:"hole",(16,09)
 TRAP:"hole",(17,09)
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 
 MAZE:"soko2-2",' '
 FLAGS:noteleport,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
   --------          
 --|.|....|          
 |........|----------
 |.-...-..|.|.......|
 |...-......|.......|
 |.-....|...|.......|
 |....-.--.-|.......|
 |..........|.......|
 |.--...|...|.......|
 |....-.|---|.......|
 --|....|----------+|
   |................|
   ------------------
 ENDMAP
 STAIR:(06,11),down
 STAIR:(15,06),up
 DOOR:locked,(18,10)
 REGION:(00,00,19,12),lit,"ordinary"
 NON_DIGGABLE:(00,00,19,12)
 NON_PASSWALL:(00,00,19,12)
 
 # Boulders
 OBJECT:('`',"boulder"),(04,02)
 OBJECT:('`',"boulder"),(04,03)
 OBJECT:('`',"boulder"),(05,03)
 OBJECT:('`',"boulder"),(07,03)
 OBJECT:('`',"boulder"),(08,03)
 OBJECT:('`',"boulder"),(02,04)
 OBJECT:('`',"boulder"),(03,04)
 OBJECT:('`',"boulder"),(05,05)
 OBJECT:('`',"boulder"),(06,06)
 OBJECT:('`',"boulder"),(09,06)
 OBJECT:('`',"boulder"),(03,07)
 OBJECT:('`',"boulder"),(04,07)
 OBJECT:('`',"boulder"),(07,07)
 OBJECT:('`',"boulder"),(06,09)
 OBJECT:('`',"boulder"),(05,10)
 OBJECT:('`',"boulder"),(05,11)
 
 # Traps
 TRAP:"hole",(07,11)
 TRAP:"hole",(08,11)
 TRAP:"hole",(09,11)
 TRAP:"hole",(10,11)
 TRAP:"hole",(11,11)
 TRAP:"hole",(12,11)
 TRAP:"hole",(13,11)
 TRAP:"hole",(14,11)
 TRAP:"hole",(15,11)
 TRAP:"hole",(16,11)
 TRAP:"hole",(17,11)
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 
 ### Top (last) level of Sokoban ###
 MAZE:"soko1-1",' '
 FLAGS:noteleport,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
 --------------------------
 |........................|
 |.......|---------------.|
 -------.------         |.|
  |...........|         |.|
  |...........|         |.|
 --------.-----         |.|
 |............|         |.|
 |............|         |.|
 -----.--------   ------|.|
  |..........|  --|.....|.|
  |..........|  |.+.....|.|
  |.........|-  |-|.....|.|
 -------.----   |.+.....+.|
 |........|     |-|.....|--
 |........|     |.+.....|  
 |...|-----     --|.....|  
 -----            -------  
 ENDMAP
 $place = { (16,11),(16,13),(16,15) }
 SHUFFLE: $place
 
 STAIR:(01,01),down
 REGION:(00,00,25,17),lit,"ordinary"
 NON_DIGGABLE:(00,00,25,17)
 NON_PASSWALL:(00,00,25,17)
 
 # Boulders
 OBJECT:('`',"boulder"),(03,05)
 OBJECT:('`',"boulder"),(05,05)
 OBJECT:('`',"boulder"),(07,05)
 OBJECT:('`',"boulder"),(09,05)
 OBJECT:('`',"boulder"),(11,05)
 #
 OBJECT:('`',"boulder"),(04,07)
 OBJECT:('`',"boulder"),(04,08)
 OBJECT:('`',"boulder"),(06,07)
 OBJECT:('`',"boulder"),(09,07)
 OBJECT:('`',"boulder"),(11,07)
 #
 OBJECT:('`',"boulder"),(03,12)
 OBJECT:('`',"boulder"),(04,10)
 OBJECT:('`',"boulder"),(05,12)
 OBJECT:('`',"boulder"),(06,10)
 OBJECT:('`',"boulder"),(07,11)
 OBJECT:('`',"boulder"),(08,10)
 OBJECT:('`',"boulder"),(09,12)
 #
 OBJECT:('`',"boulder"),(03,14)
 
 # Traps
 TRAP:"hole",(08,01)
 TRAP:"hole",(09,01)
 TRAP:"hole",(10,01)
 TRAP:"hole",(11,01)
 TRAP:"hole",(12,01)
 TRAP:"hole",(13,01)
 TRAP:"hole",(14,01)
 TRAP:"hole",(15,01)
 TRAP:"hole",(16,01)
 TRAP:"hole",(17,01)
 TRAP:"hole",(18,01)
 TRAP:"hole",(19,01)
 TRAP:"hole",(20,01)
 TRAP:"hole",(21,01)
 TRAP:"hole",(22,01)
 TRAP:"hole",(23,01)
 
 MONSTER:('m',"giant mimic"), random, m_object "boulder"
 MONSTER:('m',"giant mimic"), random, m_object "boulder"
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 # Rewards
 DOOR:locked,(23,13)
 DOOR:closed,(17,11)
 DOOR:closed,(17,13)
 DOOR:closed,(17,15)
 REGION:(18,10,22,16),lit,"zoo",filled,irregular
 IF [50%] {
   OBJECT:('(',"bag of holding"),$place[0]
 } ELSE {
   OBJECT:('"',"amulet of reflection"),$place[0]
 }
 ENGRAVING:$place[0],burn,"Elbereth"
 OBJECT:('?', "scare monster"),$place[0],cursed
 
 
 MAZE:"soko1-2",' '
 FLAGS:noteleport,premapped,solidify
 GEOMETRY:center,center
 #12345678901234567890123456789012345678901234567890
 MAP
   ------------------------
   |......................|
   |..-------------------.|
 ----.|    -----        |.|
 |..|.--  --...|        |.|
 |.....|--|....|        |.|
 |.....|..|....|        |.|
 --....|......--        |.|
  |.......|...|   ------|.|
  |....|..|...| --|.....|.|
  |....|--|...| |.+.....|.|
  |.......|..-- |-|.....|.|
  ----....|.--  |.+.....+.|
     ---.--.|   |-|.....|--
      |.....|   |.+.....|  
      |..|..|   --|.....|  
      -------     -------  
 ENDMAP
 $place = { (16,10),(16,12),(16,14) }
 SHUFFLE: $place
 
 STAIR:(06,15),down
 REGION:(00,00,25,16),lit,"ordinary"
 NON_DIGGABLE:(00,00,25,16)
 NON_PASSWALL:(00,00,25,16)
 
 # Boulders
 OBJECT:('`',"boulder"),(04,04)
 OBJECT:('`',"boulder"),(02,06)
 OBJECT:('`',"boulder"),(03,06)
 OBJECT:('`',"boulder"),(04,07)
 OBJECT:('`',"boulder"),(05,07)
 OBJECT:('`',"boulder"),(02,08)
 OBJECT:('`',"boulder"),(05,08)
 OBJECT:('`',"boulder"),(03,09)
 OBJECT:('`',"boulder"),(04,09)
 OBJECT:('`',"boulder"),(03,10)
 OBJECT:('`',"boulder"),(05,10)
 OBJECT:('`',"boulder"),(06,12)
 #
 OBJECT:('`',"boulder"),(07,14)
 #
 OBJECT:('`',"boulder"),(11,05)
 OBJECT:('`',"boulder"),(12,06)
 OBJECT:('`',"boulder"),(10,07)
 OBJECT:('`',"boulder"),(11,07)
 OBJECT:('`',"boulder"),(10,08)
 OBJECT:('`',"boulder"),(12,09)
 OBJECT:('`',"boulder"),(11,10)
 
 # Traps
 TRAP:"hole",(05,01)
 TRAP:"hole",(06,01)
 TRAP:"hole",(07,01)
 TRAP:"hole",(08,01)
 TRAP:"hole",(09,01)
 TRAP:"hole",(10,01)
 TRAP:"hole",(11,01)
 TRAP:"hole",(12,01)
 TRAP:"hole",(13,01)
 TRAP:"hole",(14,01)
 TRAP:"hole",(15,01)
 TRAP:"hole",(16,01)
 TRAP:"hole",(17,01)
 TRAP:"hole",(18,01)
 TRAP:"hole",(19,01)
 TRAP:"hole",(20,01)
 TRAP:"hole",(21,01)
 TRAP:"hole",(22,01)
 
 MONSTER:('m',"giant mimic"), random, m_object "boulder"
 MONSTER:('m',"giant mimic"), random, m_object "boulder"
 
 # Random objects
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'%',random
 OBJECT:'=',random
 OBJECT:'/',random
 
 # Rewards
 DOOR:locked,(23,12)
 DOOR:closed,(17,10)
 DOOR:closed,(17,12)
 DOOR:closed,(17,14)
 REGION:(18,09,22,15),lit,"zoo",filled,irregular
 IF [50%] {
   OBJECT:('(',"bag of holding"),$place[0]
 } ELSE {
   OBJECT:('"',"amulet of reflection"),$place[0]
 }
 ENGRAVING:$place[0],burn,"Elbereth"
 OBJECT:('?', "scare monster"),$place[0],cursed