##############################################################################
# Small maps for D:1 arrival vaults.
# Small maps which are also very simple should go to simple.des.
# See arrival_guide.txt for details.
##############################################################################

: crawl_require('dlua/vault.lua')

###############################################################################
# Probably looks better in tiles
NAME:   evilmike_arrival_home_sweet_home
TAGS:   arrival no_monster_gen
WEIGHT: 3
ORIENT: float
COLOUR: ' = brown
COLOUR: `1 = green
COLOUR: - = darkgrey
COLOUR: t = lightgreen
FTILE:  `1t = floor_grass_dark
FTILE:  ' = floor_dirt
FTILE:  -{V = floor_vault
TILE:   c = wall_stone_smooth
MONS: bush
SUBST: `'-: .
MAP
........@........
.................
..11111`'`11111..
..1`````'`````1..
..1``t``'``t``1..
..1`````'`````1..
..ccmccc+cccmcc..
..c---c---c---c..
..c{--+---+---m..
..ccccccc-c---m..
..c-----c-c---c..
..m-----+-ccccc..
..m-----c-+---c..
..c-----c-c-VVc..
..cccmccccccmcc..
.................
ENDMAP

###############################################################################
NAME:   evilmike_arrival_crescent
TAGS:   arrival no_monster_gen
ORIENT: float
MAP
xxxxxxxxxx
xx.{.xxxxx
xxx...xxxx
x>xx...xxx
xw.x...xxx
xw.xx...xx
xww.x...xx
xwwWxx...x
xwwwW+...+
xwwWxx...x
xww.x...xx
xw.xx...xx
xw.x...xxx
x<xx...xxx
xxx...xxxx
xx@@@xxxxx
ENDMAP

###############################################################################
NAME:    evilmike_arrival_come_back
WEIGHT:  2
TAGS:    arrival
ORIENT:  float
NSUBST:  % = 1:1 / 1:0 / 1:> / *=%...
MONS:    gnoll / ogre / bullfrog / centaur
MAP
xxxxxxxxxx
x.......{x
x.xxxxxx.x
x.x%%%%x.x
..x%%%%x.x
..m%%%%x.x
..m%%%%x.x
..mmmxxx.x
.........x
 .....xxxx
ENDMAP

###############################################################################
NAME:    evilmike_arrival_hilbert_curve
TAGS:    arrival no_monster_gen no_pool_fixup
ORIENT:  float
SUBST:   c:xxxcccwl
NSUBST:  { = 1:{ / *:.
MAP
.................
.ccc.ccc.ccc.ccc.
.c{c.c{c.c{c.c{c.
.c.ccc.c.c.ccc.c.
.c..>..c.c..>..c.
.ccc.ccc.ccc.ccc.
...c.c.....c.c...
.ccc.ccccccc.ccc.
.c......>......c.
.c.ccccc.ccccc.c.
.c{c..{c.c{..c{c.
.ccc.ccc.ccc.ccc.
....>c.....c>....
.ccc.ccc.ccc.ccc.
.c.c..{c.c{..c.c.
.c.ccccc.ccccc.c.
.................
ENDMAP

###############################################################################
NAME:   evilmike_arrival_fibonacci_small
TAGS:   arrival no_monster_gen no_trap_gen
ORIENT: float
WEIGHT: 6
NSUBST: U = 1:+ / *:x, V = 1:+ / *:x, W = 1:+ / *:x, X = 1:+ / *:x
NSUBST: Y = 1:+ / *:x, Z = 1:+ / *:x
MAP
      xxxxxxxYYx
      x........Y
      x........Y
      x........x
      x........x
xZZxxxx........x
Z.....W........x
Z.....W........x
x.....W........x
x..G..W........x
x.....xxxxxXXXXx
x.....x{+.x
xxxxVVxxx+x
   x...U..x
   x...U..x
   x...xxxx
   xxxxx
ENDMAP

###############################################################################
NAME:    evilmike_arrival_grusome_pit
TAGS:    arrival no_rotate
WEIGHT:  1
ORIENT:  northwest
# the exit will be placed elsewhere 25% of the time
SUBST:   { = {:30 .
ITEM:    skeleton, corpse
SUBST:   Y = A.
KFEAT:   A = shaft trap
SUBST:   ` = de `:60
SUBST:   . = ' .:120
SUBST:   ` = ''., V = Xx, U = Xxxx, x = X x:60
KPROP:   X' = bloody
SUBST:   X = x, ' = .
SUBST:   . = .:320 d:5 e:20 f:5
SUBST:   y : x
MAP
yyyyyyyyyyyy
yyVVVVVyyyyy
yVV...VVyyyy
yV.YYY`VVyyyyyyyyyyyyyyyyyyyyyyy
yV.YAY`.Vyyyyyyyyyyyyyyxxxxyxxxy
yV.YYY`.UUyyyyxxxxxxyxxx..xxxxxy
yVV.````.UUUyUU....xxx.........@
yyVVVVU.``.UUU................xy
yyyyyyUU.`````......`.`.`.`...xy
     yyUUU..`.``...``........xxy
     yyyyUUUU..``.``.......xxxyy
     yyyyyyyUU............xxyyyy
     yyyyyyyyxxxx...{..xxxxyy
     yyyyyyyyyyyxx...xxxyyyyy
     yyyyyyyyyyyyxxxxxyyyyyyy
     yyyyyyyyyyyyyyyyyyyyyyyy
ENDMAP

##############################################################################
# Was evilmike_arrival_teleporters
NAME:    evilmike_arrival_plus
TAGS:    arrival
ORIENT:  float
SHUFFLE: GTVt1`
SUBST:   `=.
SUBST:   X:Y. , Y:xx.
MONS:    plant
MAP
       x+x
      xx.xx
      xY.Yx
      xX.Xx
      xX.Xx
     xx...xx
 xxxxx..G..xxxxx
xxYXX.......XXYxx
+.....G.{.G.....+
xxYXX.......XXYxx
 xxxxx..G..xxxxx
     xx...xx
      xX.Xx
      xX.Xx
      xY.Yx
      xx.xx
       x+x
ENDMAP

##############################################################
NAME:   evilmike_arrival_rings
TAGS:   arrival no_monster_gen no_pool_fixup
ORIENT: float
NSUBST: s = 1:+ / *:x, p = 1:+ / *:x, q = 1:+ / *:x, r = 2:+ / *:x
NSUBST: _ = 1:w / *:., ' = 1:w / *:., ` = 1:w / 1:d / *:.
SUBST:  w:wlxm, x:xccv, +=+++.
ITEM:   stone
MAP
   ...........
  ..rrrrrrrrr..
 ..rr.`````.rr..
..rr.qqqqqqq.rr..
.rr.qq.'''.qq.rr.
.r.qq.ppppp.qq.r.
.r`q.pp._.pp.q`r.
.r`q'p.sss.p'q`r.
.r`q'p_s{s_p'q`r.
.r`q'p.sss.p'q`r.
.r`q.pp._.pp.q`r.
.r.qq.ppppp.qq.r.
.rr.qq.'''.qq.rr.
..rr.qqqqqqq.rr..
 ..rr.`````.rr..
  ..rrrrrrrrr..
   ...........
ENDMAP

##############################################################
NAME:    minmay_arrival_checkered_box
TAGS:    arrival
ORIENT:  float
: if crawl.one_chance_in(4) then
COLOUR:  ' = blue
COLOUR:  " = green
FTILE:   '{ = floor_pebble_blue
FTILE:   " = floor_pebble_green
SUBST:   c = b, x = v
: else
COLOUR:  ' = brown
COLOUR:  " = lightgrey
FTILE:   '{ = floor_pebble_brown
# yes, this variation uses American spelling for some reason
FTILE:   " = floor_pebble_lightgray
: end
SUBST:   ' = ., " = .
MAP
xcx+xcx
c'"'"'c
x"'"'"x
c'"{"'c
x"'"'"x
c'"'"'c
xcx+xcx
ENDMAP

##############################################################
NAME:    minmay_arrival_split_and_join
TAGS:    arrival no_rotate
ORIENT:  float
SUBST:   T = TV
KMASK:   T = no_monster_gen
MAP
xxxxxxxxxxxx@xxxxxxxxxxxx
xxxxxxxxxxx...xxxxxxxxxxx
xxxxxxxxx...x...xxxxxxxxx
xxxxxx....xxxxx....xxxxxx
xxxx...xxxxxxxxxxx...xxxx
xxx..xxxxxxxxxxxxxxx..xxx
xxx+xxxxxxxx>xxxxxxxx+xxx
xx...xxxxxx...xxxxxx...xx
x.......................x
x..T........T........T..x
x.......................x
xx...xxxxxx...xxxxxx...xx
xxxxxxxxxxxx+xxxxxxxxxxxx
xxxxxxxx.........xxxxxxxx
xxxxxxx..t..{..t..xxxxxxx
xxxxxxxx.........xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
NAME:    minmay_arrival_jagged
TAGS:    arrival no_monster_gen
ORIENT:  float
KPROP:   A = no_tele_into
SUBST:   A = xx., B = x..
MAP
xxxxxxxxxxxx
x{AAAAAAAAAA
xA.BBBBBBBBB
xAB.........
xAB.........
xA.BBBBBBBBB
x>AAAAAAAAAA
xxxxxxxxxxxx
ENDMAP

##############################################################
NAME:    minmay_arrival_stair_chambers
TAGS:    arrival no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SUBST:   T = T V G b:3 .:3
SUBST:   [ = G
SUBST:   ( = G
MAP
    x+xxx+x
xxxxx.....xxxxx
x...m.....m...x
x.{.+..T..+.[.x
x...m.....m...x
xxxxx.....xxxxx
xxxxxxm+mxxxxxx
xxxxxx...xxxxxx
   xxx.(.xxx
   xxx...xxx
   xxxxxxxxx
ENDMAP

##############################################################
NAME:    minmay_arrival_four_loops
TAGS:    arrival
ORIENT:  float
SUBST:   x : x:200 c v:5 b:5
SUBST:   b : x:200 c v:5 b:4 t:1 m:1
MAP
@xxxxxxxx  xxxxxxxx@
x+......xxxx......+x
x........xx........x
x...bb...xx...bb...x
x..bbbb..xx..bbbb..x
x..bbbb..xx..bbbb..x
x...bb...xx...bb...x
x..................x
xx................xx
 xxxxxx.{xx..xxxxxx
 xxxxxx..xx..xxxxxx
xx................xx
x..................x
x...bb...xx...bb...x
x..bbbb..xx..bbbb..x
x..bbbb..xx..bbbb..x
x...bb...xx...bb...x
x........xx........x
x+......xxxx......+x
@xxxxxxxx  xxxxxxxx@
ENDMAP


##############################################################
NAME:    minmay_arrival_stone_box
TAGS:    arrival
ORIENT:  float
NSUBST:  A = 1:+ / 1=c+ / *:c
NSUBST:  B = 1:+ / *:c
SUBST:   C = .
SHUFFLE: >TVGl
KMASK:   TlC = no_monster_gen
MAP
...........
...........
..cnAAAnc..
..ncCCCcn..
..ACBBBCA..
..ACB>BCA..
..ACBBBCA..
..ncCCCcn..
..cnAAAnc..
.{.........
...........
ENDMAP

##############################################################
NAME:    minmay_arrival_semitransparent
TAGS:    arrival
ORIENT:  float
: if crawl.coinflip() == true then
SUBST:   x : cccb
SUBST:   m : n
: else
SUBST:   x : xxxb
: end
MAP
...........
.xmxmxmxmx.
...........
...........
.....{.....
...........
...........
.xmxmxmxmx.
...........
ENDMAP

##############################################################
NAME:    minmay_arrival_solitary_statue
TAGS:    arrival
WEIGHT:  9
ORIENT:  float
SUBST:   d : c+
SUBST:   e : c+
SUBST:   c : cccx
MAP
.ccccccc.
.c..{..c.
.d.....e.
.c..G..c.
.d.....e.
.c.....c.
.cc+c+cc.
ENDMAP

NAME:    minmay_arrival_statue_studded
TAGS:    arrival
ORIENT:  float
WEIGHT:  1
SUBST:   c : cccx
KMASK:   T = no_monster_gen
MAP
...........
.GcGcGcGcG.
.ccccccccc.
.Gc..{..cG.
.cc.....cc.
..+..T..+..
.cc.....cc.
.Gc.....cG.
.cccc+cccc.
.GcGc.cGcG.
...........
ENDMAP

##############################################################
NAME:    minmay_arrival_four_circles
TAGS:    arrival
ORIENT:  float
SHUFFLE: AB
SUBST:   A = ., B = x
SUBST:   x : xxxcbv
MAP
...................
..AAA...BBB...AAA..
.AAAAA.BBBBB.AAAAA.
.AAAAA.BBBBB.AAAAA.
.AAAAA.BBBBB.AAAAA.
..AAA...BBB...AAA..
...................
..BBB.........BBB..
.BBBBB.......BBBBB.
.BBBBB...{...BBBBB.
.BBBBB.......BBBBB.
..BBB.........BBB..
...................
..AAA...BBB...AAA..
.AAAAA.BBBBB.AAAAA.
.AAAAA.BBBBB.AAAAA.
.AAAAA.BBBBB.AAAAA.
..AAA...BBB...AAA..
...................
ENDMAP

##############################################################
NAME:    minmay_arrival_five_plusses
TAGS:    arrival
ORIENT:  float
SHUFFLE: {>, AB
SUBST:   A = ., B = x
SUBST:   x : xxxxxxccbvwl
KMASK:   wl = no_monster_gen
MAP
.............
..B...A...B..
.BBB.AAA.BBB.
..B...A...B..
.............
..A...x>..A..
.AAA.xxx.AAA.
..A..{x...A..
.............
..B...A...B..
.BBB.AAA.BBB.
..B...A...B..
.............
ENDMAP

##############################################################
NAME:   minmay_arrival_nine_rooms
TAGS:   arrival no_monster_gen
ORIENT: float
NSUBST: ? = 1:{ / *:TG.
SUBST:  T = TV
MAP
xxxxxxxxxxxxxx+xx
x...xxx...xxx...x
x.?.....?.....?.x
x...xxx...xxx...x
xx.xxxxxxxxxxxxxx
x...xxx...xxx...x
x.?.....?.....?.x
x...xxx...xxx...x
xxxxxxxxxxxxxx.xx
x...xxx...xxx...x
x.?.....?.....?.x
x...xxx...xxx...x
xx+xxxxxxxxxxxxxx
ENDMAP

##############################################################
NAME:   minmay_arrival_widening_spiral_wide
TAGS:   arrival no_monster_gen
WEIGHT: 8
ORIENT: float
: if crawl.one_chance_in(4) then
SUBST:  ABCDEFGHJ = +
SUBST:  abcdefghj = x
: else
SUBST:  a=A, b=B, c=C, d=D, e=E, f=F, g=G, h=H, j=J
NSUBST: A = 1:+ / *:X , B = 1:+ / *:X , C = 1:+ / *:X , D = 1:+ / *:X
NSUBST: E = 1:+ / *:X , F = 1:+ / *:X , G = 1:+ / *:X , H = 1:+ / *:X
NSUBST: J = 1:+ / *:X
SUBST:  X:Xxxx+, X=xx+
: end
MAP
xJjjxxxxxxx
x.........H
x.........h
x.........h
x...xxxxxxxxxxxxxx
x...x.....D......x
x...x.G...d....G.x
x...x.....d......x
x...x...xxxxxx...x
x...x...x{+..x...x
xHhhxCccxxx..x...x
x...x....xxaAxeeEx
x...x....b...x...x
x...x....b...x...x
x...x....B...x...x
x...xxxxxxxxxx...x
x........f.......x
x.G......f.....G.x
x........F.......x
xxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   minmay_arrival_widening_spiral_narrow
TAGS:   arrival no_monster_gen no_trap_gen
WEIGHT: 2
ORIENT: float
MAP
xxxxxxxxxxxxxxxxxx
x.........+.......
x.xxxxxxxxx.xxxxx.
x.x.......+.......
x.x.xxxxxxxxxxxxxx
x.x.x.....+......x
x.x.x.xxxxxxxxxx.x
x.x.x.x...+....x.x
x.x.x.x.xxxxxx.x.x
x.x.x.x.x{+..x.x.x
x+x+x+x+xxx..x.x.x
x.x.x.x.xxxx+x+x+x
x.x.x.x..+}x.x.x.x
x.x.x.xxxxxx.x.x.x
x.x.x....+...x.x.x
x.x.xxxxxxxxxx.x.x
x.x......+.....x.x
x.xxxxxxxxxxxxxx.x
x........+.......x
xxxxxxxxxxxxxxxxxx
ENDMAP


##############################################################
NAME:   minmay_arrival_loop
TAGS:   arrival no_monster_gen
ORIENT: float
NSUBST: B = 1:{ / *:.
MAP
      xxxxxxx
    xxx.....xxx
   xx.........xx
  xx....Bx.....xx
  x.....xxx.....x
 xx....Bxxx.....xx
 x.....xxxxx.....x
 x..x..xxxxx..x..x
 x..x..xxxxx..x..x
 x.....xxxxx.....x
 xx.....xxx.....xx
  x.....xxx.....x
  xx...........xx
   xx...Bx....xx
    xxxxxx@.xxx
ENDMAP

##############################################################################
NAME:    erik_arrival_orb_chamber
TAGS:    arrival no_rotate no_monster_gen
ORIENT:  float
ITEM:    q:1 stone
TILE:    G = dngn_statue_orb_guardian
: set_feature_name("granite_statue", "statue of a hideous four-limbed creature")
MAP
xxxxxxxxxxxxxxxxxxx
..xxxxxxxxxxxxxxx..
...xxxxxxxxxxxxx...
...xxx...G...xxx...
...xx..G.{.G..xx...
...xG.........Gx...
......G..d..G......
...xG.........Gx...
...xx..G...G..xx...
...xxx...G...xxx...
...xxxxxxxxxxxxx...
..xxxxxxxxxxxxxxx..
xxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_lava_altar
TAGS:    arrival no_monster_gen
ORIENT:  northwest
SUBST:   ?=l.
WEIGHT:  6
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxx>lllllllllll..
xxxxxxlClllllllll?..
xxxxxxlllllllll??...
xxxxxxllllllllll....
xxxxxxllllllllll....
xxxxxxllllllllll....
xxxxxxlllllllll?....
xxxxxxlllllllll..cc.
xxxxxxllllllll...c{.
xxxxxxl?ll?ll?......
xxxxxxll.??....
xxxxxxl.........
ENDMAP

NAME:    dpeg_arrival_water_altar
TAGS:    arrival no_monster_gen
ORIENT:  northwest
WEIGHT:  4
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxx>wwwwwwwwwwwwww.
xxxxxxwCwwwwwwwwwww...
xxxxxxwwwwwwwwwwww..
xxxxxxwwwwwwwwwwww..
xxxxxxwwwwwwwwwww...
xxxxxxwwwwwwwwwww...
xxxxxxwwwwwwwwww....
xxxxxxwwwwwwwwww.cc.
xxxxxxwwwwwwwwW..c{.
xxxxxxwwwwwwww......
xxxxxxwwwwww.....
xxxxxxw..........
ENDMAP

##############################################################################
NAME:    dpeg_arrival_fog
TAGS:    arrival 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:    elethiomel_arrival_shortcut
TAGS:    arrival
ORIENT:  float
SHUFFLE: XY/AB
KFEAT:   X = permanent 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

##############################################################
NAME:    onia_arrival_pentagram
TAGS:    arrival 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:    dpeg_arrival_rooms_b
TAGS:    arrival no_monster_gen
ORIENT:  float
SHUFFLE: cvb
NSUBST:  . = 1:d / *:.
ITEM:    stone
MAP
xxxxxxxxxxxxxxx
xcccccccx.....x
xc.....cx..G..x
xc..{..cx.....x
xc..c..cxxxx+xx
xc..c..cx......
xc.....+......@
xcccccccx......
xxxxxxxxx..@...
ENDMAP

##############################################################################
NAME:    dpeg_arrival_rooms_c
TAGS:    arrival no_monster_gen no_pool_fixup
ORIENT:  float
SHUFFLE: cvb
MAP
xxxxxxxxxxxx
xvcvcvcvcvcx
xc........vx
xv........cx
xc.{......vx
xv........cx
xc........vx
xvcvcv+vcvcx
xxxxxx.xxxxx
x..........x
x.G..wwww..x
x..........x
xxxxxxxxxx@x
ENDMAP

#############################################################################
NAME:    dpeg_arrival_shrine
TAGS:    arrival no_monster_gen no_pool_fixup no_rotate
SHUFFLE: lw
ORIENT:  float
MAP
xxxxxxxx@xxxxxxxx
xlllllll.lllllllx
xlllll.....lllllx
xll....WWW....llx
xl...WWW.WWW...lx
@...WWW.{..WW..lx
xl...WWW.WWW...lx
xll....WWW....llx
xlllll.....lllllx
xlllllllllllllllx
xxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_water_temple_mockup
TAGS:    arrival no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: cxxx
NSUBST:  . = 1:d / *:.
SUBST:   T = TVVVV
ITEM:    stone
MAP
      ...................
      ..ccccccccccccccc..
    cc+cc.............cc+cc
  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...cc
  ccc..........T..........ccc
    ccccc.............ccccc
        ccccccccccccccc
ENDMAP

##############################################################################
NAME:    dpeg_arrival_stone_temple_mockup
TAGS:    arrival no_monster_gen no_rotate no_pool_fixup
ORIENT:  float
SHUFFLE: cxxx
NSUBST:  . = 1:d / *:.
NSUBST:  e = 2:+ / *:.
ITEM:    stone
SUBST:   T = TVVVV
MAP
     ccccccccccc
  cccc.........cccc
 cc...............cc
 e......T...T......e
cc...T.........T...cc
c.........w.........c
c...T...........T...c
c{.....w.....w......e
c...T...........T...c
c.........w.........c
cc...T.........T...cc
 e......T...T......e
 cc...............cc
  cccc.........cccc
     ccccccccccc
ENDMAP

##############################################################################
NAME:    dpeg_arrival_lava_temple_mockup
TAGS:    arrival no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: cxxx
NSUBST:  . = 1:d / *:.
ITEM:    stone
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_arrival_chambers_temple_mockup
TAGS:    arrival 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_arrival_leaves_temple_mockup
TAGS:    arrival no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: cxxx
NSUBST:  . = 1:d / *:.
ITEM:    stone
SUBST:   T = TVVVV
SUBST:   D = c@
KMASK:   Z = no_trap_gen
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
     @Z....T....Z@
     ccc.......ccc
       ccccDcccc
ENDMAP

##############################################################################
NAME:   dpeg_arrival_three_same_balls
TAGS:   arrival no_rotate no_monster_gen
ORIENT: float
SUBST:  ' = .x
SUBST:  G : GTVt
NSUBST: d = 1:d / *:'
ITEM:   stone
MAP
               xxxxx
             xxx...xxx
   xxxxxxxxxxx.......xx
 xxx...xxxxxx.........x
xx.......xx......G....x
x..........xx.........x
x....{....xxxx.......xx
x.........xxxxxx...xxx
xx.......xxxxxx.xxxx
xxxx...xxxxxx...xxxx
xxxxxxxxxxx.......xx
xxx...''...........x
x'.''d..xx....G....x
x'.'xx'xxx.........x
xd..'d...xx.......xx
xx''..''..xxx...xxx
 xxxxxxxx@xxxxxxx
ENDMAP

#############################################################################
NAME:   lemuel_arrival_hallway
TAGS:   arrival 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_arrival_rhombus
TAGS:    arrival 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_arrival_room
TAGS:    arrival
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:    arrival 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_arrival_large
TAGS:    arrival
ORIENT:  float
WEIGHT:  1
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....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

##############################################################################
NAME:    dpeg_arrival_stonehenge_12_columns
TAGS:    arrival 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_arrival_stonehenge_8_columns
TAGS:    arrival 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_arrival_simpleton_a
TAGS:   arrival  no_monster_gen
ORIENT: float
NSUBST: . = 1:d / *:.
ITEM:   stone
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_arrival_simpleton_b
TAGS:    arrival
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.G.T.x......
x.......xxx+xxx
x.......xcc+ccx
xxxxxxxxxc...cx
xccccccccc.{.cx
@........+...cx
xcccccccccccccx
xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_simpleton_c
TAGS:    arrival
ORIENT:  float
ITEM:    nothing, nothing
SUBST:   d : GTVt
SHUFFLE: a+, cx
SUBST:   a = x
MAP
@.........@
...xx+xx...
...x...x...
.xxx.d.xxx.
.x.......x.
.a.d.{.d.a.
.x.......x.
.xxx.d.xxx.
...x...x...
...xx+xx...
@.........@
ENDMAP

##############################################################################
NAME:    dpeg_arrival_prison
TAGS:    arrival 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
MONS:    fungus, rat, dart slug
MAP
xxxxxxxxxxxxxxxxx
x'A'x'B'x'C'x'D'x
x'.'x'.'x'.'x'.'x
xx+xxx+xxx+xxx+xx
x'..............x
x'.....xx.......+
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_arrival_refuge
TAGS:   arrival
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_arrival_ratfight
TAGS:    arrival
MONS:    rat
ORIENT:  float
MAP
xxxxxxxxxxxx..@
xx.1.%1xxxxx...
x%.1.....xxx...
x1........xx...
xxx...xx..xx...
xxxxxxxxx.1x...
xxxxxxxxxx+x+xx
....xxxxxx....x
....xxxxxx.{..x
@...xxxxxxxx@xx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_houses_and_road
TAGS:    arrival
ORIENT:  float
SHUFFLE: +'
SUBST:   ' : x + ':40, '=x+
: decorative_floor(_G, 'p', "garden patch")
MAP
xxxxxxx.@.xxxxxxx
x.....+...x.....x
x..(..'...+.....x
x.....xx.xx.....x
xxx+'xxx.xxxx'xxx
@....xxp..xx....@
.....xx..pxx.....
xxx+xxxx.xxxx+xxx
x.....xx.xx.....x
x.....'...'..]..x
x.....x...x.....x
xxxxxxx.@.xxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_rhombus
TAGS:    arrival no_monster_gen
ORIENT:  float
SHUFFLE: @A
SUBST:   A=x
MAP
      xxAxx
   xxxx...xxxx
xxxx.........xxxx
@.......{.......@
xxxx.........xxxx
   xxxx...xxxx
      xxAxx
ENDMAP

############################################################
NAME:   zaba_arrival_water
TAGS:   arrival no_monster_gen no_rotate
ORIENT: float
SUBST:  T = TV, ? = wW, > = >d
ITEM:   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_arrival_tunnels
TAGS:    arrival no_monster_gen
ORIENT:  float
SUBST:   ? = x.
SHUFFLE: {[(
SUBST:   [( = .
MAP
xxx
x{xx          xxxxx
x..xxxxxxxxxxxx[x?x
xx.?xxxxx(xxxx?...x
x?..xxxx..xxxx.??.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_arrival_muddy
TAGS:    arrival no_monster_gen
ORIENT:  float
SHUFFLE: {[(
SUBST:   [( = .
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
xxxxWx'''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_arrival_broad_hall
TAGS:    arrival no_monster_gen
ORIENT:  float
SUBST:   ? : xxcvG
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_arrival_behind_the_door_large
TAGS:    arrival no_monster_gen
WEIGHT:  5
ORIENT:  float
SUBST:   b : bcvxxx
MAP
xxxxxxxxxxx
x....{....x
x.........x
x.........x
x.b.....b.x
x.b.....b.x
x.........x
x.........x
x.........x
xb++bbb++bx
x....@....x
ENDMAP

NAME:    lemuel_arrival_behind_the_door_small
TAGS:    arrival no_monster_gen
WEIGHT:  5
ORIENT:  float
SUBST:   b : bcvxxx
MAP
xxxxxxxxxxx
x....{....x
x.b.....b.x
x.b.....b.x
x.........x
xb+bb+bb+bx
x....@....x
ENDMAP

##############################################################################
NAME:    dpeg_arrival_oval
TAGS:    arrival no_rotate
ORIENT:  float
SHUFFLE: @X
SUBST:   v:vxxx, c:vxxxxc
SUBST:   X=x
NSUBST:  { = 1:{ / *:.
MAP
        xxxxxxx@xxxxxxx
    xxxxx.............xxxxx
  xxx.......vxvxvxv.......xxx
 xx......xvx.......xvx......xx
 x....vxv......{......vxv....x
xx...x....{.ccccccc.{....x...xx
x...v..{..ccccccccccc..{..v...x
x...x....ccccccccccccc....x...X
x...v....ccccccccccccc....v...x
x...x..{..ccccccccccc..{..x...x
xx...v....{.ccccccc.{....v...xx
 x....xvx......{......xvx....x
 xx......vxv.......vxv......xx
  xxx.......xvxvxvx.......xxx
    xxxxx.............xxxxx
        xxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:   dpeg_arrival_pond
TAGS:   arrival no_monster_gen no_pool_fixup
ORIENT: float
SUBST:  0 = 0 .
SUBST:  ' = w'
NSUBST: . = 1:d / *:.
NSUBST: " = 1:@ / *:.
ITEM:   stone
MAP
".0.0....0."
xxwwwwwwwxxx
xwwwwwwwwwwx
xwwww'wwwwwx
xwwwW...'wwx
xwwWww...'wx
x'.......'wx
x....{..'wwx
.........wwx
@........xxx
ENDMAP

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

##############################################################################
NAME:    dpeg_arrival_arbitrary_a
TAGS:    arrival transparent
ORIENT:  float
SUBST:   ' : . x ':40, '=.x
NSUBST:  . = 1:d / *:.
NSUBST:  { = 1:{ / *:.
ITEM:    stone
MAP
    xxxxxxxxxxxxxxxxx
   xx''xx'''x''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'...........xxxxxxxx
xx'..{.xxx'....''xxxx
 xx'....xxxx''...''xx
  xxxx'''xxxxx''...'x
     xxxxxxxxxx..@..x
ENDMAP

##############################################################################
NAME:    dpeg_arrival_arbitrary_b
TAGS:    arrival
ORIENT:  float
SUBST:   ' : . x ':40, '=.x
NSUBST:  { = 1:{ / *:.
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_arrival_arbitrary_c
TAGS:    arrival
ORIENT:  float
SHUFFLE: TV
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...{...T.x
x...........x
x...........x
xxxx..x..xxxx
   xx...xx
   x..@..x
ENDMAP

##############################################################################
NAME:    dpeg_arrival_subterranean_lakeside_camping
TAGS:    arrival no_monster_gen
ORIENT:  float
MONS:    goblin, rat, bat
SHUFFLE: ab, cd
SUBST:   ? : . w ?:40, ' : . x ':40
SUBST:   ? = .w, ' = .x
SUBST:   ac = w, bd = .
SUBST:   e = f.
SUBST:   f : .wx
MAP
      xxxxxxxxxxxxxxxxxxxx
   xxxx?xx1.'xxxxxxxx'.33x
 xxx'.c?.xxx.xxx.x.x..xxxx
xx'..?w.....?.....x..xxx'x
x'.?www?.?.?www?.xx...2x.'
x.?www?.??w.wwww?...?.xx.@
xx.d??.?wwww.www.?ww..x..'
xxx'..?wwww??.wwwww?.xx.xx
''xxx.?www?.{.?www?.xx.xxx
@..x.?wwwww???wwwww?..xx'x
..xx..?wwwww.wwwww?..x..xx
x'.xxx.??wwww.ww.??...xxxx
xx..x....??www.bb...xxxx'x
 xx...??....aa.xxe.x.....x
  xx'...'xxxxxxxf'...'x.2x
  x'.xxxxx'''xxxxxx''xx1xx
  xxxxxxxx.@.xxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_more_subterranean_lakeside_camping
TAGS:    arrival no_monster_gen
ORIENT:  float
NSUBST:  { = 1:{ / *:.
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_arrival_erosion
TAGS:   arrival no_monster_gen
ORIENT: float
SUBST:  '=cx., "=+.x, 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_arrival_orchard
TAGS:    arrival
ORIENT:  float
MONS:    plant
SUBST:   x : 1xp
FTILE:   '1p{ = floor_grass_dark
FTILE:   " = floor_mud
COLOUR:  ' = green
: decorative_floor(_G, 'p', "flower patch")
MAP
  "..."
 "x"""x"
 "'''''"
."''{''".
 "'''''"
 "x"""x"
  "..."
ENDMAP

##############################################################################
NAME:    dpeg_arrival_round_a
TAGS:    arrival
ORIENT:  float
# Equal chance of passable, blocked at ?, blocked at A, and blocked at a.
# Blocking the path at two points would create a disconnected bubble.
: local r = crawl.random2(4)
: if r == 0 then
:   subst("? = x")
:   subst("A = .")
:   subst("a = +")
: elseif r == 1 then
:   subst("? = +")
:   subst("A = .")
:   subst("a = x")
: else
:   subst("? = +")
:   subst("A = '")
:   subst("a = +")
: end
: if crawl.random2(3) == 0 then
:   subst("B = .")
:   subst("b = x")
: else
:   subst("B = '")
:   subst("b = x")
: end
SUBST:   ' = x. , v : cvxxxx
NSUBST:  { = 1:{ / *:.
MAP
xxxxxxxxxxxxxxxx.@
@...xxxxxx.Axx.a..
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....xxxxBx..
x{x'...xx{xxxxbb..
xxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_round_b
TAGS:    arrival
ORIENT:  float
SUBST:   ' : . x ':40, '=x.
NSUBST:  { = 1:{ / *:.
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_arrival_round_c
TAGS:    arrival
ORIENT:  float
SUBST:   ' : . x ':40, '=x., " : . c ":40, "=.c , c:cxx
NSUBST:  { = 1:{ / *:.
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_arrival_short_road
TAGS:    arrival
ORIENT:  float
SUBST:   %=%.
NSUBST:  { = 1:{ / *:.
MAP
xxxxxx@.xxx
x{.xx..xxxx
x..x...+..x
x..x..xx.{x
x..+..xx..x
x+xx..xxxxx
x%+..xxxxxx
xxx..x...{x
xx...+....x
xx.@xxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_court
TAGS:    arrival
ORIENT:  float
SHUFFLE: TVG
KMASK:   TA = no_monster_gen
SUBST:   A=.
NSUBST:  { = 1:{ / *:.
MAP
xxxxx.@.xxxxx
x...........x
x.xxx...xxx.x
x.x.......x.x
x.x.T.x.T.x.x
x.....x.....x
x...AxxxA...x
xxxxAAxAAxxxx
x..+AAAAA+..x
x{.xxx+xxx..x
x..x{....x.{x
xxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_signposts
TAGS:    arrival no_monster_gen no_rotate
ORIENT:  float
SHUFFLE: DX'/CY"
SUBST:   D = c, XC" = x, 'Y = .
SHUFFLE: cvb
NSUBST:  . = 1:d / *:.
ITEM:    stone
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{.xxxXx..x'x...'xxxx..xx@
x....xxX'CX'x.xCXx..xX.cx.
x..Dx...xx.XXx'''.Xx.x....
xxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
NAME:    dpeg_arrival_renting
TAGS:    arrival
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_arrival_brainrot
TAGS:    arrival no_monster_gen
MONS:    jackal / ribbon worm
ORIENT:  float
SUBST:   l = l.
NSUBST:  { = 1:{ / *:.
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_arrival_another_circle
TAGS:    arrival 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_arrival_yet_another_circle
TAGS:    arrival 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:   matt_arrival_diagonals
TAGS:   arrival 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

##############################################################
# A Maze of Twisty Passages, All Alike
NAME:    elethiomel_arrival_maze
TAGS:    arrival no_monster_gen
ORIENT:  float
SHUFFLE: WXYZ
SUBST:   W=., X=X., X=x+., Y=Y., Y=x., Z=Z., Z=x+.
NSUBST:  { = 1:{ / *:.
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_arrival_quiet
TAGS:    arrival no_monster_gen
ORIENT:  float
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
       c.....c
       c.....c
       c.G.G.c
       c.....c
xxcccccc.....ccccccxx
YX''''"..G.G..?!!!!!!
xxcccccc.....ccccccxx
      cG.....Gc
      c...{...c
      ccccccccc
ENDMAP

##############################################################
NAME:    onia_arrival_mini_maze
TAGS:    arrival
WEIGHT:  5
ORIENT:  float
ITEM:    nothing / stone
SHUFFLE: Aa, Bb, Cc, Ee, Ff
MONS:    nothing / rat
SUBST:   A=x, B=x, C=x, E=x, F=x, a=., b=., c=., e=., f=.
SUBST:   X = xxxxxxxxxxxxxxxxx+
NSUBST:  { = 1:{ / *:.
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.xx.xxx.xx.xxx.x
x.....{x{x{.....x
xxxxxxxxxxxxxxxxx
ENDMAP

NAME:    onia_arrival_mini_maze_b
TAGS:    arrival
WEIGHT:  5
ORIENT:  float
SHUFFLE: AB
SUBST:   A : x , B = +., X = x+
NSUBST:  { = 1:{ / *:.
MAP
xxxxxxxxx@xxxxxxx
x.......A.B.....x
x.xxxxxBxxxAxxx.x
x.xd.........dx.x
x.xxxxxxxxxxx1x.x
x.x...B.......x.x
x.x.x.x.xxxxxAx.x
x...x.x....dx...x
xxxxx.xxxxxxxx.xx
x...............x
x.xx.xxX.Xxx.xx.x
x.....{x{x{.....x
xxxxxxxxxxxxxxxxx
ENDMAP

#############################
NAME:    onia_arrival_handbag
TAGS:    arrival
ORIENT:  float
MONS:    w:30 rat / endoplasm / ball python
SHUFFLE: {[
SUBST:   [=.
MAP
.......@........
.xx..xx>x{x..xx.
.....xxx.xx.....
.xx1xxxxxxxx1xx.
.>xxxxxxxxxxxx>.
.xx1xxxxxxxx1xx.
.....xx.xxx.....
.xx..x[x>xx..xx.
.......@........
ENDMAP

##############################################################
NAME:     eino_arrival_cavern_a
TAGS:     arrival 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_arrival_cavern_b
TAGS:     arrival 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_arrival_cavern_c
TAGS:     arrival no_monster_gen no_rotate
ORIENT:   northwest
WEIGHT:   2
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x{.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx.....xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx........xxxxxxxxxxxxxxxxxxxxxxx
xxxxx.............xxxxxxxxxxxxxxxxx
xxxxxxx.................xxxxxxxxxxx
xxxxxxxxxx......................xxb
xxxxxxxxxxxxx.....................@
xxxxxxxxxxxxxxxxx.............xxxxb
xxxxxxxxxxxxxxxxxxxb.@.bxxxxxxxxxxx
ENDMAP

NAME:     eino_arrival_cavern_d
TAGS:     arrival 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_arrival_cavern_e
TAGS:     arrival 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"""................x....''xxx
xG..x....................'''''xxxx
@.......?..........??.''''''xxxxxx
xG.%x..xxx?.......xxxxx''''xxxxxxx
xxxxxxxxxxxxxxG.Gxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx
ENDMAP

################################################################################
NAME:    arrival_aquarium_a
TAGS:    arrival
ORIENT:  float
KMASK:   w = no_monster_gen
KMONS:   Z = electric eel
KFEAT:   Z = w
KMASK:   Z = no_monster_gen
SHUFFLE: TTV
WEIGHT:  5
KMASK:   T = no_monster_gen
KPROP:   wZ = no_tele_into
MAP
xxxxxxxxxxxxxxxxxxxxxxx
x.....................x
x.............G...G...x
x..nnnnnnnnn..........x
@..nwwwwwwwn.T......T.x
@..nwwwZwwwn....{.....x
@..nwwwwwwwn.T......T.x
x..nnnnnnnnn..........x
x.............G...G...x
x.....................x
xxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   arrival_aquarium_b
TAGS:   arrival
ORIENT: float
KMASK:  w = no_monster_gen
KMONS:  Z = electric eel
KFEAT:  Z = w
KMASK:  Z = no_monster_gen
KPROP:  wZ = no_tele_into
WEIGHT: 5
MAP
xxxxxxxxxxxxxxx
x......{......x
x.G.xxxxxxx.G.x
x.............x
x.nnnnn.nnnnn.x
x.nwwwn.nwwwn.x
x.nwZwn.nwZwn.x
x.nwwwn.nwwwn.x
x.nnnnn.nnnnn.x
x.............x
xx@xxxxxxxxx@xx
ENDMAP

###########################################################
# Eye to eye with the dorky.
NAME:    lordsloth_arrival_two_stooges
ORIENT:  float
TAGS:    arrival no_rotate no_monster_gen
SUBST:   ':l...' , '=l. , l:lllWw , n:nv , v:vvvc
KMONS:   1 = orc / goblin / kobold
KFEAT:   1 = .
KPROP:   1 = no_tele_into
KMASK:   1 = no_item_gen
MAP
.....................
.....................
..vvvvnnnnnnnnnvvvv..
..vlllllll{lllllllv..
..vlllllll.lllllllv..
..vllll''...''llllv..
..vll'.........'llv..
..vl'...........'lv..
..vl.............lv..
..vmm..G.vvv.G..mmv..
..v1m...........m1v..
..vvvvvvv+++vvvvvvv..
...vv...........vv...
 ..vv...........vv..
 ...vvv.......vvv...
   ...vv+++++vv...
    .............
ENDMAP

##############################################
# Angband town! (Shiori)
NAME:    shiori_angband_town
ORIENT:  float
WEIGHT:  1
TAGS:    arrival no_rotate
NSUBST:  { = { / > / .
NSUBST:  a = 3=+ / x
SUBST:   x:xc
MAP
xxxxaxxxxxxxxxxxxxxaxxxxxxxxxxxxxxaxxxxx
x......................................x
x.xxxxx..xxxxx....xxxxx....xxxxx.xxxxx.x
a.xxxxx..xxxx+..{.xxxxx..{.xxxxx.+xxxx.a
x.xxxxx...........xxxxx....xxxx+.xxxxx.x
x.xxxxx..{........xxx+x................x
x.xx+xx......{.............{.....xxxxx.x
x.........xxxx+xx..xx+x...xxxxx..+xxxx.x
a.xxxx+...xxxxxxx..xxxx...xxxxx{.xxxxx.a
x.xxxxx.{.xxxxxxx..xxxx.{.+xxxx..xxxxx.x
x......................................x
xxxxaxxxxxxxxxxxxxxaxxxxxxxxxxxxxxxaxxxx
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_arrival_zoo_common
TAGS:    arrival no_trap_gen
ORIENT:  float
KPROP:   12345 = no_tele_into
: if crawl.one_chance_in(10) then
SHUFFLE: 16
MONS:    centaur / centaur warrior / yaktaur / yaktaur captain
MONS:    rat / river rat / hell rat / quokka
MONS:    imperial myrmidon / servant of whispers / ragged hierophant
MONS:    ribbon worm / tyrant leech / brain worm
MONS:    komodo dragon / iguana / basilisk
MONS:    ettin / frost giant / stone giant / fire giant
: else
SHUFFLE: 1234567
MONS:    iguana / crocodile / snapping turtle / komodo dragon
MONS:    hog / jackal / wolf / hound
MONS:    scorpion / butterfly / killer bee / boulder beetle / redback
MONS:    swamp worm / lindwurm / brain worm
MONS:    swamp drake / hydra / wyvern / rime drake
MONS:    polar bear / black bear
MONS:    black mamba / anaconda / mana viper
: end
KMASK:   ' = no_monster_gen
SUBST:   ' = .
MAP
xxxxxxxx@xxxxxxxx
xxxxxx.G.G.xxxxxx
xxx.G.......G.xxx
x...............x
x.G..ccccccc..G.x
x....c12345c....x
x.G..cnnnnnc..G.x
x...............x
xxx...........''x
xxxxxxxxxxxx''''x
xxxxx{......''xxx
xxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
# There's a large version (with WEIGHT 2) in the huge maps section.
NAME:   minmay_arrival_arboretum_small
WEIGHT: 8
TAGS:   arrival no_monster_gen
ORIENT: float
MONS:   plant / bush w:3, fungus col:any, fungus col:yellow, fungus col:red
MONS:   fungus col:white, fungus col:magenta, fungus col:darkgrey
KPROP:  ' = no_tele_into
SUBST:  ' = DDD111t, 1:1112, 2=1111112, 2:234567
FTILE:  D1234567t = floor_moss
COLOUR: D = green
SUBST:  " = .
KMASK:  D1234567 = no_item_gen
MAP
xxxxxxxxxxxxxxxxx
x'''''''''''''''x
x'''''''''''''''x
x'''''''''''''''x
x'''''''''''''''x
x'''''''''''''''x
x'''''''''''''''x
x'''''''''''''''x
x'''''''''''''''x
xxxxmmmmmmmmmxxxx
"""""""""""""""""
@""mm"""{"""mm""@
"""""""""""""""""
ENDMAP

##############################################################
NAME:    minmay_arrival_cross
TAGS:    arrival no_monster_gen
ORIENT:  float
SUBST:   x : x:10 c:2 v:1
SHUFFLE: ABC
SUBST:   A=+, B=+x, C=+xx
MAP
xxxxxxx+xxxxxxx
xxxxxx...xxxxxx
xxxxxx...xxxxxx
xxxxxx...xxxxxx
xxxx{......xxxx
xxxx.......xxxx
x.............x
A......T......B
x.............x
xxxx.......xxxx
xxxx.......xxxx
xxxxxx...xxxxxx
xxxxxx...xxxxxx
xxxxxx...xxxxxx
xxxxxxxCxxxxxxx
ENDMAP

##############################################################
# Background for the Abyss portals: someone made them, probably with
# an evil mind. The upright citizens and adventurers were not able
# to destroy those portals, so they sealed them instead.
NAME:   minmay_arrival_glassed_features
TAGS:   arrival no_monster_gen
ORIENT: float
KPROP:  'I = no_tele_into
SUBST:  I : G T I:4 A:1
KFEAT:  A = enter_abyss
MAP
mmmmm.....mmmmm
m'''m.....m'''m
m'I'm.....m'I'm
m'''m.....m'''m
mmmmm.....mmmmm
...............
...............
.......{.......
...............
...............
mmmmm.....mmmmm
m'''m.....m'''m
m'I'm.....m'I'm
m'''m.....m'''m
mmmmm.....mmmmm
ENDMAP

##############################################################
# This map provides no space to run around/away, so there is
# either some staircase or a shaft.
NAME:   minmay_arrival_hallway
TAGS:   arrival no_monster_gen
ORIENT: float
SUBST:  x : x:10 c:2 v:1
SUBST:  a : ab
NSUBST: a = 2:> / *:.
NSUBST: b = 1:b / 1:b. / *:.
KFEAT:  b = shaft trap
SUBST:  G : G T t
MAP
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
@..xxx...xxx...xxx...xxx
@..xxx.a.xxx.a.xxx.G.xxx
@..xxx...xxx...xxx...xxx
@....................xxx
@..................{.xxx
@....................xxx
@..xxx...xxx...xxx...xxx
@..xxx.a.xxx.a.xxx.G.xxx
@..xxx...xxx...xxx...xxx
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
# The map can make it hard to get away, so reduced weight.
NAME:    minmay_arrival_floating_metal
TAGS:    arrival no_monster_gen
WEIGHT:  3
ORIENT:  southeast
NSUBST:  V = 2:+ / 2=v+ / *:v
NSUBST:  U = 1:+ / 2=v+ / *:v
SUBST:   ' = .W
NSUBST:  { = 1:{ / *:.
MAP
  '''''''''@'''''x
 ''wwwwwwwwWwwwwwx
''wwwwwvvvv+vwwwwx
'wvvvvwv....vwwwwx
@W+{>vwv.{>.vwwwwx
'wvvvvwv....vwwwwx
'wwwwwwvvvvvvwwwwx
'wwwwwwwwwwwwwvvwx
'wwwvvwwwwwwwwvvwx
'wwwvvwwwwwwwwwwwx
'wwwwwwwwwwwwwwwwx
'wwwwwwwwwVVVVwwwx
'WwwUUUwwwV<>Vwwwx
'WwwU<UwwwVVVVwwwx
'WwwU>Uwwwwwwwwwwx
'wwwU+Uwwwwwwwwwwx
'wwwwWwwwwwwwwwwwx
xxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################
# A simple fortress with double doors.
NAME:    saegor_arrival_fortress
TAGS:    arrival no_monster_gen no_pool_fixup
ORIENT:  float
KPROP:   W = no_tele_into
NSUBST:  { = 1:{ / 1:> / 1:M. / *:.
: decorative_floor(_G, 'M', "flower patch")
MAP
wwwwwwwwwcccccwwwwwwwww
wcccccccwcWtWcwcccccccw
wc{...GccccGccccG...{cw
wc.....+.......+.....cw
wcG...ccccc+ccccc...Gcw
wccc+cccccc+cccccc+cccw
wcWc.cctt.....ttcc.cWcw
wttG.ctW.......Wtc.Gttw
wcWc.cc.........cc.cWcw
wccc.cc...WtW...cc.cccw
@++..++...tGt...++..++@
wccc.cc...WtW...cc.cccw
wcWc.cc.........cc.cWcw
wttG.ctW.......Wtc.Gttw
wcWc.cctt.....ttcc.cWcw
wccc+cccccc+cccccc+cccw
wcG...ccccc+ccccc...Gcw
wc.....+.......+.....cw
wc{...GccccGccccG...{cw
wcccccccwcWtWcwcccccccw
wwwwwwwwwcccccwwwwwwwww
ENDMAP

##############################################################
# A small-room arrival with wooden doors and big ring of trees and rocks.
NAME:    saegor_arrival_under_anarchy
TAGS:    arrival no_monster_gen
ORIENT:  float
NSUBST:  @ = 3:@ / *:X
SUBST:   X = tc w:1
COLOUR:  # = lightgreen / green / yellow:1
NSUBST:  p = 2:+ / *:c
COLOUR:  + : brown
SUBST:   # = .. 1:1
MONS:    plant
KPROP:   w = no_tele_into
NSUBST:  { = 1:{ / *:.
MAP
   xxx @@@ xxx
   XXXX@.@XXXX
  @@XXX.X.XXX@@
xX@...........@Xx
xXX...........XXx
xXX..ccpppcc..XXx
xXX..c#####c..XXx
@X...p##{##p...X@
@.X..p#####p..X.@
@X...p#{#{#p...X@
xXX..c#####c..XXx
xXX..ccpppcc..XXx
xXX...........XXx
xX@...........@Xx
  @@XXX.X.XXX@@
   XXXX@.@XXXX
   xxx @@@ xxx
ENDMAP

##############################################################
# Moated graveyard arrival (oiseaux)
NAME:    moated_graveyard_arrival
TAGS:    arrival no_monster_gen no_pool_fixup no_rotate
ORIENT:  float
FTILE:   t{G = FLOOR_PEBBLE_BROWN
TILE:    ' = FLOOR_PEBBLE_BROWN / FLOOR_PEBBLE_DARKGRAY
TILE:    t = DNGN_TREE_DEAD
TILE:    G = DNGN_GRAVESTONE
COLOUR:  ' = brown / darkgrey
COLOUR:  t = brown
SUBST:   t = t.
: set_feature_name("granite_statue", "adventurer's gravestone")
MAP
    ....'....
  ...'....'..
 ..'....'...
  ..'..'.'..
  ....'''....
  ..www'www...
 ..wwt''''ww...
..ww''G''t'ww..
.ww't'''''''ww.
.w'''''t'''''w.
.w''t'''''G''w.
.ww''G'{''t'ww.
..ww''t''''ww..
 ..ww'''t'ww..
  ..wwwwwww..
   .........
ENDMAP

##############################################################################
#The maze will always contain an exit to the rest of D:1, the player won't be
#forced to D:2.
NAME:    co_arrival_random_square_maze
TAGS:    arrival
ORIENT:  float
NSUBST:  A = 3:+ / x
NSUBST:  B = 1:+ / "
NSUBST:  C = 11:+ / x
NSUBST:  D = 3:+ / "
SUBST:   " = xxxxxxxxxxxxxxxxx+
SUBST:   ! = ....V
SUBST:   x : cxxx
MAP
xxDxxxDxxxDxxxDxx
x...x...x...x...x
D.!.C.!.C.!.C.!.D
x...x...x...x...x
xxCxxxBxxxBxxxCxx
x...x...x...x...x
D.!.B.!.A.!.B.!.D
x...x...x...x...x
xxCxxxAxxxAxxxCxx
x...x...x...x...x
D.!.B.{.A.!.B.!.D
x...x...x...x...x
xxCxxxBxxxBxxxCxx
x...x...x...x...x
D.!.C.!.C.!.C.!.D
x...x...x...x...x
xxDxxxDxxxDxxxDxx
ENDMAP

##############################################################################
NAME:    sevenhm_arrival_forest_fort_small_1
TAGS:    arrival no_monster_gen
ORIENT:  float
WEIGHT:  1
KMONS:   12 = bullfrog / cane toad / yak
KPROP:   1 = no_tele_into
NSUBST:  { = { / T> , z = + / n+
SUBST:   T = TTG
: if crawl.one_chance_in(4) then
SUBST:  " : +, ' : . , - : ccc.
: else
SUBST:  "'- : c
: end
SHUFFLE: 2N / ``
SUBST:   ` = t
MAP
          ccccccccc
       cccctccccctcccc
      cctt1tc...ct2ttcc
    cccttttnc.{.cNttttccc
    ccccccccn...ncccccccc
    WWcc..+.......+..ccWW
   @WWz..."'-----'"...zWW@
    WWcc..+.......+..ccWW
    ccccccccn...ncccccccc
    cccttttNc.{.cnttttccc
      cctt2tc...ct1ttcc
       cccctccccctcccc
          ccccccccc
ENDMAP

##############################################################################
NAME:    sevenhm_arrival_forest_fort_small_2
TAGS:    arrival no_pool_fixup no_monster_gen
ORIENT:  float
WEIGHT:  1
KPROP: 1 = no_tele_into
: if crawl.one_chance_in(4) then
SUBST:   w : x, u : x, r : @
: else
SUBST:   r : x, u : @
NSUBST:  w = @ / w
NSUBST:  z = 1:@ / *:x
SUBST:   w : wwwwwwtt.
: end
NSUBST:  y = { / .....> / .
KMASK:   W = no_monster_gen
MONS:    anaconda / death yak / black mamba / elephant / hydra
MAP
  xxxxxx
xxxccccxxx
xtttyytttx
xt1tyyt1tx
xcnc..cncx
x..c++c..x
r........r
xuwwwwwwux
ENDMAP

##############################################################################
NAME:   sevenhm_arrival_forest_fort_small_3
TAGS:   arrival no_pool_fixup no_monster_gen
ORIENT: float
: if crawl.one_chance_in(4) then
SUBST:  z : @ , Z : + , X = xx. , p : tR , m : c
: else
SUBST:  X : @, Z : c, z : x, p : x, m : .
: end
NSUBST: {OA = { / . , y = + / c+ / c+ , r = + / c+
SUBST:  G = GGTTU, R : Ltt1Ww, L : tttw1
MONS:   plant / bush
MAP
xXxxxxzxxxXx
x..........x
x..cyyycL.Lx
x.Rc...cLGLx
x.Rc.t.cLLLx
xGRc...cxxxx
xxccrrccccx
 pcm..c{{cx
 pccc.+{{cx
  ppcccZccx
   pppxzxx
ENDMAP

##############################################################################
NAME:   sevenhm_arrival_forest_fort_small_4
TAGS:   arrival no_monster_gen no_trap_gen
ORIENT: float
NSUBST: { = { / . , @ = @ / t
SUBST:  X : c@@@ , ' : 'tW
SUBST:  + = ++. , t = tttW1, W : WWW.
MONS:   plant / bush
MAP
 ccccccccc
 ccc{{{ccc
 'tcc.cct'
 WWtc+ctWW
@WWWWWWWWW@
 WWtc+ctWW
 'tcc.cct'
 ccc{{{ccc
 ccccccccc
ENDMAP

##############################################################################
NAME:    sevenhm_arrival_forest_fort_small_5
TAGS:    arrival no_pool_fixup no_monster_gen
ORIENT:  float
NSUBST:   X = x...
: if crawl.one_chance_in(4) then
SUBST:   o = {
SUBST:   X : x, Y : @, p : ., Z: x
: else
NSUBST:  X = @ / @@xx., Z = @ / @@xx.
SUBST:   Y = x .:1 , o : . , p : [
: end
NSUBST:  { = { / . , r = + / +c
: if crawl.one_chance_in(3) then
NSUBST:  R = + / +c
NSUBST:  N = n / *=nnc
SUBST:   z : c
: else
SUBST:   R : c, z : +
: end
NSUBST:  H = G / WWW. , J = G / WWW.  , K = G / WWW.
SUBST:   G = GGGW , N : c
SHUFFLE: ({[
MAP
   xxxxxxxxxxxxx
  xxtttWWWWttttxx
 YxttWWWHHWWWWttxY
xxYWWWWJJJJWWWWWYxxx
xtttWWWWKKWWWWWccccx
xtt....WWWW.cccc.{cx
xt...cNNc...np+..{cx
Z...cc{{cc..ccc..{cx
Z...z...{c..+....{cx
xt..cc...c..cccccccx
xt..tccc+c.....ttttx
xxx..ttc.ctt......tx
  +...tc.cccccc....X
  xxx.tc..r...R..ooX
    xxtc..r...R..o.x
     xxcccccccctttxx
      xxxxxxtttttxx
           xxxxxxx
ENDMAP

##############################################################################
NAME:    sevenhm_arrival_forest_fort_small_6
TAGS:    arrival
ORIENT:  float
KPROP:   zC = no_tele_into
SUBST:   z : l:40 G , C : C:40 lG
KMASK:   l = no_monster_gen
SUBST:   R : +R
SUBST:   r : +ccc
NSUBST:  R = + / ccc+
SUBST:   = : cc+
SUBST:   t : tT.
SUBST:   s : ttc
SUBST:   u : ttGGT
SUBST:   T = tt.
NSUBST:  { = 1:{ / *:.
MAP
     xxxxxxxx
xxxxxxccccccxxxxxx
xcccccc{{{{ccccccx
xc>zll=....=llC>cx
xcccccc.GG.ccccccx
 .ttttc....ctt..
  ....crRRrct.
     .........
ENDMAP

##############################################################################
NAME:   saegor_arrival_miasma
TAGS:   arrival no_monster_gen no_trap_gen
ORIENT: float
COLOUR: W# = lightgreen
NSUBST: W = 6:% / 7:#
KITEM:  % = nothing / w:5 river rat skeleton
MARKER: # = lua:fog_machine { cloud_type = "foul pestilence", pow_min = 5, \
                              pow_max = 10, delay = 30, size = 5, \
                              start_clouds = 5, walk_dist = 3, excl_rad = 0 }
KFEAT:  %# = W
KPROP:  W#% = no_tele_into
MAP
 xxxxxxxxxxx
xxWWWWWWWWWxx
xWWWWWWWWWWWx
xWWvWW#WvWWWx
xWWWWWWWWWWWx
xWWWWWWWWWWWx
xxxmmxxxmmxxx
@+....{....+@
xxxmmxxxmmxxx
xWWWWWWWWWWWx
xWWWWWWWWWWWx
xWWvW#WWvWWWx
xWWWWWWWWWWWx
xxWWWWWWWWWxx
 xxxxxxxxxxx
ENDMAP

##############################################################################
NAME:   lightli_arrival_statuegarden
TAGS:   arrival no_monster_gen
ORIENT: float
MONS:   plant
MAP
@..xxxG+Gxxx..@
..xxwwW.Wwwxx..
.xxwww.1.wwwxx.
xxww1..G..1wwxx
xwwW.......wwwx
xw1.G..{..G.1wx
xwww.......wwwx
xxww1..G..1wwxx
.xxwww.1.wwwxx.
..xxwwW.Wwwxx..
@..xxxG+Gxxx..@
ENDMAP

##############################################################################

NAME:   lightli_arrival_noodles
ORIENT: float
TAGS:   arrival no_monster_gen
MAP
xxxxxxxxxx
xG..{...Gx
xl......lx
xl......lx
xl......lx
xl..GG..lx
xl......lx
xl......lx
xl......lx
xG......Gx
xxxx++xxxx
..........
..xxxxxx..
..........
ENDMAP

##############################################################################

NAME:   lightli_arrival_isolated_outpost
ORIENT: float
TAGS:   arrival no_pool_fixup no_monster_gen
MAP
WWWWWWWW@@WWWWWWWW
W..G..G....G..G..W
W.cccccn++nccccc.W
WGcWWWWW..WWWWWcGW
W.cW..........Wc.W
w.cW.cccccccc.Wc.W
W.cW..........Wc.W
W.cWWWWW..WWWWWc.W
W.cccccn++nccccc.W
W.c............c.W
W.clllll..lllllc.W
W.clllll..lllllc.W
W.c............c.W
W.cvvvvv++vvvvvc.W
WGc.....{......cGW
W.cccccccccccccc.W
W..G..........G..W
WWWWWWWWWWWWWWWWWW
ENDMAP

##############################################################################

NAME:   lightli_arrival_windingriver
ORIENT: float
TAGS:   arrival no_monster_gen
KMONS:  P = plant
KPROP:  q = no_tele_into
SUBST:  p = Pw, q = Pw
MAP
xxxxxxxxxxxxxxxxxxxxxxxx
xqwqqwqqqqqqwqqp.p.....x
xwwwwwwqqqqqwwqpp..w...x
xwwwwwwwqwqwwwwqpwwwwp.x
xwwwwwwwwwwwwwwwwww..w.+
xw.wwwwwwwwwwwwwww.....+
xp..w..wwwww..www..p.t.x
x.xp.px.w.w.xx.w.xxx...x
x{xxxxxx.p.xxxx.xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################

NAME:   lightli_arrival_boilingwater
TAGS:   arrival no_monster_gen
ORIENT: float
MAP
  @@@@@@
WWWllllWWW
WGWWllWWGW
WWGWWWWGWW
lWWb++bWWl
llWm..mWll
llWm{.mWll
lWWbmmbWWl
WWGWWWWGWW
WGWWllWWGW
WWWllllWWW
ENDMAP

##############################################################################

NAME: lightli_arrival_quake
TAGS: no_rotate no_hmirror no_vmirror arrival no_monster_gen
## No, door choice does not affect difficulty. Game is stuck on Nightmare as
## it is.
ORIENT: float
MAP
cc+ccc+ccc+cc
c...c...c...c
c...cw.wc..lc
c...cw.wc.llc
c...cw.wclllc
c...cw.wcll.c
c...cw.wcl..c
c...c...c...c
c...........c
c...........c
c...........c
c...........c
c.....(.....c
c...........c
ccccccccccccc
ENDMAP

NAME: nicolae_arrival_washed_ashore
ORIENT: northwest
TAGS: arrival no_monster_gen no_pool_fixup
NSUBST: b = 4:G, *:b
SUBST: B = bb., S = bWW, Z = WWw
COLOUR: b : brown
FTILE: b{G = floor_sand
TILE:  G = dngn_crumbled_column
:set_feature_name("granite_statue", "broken wreckage")
KFEAT: O = open_sea
KFEAT: b = .
MAP
OOOOOOOOOOOOOOOOOOOOOx
Owwwwwwwwwwwwwwwwxxxxx
OwwwwwwwwZZZZZZZZxx
OwwwwwwZZZSSSSSSZxx
OwwwwwZZSSSSSSSSSxx
OwwwwZZSSSSSbbbbbxx
OwwwZZSSSSbbbbbbxxx
OwwZZSSSSbbbbbbbxxx
OwwZSSSS{bbbbbbbxxx
OwZZSSSbbbbbbbbbBxx
OwZSSSbbbbbbbbbbBxx
OwZSSSbbbbbbbbbbBxx
OwZSSbbbbbbbbbbbBBx
OwZSSbbbbbbbbbbbBBx
OwZSSbbbbbbbbbbbBB@
OwZSSbbbbbbbbbbbBB@
OwZZSbxxxBBBBBBBBB@
OxxxxxxxxxxxBBBBBB@
Oxxxxxxxxxxxxx@@@@@
Ox
Ox
xx
ENDMAP

##############################################################
NAME:    minmay_arrival_shattered_statue
TAGS:    arrival no_monster_gen
ORIENT:  float
ITEM:    stone q:4 / stone q:2 / nothing
ITEM:    stone q:3 w:5 / stone q:1 / nothing
ITEM:    stone q:2 w:5 / stone q:1 w:5 / nothing
ITEM:    stone q:1 w:5 / nothing
ITEM:    stone q:1 w:1 / nothing w:20
MAP
   xxxxxxx
  xx.....xx
  x..h{h..x
  xxhggghxx
   xxx+xxx
 xxxeeeeexxx
xxgfedddefgxx
+hgfedGdefgh+
xxgfedddefgxx
 xxxeeeeexxx
   xxxxxxx
ENDMAP

NAME:   mainiacjoe_arrival_reflecting_pool
TAGS:   arrival no_monster_gen no_pool_fixup
ORIENT: float
SUBST:  G : G:30 T:20 t
SUBST:  D : t:30 T:20 G
SUBST:  w : w:30 W
SUBST:  c : xcvb
MAP
   x@x
   x.x
  ccAcc
ccc...ccc
c...w...c
c.G.w.G.c
c...w...c
c.D.w.D.c
c...w...c
c.G.w.G.c
c...w...c
c.D.w.D.c
c...w...c
c.G.w.G.c
c...w...c
ccc...ccc
  cc{cc
   ccc
ENDMAP

NAME:   kennysheep_arrival_forest
TAGS:   arrival no_monster_gen
ORIENT: south
FTILE:  t'G = floor_grass_dark
COLOUR: ' = green
MAP
        xx+++xx
       xxG...Gxx
xxx   xx''...''xx   xxx
xtxxxxx'''...'''xxxxxtx
xt'''''''G...G'''''''tx
xtt'''''''...'''''''ttx
xtt'''''''...''''''tttx
xtttttt''G.{.G''''ttttx
xtttttttt'...'''ttttttx
xtttttttttt.ttttttttttx
xtttttttttttttttttttttx
ENDMAP

NAME:   nzn_arrival_settlement
TAGS:   arrival no_monster_gen
ORIENT: float
SUBST:  a = -'
SHUFFLE: TG
: if crawl.coinflip() then
SUBST:  de = ', f = t, gh = ., ij = -, kpqr = x, s = @, uy = A
: else
SUBST: dhjsy = x, gfru = -, ep = A, iq = ., k = @
: end
FTILE:  -G = floor_sprouting_ruin
FTILE:  'ATt = floor_lair
FTILE:  .@ = floor_moss
COLOUR: ' = green, - = brown
MAP
               xkx
            xxxxpxxx
   xsx   xxxxqirrqxxx
  xxyxxxxx-x.rur.''txx
 xxhjjii.xAx--i.'aa'tx
 xhhh..iii---..'ataaax
 xddd.....-.....aaaatx
 xdfeggggg-......a.aax
 xded..'..-.---.....xx
xx'g..'t'----T------xx
xt'gg..'--..---.''xAx
xt'.ggg--......'txxx@
xx'...--.......'xx
 xw----....aaaaax
 xxx.{..a.aat''tx
   xx..aaaaa'''ax
    xxaataaaataxx
     xxxxxxxxxxx
ENDMAP

################################################################################
NAME:       psy_arrival_fountain
TAGS:       arrival no_monster_gen no_trap_gen
ORIENT:     float
FTILE:      t.qpP{T = floor_grass_dark
COLOUR:     . = green
SHUFFLE:    pq
SUBST:      p = .P, q : .
KMONS:      P = plant
MAP
xxxxxxxxxxxxx
xtttttttttttx
xt{.........+
xt...tttttqtx
xt....PtPtqtx
xt.t....qtqtx
xt.tt.T...qtx
xt.tP....tttx
xt.ttP.pttttx
xt.ttt.tttttx
xt.pppptttttx
xt.tttttttttx
xx+xxxxxxxxxx
ENDMAP

NAME:       psy_arrival_spokes
TAGS:       arrival no_monster_gen
ORIENT:     float
: if crawl.coinflip() then
SUBST:      q : @, r : x, p : .
:end
CLEAR:      pqr
MAP
     rqx@@@xqr
     rpx...xpr
     rpx...xpr
     rpx...xpr
     rpx...xpr
     rpx...xpr
     rpx...xpr
    rrpx...xprr
   rrpxx.{.xxprr
  rrpxx.....xxprr
 rrpxx..}.G..xxprr
rrpxx.........xxprr
rpxx.....x.....xxpr
qxx.....xxx.....xxq
xx.....xxpxx.....xx
x.....xxprpxx.....x
@@...xxprrrpxx...@@
 @@.xxprr rrpxx.@@
  @xxqrr   rrqxx@
ENDMAP

NAME:       psy_arrival_statuary
TAGS:       arrival no_monster_gen
ORIENT:     float
FTILE:      'p{ = floor_pebble_darkgray
COLOUR:     . = cyan
SHUFFLE:    pqr
SUBST:      p : GGT
SUBST:      s : Gxxxb
MAP
xxxxxxx@xxxxxxx
xxxxxxx+xxxxxxx
xx''..'''..''xx
xx''..'''..''xx
xx..p'...'p..xx
xx..''...''..xx
xx''..'''..''xx
xs''..'{'..''sx
xx''..'''..''xx
xx..''...''..xx
xx..p'...'p..xx
xx''..'''..''xx
xx''..'''..''xx
xxxxxxx+xxxxxxx
xxxxxxx@xxxxxxx
ENDMAP

NAME:       psy_arrival_terrarium
TAGS:       arrival no_monster_gen
ORIENT:     float
FTILE:      Pqr' = floor_grass_dark
KMONS:      p = plant
KMONS:      P = plant / bush
KFEAT:      p = W
KMASK:      WpPqr' = no_item_gen
KPROP:      WpPqr' = no_tele_into
SUBST:      q = P', r = P''
MAP
   xxxx+xxxx
  xxppm.mPPxx
 xxpWWm.mqqPxx
xxpWWWm.mrrqPxx
xpWWWWm.m''rqPx
xpWWWWm.m''rqPx
xmmmmmm.mmmmmmx
+......{......+
xmmmmmm.mmmmmmx
xPqr''m.mWWWWpx
xPqr''m.mWWWWpx
xxPqrrm.mWWWpxx
 xxPqqm.mWWpxx
  xxPPm.mppxx
   xxxx+xxxx
ENDMAP

NAME: beargit_arrival_greenhouse
ORIENT: float
TAGS: arrival no_monster_gen
MONS: withered plant, plant
KMASK: 12YUT = no_item_gen
KPROP: 12YUT = no_tele_into
MAP
......@......
.ncncn+ncncn.
.c111c.c222c.
.n1Y1n.n2U2n.
.c111c.c222c.
.ncncn.ncncn.
@+....{....+@
.ncncn.ncncn.
.c222c.c222c.
.n2T2n.n2U2n.
.c222c.c222c.
.ncncn+ncncn.
......@......
ENDMAP

NAME:   wander_arrival_lonely_grave
TAGS:   arrival no_monster_gen no_item_gen
ORIENT: float
FTILE:  ? = floor_pebble_darkgray:20 / none
TILE:   t = dngn_tree_dead
: vault_granite_statue_setup(_G, "G", "gravestone")
COLOUR: ? = darkgrey:20 / lightgrey, \
        t = brown
MAP
.........
..?????..
.???????.
.??t????.
.???G???.
.???????.
..?????..
...??{...
.....@...
ENDMAP

NAME:   wander_arrival_peaceful_grave
TAGS:   arrival no_monster_gen no_item_gen
ORIENT: float
: vault_granite_statue_setup(_G, "G", "gravestone")
FTILE:  ?tG = floor_grass_dark, ! = floor_moss
COLOUR: ? = green / lightgreen, ! = green:20 / lightgrey
MAP
.........
..!!!!!..
.!!???!!.
.!?t???!.
.!??G??!.
.!?????!.
..!???!..
...!!{...
.....@...
ENDMAP

NAME:   wander_arrival_fairy_ring
TAGS:   arrival no_monster_gen no_item_gen
ORIENT: float
MONS:   plant
KMONS:  2 = fungus / fungus col:brown
SUBST:  . = .:20 t:3 1:3
COLOUR: ? = green / lightgreen
COLOUR: . = green:25 / lightgreen:25 / brown / lightgrey
FTILE:  .1t = floor_moss:25 / floor_pebble_red
FTILE:  ?2{ = floor_grass_dark
MAP
   .........
  ...........
 .............
.....??2??.....
....?2???2?....
...?????????...
...?2?????2?...
...????{????...
...?2?????2?...
...?????????...
....?2???2?t...
.....??2??.....
 .............
  ...........
   .........
ENDMAP

##############################################################
NAME:    heliophobic_arrival_battle_scene
TAGS:    arrival no_monster_gen no_trap_gen no_pool_fixup
ORIENT:  float
NSUBST:  - = 6:u / 12:v / *:.
KPROP:   uv = bloody
KPROP:   . = bloody / w:30 nothing
TILE:    c = wall_hall
FTILE:   .{uvt+ = floor_marble
COLOUR:  .c = white
: local race = you.race()
: local ally = you.monster()
: -- do the roll unconditionally, for seed stability
: local humanoid_ally = util.random_from({"dwarf", "human"})
: -- The corpseless. Before the game starts, you.monster() is "program bug".
: if (not crawl.game_started()) or race == "Poltergeist"
:     or race == "Mummy" or race == "Revenant" or race == "Octopode"
:     or race == "Gargoyle" or race == "Vine Stalker"
:     or race == "Djinni" or race == "Yak" or race == "Formicid" then
:   ally = humanoid_ally
: end
:
: local axis = util.random_from({"goblin", "gnoll", "kobold", "orc"})
: _G.kitem('u = ' .. ally .. " skeleton")
: _G.kitem('v = ' .. axis .. " skeleton")
MAP
cc+ccc+cc
cc-ccc-cc
c--->---c
c---c---c
c---c---c
c---c---c
c-------c
c---{---c
c-------c
ccccccccc
ENDMAP

##############################################################
NAME:    heliophobic_arrival_enchanted_forest
TAGS:    arrival no_monster_gen no_trap_gen
ORIENT:  float
SHUFFLE: TAG
FTILE:   .{TAGtRS = floor_moss
COLOUR:  .{t = green
MARKER:  S = lua:fog_machine{ \
             pow_max = 30, delay_min = 20, delay_max = 200, \
             size = 9, start_clouds = 5, \
             cloud_type = "magical condensation"}
MAP
     .tt.t
  Tt.t.t.tt.S
 S.tt.A.At.t.t
 tt.tA...A.tt.
..t.A..G..Att.t
tt.A.......A.tt
.tt..G.{.G....@
t.tA.......At.t
t.t.A..G..A.t.t
 tt.tA...At.tt
 ..tt.A.At.t.t
  .S.tt..t.TS
     t.tt.
ENDMAP

##############################################################
NAME:   heliophobic_arrival_ceremonial_halls
TAGS:   arrival no_monster_gen no_trap_gen transparent
ORIENT: float
TILE:   c = wall_marble
FTILE:  '+{cG = floor_marble
COLOUR: 'cG = white
SUBST:  ' = .
MAP
 ........@........
 .....ccc+ccc.....
 .....cG'''Gc.....
 ..c..cc'c'cc..c..
 .ccc.cG'c'Gc.ccc.
 .ccc.cc'c'cc.ccc.
 ..c..cG'c'Gc..c..
 .....cc'c'cc.....
 ccccccG'''Gcccccc
 cGcGcGc'''cGcGcGc
 c'''''''''''''''c
@+'ccc'''{'''ccc'+@
 c'''''''''''''''c
 cGcGcGc'''cGcGcGc
 ccccccG'''Gcccccc
 .....cc'c'cc.....
 ..c..cG'c'Gc..c..
 .ccc.cc'c'cc.ccc.
 .ccc.cG'c'Gc.ccc.
 ..c..cc'c'cc..c..
 .....cG'''Gc.....
 .....ccc+ccc.....
 ........@........
ENDMAP

##############################################################
NAME:    heliophobic_arrival_henge
TAGS:    arrival no_monster_gen no_trap_gen
ORIENT:  float
FTILE:  .t{A = floor_moss
COLOUR: .t = green
SUBST:   ? = >:30 T V:5
MAP
    .......
   ..tt.tt..
  .tttt.tttt.
?.ttttA.Atttt.?
..ttA.....Att..
.ttA..ttt..Att.
.ttA...{...Att.
.ttA..ttt..Att.
..ttA.....Att..
?.ttt.AAAt.tt.?
  .t.ttttt...
   ..ttttt..
    .......
ENDMAP

##############################################################
NAME:    heliophobic_arrival_glass_houses
TAGS:    arrival no_monster_gen no_pool_fixup no_trap_gen
ORIENT:  float
SHUFFLE: bnv
SUBST:   ? = >:20 A G T V:5
MAP
wwwwwwwwwwwwwww
wbbbbwwwwwbbbbw
wb{.bbbbbbb.?bw
wb..+.....+..bw
wbb+bbb+bbb+bbw
wwb.b.....b.bww
wwb.b..b..b.bww
wwb.b..b..b.bww
@.+.+.GbG.+.+.@
wwb.b..b..b.bww
wwb.b..b..b.bww
wwb.b.....b.bww
wbb+bbb+bbb+bbw
wb..+.....+..bw
wb?.bbbbbbb.?bw
wbbbbwwwwwbbbbw
wwwwwwwwwwwwwww
ENDMAP

##############################################################
NAME:    noname_arrival_rooms_in_the_neighbourhood
TAGS:    arrival no_monster_gen
RTILE:   x = wall_hall
SHUFFLE: {([
FTILE:   .([{ = floor_hall
SUBST:   [=., (=.
ORIENT:  float
MAP
 xxxxx             xxxxx
xx...x+           +x...xx
x.....x           x.....x
x..(..x     V     x..[..x
x.....x           x.....x
xx...x+   +xxx+   +x...xx
 xxxxx   xx...xx   xxxxx
         x.....x
         x..{..x
         x.....x
         xx...xx
          xxxxx
ENDMAP

##############################################################
NAME:     amcnicky_arrival_blooded_trapdoor
TAGS:     arrival no_monster_gen no_pool_fixup no_trap_gen
ORIENT:   float
SHUFFLE:  pqr
SUBST:    p : x, q : x, r:@, s : xxxtw
NSUBST:   " = 1:" / * = ".., ' = 1:" / * = "..
KPROP:    " = bloody
MAP
   xpppx
   x'''x
xxxx">'xxxxxqqq
x...""".......q
x.{........ss.q
x.............x
xxxxxxxxrrrrxxx
ENDMAP

NAME:     amcnicky_arrival_gap_in_the_tavern_cellar
TAGS:     arrival no_monster_gen no_pool_fixup no_trap_gen
ORIENT:   float
SHUFFLE:  su
SUBST:    c=cx, -=-.
KPROP:    c-V = bloody
SUBST:    c:x
SUBST:    r:xxxxvvWl, s:@, u:x
MAP
    xxxxxxx
    xT...Tx
    x..{..x
    x.....x
    x..>..x
    xT...Vxc
    xxxxxx-cc
    xxxxxcc-c
   s....cc-cc
   s.rr.-c-c
   s.rr.--cc
   s....ccc
    uuuu
ENDMAP

NAME:     amcnicky_arrival_wind_blow
TAGS:     arrival no_monster_gen no_trap_gen
ORIENT:   float
NSUBST:   _ = 4:p / 4=p:2 . / *=.
KITEM:    p = dwarf skeleton
MAP
      xxxxx
      x__{xxx
     xx.__..x
     x_.....xx  xxxx
    xx_...__.x xx..@
xxxxx._.xx...xxx__.@
x.___._.xxx......xx@
x....__xx xx._.__xx@
x.xx___x   x..._...@
x.xx._.xx  xxxxxx..@
x.._._..xx      xxxx
x____.._.x
xxxxxxx..x
      x@@x
ENDMAP

NAME:     amcnicky_arrival_abandoned_market
TAGS:     arrival no_monster_gen no_trap_gen
ORIENT:   float
NSUBST:   _ = 4:q / 4=q:2 . / *=.
KITEM:    q = dwarf skeleton
NSUBST:   - = 6=p / 6=p. / 6=px / *=.x
SUBST:    r = x.
KFEAT:    p = abandoned_shop
MAP
xxxxxxxxxxxxxxxxxxxxx
xxxxx--xx--xx--xx---x
xxxxx....._......_.-x
x{_._.._.._.._._...xx
xx_.._..........._.xx
xxx.....__...._....xx
xxxxx......_.......-x
xxxxxxxppprrrrrr.._-x
      xxxxrr_--.._.xx
          rr.--_...xx
          rr..__.._-x
           x.xx..._.@
           x_xx_._..@
           x__......@
           x....___-x
           x--xxx--xx
           xxxxxxxxxx
ENDMAP

##############################################################
NAME:    dreamdust_arrival_beginning_and_end
TAGS:    arrival no_monster_gen transparent
TAGS:    no_rotate no_vmirror
ORIENT:  float
WEIGHT:  5
COLOUR:  x = lightmagenta
TILE:    x = wall_zot_lightmagenta
FTILE:   .xgz{ = floor_rough_magenta
KFEAT:   z = granite_statue
TILE:    z = dngn_statue_orb
KFEAT:   g = granite_statue
TILE:    g = dngn_statue_orb_guardian
MAP
 xxxxxxxxxxx
xxx.......xxx
xx.........xx
x.....g.....x
@..g..z..g..@
x...........x
xx....{....xx
xxx.......xxx
 xxxxxxxxxxx
ENDMAP

NAME:    dreamdust_arrival_sigmund_warning
TAGS:    arrival no_monster_gen transparent
ORIENT:  float
WEIGHT:  5
TILE:    G = dngn_statue_sigmund
: set_feature_name("granite_statue", "a statue of a dreadful foe")
: kitem("? = " .. vault_species_skeletons(_G, "all"))
MAP
   vvv
vvvv>vvvv
vY.???.Yv
v..?G?..v
v..???..v
v.l...l.v
v.l.{.l.v
v.l...l.v
v.l...l.v
v.l...l.v
v.......v
vvv...vvv
ENDMAP

##############################################################################
# Most transpoter vaults are dangerous, especially for new players. Here's a
# no-stress scenario in which they can try out transporters.
NAME:    spicycebolla_arrival_transporter_tutorial
TAGS:    arrival no_monster_gen no_pool_fixup
ORIENT:  float
SUBST:   a = wW, G : GATUVYt
SHUFFLE: -!
SUBST:   - : !:40 W
COLOUR:  . : blue
FTILE:   .GATUVYt>{EFJK : floor_pebble_blue
MARKER:  E = lua:transp_loc("tut_entry")
MARKER:  F = lua:transp_dest_loc("tut_entry")
MARKER:  J = lua:transp_loc("tut_hatch")
MARKER:  K = lua:transp_dest_loc("tut_hatch")
MAP
 aaaa@aaa
awww!wwwwa
www!wwwwwwa
wwaW!Wawwww
waW...Wawwa
wW.E>K.Wwwwa
waW.G.Wawwww
wwaWWWawwwwa
awwwwwwwwwwwa
 awwwwaWWWaww
 wwwwaW.G.Waw
 awwwW.F{J.Ww
  awwaW...Waw
  wwwwaW-Waww
  awwwwww-www
   awwww-wwwa
    aaa@aaaa
ENDMAP

##############################################################
NAME:    spicycebolla_arrival_xxxplode
TAGS:    arrival transparent
ORIENT:  float
SUBST:   X : tXXXX
SHUFFLE: xX
SUBST:   X:xX, X:.mw, x:xxvc, t:tttgw
TILE:    t = dngn_tree_dead
COLOUR:  t = darkgrey / brown
: set_feature_name("tree", "dead tree")
MAP
    X           X
   xxXxx  X  xxXxx
  @xxxXxx . xxXxxx@
 xx.xxxXx . xXxxx.xx
Xxxx.xxXxx.xxXxx.xxxX
 Xxxx.xxXx.xXxx.xxxX
 xXxxx.xXx.xXx.xxxXx
 xxXXxx.xx.xx.xxXXxx
  xxxXXx.X.X.xXXxxx
    xxxxX.X.Xxxxx
 X.......X{X.......X
    xxxxX.X.Xxxxx
  xxxXXx.X.X.xXXxxx
 xxXXxx.xx.xx.xxXXxx
 xXxxx.xXx.xXx.xxxXx
 Xxxx.xxXx.xXxx.xxxX
Xxxx.xxXxx.xxXxx.xxxX
 xx.xxxXx . xXxxx.xx
  @xxxXxx . xxXxxx@
   xxXxx  X  xxXxx
    X           X
ENDMAP

##############################################################
# Another transporter tutorial. This teaches that using a transporter can be
# risky: the 'porter takes you from pretty safe terrain to a wide open space.
NAME:    spicycebolla_arrival_risky_transporter
TAGS:    arrival transparent
ORIENT:  float
# the actual transporters
SHUFFLE: JKF
MARKER:  E = lua:transp_loc("tut_risky")
MARKER:  F = lua:transp_dest_loc("tut_risky")
# minor cosmetic variations
SHUFFLE: NO
SUBST:   N:x, O:.
SUBST:   x : xxxxxxccvb
MAP
 @@@.N.OO@
@...NNOO..
@...NxO...
@..FxxK...
.xxxmxmxxx
xxxxxmmxx.
...JmmEx.x
...OxNx{x@
..OONx.x.x
@OO.x.x@x
ENDMAP

NAME:   spicycebolla_arrival_clurvy
TAGS:   arrival transparent
ORIENT: float
MONS:   plant / bush w:2, fungus, withered plant, butterfly
SUBST:  ' = .p
SUBST:  t = t:30 1:15 .:5
SUBST:  p = 1:30 .:10
: if crawl.one_chance_in(5) then
NSUBST: . = 3:A / .
SUBST:  t = ttG
TILE:   G = dngn_crumbled_column
COLOUR: G = white
: set_feature_name("granite_statue", "broken pillar")
: end
: if crawl.one_chance_in(5) then
NSUBST: . = 1:J / 3:K / 1:V / .
: end
: if crawl.one_chance_in(5) then
NSUBST: 1 = 4:4 / 1, . = 5:U / .
: end
: if crawl.one_chance_in(5) then
COLOUR: t = yellow w:5 / red w:5 / brown
SUBST:  1 = 1222
: elseif crawl.one_chance_in(5) then
SUBST:  1 = 3, U = VVVJK
KFEAT:  t = petrified_tree
: end
KFEAT:  J = abandoned_shop / shaft trap / granite_statue
KFEAT:  K = web trap
KITEM:  K = skeleton / corpse / nothing
MAP
   ..p.. ..p..
 ...ptp...ptp..
...tttp'.'ptpp..
..pttp...pt'...
..'ptp..'.p.'p..
 ...p......{ptp.
  ....'...ppttp.
    .'...pttttp.
     ...'ppttp..
      ...'p'pp..
       ...ptp..
        ...pp..
         ..p..
         ....
ENDMAP

NAME:    spicycebolla_arrival_ecumenical
TAGS:    arrival uniq_ecumenical_altar transparent no_descent
KMASK:   -_Tt)n = opaque
ORIENT:  float
KFEAT:   _ = altar_ecumenical
RTILE:   c = wall_hall
FTILE:   -.ptT{)n+ = floor_hall
SHUFFLE: ptT / pTt / tGG / tGT
KMONS:   p = bush
MAP
  ccccccccc
 ccnnnTnnncc
 cnt-T_T-tnc
 cn-------nc
 cnt--)--tnc
 cnnnnnnnnnc
 cn...{...nc
 cn.......nc
 cnT.p.p.Tnc
 ccn.n.n.ncc
''cc+c+c+cc''
'''''''''''''
ENDMAP

# The other upstair outside of the first room is so Delvers can still find
# an exit even if they haven't found the wall of mimics.
NAME:   nicolae_arrival_escape_room
TAGS:   arrival no_monster_gen no_trap_gen no_item_gen
ORIENT: float
WEIGHT: 1
KFEAT:  M = c mimic
SUBST:  G : GT, [ : [(
MAP
cccccccc@@@cc
cG...GcG...Gc
c.....M.....c
c{...>M..[..c
c.....M.....c
cG...GcG...Gc
cccccccc@@@cc
ENDMAP

NAME: orjb1_lava_funnel
TAGS: arrival transparent no_monster_gen no_trap_gen
ORIENT: float
SUBST: G : GTt123
MONS: fungus , plant , bush
MAP
.................
.................
.....l.....l.....
....Gl.....lG....
.....l.....l.....
.....l..{..l.....
....Gl.....lG....
.....l.....l.....
......l...l......
.....Gl...lG.....
......l...l......
......l...l......
.....Gl...lG.....
......l...l......
.......l.l.......
......Gl.lG......
.......l.l.......
.......l.l.......
......Gl.lG......
.......l.l.......
.................
ENDMAP

##############################################################################
NAME:    roadster_arrival_rocket_small
TAGS:    arrival no_monster_gen no_trap_gen transparent
ORIENT:  float
MONS:    plant, bush
SUBST:   t : 12tt
MARKER:  F = lua:fog_machine{ cloud_type = "black smoke", \
             pow_min = 24, pow_max = 32, delay_min = 280, delay_max = 320, \
             size_min = 1, size_max = 2, start_clouds = 2, size_buildup_amnt = 2 }
: single_cloud(_G, "l", "flame", false)
MAP
  t@.v.@t
  t.vvv.t
  tFm{mFt
  tvv.vvt
  vv...vv
  v.....v
  v.....v
  v.....v
  v.....v
  v.....v
  v..F..v
  v.....v
vvv+v+v+vvv
 ...lFl...
  @.....@
ENDMAP

NAME:    roadster_arrival_rocket_large
TAGS:    arrival no_monster_gen no_trap_gen transparent
ORIENT:  float
MONS:    plant, bush
SUBST:   t : 12tt
MARKER:  F = lua:fog_machine{ cloud_type = "black smoke", \
             pow_min = 24, pow_max = 32, delay_min = 280, delay_max = 320, \
             size_min = 1, size_max = 2, start_clouds = 2, size_buildup_amnt = 2 }
: single_cloud(_G, "l", "flame", false)
MAP
      v
   t@vvv@t
   t.m{m.t
   tvv.vvt
  Fvv...vvF
  vv.....vv
  v.......v
  v.......v
  v.......v
  v.......v
  v.......v
  v...F...v
 vv.......vv
vvv+v+v+v+vvv
...Fl.l.lF...
 @.........@
ENDMAP

##############################################################################

NAME:   mainiacjoe_arrival_oval_in_oval
TAGS:   arrival transparent
TAGS:   no_monster_gen no_pool_fixup
ORIENT: float
SUBST:  m : m#lw
KFEAT:  # = iron_grate
SUBST:  T : TGbt123V
MONS:   fungus, plant, bush
MAP
     .......
   ...........
 .....mmmmm.....
....mmm...mmm....
..mmm...T...mmm..
..m...T...T...m..
....T...{...T....
..m...T...T...m..
..mmm...T...mmm..
....mmm...mmm....
 .....mmmmm.....
   ...........
     .......
ENDMAP

NAME:   hellmonk_arrival_library
TAGS:   arrival transparent
ORIENT: float
SHUFFLE: DE, FH
SUBST:  E = ccc., H = ccc., G:Gc
TILE:   c = wall_studio
FTILE:  .+G>{ = floor_studio
MAP
cccccccccccc
c{.........c
c.ccccccccDc
c.c........c
c.c.>.cccccc
c.c........c
c.c.c.ccccHc
c.c.c.c....c
c.c.c.c.G.cc
c.c.c.c....+@
c.E.c.F.c..+@
ccccccccc++c
         @@
ENDMAP

NAME:    angelslayer_arrival_pockets_within_ring
TAGS:    arrival no_monster_gen transparent
ORIENT:  float
SHUFFLE: {([
SHUFFLE: DEFH
SUBST:   [H = ., ( = >, DEF = x, T = TV
MAP
      xxxxxxx
    DxD.....ExE
   DD.........EE
  DD...........EE
 DD.............EE
 x...xxxx........x
xD...x[.x........Ex
x....x..x.........x
x....xxx..........x
x........T........x
x....xxx...xxx....x
x....x..x.x..x....x
xF...x{.x.x.(x...Hx
 x...xxxx.xxxx...x
 FF.............HH
  FF...........HH
   FF.........HH
    FxF.....HxH
      xxxxxxx
ENDMAP

NAME:   ms813_arrival_eye
TAGS:   arrival no_monster_gen
ORIENT: float
FTILE:  ' : floor_crypt / floor_depthstone
FTILE:  " : floor_frozen / floor_demonic_green / \
            floor_demonic_red / floor_demonic_blue
FTILE:  . : floor_demonic_white / floor_salt
MAP
      xxxxxxx
    xxx.....xxx
  xxx.........xxx
  x...."""""....x
xxx...""'''""...xxx
@+..."""'{'"""...+@
xxx...""'''""...xxx
  x...."""""....x
  xxx.........xxx
    xxx.....xxx
      xxxxxxx
ENDMAP
