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