###############################################################################
# entry.des - entry vaults for D:1 only.
#
# Entry vaults should provide atmosphere and nice starting points. The idea
# is neither to get a grip on most of D:1 nor to hand out some starting gear.
# Therefore, try to come up with small maps. Avoid placing guaranteed items.
# The same holds for any features which might trigger start-scumming, like
# fountains or altars.
# Also avoid ASCII art. It probably won't work in Tiles anyway.
#
# Note that at the start of the game, the dungeon builder removes all monsters
# in view of the player. Zero experience monsters like plants are exempt.
#
# This file is structured as follows:
# -1- Simple maps. Small and neither lua nor complicated syntax.
# -2- Twisted maps. Maps which either use a lot of lua or heavy SUBSTing etc.
# -3- Large maps.
#
# Entry vaults should be NAMEd as follows:
#    NAME:  nick_entry_name
# where "nick" is the name/nick of the vault designer and "name" is a somewhat
# descriptive label for the vault. Avoid numbers, please.
#
###############################################################################


##############################################################################
# -1- Simple maps.
##############################################################################

##############################################################
NAME:    onia_entry_pyramid
TAGS:    entry no_rotate no_monster_gen
ORIENT:  float
SHUFFLE: xxxcvlw
MAP
        .........
       .....x.....
      .....xxx.....
     .....xxxxx.....
    .....x..(..x.....
   .....xxx...xxx.....
  .....xxxxx.xxxxx.....
 .....x...........x.....
.....xxx.........xxx.....
....xxxxx.......xxxxx....
...x..[..x.....x..{..x...
..xxx...xxx...xxx...xxx..
.xxxxx.xxxxx.xxxxx.xxxxx.
............@............
ENDMAP

##############################################################################
NAME:    erik_entry_orb_chamber
TAGS:    entry no_rotate
ORIENT:  float
ITEM:    q:1 stone
MONS:    rat
SHUFFLE: {[(>
MAP
  ........@........
  ........>........
...xcXXXXXXXXXXXcx...
...xXXX...1...XXXx...
...xXX..1...1..XXx...
...xX1.........1Xx...
@(x....1..d..1....x[@
...xX1.........1Xx...
...xXX..1...1..XXx...
...xXXX...1...XXXx...
...xcXXXXXXXXXXXcx...
  ........{........
  ........@........
ENDMAP

##############################################################################
NAME:    matt_entry_spirals
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
MAP
xxxxxxxx@xxxxxxxxx
x......x.x.x.....x
x.xxxx.x.x.x.xxx.x
x.x{.x.x.x.x..(x.x
x.xx.x.x.x.xxxxx.x
x....x.x.x.......x
xxxxxx.x.x.xxxxxxx
@................@
x.xxxxxxxxxxxxxx.x
x.x..........x...x
x.x.xxxxxxxx.x.x.x
x.x.x...[....x.x.x
x.x.x.xxxxxxxx.x.x
x...x..........x.x
xxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_lava_altar
TAGS:    entry no_monster_gen
ORIENT:  northwest
SHUFFLE: Cc, {Y
SUBST:   ?=l. , Y=.
WEIGHT:  6
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxx>lllllllllll..
xxxxxxlClllllllll?..
xxxxxxlllllllll??...
xxxxxxllllllllll....
xxxxxxllllllllll....
xxxxxxllllllllll....
xxxxxxlllllllll?....
xxxxxxlllllllll.....
xxxxxxllllllll?.....
xxxxxxl?ll?ll?.....{
xxxxxxll.??....
xxxxxxl.........
ENDMAP

NAME:    dpeg_entry_water_altar
TAGS:    entry no_monster_gen
ORIENT:  northwest
WEIGHT:  4
SHUFFLE: Cc, {Y
SUBST:   Y=.
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxx>wwwwwwwwwwwwww.
xxxxxxwCwwwwwwwwwww...
xxxxxxwwwwwwwwwwww..
xxxxxxwwwwwwwwwwww..
xxxxxxwwwwwwwwwww...
xxxxxxwwwwwwwwwww...
xxxxxxwwwwwwwwww....
xxxxxxwwwwwwwwww....
xxxxxxwwwwwwwww.....
xxxxxxwwwwwwww.....{
xxxxxxwwwwww.....
xxxxxxw..........
ENDMAP

##############################################################################
NAME:    dpeg_entry_rooms_with_view
TAGS:    entry no_monster_gen no_pool_fixup
ORIENT:  float
SHUFFLE: {[, lw
MAP
.......xxxxxx@0
@+xlllxx......@
.x.....x......x
.l..{..l......x
.l..T..l..%...x
.x.....x......x
xxxlllxxxwwwxxx
x......x.....x.
x...%..w..T..w.
x......w..[..w.
x......x.....x.
@......xxwwwx+.
0@xxxxxx......@
ENDMAP

##############################################################################
NAME:   dpeg_entry_tiny_a
TAGS:   entry
ORIENT: float
MAP
{
ENDMAP

NAME:   dpeg_entry_tiny_b
TAGS:   entry
WEIGHT: 2
ORIENT: float
MAP
xxx
+{+
xxx
ENDMAP

NAME:   dpeg_entry_tiny_c
TAGS:   entry
WEIGHT: 4
ORIENT: float
MAP
@....
.xxx.
.+{+.
xxxxx
ENDMAP

NAME:   dpeg_entry_tiny_d
TAGS:   entry
WEIGHT: 4
ORIENT: float
MAP
@....
.xxx.
.+{+.
.xxx.
.....
ENDMAP

NAME:   dpeg_entry_tiny_e
TAGS:   entry
WEIGHT: 1
ORIENT: float
MAP
xxxxx
x...x
+.{.+
x...x
xxxxx
ENDMAP

NAME:   dpeg_entry_tiny_f
TAGS:   entry
WEIGHT: 3
ORIENT: float
MAP
@......
.xxxxx.
.x...x.
.+.{.+.
xx...xx
xxxxxxx
ENDMAP

NAME:   dpeg_entry_tiny_g
TAGS:   entry
WEIGHT: 3
ORIENT: float
MAP
@...xx
.xx+xx
.x...x
.+.{.+
xx...x
xxxxxx
ENDMAP

NAME:   dpeg_entry_tiny_h
TAGS:   entry
WEIGHT: 3
ORIENT: float
MAP
@xxxxxx
.xxxxxx
.x...xx
.+.{.+.
xx...x.
xxxxxx@
ENDMAP

NAME:   dpeg_entry_tiny_i
TAGS:   entry
WEIGHT: 4
ORIENT: float
MAP
xxxxx
..{.@
xxxxx
ENDMAP

NAME:   dpeg_entry_tiny_j
TAGS:   entry
WEIGHT: 3
ORIENT: float
SUBST:  v : vcbxxx
MAP
xxxxx
xvvvx
.({[@
xvvvx
xxxxx
ENDMAP

NAME:   dpeg_entry_tiny_k
TAGS:   entry
WEIGHT: 3
ORIENT: float
MAP
xxxx
x{.@
xxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_radiant
TAGS:    entry no_rotate
ORIENT:  float
NSUBST:  ' = 1:@ / *=.x
MAP
'xxxxxxx'xxxxxxx'
x.xxxxxx.xxxxxx'x
xx..xxxx+xxxx..xx
xxxx..+...+..xxxx
xxxxxxx.{.xxxxxxx
xxxx..+...+..xxxx
xx..xxxx+xxxx..xx
x.xxxxxx.xxxxxx.x
'xxxxxxx'xxxxxxx'
ENDMAP

##############################################################################
NAME:    dpeg_entry_fog
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: <>/>< , {}/}{
MARKER:  # = lua:fog_machine { \
             pow_max = 5, delay_min = 10, delay_max = 150, \
             size = 5, start_clouds = 1}
MAP
xxxxxx
x.{}.x
x....x
x.<>.x
x....x
x@##.x
ENDMAP

##############################################################################
NAME:    dpeg_entry_windows_large_door
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
MAP
.......
.xxmmmxx.
.x.....x.
.m..{..m.
.m.....m.
.x.....x.
.xx+++xx.
.........
ENDMAP

##############################################################
NAME:   noname_entry_rooms_in_the_neighbourhood
TAGS:   entry no_monster_gen
RTILE:  x = wall_hall
FTILE:  .([{ = floor_hall
ORIENT: float
MAP
 xxxxx             xxxxx
xx...xx           xx...xx
x.....x           x.....x
x..(..+     V     +..[..x
x.....x           x.....x
xx...xx   xx+xx   xx...xx
 xxxxx   xx...xx   xxxxx
         x.....x
         x..{..x
         x.....x
         xx...xx
          xxxxx
ENDMAP

##############################################################
NAME:    elethiomel_entry_shortcut
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(, XY/AB
KFEAT:   X = teleport trap
SUBST:   Y=x, A=., B==, (=(., [=[.
MAP
   xxxx@xxxxxxx.@.x
   xxxx.xxxxxx...xx
   xxxx.xxxxx...xxx
   xx....xxx...xxxx
   xx{....x...xxxxx
xxxxx........xxxxxx
x].XY........xxxxxxxxx
xxxxx.[..............@
xxxxx.......(.xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
# Indiana Jones and the Raiders of the Lost Ark
NAME:   elethiomel_entry_indiana_jones
TAGS:   entry
ORIENT: float
SUBST:  ~ = ~ .:5
# Too bad there isn't a "rolling boulder" trap.
MAP
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxx.....xxx
xxxxxxx.......xx...~~~..xx
.........{[(...+.G.~%~...x
xxxxxxx.......xx...~~~..xx
xxxxxxxxxx.xxxxxxx.....xxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
ENDMAP

##############################################################
NAME:    onia_entry_pentagram
TAGS:    entry no_monster_gen no_pool_fixup no_rotate
ORIENT:  float
SHUFFLE: ({[, x+/x+/x+/x+/cC/vV/lL/wW
SUBST:   C=+, V=+
NSUBST:  L = 1:. / *:l
MAP
       .............
       ......x......
       ......x......
       .....xxx.....
............xxx............
...........xxxxx...........
xxxxxxxxxx+xxxxx+xxxxxxxxxx
..xxxxxxxxx.....xxxxxxxxx..
....xxxxxxx..(..xxxxxxx....
......xxxx.......xxxx......
........xx..[.{..xx........
   .....xxx.....xxx.....
   .....xxxxx+xxxxx.....
   ....xxxxxx.xxxxxx....
   ....xxxxx...xxxxx....
   ...xxxx.......xxxx...
   ...xx...........xx...
   ..x.....      ....x..
   ........      .......
ENDMAP

##############################################################
NAME:    onia_entry_mini_spirals
TAGS:    entry
ORIENT:  float
SHUFFLE: ({[<,GT, vcxxxx
MAP
vvvvvvvvvvv
vv...v...vv
vv[v.v.v(vv
vvvv.v.vvvv
v.........v
v.vv.~.vv.v
v.<v...v{.v
vvvv.@.vvvv
ENDMAP

###########################################################
NAME:    eino_entry_druids_welcome
TAGS:    entry no_monster_gen
ORIENT:  float
MONS:    plant
MAP
x1......@......1x
xw1...........1wx
xww1.........1wwx
xwww1...[...1wwwx
xwwww1.....1wwwwx
xwwwww1.{.1wwwwwx
xwwww1.....1wwwwx
xwww1...(...1wwwx
xww1.........1wwx
xw1...........1wx
x1......@......1x
ENDMAP

###########################################################
NAME:    eino_entry_tree_alley
TAGS:    entry no_monster_gen
ORIENT:  float
MONS:    plant
SHUFFLE: 1t
MAP
xxxxxxxxxxxxxxxxx
.111111111111111.
@.....[.{.(.....@
.111111111111111.
xxxxxxxxxxxxxxxxx
ENDMAP

###########################################################
NAME:   eino_entry_water_cross
TAGS:   entry no_monster_gen
ORIENT: float
MONS:   plant
MAP
...................
..1xWx1..[..1xWx1..
.1xxWxx1...1xxWxx1.
..WWWWW..{..WWWWW..
.1xxWxx1...1xxWxx1.
..1xWx1..(..1xWx1..
...................
ENDMAP

##############################################################################
NAME:   dpeg_entry_chase
TAGS:   entry no_monster_gen no_pool_fixup no_rotate
MONS:   kobold, hobgoblin / goblin / giant bat
ITEM:   stone, dart
ORIENT: float
SUBST:  w : w l:1
MAP
xxxxxxxxxxxxx..........@
xxxxxwwwwwwww2..........
xxxxxxxxwwwwwww........x
xxxxx.......wwww..wwwwwx
xxww...(.).....wwwwwwwwx
xwwww....[.{....wwww...x
xwwwwww.................
xwwwwwwwwwwwwwww.......@
x1wwwwwwwwwwwwwwww......
x1e1...wwwwwwwwwwwwwww.x
x1d1...........wwwwwwwwx
x>...................wwx
xxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

###########################################################
NAME:    dpeg_entry_line_fractal
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
WEIGHT:  8
SHUFFLE: cv
MAP
x@xxxxxxxxxxxxxxxxxxxx@x
x......................x
x.cccccc......cccccc...x
x......................x
x.vv..vv......vv..vv...x
x......................x
xxxxxxxxxx{}xxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_rooms_a
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SHUFFLE: cvba
MAP
xxxxxxxxx@.xxxxxx
xvvvvvvvx..xbbbbx
xv.....vx..xb..bx
xv..(..+...xb.[bx
xv.....vx..xb..bx
xvvvvvvvx...+..bx
xxxxxxxxx..xb..bx
@..........xb.{bx
.........T.xb..bx
xxxxxxxx...xbbbbx
xxxxxxxx.@.xxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_rooms_b
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SHUFFLE: cvba
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
MAP
xxxxxxxxxxxxxxx
xcccccccx.....x
xc.....cx..[..x
xc..(..cx.....x
xc.....cxxxx+xx
xc..{..cx......
xc.....+......@
xcccccccx......
xxxxxxxxx..@...
ENDMAP

##############################################################################
NAME:    dpeg_entry_rooms_c
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[
SHUFFLE: cvba
MAP
xxxxxxxxxxxx
xvcvcvcvcvcx
xc........vx
xv........cx
xc.{....[.vx
xv........cx
xc........vx
xvcvcv+vcvcx
xxxxxx.xxxxx
x..........x
x.(..wwww..x
x..........x
xxxxxxxxxx@x
ENDMAP

##############################################################################
NAME:    dpeg_entry_tetris
TAGS:    entry
ORIENT:  float
SHUFFLE: bbba
MAP
          x.@.x
         xx...xx
        xx..x..xx
       xx..xxx..xx
      xx..xxxxx..xx
     xx..xxxxxxx..xx
    xx..xxxxxxxxx..xx
xxxxx..xxxxxxxxxxx..xxxxx
x.......................x
x.bb.bb..b..b..bb.bbb.b.x
x..b.bb.bbb.b.bb..b..bb.x
x..b........b........b..x
xx...xxxxxx.b.xxxxxx...xx
 xx...xxxxx...xxxxx...xx
  xx...xxxxxxxxxxx...xx
   xx...xxx...xxx...xx
    xx...x..{..x...xx
     xx...(...[...xx
      xxx...x....xx
        xxxxxxxxxx
ENDMAP

#############################################################################
NAME:    dpeg_entry_shrine
TAGS:    entry no_monster_gen no_pool_fixup
SHUFFLE: ABl/CDl/abw/cdw
SUBST:   A=@, B=+, C=x, D=l
SUBST:   a=@, b=+, c=x, d=w
ORIENT:  float
MAP
xxxxxxxxCxxxxxxxx
xlllllllDlllllllx
xlllll.....lllllx
xll....WWW....llx
xl...WWW.WWW...lx
AB..WWW.{..WW..lx
xl...WWW.WWW...lx
xll....WWW....llx
xlllll.....lllllx
xlllllllllllllllx
xxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_water_temple_mockup
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: {[(, cxxx
NSUBST:  . = 1:d / *:.
SUBST:   T = TVVVV
ITEM:    stone / dart
MAP
        ccccccc@ccccccc
    ccccc.............ccccc
  ccc..........T..........ccc
 cc...T.................T...cc
cc........T.........T........cc
c..............{..............c
c...T.....................T...c
c............[...(............c
cc........T.........T........cc
 cc...T.................T...c
  ccc..........T..........ccc
    ccccc.............ccccc
        ccccccccccccccc
ENDMAP

##############################################################################
NAME:    dpeg_entry_stone_temple_mockup
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: {[(, cxxx
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
SUBST:   T = TVVVV
MAP
     ccccccccccc
  cccc....[....cccc
 cc...............cc
 c......T...T......c
cc...T.........T...cc
c.........w.........c
c...T...........T...c
c{.....w.....w......@
c...T...........T...c
c.........w.........c
cc...T.........T...cc
 c......T...T......c
 cc...............cc
  cccc....(....cccc
     ccccccccccc
ENDMAP

##############################################################################
NAME:    dpeg_entry_lava_temple_mockup
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: {[(, cxxx
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
SUBST:   T = TVVVV
MAP
         ccccc
        cc...cc
       cc..{..cc
      cc.......cc
     cc..T...T..cc
    cc...........cc
   cc.T....T....T.cc
  cc...............cc
 cc..T...T...T...T..cc
cc...................cc
c......T.......T......c
c..[.......T.......(..c
cc...................cc
ccccccccccc@ccccccccccc
ENDMAP

##############################################################################
NAME:    dpeg_entry_chambers_temple_mockup
TAGS:    entry no_rotate
ORIENT:  float
SHUFFLE: {[(, cxxx
SUBST:   T = TVVVV
KMASK:   T = no_monster_gen
MAP
cccccccccccccc@ccccccccccccccc
cccc......................cccc
cc....c.cccc.cccc.cccc.cc...cc
c..ccc...cc...cc...cc...ccc..c
c.cccc.T.cc.T.cc.T.cc.T.cccc.c
c.cccc...cc...cc...cc...cccc.c
c...ccc.cccc.cccc.cccc.ccc...c
c.T.ccc.cccc.cccc.cccc.ccc.T.c
c............................c
cc.cc...[.....{.....(....cc.cc
c............................c
c.T.ccc.cccc.cccc.cccc.ccc.T.c
c...ccc.cccc.cccc.cccc.ccc...c
c.cccc...cc...cc...cc...cccc.c
c.cccc.T.cc.T.cc.T.cc.T.cccc.c
c..ccc...cc...cc...cc...ccc..c
cc...cc.cccc.cccc.cccc.cc...cc
cccc......................cccc
cccccccccccccccccccccccccccccc
ENDMAP

##############################################################################
NAME:    dpeg_entry_leaves_temple_mockup
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: {[, cxxx
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
SUBST:   T = TVVVV
MAP
   ccccccccccccccccc
  cc.ccccccccccccc.cc
 cc....ccccccccc....cc
cc..T....ccccc....T..cc
c.....T....c....T.....c
c..T....T.....T....T..c
c.........{.(.........c
ccccccc.........ccccccc
 ccccccccc.[.ccccccccc
  cccccccc...cccccccc
   cccccc..T..cccccc
    cccc.......cccc
     cc..T...T..cc
     c.....T.....c
     ccc.......ccc
       cccc@cccc
ENDMAP

##############################################################################
NAME:   dpeg_entry_three_same_balls
TAGS:   entry no_rotate no_monster_gen
ORIENT: float
SUBST:  ' = .x
NSUBST: d = 1:d / *:'
ITEM:   stone / dart
MAP
               xxxxx
             xxx...xxx
   xxxxxxxxxxx.......xx
 xxx...xxxxxx.........x
xx.......xx......(....x
x..........xx.........x
x....{....xxxx.......xx
x.........xxxxxx...xxx
xx.......xxxxxx.xxxx
xxxx...xxxxxx...xxxx
xxxxxxxxxxx.......xx
xxx...''...........x
x'.''d..xx....[....x
x'.'xx'xxx.........x
xd..'d...xx.......xx
xx''..''..xxx...xxx
 xxxxxxxx@xxxxxxx
ENDMAP

##############################################################################
NAME:   lemuel_entry_lava_pool
TAGS:   entry no_monster_gen
ORIENT: float
MAP
    xxxxxxx
   xx..{..xx
   x(.....[x
   x.......x
   x.......x
   x..lll..x
   x.lllll.x
   x.ll%ll.x
   x.ll>ll.x
   x.ll%ll.x
   x.lllll.x
   x..lll..x
  xx.......xx
xxx.........xxx
x.............x
x@.....@.....@x
ENDMAP

##############################################################################
NAME:   lemuel_entry_funnel
TAGS:   entry no_monster_gen
ORIENT: float
SUBST:  c : ccccwlx.
MAP
xxxxxxxxxxxxxxx
x{.....(.....[x
x.............x
xx...ccccc...xx
 x...ccccc...x
 xx...ccc...xx
  x...ccc...x
  xx...c...xx
   x...c...x
   xx.....xx
    x.....x
    xx...xx
     x...x
     x...x
     x+++x
     x.@.x
ENDMAP

#############################################################################
NAME:   lemuel_entry_hallway
TAGS:   entry no_rotate no_monster_gen
ORIENT: float
NSUBST: ! = 1:> / *:!
SUBST:  !:cvxGT
MAP
     x.@.x
     x.!.x
     x...x
     x.!.x
     x...x
     x.!.x
     x...x
     x.!.x
     x...x
xxxxxx.!.xxxxxx
x.............x
x.............x
x.....[{(.....x
x.............x
x.............x
xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    lemuel_entry_rhombus
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[, abc
SUBST:   a:+=, b=x, c=x
MAP
      x@x
    xax.xcx
   xx.....xx
  xb.......bx
 xx.........xx
xc...........ax
x.............x
x......{......x
x.....[>(.....x
x......<......x
x.............x
xx...........xx
 xc.........bx
  xx.......xx
   xa.....xc
    xx...xx
     bx.xa
      x@x
ENDMAP

##############################################################################
NAME:    lemuel_entry_cross
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[, >d
ITEM:    stone / dart
MAP
      xxx
      x{x
      x.x
      x.x
      x.x
xxxxxxx.xxxxxxx
x[...........(x
xxxxxxx.xxxxxxx
      x.x
      x.x
      x.x
     xx.xx
     xG>Gx
     xx.xx
      x.x
      x@x
ENDMAP

##############################################################################
NAME:    lemuel_entry_room
TAGS:    entry
ORIENT:  float
SHUFFLE: {[, '?!
SUBST:   ':.+, ?:x, !:x
MAP
xxxxxxxxxxx@xxxxxx
xxxxxxxxxxx.xxxxxx
xx..............xx
xx..............xx
xx..xx!?'xxxxx..xx
xx..'.......(x..xx
xx..!........x...@
xx..?........x..xx
xx..x...{....x..xx
xx..x........?..xx
@...x........!..xx
xx..x[.......'..xx
xx..xxxxx'?!xx..xx
xx..............xx
xx..............xx
xxxxxx.xxxxxxxxxxx
xxxxxx@xxxxxxxxxxx
ENDMAP

#########################################
# good luck! (Shiori)
NAME:    shiori_shiawase
TAGS:    entry no_monster_gen no_rotate no_vmirror
ORIENT:  float
SHUFFLE: +=
SUBST:   =:==x , x:xvcb
MAP
      x+x
      x.x
    xxx.xxx
    =..{..=
xxxxxxx.xxxxxxx
+.............+
xxxx.xxxxx.xxxx
  xx.xxxxx.xx
  +.........+
 xxxxxx.xxxxxx
 =.....[.....=
 xxxxxx.xxxxxx
      x.x
      x.x
      x+x
ENDMAP

############################################################################
# A spiral made of rock, with lots of "windows".
NAME:    zelgadis_glass_entry_large
TAGS:    entry
ORIENT:  float
WEIGHT:  1
SHUFFLE: {[(<
SUBST:   < = .
NSUBST:  X = 4:+ / *:x
MAP
mxmxmxmxmxmxxmxxmx
x................m
m.xmXmxmxmxmxmXm.x
x.m............x.m
m.x.mxmxmXmxmx.m.x
x.m.x........m.X.m
m.X.m.xmxmxx.x.m.x
x.m.x.m....x.m.x.m
m.x.m.x.mx.m.X.m.x
x.m.X.m{[m.x.m.x.m
m.x.m.x(<x.m.x.m.x
x.m.x.xmxx.x.m.x.m
m.X.m......m.x.m.x
x.m.xxmXmxmx.m.x.m
m.x..........x.m.x
x.xmXmxmxmxmXm.X.m
m..............m.x
xxmxmxmxmxmxmxmx@m
ENDMAP

############################################################################
# A spiral sometimes made entirely of glass
NAME:    zelgadis_glass_entry_small
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(<, mvvcccxxxx
SUBST:   < = .
MAP
...mmmmmmmm...
..............
.mm.mmmmmm.mm.
.mm.m....m.mm.
.mm.m.mm.m.mm.
.mm.m{[m.m.mm.
.mm.m(<m.m.mm.
.mm.mmmm.m.mm.
.........m.mm.
...mmmmmmm....
ENDMAP

##############################################################################
NAME:    dpeg_entry_stonehenge_12_columns
TAGS:    entry no_rotate
ORIENT:  float
WEIGHT:  3
ITEM:    nothing, nothing, nothing
SHUFFLE: cccbvxxx, def}
MAP
   ........................
   ............cc..........
  d......cc....cc....cc....e
.........cc..........cc.......
....cc........................
....cc...................cc...
.........................cc...
..............................
..cc..........................
..cc...........{..........cc..
..........................cc..
..............................
...cc.........................
...cc...................cc....
........................cc....
.......cc..........cc.........
  f....cc....cc....cc......}
   ..........cc............
   ........................
ENDMAP

NAME:    dpeg_entry_stonehenge_8_columns
TAGS:    entry no_rotate
ORIENT:  float
WEIGHT:  7
SHUFFLE: cccbvxxx
MAP
   ....................
   .........cc.........
   .........cc.........
.....cc............cc.....
.....cc............cc.....
..........................
..........................
..cc.........}........cc..
..cc........{.........cc..
..........................
..........................
.....cc............cc.....
.....cc............cc.....
   .........cc.........
   .........cc.........
   ....................
ENDMAP

##############################################################################
NAME:   dpeg_entry_simpleton_a
TAGS:   entry  no_monster_gen
ORIENT: float
NSUBST: . = 1:d / *:.
ITEM:   stone / dart
MAP
@xx           xx@
x.xxxx     xxxx.x
xx...xxx xxx...xx
 xxx...xxx...xxx
   xx.......xx
    xxx.{.xxx
   xx.......xx
 xxx...xxx...xxx
xx...xxx xxx...xx
x.xxxx     xxxx.x
@xx           xx@
ENDMAP

##############################################################################
NAME:    dpeg_entry_simpleton_b
TAGS:    entry
ORIENT:  float
ITEM:    nothing, nothing
SHUFFLE: =+, TVG, {[
SUBST:   c:cxx
KMASK:   T = no_monster_gen
MAP
xx@...@xxxxxxxx
xx+xxx+xxxxxxxx
x.......x......
x.......=..)..@
x.T.[.T.x......
x.......xxx=xxx
x.......xcc=ccx
xxxxxxxxxc...cx
xccccccccc.{.cx
@........+...cx
xcccccccccccccx
xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_simpleton_c
TAGS:    entry
ORIENT:  float
ITEM:    nothing, nothing
SHUFFLE: =+, cx, de/{(, {[(
MAP
@.........@
...xx+xx...
...x...x...
.xxx.d.xxx.
.x.......x.
.=.{.[.(.=.
.x.......x.
.xxx.e.xxx.
...x...x...
...xx+xx...
@.........@
ENDMAP

##############################################################################
NAME:    dpeg_entry_prison
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: ABCDEFGH
SUBST:   A={, B=', C=', D=', E=', F=', G=', H=d
SUBST:   ' = .:70 1 w:2
SUBST:   . = .:60 2:1 3:1
ITEM:    stone / dart
MONS:    fungus, rat, giant cockroach
MAP
xxxxxxxxxxxxxxxxx
x'A'x'B'x'C'x'D'x
x'.'x'.'x'.'x'.'x
xx+xxx+xxx+xxx+xx
x'..............x
x'..............+
x'..............x
xx+xxx+xxx+xxx+xx
x'.'x'.'x'.'x'.'x
x'E'x'F'x'G'x'H'x
xxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:   dpeg_entry_refuge
TAGS:   entry
ORIENT: float
SUBST:  c:xxxc, %:%.T, T:TGv.
KMASK:  T = no_monster_gen
MAP
.....................
.....................
..xxxxxxxx+xxxxxxxx..
..xxxx.........xxxx..
..xx...T.....%...xx..
..x..T...c=c...%..x..
..+.....cc{cc.....+..
..+.....cc>cc.....+..
..x..%...c=c...T..x..
..xx...%.....T...xx..
..xxxx.........xxxx..
..xxxxxxxx+xxxxxxxx..
.....................
....................@
ENDMAP

##############################################################################
NAME:    dpeg_entry_ratfight
TAGS:    entry
MONS:    rat, goblin, giant bat
ORIENT:  float
SHUFFLE: [{(
SUBST:   X = x=
MAP
xxxxxxxxxxxx..@
xx.1.%1xxxxx...
x%.1.....xxx(..
x1........xx...
xxx...xx..xx...
xxxxxxxxx.1x...
xxxxxxxxxx+xXxx
..[.xxxxxx....x
....xxxxxx.{..x
@...xxxxxxxx@xx
ENDMAP

##############################################################################
NAME:   dpeg_entry_snail
TAGS:   entry no_monster_gen no_rotate
ORIENT: float
NSUBST: . = 1:d / *:.
ITEM:   stone / dart
MAP
         xxxxxxxxxxxxxxxxx
      xxxxxxxx.......xxxxxxx
   xxxxxxx.......(.....xxxxxx
  xxxxxx.................xxxxx
 xxxxxx.........xxxx......xxxx
xxxxxx........xxxxxxxx.....xxx
xxxxx.......xxxx....xxx.....xx
xxxxx......xxx........xx....xx
xxxx.......xx...xxx...xxx....x
xxxx......xxx..xxxxx...xx..[.x
xxx.......xx..xxx.{xx..xx....x
xxx......xxx..xxx.xx..xxx....x
xxx......xxx...xx.....xx....xx
xx........xx....xxxxxxx....xxx
xx........xxx....xxxx......xxx
xx........xxxx............xxxx
xx........xxxxxxx......xxxxxx
x....>.....xxxxxxxxxxxxxxxxx
x....@.....xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_boxorama
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(<
MAP
xxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx
x.................................x
x.................................x
x...xxxxxxx...xxxxx...xxxx...xx...x
x...xxxxxxx...xxxxx...xxxx...xx...x
x...xxxxxxx...xxxxx...xxxx........x
x...xxxxxxx...xxxxx........<..[...x
x...xxxxxxx.......................x
x.......................xxxxxxx...x
x...(..{........xxxxx...xxxxxxx...x
x........xxxx...xxxxx...xxxxxxx...x
x...xx...xxxx...xxxxx...xxxxxxx...x
x...xx...xxxx...xxxxx...xxxxxxx...x
x.................................x
x.................................x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_boxes_within_box
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
MAP
xxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx
x.................................x
x.................................x
x...xxxxxxx..xxxxxxxxxxx..xxxxx...x
x...xxxxxxx..xxxxxxxxxxx..xxxxx...x
x...xxx........xxxxxxxxx..xxxxx...x
x............{.xxxxx......xxxxx...x
x...xxx..[........................x
x...xxx........x........(.xxxxx...x
x...xxxxxx..xxxx.xxx......xxxxx...x
x...xxxxxx..xxxx.xxx......xxxxx...x
x...xxxxxx..xxxx.xxxx...xxxxxxx...x
x...xxxxxx..xxxx.xxxx...xxxxxxx...x
x.................................x
x.................................x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_houses_and_road
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(, +'
SUBST:   ' : x + ':40, '=x+
MAP
xxxxxxx.@.xxxxxxx
x.....x...x.....x
x..(..'...+..[..x
x.....xx.xx.....x
xxx+xxxx.xxxx'xxx
@....xx...xx....@
.....xx...xx.....
xxx+xxxx.xxxx+xxx
x.....xx.xx.....x
x..{..'...'..]..x
x.....x...x.....x
xxxxxxx.@.xxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_shelter
TAGS:    entry
ORIENT:  float
SHUFFLE: cvxxxx
MAP
@...........@
.............
....cc+cc....
...cc...cc...
...c..{..c...
...cc...cc...
....cc+cc....
.............
@...........@
ENDMAP

##############################################################################
NAME:    dpeg_entry_rhombus
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: ([/XY, @A
SUBST:   X=., Y=., A=x
MAP
      xxAxx
   xxxx...xxxx
xxxx....(....xxxx
@......X{Y......@
xxxx....[....xxxx
   xxxx...xxxx
      xxAxx
ENDMAP

############################################################
NAME:   zaba_entry_water
TAGS:   entry no_monster_gen no_item_gen no_rotate
ORIENT: float
SUBST:  T = TV, ? = wW, > = >d
ITEM:   dart / stone
MAP
xxx@xxx@xxx@xxx
x.............x
x.G.TTT>TTT.G.x
x.............x
xw?W?wwWww?W?wx
xwwW?wwWww?Wwwx
xwwWWwwWwwWWwwx
xww?WwwWwwW?wwx
xwwwW?wWw?Wwwwx
xwwwWWwWwWWwwwx
xwww?WwWwW?wwwx
xwwwwWwWwWwwwwx
xwwwwWWWWWwwwwx
xwwww?WWW?wwwwx
xwww?WWWWW?wwwx
xww?WW...WW?wwx
xw?WW.({[.WW?wx
xww?WW...WW?wwx
xwww?WWWWW?wwwx
xwwww?????wwwwx
xwwwwwwwwwwwwwx
xwwwwwwwwwwwwwx
xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    lemuel_entry_tunnels
TAGS:    entry no_monster_gen
ORIENT:  float
SUBST:   ? = x.
SHUFFLE: {[(
MAP
xxx
x{xx          xxxxx
x..xxxxxxxxxxxx[x?x
xx.?xxxxx(xxxx?...x
x?..xxxx..xxxx???.x
x..?x?..?xxxx?x??.x
x.?xx..xxxxx?.....x
x.?xx.?xxxx?x.x???x
xx..?.xxxx??..xxxxx
 xx...?x??x..xx
  xxx.xx....xx
    x..x.??xx
    xx.?.xxx
     x..??xx
     x?x.xxx
     xx?.?xx
      xx..?x
       xxx@x
ENDMAP

##############################################################################
NAME:    lemuel_entry_muddy
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SUBST:   ? = w'
NSUBST:  ' = 12:W12" / 24=W"12 / *:.
SUBST:   " = . W:1
MONS:    nothing / plant, nothing / fungus
MAP
xxxxxxxxxxxxxxxxxxx
xxxxx{''1''('1ww'[x
xxxxx1'''1'''11ww'x
xxxx?x''w.11''??1'x
xxx??x''''''''2'1'x
xxx?ww''11'''''?w'x
xxxxww?''''''''''xx
xxx?w?11?'22'2'''.x
xxx?w11?''''w2''''x
xxxx???''1''???''xx
xxxxx?''1??''??'xxx
xxxx?x'''''2?''"xxx
xxxx?x'''2''''""xxx
xxxx?w''''2''"""xxx
xxxxx'22w""""""xxxx
xxxxxxx""2"""""xxxx
xxxxxxx""2""22xxxxx
xxx.....""""xxxxxxx
xx..xx......xxxxxxx
@..xxxxx.....xxxxxx
xxxxxxxxxx....xxxxx
xxxxxxxxxxxx.@.xxxx
ENDMAP

##############################################################################
NAME:    lemuel_entry_broad_hall_no_closet
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SUBST:   ? : xxcvG.
WEIGHT:  4
MAP
xxxxxxxxxxx
x{...(...[x
x.........x
x.?.....?.x
x.........x
x.........x
x.?.....?.x
x.........x
x.........x
x.?.....?.x
x.........x
x.........x
x.?.....?.x
x.........x
x>.@.>.@.>x
ENDMAP

NAME:    lemuel_entry_broad_hall_high_closet
TAGS:    entry no_monster_gen
ORIENT:  float
SUBST:   ? : xxcvG.
ITEM:    meat ration / bread ration / beef jerky / spear / potion of water / \
         apple / club / hammer / knife
SHUFFLE: {[(
WEIGHT:  3
MAP
xxxxxxxxxxxx
x{...(...[xx
x.........xx
x.?.....?.xx
x.........xx
x.........xx
x.?.....?.xx
x.........xx
x.........xxxxxx
x.?.....?.xxxddx
x.........=..ddx
x.........xxxxxx
x.?.....?.xx
x.........xx
x>.@.>.@.>xx
ENDMAP

NAME:    lemuel_entry_broad_hall_low_closet
TAGS:    entry no_monster_gen
ORIENT:  float
SUBST:   ? : xxcvG.
ITEM:    meat ration / bread ration / beef jerky / spear / potion of water / \
         apple / club / hammer / knife
SHUFFLE: {[(
WEIGHT:  3
MAP
xxxxxxxxxxxx
x{...(...[xx
x.........xx
x.?.....?.xx
x.........xx
x.........xxxxxx
x.?.....?.xxxddx
x.........=..ddx
x.........xxxxxx
x.?.....?.xx
x.........xx
x.........xx
x.?.....?.xx
x.........xx
x>.@.>.@.>xx
ENDMAP

##############################################################################
NAME:    lemuel_entry_behind_the_door_large
TAGS:    entry no_monster_gen
WEIGHT:  5
ORIENT:  float
SHUFFLE: {(
SUBST:   b : bcvxxx
MAP
xxxxxxxxxxx
x{...(...[x
x.........x
x.........x
x.........x
x.........x
x.........x
x.........x
x.........x
xb++bbb++bx
x....@....x
ENDMAP

NAME:    lemuel_entry_behind_the_door_small
TAGS:    entry no_monster_gen
WEIGHT:  5
ORIENT:  float
SHUFFLE: {(
SUBST:   b : bcvxxx
MAP
xxxxxxxxxxx
x{...(...[x
x.........x
x.........x
x.........x
xb+bb+bb+bx
x....@....x
ENDMAP

##############################################################################
NAME:    dpeg_entry_three_smaller_balls
TAGS:    entry no_rotate
ORIENT:  float
WEIGHT:  5
SHUFFLE: {[(
MAP
   xxxxx  x@x  xxxxx
 xxx...xxxx+xxxx...xxx
xx.......xx.x........xx
x.........x.x.........x
x....[....+.+....(....x
x.........x.x.........x
xx.......xx.xx.......xx
 xxx...xxxx+xxx....xxx
  xx+xxxxx...xxxxx+xx
  xx.xxx.......xxx.xx
  x...x.........x...x
  x...+....{....+...x
  x...x.........x...x
  x..xxx.......xxx.xx
  xx.xxxxx...xxxxx.x
   x..xxxxx+xxxxx..x
   xx.............xx
    xxxxxxxxxxxxxxx
ENDMAP

NAME:    dpeg_entry_three_bigger_balls
TAGS:    entry no_rotate no_monster_gen
ORIENT:  float
WEIGHT:  5
SHUFFLE: {[, }>
MAP
         xxxxx
        xx...xx
        x..{..x
   xxxxxx.....xxxxxx
 xxx...xxx...xxx...xxx
xx.......xx+xx.......xx
x.........x.x.........x
x....[....+.+....(....x
x.........x.x.........x
xx.......xx+xx.......xx
 xxx...xxxx.xxxx...xxx
  xxxxxx.......xxxxxx
  xxx.............xxx
  xx...............xx
  x.................x
  x........T........x
  x.......T}T.......x
  x........T........x
  xx...............xx
   xx.............xx
    xxxx.......xxxx
       xxxx@xxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_oval
TAGS:    entry no_rotate
ORIENT:  float
SHUFFLE: {[(<, @X, Aa/Bb/Dd/Ee
SUBST:   A==, a=., B=c, b=c, D=c, d=c, E=c, e=c
SUBST:   v:vxxx, c:vxxxxc
SUBST:   X=x
MAP
        xxxxxxx@xxxxxxx
    xxxxx.............xxxxx
  xxx.......vxvxvxv.......xxx
 xx......xvx.......xvx......xx
 x....vxv.............vxv....x
xx...x......cccAcEc......x...xx
x...v..[..ccBbcaceccc..(..v...x
x...x....cDddd.%.ccccc....x...X
x...v....ccccc.%.ccccc....v...x
x...x..<..ccccc.ccccc..{..x...x
xx...v......ccccccc......v...xx
 x....xvx.............xvx....x
 xx......vxv.......vxv......xx
  xxx.......xvxvxvx.......xxx
    xxxxx.............xxxxx
        xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:   dpeg_entry_pond
TAGS:   entry no_monster_gen no_pool_fixup
ORIENT: float
SUBST:  0 = 0 .
SUBST:  ' = w'
NSUBST: . = 1:d / *:.
NSUBST: " = 1:@ / *:.
ITEM:   stone / dart
MAP
".0.0....0."
xxwwwwwwwxxx
xwwwwwwwwwwx
xwwww'wwwwwx
xwww....'wwx
xww......'wx
x'.......'wx
x....{..'wwx
.........wwx
@........xxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_rhombi
TAGS:    entry no_monster_gen
SHUFFLE: WYZ{/wyz(
SUBST:   Z=x, Y=x, W=@, C==+x
SUBST:   z=@, y=+, w=x
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
ORIENT:  float
MAP
  xZxxx
  xYxxxxxx
 xx.xxxx.xx
xx...xx.x+x
x..{..+xx.xx
xx...xxx...xx
xxx.xxx.....xx
xxxCxx...(...W
xxx.xxx.....xx
xx...xxx...xx
x..[..+xx.xx
xx...xx.x+x
 xx.xxxx.xx
  xxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_triangle_fractal
TAGS:    entry no_monster_gen no_rotate
WEIGHT:  2
ORIENT:  float
SHUFFLE: {[(
MAP
xxxxxxxxxxxxxxxxxxxxxxx@x
xxxxx.xxxxx.xxxxxxxxxxx.x
xxxx..xxxx..xxxxxxxxxx..x
xxx...xxx...xxxxxxxxx...x
xx..(.xx..{.xxxxxxxx....x
x.....+.....xxxxxxx.....x
xxxxx+xxxxx+xxxxxx...x..x
xxxxx.xxxxx.xxxxx...xx..x
xxxx..xxxx..xxxx...xxx..x
xxx...xxx...xxx...xxxx..x
xx..[.xx..T.xx...xxxxx..x
x.....+.....+...........x
xxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
# Sounds of Crawl: the Slurp.
NAME:    dpeg_entry_sounds_slurp
TAGS:    entry no_monster_gen
MONS:    generate_awake jelly / kobold
ITEM:    dart
ORIENT:  float
SHUFFLE: {[(
SUBST:   v:vxx
MAP
xxxxxxxxxxxxxxxxxxxxx....@.....
xxxxx......xxxxxxxxxx.........@
xxx............xxxxxx..........
xx................xxxxxxxxxxxxx
xx....vvvv.......xx.....xxxxxxx
.....vv1dvvv.....x...{.....xxxx
@....vdddd>vv................xx
.....vvddvvv...x....vvv.......x
xxx...vvvvv...xx...vvvvv..}...x
xxx..........xx....vvvvv.....xx
xxx..........xx.....vvv......xx
xxxx........xx..............xxx
xxxx.......xxxx....[......xxxxx
xxxxx...xxxxxxxxx.....xxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
# Sounds of Crawl: the Drone.
NAME:    dpeg_entry_sounds_drone
TAGS:    entry no_monster_gen no_rotate
MONS:    generate_awake boring beetle / boring beetle
ORIENT:  float
SHUFFLE: {<
MAP
xxx.....@....ccccc....@.....xxx
xx...........cx>xc...........xx
x............cxxxc............x
.............cxxxc.............
.............cxxxc.............
@.......(....cxxxc....[.......@
.............cxxxc.............
ccccccccccccccxxxcccccccccccccc
cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
c>xxxxxxxxxxxxx1xxxxxxxxxxxxx>c
cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
ccccccccccccccxxxcccccccccccccc
.............cxxxc.............
@.......]....cxxxc....{.......@
.............cxxxc.............
.............cxxxc.............
x............cxxxc............x
xx...........cx>xc...........xx
xxx.....@....ccccc....@.....xxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_arbitrary_a
TAGS:    entry
ORIENT:  float
SHUFFLE: [{
SUBST:   ' : . x ':40, '=.x
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
MAP
    xxxxxxxxxxxxxxxxx
   xx''xx''''''xx''xx
   x''..'..xxx.'x..'x
  xx'.{...xx'......'x
  x'.....x''..[...'xx
  x'....'.......''xxx
 xx'.........''xxxxxx
 x'........'xxxxxxxxx
xx'......''xxxxxxxxx.
x'.....'xxxxxxxxxxx..
x...''xxxxxxxxxxxxx.@
x.'xxxxxxxxxxxxxx....
x..'xxxxxx''.'x..'xxx
x'...'''x'.xx..'xxxxx
x'..........xxxxxxxxx
xx'..(.xxx'....''xxxx
 xx'....xxxx''...''xx
  xxxx'''x xxx''...'x
     xxxxxxxxxx..@..x
ENDMAP

##############################################################################
NAME:    dpeg_entry_arbitrary_b
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
SUBST:   ' : . x ':40, '=.x
MAP
     xx'.@.'xxx
   xxx'..'...'x
  xx'...xxxx..xx
  x...'xxxxx'.'x
 xx.(.'xxxxxx..xx
 x'....'xxxxx'..x
xx...'...xxxxx'.'
x..''xx'..'xx...@
..'xxxxx.'.'...'x
@.'xxxx'.....[.'x
'..'x'....''...xx
x'.....{.'xxx'.'x
xx'''....xxxx'.xx
 xxxx.'xxxxxxx.xx
   xx.x'xxxxx.'xx
   x'..@''xx.@.'x
ENDMAP

##############################################################################
NAME:    dpeg_entry_arbitrary_c
TAGS:    entry
ORIENT:  float
SHUFFLE: TV, XY/({
SUBST:   XY = .
KMASK:   T = no_monster_gen
MAP
  xx..@..xx
 xx...x...xx
 x...xxx...x
 x...xxx...x
xx..xxxxx..xx
x...........x
x.....(.....x
x.T..X[Y..T.x
x.....{.....x
x...........x
xxxx..x..xxxx
   xx...xx
   x..@..x
ENDMAP

##############################################################################
NAME:    dpeg_entry_subterranean_lakeside_camping
TAGS:    entry no_monster_gen
ORIENT:  float
MONS:    goblin, rat, giant bat
SHUFFLE: {[(
SUBST:   ? : . w ?:40, ' : . x ':40
SUBST:   ? = .w, ' = .x
MAP
      xxxxxxxxxxxxxxxxxxxx
   xxxx?xx1.'xxxxxxxx'.33x
 xxx'.??.xxx.xxx.x.x..xxxx
xx'..?w.....?.....x..xxx'x
x'.?www?.?.?www?.xx...2x.'
x'?www?.??w.wwww?...?.xx.@
xx.???.?wwww.www.?ww..x..'
xxx'..?wwww??.wwwww?.xx.xx
''xx..?www?[({?www?.xx.xxx
@..xx?wwwww???wwwww?..xx'x
..xx..?wwwww.wwwww?..x..xx
x'.xxx.??wwww.ww.??...xxxx
xx..x....??www.??...xxxx'x
 xx...??....??.xx?.x.....x
  xx'...'xxxxxxx''...'x.2x
  x'.xxxxx'''xxxxxx''xx1xx
  xxxxxxxx.@.xxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_more_subterranean_lakeside_camping
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SUBST:   ? : . w ?:40, ' : . x ':40
SUBST:   ? = .w, ' = .x
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xwwwwwwwww?......'''....''.
xwwwwww??...?w?......'.....
xwww??....w.www??...'x'..'.
xww??...?ww.w.ww.?..xx.....
xw?....?ww[www..w.?..'.....
xw?.(.?wwwwwwwww......'...@
xw?....ww{wwww..w....'x.'..
xww??...?wwww?.ww?....x.''.
xwww??.....?wwww...x..'....
xwwwwww??....???..'x....xx'
xwwwwwwww??''...........'''
xxxxxxxxxxxxxxxxx..@....'''
ENDMAP

##############################################################################
NAME:   dpeg_entry_erosion
TAGS:   entry
ORIENT: float
SUBST:  '=cx., "=+.=, c:xxc
MAP
xxxxxxxxxxxxxxxxxxxx
xccccccx.......x..c.
xccccccc..ccx'.x..x.
xcc.(..c..'..c.'=''.
xcc.[..+..c..+.x.."@
xcc.{..c..cxxc.'..x.
xccccccc..x....'xx'.
xcccccxxc...cc......
xxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_orchard
TAGS:    entry
ORIENT:  float
MONS:    plant
SHUFFLE: 1x
SUBST:   x = '
SUBST:   ' = ':140 d
SUBST:   . = '.
KITEM:   d : apple / apricot / pear / apricot / orange / banana / \
             strawberry / lemon
KFEAT:   d = '
FTILE:   d'1{ = floor_grass
COLOUR:  d' = green
MAP
  .....
 .x...x.
 '1'''1'
..''{''..
 '1'''1'
 .x...x.
  .....
ENDMAP

##############################################################################
NAME:    dpeg_entry_round_a
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
SUBST:   ? = x= , ' = x. , v : cvxxxx
MAP
xxxxxxxxxxxxxxxx.@
@...xxxxxx.'xx.?..
xxx'.xxxx.xx..xx..
xxxx.'xxx?xxxxxx..
xxxxx.xxx.xxxxxx..
xx[x.......xxxxx..
xx...vvvv..'xxxx..
x'.vvvvvvv....xx..
x..vvvvvv..xx'.x..
xx..vv....xxxx'x..
x(x'...xx{xxxx.?..
xxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_round_b
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
SUBST:   ' : . x ':40, '=x.
MAP
   x@xxxxxxxx
 xxx.xxxx...xx
xx'...xx..x..@
x'..x..'....xx
x'.......'xxxx
x'........xxxx
x'...''....xxx
xx..'xxx'...xx
 x.'xxxxxx..xx
 x..xxxxxxx.'x
 xx.'xxxxxx..x
  x..xxxxxx.{x
  xx..xxxx..xx
   xx...xx.'x
    xxx.(.['x
      xxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_round_c
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
SUBST:   ' : . x ':40, '=x., " : . c ":40, "=.c , c:cxx
MAP
    xxxxxxx
  xxx.....xxxx
 xx'.."""....xxxxx
xx'.."ccc".[.....xxxxxxx
x...cccccc"...cc...xxx.@
x.{.ccccc"..'.."cc..x.x.
x....cc....'xx.."c".'xx.
xx......(.'xxxx'....'xx.
 x'..''...xxxxxxxx.'xxx.
 x'..''xxxxxxxxxxxx.xxx.
 xx''xxxxxxxxxxxxxx.xxx.
  xxxxxxxxxxxxxxxxx@...@
ENDMAP

##############################################################################
NAME:    dpeg_entry_short_road
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(, XY
SUBST:   X==, Y=x, %=%.
MAP
xxxxxx@.xxx
x(.xx..xxxx
x..x...+..x
x..x..xx.[x
x..+..xx..x
xXxx..xxxxx
x%Y..xxxxxx
xxx..x...{x
xx...+....x
xx.@xxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_long_road
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(
MAP
xx.(.@x..xx@
xx...xx...=.
.....xxx..xx
....xxx...x.
x...xx....x.
x..xxx...xx.
...xx....x..
..xxx.{.xxx.
..xx....xx..
.xxxx..xx...
xxx....xx@.[
ENDMAP

##############################################################################
NAME:    dpeg_entry_court
TAGS:    entry
ORIENT:  float
SHUFFLE: {[(, TVG
KMASK:   T = no_monster_gen
MAP
xxxxx.@.xxxxx
x...........x
x.xxx...xxx.x
x.x.......x.x
x.x.T.x.T.x.x
x.....x.....x
x....xxx....x
xxxx..x..xxxx
x..+.....+..x
x(.xxx+xxx..x
x..x[....x.{x
xxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_signposts
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: DX'/CY"
SUBST:   D = c, XC" = x, 'Y = .
SHUFFLE: cvba
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
MAP
          xxxxxxxxxxx
     xxxxxx...xxxx..xx
xxxxxx..xD.xxx.xx.xx.xxxxx
x..Cx.x.x.xxx'xxxx.x'x....
x(...xx'X.'xx'Dx..xx.x.cx.
x{.xxxXxx.x'x...'xxxx..xx@
x[...xxX'CX'x.xCXx..xX.cx.
x..Dx...xx.XXx'''.Xx.x....
xxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_ternary
TAGS:    entry
ORIENT:  float
SHUFFLE: cv
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxx
xcxcxcxcxcxcxcxcxcxcxcxxcx
x.x..c.....x..c.....x..c.x
x.......x..x..x..c..c..c.x
@.........................
..x..x..x..(..x..x..x..x.@
x.c..c..x..[..x..........x
x.x.....c..{.....c..x....x
xcxcxcxcxcxcxcxcxcxcxcxxcx
xxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_renting
TAGS:    entry
ORIENT:  float
SHUFFLE: [>, {(, T), TcGv, XY
SUBST:   ':.x, X=+=x, Y=+=x
KMASK:   T = no_monster_gen
MAP
xxxxxxxxxxxxxxxxxx..@
x'''''''xxxxxxxxxx...
x'.....'xxxx...xxx...
x'.x+x.xxx'..T..'x...
x..x.x.[xx.......Y...
xxxx.xxxxx''x+x''x...
xxxx.xxxxxxxx.xxxxxXx
@...................@
xxxxxx.xxxxxxxxxxx.xx
xxxxxx+xxxxxx...'x.xx
xxxx''.''xxxx.c..x.xx
xxx'.....'xxx.{..+.xx
xxx'.xxx.'xxx.c..xxxx
xxxx..(..xxxx...'xxxx
xxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_brainrot
TAGS:    entry no_monster_gen
MONS:    jackal / worm
ORIENT:  float
SHUFFLE: {(
SUBST:   l = l.
MAP
xxxxxxxxxxxxxxxxx@xxx
@.xx...xx..xx..xx.xxx
xx..xl.x.xxx..x..x.xx
xxlll.xxx...xxllxx.xx
xxxll.xx.xxxx.xx.xxxx
@..xxl.x.x...x..x.xxx
xxx..lx.x..xxxxxx.x.x
xx%xx.x.xxxx...(x.x.x
xlxlxxxx.xxx....xx.xx
x.xlx.xl..x.xxllxxxxx
xx.x.x.xxx.x.x..xxxxx
x.xxxxx.lxxxx.xxlllll
x..x..x.....x.xxl%1>l
x{...x.x.xll..xxlllll
xxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_another_circle
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
WEIGHT:  5
SHUFFLE: lw
MAP
      xxxxxxxxxxx
   xxxx.........xxxx
  xx...xxxx+xxxx...xx
 xx.xxxxxx...xxxxxx.xx
 x.xxxxxxx...xxxxxxx.x
xx.xxxxxxxx+xxxxxxxx.xx
x.xxl..xx.....xxx.lxx.x
x.xll..x.......x..llx.x
@.xll(.+...{...+.[llx.@
x.xll..x.......x..llx.x
x.xxl..xx.....xxx.lxx.x
xx.xxxxxxxx+xxxxxxxx.xx
 x.xxxxxxx...xxxxxxx.x
 xx.xxxxxx...xxxxxx.xx
  xx...xxxx+xxxx...xx
   xxxx.........xxxx
      xxxxxxxxxxx
ENDMAP

NAME:    dpeg_entry_yet_another_circle
TAGS:    entry no_monster_gen
ORIENT:  float
WEIGHT:  5
SHUFFLE: {(, lw
MAP
      xxxxx@xxxxx
   xxxx.........xxxx
  xx...xxxx+xxxx...xx
 xx.xxxxwwwwwwwxxxx.xx
 x.xxxxxww...wwxxxxx.x
xx.xxxxx...[...xxxxx.xx
x.xxxxxxxxx+xxxxxxxxx.x
x.x..x...........x..x.x
x.+..+.....{.....+..+.x
x.x..x...........x..x.x
x.xxxxxxxxx+xxxxxxxxx.x
xx.xxxxx...(...xxxxx.xx
 x.xxxxxww...wwxxxxx.x
 xx.xxxxwwwwwwwxxxx.xx
  xx...xxxxxxxxx...x
   xxxx.........xxxx
      xxxxx@xxxxx
ENDMAP

##############################################################################
NAME:   erik_entry_triangle_small
TAGS:   entry
WEIGHT: 4
ORIENT: float
MAP
            xxx
            x(x
          xxx[xxx
          x.+{+.x
        xxx.xxx.xxx
        x.+x+.+x+.x
        x@xxx@xxx@x
ENDMAP

NAME:   erik_entry_triangle_medium
WEIGHT: 3
TAGS:   entry
ORIENT: float
MAP
            xxx
            x(x
          xxx[xxx
          x.+{+.x
        xxx.xxx.xxx
        x.+x+.+x+.x
      xxx.xxx.xxx.xxx
      x.+x+.+x+.+x+.x
      x@xxx@xxx@xxx@x
ENDMAP

NAME:   erik_entry_triangle_large
TAGS:   entry
WEIGHT: 2
ORIENT: float
MAP
            xxx
            x(x
          xxx[xxx
          x.+{+.x
        xxx.xxx.xxx
        x.+x+.+x+.x
      xxx.xxx.xxx.xxx
      x.+x+.+x+.+x+.x
    xxx.xxx.xxx.xxx.xxx
    x.+x+.+x+.+x+.+x+.x
    x@xxx@xxx@xxx@xxx@x
ENDMAP

NAME:   erik_entry_triangle_huge
TAGS:   entry
WEIGHT: 1
ORIENT: float
MAP
            xxx
            x(x
          xxx[xxx
          x.+{+.x
        xxx.xxx.xxx
        x.+x+.+x+.x
      xxx.xxx.xxx.xxx
      x.+x+.+x+.+x+.x
    xxx.xxx.xxx.xxx.xxx
    x.+x+.+x+.+x+.+x+.x
  xxx.xxx.xxx.xxx.xxx.xxx
  x.+x+.+x+.+x+.+x+.+x+.x
  x@xxx@xxx@xxx@xxx@xxx@x
ENDMAP

##############################################################################
NAME:    erik_entry_blinker_ship
TAGS:    entry
ORIENT:  float
SHUFFLE: cxxx
MAP
           ......
          ..c..c.
          .c.....
  ....   ..c...c.
...cc......cccc..
..cccc...........
.cc.cc...........
..cc.....cc.ccc...............
........c..[..cc.....c....ccc.
.......cc.{.....c....c....c.c.
........c..(..cc.....c....ccc.
..cc.....cc.ccc...............
.cc.cc...........
..cccc...........
...cc......cccc..
...........c...c.
          .c.....
          ..c..c.
           ......
ENDMAP

##############################################################################
NAME:   matt_entry_refuge
TAGS:   entry no_monster_gen
ORIENT: float
MAP
xxxxx@xxxxxxxx@xxxx
x.................x
x.xxxxxxx+xxxxxxx.x
x.x.............x.x
x.x.xxxxxxxxxxx.x.x
x.x.x.........x.x.x
x.x.x.xxxxxxx.x.x.x
x.x.x.x.....x.x.x.x
@.x...x.({[.x...x.@
x.x.x.x.....x.x.x.x
x.x.x.xxx.xxx.x.x.x
x.x.x.........x.x.x
x.x.xxxxxxxxxxx.x.x
x.x.............x.x
x.xxxxxxx+xxxxxxx.x
x.................x
xxxx@xxxxxxxx@xxxxx
ENDMAP

##############################################################################
NAME:    matt_entry_grand_opening
TAGS:    entry
ORIENT:  float
SHUFFLE: TV
KMASK:   T = no_monster_gen
MAP
xxxxxxxxxx@xxxxxxxxxx
x..x.............x..x
x.x...............x.x
xx.......x.x.......xx
x......x.x.x.x......x
x.....xx.x.x.xx.....x
x.......Tx.xT.......x
x..xxxxxxx.xxxxxxx..x
@........({[........@
x..xxxxxxx.xxxxxxx..x
x.......Tx.xT.......x
x.....xx.x.x.xx.....x
x......x.x.x.x......x
xx.......x.x.......xx
x.x...............x.x
x..x.............x..x
xxxxxxxxxx@xxxxxxxxxx
ENDMAP

##############################################################################
NAME:   matt_entry_diagonals
TAGS:   entry no_monster_gen
ORIENT: float
SUBST:  ':x., ":x., ?:x., _:x.
MAP
xxxxxxxxxx@xxxxxxxxxx
xx..........'......xx
x.x......_.x......x.x
x..x......x......x..x
x...x....x.x."..x...x
x....x..x...x..x....x
x.....xx...".xx.....x
x.....x...x...x.....x
x..x.x.?.x.....x....@
@...x...x.(.[.x.x...x
x..'.x.".x.{.x..._..x
x.'...x...x.x.x.....x
x....x.x...x...x....x
x...x...x...x...x...x
x..x.....x...?...x..x
x.x.......x.......x.x
xx.................xx
xxxxxxxxxx@xxxxxxxxxx
ENDMAP

##############################################################################
NAME:   matt_entry_los_fun
TAGS:   entry no_monster_gen
ORIENT: float
MAP
        x+x
        x.x
  xxxxxxx+xxxxxxx
  x.............x
  x.xxxxxxxxxxx.x
  x..x.......x..x
  x.x.xxxxxxx.x.x
  x.xx.......xx.x
  x.x.xxx+xxx.x.x
  x.x.x.....x.x.x
xxx.x.x..<..x.x.xxx
+.+.x.+..{..+.x.+.+
xxx.x.x.(.[.x.x.xxx
  x.x.x.....x.x.x
  x.x.xxx+xxx.x.x
  x.xx.......xx.x
  x.x.xxxxxxx.x.x
  x..x.......x..x
  x.xxxxxxxxxxx.x
  x.............x
  xxxxxxx+xxxxxxx
        x.x
        x+x
ENDMAP

##############################################################################
NAME:    matt_entry_hidden_altar
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(<, Aa1/Bb2/Bb2/Bb2/Cc3/Cc3/Cc3/Cc3/Cc3
SUBST:   AC==, a=., 12=C, B=x, b=>, 3=%, c=T
MAP
xxx@xxx@xxx
x.........x
x....(....x
x..xxAxx..x
x..x.a.x..x
@.[xT1Tx<.@
x..x.T.x..x
x..xxxxx..x
x....{....x
x.........x
xxx@xxx@xxx
ENDMAP

##############################################################
# A Maze of Twisty Passages, All Alike
NAME:    elethiomel_entry_maze
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {[(, WXYZ
SUBST:   W=., X=X., X=x=., Y=Y., Y=x=., Z=Z., Z=x=.
MAP
xx@xxxxxxxxxxxxxxxxxxxxxxxxxx
xx.x.......xxxxx...xx......xx
xx.xXxxxxx.xxxxx.x.xxxxxxx.xx
xx...x{..x...x...x...x(xxx..@
xxxx.xxx.x.x.x.xxxxx.x.xxx.xx
@..x...x...x.....xxx...x...xx
xx.xxx.xxxxxxxxx.xxxxxxx.xxxx
xx.....xxxxx.x.....x.W...x..@
xxxx.xxxxxxx.x.xxx.x.xxxxx.xx
xx...xxxxxxx...xxx...x...Z.xx
xx.xxxxxxxxx.x.xxx.xxx.xxx.xx
xx...xxxxx...x.....x...x...xx
xxxx.x[xxx.xxxxxxxxx.xxx.xxxx
xxxx.....Y...........xxx...xx
xxxxxxxxxxxxxxxxxxxxxxxxxx@xx
ENDMAP

##############################################################
# It's quiet. Too quiet....
NAME:    elethiomel_entry_quiet
TAGS:    entry no_monster_gen
ORIENT:  float
MONS:    rat / nothing, hobgoblin / goblin / nothing
SHUFFLE: '"XY/ABVW, !?/CD
SUBST:   ':., ":=, A:x, B:x, !:., ?:=, C:x, D:x, V=x, W=x, Y=@x
SUBST:   c : cxx
KFEAT:   X = teleport trap / floor
MAP
         x@x
         x.x
       ccc+ccc
       c.G.G.c
 xcccccc.....ccccccx
 c%.2.cc.....cc11.$c
 c%.2.=..G.G..=11..c
 c%...cc.....cc11.$c
xxcccccc.....ccccccxx
YX''''"..G.G..?!!!!!!
xxcccccc.....ccccccxx
      cG.....Gc
      c.[.{.(.c
      ccccccccc
ENDMAP

NAME:    elethiomel_entry_005_b
TAGS:    entry no_monster_gen
ORIENT:  float
MONS:    rat / nothing, hobgoblin / goblin / nothing
SHUFFLE: '"/AB, !?XY/CDVW
SUBST:   ':., ":=, A:x, B:x, !:., ?:=, C:x, D:x, Y=@x, V=x, W=x
KFEAT:   X = teleport trap
SUBST:   c : cxxx
MAP
         x@x
         x.x
       ccc+ccc
       c.G.G.c
 xcccccc.....ccccccx
 c%.2.cc.....cc11.$c
 cX.2.c..G.G..c11.Xc
 c%...cc.....cc11.$c
xxcccccc.....ccccccxx
''''''"..G.G..?!!!!XY
xxcccccc.....ccccccxx
      cG.....Gc
      c.[.{.(.c
      ccccccccc
ENDMAP

##############################################################
NAME:    onia_entry_mini_maze
TAGS:    entry
WEIGHT:  5
ORIENT:  float
ITEM:    apple / sausage / nothing / stone / potion of water
SHUFFLE: ({[, Aa, Bb, Cc, Ee, Ff
MONS:    w:30 nothing / w:10 plant / w:5 fungus / w:10 rat
SUBST:   A=x, B=x, C=x, E=x, F=x, a=., b=., c=., e=., f=.
SUBST:   X = x =
MAP
xxxxxxxxx@xxxxxxx
x.......A.a.....x
x.xxxxXexXxBxxx.x
x.xd1.......x1f.x
x.xxxxxxxXxbx.x.x
x.X...x.......X.x
xEx.x.x.xxxxx.xFx
x...x.c...1dx...x
xxxxxCxxxxxxxx.xx
x...............x
x.xxxxxX.Xxxxxx.x
x.....[x(x{.....x
xxxxxxxxxxxxxxxxx
ENDMAP

NAME:    onia_entry_mini_maze_b
TAGS:    entry
WEIGHT:  5
ORIENT:  float
ITEM:    apple / sausage / nothing / stone / potion of water / w:30 nothing
SHUFFLE: ({[ , AB
SUBST:   A : x , B = +., X = x=
MONS:    w:30 nothing / w:10 plant / w:3 fungus / w:1 worm
MAP
xxxxxxxxx@xxxxxxx
x.......A.B.....x
x.xxxxxBxxxAxxx.x
x.xd1........dx.x
x.xxxxxxxxxxx1x.x
x.x...B.......x.x
x.x.x.x.xxxxxAx.x
x...x.x...1dx...x
xxxxx.xxxxxxxx.xx
x...............x
x.xxxxxX.Xxxxxx.x
x.....[x(x{.....x
xxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
NAME:    onia_entry_larder
TAGS:    entry
ORIENT:  float
MONS:    w:100 rat / w:50 giant cockroach / quokka
ITEM:    potion of water / any potion / choko / beef jerky / grape / sausage
SUBST:   ? = .:30 1:20 d
SUBST:   = = = +
MAP
xxxxxxxxxx@xxxxxxxxxx
xxxx?x?x?x.x?x?x?xxxx
xxxx=x=x=x+x=x=x=xxxx
xxxx.x.x.x.x.x.x.xxxx
x?=......({[......=?x
xxxx.x.x.x.x.x.x.xxxx
xxxx=x=x=x=x=x=x=xxxx
xxxx?x?x?x?x?x?x?xxxx
xxxxxxxxxxxxxxxxxxxxx
ENDMAP

#############################
NAME:    onia_entry_handbag
TAGS:    entry
ORIENT:  float
MONS:    w:30 rat / ooze / small snake
MONS:    giant bat / w:6 small snake / w:2 snake / w:2 jackal / w:4 giant cockroach
SUBST:   ! = $%%% , ? = ..~
SHUFFLE: {[, [<(
MAP
.......@........
.xx..xx>x{x..xx.
.....xxxxxx.....
.xx1xx2?2?xx1xx.
.(xx=2?!!2?=xx<.
.xx1xx2?2?xx1xx.
.....xxxxxx.....
.xx..x[x>xx..xx.
.......@........
ENDMAP

##############################################################
NAME:     eino_entry_cavern_a
TAGS:     entry no_monster_gen no_rotate
ORIENT:   northwest
SUBST:    V = V T:2
SUBST:    ' : x.
WEIGHT:   5
MAP
xxxxxxxxxxxxxxxxx
xxxxx{xxxxxxxxxxx
xxxxx..xxxxxxxxxx
xxxxx(.[xxxxxxxxx
xxxx....'''xxxxxx
xxxx.....'''xxxxx
xxx......''''xxxx
xxx......'''xxxxx
xxx.......'xxxxxx
xx........xxxxxxx
xx.........xxxxx.
xx..............@
xx.........xxxxxx
xx.......V..xxxxx
x...........xxxxx
x.......V.V..xxxx
x.............xxx
xx.....V.V.V...xx
xx..............x
xxx@.@xxxxxxx@.xx
ENDMAP

NAME:     eino_entry_cavern_b
TAGS:     entry no_monster_gen no_rotate
ORIENT:   northwest
WEIGHT:   5
MAP
xxxxxxxxxxxxxxxx
xxxxxxx{xxxxxxxx
xxxxxxx..xxxxxxx
xxxxxxx...xxxwxx
xxxxxx....xwwwxx
xxxxxx..wwwwwwxx
xxwwwwwwWwwwxxxx
xwwwwwwww..xxxxx
xwwxx.......xxxx
xxxx........xxxx
xxxx.........xxx
xxxx..........xx
xxxx..........xx
xxxx...........@
xxxxxx.......xxx
xxxxxxxx.@.xxxxx
ENDMAP

NAME:     eino_entry_cavern_c
TAGS:     entry no_monster_gen no_rotate
ORIENT:   northwest
NSUBST:   A = 1:= / x
SUBST:    % = % .:5
WEIGHT:   2
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x{.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx.....xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx........xxxxxxx.%.%.%.%.%.xxxxx
xxxxx.............xAxxxxAxxxx.xxxxx
xxxxxxx.................xxxxxAxxxxx
xxxxxxxxxx......................xxb
xxxxxxxxxxxxx.....................@
xxxxxxxxxxxxxxxxx.............xxxxb
xxxxxxxxxxxxxxxxxxxb.@.bxxxxxxxxxxx
ENDMAP

NAME:     eino_entry_cavern_d
TAGS:     entry no_rotate
ORIENT:   northeast
SHUFFLE:  bvc
SUBST:    ' : x.
WEIGHT:   4
SHUFFLE:  IJ
SUBST:    J = .
MAP
xxxxxxxxxxxxxx
xxxxxxxxx{xxxx
xxxxxxxx...xxx
xxxxxx.....xxx
xxxxx.....''xx
xxx.......''xx
xx.........'xx
......J.....'x
@.....ccI..''x
x....Icc...''x
x......J...''x
...........'xx
@.........''xx
x........''xxx
xx.....xxxxxxx
xxx.@.xxxxxxxx
ENDMAP

NAME:     eino_entry_cavern_e
TAGS:     entry no_monster_gen no_rotate
ORIENT:   northeast
SUBST:    ' : x. , " : x. , ? = x.
WEIGHT:   4
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?{xx
xxxxxxxxxx""xxxxxxxxxxxxxxx?...?xx
xxxxxxxxx""""xxxxxxxxxxx?.......?x
xxxxxxx""""""""xxxx?............?x
xxxxxx""""""....??.............'xx
xxxxx""".....................''xxx
xG..x....................'''''xxxx
@.......?..........??.''''''xxxxxx
xG.%x..xxx?.......xxxxx''''xxxxxxx
xxxxxxxxxxxxxxG.Gxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx
ENDMAP

###########################################################
NAME:   eino_entry_water_star
TAGS:   entry no_monster_gen no_rotate
ORIENT: float
MAP
..xxxxxxx@xxxxxxx..
....xxxx...xxxx....
x.....x..W..x.....x
xG..W....W....W..Gx
xx...W..WWW..W...xx
x.....WWWWWWW.....x
....WWWW...WWWW....
..WWWWW.({[.WWWWW..
....WWWW...WWWW....
x.....WWWWWWW.....x
xx...W..WWW..W...xx
xG..W....W....W..Gx
x.....x..W..x.....x
....xxxx...xxxx....
..xxxxxxx@xxxxxxx..
ENDMAP

################################################################################
NAME:    entry_aquarium_a
TAGS:    entry
ORIENT:  float
KMASK:   w = no_monster_gen
KMONS:   Z = shark / giant goldfish
KFEAT:   Z = w
KMASK:   Z = no_monster_gen
SHUFFLE: TTV
WEIGHT:  5
KMASK:   T = no_monster_gen
KPROP:   wZ = no_submerge
MAP
xxxxxxxxxxxxxxxxxxxxxxx
x.....................x
x.............G...G...x
x..mmmmmmmmm....(.....x
@..mwwwwwwwm.T......T.x
@..mwwwZwwwm....{.....x
@..mwwwwwwwm.T......T.x
x..mmmmmmmmm....[.....x
x.............G...G...x
x.....................x
xxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   entry_aquarium_b
TAGS:   entry
ORIENT: float
KMASK:  w = no_monster_gen
KMONS:  Z = shark / giant goldfish
KFEAT:  Z = w
KMASK:  Z = no_monster_gen
KPROP:  wZ = no_submerge
WEIGHT: 5
MAP
xxxxxxxxxxxxxxx
x....(.{.[....x
x.G.xxxxxxx.G.x
x.............x
x.mmmmm.mmmmm.x
x.mwwwm.mwwwm.x
x.mwZwm.mwZwm.x
x.mwwwm.mwwwm.x
x.mmmmm.mmmmm.x
x.............x
xx@xxxxxxxxx@xx
ENDMAP

###########################################################
# Eye to eye with the dorky.
NAME:    lordsloth_entry_two_stooges
TAGS:    entry no_rotate no_monster_gen no_item_gen
: if crawl.one_chance_in(4) then
SUBST:   [ = l, ( = l
: end
SUBST:   ':l...' , '=l. , l:lllWw , n:nv , v:vvvc
SHUFFLE: 12
KMONS:   1 = Ijyb, human
KMONS:   2 = Psyche, human
KFEAT:   1 = .
KFEAT:   2 = .
MAP
.....................
.....................
..vvvvnnnnnnnnnvvvv..
..vllllll[{(llllllv..
..vlllllll.lllllllv..
..vllll''...''llllv..
..vll'.........'llv..
..vl'...........'lv..
..vl.............lv..
..vmm..G.vvv.G..mmv..
..v1m...........m2v..
..vvvvvvv+++vvvvvvv..
...vv...........vv...
 ..vv...........vv..
 ...vvv.......vvv...
   ...vv+++++vv...
    .............
ENDMAP

##############################################
# Angband town! (Shiori)
NAME:    shiori_angband_town
ORIENT:  float
WEIGHT:  1
TAGS:    entry no_rotate
NSUBST:  { = { / > / .
NSUBST:  = = 3== / *=x
SHUFFLE: ABC/DEF/GHI/JKL/MNO/PQR/STU
NSUBST:  A = 1:=/x, B = *=%$, C = [/x
NSUBST:  D = 1:=/x, E = *=%$, F = (/x
SUBST:   GHIJKLMNOPQRSTU=x
SUBST:   x:xc
MAP
xxxx=xxxxxxxxxxxxxx=xxxxxxxxxxxxxx=xxxxx
x......................................x
x.xAxxx..xxxxx....xSSSx....xPxxx.xxxMx.x
=.ABCxx..xxxx+..{.STUTS..{.PQRxx.+xONM.=
x.xCxxx...........xTxxx....xPxx+.xxxMx.x
x.xxxxx..{........xxx+x................x
x.xx+xx......{.............{.....xxxDx.x
x.........xxxx+xx..xx+x...xxJxx..+xFED.x
=.xxxx+...GHIxxxx..xxxx...xxKLx{.xxxFx.=
x.xxxxx.{.xGxxxxx..xxxx.{.+xJxx..xxxxx.x
x......................................x
xxxx=xxxxxxxxxxxxxx=xxxxxxxxxxxxxxx=xxxx
ENDMAP

##############################################################
# The zoo
# With low chance (10%), the monsters spell Crawl or crawl.
# This is considered harmless and not ASCII art. Don't hand
# in other vaults where monsters spell other words, though :)
NAME:    onia_entry_zoo_common
TAGS:    entry
ORIENT:  float
: if crawl.one_chance_in(10) then
SHUFFLE: 12
MONS:    centaur / centaur warrior / yaktaur / yaktaur captain
MONS:    ettin / frost giant / hill giant / stone giant / fire giant
MONS:    rat / green rat / orange rat / grey rat / quokka
MONS:    giant ant / soldier ant
MONS:    spiny worm / ant larva / worm
MONS:    lindwurm / gila monster / komodo dragon
: else
SHUFFLE: 1234567
MONS:    giant gecko / iguana / giant newt / gila monster / komodo dragon
MONS:    hog / jackal / wolf / hound / war dog
MONS:    giant cockroach / giant ant / butterfly / killer bee / bumblebee /\
         redback / giant mite
MONS:    swamp worm / lindwurm / worm / spiny worm
MONS:    swamp drake / hydra / wyvern / fire drake
MONS:    bear / polar bear / grizzly bear / black bear
MONS:    black mamba / water moccasin / anaconda / salamander / viper
: end
MAP
xxxxxxxx@xxxxxxxx
xxxxxx.G.G.xxxxxx
xxx.G.......G.xxx
x...............x
x.G..xxxxxxx..G.x
x....x12345x....x
x.G..xmmmmmx..G.x
x...............x
xxx.............x
xxxxxxxxxxxx....x
xxxxx[{(<.....xxx
xxxxxxxxxxxxxxxxx
ENDMAP


##############################################################################
# -2- Twisted maps.
##############################################################################
#
# The maps in this section are harder to read... which means that you can
# learn more from them. There's a bunch of reasons why maps become rather
# complicated: several layers of SUBST/SHUFFLE operations, serious use of
# lua, use of SUBVAULTs or just plain obfusciation. Some maps simply have
# extremely long headers, so we put them here.

##############################################################################
# Just another altar on DL:1
#
NAME:    dpeg_entry_hidden_altar
TAGS:    entry no_monster_gen
ORIENT:  float
NSUBST:  ' = 1:@ / 1:{ / *:.
SHUFFLE: {{[
: if crawl.one_chance_in(4) then
SHUFFLE: DE/de
SUBST:   AB=x, ab=c, D=., E=+=, d=>, e=cx=+, ]=]]]>, C=CT
: else
SHUFFLE: Aa/Bb
SUBST:   Aa==, B=x, b=c, D=>, ]=]>>>, E=cccx=, C=CCCT
: end
MONS:    gnoll
MAP
'''''''''''''''
'''''''''''''''
''xxxxBxxxxxxxx
''xcccbcccccccx
''xcclllc..1.cx
''xcllllc....cx
''xcl...c1...cx
''AalDC.E...1cx
''xcl...c....cx
''xcllllc....cx
''xcclllc...]cx
''xcccccccccccx
''xxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_thieves
ORIENT:  float
TAGS:    entry no_monster_gen
WEIGHT:  20
: if crawl.one_chance_in(7) then
SHUFFLE: Aa/Bb, EF, CD
NSUBST:  A=1:=/*:x, F=1:=/*:x, D=1:=/*:x
SUBST:   Y=], a:=., BbCEG=x
: else
SHUFFLE: Aa/Bb, FG, CDE
NSUBST:  A=1:=/*:x, F=1:=/*:x, D=1:=/*:x, E=1:=/*:x
SUBST:   a:=., BbCG=x, Y=.
:end
SHUFFLE: H4/'"
SUBST:   '=x, ":x"
NSUBST:  "=1:<>/*:%, H=1:=/*:x, 4:4%., 4=%.
SUBST:   Z=.=
: if crawl.one_chance_in(7) then
SHUFFLE: LK, IJ
NSUBST:  L=1:=/*:x, I=1:=/*:x
SUBST:   X=), KJM=x
:else
SHUFFLE: ML, IJ, JKL
SUBST:   KL=x, X=.
NSUBST:  M=1:=/*:x, I=1:=/*:x, J=1:=/*:x
:end
SHUFFLE: 123567
SUBST:   12=., 3:3., 5:5., 3567=%, %=%.
MAP
xxxxxxxxxxxxx
x11B2.D33F.[x
AAAB.2D33FY.x
xaaxCCxEExGGx
@.....{.....@
MMMxKxIIxZHHH
x.XL7J65I.H4x
x(.L7J56IxH4x
xxxxxxxxxxxxx
ENDMAP

##############################################################################
# 37 x 22 -- this one is huge and twisted, but it's also old...
NAME:   dpeg_entry_water_fire
TAGS:   entry no_monster_gen no_pool_fixup no_rotate
ORIENT: float
: local rnd = crawl.random2(12)
: if rnd == 0 then
NSUBST: A=*:., a=1:./*:l, b=1:./*:l
: elseif rnd == 1 then
NSUBST: B=*:., c=1:./*:l, d=1:./*:l, e=1:./*:l, f=1:./*:l, g=1:./*:l
: elseif rnd == 2 then
NSUBST: C=*:., h=1:./*:l, i=1:./*:l, j=1:./*:l, k=1:./*:l
: elseif rnd == 3 then
NSUBST: D=*:., m=1:./*:w, n=1:./*:w, o=1:./*:w, p=1:./*:w
: elseif rnd == 4 then
NSUBST: e=*:., q=1:./*:w, r=1:./*:w, s=1:./*:w
SUBST:  E=., ABCabcdefghijk=l, DFmnoptuv=w
: elseif rnd == 5 then
NSUBST: F=*:., t=1:./*:w, u=1:./*:w, v=1:./*:w
: else
SUBST:  X=+
NSUBST: Y=1:+/*:x
: end
MONS:   bush w:1 / plant w:6 / fungus w:9
MONS:   fungus
SUBST:  "=2', '=2..., 2:2.
SUBST:  X=x, Y=x, ABCabcdefghijk=l, DEFmnopqrstuv=w
: if crawl.coinflip() then
SUBST:  Z=x, z=+, V=x
: elseif crawl.coinflip() then
SUBST:  Z=x, V=+
NSUBST: z = 1:+ / *:x
: else
SUBST:  Zz=., V=x
: end
MAP
            xxxxxx@xxxxxx
       xxxxxx'''''''''''xxxxxx
   xxxxx.......'"""""'.......xxxxx
 xxx..........lll222www..........xxx
xx......lllkkklll222wwpppwwww......xx
x....gllglllCllll222wwwDwwwwwwww....x
x.lllfffxlljjjlxxXXXxxwoowwwxwwssww.x
xlAlxlBlxlllCxxx11111xxxnnwwxwwExwFxx
xllAxeeexllCxx111111111xxDwwxwEwxvwvx
xlbbxlBlxlClx11111111111xnnwxrrrxwuux
xlAlxlddxilix11111G11111xDwwxwEwxwwFx
xaalxlccxhhhx11111111111xmmwxqqqxwttx
x...x...x...xx111111111xx...x...x...x
x...V...V...xxYx11111xYxx...V...V...x
xZzZx...x...xx.xxxYxxx.xx...x...xZzZx
x..ZxZ..x...V...V...V...V...x..ZxZ..x
x....ZzZx...x...x.}.x...x...xZzZ....x
xx......xZzZxZzZx...xZzZxZzZx......xx
 xxx...........ZxZzZxZ...........xxx
   xxxxx.....................xxxxx
       xxxxxx...[.{ (...xxxxxx
            xxxxxxxxxxxxx
ENDMAP

#########################################
# Representatives of all player genuses, locked up.
NAME:    kb_entry_jail
TAGS:    entry no_monster_gen no_item_gen
ORIENT:  north
SHUFFLE: ABCDEFGHIJKLMNOPQRST
KFEAT:   ABCDEFGHIJKLMNOPQRST = floor
KMONS:   A = human ; nothing
KMONS:   B = elf ; nothing
KMONS:   C = dwarf ; nothing
KMONS:   D = orc ; nothing
KMONS:   E = merfolk ; nothing
KMONS:   F = human name:halfling n_rpl n_spe n_des tile:mons_halfling ; nothing
MARKER:  F = lua:MonPropsMarker:new { description="This is a degenerate human, " ..\
               "both mentally and physically similar to a child of perhaps " ..\
               "ten, perhaps twelve years of age, yet looking older. It looks " ..\
               "mischievous, as if prone to no good.\n" ..\
               "It definitely deserves an axe to the head." }
KMONS:   G = kobold ; nothing
KMONS:   H = spriggan ; nothing
KMONS:   I = naga ; nothing
KMONS:   J = centaur ; nothing
KMONS:   K = ogre ; nothing
KMONS:   L = troll
KMONS:   M = minotaur ; nothing
KMONS:   N = human col:lightblue name:kenku n_rpl n_spe n_des tile:mons_kenku ; nothing
MARKER:  N = lua:MonPropsMarker:new { description="A bird-brained creature " ..\
               "that looks at you with hatred." }
KMONS:   O = draconian ; nothing
KMONS:   P = human name:demonspawn n_rpl n_spe n_des tile:mons_demonspawn ; nothing
MARKER:  P = lua:MonPropsMarker:new { description="This fellow looks mostly " ..\
               "like a human, yet you sense something evil about him." }
KMONS:   Q = mummy
KMONS:   R = elf ; nothing
KMONS:   S = ghoul ; nothing
KMONS:   T = vampire spells:. ; nothing
COLOUR:  m = cyan
TILE:    m = dngn_grate
:           dgn.set_feature_desc_short("translucent rock wall",
:                                      "iron grate")
:           dgn.set_feature_desc_long("translucent rock wall",
:                                     "This iron grate looks rusted, as if " ..
:                                     "it could be disrupted with a spell " ..
:                                     "or a wand quite easily. It's too " ..
:                                     "strong to be breakable by hand, though.")
MAP
ccccccc
c[.{.(c
c.....c
ccc+ccc
cAm.mBc
ccc.ccc
cCm.mDc
ccc.ccc
cEm.mFc
ccc.ccc
cGm.mHc
ccc.ccc
cIm.mJc
ccc.ccc
cKm.mLc
ccc.ccc
cMm.mNc
ccc.ccc
cOm.mPc
ccc.ccc
cQm.mRc
ccc.ccc
cSm.mTc
ccc+ccc
  c@c
ENDMAP

#########################################
# A horror show for the beginning adventurer
NAME:    shiori_entry_whats_in_store_for_you
TAGS:    entry no_monster_gen no_pool_fixup no_item_gen
ORIENT:  west
SHUFFLE: =@/AB ,  AB/CD
SUBST:   A==+++++ , B=@ , C=x , D=x
NSUBST:  T = 1=T... / *=.
KFEAT:   T = net trap
# Seemingly pointless, since there are no active foes here... but
# it had an unnerving effect on me the one time it happened by chance
# ("Ack! Now I'm trapped too! Help!") so I coded it in. ^.^
NSUBST:  M = 2=E / *=M E:2
KFEAT:   E = teleport trap
KFEAT:   MNOQ = shallow_water
SHUFFLE: M/N/O/P/Q
SUBST:   P = MNO
#
# Player monsters:
KMONS: M = human / elf / orc; nothing / naga; nothing / centaur; nothing / \
           draconian; nothing / ogre; nothing / minotaur / troll / kobold / \
           mummy / ghoul / spriggan; nothing / dwarf; nothing / vampire spells:.
# Player monsters, zombie versions (ghouls drop out because they need sustenance
# and can't be reanimated once starved):
KMONS: N = human zombie / elf zombie / orc zombie / naga zombie / ogre zombie / \
           centaur zombie / draconian zombie / minotaur zombie / troll zombie / \
           kobold zombie / mummy / spriggan zombie / merfolk zombie / dwarf zombie
# Player monsters, skeleton versions:
KMONS: O = human skeleton / elf skeleton / orc skeleton / naga skeleton / \
           centaur skeleton / draconian skeleton / ogre skeleton / \
           minotaur skeleton / troll skeleton / kobold skeleton / mummy / \
           spriggan skeleton / dwarf skeleton / merfolk skeleton
# And now for something completely different (if any of these turn out to be
# able to escape or project spells out of their cells, they should be removed):
KMONS: Q = orb of fire / ice dragon / shadow dragon / iron dragon / \
           w:1 golden dragon / large abomination / tentacled monstrosity / \
           w:1 black draconian; nothing / w:1 mottled draconian; nothing / \
           w:1 yellow draconian; nothing / w:2 green draconian; nothing / \
           w:1 purple draconian; nothing / w:2 red draconian; nothing / \
           w:1 white draconian; nothing / w:1 pale draconian; nothing / nothing
MAP
xxxxxxxxxxxxxx     xxxxxxxxx
xxxxxxxxMxMxMxxxxxxxMxMxMxMx
xxxxxxxxmxmxmxMxMxMxmxmxmxmxxxx@x
xxxxxx[......xmxmxmx.....T.mMxx=xx
xxxxxx{..............xmxmxTxmx...xxx
xxxxxx(..........xmxmxMxMm.T.T.>.mMx
xxxxxxxxmxmxmxmxmxMxMxxxxxmxmx...xxx
xxxxxxxxMxMxMxMxMxxxxx   xMxMxxAxx
xxxxxxxxxxxxxxxxxx       xxxxxxBx
ENDMAP

#####################################
# I am the great and powerful Oz! Pay no attention to the man behind
# the curtain! ...if you stick close to the wall, you are always able
# to avoid the flame clouds.
NAME:   shiori_entry_oz
TAGS:   entry
ORIENT: float
NSUBST: 1 = 1/%
MONS:   kobold / goblin / hobgoblin / nothing
MARKER: # = lua:fog_machine { \
            pow_max = 5, delay_min = 100, delay_max = 150, \
            size = 5, start_clouds = 1, \
            cloud_type = "flame" }
KFEAT:  # = l
FTILE:  ' = floor_rough_red
COLOUR: ' = red
SUBST:  ' = .
MAP
bbbbbbbbb
b.(.{.[.b
b.......b
b.......b
b.b...b.b
b.......b
b.......b
b.b'''b.b
b.'''''.b
@.'#'#'.@
b.b'G'b.b
b.......b
bbb+b+bbb
=1=.b.=1=
bbb.b.bbb
  b@b@b
ENDMAP

########################################
# Entry with hidden altar
NAME:    shiori_entry_hidden_altar
TAGS:    entry no_monster_gen no_secret_doors no_pool_fixup
ORIENT:  float
SUBST:   B:.A , A:.x
NSUBST:  E= 1=+ / *=+=x
SUBST:   +:@+ , d=mlwG
SHUFFLE: ef/gh/ij
SUBST:   g=> , h=C/x , e=x , f=w , i=x , j=l
MAP
xxxExxxxxxx
xAB.BAxfffx
xB...Bxxehx
E..{..=dghx
xB...Bxxihx
xAB.BAxjjjx
xxxExxxxxxx
ENDMAP

############################################################################
NAME:    dpeg_entry_concentric_ovals
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
MONS:    worm / giant beetle, worm / giant beetle
ITEM:    nothing / ring of hunger / \
         ring of protection from fire / ring of protection from cold
ITEM:    nothing / choko / pear / apple / sausage / banana / any scroll
SHUFFLE: dD1AB/yyyyy, eE2FG/yyyyy, AB, FG
SUBST:   y=x, A==, B=x, D=., F==, G=x, E=.
SUBST:   ' : Wlncxxxv, " : Wlncxxxv
MAP
.........................
.......xxxxx+xxxxx.......
....xxxxxxxx.xxxxxxxx....
...xxxxxx.......xxxxxx...
..xxxxx...........xxxxx..
..xxxx....'''''....xxxx..
..xxx...'''''''''...xxx..
.xxxx..''.......''..xxxx.
.xdx...'..""+""..'...xex.
.xDx..''.""..."".''..xEx.
.x1x..''.""[({"".''..x2x.
.xDx..''.""..."".''..xEx.
.xDx...'.."""""..'...xEx.
.BxAx..''.......''..xFxG.
..xxx...''''.''''...xxx..
..xxxx....''+''....xxxx..
..xxxxx...........xxxxx..
...xxxxxx.......xxxxxx...
....xxxxxxxxxxxxxxxxx....
.......xxxxxxxxxxx.......
.........................
ENDMAP

##############################################################################
NAME:    dpeg_entry_solitude
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: C{! / B(' / V["
SUBST:   C=., !=@
SHUFFLE: B(' / zzz, V[" / yyy
SUBST:   z=x, y=x, B=., '==, V=., "==
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
MAP
xxxxxxxxxxxxxxxxxxx....@
xxxxxxxCCCCCCCxxxxx.....
xxxxxCCxxxxxxxCCxxx.....
xxxxCxxxVVVVxxxxCxx.....
xxxCxxVVxxxxVVxxxCx.....
xxCxxVxxxBBxxxVxxCxxxxx'
xxCxVxxxBxx(xxxVxxCxxxBx
xCxxVxxBxxxxbxxVxxCxxxBx
xCxxVxBxx{cvxxVxxxCxxxBx
xCxVxxBxCxxx[VxxxCxxxBxx
xCxVxxBxxCCxxxxCCxxxBxxx
xCxVxxxBxxxCCCCxxxBBxxxx
xCxxVxxxBBxxxxxxBBxxxxxx
!xxxxVxxxxBBBBBBxxx.....
xxxxxxVVVxxxxxxxxV".....
xxxxxxxxxVVVVVVVVxx.....
xxxxxxxxxxxxxxxxxxx....@
ENDMAP

##############################################################################
NAME:    dpeg_entry_connections
TAGS:    entry
ORIENT:  float
SHUFFLE: {1/[2/(3/]4, Aa/Bb/Cc/Dd/Ee
SUBST:   A==, a=...%, BCDEbcde=x
SUBST:   1=@, 2:2., 3:33., 4:444., 234:x
MAP
22222222xxxxx333
2[......BxxxD..3
2.......xbbdx..3
xAxxxCxxxxdbB.(3
xxAxxxcxddxaA..3
x...xcddxxAxxxxx
x.{.DdcbB......4
x...Bbbcx..]...4
x...CccxC......4
x111xxxxx4444444
ENDMAP

###################################################
# A simple little maze-like thing
NAME:    shiori_entry_maze
ORIENT:  float
TAGS:    entry no_monster_gen no_secret_doors
SHUFFLE: [{(
SUBST:   1= . 1:2 2:1 3:1
NSUBST:  A= 1= + / 1= = / 2= =x / *= x
NSUBST:  B= 1= + / 1= = / 2= =x / *= x
NSUBST:  C= 1= + / 1= = / *= =x
NSUBST:  @= 5=@+ / *= =x
MONS:    fungus, plant, butterfly
MAP
xxx@xxx@xxx@xxx
x.111.B0B.111.x
xCx1xAxxxAx1xCx
@.x.A11111A.x.@
x1x.x1[1(1x.x1x
x1xBx11>11xBx1x
x1x.x11{11x.x1x
@.x.A11111A.x.@
xCx1xAxxxAx1xCx
x.111.B0B.111.x
xxx@xxx@xxx@xxx
ENDMAP

##############################################################################
# 41 x 20 -- this one is huge and twisted, but hopefully worth it.
# From cave/forest to hall.
NAME:     erik_entry_cave_to_civilisation
TAGS:     entry no_rotate
WEIGHT:   20
ORIENT:   float
SHUFFLE:  {[(
SUBST:    ?=C., !=CCC., C:ccxxt
SUBVAULT: _ : cave_to_hall_subvault / cave_to_temple_subvault w:5
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xCCCCCCCCCCCCCCCCCCCCCCCCCxxxxxxxxxxxxxxx
xC[!.!C...CC.??...C?....................x
xC..CCC.CC.?C...C.?..C....C.............x
xC!C..C..C.C..?..C..?C.?.C____________..x
xC..CC!C.CC..C?.CC.......?____________..x
xC.CC...C.C..C..??..C..?C.____________..x
xC!.C.CCC.?C.?.C..CC...C..____________..x
xCCC.CCC.C.C..C...?..C....____________..x
xC{CCC..CC.CC......CC.....____________..@
xC.C...C.CC.C..?C.........____________..x
xC!.CCCCCC.C...C..C?.CC...____________..x
xCCCC.C...C..C...C...?....____________..x
xC!!C!.CCC.C?....?.C...?..____________..x
xC..C!.C.C...C?...CC?...CC____________..x
xCC..CC.?C.CC....C....C...C._________...x
xC(.C..C.CC...C?.....??.................x
xCCCCCCCCCCCCCCCCCCCCCCCCCCxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:    erik_entry_cave_to_hall
TAGS:    cave_to_hall_subvault no_rotate
SHUFFLE: TTGGVY
SUBST:   X : cX
NSUBST:  X = 1:= / *:c
KMASK:   T = no_monster_gen
MAP
...T....ccc.
.......ccccc
.......ccccc
.cXXc...ccc.
cX00Xc......
X>cc%X...T..
cXc%Xc......
.cXXc...ccc.
.......ccccc
.......ccccc
...T....ccc.
  .........
ENDMAP

NAME:    erik_entry_cave_to_temple
# Intentionally higher chances for the non-Temple gods.
TAGS:    cave_to_temple_subvault no_rotate
SUBST:   X : nnG
NSUBST:  ' = 12:1 / 4:2 / 1:3 / *:.
: local rnd = crawl.random2(9)
: if rnd == 0 then
KFEAT:   C = altar_beogh
SUBST:   D=I, G=I
KMONS:   3 = orc warrior / orc priest
KMONS:   1 = orc / nothing
KMONS:   2 = orc wizard / orc / nothing
: elseif rnd == 1 then
KFEAT:   C = altar_lugonu
KFEAT:   D = enter_abyss
KMONS:   1 = imp / quasit / iron imp / lemure / ufetubus / demonic crawler w:5
SUBST:   t : U....
: elseif rnd == 2 then
KFEAT:   C = altar_jiyva
SUBST:   D = .
SUBST:   t : U....
KMONS:   1 = jelly / ooze / giant amoeba w:3 / brown ooze w:2 / pulsating lump w:1
:else
SUBST:   D = C
SHUFFLE: VCd
KITEM:   d = any scroll
: if crawl.coinflip() then
KMONS:   1 : gnoll / orc
: elseif crawl.coinflip() then
KMONS:   2 : big kobold / ogre
: else
KMONS:   3 : troll
: end
: end
SUBST:   t = T
KMASK:   T = no_monster_gen
MAP
...T....ccc.
............
...xxxxxxxx.
..xxxxt't<x.
.xxxxx''''x.
.G.x$X'C''x.
...+0x''''x.
...+0x''''x.
.G.x$X'D''x.
.xxxxx''''x.
..xxxxt't>x.
  .xxxxxxxx
ENDMAP

###########################################################
# Basic island, with variations
NAME:   enne_entry_octagon_isle
ORIENT: float
TAGS:   entry no_monster_gen
FTILE:  '[({ = floor_sand_stone
SUBST:  ' = .
{{
    octa_room({
        oblique = crawl.random_range(3,7),
        replace = '.',
        outside = 'W',
        inside  = '.'
    })
    if crawl.coinflip() then
        smear_map({iterations=20, smear='x', onto='.W', boxy=true})
    end
}}
SUBST: W:xw
MAP
 xxxxxxxxxxxxx
x.............x
x.............x
x.............x
x.............x
......www......
.....w[''w.....
@....w'{'w....@
.....w''(w.....
......www......
x.............x
x.............x
x.............x
x.............x
 xxxxxxxxxxxxx
ENDMAP

#######################################################################
# Four elements.
# Pretty hazardous, but the Earth side is always safe to leave through.
# Players can safely watch at the clouds. Autoexplore will not run into
# the chambers, players have to search for the secret door. Likewise,
# all exits are secret except for the safe one.
# This vault is great. I've seen players marvel at it. If need be, we
# may delegate it to another branch, where less caution measures are
# demanded. But I'd like to keep it on D:1 (dp).
# Edited: translucent walls are less fun, but perfectly safe.
NAME:    shiori_entry_elements
TAGS:    entry no_monster_gen
ORIENT:  float
MARKER:  A = lua:fog_machine { \
             pow_max = 10, delay_min = 50, delay_max = 300, \
             size = 8, start_clouds = 1, \
             cloud_type = "noxious fumes" }
SUBST:   A = a ,  a = a m:1
FTILE:   a = floor_slime
COLOUR:  a = lightgreen
SUBST:   a = .
MARKER:  W = lua:fog_machine{\
             pow_max = 10, delay_min = 50, delay_max = 300, \
             size = 8, start_clouds = 1, \
             cloud_type = "freezing vapour"}
SUBST:   W = w
SUBST:   w : Ww'" , ' = wwW"
COLOUR:  " = blue
SUBST:   " = .
SUBST:   _ = w
MARKER:  F = lua:fog_machine {\
             pow_max = 10, delay_min = 50, delay_max = 300, \
             size = 8, start_clouds = 1, \
             cloud_type = "flame"}
SUBST:   F = f
SUBST:   f : fflF , f = llf , F = f
FTILE:   f = floor_rough_red
COLOUR:  f = red
SUBST:   f = .
MARKER:  E = lua:fog_machine{\
             pow_max = 20, delay_min = 50, delay_max = 300, \
             size = 12, start_clouds = 1, \
             cloud_type = "black smoke"}
SUBST:   E = e , e = e n:1
FTILE:   e = floor_orc
COLOUR:  e = brown
SUBST:   e =.
SHUFFLE: XZ
NSUBST:  Z = ) / ]
NSUBST:  X = ( / [
MARKER:  = = lua:props_marker { \
            door_open_prompt="This door is covered in warnings. Open " .. \
                             "it anyway?", \
            door_description_prefix="warning scrawled " \
         }
MAP
          ...
       ccc===ccc
      cc..aaa..cc
      c.aaaAaaa.c
      c..aaaaa..c
      cc...a...cc
  cccccccnn=nnccccccc
 cc..ccccc...ccccc..cc
 c.w..ccccc+ccccc..f.c
 c.ww.nccX...Zccn.ff.c
.=www.n_c.....cln.fff=.
.=wWww=.+..{..+.=ffFf=.
.=www.n_c.....cln.fff=.
 c.ww.nccZ...Xccn.ff.c
 c.w..ccccc+ccccc..f.c
 cc..cccccG.Gccccc..cc
  cccccccnn+nnccccccc
      cc...e...cc
      c..eeeee..c
      c.eeeEeee.c
      cc..eee..cc
       ccc+++ccc
ENDMAP

##############################################################################
# Three entry vaults containing the same river.
NAME:    lemuel_entry_river_bridge
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {}, XXT
COLOUR:  ' : brown / white
FTILE:   ' = floor_dirt
SUBST:   '=., X=x, T:tttT, T=t x:1
: if crawl.coinflip() then
TAGS:    no_pool_fixup
: end
WEIGHT:  3
MAP
xxxxxxxxxxxxxxxxxxx
xXXXXXXXXXXXXXXXXXx
xXXXX{.......}XXXXx
xXXXX.........XXXXx
xwXXX.........XXXXx
xwwXX.........XXXXx
xwwwX.........XXXXx
xXwwX.........XXXXx
xXwwww........XXXXx
xXXwwwwww'w...XXXXx
xXXXwwwww'wwwwXXXXx
xXXXXwwww'wwwwwwXXx
xXXXX...w'wwwwwwwXx
xXXXX........wwwwXx
xXXXX.........Xwwwx
xXXXX.........XXwwx
xXXXX.........XXXwx
xxxxx.........xxxxx
xxxxx....@....xxxxx
ENDMAP

NAME:    lemuel_entry_river_ford
TAGS:    entry no_monster_gen
ORIENT:  float
WEIGHT:  6
SHUFFLE: {}, XYZ
SUBST:   X=W, Y=w, Z=w
: if crawl.random2(3) > 0 then
SUBST:   T=x, "=., '=.
: else
SUBST:   "=T.., '=T...., T:Tttt, T=t x:1
: end
MAP
xxxxxxxxxxxxxxxxxxx
xTTTTTTTTTTTTTTTTTx
xTTTT{"""""""}TTTTx
xTTTT"."..."."TTTTx
xwTTT"'.''..."TTTTx
xwwTT".'""".'"TTTTx
xwwwT.''"""'."TTTTx
xTwwX".'.''.'"TTTTx
xTwwXw..'..''"TTTTx
xTTXwwwwwww.."TTTTx
xTTTXwwwwYYwwZTTTTx
xTTTTXwwYwwwwwZwTTx
xTTTT'..wwwwwZwwwTx
xTTTT''..''..wwwwTx
xTTTT''.''.'''Twwwx
xTTTT'.'.''.''TTwwx
xTTTT.........TTTwx
xxxxx.........xxxxx
xxxxx....@....xxxxx
ENDMAP

# Notes: chances are very good that there is a shallow water path.
# Even if not, you can always see the door on the other side.
NAME:    lemuel_entry_river_passageway
TAGS:    entry no_monster_gen
ORIENT:  float
SHUFFLE: {}, ABC
SUBST:   A:=, B:x, C:x
WEIGHT:  1
MAP
xxxxxxxxxxxxxxxxxxx
xxxWA{.......}xxxxx
xxwWx.........xxxxx
xwwWB.........xxxxx
xwwWx.........xxxxx
xwwWC.........xxxxx
xxWwx.........xxxxx
xxWwwwww......xxxxx
xWxwwwwwwwwww.xxxxx
xWxxwwwwwwwwwwxxxxx
xxWxxwwwwwwwwwwwxxx
xxWxx.wwwwwwwwwwwxx
xxwWx......wwwwwwxx
xwxw+.........xwwwx
xwxxx.........xxwwx
xxxxx.........xxxwx
xxxxx.........xxxxx
xxxxx.........xxxxx
ENDMAP

##############################################################################
NAME:    dpeg_entry_caged_fury
TAGS:    entry no_rotate
MONS:    w:30 nothing / giant cockroach / w:2 worm
MONS:    w:30 nothing / ooze
MONS:    w:20 nothing / jackal / rat
MONS:    w:30 nothing / ooze / w:2 jelly / giant cockroach / w:2 worm / \
         w:5 jackal / w:5 rat
# There is a very slight chance that a jelly or an intelligent monster
# (hobgoblin) might spawn inside near the door. This is okay; added an exit.
ORIENT:  float
FTILE:   1234+ABCDEabcdem = floor_dirt
SHUFFLE: abcde / fghij
# Don't let auto-explore open the door and unleash the caged monsters.
MARKER:   + = lua:props_marker { \
            door_open_prompt="This door is covered in warnings. Open " .. \
                             "it anyway?", \
            door_description_prefix="warning scrawled " \
         }
SUBST:   f=A, g=B, h=C, i=D, j=E
SUBST:   abcde = mx
SUBST:   ABCDE : mx
SUBST:   ===++
SHUFFLE: xc, 123
KMASK:   T = no_monster_gen
MAP
.................
.xxxxxxxxxxxxxxx.
.x4441321331444x.
.x4312132211324x.
.x4123213123134x.
.xABCDEm+medcbax.
.x.............x.
.=T....xxx....T=.
.x.....({[.....x.
.x..T...]...T..x.
.xxx=xxxxxxx=xxx.
.................
ENDMAP

##############################################################################
NAME:    dpeg_entry_pits
TAGS:    entry no_monster_gen no_rotate no_pool_fixup
WEIGHT:  20
ORIENT:  float
: if crawl.one_chance_in(4) then
SUBST:   Yy=w, Zz=l, Xx"'=b
NSUBST:  U = 1:} / *:{
: elseif crawl.one_chance_in(3) then
SUBST:   U=., Yy=w, Zz=l
SHUFFLE: x_/'"
SUBST:   x==, '=b, ":".b
NSUBST:  X = 1:} / *:{
: elseif crawl.one_chance_in(2) then
SUBST:   U=., Zz=l, Xx"'=b
NSUBST:  Y = 1:} / *:{, y = 1:. / *:w
: else
SUBST:   U=., Yy=w, Xx"'=b
NSUBST:  Z = 1:} / *:{, z = 1:. / *:l
: end
SHUFFLE: bxxx
MAP
 .......    .......
..wwww...  ...llll..
.wywwyw......lzllzl.
.wwYYww..UU..llZZll.
.wywwyw......lzllzl.
..wwww..b'bb..llll..
 ......bx"bxb......
      .'"XX"'.
      .bx"bxb.
      ..b'bb..
       ......
ENDMAP


##############################################################################
# -3- Huge maps.
##############################################################################
#
# The maps in this section are not complicated, but rather big... possibly
# too big. We are talking about sizes 25x25 and larger.

##############################################################
# 35 x 19
# Ruined Dwarven Fortress Basement
NAME:    elethiomel_entry_fortress_basement
TAGS:    entry no_monster_gen no_rotate
ITEM:    any armour / any weapon / nothing
ORIENT:  float
WEIGHT:  2
SHUFFLE: {[(
SUBST:   c : cx
TILE:    c = wall_stone_brick
FTILE:   . = floor_cobble_blood
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xcccccccxxxxxxxxxxxxxxxxxxxcccccccx
xc.....ccccccccccccccccccccc.....cx
xc.....+...................+.....cx
xc....[cccccccccc=cccccccccc{....cx
xccc+cccxxxxxxccc.cccxxxxxxccc+cccx
xxxc.cxxxxxxxxc.....cxxxxxxxxc.cxxx
xxxc.cxxxxxxxxc.0...cxxxxxxxxc.cxxx
xxxc.cxxxxxxxxc$....cxxxxxxxxcx.xxx
xxxc.cxxxxxxxxcccccccxxxxxxxxc...xx
xxxc.cxxxxxxxxxxxxxxxxxxxxxxxc..x.x
xxxc.cxxxxxxxxxxxxxxxxxxxxxxxcx..x.
xxxc.cxxxxxxxxxxxxxxxxxxxxxxxc..xxx
xccc+ccxxxxxxxxxxxxxxxxxxxxccc+cccx
xxx...xxcccccccccccccccccccc(....cx
xxx.x..+...................+.....cx
xc...x.cccccccccccccccc=cccc.....cx
xccx.xccxxxxxxxxxxxxxxxdxxxcccccccx
xxxx@xxxxxxxxxxxxxxxxxx=xxxxxxxxxxx
ENDMAP

##############################################################
# 46 x 14
NAME:    elethiomel_entry_Infinity_Welcomes_Careful_Drivers
TAGS:    entry no_rotate
ORIENT:  northwest
SHUFFLE: [{
SUBST:   ' : . x ':40, '=x.
SUBST:   c : cxxx, [ = [T
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxx....xxxxxxxxxxxxxxx....xx..xxx.''xxxxxx
xxxxx''........xx...''.........''...'..xx...xx
xxx'....ccccc...xxx.....ccccc......'......x..@
x....cccc...cccc.....cccc...cccc.......''..xxx
x..ccc.........ccc+ccc.........ccc....''..xxxx
x'.c......{......+.+......[......+.........xxx
x'.ccc.........ccc+ccc.........ccc...''...xxxx
x....cccc...cccc.....cccc...cccc......'..'.xxx
x.......ccccc......'....ccccc......'.....xxxxx
x'................'..xx........'....'....xxxxx
x.''..xxx...''.....'..xx....'''..''.xxx''.xxxx
x'xxxxxxxxxxxxxx..xxx.xxx..xxx....xxxxxx...xxx
xxxxxxxxxxxxxxxxx@xxxxxxxx@xxxxxx@xxxxxxxx@xxx
ENDMAP

##############################################################################
# 33 x 25
NAME:    dpeg_entry_central
TAGS:    entry
MONS:    gnoll, jackal, worm
ORIENT:  float
SHUFFLE: {[(], 0123, @ABC
SUBST:   A=@x, B=@x, C=@x
MAP
          xxxxxx@xxxxxx
        xxx...........xxx
      xxx...xxx...xxx...xxx
     xx...xxxx.....xxxx...xx
    xx..xxxxx...]...xxxxx..xx
   xx..xxxxx.........xxxxx..xx
  xx..xxxxx...........xxxxx..xx
 xx..xxxxx......x......xxxxx..xx
xx..xxxxx......xxx......xxxxx..x
xx.xxxxx......xx1xx......xxxxx.xx
x..xxxx......xx.%.xx......xxxx..x
x.xxxx......xx.....xx......xxxx.x
A.......(..xx1%.}.%1xx..[.......C
x.xxxx......xx.....xx......xxxx.x
x..xxxx......xx.%.xx......xxxx..x
xx.xxxxx......xx1xx......xxxxx.xx
 x..xxxxx......xxx......xxxxx..x
 xx..xxxxx......x......xxxxx..xx
  xx..xxxxx...........xxxxx..xx
   xx..xxxxx.........xxxxx..xx
    xx..xxxxx...{...xxxxx..xx
     xx...xxxx.....xxxx...xx
      xxx...xxx...xxx...xxx
        xxx...........xxx
          xxxxxxBxxxxxx
ENDMAP

##############################################################################
# 29 x 22
NAME:    dpeg_entry_castle
TAGS:    entry no_monster_gen no_rotate
ITEM:    any, nothing, nothing
ORIENT:  float
SHUFFLE: ]def
SUBST:   c : cx
TILE:    c = wall_stone_brick
TILE:    x = wall_vines
KFEAT:   ' = floor
FTILE:   '+]def{[T = floor_cobble_blood
SUBST:   X = T
# A test run with 50 tries had precisely one level without shallow water
# access to surroundings. This is intended and I like the low chance for this.
MAP
  .........................
  .........................
...wwwwwwwwwwwwwwwwwwwwwww...
...wwwwwwwwwwwwwwwwwwwwwww...
...wwwwwwwwwwwwwwwwwwwwwww...
...wwwc+c+cwwwwwwwc+c+cwww...
...www+]''cc+ccc+cc''d+www...
...www+'''c'''''''c'''+www...
...wwwc+ccc'xxxxx'c+c+cwww...
...wwwww+'''x'''x'''cwwww....
...wwwwwc'xxx'{'+'T'+www..X..
...wwwwwc'xxx'['+'T'+www..X..
...wwwww+'''x'''x'''cwwww....
...wwwc+ccc'xxxxx'ccc+cwww...
...www+'''+'''''''+'''+www...
...www+f''cc+ccc+cc''e+www...
...wwwc+c+cwwwwwwwc+c+cwww...
...wwwwwwwwwwwwwwwwwwwwwww...
...wwwwwwwwwwwwwwwwwwwwwww...
...wwwwwwwwwwwwwwwwwwwwwww...
  .........................
  .........................
ENDMAP

#############################################################################
# 42x28
NAME:    dpeg_cavernosity
TAGS:    entry no_monster_gen no_rotate
ORIENT:  float
MONS:    fungus
SHUFFLE: {[(, UVW, XYZ
SUBST:   '=.x, U==, V=x, W=x, X==, Y=x, Z=x, b:xxxbcv
RTILE:   x = wall_vines
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxx''xxxxxxxxxxxxxxxxx%xxxxxxxxxxxxx
xxx...x''...x...xxxxxxxxxxx.0%%xxxxxxxxxxx
xx..(....xx..''..xxxxxxxxxx.x.xxxxxxxxxxxx
xx.....xxx'.xxx..xxxx''xxxx...xxxxxxxxxxxx
xxx...xxxx=xxxxx.'xx'..'xxxx0xxxxxxxxxxxxx
xxxxxxx'x=xxxxxx'.x..x.'xxx.xxxxxxxxxxxx..
xxxxx''...'xxxxxx'..xx..'xxx..xxxxxxx.....
xxxxx'..x'..xxxxxx'x'..x'xxxxx.xxxx.......
xxxx..'xxx..'xxxxxxx'.xxxxxxx0x.Wx........
xxxx..xxxxx..'xxxxx.....xxxx.xxxx.........
xxxxx...xx'x..'xxx.......xxx0xxxx.........
xxxx.....x'x..'xx...bbb...xUxVxx..........
xxxx..{..xx..x''x..bbbbb....x'...........@
xxxxx...xx''.xxx...bbbbb..x....x..........
xxxxxxxxxxxx.'x.....bbb...xxxYxxx.........
xxxxxxxxxxxxx....x.......xXx.xxxx.........
xxxxxxxxxxxxxxx'xxx.....xxx..xxxxx........
xxxxxxxxxxxxxx=xxxxxx..xxx..xxxxxxx.......
xxxxxx'xxxxxx=xxxxxx.''xxx.xxxxxxxxxx.....
xx...x.'xxxxx'.xxxxx'...Z1.xxxxxxxxxxxxx..
x..[.......'...'x'xxx..'xx..xxxxxwxxwwxxxx
x.....xxx...'x'..xxx..'xxxx1...wwwwwxxwxxx
xx...xxxx''x'xxx'..'.xxxxxxxxx.wwwxxxxxxxx
xxxxxxxxxxxxxxxxxx..xxxxxxxxxxwwxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
# 30x25
# The Diamond Age, or A Young Lady's Illustrated Primer
NAME:    elethiomel_entry_diamonds
TAGS:    entry no_monster_gen no_rotate
ORIENT:  west
WEIGHT:  2
MONS:    rat, goblin, giant bat, kobold
ITEM:    sausage / beef jerky, nothing, nothing
SHUFFLE: {[(, 234, ef~
MAP
xxxxxxxxxxxxxxxxxxxxxxx@x
xxxxxxxxxxxxxxxxxxxxxxx+x
xxxxxxxxxxx.xxxxxxxxxxx.xx
xxxxxxxxxx...xxxxxxxxx...xx
xxxxxxxxx.....xxxxxxx.....xx
xxxxxxxx.......xxxxx.......xx
xxxxx.+....{....xxx....2....xx
xxxxx+xx.......xxxxx.......xxxx
xxxxx.xxx.....xxx.xxx.....xxx.xx
xxxx...xxx...xxx...xxx...xxx...xx
xxx.....xxx.xxx.....xxxexxx.....xx
xx.......xx+xx..1.1..xx+xx.......xx
x....[....+.+...1d....+.+~...3....+@
xx.......xx+xx...1...xx+xx.......xx
xxx.....xxx.xxx.....xxxfxxx.....xx
xxxx...xxx...xxx...xxx...xxx...xx
xxxxx.xxx.....xxx.xxx.....xxx.xx
xxxxx+xx.......xxxxx.......xxxx
xxxxx.+....(....xxx....4....xx
xxxxxxxx.......xxxxx.......xx
xxxxxxxxx.....xxxxxxx.....xx
xxxxxxxxxx...xxxxxxxxx...xx
xxxxxxxxxxx.xxxxxxxxxxx.xx
xxxxxxxxxxxxxxxxxxxxxxx+x
xxxxxxxxxxxxxxxxxxxxxxx@x
ENDMAP

##############################################################################
# 30x25
NAME:   erik_entry_gehennom
TAGS:   entry no_monster_gen no_rotate
ORIENT: float
ITEM:   stone
MONS:   rat, goblin, kobold, ooze
MAP
xxxxxxxxxxx@xxxxxxxxxxxxxxxxxx
x.........l.l................x
x.....lllll.lllllllllllll....x
x.....l....1............l....x
x.....l.cc+ccccccccccc..l....x
x.....l.cc..........cc..l....x
x.....l.ccc.........cc..l....x
x.....ll.cc.....2.3.cc.ll....x
x.....l..cccccccc.cccc..l....x
x.....l..cccccccc+cccc..l....x
x.....ll..cc......cc...ll....x
x.....l...ccd{[(..cc.4..l....x
x.....l...cc......cc....l....x
x.....ll..cccccccccc...ll....x
x.....lll.cccccccccc.llll....x
x.....lll............llll....x
x.....lllll..4....lllllll....x
x.....llllll....lllllll......x
x.....lllllllllllll..........x
x.........lllllll............x
x>..........................>x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
# 29x23
# Morbid curiosity
# Monsters are easier. Made it harder for them to get out. The single orc
# can pack a punch, though. His window is secret, so autoexploring won't
# notice, except for characters with starting Traps and Doors skill, who
# will then bring Stealth and Evasion as well.
NAME:    dpeg_entry_morbid_curiosity
TAGS:    entry no_rotate no_monster_gen
ORIENT:  float
MONS:    goblin ; stone
MONS:    hobgoblin ; stone
MONS:    kobold ; dart . mace
SHUFFLE: ABCD
NSUBST:  X = 1:= / *:x
NSUBST:  Y = 1:+ / *:x
SUBST:   A=@, B=@xx, C=@xxxx, D=x
MAP
     xxxxxxxxxBxxxxxxxxx
    xxxxx...........xxxxx
   xxx...xxxxx=xxxxx...xxx
  xx..xxxxxlllllllxxxxx..xx
 xx.xxxxxlll.....lllxxxxx.xx
xx.xxxxxx3..........xxxxxx.xx
xx.xxxxxxxxxxx=xxxxxxxxxxx.xx
xx.xxxxxxxxxGXGXGxxxxxxxxx.xx
x.xx...xxx.........xxx..lxx.x
x.x....xx...........xx1.llx.x
x.x....x............Yx...lx.x
A.+...........{.....G+..1l+.C
x.x....x............Yx...lx.x
x.x....xx...........xx..llx.x
x.xx...xxx.........xxx..lxx.x
xx.xxxxxxxxxxG=Gxxxxxxxxxxx.x
xx.xxxxxxxxxxx=xxxxxxxxxxx.xx
xx.xxxxxx...........xxxxxx.xx
xxx.xxxxxlll2..2.lllxxxxx.xx
 xxx..xxxxxlllllllxxxxx..xx
   xxx...xxxxx+xxxxx...xxx
    xxxxx...........xxxxx
     xxxxxxxxxDxxxxxxxxx
ENDMAP

##############################################################################
# 29 x 21
NAME:    matt_entry_debris
TAGS:    entry
ORIENT:  float
WEIGHT:  2
SHUFFLE: {[(
SUBST:   ' : . x ':40
SUBST:   '=x.
MAP
xxxxxxx@xxxxxxxxxxxxx@xxxxxxx
x....x..'.x.................x
x...'.xxxx...........'x.....x
x'..''.''.........xx..x'....x
x'...'...x'...'....'xx.xx...x
x'...x'......x.x.....x..''..x
x'.'x'x'.......'....'x......x
x'..'x.......x'x.....''..x..x
x'...'...xxx..{...x'....'x'.x
@''.......'.....'....'..'x'.x
x''......xxx...xx........x..x
x....x.......'xx.x...[....x.@
x...'....x''..x.xx........x.x
x'....x....'..x'x..'''...x..x
x...'.'....'.xx.x...x...'x.'x
x..x.....(...x.xx.......'x.'x
x..'..'x.........xx.....'x..x
x...x...........xx.x..x..x..x
x.......'x.'''..x.xx........x
x.........'......xx.........x
xxxxxxxxxxx@xxxxxxxxxxxxxxxxx
ENDMAP

###########################################################
# 43 x 26 -- but it feels smaller because it's not open and
#            starts in a corner and is diagonally shaped
# There's a forest outside the dungeon
NAME:   kilobyte_entry_exit_the_forest
TAGS:   entry no_rotate no_pool_fixup
ORIENT: northwest
MONS:   plant
FTILE:  .t1 = floor_lair
KMASK:  W = no_monster_gen
KMASK:  w = no_monster_gen
MAP
ttttttttttttttttttttttttttttttttttttttttttt
tttttttttttt1ttttttwwtttttttttttttttttttttt
tttt...1ttttt..tttwwwttt.tttttttt....ttttt
ttt..{..ttttt.t.tttwwwt...tttt.....t...tt
tt......tttttt.ttttttwww...t.....ttttt..
tttt..t.tttttt.ttttttttwww...ttttttttt..
ttttt..tttttt.ttttttttttwwwWttttttttttt..
ttttt.tttttt.tttttttttttttwWWtttttttttt.
tttt..tttttt..tttttttttttt..wwwtttttt..
tttt.ttttttttt..tttttttt...tttttt.....
tttt.ttttttttttt.ttttt...tttttt.....
tttt.tttttttttttt.ttt.tttttttt.....
ttttt..ttttttttttt...tttttttt.....
ttttttt..ttttt....tttttttttt.....
ttttttttt.....ttttttttttttttt...@
ttttttttttt1ttttttttttttttt...
tttttttttttttttttttttttt....
tttttttttttttttttttttt....
tttttttttttttttttttt.....
tttttttttttttttttt......
ttttttttttttt..........
tttttttt............
ttt..............
tt....
t..
t.
ENDMAP

#############################################################################
# 33 x 23
NAME:   dpeg_entry_circle_labyrinth_a
TAGS:   entry no_monster_gen no_rotate
WEIGHT: 3
ORIENT: float
NSUBST: . = 1:d / *:.
ITEM:   stone / dart
MAP
          xxxxxxxx.@.xx
       xxxx......=....xxxx
    xxxx.........x.......xxxx
   xx.......xxxx.x=xx.......xx
  xx.....xxxx....x..xxxx.....xx
 xx....xxx.......x.....xxx....xx
 x....xx.....xxx=x.x.....xx....x
xx...xx....xxx...x.xxx....xx...xx
x....x....xx.....x...xx....x....x
x...xx...xx...xx.xx...xx...xx...x
x...x....x...xx...xx...x....x...x
x...x....x...xx[{(xx...x....x...x
x...x....x...xx...xx...x....x...x
x...xx...xx...xxxxx...xx...xx...x
x....x....xx.........xx....x....x
xx...xx....xxx.....xxx....xx...xx
 x....xx.....xxxxxxx.....xx....x
 xx....xxx.............xxx....xx
  xx.....xxxx.......xxxx.....xx
   xx.......xxxxxxxxx.......xx
    xxxx.................xxxx
       xxxx...........xxxx
          xxxxxxxxxxxxx
ENDMAP

NAME:   dpeg_entry_circle_labyrinth_b
TAGS:   entry no_monster_gen no_rotate
WEIGHT: 1
ORIENT: float
NSUBST: . = 1:d / *:.
ITEM:   stone / dart
MAP
          xxxxxxxxxxxxx
       xxxx......x....xxxx
    xxxx.........x.......xxxx
   xx.......xxxx.xxxx.......xx
  xx.....xxxx..x....xxxx.....xx
 xx....xxx.....x.......xxx....xx
 x....xx.....xxxxxxx.....xx....x
xx...xx....xxx.....xxx....xx...xx
.....x....xx.........xx....x....x
@...xx...xx...xx.xx...xx...xx...x
....x........xx...xx...x....x...x
xxxxxxxxxxxxxxx[{(xx...x........x
x............xx...xx...xxxxxx...x
x...xxxxxxx...xxxxx...xx...xx...x
x....x....xx.........xx....x....x
xx...xx....xxx.....xxx....xx...xx
 x...........xxx.xxx.....xx....x
 xx....xxx.....x.......x.x....x
  xx..xx.xxxx..x....xxxx.....xx
   xxxx.....xxxxxxxxx.......xx
      xx.................xxxx
       xxxx...........xxxx
          xxxxxxxxxxxxx
ENDMAP

NAME:   dpeg_entry_circle_labyrinth_c
TAGS:    entry no_monster_gen no_rotate
WEIGHT:  6
ORIENT:  float
SHUFFLE: ab, cd, ef, gh, ij, kl, mn
SUBST:   a=., c=., e=., g=., i=., k=., m=.
SUBST:   b=x, d=x, f=x, h=x, j=x, l=x, n=x
NSUBST:  . = 1:d / *:.
ITEM:    stone / dart
MAP
          xxxxxxxxxxxxx
       xxxx.....h.....xxxx
    xxxx........h........xxxx
   xx.......xxxxxxxxx.......xx
  xx.....xxxx.......xxxx.....xx
 xx....xxx.............xxx....xx
 x....xx.....xxxxxxx.....gg....x
xx....i....xxx.....xxx....xx...xx
x....xxxxjjx.........xx....x....x
x...xx........xxxxx...xx...xx...x
x...x....xlllxx...xx...x....x...x
x...x....x...k.[{(.m...xffffx...x
x...x....x...xx...xx...x....e...x
x...xx...xx...xxnxx...xx...xxxxxx
x....c....xx...x.....xx....x.....
xx...xx....xxx.x...xxx....xx....@
 x....xx.....xxxxxxx.....xx......
 xx....xxx.....d.......xxx....xxx
  xx.....xxxx..d....xxxx.....xx
   xx.......xxxxxaxxx.......xx
    xxxx.......b.........xxxx
       xxxx....b......xxxx
          xxxxxxxxxxxxx
ENDMAP

##############################################################
# 35 x 20
# Zaba's second entry vault ever
NAME:    entry_zaba_pyramid
TAGS:    entry
ORIENT:  float
SHUFFLE: ([{>
SUBST:   ?:???!,  ?=?., ?=!, !:cx, ===cc+
MAP
.................@.................
.cccccc...cccccc...cccccc...cccccc.
.c....c...c....c...c....c...c....c.
.c.(..c...c.{..c...c..[.c...c..>.c.
.c....cc=cc....cc=cc....cc=cc....c.
.cc+ccc...cc+ccc...ccc+cc...ccc+cc.
..!...+...+....+...+....+...+...!..
..!!??!???!????!?.?!????!???!??!!..
 ..!?.??.???.????.????.???.??.?!..
  .!!?..??..???.....???..??..?!!.
  @.!??...???...???...???...??!.@
   .!!???....????.????....???!!.
   ..!!????....??.??....????!!..
    ..!!?????....?....?????!!..
     ..!!!??????...??????!!!..
      ...!!!???..?..???!!!...
        ..!!!!???.???!!!!..
         ...!!!!!+!!!!!...
           ......@......
ENDMAP
