##############################################################################
# mini_features.des: This is the place for minivaults without monsters.
#           So all vaults in this file should have neither ORIENT nor MONS or
#           KMONS lines. Exceptions are made for vaults which generally have
#           no monsters or are supposed to look as if they had no monsters.
#
#           Vaults with ORIENT lines are stored in float.des or large.des.
#           Minivaults with monsters go to mini_monsters.des.
#           Maps for the Vaults branch, including Vaults:$ are in vaults.des.
#
# <<1>> Flavour vaults           (no items, no monsters)
# <<2>> Inaccessible items
# <<3>> Supply closet vaults     (vaults with items and no risk).
# <<4>> Fog generator vaults
# <<5>> Classical minivaults     (don't touch)
#
# Sometimes, a vault will fit in two categories (for examples, it can have both
# hidden and revealed items). Choose at your own discretion.
#
# For serial vaults, read dat/des/serial/serial_guide.txt.
############################################################################

: crawl_require('dlua/vault.lua')

default-depth: D, Depths, Elf, Crypt

{{
function serial_glass_setup(e, extra)
  e.tags('no_wall_fixup')
  if extra then
    e.tags('extra')
    e.tags('decor')
  end
  if dgn.persist.serial_glass_tile then
    e.tile('m = ' .. dgn.persist.serial_glass_tile)
  end
  if you.in_branch("Dis") then
    e.subst("m = b")
  end
end
}}

############################################################################
#
# <<1>> Flavour vaults
#       no items, no monsters. Statues, glass, fountains, water...
#
############################################################################

NAME:   glass_columns_a
TAGS:   serial_glass transparent allow_dup
DEPTH:  D, Depths, Elf, Crypt, Dis
WEIGHT: 5
: serial_glass_setup(_G, true)
MAP
.....
.m.m.
.....
.m.m.
.....
ENDMAP

NAME:   glass_columns_b
TAGS:   serial_glass transparent allow_dup
DEPTH:  D, Depths, Elf, Crypt, Dis
WEIGHT: 3
: serial_glass_setup(_G, true)
MAP
.......
.m.m.m.
.......
.m.m.m.
.......
.m.m.m.
.......
ENDMAP

NAME:   glass_columns_c
TAGS:   serial_glass transparent vaults_room allow_dup
DEPTH:  D, Depths, Elf, Vaults, Crypt, Dis
WEIGHT: 2
: serial_glass_setup(_G, true)
MAP
.........
.m.m.m.m.
.........
.m.m.m.m.
.........
.m.m.m.m.
.........
.m.m.m.m.
.........
ENDMAP

NAME: columned_hall_lemuel
TAGS: transparent extra ruin_lair decor
DEPTH: D, Depths, Lair, Elf, Crypt
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@...........................@
..x..x..x..x..x..x..x..x..x..
@...........................@
..x..x..x..x..x..x..x..x..x..
@...........................@
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

# Small statue alley (Eino)
NAME:   small_statue_alley_a
TAGS:   uniq_statue_alley transparent extra decor
DEPTH:  D:10-
WEIGHT: 7
SUBST:  F = G:99 F:1
KMONS:  F = orange crystal statue / obsidian statue / ice statue
MAP
  xxxxxxx
xxxcccccx
...G...G@
.G.F.G.G.
.G.G.F.G.
@G...G...
xcccccxxx
xxxxxxx
ENDMAP

NAME:   small_statue_alley_b
TAGS:   uniq_statue_alley transparent extra decor
DEPTH:  D:3-10
WEIGHT: 2
MAP
  xxxxxxx
xxxcccccx
...G...G@
.G.x.G.x.
.x.G.x.G.
@G...G...
xcccccxxx
xxxxxxx
ENDMAP

NAME:   small_statue_alley_c
TAGS:   uniq_statue_alley transparent extra
DEPTH:  Orc
WEIGHT: 1
MAP
  xxxxxxx
xxxcccccx
...I...I@
.I.I.I.I.
.I.I.I.I.
@I...I...
xcccccxxx
xxxxxxx
ENDMAP

# Small intersection with statues (Eino)
NAME:    small_statue_intersection
TAGS:    transparent allow_dup no_hmirror no_vmirror extra
TAGS:    ruin_lair ruin_abyss decor
DEPTH:   D:2-, Depths:2-, !Depths:$, Elf, Crypt, Lair, Abyss
MAP
xx.xx
xG.Gx
.....
xG.Gx
xx.xx
ENDMAP

NAME:  fungi_pond_lemuel
TAGS:  transparent allow_dup extra
DEPTH: D:8-, Lair
MONS:  fungus
SUBST: 1 = 1.
SUBST: ? : w..
SUBST: ! : ww.
MAP
..1...?.....
....1???1...
..1...??ww1.
....1wwwwww.
.11wwwwwwww.
..www!!wwww.
..ww!!www1..
..1ww!ww11..
1..1w!!w1...
....!!1.....
.1...1!.1...
...........1
ENDMAP

# This is an ancient vault.
NAME:  solitary_fountain
DEPTH: D, Depths, Elf
TAGS:  transparent allow_dup extra
SUBST: ?=TUV
KMASK: TU = no_monster_gen
MAP
.....
.....
..?..
.....
.....
ENDMAP

# Another very classical vault.
NAME:  fountainhead
TAGS:  transparent allow_dup extra decor
DEPTH: D, Depths, Elf, Crypt
SUBST: ? = TUV
MAP
..............
..xxxw..wxxx..
.x...xwwx...x.
.x.?.xwwx.?.x.
.x...xwwx...x.
..xxxwwwwxxx..
....wwwwww....
....wwwwww....
..xxxwwwwxxx..
.x...xwwx...x.
.x.?.xwwx.?.x.
.x...xwwx...x.
..xxxw..wxxx..
..............
ENDMAP

NAME:  patterned_corridor
TAGS:  transparent ruin_abyss ruin_lair decor lairdec extra
DEPTH: D, Depths, Elf, Lair, Abyss
SUBST: x : xxccv
: if you.in_branch("Lair") then
FTILE: . = floor_sprouting_stone / floor_lair w:5
: end
MAP
xxxxxxxxxxxxxxxxxxxxxxx
x.......x.......x.....@
x.xxxxx.x.xxxxx.x.xxxxx
x.x...x.x.x...x.x.x...x
x...x.x.x...x.x.x...x.x
xxxxx.x.xxxxx.x.xxxxx.x
@.....x.......x.......x
xxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   corexii_leaking_fountain
DEPTH:  D, Depths, Elf, Crypt
TAGS:   transparent no_monster_gen no_item_gen extra decor
NSUBST: W = 5:W / *:.
MAP
.....
.WWW.
.WTW.
.WWW.
.....
ENDMAP

# A random pit of shallow or deep water or lava,
# with a chance of a secret bypass, by Core Xii.
NAME:   corexii_corridor_pit
DEPTH:  D, Depths
TAGS:   no_pool_fixup no_monster_gen no_item_gen transparent
TAGS:   allow_dup extra decor
: if crawl.random2(5) == 0 then
:   subst("l = W")
:   subst("= = x")
:   subst("# = x")
: else
:   if crawl.random2(3) == 0 then
:     subst("l = w")
:     subst("= = +")
:   end
:   if crawl.random2(50) == 0 then
:     subst("= = +")
:     subst("# = .")
:   elseif crawl.random2(5) == 0 then
:     subst("# = .")
:     subst("= = +")
:   else
:     subst("= = x")
:     subst("# = x")
:   end
: end
MAP
xxxxxxx
x#####x
x=xxx=x
@.lll.@
xxxxxxx
ENDMAP

NAME:  nrook_mini_backslash
# "transparent" for connectivity checks, so neither side is isolated.
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf
MAP
..xxx....
....xx....
 ....xx....
  ....xx....
   ....xx....
    ....xx....
     ....xxx...
ENDMAP

NAME:  nrook_mini_vaults
TAGS:  transparent extra
DEPTH: D, Depths
: decorative_floor(_G, 'M', "mop and bucket")
MAP
.........
.vvvvvvv.
.vM....v.
.v.....v.
.v.....+.
.v.....v.
.vvvvvvv.
.........
ENDMAP

NAME:  nrook_uturn
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf
MAP
 xxxxxxxxxxxxxxxx
 x..............xx
@+...............xx
 x................xx
 xxxxxxxxxxxxxx....x
 xxxxxxxxxxxxxxx...x
 xxxxxxxxxxxxxx....x
 x................xx
@+...............xx
 x..............xx
 xxxxxxxxxxxxxxxx
ENDMAP

NAME:   nrook_pool_corridor
TAGS:   transparent extra decor
DEPTH:  D:5-, Depths
NSUBST: M = 1:M / *:.
: decorative_floor(_G, 'M', "mop and bucket")
MAP
 cccccccccccccccc
 cM............Mc
 c.wwwwwwwwwwww.c
@+.wwwwwwwwwwww.+@
 c.wwwwwwwwwwww.c
 c.wwwwwwwwwwww.c
 cM............Mc
 cccccccccccccccc
ENDMAP

NAME:   minmay_crystal_room
TAGS:   extra decor transparent
DEPTH:  D, Depths, Elf
NSUBST: ? = 1:b / 1:@ / *:?
SUBST:  ? = bbbbb@
MAP
b?b?b?b?b
?.......?
b.......b
?.......?
b.......b
?.......?
b?b?b?b?b
ENDMAP

NAME:    minmay_hedge_maze
TAGS:    extra decor lairdec transparent luniq_lairdec_plantage
DEPTH:   D, Depths, Lair
WEIGHT:  5 (Lair), 10
MONS:    bush
SHUFFLE: ABC
SUBST:   A=. , BC=1
MAP
1111111@111
@...C.1.B.1
1A1.1.1.1.1
1.1.1.B.A.@
1.1B1.1.1C1
1.....A...1
1C1.111A1C1
1.A.B.C.1.1
1.1B1.1.1.1
1...A.B...1
1.1A1C111B1
1.C.......1
1111111@111
ENDMAP

NAME:  minmay_strange_pillars
TAGS:  serial_glass_rare transparent
DEPTH: D, Depths, Elf, Crypt, Dis
: serial_glass_setup(_G, true)
MAP
 ...   ...
..m.. ..m..
.mbm...mbm.
..m.. ..m..
 ...   ...
  .     .
 ...   ...
..m.. ..m..
.mbm...mbm.
..m.. ..m..
 ...   ...
ENDMAP

NAME:  minmay_door_square
TAGS:  transparent extra decor
DEPTH: D, Depths
MAP
.................
.xxxxxxx+xxxxxxx.
.xxxxxxx.xxxxxxx.
.xxxxxxx.xxxxxxx.
.xxx...+.+...xxx.
.xxx.xxx.xxx.xxx.
.xxx.xxx.xxx.xxx.
.xxx+xxx.xxx+xxx.
.+.............+.
.xxx+xxx.xxx+xxx.
.xxx.xxx.xxx.xxx.
.xxx.xxx.xxx.xxx.
.xxx...+.+...xxx.
.xxxxxxx.xxxxxxx.
.xxxxxxx.xxxxxxx.
.xxxxxxx+xxxxxxx.
.................
ENDMAP

NAME:  minmay_liquid_box
TAGS:  extra no_monster_gen
DEPTH: D, Depths
SUBST: w : wWWl
MAP
xx+xx
xwwwx
+www+
xwwwx
xx+xx
ENDMAP

NAME:  minmay_fountain_box
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf
KMASK: TU = no_monster_gen
SUBST: x : xxxxccbv
MAP
xxxx+xxxx
x.......x
x.T...T.x
x.......x
+...U...+
x.......x
x.T...T.x
x.......x
xxxx+xxxx
ENDMAP

NAME:  minmay_tree_intersection
TAGS:  transparent extra decor
DEPTH: D, Depths
FTILE: .t = floor_sprouting_stone
FTILE: @ = floor_moss
MAP
xxx@xxx
xxt.txx
xtt.ttx
@.....@
xtt.ttx
xxt.txx
xxx@xxx
ENDMAP

NAME:  minmay_misc_feat_pillars
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf, Crypt
: if you.absdepth() > 7 then
SUBST: x : xxxxcvbmG
: else
SUBST: x : xxxxccmm
: end
MAP
.............
.x.x.x.x.x.x.
.............
 .x.x.x.x.x.
 ...........
ENDMAP

NAME:  minmay_misc_feat_square
TAGS:  transparent extra
DEPTH: D, Depths
SUBST: x = x'
KPROP: x' = no_tele_into
MAP
.......
.xxxxx.
.xxxxx.
.xxxxx.
.xxxxx.
.xxxxx.
.......
ENDMAP

NAME:  minmay_misc_feat_plants
TAGS:  transparent extra decor
MONS:  plant, bush, fungus
DEPTH: D, Depths
SUBST: x : xxxxcvbmGt123
MAP
    ....
  ........
 ...x..x...
 ..........
..x......x..
............
............
..x......x..
 ..........
 ...x..x...
  ........
    ....
ENDMAP

NAME:  minmay_misc_feat_rows
TAGS:  transparent extra
DEPTH: D, Depths, Elf, Crypt
MAP
.......
.xxxxx.
.......
.xxxxx.
.......
.xxxxx.
.......
.xxxxx.
.......
.xxxxx.
.......
ENDMAP

NAME:  minmay_misc_feat_diagonals
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf
SUBST: x : xmb
MAP
...............
.x..x..x..x..x.
..x..x..x..x...
...x..x..x..x..
.x..x..x..x..x.
..x..x..x..x...
 ............
ENDMAP

NAME:  minmay_misc_feat_doors
TAGS:  transparent extra decor
DEPTH: D, Depths
MAP
x.x.x.x.x
.........
x.xx+xx.x
..x...x..
x.+...+.x
..x...x..
x.xx+xx.x
.........
x.x.x.x.x
ENDMAP

NAME:  minmay_misc_feat_encased
TAGS:  transparent extra decor
DEPTH: D, Depths
SUBST: c : bcvm
SUBST: @ : +@
MAP
xxxxx@x
@.....x
x.ccc.x
x.cbc.x
x.ccc.x
x.....@
x@xxxxx
ENDMAP

NAME:  minmay_misc_feat_rugged
TAGS:  transparent extra decor
DEPTH: D, Depths
SUBST: A = x..., B = x.., C = x., D = xx.
MAP
xxxxxxxxxxxxxxxxxxxx
xDDDDDDD.DDD.DDDDDDx
xC.C.CC.CCC.C.CC.C.x
xBB.BBBB.BBBBB.BB.Bx
xAAA.AAAA.AAA.AAAA.x
@..................@
xxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:  minmay_misc_feat_five
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf, Crypt
SUBST: x : xxxxcvbm
MAP
...   ...
.x.....x.
....x....
.x.....x.
...   ...
ENDMAP

NAME:  minmay_misc_feat_chi
TAGS:  transparent extra decor
DEPTH: D, Depths
MAP
..........
.xx.....x.
...x....x.
....x..x..
....xxx...
...xxx....
..x..x....
.x....x...
.x.....xx.
..........
ENDMAP

NAME:   minmay_misc_feat_tower
TAGS:   transparent extra decor
DEPTH:  D, Depths
NSUBST: ? = 1:@ / *:?
SUBST:  ? = @...
SUBST:  X : xcvbmGT
KMASK:  T = no_monster_gen
MAP
xx?xx   xx?xx
x...xxxxx...x
?.X.......X.?
x...xxxxx...x
xx.xxxxxxx.xx
 x.xxxxxxx.x
 x.xxxxxxx.x
 x.xxxxxxx.x
xx.xxxxxxx.xx
x...xxxxx...x
?.X.......X.?
x...xxxxx...x
xx?xx   xx?xx
ENDMAP

NAME:   minmay_misc_feat_enclosed
TAGS:   transparent extra decor
DEPTH:  D, Depths
NSUBST: X = 1:. / *=xx.
MAP
.........
.xxxXxxx.
.xx...xx.
.x.....x.
.X.....X.
.x.....x.
.xx...xx.
.xxxXxxx.
.........
ENDMAP

NAME:   minmay_misc_feat_room
TAGS:   transparent extra decor
DEPTH:  D, Depths
SUBST:  ? = GGGTUV
KMASK:  TU = no_monster_gen
MAP
.......
.xxxxx.
.x...x.
.+.?.+.
.x...x.
.xxxxx.
.......
ENDMAP

NAME:   minmay_misc_feat_iff
TAGS:   transparent extra decor
DEPTH:  D, Depths
SUBST:  X : xcvb.
MAP
  ........
 ...xxxx...
..xxx..xxx..
.xx......xx.
.....XX.....
....XXXX....
....XXXX....
.....XX.....
.xx......xx.
..xxx..xxx..
 ...xxxx...
  ........
ENDMAP

NAME:   minmay_misc_feat_columns
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf, Crypt
MAP
...
.x.
.x....
.x..x.
....x....
   .x..x.
   ....x.
      .x.
      ...
ENDMAP

NAME:   minmay_misc_feat_cross
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf, Crypt
SUBST:  X : x.
: if you.in_branch("D") or you.in_branch("Depths") then
SUBST:  c : ccx
TILE:   c = wall_stone_magic_shelf
: end
MAP
...........
.xxx.X.xxx.
.xxx.X.xxx.
.xxc.X.cxx.
.....X.....
.XXXXXXXXX.
.....X.....
.xxc.X.cxx.
.xxx.X.xxx.
.xxx.X.xxx.
...........
ENDMAP

NAME:   minmay_misc_feat_ornament
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf, Crypt
MAP
x@xxxxxxx@x
x.x.....x.x
x.x.x.x.x.x
x...x.x...x
xxxxx.xxxxx
x...x.x...x
x.x.x.x.x.x
x.x.....x.x
x@xxxxxxx@x
ENDMAP

NAME:   minmay_misc_feat_hallway
TAGS:   transparent extra decor
DEPTH:  D, Depths, Crypt
SUBST:  G : ..GGxv
MAP
xxxxxxxxx
xxxGxGxGx
x.x.x.x.x
@.......@
x.x.x.x.x
xGxGxGxxx
xxxxxxxxx
ENDMAP

NAME:   minmay_misc_feat_alley
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf, Crypt
MAP
xx@xx@xx
x......x
xxx..xxx
x......x
xx.xx.xx
x......x
x.xxxx.x
x......x
xx.xx.xx
x......x
xxx..xxx
x......x
xx@xx@xx
ENDMAP

NAME:   minmay_misc_feat_nine_boxes
TAGS:   transparent extra decor
DEPTH:  D, Depths
NSUBST: A = 1:. / *:x, B = 1:. / *:x, C = 1:. / *:x
NSUBST: D = 1:. / *:x, E = 1:. / *:x, F = 1:. / *:x
NSUBST: G = 1:. / *:x, H = 1:. / *:x, I = 1:. / *:x
MAP
...............
.xAx..xBx..xCx.
.A.A..B.B..C.C.
.xAx..xBx..xCx.
...............
.xDx..xEx..xFx.
.D.D..E.E..F.F.
.xDx..xEx..xFx.
...............
.xGx..xHx..xIx.
.G.G..H.H..I.I.
.xGx..xHx..xIx.
...............
ENDMAP

NAME:   minmay_misc_feat_four_crosses
TAGS:   transparent extra decor
DEPTH:  D, Depths
SUBST:  c : ccx
SUBST:  G : GGGb
MAP
... ... ...
.G...G...G.
...c...c...
 .ccc.ccc.
...c...c...
.G...G...G.
...c...c...
 .ccc.ccc.
...c...c...
.G...G...G.
... ... ...
ENDMAP

NAME:   minmay_misc_feat_roman
TAGS:   transparent extra decor
DEPTH:  D, Depths
MAP
.............
.x.xxx.xxx.x.
.x...x.x...x.
.xxx.x.x.xxx.
.............
.xxx.x.x.xxx.
.x.x.....x.x.
.x.xxx.xxx.x.
.............
ENDMAP

NAME:   minmay_misc_feat_more_columns
TAGS:   transparent extra decor
DEPTH:  D, Depths
SUBST:  X : x.
MAP
......   ......
.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.
......   ......
ENDMAP

NAME:   minmay_misc_feat_x
TAGS:   transparent extra decor
DEPTH:  D, Depths
MAP
........    ........
.xxxx....  ....xxxx.
...xxxx......xxxx...
 ....xxxx..xxxx....
  .....xxxxxx.....
  .....xxxxxx.....
 ....xxxx..xxxx....
...xxxx......xxxx...
.xxxx....  ....xxxx.
........    ........
ENDMAP

NAME:   minmay_misc_feat_secret_circle
TAGS:   transparent extra decor
DEPTH:  D, Depths
SUBST:  Y : x.
MAP
.........  .........
.x................x.
..xx............xx..
..x.x..........x.x..
...x.xx......xx.x...
....xx.x....x.xx....
....x.x.xYYx.x.x....
.....x.xx..xx.x.....
......xx....xx......
 ..................
 ..................
......xx....xx......
.....x.xx..xx.x.....
....x.x.xYYx.x.x....
....xx.x....x.xx....
...x.xx......xx.x...
..x.x..........x.x..
..xx............xx..
.x................x.
.........  .........
ENDMAP

NAME:   minmay_misc_feat_tiny
TAGS:   transparent extra decor
DEPTH:  D, Depths
MAP
......
.xx.x.
.x.xx.
.xx.x.
.x.xx.
......
ENDMAP

NAME:   minmay_stone_trees_small
TAGS:   transparent extra decor lairdec
DEPTH:  D, Depths, Lair
WEIGHT: 6
MAP
.......
..ttt..
.tccct.
.tccct.
.tccct.
..ttt..
.......
ENDMAP

NAME:   minmay_stone_trees_medium
TAGS:   transparent extra decor lairdec
DEPTH:  D, Depths, Lair
WEIGHT: 3
MAP
.............
..ttt...ttt..
.tccct.tccct.
.tccct.tccct.
.tccct.tccct.
..ttt.t.ttt..
.....ttt.....
..ttt.t.ttt..
.tccct.tccct.
.tccct.tccct.
.tccct.tccct.
..ttt...ttt..
.............
ENDMAP

NAME:    minmay_stone_trees_large
TAGS:    transparent extra decor lairdec luniq_lairdec_large
DEPTH:   D, Depths, Lair
WEIGHT:  2 (Lair), 1
SHUFFLE: TR
SUBST:   T = t., R = .
: if you.in_branch("Lair") then
FTILE:   .t = floor_lair / floor_sprouting_squares w:2
: end
MAP
...................
..ttt...ttt...ttt..
.tccct.tccct.tccct.
.tccctRtccctTtccct.
.tccct.tccct.tccct.
..ttt...ttt...ttt..
...T.....R.....T...
..ttt...ttt...ttt..
.tccct.tccct.tccct.
.tccctRtccctTtccct.
.tccct.tccct.tccct.
..ttt...ttt...ttt..
...T.....R.....T...
..ttt...ttt...ttt..
.tccct.tccct.tccct.
.tccctTtccctRtccct.
.tccct.tccct.tccct.
..ttt...ttt...ttt..
...................
ENDMAP

NAME:   minmay_crystal_water
TAGS:   extra decor
DEPTH:  D:8-, Depths
MAP
wwwwwwwww
wbwwwwwbw
wbwbbbwbw
wbwwwwwbw
wwwwwwwww
ENDMAP

NAME:   minmay_holes
TAGS:   transparent extra decor lairdec
DEPTH:  D:5-, !D:$, Depths, !Depths:$, Lair, !Lair:$
KFEAT:  ^ = shaft trap
SUBST:  . = . ^:1, ' = . ^:2, " = . ^:4
WEIGHT: 15
MAP
     ....
   ........
  ..........
 ....''''....
 ...''''''...
...'''""'''...
...''""""''...
...''""""''...
...'''""'''...
 ...''''''...
 ....''''....
  ..........
   ........
     ....
ENDMAP

NAME:   minmay_splitting_lines
TAGS:   transparent extra decor
DEPTH:  D, Depths
WEIGHT: 5
MAP
.....................
.....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..
...xxx...x.x...xxx...
..x...x...x...x...x..
.x.....x..x..x.....x.
........xxxxx........
.x.....x..x..x.....x.
..x...x...x...x...x..
...xxx...x.x...xxx...
..x..x..x...x..x..x..
.x...xxx.....xxx...x.
....x..x.....x..x....
...x...x.....x...x...
......x.x...x.x......
.....x...x.x...x.....
.....................
ENDMAP

NAME:   minmay_curled_crystal
TAGS:   transparent extra decor
DEPTH:  D:8-, Depths, Elf
WEIGHT: 3
MAP
................
..bb........bb..
.b..b......b..b.
.b............b.
..bbbbbbbbbbbb..
................
ENDMAP

NAME:    minmay_parallelograms
TAGS:    transparent extra decor
DEPTH:   D, Depths
WEIGHT:  2
SHUFFLE: EFGH
SUBST:   B : xx., C : xx., D : xx., E : xx., F : xx., G : xx., H : xx.
MAP
...........         ...........
.xx.xxxxxx..       ..BBBBBB.BB.
..xx.....xx..     ..BB.....BB..
 ..xx.EEE.xx..   ..BB.FFF.BB..
  ..xx.EEE.xx.. ..BB.FFF.BB..
   ..xx.....xx...BB.....BB..
    ..xxxxxx.xx.BB.BBBBBB..
     .....................
    ..CCCCCC.CC.DD.DDDDDD..
   ..CC.....CC...DD.....DD..
  ..CC.HHH.CC.. ..DD.GGG.DD..
 ..CC.HHH.CC..   ..DD.GGG.DD..
..CC.....CC..     ..DD.....DD..
.CC.CCCCCC..       ..DDDDDD.DD.
...........         ...........
ENDMAP

NAME:    minmay_large_rounded_square
TAGS:    transparent extra decor
DEPTH:   D, Depths, Crypt
WEIGHT:  1
SUBST:   x : x c:2 v:1 b:1
MAP
     ..............
   ...xxxxxxxxxxxx...
  ..xxxxxxxxxxxxxxxx..
 ..xxxxxxxxxxxxxxxxxx..
 .xxxxxxxxxxxxxxxxxxxx.
..xxxxxxxxxxxxxxxxxxxx..
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
.xxxxxxxxxxxxxxxxxxxxxx.
..xxxxxxxxxxxxxxxxxxxx..
 .xxxxxxxxxxxxxxxxxxxx.
 ..xxxxxxxxxxxxxxxxxx..
  ..xxxxxxxxxxxxxxxx..
   ...xxxxxxxxxxxx...
     ..............
ENDMAP

NAME: bh_walls_and_bars
TAGS: transparent extra decor
DEPTH: D, Depths
KFEAT: b = iron_grate
NSUBST: B = 1:b / *:.
MAP
   cxcxcxcxc
   x.B.x.B.x
   c.cBcBc.c
 xcx.x.B.x.xcx
@....cxcxc....@
@....xcxcx....@
 cxc.c.B.c.cxc
   x.xBxBx.x
   c.B.c.B.c
   xcxcxcxcx
ENDMAP

NAME:  roderic_roman_lattice
TAGS:  transparent extra decor
DEPTH: D, Depths, Elf
MAP
xxxxxxxxxxxxxxxxxxxxxxxxx
ccccccccccccccccccccccccc
vcxcvcxcvcxcvcxcvcxcvcxcv
@c.c.c.c.c.c.c.c.c.c.c.c@
v.c.v.c.v.c.v.c.v.c.v.c.v
@cvc.cvc.cvc.cvc.cvc.cvc@
v.c.v.c.v.c.v.c.v.c.v.c.v
@c.c.c.c.c.c.c.c.c.c.c.c@
vcxcvcxcvcxcvcxcvcxcvcxcv
ccccccccccccccccccccccccc
xxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

#squared St Hans cross, ancient Viking symbol
NAME:   roderic_st_hans_cross
TAGS:   transparent extra decor
DEPTH:  D, Depths
WEIGHT: 1
MAP
+xxxxxxxxxx+
x...xxxx...x
x.x.xxxx.x.x
x..........x
xxx.xxxx.xxx
xxx.xxxx.xxx
xxx.xxxx.xxx
xxx.xxxx.xxx
x..........x
x.x.xxxx.x.x
x...xxxx...x
+xxxxxxxxxx+
ENDMAP

#cross filled (sun sumbol) in ancient Mid East and Greece
NAME:   roderic_filled_cross
TAGS:   transparent extra decor
DEPTH:  D, Depths
WEIGHT: 1
SUBST:  ? = x+
MAP
   .......
   .xx+xx.
   .x...x.
....x.x.x....
.xxxx.x.xxxx.
.x....x....x.
.?.xxxxxxx.?.
.x....x....x.
.xxxx.x.xxxx.
....x.x.x....
   .x...x.
   .xx?xx.
   .......
ENDMAP

#cross of infinity
NAME:   roderic_cross_of_infinity
TAGS:   transparent extra decor
DEPTH:  D, Depths
WEIGHT: 1
MAP
.............
.xx+xxxxx+xx.
.xxx.....xxx.
.+xxx.x.xxx+.
.x.xxx.xxx.x.
.x..x.x.x..x.
.x.x.xxx.x.x.
.x..x.x.x..x.
.x.xxx.xxx.x.
.+xxx.x.xxx+.
.xxx.....xxx.
.xx+xxxxx+xx.
.............
ENDMAP


#nine men's morris (Roderic)
NAME:    roderic_nine_men_s_morris
TAGS:    transparent extra decor
DEPTH:   D, Depths, Elf
WEIGHT:  1
ITEM:    q:1 $, stone q:1
NSUBST:  ' = 2:d / 1:e / 2:f / *:.
SHUFFLE: ddeff
MAP
'.......'.......'
.xxxxxxx.xxxxxxx.
.xxxxxxx.xxxxxxx.
.xx'....'....'xx.
.xx.xxxx.xxxx.xx.
.xx.xxxx.xxxx.xx.
.xx.xx'.'.'xx.xx.
.xx.xx.xxx.xx.xx.
'..'..'xxx'..'..'
.xx.xx.xxx.xx.xx.
.xx.xx'.'.'xx.xx.
.xx.xxxx.xxxx.xx.
.xx.xxxx.xxxx.xx.
.xx'....'....'xx.
.xxxxxxx.xxxxxxx.
.xxxxxxx.xxxxxxx.
'.......'.......'
ENDMAP

# Three-in-row (Roderic)
NAME:   roderic_three_in_a_row
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf
WEIGHT: 1
ITEM:   q:1 $, stone
SUBST:  ' : TTUUddeff
MAP
@xxxx@xxxx@
x'...'...'x
x..xx.xx..x
x.x.x.x.x.x
x.xx...xx.x
@'...'...'@
x.xx...xx.x
x.x.x.x.x.x
x..xx.xx..x
x'...'...'x
@xxxx@xxxx@
ENDMAP

NAME:  roderic_lattice_a
TAGS:  transparent extra decor
DEPTH: D, Depths
MAP
...........................................
.xxxxxxxxxxxxx.xxxxxxxxxxxxx.xxxxxxxxxxxxx.
.x...........x.x...........x.x...........x.
.x.xxxx.xxxx.x.x.xxxx.xxxx.x.x.xxxx.xxxx.x.
.x....x.x....x.x....x.x....x.x....x.x....x.
.xxxx.x.x.xxxx.xxxx.x.x.xxxx.xxxx.x.x.xxxx.
......x.x...........x.x...........x.x......
.xxxxxx.xxxxxxxxxxxxx.xxxxxxxxxxxxx.xxxxxx.
...........................................
ENDMAP

NAME:  roderic_serpentine_path
TAGS:  transparent extra decor
DEPTH: D, Depths
MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 x...........x...........x.....+@
 x.xxxxxxxxx.x.xxxxxxxxx.x.xxxxx
 x.....x.....x.....x.....x.....x
 xxxxx.x.xxxxxxxxx.x.xxxxxxxxx.x
@+.....x...........x...........x
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

# Malta's cross
NAME:   roderic_malta_cross
TAGS:   transparent allow_dup extra decor
WEIGHT: 1
DEPTH:  D, Depths
MAP
 .........
...ccccc...
....ccc....
.c...c...c.
.cc..c..cc.
.ccccccccc.
.cc..c..cc.
.c...c...c.
....ccc....
...ccccc...
 .........
ENDMAP

NAME:   roderic_lattice_octagonal_star
TAGS:   transparent extra decor
ORIENT: float
MAP
  .......     .......
 ....x..... .....x....
....xxx.........xxx....
....xxx.........xxx....
..xxxxxxx.....xxxxxxx..
.xxxxxxxxx...xxxxxxxxx.
..xxxxxxx..x..xxxxxxx..
....xxx...xxx...xxx....
....xxx.xxxxxxx.xxx....
 ....x..xxxxxxx..x....
 ......xxxxxxxxx......
  ....xxxxxxxxxxx....
 ......xxxxxxxxx......
 ....x..xxxxxxx..x....
....xxx.xxxxxxx.xxx....
....xxx...xxx...xxx....
..xxxxxxx..x..xxxxxxx..
.xxxxxxxxx...xxxxxxxxx.
..xxxxxxx.....xxxxxxx..
....xxx.........xxx....
....xxx.........xxx....
 ....x..... .....x....
  .......     .......
ENDMAP

NAME:  hex_tiny
TAGS:  transparent extra decor
MAP
  ...
 .x.x.
 .....
.x.x.x.
 .....
 .x.x.
  ...
ENDMAP

NAME:  hex_medium
TAGS:  transparent extra decor
MAP
    .......
   .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.
    .......
ENDMAP

NAME:  hex_large
TAGS:  transparent extra
MAP
      ...........
     .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.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.
      ...........
ENDMAP

NAME:  abandoned_shop
TAGS:  transparent extra allow_dup
DEPTH: D:4-, Depths, Orc, Elf, Shoals, Snake
KFEAT: O = abandoned_shop
MAP
O
ENDMAP

NAME:   hex_intersection
TAGS:   transparent extra allow_dup luniq layout_rooms decor
DEPTH:  D, Depths, Elf, Crypt
MAP
  @xxxxx@
  x.xxx.x
  xx.x.xx
xxxx...xxxx
@.........@
xxxx...xxxx
  xx.x.xx
  x.xxx.x
  @xxxxx@
ENDMAP

NAME:   interstate_on_off
TAGS:   transparent extra layout_rooms decor
DEPTH:  D, Depths
MAP
     x@x
  xxxx.xxxxx
 xxx.....xxx
xx..xx.xx..xx
x.xxxx+xxxx.x
@...........@
xxxxxx+xxxxxx
@...........@
x.xxxx+xxxx.x
xx..xx.xx..xx
 xxx.....xxx
 xxxxx.xxxx
     x@x
ENDMAP

NAME:   moated_statue
DEPTH:  D, Depths, Elf, Crypt
TAGS:   transparent extra allow_dup decor
MAP
xxxxxxx
.WWGWW.
..WWW..
 .....
ENDMAP

NAME:    hangedman_glass_teeth
TAGS:    transparent extra no_rotate decor
DEPTH:   D, Depths, Elf
MAP
@xx                 xx@
@.xx               xx.@
@..xxxxxxxxxxxxxxxxx..@
x..mxmm...mxm...mmxm..x
x..mmm....mmm....mmm..x
x..mmm....mmm....mmm..x
x..mm..m...m...m..mm..x
xx..m..mm.....mm..m..xx
 xx....mmm...mmm....xx
  xx...mxm...mxm...xx
   xxxxxxm...mxxxxxx
       xxxxxxxxx
ENDMAP

NAME:   wad_floor_pattern_1
TAGS:   transparent extra decor
WEIGHT: 2
FTILE:  ' = floor_volcanic
COLOUR: ' = red
FTILE:  ; = floor_pebble
FTILE:  " = floor_pebble_brown
COLOUR: " = brown
MAP
';;;;;;;;;";;;;;;;;;'
;'''''''''"''''''''';
;''"""""""""""""""'';
;'"';;;;;;";;;;;;'"';
;'";';;;;;";;;;;';"';
;'";;'''''"''''';;"';
;'";;''"""""""'';;"';
;'";;'"';;";;'"';;"';
;'";;'";';";';"';;"';
;'";;'";;'"';;"';;"';
""""""""""'""""""""""
;'";;'";;'"';;"';;"';
;'";;'";';";';"';;"';
;'";;'"';;";;'"';;"';
;'";;''"""""""'';;"';
;'";;'''''"''''';;"';
;'";';;;;;";;;;;';"';
;'"';;;;;;";;;;;;'"';
;''"""""""""""""""'';
;'''''''''"''''''''';
';;;;;;;;;";;;;;;;;;'
ENDMAP

NAME:   wad_floor_pattern_2
TAGS:   transparent extra decor
WEIGHT: 2
FTILE:  ' = floor_pebble_cyan
COLOUR: ' = green
FTILE:  ; = floor_pebble_brown
FTILE:  " = floor_pebble_darkgray
COLOUR: " = cyan
MAP
'.;.;.;.;;";;.;.;.;.'
.'.'''''''"'''''''.'.
;.'"""""'"""'"""""'.;
.'"';;;';".";';;;'"'.
;'";';';.;";.;';';"';
.'";;'''''"''''';;"'.
;'";'''"""."""''';"';
.'"';'"';""";'"';'"'.
;'';.'";';";';"'.;'';
;'"";'"";'"';""';""';
"".""".""".""".""".""
;'"";'"";'"';""';""';
;'';.'";';";';"'.;'';
.'"';'"';""";'"';'"'.
;'";'''"""."""''';"';
.'";;'''''"''''';;"'.
;'";';';.;";.;';';"';
.'"';;;';".";';;;'"'.
;.'"""""'"""'"""""'.;
.'.'''''''"'''''''.'.
'.;.;.;.;;";;.;.;.;.'
ENDMAP

NAME: wad_floor_pattern_untrapped
TAGS: transparent extra decor
WEIGHT: 4
KFEAT:  ~ = floor
FTILE:  GT = floor_pebble_darkgray
FTILE:  ;" = floor_pebble_brown
COLOUR: "~ = brown
MAP
xxx.".xxx
xx;""";xx
x;G;~;G;x
.";""";".
""~"T"~""
.";""";".
x;G;~;G;x
xx;""";xx
xxx.".xxx
ENDMAP

NAME:    hangedman_decor_diamond_cutter
TAGS:    transparent extra decor
DEPTH:   D, Depths
WEIGHT:  5 (D:1-3), 10
SHUFFLE: AB, CD
SUBST:   Z : z:9 .:1, z : xxB, AC = .
: init_hm_decor_walldepth(_G, "BD")
MAP
xxxxxxxxxxxxxxxxxxxx
B..AZA..B.B..AZA..B.
.BA.z.AB...BA.z.AB..
.AB.z.BA...AB.z.BA..
A..BzB..A.A..BzB..A.
........................
    .C..DzD..C.C..DzD..C
    ..CD.z.DC...CD.z.DC.
    ..DC.z.CD...DC.z.CD.
    .D..CZC..D.D..CZC..D
    xxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:    hangedman_decor_lopped
TAGS:    transparent extra decor no_pool_fixup
DEPTH:   D, Depths, Abyss
WEIGHT:  5 (D:1-3), 10
SHUFFLE: CD / CD / CD / DC / DC, EF / EF / EF / FE / FE
SUBST:   A : z:9 .:1, B : z:9 .:1, CE = .
SUBST:   H : x..., I : x..., J : x..., K : x...
: if you.in_branch("Abyss") then
SUBST:   x = x:19 .:1, z = xcvbl, l : lw
: else
: init_hm_decor_walldepth(_G, "DFz")
: end
MAP
........
...H....
.zAzAz......
...C........
...D...z..J...
.I.C...A......
...DCDCzEFEF....
.......A...E..J.
  ..K..z...F....
  .........E....
      ...zBzBz....
      .....C......
        ...D...z..
        .K.C...B..
        ...DCDCzH.
        .......B..
          ..I..z..
          ........
ENDMAP

NAME:    hangedman_decor_push
TAGS:    transparent decor extra
DEPTH:   D, Depths
SHUFFLE: AB / AB / CD, Depths, EF / EF / GH
SUBST:   ABEF = x, CG = ., DH = @
SUBST:   I : z.., J : z.., K : z..
: init_hm_decor_walldepth(_G, "z")
MAP
         xxxxxx...
         F..z...I.
         E..z.....
    xxxxxx.....z..
    B..z..K.J..z..
    A..z.....xxxxx
xxxxx.....z..A
..z..J.K..z..B
..z.....xxxxxx
.....z..E
.I...z..F
...xxxxxx
ENDMAP

NAME:    hangedman_decor_opposing
TAGS:    transparent decor extra
DEPTH:   D, Depths
WEIGHT:  5 (D:1-3), 10
SHUFFLE: CDE
SUBST:   AB : z.., C : z:7 .:1, D : z.. , E : z:1 .:7, y : xxcz
: init_hm_decor_walldepth(_G, "z")
MAP
    yyy.
   yy........
  yy..z......
 yy.A....DE..
yy.A..z.CED..
y.......EC...
y.z.z.z.......
.......z.....y
 ...CE..z..B.y
 ..DEC...z...y
 ..ED.....z..y
 .......B..z.y
 ............y
      .yyyyyyy
ENDMAP

NAME:    hangedman_decor_clover_reticule
TAGS:    transparent extra decor
DEPTH:   D, Depths
SHUFFLE: ABCDE
SUBST:   A : z:9 ':1, B : z', C : z'', DE = '
KPROP:   ' = no_tele_into
KMASK:   ' = opaque
: init_hm_decor_walldepth(_G, "z")
MAP
      .......
.......zx.xz.
.zx.xz.x...x.
.x...x.......
.......D...x.
.x...ECBE.xz.
.zx.DBAAC.....
.....CAABD.xz.
 .zx.EBCE...x.
 .x...D.......
 .......x...x.
 .x...x.zx.xz.
 .zx.xz.......
 .......
ENDMAP

NAME:    hangedman_decor_riveting
TAGS:    transparent extra decor no_pool_fixup
DEPTH:   D, Depths, Abyss
WEIGHT:  5 (D:1-3), 10
SHUFFLE: ABCDEFG
SUBST:   A : z:9 .:1, B : zz., C : z:1 .:5, D = z:1 .:9, DEFG = .
: if you.in_branch("Abyss") then
SUBST:   x = x:19 .:1, z = xcvbl, l : lw
: else
: init_hm_decor_walldepth(_G, "z")
: end
MAP
...
.x.
.....
.x.x.
..A....
.x.z.x.
..B.C....
.x.z.z.x.
...........
.x..GGFF.x.
.......F.....
.x.z...G.z.x.
..D....G..C....
.x.z.z...z.z.x.
..E.D.....B.A....
.x.x.x.x.x.x.x.x.
.................
ENDMAP

NAME:    hangedman_decor_points
TAGS:    transparent extra decor no_pool_fixup
DEPTH:   D, Depths, Abyss
SHUFFLE: ABC
SUBST:   A : z.., B : zxx, C : zxx
: if you.in_branch("Abyss") then
SUBST:   x = x:19 .:1, z = xcvbl, l : lw
: else
: init_hm_decor_walldepth(_G, "z")
: end
MAP
            .....
            .ABC.
        .....B...
        .ABC.C..
    .....B......
    .ABC.C..ABC.
.....B......B...
.ABC.C..zzz.C..
.B......z......
.C..ABC.z..ABC.
....B......B...
   .C..ABC.C..
   ....B......
      .C..ABC.
      ....B...
         .C.
         ...
ENDMAP

NAME:    hangedman_decor_peaks_small
TAGS:    transparent extra decor
DEPTH:   D, Depths, Abyss
WEIGHT:  5 (D:1-3), 10
SHUFFLE: BCD
SUBST:   A = z.., B : zzz., C : z..., D = ., X : x:9 .:1
: if you.in_branch("Abyss") then
SUBST:   x = x:19 .:1, z = xcvbl, l : lw
: else
: init_hm_decor_walldepth(_G, "z")
: end
MAP
       .......
     ...D...xX
    ..D...xX..
   .....xX....
   .A.xX...xx.
 ....A........
 .D.x.A..xx...
....X..A......
.D.x....A.BB..
...X..x.......
..x...x.B..CC.
..X.x...B.C...
.x..x.....C.
.X..........
ENDMAP

NAME:    hangedman_decor_growths
TAGS:    transparent extra decor
DEPTH:   D, Depths
SHUFFLE: ABCDEF
SUBST:   A : x..., B : x.., C : x:7 .:1, EF = x
: init_hm_decor_walldepth(_G, "x")
MAP
            ........
           ..........
           ..AABBCC..
           ..AxBBxC..
      .......DDxxDD..
     ........DDxxDD..
     ..AABCC.ExBBxF..
 ......AxBxC.EEBBFF..
.......DDxDD.........
..ABBC.ExBxF........
..DxxD.EEBFF.
..DxxD.......
..EBBF......
........
 ......
ENDMAP

NAME:    hangedman_decor_slide_cut
TAGS:    transparent extra decor
DEPTH:   D, Depths
WEIGHT:  5 (D:1-3), 10
SHUFFLE: AB, EF / EF / FE, GH / HG, IJ / IJ / JI
SUBST:   A : zz., B : z.., C : zz., D : zz., EGI = z, FHJ = .
: init_hm_decor_walldepth(_G, "z")
MAP
xx.....
xx.....
x.EF..@
x.FEF..
x..FE..xxxxxxxxx
xA...xxxxxxxxxxxx
xA...Cx...AA...Dx
x...x..GH.....x.x
x..x...HGH...x..x
x.x.....HG..x...x
xC...BB...xD...Bx
xxxxxxxxxxxx...Bx
 xxxxxxxxx..IJ..x
          ..JIJ.x
          @..JI.x
          .....xx
          .....xx
ENDMAP

NAME:  grunt_decor_arrowhead
TAGS:  transparent extra decor
DEPTH: D, Depths
: init_hm_decor_walldepth(_G, 'x')
SUBST: G : GGGTTV
MAP
.........
.xxxx+xx..
..xx.G.xx..
 ..xx...xx..
  ..xx...xx..
   ..xx...xx..
    @.++.G.++.@
   ..xx...xx..
  ..xx...xx..
 ..xx...xx..
..xx.G.xx..
.xxxx+xx..
........
ENDMAP

NAME:  grunt_decor_resistance
TAGS:  transparent extra decor
DEPTH: D, Depths
: init_hm_decor_walldepth(_G, 'x')
MAP
 xxxxxxx xxx xxx
 x.xxx.xxx.xxx.xxx
..x.x.x.x.x.x.x.x.@
@.x.x.x.x.x.x.x.x..
 xxx.xxx.xxx.xxx.x
   xxx xxx xxx xxx
ENDMAP

NAME:  grunt_decor_cap
TAGS:  transparent extra decor
DEPTH: D, Depths
{{
-- Kind of a complicated version of init_hm_decor_walldepth to make sure that
-- the glass matches the wall feature.
local a = you.absdepth() * 5
local weights = { {"x", 50}, {"c", a} }
if a - 75 > 0 then
    weights[#weights + 1] = {"b", a - 75}
end
local wall = util.random_choose_weighted(weights)
local glass = 'm'
if wall == 'c' then
  glass = 'n'
end
subst("x = " .. wall)
subst("m = " .. glass)
}}
MAP
  .........
  .xxxwxxx.
...x.mwm.x...
.xxx.mwm.xxx.
.....mwm.....
.xxx.mwm.xxx.
...x.mwm.x...
  .xxxwxxx.
  .........
ENDMAP

NAME:  grunt_decor_fettered
TAGS:  transparent extra decor
DEPTH: D, Depths
: init_hm_decor_walldepth(_G, 'x')
MAP
    xxxxx
    x.x.xxx
    x.....@
xxxxx.x.xxx
@.....xxx
xxxxx.xxxxx
    x.....@
    x.xxxxx
    xxx
ENDMAP

NAME:  grunt_decor_junction
TAGS:  transparent extra decor no_pool_fixup
DEPTH: D, Depths
: init_hm_decor_walldepth(_G, 'x')
KMASK: w = no_monster_gen
SUBST: w : wwl
MAP
     .......
   ...wwwww.@.
  ..wwwwxxxx...
 ..wwwxxx.x.xx..
 .wwwwx.x..xxww.
..wwwwx.....xww..
.wwwwwx.xxxxxwww.
.xxxxxx.xwwwwwww.
@.......xwwwwwww.
.xxxxxx.xwwwwwww.
.wwwwwx.xxxwwwww.
..wwwwx...xxwww..
 .wwwwx.xx.xxww.
 ..wwwxxxxx.xx..
  ..wwwwwwxx...
   ...wwwww.@.
     .......
ENDMAP

NAME: grunt_decor_clamped
TAGS: transparent extra decor no_pool_fixup
DEPTH: D, Depths
: init_hm_decor_walldepth(_G, 'x')
SHUFFLE: GT / GT / TG / ww / ww / ll
MAP
xxx                   xxx
@.xxx               xxx.@
xx..xxx           xxx..xx
 xxx..xxxxxxxxxxxxx..xxx
   xxx..x.......x..xxx
     xx.+..GTG..+.xx
   xxx..x.......x..xxx
 xxx..xxxxxxxxxxxxx..xxx
xx..xxx           xxx..xx
@.xxx               xxx.@
xxx                   xxx
ENDMAP

NAME:    grunt_decor_one_mirror
TAGS:    transparent extra decor
DEPTH:   D, Depths
SUBST:   G = tTTVUG
MAP
  ...
 ..b..
.bb.bb.
.b.G.b.
.bb.bb.
 ..b..
  ...
ENDMAP

NAME:    grunt_decor_mini_mirrors
TAGS:    transparent extra decor
DEPTH:   D, Depths
SHUFFLE: AB / BA / BB, CD / DC / DD, Depths, EF / FE / FF, IJ / JI / JJ
SUBST:   ACEI = b, BDFJ = .
SUBST:   G = tTTVUG
MAP
     ...   ...
    ..b.....b..
   .bb.bAbBb.bb.
  .bb.G.bbb.G.bb.
 .bbbb.bBbAb.bbbb.
..b.bCbDb.bEbFb.b..
.b.G.bbb.G.bbb.G.b.
..b.bDbCb.bFbEb.b..
 .bbbb.bIbJb.bbbb.
  .bb.G.bbb.G.bb.
   .bb.bJbIb.bb.
    ..b.....b..
     ...   ...
ENDMAP

NAME: nicolae_sextant
DEPTH: D:5-, Depths
TAGS: extra decor transparent
SUBST: y : b m v X:60, X : xxc
MAP
xxxxxxxxxxxxxxX@@Xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxX..Xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxX..Xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxX..Xxxxxxxxxxxxxxx
xxxxxxxxxxxxxXX..XXxxxxxxxxxxxxx
xxxxxxxxxxxxXX....XXxxxxxxxxxxxx
xxxxxxxxxxxXX......XXxxxxxxxxxxx
XXXXXXXXXXXX...yy...XXXXXXXXXXXX
@......XXXXX..yyyy..XXXXX......@
@......XXXXX..yyyy..XXXXX......@
XXXXX..XXXXX...yy...XXXXX..XXXXX
xxxxX..XXXXX........XXXXX..Xxxxx
xxxxXX..XXX..........XXX..XXxxxx
xxxxxX..XX...XXXXXX...XX..Xxxxxx
xxxxxXX.....XXxxxxXX.....XXxxxxx
xxxxxxXX...XXxxxxxxXX...XXxxxxxx
xxxxxxxXX...XXxxxxXX...XXxxxxxxx
xxxxxxxxXX...XXXXXX...XXxxxxxxxx
xxxxxxxxxXX..........XXxxxxxxxxx
xxxxxxxxxxXXX......XXXxxxxxxxxxx
xxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME: nicolae_twisting_strands
DEPTH: D:10-, Depths, Elf
TAGS: transparent extra decor
SHUFFLE: '!/^;, cd/AB
SUBST: '; : e., ! = x, ^ = ., x : x_, A = a, B = b
SHUFFLE: abcde
SUBST: a = v, d = m, e = x
CLEAR: _
MAP
xxxxxxxx!'a.@.d'!xxxxxxxx
xxxxxxxx!'a...d'!xxxxxxxx
xxxxxxxx!'.a.d.'!xxxxxxxx
xxxxxxxx!'..a..'!xxxxxxxx
xxxxxxxx!'.d.a.'!xxxxxxxx
xxxxxxxx!'d...a'!xxxxxxxx
xxxxxxxx!'d...a'!xxxxxxxx
xxxxxxxx!'d...a'!xxxxxxxx
!!!!!!!!!'.d.a.'!!!!!!!!!
''''''''''..d..''''''''''
aa...bbb...a.d...ccc...dd
..a.b...b.a...d.c...c.d..
@..b.....a.....c.....d..@
..b.a...a.b...c.d...d.c..
bb...aaa...b.c...ddd...cc
''''''''''..b..''''''''''
!!!!!!!!!'.c.b.'!!!!!!!!!
xxxxxxxx!'c...b'!xxxxxxxx
xxxxxxxx!'c...b'!xxxxxxxx
xxxxxxxx!'c...b'!xxxxxxxx
xxxxxxxx!'.c.b.'!xxxxxxxx
xxxxxxxx!'..c..'!xxxxxxxx
xxxxxxxx!'.b.c.'!xxxxxxxx
xxxxxxxx!'b...c'!xxxxxxxx
xxxxxxxx!'b.@.c'!xxxxxxxx
ENDMAP

NAME: nicolae_wwwww
DEPTH: D:8-, Depths, Elf
TAGS: decor extra transparent
SUBST: b : bcvmx
MAP
      .............
     ....b.....b....
    ....bb.....bb....
   ..b.bb..b.b..bb.b..
  ..bb....bb.bb....bb..
 ..bb..b.bb...bb.b..bb..
......bb.........bb......
...b.bb..b.....b..bb.b...
..bb....bb.....bb....bb..
.bb..b.bb..b.b..bb.b..bb.
....bb....bb.bb....bb....
...bb....bb...bb....bb...
.........................
...bb....bb...bb....bb...
....bb....bb.bb....bb....
.bb..b.bb..b.b..bb.b..bb.
..bb....bb.....bb....bb..
...b.bb..b.....b..bb.b...
......bb.........bb......
 ..bb..b.bb...bb.b..bb..
  ..bb....bb.bb....bb..
   ..b.bb..b.b..bb.b..
    ....bb.....bb....
     ....b.....b....
      .............
ENDMAP

####

NAME:   kennysheep_boxes
TAGS:   transparent decor no_pool_fixup
DEPTH:  D, Depths, !D:$, !Depths:$
: if crawl.coinflip() then
SUBST:  w : wl.
SUBST:  x : xcvb
: else
SUBST:  x : t
:   if crawl.coinflip() then
SUBST:  . = W.
:   else
KMONS:  w = plant w:50 / bush / nothing w:100
:   end
: end
MAP
.........................
.wwwww.wwwww.wwwww.wwwww.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wwwww.wwwww.wwwww.wwwww.
.........................
.wwwww.wwwww.wwwww.wwwww.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wwwww.wwwww.wwwww.wwwww.
.........................
.wwwww.wwwww.wwwww.wwwww.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wwwww.wwwww.wwwww.wwwww.
.........................
.wwwww.wwwww.wwwww.wwwww.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wxxxw.wxxxw.wxxxw.wxxxw.
.wwwww.wwwww.wwwww.wwwww.
.........................
ENDMAP

####

NAME:  kennysheep_path_1
TAGS:  decor
DEPTH: D:2-, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
cccccccFccccccc
cwwwwwwHwwwwwwc
cw...........wc
cw...........wc
cw..txxxxxt..wc
cw..xxcccxx..wc
cw..xcccccx..wc
+...xcccccx..ED
cw..xcccccx..wc
cw..xxcccxx..wc
cw..txxxxxt..wc
cw...........wc
cw...........wc
cwwwwwwHwwwwwwc
cccccccFccccccc
ENDMAP

NAME:  kennysheep_flooded_box
TAGS:  decor
DEPTH: D, Depths
SUBST: A : At
: ks_random_setup(_G, true)
MAP
 cccDccc
ccwwEwwcc
cwwwEwwwc
cwwwEwwwc
FHHHAHHHF
cwww.wwwc
cwww.wwwc
ccww.wwcc
 ccc+ccc
ENDMAP

NAME:  kennysheep_pointless_box
TAGS:  decor
DEPTH: D, Depths
: ks_random_setup(_G, true)
MAP
FccccccccccD
cHwwwwwwwwEc
cw........wc
cw.txxxxt.wc
cw.xxxxxx.wc
cw.xxccxx.wc
cw.xxccxx.wc
cw.xxxxxx.wc
cw.txxxxt.wc
cw........wc
c.wwwwwwwwHc
+ccccccccccF
ENDMAP

NAME:  kennysheep_minor_cross
TAGS:  decor
DEPTH: D, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
     cccDccc
     cwwEwwc
     cw...wc
     cw...wc
     cw...wc
ccccccwx.xwcccccc
cwwwwwwx.xwwwwwwc
cw...xxt.txx...wc
FH.............HF
cw...xxt.txx...wc
cwwwwwwx.xwwwwwwc
ccccccwx.xwcccccc
     cw...wc
     cw...wc
     cw...wc
     cww.wwc
     ccc+ccc
ENDMAP

NAME:  kennysheep_another_room
TAGS:  decor
DEPTH: D, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
 ccccDccc
ccwwwEwwcc
cww....wwc
cw..xt..wc
FH.txxx.wc
cw.xxxt.HF
cw..tx..wc
cww....wwc
ccww.wwwcc
 ccc+cccc
ENDMAP

NAME:  kennysheep_nondescript
TAGS:  decor
DEPTH: D, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
  ccDc
cFctEc
c...wc
c.wwwc
c.wccc
c+cc
ENDMAP

NAME:  kennysheep_big_empty_room
TAGS:  decor
DEPTH: D:2-, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
     ccccFFcccc
    ccwwwHHwwwcc
   ccww......wwcc
  ccww........wwcc
 ccww..........wwcc
ccww............wwcc
cww....wwwwww....wwc
cw....wtxxxxtw....wc
cw....wxxxxxxw....wc
+.....wxxxxxxw....ED
+.....wxxxxxxw....ED
cw....wxxxxxxw....wc
cw....wtxxxxtw....wc
cww....wwwwww....wwc
ccww............wwcc
 ccww..........wwcc
  ccww........wwcc
   ccww......wwcc
    ccwwwHHwwwcc
     ccccFFcccc
ENDMAP

NAME:  kennysheep_cross_room
TAGS:  decor
DEPTH: D:2-, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
     ccccFFcccc
    ccwwwHHwwwcc
   ccww......wwcc
  ccww...xx...wwcc
 ccww....xx....wwcc
ccww.....xx.....wwcc
cww......xx......wwc
cw......xxxx......wc
cw.....xtxxtx.....wc
+..xxxxxxxxxxxxxx.ED
+..xxxxxxxxxxxxxx.ED
cw.....xtxxtx.....wc
cw......xxxx......wc
cww......xx......wwc
ccww.....xx.....wwcc
 ccww....xx....wwcc
  ccww...xx...wwcc
   ccww......wwcc
    ccwwwHHwwwcc
     ccccFFcccc
ENDMAP

NAME:  kennysheep_cluttered_room
TAGS:  decor
DEPTH: D:2-, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
      cccFFFccc
     ccwwHHHwwcc
    ccwwx...xwwcc
   ccwwx.x.x.xwwcc
  ccwwx...x...xwwcc
 ccwwx.x.x.x.x.xwwcc
ccwwx...x.t.x...xwwcc
cwwx.x.x.x.x.x.x.xwwc
cwx...x...x...x...xwc
+..x.x.x.x.x.x.x.x.ED
+...x.t.x.t.x.t.x..ED
+..x.x.x.x.x.x.x.x.ED
cwx...x...x...x...xwc
cwwx.x.x.x.x.x.x.xwwc
ccwwx...x.t.x...xwwcc
 ccwwx.x.x.x.x.xwwcc
  ccwwx...x...xwwcc
   ccwwx.x.x.xwwcc
    ccwwx...xwwcc
     ccwwHHHwwcc
      cccFFFccc
ENDMAP

NAME:    kennysheep_cross_bottleneck
TAGS:    extra decor
DEPTH:   D:2-, Depths, !D:$, !Depths:$
KMONS:   1 = sacred lotus
KFEAT:   1 = W
SHUFFLE: DEFH / DEDE / FHFH / FHFH
SUBST:   D = +, E = ., F = c, H = w, t = t1Gg
KMASK:   W = no_monster_gen
FTILE:   'tGg : floor_w_marble / floor_limestone
: if you.in_branch("D") then
TILE:    G = dngn_statue_angel
: else
TILE:    G = dngn_statue_depths_zot_angel
: end
: if crawl.coinflip() then
:   vault_metal_statue_setup(_G, "g", "silver statue")
: else
:   vault_metal_statue_setup(_G, "g", "golden statue")
: end
MAP
        cFFFc
        cHHHc
        cw.wc
        cw.wc
        cw.wc
        cw.wc
        cw.wc
        cw.wc
cccccccccx.xccccccccc
+.wwwwwwxx'xxwwwwwwED
+........'t'.......ED
+.wwwwwwxx'xxwwwwwwED
cccccccccx.xccccccccc
        cw.wc
        cw.wc
        cw.wc
        cw.wc
        cw.wc
        cw.wc
        cHHHc
        cFFFc
ENDMAP

NAME:  kennysheep_donut
TAGS:  extra decor
DEPTH: D:2-, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
      cccFFFccc
     cct.....tcc
    cc.........cc
   cc...........cc
  cc...wwwxwww...cc
 cc...wwxxxxxww...cc
cc...wwxxcccxxww...cc
ct..wwxxcccccxxww..tc
c...wxxcccccccxxw...c
+...wxcccccccccxw...D
+...xxcccccccccxx...D
+...wxcccccccccxw...D
c...wxxcccccccxxw...c
ct..wwxxcccccxxww..tc
cc...wwxxcccxxww...cc
 cc...wwxxxxxww...cc
  cc...wwwxwww...cc
   cc...........cc
    cc.........cc
     cct.....tcc
      cccFFFccc
ENDMAP

NAME:  kennysheep_nub
TAGS:  decor
DEPTH: D:2-, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true, true)
MAP
  ccccc
 ccxxxcc
ccwwtwwcc
cww...wwc
cw.....wc
c@.....@c
ENDMAP

NAME:  kennysheep_crisscross
TAGS:  decor
DEPTH: D, Depths
: ks_random_setup(_G, true, true)
MAP
 .x.x.x.x.x.x.
.t...t...t...t.
x.x.x.x.x.x.x.x
...t...t...t...
x.x.x.x.x.x.x.x
.t...t...t...t.
x.x.x.x.x.x.x.x
...t...t...t...
x.x.x.x.x.x.x.x
.t...t...t...t.
x.x.x.x.x.x.x.x
...t...t...t...
x.x.x.x.x.x.x.x
.t...t...t...t.
 .x.x.x.x.x.x.
ENDMAP

NAME:  kennysheep_doodads
TAGS:  decor
DEPTH: D, Depths
: ks_random_setup(_G, true, true)
MAP
      .x.
    ..xtx..
   .x..x..x.
 ..xtx...xtx..
.x..x..x..x..x.
xtx...xtx...xtx
.x..x..x..x..x.
...xtx...xtx...
.x..x..x..x..x.
xtx...xtx...xtx
.x..x..x..x..x.
 ..xtx...xtx..
   .x..x..x.
    ..xtx..
      .x.
ENDMAP

NAME:  kennysheep_decorative_pillar
TAGS:  transparent decor
DEPTH: D, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true, true)
MAP
     ...xtx....
    .....x......
   ..............
  ..x..........x..
 ..xx..........xx..
....................
.......wwwwww.......
......wwccccww......
......wccccccw.....x
x.....wccccccw....xt
tx....wccccccw.....x
x.....wccccccw......
......wwccccww......
.......wwwwww.......
....................
 ..xx..........xx..
  ..x..........x..
   ..............
    ......x.....
     ....xtx...
ENDMAP

NAME: nicolae_two_hexagons
DEPTH: D:8-, Depths
TAGS: transparent extra decor
SHUFFLE: ABCDEF, GHIJK, LMNOPQ, RSTUVW
SUBST: AGMNOPQSTUVW = ., BCDEFHIJKLR = x
MAP
      ......      ......
    ..........  ..........
  ......cc..........cc......
......BBccCC......KKccJJ......
....BBBBMMCCCC..KKKKSSJJJJ....
..ccBB..MM..CCccKK..SS..JJcc..
..ccLL..MM..NNccRR..SS..TTcc..
..AALLLLMMNNNNDDRRRRSSTTTTII..
..AA..LLccNN..DD..RRccTT..II..
..AA..QQccOO..DD..WWccUU..II..
..AAQQQQPPOOOODDWWWWVVUUUUII..
..ccQQ..PP..OOccWW..VV..UUcc..
..ccFF..PP..EEccGG..VV..HHcc..
....FFFFPPEEEE..GGGGVVHHHH....
......FFccEE......GGccHH......
  ......cc..........cc......
    ..........  ..........
      ......      ......
ENDMAP

NAME: amethyst_killhole
TAGS: extra decor
DEPTH: D, Elf
MAP
x@xx
xx.xxxx
 xx.x.x
  xx.xx
   xxx
ENDMAP

# A big river that often divides most of the map, with a guaranteed path
# across. This would ideally be done by a layout, but this vault seems to place
# well in testing and has the intended effect.
NAME: chequers_big_river
TAGS: no_pool_fixup transparent extra decor
SUBST: - = W:30 w P, ' = W . P:2
KMONS: P = plant
KFEAT: P = W / .
MAP
xxxxxxxxxxx
xxxxxxxxxxx
xxwwxxxxxxx
xxxwwxxxxxx
@.xxwwxxx.@
 .xwwwxx..
 .xxwwwx...
 .'-wwww''..
 .''-ww--''.@
 ..''-www-''....
  @.''--w--''''...@
   ..''-ww----''''....
    ..'--wwww----''''...@.......@.....
     .''---wwwww----W''''''''''''..''.@xxxxxxxx
     ..'''---wwwwwwW---'--------''''xxxxxxxxxxx
      @..'''-wwwwwwwWWWwwwwwwww----wwwxxxxxxxxx
        ..''------wwwWWW---wwwwwwwwwwwwwwwxxxxx
         ..'''''''--''''W''----wwwwwwwwwwxxxxxx
          @......''''.....'''''''''xxxxxxxxxxxx
                @.....   @......@......@xxxxxxx
ENDMAP

NAME: nicolae_lava_and_water
TAGS: no_pool_fixup transparent extra decor
DEPTH: D:6-, Depths, Zot
SHUFFLE: lw
KPROP: l = no_cloud_gen
MAP
  .....
  .wll....
  .wcwlww....
 ..llwlclwll.
 .lwwcwwlwcw.
 .lclwllcllw.
..wwlwcwlww..
.wllcllwlcl.
.wcwlwwcwwl.
.llwlclwll..
....wwlwcw.
   ....llw.
      .....
ENDMAP

NAME: nicolae_water_bricks
TAGS: no_pool_fixup transparent extra decor
DEPTH: D:6-, Depths
MAP
           w
      w   wxw@
     wxw wx..w
    wx.xwx...xw
   wx...x...xw
  wx...x...xw
 wx...xwx.xw
  wx.xwxwx.xw
   wx.xwx...xw
  wx...x...xw
 wx...x...xw
wx...xwx.xw
 w..xw wxw
 @wxw   w
   w
ENDMAP

NAME: palyth_stone_intersect
TAGS: decor extra transparent
DEPTH: D, Elf, Crypt
MAP
..............
..xx..xx..xx..
.xxxx....xxxx.
.xxxxx..xxxxx.
..xxxx..xxxx..
...xxx..xxx...
.x..........x.
.x..........x.
...xxx..xxx...
..xxxx..xxxx..
.xxxxx..xxxxx.
.xxxx....xxxx.
..xx..xx..xx..
..............
ENDMAP

NAME:   skrybe_limestone_x
TAGS:   decor extra transparent
DEPTH:  D, Depths
KMASK:  W = no_monster_gen
SUBST:  W : Wm
FTILE:  D = floor_limestone
COLOUR: D = brown
MAP
....    ....
.DD......DD.
.DDDD..DDDD.
..DWD..DWD..
 .DDDDDDDD.
 ...DWWD...
 ...DWWD...
 .DDDDDDDD.
..DWD..DWD..
.DDDD..DDDD.
.DD......DD.
....    ....
ENDMAP

NAME: chequers_decorated_corner
TAGS: decor extra transparent
DEPTH: D, Depths
SUBST: T = T:3 V:3 G:1
MAP
xxxxxxxxxx
x.......G@
x.TG.....@
x.Gxxxxxxx
x..x
xG.x
x@@x
ENDMAP

NAME: chequers_jeans
TAGS: decor extra transparent
DEPTH: D, Depths
SUBST: G = G.$
MAP
....@....
.xxxxxxx.
.xxxGxxx.
.xxx.xxx.
.xxx.xxx.
.xxx.xxx.
.xx...xx.
.xx...xx.
.xx...xx.
.xx...xx.
.xx...xx.
.........
ENDMAP

NAME:   chequers_mini_garden
TAGS:   decor extra transparent
DEPTH:  D
SUBST:  t = t-
COLOUR: - = green
COLOUR: . = brown / green / none
FTILE:  . = floor_pebble_red
FTILE:  t- = floor_grass_dark
MAP
....
.tt.
.tt.
....
ENDMAP

NAME:   chequers_garden
TAGS:   decor extra transparent
DEPTH:  D
SUBST:  t = t-
COLOUR: - = green
COLOUR: . = brown / green / none
FTILE:  . = floor_pebble_red
FTILE:  t- = floor_grass_dark
FTILE:  ' = floor_pebble_darkgray
MAP
''''''''
'''....'
''ttt..'
'.tt.t.'
'.t.tt.'
'..ttt''
'....'''
''''''''
ENDMAP

NAME: chequers_avenue
TAGS: decor extra transparent
DEPTH: D
SUBST: t = G:3 t
SHUFFLE: tG
MAP
xxxxxxxxxxxxxxxxxxxxxxxxx
.t.t.t.t.t.t.t.t.t.t.t.t.
@.......................@
.t.t.t.t.t.t.t.t.t.t.t.t.
xxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   chequers_arboretum
TAGS:   decor extra
DEPTH:  D
SUBST:  - = tt.
COLOUR: . = green
FTILE:  t. = floor_grass_dark
MAP
xxx+xxx
xt-.-tx
x-.-.-x
x.---.x
xt.-.tx
xxxxxxx
ENDMAP

NAME: ebering_dispersal_statue_hall
TAGS: decor extra
KFEAT: ^ = dispersal trap
MAP
xxxxx
.^G^.
xxxxx
ENDMAP

NAME:   amcnicky_mini_pool_small
TAGS:   decor extra transparent
SUBST:  p:wwwWWl
MAP
 xx.xx
xx...xx
x..p..x
..ppp..
x..p..x
xx...xx
 xx.xx
ENDMAP

NAME:   amcnicky_mini_rare_corridor_liquid
TAGS:   extra transparent decor
SUBST:  p:wl
MAP
xxxxxxxxxxx
xpppppppppx
@.........@
xpppppppppx
xxxxxxxxxxx
ENDMAP

NAME:   amcnicky_mini_corridor_feature
TAGS:   extra no_item_gen transparent
# Total weight: 100
SUBST:  p: ......GGGGttnlY
MAP
xx@xx
xp.px
xx.xx
xx.xx
xp.px
xx.xx
xx.xx
xp.px
xx@xx
ENDMAP

NAME:    nicolae_concentric_dashed_squares_mild
TAGS:    transparent extra decor luniq_nicocondashsquares
DEPTH:   D, Depths, Elf
SHUFFLE: DEFHJ/ZZZZZ
SUBST:   D : cnbvx, E : cnbvx, F : cnbvx, H : cnbvx, J : cnbvx, Z : cnbvx
: if you.absdepth() < 7 then
SUBST:   b = c
: end
MAP
JJ.JJJ.JJJ.JJJ.JJ
J...............J
..HH.HHH.HHH.HH..
J.H...........H.J
J...FF.FFF.FF...J
J.H.F.......F.H.J
..H...EE.EE...H..
J.H.F.E...E.F.H.J
J...F...D...F...J
J.H.F.E...E.F.H.J
..H...EE.EE...H..
J.H.F.......F.H.J
J...FF.FFF.FF...J
J.H...........H.J
..HH.HHH.HHH.HH..
J...............J
JJ.JJJ.JJJ.JJJ.JJ
ENDMAP

NAME:  nicolae_concentric_dashed_squares_wild
TAGS:  transparent extra decor luniq_nicocondashsquares
DEPTH: D, Depths, Elf
SUBST: D : cnbvxtGTU, E : cnbvx, F : cnbvx, H : cnbvx, J : cnbvx, K : cnbvx, \
       L : cnbvx, M : cnbvx, N : cnbvx, O : cnbvx, P : cnbvx, Q : cnbvx, \
       R : cnbvx, S : cnbvx, Z : cnbvx, a : cnbvx, p : cnbvx
: if you.absdepth() < 7 then
SUBST:   b = c
: end
MAP
FF.MMM.LLL.KKK.JJ
F...............J
..EE.OOO.NNN.HH..
S.E...........H.Q
S...FF.PPP.JJ...Q
S.a.F.......J.Z.Q
..a...EE.HH...Z..
R.a.p.E...H.p.Z.R
R...p...D...p...R
R.Z.p.H...E.p.a.R
..Z...HH.EE...a..
Q.Z.J.......F.a.S
Q...JJ.PPP.FF...S
Q.H...........E.S
..HH.NNN.OOO.EE..
J...............F
JJ.KKK.LLL.MMM.FF
ENDMAP

NAME:    nicolae_elevator_lobby_asterisk
TAGS:    transparent decor snakedec luniq_nicolobby
DEPTH:   D:2-, !D:$, Depths:2-, !Depths:$, Snake:2-, !Snake:$, Elf:2-, !Elf:$, \
         Crypt:2-, !Crypt:$
SHUFFLE: FJ, DE/FH
NSUBST:  E = 1={ / 1=}
SHUFFLE: {}/[]/()
SUBST:   DJ = x, F = @, H = T
MAP
   xDDDx
   x...xxxFFFx
   x.E.xxx...J
xxxx...xxx.H.J
x............J
x.G........xxx
x..........xxx
xxxx.......xxxx
 xxx..........x
 xxx........G.x
 J............x
 J.H.xxx...xxxx
 J...xxx.E.x
 xFFFxxx...x
       xDDDx
ENDMAP

NAME:    nicolae_elevator_lobby_plus
TAGS:    transparent decor luniq_nicolobby snakdec
DEPTH:   D:2-, !D:$, Depths:2-, !Depths:$, Snake:2-, !Snake:$, Elf:2-, !Elf:$, \
         Crypt:2-, !Crypt:$
# Chance of X sets of real stairs (not escape hatches): 1=30%, 2=60%, 3=10%
SHUFFLE: {}/[]/()/<>/<>, PQ/pq, RS/rs, !Z/yz, PR!/QSZ, DEF
SUBST:   pqrsyz = ., PR! : +., QSZ : nc, D = ., E = G, F = T
MAP
    xxxxxx@@@xxxxxx
    xccccc...cccccx
    xc...c...c...cx
    xc.(.c.F.c.}.cx
xxxxxc...c...c...cxxxxx
xcccccPQPc!Z!cPQPcccccx
xc...P...R...R...P...cx
xc.[.Q.D.S.E.S.D.Q.].cx
xc...P...R...R...P...cx
xcccccPQPc!Z!cPQPcccccx
xxxxxc...c...c...cxxxxx
    xc.{.c.F.c.).cx
    xc...c...c...cx
    xccccc...cccccx
    xxxxxx@@@xxxxxx
ENDMAP

NAME:    nicolae_figureground_pulse
TAGS:    transparent decor extra
DEPTH:   D, Depths
SHUFFLE: x.
MAP
          ....x....
         ....xxx....
        ....xxxxx....
     ....x.xxxxxxx.x....
........xxxxxxxxxxxxx........
.....x.xxxxxxxxxxxxxxx.x.....
..x.xxxxxxxxxxxxxxxxxxxxx.x..
.xxxxxxxxxxxxxxxxxxxxxxxxxxx.
..x.xxxxxxxxxxxxxxxxxxxxx.x..
.....x.xxxxxxxxxxxxxxx.x.....
........xxxxxxxxxxxxx........
     ....x.xxxxxxx.x....
        ....xxxxx....
         ....xxx....
          ....x....
ENDMAP

NAME:    nicolae_figureground_sparkle
TAGS:    transparent decor extra
DEPTH:   D, Depths
SHUFFLE: x.
MAP
       ..x..
      ..xxx..
     ....x....
    ....xxx....
   ....xxxxx....
  ......xxx......
 ......xxxxx......
....x.xxxxxxx.x....
.x.xxxxxxxxxxxxx.x.
xxxxxxxxxxxxxxxxxxx
.x.xxxxxxxxxxxxx.x.
....x.xxxxxxx.x....
 ......xxxxx......
  ......xxx......
   ....xxxxx....
    ....xxx....
     ....x....
      ..xxx..
       ..x..
ENDMAP

NAME:    dreamdust_mushroom_princess
TAGS:    transparent extra decor lairdec luniq_lairdec_plantage
DEPTH:   D, Lair, Elf
TILE:    G = dngn_statue_princess
: set_feature_name("granite_statue", "a statue of a princess")
SUBST:   p = ppp..
KMONS:   p = fungus
MAP
  .....
 ..ppp..
..ppppp..
.pp...pp.
.pp.G.pp.
.pp...pp.
..ppppp..
 ..ppp..
  .....
ENDMAP

NAME:    dreamdust_princess_bridge
TAGS:    extra decor transparent no_pool_fixup
DEPTH:   D, Elf
FTILE:   -G = floor_rough_white
FTILE:   .bt = floor_grass_dark
COLOUR:  . = green
TILE:    G = dngn_statue_princess
: set_feature_name("granite_statue", "a statue of a princess")
KMONS:   b = bush
MAP
 xxxxxxxxx
 x.......x
 x.t.-.t.x
 x..-G-..x
 x.t.-.t.x
 xx.....xx
 xxxb-bxxx
  xxw-wxx
xxxww-wwxxx
xbwww-wwwbx
@---------@
xbwww-wwwbx
xxxww-wwxxx
  xxw-wxx
   xb-bx
   xx@xx
ENDMAP

NAME:    dreamdust_princess_corridor
TAGS:    extra decor transparent
DEPTH:   D, Elf
TILE:    G = dngn_statue_princess
: set_feature_name("granite_statue", "a statue of a princess")
# Three variations
: if crawl.one_chance_in(3) then
FTILE:   .Gtp = floor_grass_dark
COLOUR:  .Gtp = green
KMONS:   p = bush
: elseif crawl.one_chance_in(2) then
FTILE:   .Gtp = floor_dirt
SUBST:   p = t
COLOUR:  t = lightred / red / yellow
TILE:    t = dngn_tree_lightred / dngn_tree_red / dngn_tree_yellow
: else
KFEAT:   t = demonic_tree
FTILE:   .Gtp = floor_nerves_magenta
COLOUR:  .Gtp = magenta
KMONS:   p = demonic plant
: end
MAP
xx@xx
xx.xx
xt.tx
xp.px
xt.tx
xp.px
xt.tx
xp.px
xG.Gx
xp.px
xt.tx
xp.px
xt.tx
xp.px
xt.tx
xx.xx
xx@xx
ENDMAP

NAME:   nicolae_diode_basic
TAGS:   transparent luniq_nico_xporter extra_post_overflow
DEPTH:  D:8-, Depths, Zot
MARKER: D = lua:transp_loc("nico_diode_basic")
MARKER: E = lua:transp_dest_loc("nico_diode_basic")
MAP
xxxxxxxxxxxxx
xbcccccccccbx
.....GcG.....
......n......
@....DnE....@
......n......
.....GcG.....
xbcccccccccbx
xxxxxxxxxxxxx
ENDMAP

# Can have an arrangement of 2 in/2 out, 3 in/1 out, or 1 in/3 out.
NAME:    nicolae_diode_intersection
TAGS:    transparent luniq_nico_xporter extra_post_overflow
DEPTH:   D:8-, Depths, Zot
KMASK:   'TPQRSpqrs = opaque
SHUFFLE: Pp/qQ/Rr/sS, Qq, Rr
MARKER:  P = lua:transp_loc("nico_diodex_p")
MARKER:  Q = lua:transp_loc("nico_diodex_q")
MARKER:  R = lua:transp_loc("nico_diodex_r")
MARKER:  S = lua:transp_loc("nico_diodex_s")
MARKER:  p = lua:transp_dest_loc("nico_diodex_p")
MARKER:  q = lua:transp_dest_loc("nico_diodex_q")
MARKER:  r = lua:transp_dest_loc("nico_diodex_r")
MARKER:  s = lua:transp_dest_loc("nico_diodex_s")
MAP
     xx..@..xx
     xb.....bx
     xc.....cx
     xc.....cx
    xxc.....cxx
xxxxxccG.R.Gccxxxxx
xbccccccnnnccccccbx
.....GcG'r'GcG.....
......n'''''n......
@....Pnp'T'Qnq....@
......n'''''n......
.....GcG'S'GcG.....
xbccccccnnnccccccbx
xxxxxccG.s.Gccxxxxx
    xxc.....cxx
     xc.....cx
     xc.....cx
     xb.....bx
     xx..@..xx
ENDMAP

NAME:    nicolae_diode_quadrants
TAGS:    transparent luniq_nico_xporter extra_post_overflow
DEPTH:   D:8-, Depths, Zot
SHUFFLE: Pp, Qq, Rr, Ss
MARKER:  P = lua:transp_loc("nico_diodequads_p")
MARKER:  Q = lua:transp_loc("nico_diodequads_q")
MARKER:  R = lua:transp_loc("nico_diodequads_r")
MARKER:  S = lua:transp_loc("nico_diodequads_s")
MARKER:  p = lua:transp_dest_loc("nico_diodequads_p")
MARKER:  q = lua:transp_dest_loc("nico_diodequads_q")
MARKER:  r = lua:transp_dest_loc("nico_diodequads_r")
MARKER:  s = lua:transp_dest_loc("nico_diodequads_s")
MAP
         xxx
         xbx
         xcx
   @..xxxxcxxxx..@
   ...xbcccccbx...
   ......GcG......
   xx.....n.....xx
   xb....Pnp....bx
   xc.....n.....cx
xxxxcG.s.GcG.Q.Gcxxxx
xbccccnnncccnnnccccbx
xxxxcG.S.GcG.q.Gcxxxx
   xc.....n.....cx
   xb....rnR....bx
   xx.....n.....xx
   ......GcG......
   ...xbcccccbx...
   @..xxxxcxxxx..@
         xcx
         xbx
         xxx
ENDMAP

NAME:   nicolae_diode_stairs
TAGS:   luniq_nico_xporter extra_post_overflow
DEPTH:  D:8-, Depths, Zot
: if you.depth() == 1 then
SUBST: S = )}]
: elseif you.depth() ~= dgn.br_depth(you.branch()) then
SUBST: S = (){}[]
: else
SUBST: S = ({[
: end
MARKER: D = lua:transp_loc("nico_diode_stairs_in")
MARKER: E = lua:transp_dest_loc("nico_diode_stairs_in")
MARKER: F = lua:transp_loc("nico_diode_stairs_out")
MARKER: H = lua:transp_dest_loc("nico_diode_stairs_out")
MAP
xxxxxxxxxxxxxxxxxxx
xbcccccccbcccccccbx
.....GcG...GcG.....
......n.....n......
@....DnE.S.FnH....@
......n.....n......
.....GcG...GcG.....
xbcccccccbcccccccbx
xxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   nicolae_transporter_circle
TAGS:   transparent luniq_nico_xporter extra_post_overflow
DEPTH:  D:8-, Depths, Zot
MARKER: P = lua:transp_loc("nico_xportcircle_p")
MARKER: Q = lua:transp_loc("nico_xportcircle_q")
MARKER: R = lua:transp_loc("nico_xportcircle_r")
MARKER: S = lua:transp_loc("nico_xportcircle_s")
MARKER: p = lua:transp_dest_loc("nico_xportcircle_p")
MARKER: q = lua:transp_dest_loc("nico_xportcircle_q")
MARKER: r = lua:transp_dest_loc("nico_xportcircle_r")
MARKER: s = lua:transp_dest_loc("nico_xportcircle_s")
MAP
    xx..@..xx
    xb.....bx
    xc.....cx
   xxc.....cxx
xxxxccG...Gccxxxx
xbcccccp.Qcccccbx
....Gcnc.cncG....
.....Pcbnbcq.....
@......nnn......@
.....scbnbcR.....
....Gcnc.cncG....
xbcccccS.rcccccbx
xxxxccG...Gccxxxx
   xxc.....cxx
    xc.....cx
    xb.....bx
    xx..@..xx
ENDMAP

# The central area is laid out such that when you stand on a transporter,
# the only landing site you can see is the one you'll go to. Hopefully
# this helps make things a little clearer for players trying to figure
# out where all the transporters go. Or maybe it won't.
NAME:   nicolae_transporter_intersection
TAGS:   transparent luniq_nico_xporter extra_post_overflow
DEPTH:  D:8-, Depths, Zot
MARKER: P = lua:transp_loc("nico_transportx_s")
MARKER: Q = lua:transp_loc("nico_transportx_w")
MARKER: R = lua:transp_loc("nico_transportx_n")
MARKER: S = lua:transp_loc("nico_transportx_e")
MARKER: p = lua:transp_dest_loc("nico_transportx_s")
MARKER: q = lua:transp_dest_loc("nico_transportx_w")
MARKER: r = lua:transp_dest_loc("nico_transportx_n")
MARKER: s = lua:transp_dest_loc("nico_transportx_e")
MAP
    xx..@..xx
    xb.....bx
    xc.....cx
   xxc.....cxx
xxxxccG...Gccxxxx
xbcccccPcrcccccbx
....GccncnccG....
.....qnnnnnQ.....
@....ccnbncc....@
.....Snnnnns.....
....GccncnccG....
xbcccccpcRcccccbx
xxxxccG...Gccxxxx
   xxc.....cxx
    xc.....cx
    xb.....bx
    xx..@..xx
ENDMAP

# https://www.conwaylife.com/forums/viewtopic.php?t=&p=140258#p140258
NAME:  nicolae_eternal_life
TAGS:  transparent extra decor
DEPTH: D, Depths
SUBST: c : ccccbv, x : xxxxmt
MAP
..cc.c..cc.c..cc.c..cc.c..
..c.cc..c.cc..c.cc..c.cc..
cc....cc....cc....cc....cc
.c.xx..c.xx..c.xx..c.xx..c
c..xx.c..xx.c..xx.c..xx.c.
cc....cc....cc....cc....cc
..cc.c..cc.c..cc.c..cc.c..
..c.cc..c.cc..c.cc..c.cc..
cc....cc....cc....cc....cc
.c.xx..c.xx..c.xx..c.xx..c
c..xx.c..xx.c..xx.c..xx.c.
cc....cc....cc....cc....cc
..cc.c..cc.c..cc.c..cc.c..
..c.cc..c.cc..c.cc..c.cc..
cc....cc....cc....cc....cc
.c.xx..c.xx..c.xx..c.xx..c
c..xx.c..xx.c..xx.c..xx.c.
cc....cc....cc....cc....cc
..cc.c..cc.c..cc.c..cc.c..
..c.cc..c.cc..c.cc..c.cc..
cc....cc....cc....cc....cc
.c.xx..c.xx..c.xx..c.xx..c
c..xx.c..xx.c..xx.c..xx.c.
cc....cc....cc....cc....cc
..cc.c..cc.c..cc.c..cc.c..
..c.cc..c.cc..c.cc..c.cc..
ENDMAP

NAME:    nicolae_hexahallways
TAGS:    transparent extra decor
DEPTH:   D, Depths
SHUFFLE: KL, MN, OP
: if crawl.one_chance_in(3) and you.depth() > 1 then
SUBST:   K = ({[
: end
: if crawl.one_chance_in(3) and you.depth() ~= dgn.br_depth(you.branch()) then
SUBST:   L = )}]
: end
SUBST:   D : ....TV, E : ....TV, F : ....TV, H : ....tG, J : ....tG, \
         K : ....tG, L : ....tG, Q : x+, M : x++, O : x++, NP : x
MARKER:  + = lua:props_marker{ connected_exclude="true" }
MAP
            x+x       x+x
           xx.xx     xx.xx
          xx...xx   xx...xx
      xx+xx..D..xx+xx..D..xx+xx
     xx...xx...xx...xx...xx...xx
    xx.....xx.xx.....xx.xx.....xx
  x+x...H...M+O...J...O+M...H...x+x
 xx.xx.....xx.xx.....xx.xx.....xx.xx
xx...xx...xx...xx...xx...xx...xx...xx
+..F..xx+xx..E..xx+xx..E..xx+xx..F..+
xx...xx...xx...xx...xx...xx...xx...xx
 xx.xx.....xx.xx.....xx.xx.....xx.xx
  x+Q...K...N+P...L...P+N...K...Q+x
 xx.xx.....xx.xx.....xx.xx.....xx.xx
xx...xx...xx...xx...xx...xx...xx...xx
+..F..xx+xx..E..xx+xx..E..xx+xx..F..+
xx...xx...xx...xx...xx...xx...xx...xx
 xx.xx.....xx.xx.....xx.xx.....xx.xx
  x+x...H...M+O...J...O+M...H...x+x
    xx.....xx.xx.....xx.xx.....xx
     xx...xx...xx...xx...xx...xx
      xx+xx..D..xx+xx..D..xx+xx
          xx...xx   xx...xx
           xx.xx     xx.xx
            x+x       x+x
ENDMAP

NAME:    nicolae_kite_square_tiling_tiny
TAGS:    transparent extra decor no_pool_fixup
DEPTH:   D, Depths
SHUFFLE: cbnvxtwl
MAP
      .....     ...
    ...c.c... ...c.
  ...b.....b...b....
...c....b....c....b.
.b...b.....b...b.....
.......c.c.......c.c.
 .c.c.......c.c.......
 .....b...b.....b...b.
  .b....c....b....c...
 .....b...b.....b...b.
 .c.c.......c.c.......
.......c.c.......c.c.
.b...b.....b...b.....
...c....b....c....b.
.b...b.....b...b.....
.......c.c.......c.c.
 .c.c.......c.c.......
 .....b...b.....b...b.
  .b....c....b....c...
  ....b...b.....b...
   .c... ...c.c...
   ...     .....
ENDMAP

NAME:  nicolae_titane
TAGS:  transparent decor extra
DEPTH: D, Depths
MAP
    ..v..   .   ..
  ....v...........
  vv..v..vvv.vvv..
 ...v..vv...v...v..
 ...v...v...v...v...
 ..vvv..v...v..vvv..
..v...v..vvv..v...v..
..v...v...v...v...v...
.vv...v...v..vv...v...v
v..vvv.vvv..v..vvv.vvv.
v...........v..........
v..vvv.vvv..v..vvv.vvv.
.vv...v...v..vv...v...v
..v...v...v...v...v...
..v...v..vvv..v...v..
 ..vvv..v...v..vvv..
 ...v...v...v...v...
 ...v..vv...v...v..
  vv..v..vvv.vvv..
  ....v...........
    ..v..   .   ..
ENDMAP

NAME:   reono_crystal_passage
TAGS:   transparent extra decor
DEPTH:  D, Depths
MAP
mmmm@mmmm
mbbm.mbbm
mbbm.mbbm
mmmm.mmmm
@.......@
mmmm.mmmm
mbbm.mbbm
mbbm.mbbm
mmmm@mmmm
ENDMAP

NAME:    nicolae_houndstooth_variations
TAGS:    transparent extra
DEPTH:   D, Depths
SHUFFLE: DEFH/JKLM/NOPQ/RSZ`, DJNR/EKOS/FLPZ/HMQ`
SUBST:   DEJKPQZ` = x, FHLMNORS = .
MAP
xxxxDEFHxxxxDEFHxxxxDEFH
xxxxJKLMxxxxJKLMxxxxJKLM
xxxxNOPQxxxxNOPQxxxxNOPQ
xxxxRSZ`xxxxRSZ`xxxxRSZ`
DJNR....DJNR....DJNR....
EKOS....EKOS....EKOS....
FLPZ....FLPZ....FLPZ....
HxQ`....HxQ`....HxQ`....
xxxxDEFHxxxxDEFHxxxxDEFH
xxxxJKLMxxxxJKLMxxxxJKLM
xxxxNOPQxxxxNOPQxxxxNOPQ
xxxxRSZ`xxxxRSZ`xxxxRSZ`
DJNR....DJNR....DJNR....
EKOS....EKOS....EKOS....
FLPZ....FLPZ....FLPZ....
HxQ`....HxQ`....HxQ`....
xxxxDEFHxxxxDEFHxxxxDEFH
xxxxJKLMxxxxJKLMxxxxJKLM
xxxxNOPQxxxxNOPQxxxxNOPQ
xxxxRSZ`xxxxRSZ`xxxxRSZ`
DJNR....DJNR....DJNR....
EKOS....EKOS....EKOS....
FLPZ....FLPZ....FLPZ....
HxQ`....HxQ`....HxQ`....
ENDMAP

NAME:  nicolae_twisty_statue_hallways
TAGS:  transparent decor snakedec extra
DEPTH: D, Depths, Snake, Elf
: if you.in_branch("Snake") then
:   snake_statue_setup (_G, "g")
: else
SUBST:  g = G
: end
MAP
    xxxxx
 @..x.x.x..@
 ....x.x....
 ..G.xgx.G..
xx...x.x...xx
x.xxx.x.xxx.x
xx.G.xxx.G.xx
x.xxx.x.xxx.x
xx...x.x...xx
 ..G.xgx.G..
 ....x.x....
 @..x.x.x..@
    xxxxx
ENDMAP

NAME:    nicolae_the_louvre
TAGS:    transparent decor extra
DEPTH:   D, Depths, Pan
SHUFFLE: vm
MAP
        .....
       .......
      ....v....
     ....v.v....
    ....v.m.v....
   ....v.v.v.v....
  ....v.m.v.m.v....
 ....v.v.v.v.v.v....
....v.m.v.m.v.m.v....
...v.v.v.v.v.v.v.v...
..v.m.v.m.v.m.v.m.v..
...v.v.v.v.v.v.v.v...
....v.m.v.m.v.m.v....
 ....v.v.v.v.v.v....
  ....v.m.v.m.v....
   ....v.v.v.v....
    ....v.m.v....
     ....v.v....
      ....v....
       .......
        .....
ENDMAP

# So named because the empty space in the subvaults kind of looks like letters.
NAME:  nicolae_letterblocks
TAGS:  transparent extra
DEPTH: D:4-, Depths, Elf, Snake, Crypt
: local glifz = "DEFHJKLMNOPQRSZapqrsyz-'`"
: for i = 1, string.len(glifz), 1 do
:    subvault(string.sub(glifz, i, i) .. " : nico_letterblock")
: end
MAP
        DDD
        DDD
        DDDEEE
      KKKccEEE
      KKKccEEEFFF
      KKKLLLccFFF
    PPPccLLLccFFFHHH
    PPPccLLLMMMccHHH
    PPPQQQccMMMccHHHJJJ
  aaaccQQQccMMMNNNccJJJ
  aaaccQQQRRRccNNNccJJJ
  aaapppccRRRccNNNOOO
yyyccpppccRRRSSSccOOO
yyyccpppqqqccSSSccOOO
yyyzzzccqqqccSSSZZZ
   zzzccqqqrrrccZZZ
   zzz---ccrrrccZZZ
      ---ccrrrsss
      ---'''ccsss
         '''ccsss
         '''```
            ```
            ```
ENDMAP

NAME:    nicolae_letter_subblock
TAGS:    unrand transparent nico_letterblock allow_dup no_dump
DEPTH:   D:4-, Depths, Elf, Snake, Crypt
SHUFFLE: DEF/-''/'--/'--/'--/'--/'-'
SUBST:   D- : c, EF' = .
MAP
...
DED
.F.
ENDMAP

NAME:    nicolae_tricolors
TAGS:    transparent allow_dup luniq no_tide no_pool_fixup decor
DEPTH:   D:4-, Depths, Zot, Shoals
: local arrange = crawl.random2(7)
:     if arrange == 0 then
SUBST:   DEJMPSZ = w, FKNQ = l, HLOR = c
: elseif arrange == 1 then
SUBST:   DHLOR = w, EJMPS = l, FKNQZ = c
: elseif arrange == 2 then
SUBST:   DJNOS = w, EKLPZ = l, FHMQR = c
: elseif arrange == 3 then
SUBST:   DEFHK = w, OQRSZ = l, JLMNP = c
: elseif arrange == 4 then
SUBST:   DHLMNQZ = w, EFJK = l, OPRS = c
: elseif arrange == 5 then
SUBST:   DHLNQZ = w, EFMRS = l, JKOP = c
: else
SUBST:   DEFRSZ = w, HJKOPQ = l, LMN = c
: end
SHUFFLE: wlc
KPROP:   l = no_cloud_gen
MAP
........
.DDEEFF.
.HHJJKK.
.LLMMNN.
.OOPPQQ.
.RRSSZZ.
........
ENDMAP

NAME:   nicolae_zig_zag_zippers
TAGS:   transparent decor snakedec extra
DEPTH:  D:4-, Depths, Snake, Elf, Zot
WEIGHT: 5 (Snake), 10
MAP
@....
..cc....
.cc..cc....
....cc..cc....
   ....cc..cc....
      ....cc..cc....
         ....cc..cc.
      ....cc..cc....
   ....cc..cc....
....cc..cc....
.cc..cc....
....cc..cc....
   ....cc..cc....
      ....cc..cc....
         ....cc..cc.
            ....cc..
               ....@
ENDMAP

# If there's ever a "cache of rotting food" decor feature, it should go here.
NAME:   nicolae_abandoned_food_shop
TAGS:   transparent decor extra
DEPTH:  D:6-, Depths
KFEAT:  a = abandoned_shop
KFEAT:  ` = cache_of_meat / cache_of_fruit / cache_of_baked_goods
NSUBST: ` = 3=` / 2=`. / .
MAP
.....
.```.
.`a`.
.```.
.....
ENDMAP

NAME:    nicolae_escalator
TAGS:    extra decor transparent
DEPTH:   D:8-, !D:$, Depths:2-, !Depths:$
SHUFFLE: {}/[]/()
SUBST:   + : +++@
MAP
xx+xxx
x...vxx
+.}.vvxx
x....vvxx
xvv...vvxx
xxvv...vvxx
 xxvv...vvx
  xxvv...vxx
   xxvv....x
    xxvv.{.+
     xxv...x
      xxx+xx
ENDMAP

NAME:   nicolae_shoulda_brought_a_snack
TAGS:   transparent decor extra
DEPTH:  D:6-, Depths
: if crawl.coinflip() then
KITEM:  S = spriggan skeleton
KFEAT:  ` = cache_of_meat
: else
KITEM:  S = kobold skeleton
KFEAT:  ` = cache_of_fruit
: end
NSUBST: ` = 4=` / - / `-
KPROP:  S`- = no_tele_into
KMASK:  S`- = opaque
KMASK:  S`- = no_monster_gen
KMASK:  S`- = no_item_gen
KMASK:  S`- = no_trap_gen
MAP
.........
.........
..mmmmm..
..m```m..
..m`S`m..
..m```m..
..mmmmm..
.........
.........
ENDMAP

#####################################################################
#
# <<2>> Inaccessible items
#       Various vaults themed around inaccessible items. No monsters,
#       but perils (water, lava, traps) are okay.
#
#####################################################################

NAME:  corner_web_ring
TAGS:  extra transparent
DEPTH: D, Depths, Elf, Crypt
KFEAT: d = web
KITEM: d = any jewellery
MAP
xxxxxxx
xd....@
x.xxxxx
x.x
x.x
x.x
x@x
ENDMAP

NAME:  feat_on_display
DEPTH: D, Depths, Elf, Crypt
TAGS:  serial_glass_rare allow_dup transparent no_descent
SUBST: ? = TUl
KMASK: TUl = opaque
KMASK: TUl = no_monster_gen
KMASK: TUl = no_item_gen
KPROP: TUl = no_tele_into
: serial_glass_setup(_G, true)
MAP
.....
.mmm.
.m?m.
.mmm.
.....
ENDMAP

NAME:   item_on_display_a_b
TAGS:   serial_glass_rare allow_dup transparent no_descent
DEPTH:  D, Depths, Elf, Crypt
SUBST:  % = %:27 *:12 |:1
KMASK:  %*| = opaque
KMASK:  %*| = no_monster_gen
KMASK:  %*| = no_item_gen
KPROP:  %*| = no_tele_into
: serial_glass_setup(_G, true)
MAP
.....
.mmm.
.m%m.
.mmm.
.....
ENDMAP

# Identical in feature and content to item_on_display_b, only that it
# contains within an unseen horror, by due.
NAME:   unseen_surprise_small
TAGS:   serial_glass_rare allow_dup no_wall_fixup transparent no_descent
WEIGHT: 1
DEPTH:  D:8-, Depths, Elf, Crypt
KMONS:  1 = generate_awake unseen_horror
KITEM:  1 = elf skeleton, | / *
KMASK:  1 = opaque
MAP
.....
.mmm.
.mam.
.mmm.
.....
ENDMAP

# Unseen surprise! by due (and dpeg).
NAME:   due_unseen_surprise
TAGS:   serial_glass_rare no_wall_fixup luniq transparent no_descent
DEPTH:  D, Elf
: local wt = (you.absdepth() - 10) * (you.absdepth() - 10)
: kmons("a = generate_awake unseen horror w:" .. wt .. " / nothing w:40")
KMONS:  b = generate_awake unseen horror
: if you.absdepth() < 11 or you.absdepth() < crawl.random2(27) then
SUBST:  a = %, b = %**
: else
:   if crawl.coinflip() == 0 then
KITEM: a = elf skeleton / nothing w:5, * / %
KITEM: b = elf skeleton, *
:   else
KITEM: a = elf skeleton / nothing w:5, % / | w:1
KITEM: b = elf skeleton, |
:   end
: end
KPROP:  ab%* = no_tele_into
KMASK:  ab%* = opaque
: serial_glass_setup(_G, false)
MAP
........@
.........
..mmmmm..
..maaam..
..mabam..
..maaam..
..mmmmm..
.........
.........
ENDMAP

NAME:  minmay_statues_item
TAGS:  extra transparent no_descent
DEPTH: D, Depths
KPROP: % = no_tele_into
KMASK: % = opaque
MAP
.....
.GcG.
.c%c.
.GcG.
.....
ENDMAP

NAME:  corexii_item_surrounded_by_moat
DEPTH: D:1-7
TAGS:  no_pool_fixup no_monster_gen no_item_gen allow_dup extra transparent
TAGS:  no_descent
KPROP: % = no_tele_into
KMASK: % = opaque
MAP
.....
.www.
.w%w.
.www.
.....
ENDMAP

NAME:   water_maze_lemuel
TAGS:   no_pool_fixup uniq_water_maze_lemuel no_descent
WEIGHT: 5
DEPTH:  D:5-, Depths
KITEM:  > = scroll of teleportation pre_id q:3
KFEAT:  > = >
MAP
   wwwwwwwww
  wwcccccccww
 wwccwwwwwccww
wwccwwcccwwccww
wccwwccwccwwccw
wcwwccwwwccwwcw
wcwcc*wcwwccwcw
wcwc*>*ccwwcwcw
wcwcc*ccwwccwcw
wcwwcccwwccwwcw
wccwwccwccwwccw
wwccwwcwcwwccww
 wwccwwwcwccww
  wwcccccwcww
   wwwwwwwww
ENDMAP

NAME:   water_boxes_lemuel
TAGS:   no_pool_fixup uniq_water_maze_lemuel no_descent
WEIGHT: 5
DEPTH:  D:5-, Depths, Swamp
KMONS:  * = fungus
KFEAT:  * = *
NSUBST: a = 1:+ / *:x
NSUBST: b = 1:+ / *:x
NSUBST: c = 1:+ / *:x
NSUBST: d = 1:+ / *:x
KPROP:  *+ = no_tele_into
MAP
  wwwwwwww
 wwwwwwwwww
wwxaxwwxbxww
wwa*awwb*bww
wwxaxwwxbxww
wwwwwwwwwwww
wwwwwwwwwwww
wwxdxwwxcxww
wwd*dwwc*cww
wwxdxwwxcxww
 wwwwwwwwww
  wwwwwwww
ENDMAP

# Transporter accident (mumra)
NAME:   mumra_transporter_accident
TAGS:   transparent extra no_descent
WEIGHT: 1
DEPTH:  D:5-, Depths, Lair, Elf, !Elf:$, Orc
SUBST:  X = m.
KITEM:  A = human skeleton
# Prevent random teleportation getting you stuck
KMASK:  AB = opaque
KPROP:  AB = no_tele_into
KFEAT:  A = floor
KFEAT:  B = floor
MAP
     ....
    .XXXX.
   .XmmmmX.
  .XmmmmmmX.
  .XmmBAmmX.
  .XmmmmmmX.
   .XmmmmX.
    .XXXX.
     ....
ENDMAP

####################################################################
#
# <<3>> Supply closet vaults
#       (vaults with items and no risk).
#
####################################################################

NAME:   supply_closet_lemuel
TAGS:   no_monster_gen extra transparent
DEPTH:  D:1-9
ITEM:   stone w:15 / boomerang / spear / any potion w:10
MAP
x+xx
xddx
xddx
xxxx
ENDMAP

NAME:    minmay_variable_closet
TAGS:    extra transparent
DEPTH:   D:9-, Depths
ITEM:    any weapon, any missile, any armour, any scroll
ITEM:    any jewellery, any potion, any book
SUBST:   $ : $ZYXW
SUBST:   $ : $%defghij
SUBST:   W = $%defghij
SUBST:   Z = def
SUBST:   Y = gi
SUBST:   X = hj
MAP
x+xx
x$$x
x$$x
xxxx
ENDMAP

NAME:   library_closet
TAGS:   extra transparent
DEPTH:  D:9-, Depths, Elf, Crypt, Snake, Orc
WEIGHT: 5
ITEM:   any book w:20 / any scroll / $
TILE:   c = wall_studio
MAP
x+xc
xddx
xddx
cxxx
ENDMAP

NAME:   eino_small_chamber_without_monster
TAGS:   allow_dup extra ruin_lair ruin_abyss transparent
DEPTH:  D:4-, Depths, Lair, Abyss
KFEAT:  > = abyssal_stair
: if you.in_branch("Abyss") then
SUBST:  * = >
: end
MAP
 xxxxx
xx...xx
x..*..x
x.....x
xx...xx
 x...x
ENDMAP

NAME:   eino_tiny_chamber
TAGS:   allow_dup extra transparent
DEPTH:  D:2-, Depths, Elf, Crypt
MAP
xxxxx
x...x
x.*.+
x...x
xxxxx
ENDMAP

NAME: nrook_loot_triangle
TAGS: extra
DEPTH: D, Depths, Elf, Snake, Dis
MAP
    v
   vvv
  vv.vv
 vv.*.vv
vvvv@vvvv
ENDMAP

NAME:  minmay_gold_behind_fungi
TAGS:  extra no_monster_gen transparent
DEPTH: D, Depths
MONS:  fungus, toadstool
NSUBST: 1 = 2=2 / 4=12 / 1
MAP
11111
1$$$1
1$$$1
1$$$1
11111
ENDMAP

NAME:   corexii_mini_fake_secret_closet
DEPTH:  D:4-, Depths
WEIGHT: 1
TAGS:   no_monster_gen no_item_gen allow_dup extra transparent
NSUBST: + = 1:+ / *:x, = = 1:+ / *:x
SUBST:  d = %%%., e = **%.
MAP
xxxxxxx
+dd=eex
xdd=eem@
xxxxxxx
ENDMAP

NAME:   evilmike_butchery
TAGS:   transparent no_item_gen extra
DEPTH:  D:9-, Depths
KFEAT:  C = cache_of_meat
SUBST:  . = ..", X = xxB
KPROP:  "B = bloody
SUBST:  " = ., B = x
NSUBST: . = 5:d / 10=d. / 2:e / 1:e. / *=.f
: dgn.delayed_decay(_G, 'e', 'minotaur corpse')
ITEM:   hand axe
SUBST:  ' = .
MAP
xxxxxxxxx
xXXXXXXXx
xX....CXx
xX.....Xx
+'.....Xx
xX.....Xx
xXC....Xx
xXXXXXXXx
xxxxxxxxx
ENDMAP

NAME:   dk_vineyard_1
TAGS:   transparent no_item_gen no_monster_gen uniq_vineyard extra
DEPTH:  D:2-12
WEIGHT: 4
ITEM:   any potion
KFEAT:  C = cache_of_fruit
NSUBST: . = 6 = d. / *:.
FTILE:  .dpC : floor_moss / floor_grass_dark
COLOUR: .d = green
: decorative_floor(_G, 'p', "garden patch")
MAP
xxxxxxxxx
xWWWWWWWx
xWC...pWx
xW.....Wx
xW.....W+
xW.....Wx
xW.....Wx
xWp...CWx
xWWWWWWWx
xxxxxxxxx
ENDMAP

NAME:   dk_vineyard_2
TAGS:   no_item_gen no_monster_gen uniq_vineyard extra transparent
DEPTH:  D:2-12
WEIGHT: 4
ITEM:   any potion
NSUBST: . = 4 = d' / *:'
FTILE:  d' = floor_grass_dark
FTILE:  " = floor_moss
COLOUR: d' = green
MAP
xxxxxxxx
x"...."x
x"WWWW"+
x"...."x
xxxxxxxx
ENDMAP

NAME:   dk_vineyard_3
TAGS:   no_item_gen no_monster_gen uniq_vineyard extra transparent
DEPTH:  D:2-12
WEIGHT: 4
ITEM:   any potion / nothing
NSUBST: . = 4:d / *:'
KFEAT:  w = shallow_water
FTILE:  'd = floor_grass_dark
FTILE:  " = floor_moss
COLOUR: d' = green
MAP
""..""
"..ww.
".ww."
.ww.."
".ww..
.ww.."
"...""
ENDMAP

# Wand duel gone wrong.
NAME:   nicolae_wand_duel
DEPTH:  D:6-
WEIGHT: 1
KITEM:  d = any beam wand / any blast wand / wand of flame
TAGS:   no_hmirror no_vmirror no_monster_gen no_item_gen extra transparent
SUBST:  a = a A:4, b = b B:4
KPROP:  ABd = bloody
SUBST:  A = a, B = b
NSUBST: a = 1:c / *:. , b = 1:c / *:.
: dgn.delayed_decay(_G, 'c', 'human corpse')
MAP
  aaa.....bbb
 aaaaa...bbbbb
aaaaaaa.bbbbbbb
aaadaaa.bbbdbbb
aaaaaaa.bbbbbbb
 aaaaa...bbbbb
  aaa.....bbb
ENDMAP

NAME:  mrwooster_statue_mirror
TAGS:  no_item_gen no_monster_gen extra luniq decor transparent
DEPTH: D:2-12
NSUBST: a : 3:% / *:.
MAP
...........
..x..G..x..
..xxaaaxx..
..xxxxxxx..
..xxaaaxx..
..x..G..x..
...........
ENDMAP

NAME:   nicolae_benzene_ring
TAGS:   transparent extra decor
DEPTH:  D:6-, Depths
ITEM:   any ring
NSUBST: d = 1:d / *:.
MAP
 xxxxxxxxxx...xxxxxxxxxx
 xxxxxxxx...x...xxxxxxxx
 xxxxxx...xxxxx...xxxxxx
 xxxx.d.x...xxxxx...xxxx
 xx...xxxxx...xxxxx...xx
 ...x.xxxxxxx...xxxxx...
x.xxx.xxxxxxxxxd..xxxxx.x
x.xxx.xxxxxxxxxxx...xxx.x
x.xxx.xxxxxxxxxxxxx...x.x
x.xxx.xxxxxxxxxxxxxxx...x
x.xxx.xxxxxxxxxxxxxxxxx.x
x.xxxdxxxxxxxxxxxxxxxxxdx
x.xxx.xxxxxxxxxxxxxxxxx.x
x.xxx.xxxxxxxxxxxxxxx...x
x.xxx.xxxxxxxxxxxxx...x.x
x.xxx.xxxxxxxxxxx...xxx.x
x.xxx.xxxxxxxxxd..xxxxx.x
 ...x.xxxxxxx...xxxxx...
 xx...xxxxx...xxxxx...xx
 xxxx.d.x...xxxxx...xxxx
 xxxxxx...xxxxx...xxxxxx
 xxxxxxxx...x...xxxxxxxx
 xxxxxxxxxx...xxxxxxxxxx
ENDMAP

NAME: nicolae_straight_to_the_point
TAGS: no_item_gen transparent extra
DEPTH: D:8-, !D:$
KMASK: i> = opaque
KITEM: >i = any / any good_item / star_item w:1 / $ / $ good_item w:1
KFEAT: > = >
NSUBST: a = @ / .
CLEAR: _
MAP
@........           ........@
..c......           ......c..
.ccc...c.           .c...ccc.
..ccc.cc.           .cc.ccc..
...ccccc.           .ccccc...
....cccc.           .cccc....
...ccccc.           .ccccc...
..cccccc.           .cccccc..
.........           .........
         _
          _
           ..aaa..
           .cmmmc.
           .miiim.
           .mi>im.
           .miiim.
           .cmmmc.
           .......
                  _
                   _
.........           .........
..cccccc.           .cccccc..
...ccccc.           .ccccc...
....cccc.           .cccc....
...ccccc.           .ccccc...
..ccc.cc.           .cc.ccc..
.ccc...c.           .c...ccc.
..c......           ......c..
@........           ........@
ENDMAP

NAME: nicolae_zen_rock_garden
TAGS: no_monster_gen no_trap_gen no_item_gen extra decor transparent
DEPTH: D:4-12
SUBST: Q = TPW, T = tP, P = p'', Y = W', Z = tW, ' = ':13 r:1
FTILE: tp'r = floor_sand
KMONS: p = plant
KITEM: r = stone q:1 / large rock q:1 w:5
KITEM: s = pair of boots
KFEAT: ' = .
MAP
xxxxxxxxxxxxxxxxxxxxxx
xtttttttttttT''x.....x
xttTTTttttTT'''+.....x
xtTPPPTTTT''''Px.....x
xtTP''''''''PTTxxx+xxx
xtTP'''''''PTttxx...xx
xtTP'''PP'''Tttxxx+xxx
xttTPPPTTP'''QZx....sx
xtttTTTttTP''WWx.....+
xttttttttttZWWWx.....x
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   dk_noncrumbling_2
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf
MAP
       xx+xx
       xx.xx
       xG.Gx
       xx.xx
       xx.xx
       xG.Gx
       xx.xx
       xx.xx
       xG.Gx
xxxxxxxxx.xxxxxxxxxxx
xxGxxxGxx.xxGxxGxxGxx
+........*..........+
xxGxxxGxx.xxGxxGxxGxx
xxxxxxxxx.xxxxxxxxxxx
       xG.Gx
       xx.xx
       xx.xx
       xG.Gx
       xx.xx
       xx.xx
       xG.Gx
       xx.xx
       xx+xx
ENDMAP

NAME:   dk_noncrumbling_3
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf
MAP
    xx+xx
   xx...xx
  xx.....xx
 xx.G...G.xx
xx.x.....x.xx
x...x...G...x
+.....*.....+
x...G...x...x
xx.x.....x.xx
 xx.G...G.xx
  xx.....xx
   xx...xx
    xx+xx
ENDMAP

NAME:   dk_noncrumbling_4
TAGS:   transparent extra decor
DEPTH:  D, Depths, Elf
MAP
    xx+xx
   xxG.Gxx
  xx.....xx
 xxG.....Gxx
xx.........xx
xG.........Gx
+.....*.....+
xG.........Gx
xx.........xx
 xxG.....Gxx
  xx.....xx
   xxG.Gxx
    xx+xx
ENDMAP

NAME:  kennysheep_small_spiral
TAGS:  transparent decor
DEPTH: D, Depths, !D:$, !Depths:$
: ks_random_setup(_G, true)
MAP
ccccccccccFcc
cwwwwwwwwwHwc
+..........wc
cwxxxxxxxx.wc
cw.......x.wc
cw.xxxxx.x.wc
cw.x..*x.x.wc
cw.x.xtx.x.wc
cw.x.xxx.x.wc
cw.x.....x.wc
cw.xxxxxxx.wc
cw.........ED
cwHwwwwwwwwwc
ccFcccccccccc
ENDMAP

NAME:   dreamdust_deal_with_the_devil
TAGS:   extra transparent no_item_gen
DEPTH:  D:8-, Lair, Orc, Elf
WEIGHT: 5
SUBST:  ? : V Y t
TILE:   G = dngn_statue_imp
: set_feature_name("granite_statue", "a statue of an imp")
TILE:   t = dngn_tree_dead
: set_feature_name("tree", "a dead tree")
FTILE:  .Gd = floor_demonic_red
# Alluring items with drawbacks that might kill you
ITEM:   scarf ego:harm w:30 / plate armour good_item ego:ponderousness / \
        crystal plate armour good_item ego:ponderousness / leech / \
        obsidian axe / robe of folly / maxwell's patent armour
MAP
?.?
.G.
.d.
 .
ENDMAP

NAME:    dreamdust_wishing_well
TAGS:    extra decor transparent no_pool_fixup
DEPTH:   D, Depths, Elf
SUBST:   $ = $.
KITEM:   U = nothing / gold / scroll of acquirement w:1
KFEAT:   U = fountain_sparkling
MAP
.....
.$$$.
.$U$.
.$$$.
.....
ENDMAP

##########################################################################
#
# <<4>> Fog generator vaults.
#       Most of these are very dangerous. But no monsters.
#
# Many of these vaults rely on status to halt autoexplore. If a dangerous
# fog has been spotted by the player, autoexclusions will be placed. Note
# that you may use some of these vaults to kill monsters, but there's some
# risk involved and you won't get experience.
#
##########################################################################

NAME:   lemuel_flamethrower_3
TAGS:   allow_dup ruin_abyss
DEPTH:  D:12-, Depths, Elf, Geh, Abyss
KFEAT:  F = floor
MARKER: F = lua:fog_machine { cloud_type="flame", \
            pow_min = 20, pow_max = 40, delay = 150, \
            size = 2, walk_dist = 0, spread_rate= 75 }
:  if you.in_branch("Geh") then
TAGS:   transparent extra
:  end
MAP
.....
cc.cc
cc.cc
cc.cc
 cFc
 ccc
  c
ENDMAP

NAME:   lemuel_flamethrower_2
TAGS:   ruin_abyss
DEPTH:  D:5-, Depths, Elf, Geh, Abyss
KFEAT:  F = floor
:  if you.in_branch("Geh") then
TAGS:   transparent extra
:  end
MARKER: F = lua:fog_machine { cloud_type="flame", \
            pow_min = 20, pow_max = 40, delay_min = 100, delay_max=200, \
            size = 2, walk_dist = 0, spread_rate= 75 }
MAP
...........
.xxxx.xxxx.
.xxxx.xxxx.
.xxxxFxxxx.
.xxxnnnxxx.
...FnGnF...
.xxxnnnxxx.
.xxxxFxxxx.
.xxxx.xxxx.
.xxxx.xxxx.
...........
ENDMAP

NAME:   lemuel_flamethrower_1
TAGS:   layout_rooms layout_city
DEPTH:  D:5-, Depths, Elf, Geh
KFEAT:  F = floor
:  if you.in_branch("Geh") then
TAGS:   transparent extra
:  end
MARKER: F = lua:fog_machine { cloud_type="flame", \
            pow_min = 20, pow_max = 40, delay_min = 100, delay_max=200, \
            size = 2, walk_dist = 0, spread_rate= 75 }
MAP
 xxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxGxxxxxx
.............
@...........@
.............
xxxxxx.xxxxxx
xxxxxx.xxxxxx
xxxxxx.xxxxxx
xxxxxxFxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
 xxxxxxxxxxx
ENDMAP

# Little wisps of steam around the lava, and then occasionally a big
# eruption. No warning needed here - the steam does very little damage.
NAME:   lemuel_old_faithful
TAGS:   uniq_geyser no_monster_gen transparent extra
DEPTH:  D:11-, Depths, Lair, Geh
MARKER: s = lua:fog_machine { cloud_type="steam", \
            pow_min = 2, pow_max = 5, delay = 25, \
            size = 2, walk_dist = 3, spread_rate= 10 }
MARKER: S = lua:fog_machine { cloud_type="steam", \
            pow_min = 10, pow_max = 20, delay = 750, \
            size = 10, walk_dist = 1, spread_rate= 75 }
SUBST:  s = l, S = l
SUBST:  l = l w:20
SUBST:  ? : w. , ! : w. , & : w.
:  if you.in_branch("Geh") then
TAGS:   extra
:  end
MAP
.......?.......
......&?.......
.......??......
..&&&&???......
&&&&&wwwww.....
&&&wwwwwwwww&&.
.wwwwwlwwwwwww&
..&wwlslwwwww&&
...wwwlSlwww&&.
....wwwlww&&...
..!!wwwww......
..!!!www.......
.!!!!w!.....!..
..!!!w.....!!!.
...!!.......!!.
ENDMAP

NAME:   lemuel_another_geyser
DEPTH:  D:11-, Depths, Lair
TAGS:   uniq_geyser no_monster_gen layout_rooms transparent no_descent
MONS:   nothing,nothing
MARKER: s = lua:fog_machine { cloud_type="steam", \
            pow_min = 2, pow_max = 5, delay = 25, \
            size = 3, walk_dist = 3, spread_rate= 20 }
MARKER: S = lua:fog_machine { cloud_type="steam", \
            pow_min = 15, pow_max = 30, delay = 750, \
            size = 12, walk_dist = 1, spread_rate= 99 }
SUBST:  s = l, S = l
SUBST:  l = lw
SUBST:  ? : wlx
MAP
  .......
....www....
...wwwww...
xxxxxwxxxxx
xxxxxwwxxxx
xxxxxxxwxxx
xxxxxxxwxxx
xx??xxwxxxx
xx??lwswxxx
xxxxxlwwwxx
xxxxxlSxxxx
xxxxxxxxxxx
ENDMAP

NAME:  lemuel_nasty_fountain
TAGS:  allow_dup extra opaque
DEPTH: D:11-, Depths, Crypt, Tar
KFEAT: + = closed_clear_door
MARKER: Y = lua:fog_machine { cloud_type = "foul pestilence", \
             pow_min = 8, pow_max = 12, delay_min = 20, delay_max = 30, \
             size = 2, walk_dist = 1, spread_rate= 33 }
: if you.in_branch("Tar") then
CLEAR:  x
: else
NSUBST: x = 3:+ / 1:+x / *:x
: end
MAP
xxx
xYx
xxx
ENDMAP

NAME:   lemuel_flame_loot_1
TAGS:   no_tele_into extra_post_overflow
DEPTH:  D, Depths, Elf, Zot, !Zot:$
: if not you.in_branch("D") then
SUBST:  * = %$
: else
SUBST:  * = *., * : *$
: end
NSUBST: @ = 2:@ / *:@.
MARKER: f = lua:fog_machine { cloud_type = "flame", \
             pow_min = 10, pow_max = 10, delay = 10, \
             size = 2, walk_dist = 0, spread_rate= 0 }
SUBST:  ' = .
MAP
ccccc.@.ccccc
ccccc'''ccccc
ccccc'f'ccccc
ccccc'''ccccc
ccccc...ccccc
.'''.***.'''.
@'f'.***.'f'@
.'''.***.'''.
ccccc...ccccc
ccccc'''ccccc
ccccc'f'ccccc
ccccc'''ccccc
ccccc.@.ccccc
ENDMAP

NAME:    lemuel_freeze_loot_1
TAGS:    no_descent
DEPTH:   D:12-
KFEAT:   IJKL = w
SUBST:   * : **$, * = %%*
NSUBST:  N = 1:+ / *:n
SHUFFLE: IJKL
MARKER:  I = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 85, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MARKER:  J = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 95, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MARKER:  K = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 105, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MARKER:  L = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 115, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MAP
   .wwwww.
 .wwwwwwwww.
 wwwwwIwwwww
.wwcnnNnncww.
wwwn..G..nwww
wwJN.***.nwww
wwwn.***.NLww
wwwn..G..nwww
.wwcnnNnncww.
 wwwwwKwwwww
 .wwwwwwwww.
   .wwwww.
ENDMAP

# No safe path in this one -- just got to take your chances!
NAME:   lemuel_flames_and_gold
TAGS:   no_item_gen transparent extra
DEPTH:  Depths
WEIGHT: 2
ITEM:   nothing, nothing, nothing
NSUBST: . = 4:d / 4:e / 4:f / *:.
MARKER: d = lua:fog_machine { cloud_type = "flame", \
             pow_min = 2, pow_max = 4, delay = 29, start_clouds = 1, \
             size = 2, walk_dist = 2, spread_rate= 0 }
MARKER: e = lua:fog_machine { cloud_type = "flame", \
             pow_min = 2, pow_max = 4, delay = 31, start_clouds = 1, \
             size = 2, walk_dist = 2, spread_rate= 0 }
MARKER: f = lua:fog_machine { cloud_type = "flame", \
             pow_min = 2, pow_max = 4, delay = 37, start_clouds = 1, \
             size = 2, walk_dist = 2, spread_rate= 0 }
MAP
.............
.............
.............
.............
......$......
.....$$$.....
....$$G$$....
.....$$$.....
......$......
.............
.............
.............
.............
ENDMAP

# No item generation for the sake of autoexplore.
NAME:   lemuel_flamethrower_hall
TAGS:   layout_rooms layout_city no_item_gen ruin_abyss extra_post_overflow
DEPTH:  D:9-, Depths, Elf, Geh, Abyss
ITEM:   any weapon good_item ego:flaming / scroll of immolation pre_id
ITEM:   fire dragon scales good_item / parchment disc:fire
SUBST:  $ : $$*|.c
:  if you.in_branch("Geh") then
TAGS:   extra
NSUBST: $*| = 1:} / 3:8 / *:.
:  elseif you.in_branch("Abyss") then
SUBST:  * = d, | = dde
:  end
MARKER: F = lua:fog_machine { cloud_type="flame", \
            pow_min = 25, pow_max = 50, delay = 150, \
            size = 3, walk_dist = 0, spread_rate= 40 }
COLOUR: F = red
MAP
ccccccccccccccccccccccc
ccxxxFxxxxxFxxxxxFxxxxc
Gcxxx.xxxxx.xxxxx.xxxxc
ccccc.ccccc.ccccc.ccccc
c.................+$$$c
+.................+$$$c
c.................+$$$c
cc.ccccc.ccccc.cccccccc
Gc.xxxxx.xxxxx.xxxxxxxc
ccFxxxxxFxxxxxFxxxxxxxc
ccccccccccccccccccccccc
ENDMAP

# A poor man's Radiant Cavern (1KB)
NAME:   kilobyte_mutagenic_chamber
TAGS:   ruin_abyss extra
DEPTH:  Depths, Elf, Abyss
ITEM:   randbook disc:alchemy numspells:4
ITEM:   maw talisman randart / protean talisman randart / granite talisman
ITEM:   double sword ego:chaos / manual of alchemy / manual of shapeshifting
: if you.in_branch("Abyss") then
NSUBST: | = 1:def / 1:def$$ / *:$
: end
MARKER: U = lua:fog_machine { cloud_type = "mutagenic fog", \
            pow_min = 10, pow_max = 30, delay = 5, \
            size = 4, walk_dist = 0, spread_rate= 0 }
MAP
ccccccccc
cvvvvvvvc
cv.|||.vc
cv.nnn.vc
cv.U.U.vc
cvn...nvc
cv.....vc
cv.nnn.vc
cv.....vc
cvvv+vvvc
ENDMAP

NAME: nrook_campfire
TAGS: transparent extra decor no_descent
DEPTH: D, Depths
KMASK: P = opaque
: single_cloud(_G, "P", "flame", false)
MAP
........
..ttttt.
.ttmmmt..
.ttmPmtt.
.ttmmmtt.
.tttttt..
.......
ENDMAP

#######################################################################
#
# <<5>> Classical minivaults
#       All of these are 12x12, almost all are ancient.
#       This section is separate for nostalgic reasons.
#
#######################################################################

NAME:  minivault_1
TAGS:  transparent allow_dup extra ruin_abyss
DEPTH: D:4-, Depths, Abyss
: if you.in_branch("Abyss") then
KITEM: * = $, $, scale mail good_item / buckler good_item / any wand charges:2
: end
MAP
............
..xxxx+xxx..
.xG..x...Gx.
.x....x...x.
.x...x....x.
.xx.x*x.x.+.
.+.x.x*x.xx.
.x....x...x.
.x...x....x.
.xG...x..Gx.
..xxx+xxxx..
............
ENDMAP

NAME:  minivault_4
TAGS:  transparent allow_dup extra ruin_abyss decor
DEPTH: D, Elf, Crypt, Abyss
MAP
............
....xwxx....
..xxxwwxwx..
..xwwwwwwx..
.xwwxwwxwxx.
.xwwwwwwwwx.
.xwwxwwwxww.
.xxwwwwwwxx.
..wwwwxwwx..
..xxxwwxxw..
....xxww....
............
ENDMAP

NAME:    minivault_5
TAGS:    transparent allow_dup extra ruin_abyss
DEPTH:   D, Elf, Crypt, Abyss
ITEM:    scale mail good_item / buckler good_item / any wand charges:2
KFEAT:   > = abyssal_stair
: if you.in_branch("Abyss") then
NSUBST:  * = 1:> / 1:d / *:$
: end
MAP
............
.x.xxxxxxxx.
.x.x......x.
.x.x.xxxx.x.
.x.x.x**x.x.
.x.x.x**x.x.
.x.x.xx.x.x.
.x.x....x.x.
.x.xxxxxx.x.
.x........x.
.xxxxxxxxxx.
............
ENDMAP

# Modified for DCSS 0.8, as 16 good items on D:1 is too good. -dpeg
NAME:  minivault_10
DEPTH: D:6-, Depths, !Depths:$
SUBST: * = %:30 * |:1
TAGS:  extra transparent
MAP
xxxx  xxxx
x**x  x**x
x**+..+**x
xx+x..x+xx
  ......
  ......
xx+x..x+xx
x**+..+**x
x**x  x**x
xxxx  xxxx
ENDMAP

# Multicoloured onion
NAME:    minivault_11
DEPTH:   D, Depths, Elf, Crypt, Lair, Abyss
TAGS:    transparent extra ruin_abyss ruin_lair decor
SHUFFLE: bcv
MAP
............
.+xxxxxxxx+.
.x........x.
.x.+cccc+.x.
.x.c....c.x.
.x.c.bb.c.x.
.x.c.bb.c.x.
.x.c....c.x.
.x.+cccc+.x.
.x........x.
.+xxxxxxxx+.
............
ENDMAP

# Water cross
NAME: minivault_14
TAGS: transparent allow_dup extra decor
MAP
............
.wwwww.wwww.
.wwwww.wwww.
.wwwww.wwww.
.wwwww.wwww.
.......wwww.
.wwww.......
.wwww.wwwww.
.wwww.wwwww.
.wwww.wwwww.
.wwww.wwwww.
............
ENDMAP

NAME:  minivault_19
TAGS:  transparent allow_dup extra ruin_lair ruin_abyss decor
DEPTH: D, Elf, Crypt, Lair, Abyss
MAP
............
.xx......xx.
.xxx....xxx.
..xxx..xxx..
...xxxxxx...
....xxxx....
....xxxx....
...xxxxxx...
..xxx..xxx..
.xxx....xxx.
.xx......xx.
............
ENDMAP

NAME:  minivault_21
TAGS:  transparent extra
DEPTH: D:8-, !D:$, Depths:2-, !Depths:$
KMASK: |'<>* = opaque
MAP
............
..xxxxxxxx..
.x........x.
.x.xxmxxx.x.
.x.x|''<x.x.
.x.x'**'m.x.
.x.m'**'x.x.
.x.x>''|x.x.
.x.xxxmxx.x.
.x........x.
..xxxxxxxx..
............
ENDMAP

NAME:  minivault_22
TAGS:  transparent allow_dup extra ruin_abyss
DEPTH: D:6-, Depths, !Depths:$, Abyss
ITEM:  large rock q:4, protean talisman, demon blade / demon trident / demon whip
: if you.in_branch("Abyss") then
SUBST: $ : def$$
: else
SUBST: $ : $ *:5
: end
SUBST: ~ : . +:2
MAP
............
.....xx.....
...xxxxxx...
..x~x..x~x..
..xx.xx.xx..
.xx.x$$x.xx.
.xx.x$$x.xx.
..xx.xx.xx..
..x~x..x~x..
...xxxxxx...
.....xx.....
............
ENDMAP

NAME:  minivault_23
TAGS:  transparent allow_dup extra ruin_lair ruin_abyss decor
DEPTH: D, Elf, Crypt, Lair, Abyss
MAP
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.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:  minivault_24
TAGS:  transparent allow_dup extra ruin_lair ruin_abyss decor
DEPTH: D, Elf, Crypt, Lair, Abyss
MAP
............
....xxxx....
....xxxx....
....xxxx....
.xxxx.x.xxx.
.xxx.x.xxxx.
.xxxx.x.xxx.
.xxx.x.xxxx.
....xxxx....
....xxxx....
....xxxx....
............
ENDMAP

NAME:    minivault_25
TAGS:    transparent allow_dup extra ruin_lair ruin_abyss decor
DEPTH:   D, Elf, Crypt, Lair
SHUFFLE: XY?! / YX!?
: if not you.in_branch("Lair") then
:   decorative_floor(_G, '!', "mop and bucket")
: else
SUBST:   ! = .
: end
SUBST:   X = x, Y = +, ? = .
MAP
............
.xxXxxxxxxx.
.x........x.
.x........Y.
.x........x.
.x........x.
.x........x.
.x........x.
.Y........x.
.x!......?x.
.xxxxxxxXxx.
............
ENDMAP

NAME: minivault_26
TAGS: transparent allow_dup extra ruin_lair ruin_abyss decor
DEPTH: D, Elf, Crypt, Lair, Abyss
MAP
c..........c
.c...cc...c.
..c..cc..c..
...c....c...
....c..c....
.cc..cc..cc.
.cc..cc..cc.
....c..c....
...c....c...
..c..cc..c..
.c...cc...c.
c..........c
ENDMAP

NAME: minivault_27
TAGS: transparent allow_dup extra ruin_lair ruin_abyss decor
DEPTH: D, Elf, Crypt, Lair, Abyss
MAP
............
.x.xxxxxxxx.
.x........x.
.xxxxxxxx.x.
.x........x.
.x.xxxxxxxx.
.x........x.
.xxxxxxxx.x.
.x........x.
.x.xxxxxxxx.
............
ENDMAP
