##############################################################################
# mini_features.des: This is the place for minivaults without monsters.
#           So all vaults in this file should have neiter 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 Vault branch, including Vaults:8 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.
############################################################################

default-depth: D, Vault, Elf, Crypt

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

NAME:   glass_columns_a
DEPTH:  D, Elf, Crypt
TAGS:   serial_glass allow_dup
WEIGHT: 5
MAP
.....
.m.m.
.....
.m.m.
.....
ENDMAP

NAME:   glass_columns_b
DEPTH:  D, Elf, Crypt
TAGS:   serial_glass allow_dup
WEIGHT: 3
MAP
.......
.m.m.m.
.......
.m.m.m.
.......
.m.m.m.
.......
ENDMAP

NAME:   glass_columns_c
DEPTH:  D, Elf, Crypt
TAGS:   serial_glass allow_dup
WEIGHT: 2
MAP
.........
.m.m.m.m.
.........
.m.m.m.m.
.........
.m.m.m.m.
.........
.m.m.m.m.
.........
ENDMAP

NAME: columned_hall_lemuel
TAGS: extra luniq_mini ruin_lair
DEPTH: D, 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 extra luniq_mini
DEPTH:  D:10-20
WEIGHT: 7
SUBST:  F = G:99 F:1
KMONS:  F = orange crystal statue / silver 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 extra luniq_mini
DEPTH:  D:3-10
WEIGHT: 2
MAP
  xxxxxxx
xxxcccccx
...G...G@
.G.G.G.G.
.G.G.G.G.
@G...G...
xcccccxxx
xxxxxxx
ENDMAP

NAME:   small_statue_alley_c
TAGS:   uniq_statue_alley extra luniq_mini
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
DEPTH:   D:2-26, Elf, Crypt, Lair
TAGS:    mini_float allow_dup no_hmirror no_vmirror extra luniq_mini
TAGS:    ruin_lair abyss ruin_abyss
MAP
xx.xx
xG.Gx
.....
xG.Gx
xx.xx
ENDMAP

NAME:  fungi_pond_lemuel
DEPTH: D:8-20, Lair
TAGS:  allow_dup extra luniq_mini
MONS:  fungus, wandering mushroom
SUBST: 1 = . 1 2:4
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, Elf, Vault
TAGS:  allow_dup extra luniq_mini
SUBST: ?=TUV
KMASK: T = no_monster_gen
KMASK: U = no_monster_gen
MAP
.....
.....
..?..
.....
.....
ENDMAP

# Another very classical vault.
NAME:  fountainhead
DEPTH: D, Elf, Crypt, Vault
TAGS:  allow_dup extra luniq_mini
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
DEPTH: D, Elf, Lair
TAGS:  abyss ruin_abyss ruin_lair
SUBST: x : xxccv
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, Elf, Crypt, Vault
TAGS:   no_monster_gen no_item_gen extra luniq_mini
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
TAGS:   no_pool_fixup no_monster_gen no_item_gen
TAGS:   allow_dup extra luniq_mini
: if crawl.random2(5) == 0 then
:   subst("l = W")
:   subst("= = x")
:   subst("# = x")
: else
:   if crawl.random2(3) == 0 then
:     subst("l = w")
:   end
:   if crawl.random2(50) == 0 then
:     subst("= = +")
:     subst("# = .")
:   elseif crawl.random2(5) == 0 then
:     subst("# = .")
:   else
:     subst("= = x")
:     subst("# = x")
:   end
: end
MAP
xxxxxxx
x#####x
x=xxx=x
@.lll.@
xxxxxxx
ENDMAP

NAME:  nrook_mini_backslash
DEPTH: D, Elf
MAP
..xxx....
....xx....
 ....xx....
  ....xx....
   ....xx....
    ....xx....
     ....xxx...
ENDMAP

NAME:  nrook_mini_vaults
DEPTH: D
MAP
.........
.vvvvvvv.
.v.....v.
.v.....v.
.v.....+.
.v.....v.
.vvvvvvv.
.........
ENDMAP

NAME:  nrook_uturn
DEPTH: D, 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
DEPTH: D:5-
MAP
 cccccccccccccccc
 c..............c
 c.wwwwwwwwwwww.c
@+.wwwwwwwwwwww.+@
 c.wwwwwwwwwwww.c
 c.wwwwwwwwwwww.c
 c..............c
 cccccccccccccccc
ENDMAP

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

NAME:    minmay_hedge_maze
TAGS:    extra luniq_mini
DEPTH:   D, Lair
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 allow_dup extra
DEPTH: D, Elf, Crypt
MAP
 ...   ...
..m.. ..m..
.mbm...mbm.
..m.. ..m..
 ...   ...
  .     .
 ...   ...
..m.. ..m..
.mbm...mbm.
..m.. ..m..
 ...   ...
ENDMAP

NAME:  minmay_door_square
TAGS:  extra luniq_mini
DEPTH: D
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 luniq_mini no_monster_gen
ITEM:  potion of water / nothing
DEPTH: D
SUBST: w : wWWld
MAP
xx+xx
xwwwx
+www+
xwwwx
xx+xx
ENDMAP

NAME:  minmay_fountain_box
TAGS:  extra luniq_mini
DEPTH: D, Elf
KMASK: T = no_monster_gen
KMASK: U = 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:  extra luniq_mini
DEPTH: D
MAP
xxx@xxx
xxt.txx
xtt.ttx
@.....@
xtt.ttx
xxt.txx
xxx@xxx
ENDMAP

NAME:  minmay_misc_feat_pillars
TAGS:  extra luniq_mini
DEPTH: D, Elf, Crypt
SUBST: x : xxxxcvbmG
MAP
.............
.x.x.x.x.x.x.
.............
 .x.x.x.x.x.
 ...........
ENDMAP

NAME:  minmay_misc_feat_square
TAGS:  extra luniq_mini
DEPTH: D
SUBST: x = x.
KPROP: x = no_rtele_into
MAP
.......
.xxxxx.
.xxxxx.
.xxxxx.
.xxxxx.
.xxxxx.
.......
ENDMAP

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

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

NAME:  minmay_misc_feat_diagonals
TAGS:  extra luniq_mini
DEPTH: D, 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:  extra mini_float luniq_mini
DEPTH: D
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:  extra luniq_mini
DEPTH: D
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:  extra luniq_mini
DEPTH: D
SUBST: A = x..., B = x.., C = x., D = xx.
KPROP: BCD = no_rtele_into
MAP
xxxxxxxxxxxxxxxxxxxx
xDDDDDDDDDDDDDDDDDDx
xCCCCCCCCCCCCCCCCCCx
xBBBBBBBBBBBBBBBBBBx
xAAAAAAAAAAAAAAAAAAx
@..................@
xxxxxxxxxxxxxxxxxxxx
ENDMAP

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

NAME:  minmay_misc_feat_chi
TAGS:  extra luniq_mini
DEPTH: D
MAP
..........
.xx.....x.
...x....x.
....x..x..
....xxx...
...xxx....
..x..x....
.x....x...
.x.....xx.
..........
ENDMAP

NAME:   minmay_misc_feat_tower
TAGS:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D
SUBST:  X = xx.
KPROP:  ' = no_rtele_into
SUBST:  ' = .
MAP
.........
.xxxXxxx.
.xx'''xx.
.x'''''x.
.X'''''X.
.x'''''x.
.xx'''xx.
.xxxXxxx.
.........
ENDMAP

NAME:   minmay_misc_feat_room
TAGS:   extra luniq_mini
DEPTH:  D
SUBST:  ? = GGGTUV
KMASK:  T = no_monster_gen
KMASK:  U = no_monster_gen
MAP
.......
.xxxxx.
.x...x.
.+.?.+.
.x...x.
.xxxxx.
.......
ENDMAP

NAME:   minmay_misc_feat_iff
TAGS:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D, Elf, Crypt
MAP
...
.x.
.x....
.x..x.
....x....
   .x..x.
   ....x.
      .x.
      ...
ENDMAP

NAME:   minmay_misc_feat_cross
TAGS:   extra luniq_mini
DEPTH:  D, Elf, Crypt
SUBST:  X : x.
MAP
...........
.xxx.X.xxx.
.xxx.X.xxx.
.xxx.X.xxx.
.....X.....
.XXXXXXXXX.
.....X.....
.xxx.X.xxx.
.xxx.X.xxx.
.xxx.X.xxx.
...........
ENDMAP

NAME:   minmay_misc_feat_ornament
TAGS:   extra luniq_mini
DEPTH:  D, 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:   extra luniq_mini
DEPTH:  D, Crypt
SUBST:  G : ..GGxb
MAP
xxx@xxx
xG...Gx
xxx.xxx
xG...Gx
xxx.xxx
xG...Gx
xxx.xxx
xG...Gx
xxx@xxx
ENDMAP

NAME:   minmay_misc_feat_alley
TAGS:   extra luniq_mini
DEPTH:  D, 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:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D
MAP
........    ........
.xxxx....  ....xxxx.
...xxxx......xxxx...
 ....xxxx..xxxx....
  .....xxxxxx.....
  .....xxxxxx.....
 ....xxxx..xxxx....
...xxxx......xxxx...
.xxxx....  ....xxxx.
........    ........
ENDMAP

NAME:   minmay_misc_feat_secret_circle
TAGS:   extra luniq_mini
DEPTH:  D
SUBST:  X : x.
SUBST:  Y : x.
KPROP:  ' = no_rtele_into
SUBST:  ' = .
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......
......X''''''X......
......X''''''X......
......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:   extra luniq_mini
DEPTH:  D
MAP
......
.xx.x.
.x.xx.
.xx.x.
.x.xx.
......
ENDMAP

NAME:   minmay_stone_trees_small
TAGS:   extra luniq_mini ruin_lair
DEPTH:  D, Vault, Lair
WEIGHT: 6
MAP
.......
..ttt..
.tccct.
.tccct.
.tccct.
..ttt..
.......
ENDMAP

NAME:   minmay_stone_trees_medium
TAGS:   extra luniq_mini ruin_lair
DEPTH:  D, Vault, 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:   extra luniq_mini ruin_lair
DEPTH:  D, Vault, Lair
WEIGHT: 1
SUBST:  T = t.
MAP
...................
..ttt...ttt...ttt..
.tccct.tccct.tccct.
.tccctTtccctTtccct.
.tccct.tccct.tccct.
..ttt...ttt...ttt..
...T.....T.....T...
..ttt...ttt...ttt..
.tccct.tccct.tccct.
.tccctTtccctTtccct.
.tccct.tccct.tccct.
..ttt...ttt...ttt..
...T.....T.....T...
..ttt...ttt...ttt..
.tccct.tccct.tccct.
.tccctTtccctTtccct.
.tccct.tccct.tccct.
..ttt...ttt...ttt..
...................
ENDMAP

NAME:   minmay_crystal_water
TAGS:   extra no_monster_gen luniq_mini
DEPTH:  D
MAP
wwwwwwwww
wbwwwwwbw
wbwbbbwbw
wbwwwwwbw
wwwwwwwww
ENDMAP

NAME:   minmay_holes
TAGS:   extra luniq_mini
DEPTH:  D:5-26, Lair:1-7
KFEAT:  ^ = known shaft trap
SUBST:  . = . ^:1, ' = . ^:2, " = . ^:4
WEIGHT: 15
MAP
     ....
   ........
  ..........
 ....''''....
 ...''''''...
...'''""'''...
...''""""''...
...''""""''...
...'''""'''...
 ...''''''...
 ....''''....
  ..........
   ........
     ....
ENDMAP

NAME:   minmay_splitting_lines
TAGS:   extra luniq_mini
DEPTH:  D
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:   extra luniq_mini
DEPTH:  D, Elf
WEIGHT: 3
MAP
................
..bb........bb..
.b..b......b..b.
.b............b.
..bbbbbbbbbbbb..
................
ENDMAP

NAME:    minmay_parallelograms
DEPTH:   D
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
DEPTH:   D, Vault, 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:  roderic_Roman_lattice
DEPTH: D, 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

NAME:   roderic_Aztec_sauvastika
WEIGHT: 1
DEPTH:  D
MAP
   ......@..
  ...xxxxx...
 ....x...x....
.....xxx.x.....
.........x.....
@xxxxxxxxx.xxx.
.x...xxxxx.x.x.
.x.x.xxxxx.x.x.
.x.x.xxxxx...x.
.xxx.xxxxxxxxx@
.....x.........
.....x.xxx.....
 ....x...x....
  ...xxxxx...
   ..@......
ENDMAP

NAME:   roderic_Bali_sauvastika
TAGS:   extra
WEIGHT: 1
DEPTH:  D
: if crawl.one_chance_in(5) then
SUBST:  @ = x
: else
SUBST:  + = x+
: end
MAP
...@.......
...x.......
...x.......
...xxx.xxx@
.....x.x...
...xx+xx...
...x.x.....
@xxx.xxx...
.......x...
.......x...
.......@...
ENDMAP

NAME:   roderic_Chinese_pattern_swastika
WEIGHT: 1
DEPTH:  D
MAP
...............
.x.xxxx.xxxx.x.
.x.xxxx.xxxx.x.
.x.xx.....xx.x.
.xxxxxx.xxxxxx.
.xxxxxx.xxxxxx.
.xxxxxx.xxxxxx.
...xx.x.x.xx...
.xxxx.x.x.xxxx.
.xxxx.x.x.xxxx.
...............
ENDMAP

NAME:   roderic_Hopi_sauvastika
WEIGHT: 1
TAGS:   extra
DEPTH:  D
MAP
.....@.....
...xxxx....
...xxxx....
....xxx.xx.
.xxxxxxxxx.
@xxxxxxxxx@
.xxxxxxxxx.
.xx.xxx....
....xxxx...
....xxxx...
.....@.....
ENDMAP

NAME:   roderic_Greek_sauvastika
DEPTH:  D
WEIGHT: 1
: if crawl.one_chance_in(5) then
SUBST:  @ = x
: else
SUBST:  + = x+
: end
MAP
.........@.
@xxxxxxx.x.
.......x.x.
.xxxxx.x.x.
.x...x.x.x.
.x.xx+xx.x.
.x.x.x...x.
.x.x.xxxxx.
.x.x.......
.x.xxxxxxx@
.@.........
ENDMAP

NAME:   roderic_curled_sauvastika
DEPTH:  D
WEIGHT: 1
TAGS:  extra
: if crawl.one_chance_in(5) then
SUBST:  @ = x
: else
SUBST:  + = x+
: end
MAP
.@.........
.x.xxx.xxx@
.x.x.x.x...
.xxx.x.xxx.
.....x...x.
.xxxx+xxxx.
.x...x.....
.xxx.x.xxx.
...x.x.x.x.
@xxx.xxx.x.
.........@.
ENDMAP

NAME:   roderic_bipointed_swastika
WEIGHT: 1
TAGS:   extra
DEPTH:  D
: if crawl.one_chance_in(5) then
SUBST:  @ = x
: else
SUBST:  + = x+
: end
MAP
.@.........
.x.xxx.xxx@
.x...x.x...
.xxx.xxx.x.
...x.x...x.
.xxxx+xxxx.
.x...x.x...
.x.xxx.xxx.
...x.x...x.
@xxx.xxx.x.
.........@.
ENDMAP

NAME:   roderic_digamma_sauvastika
DEPTH:  D
WEIGHT: 1
: if crawl.one_chance_in(5) then
SUBST:  @ = x
: else
SUBST:  + = x+
: end
MAP
.@.........
.x.xxx.xxx@
.x.x...x...
.xxxxx.xxx.
.....x.x.x.
.x.xx+xx.x.
.x.x.x.....
.xxx.xxxxx.
...x...x.x.
@xxx.xxx.x.
.........@.
ENDMAP

#squared St Hans cross, ancient Viking symbol
NAME:   roderic_st_hans_cross
WEIGHT: 1
TAGS:   extra
DEPTH:  D
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
WEIGHT: 1
TAGS:   extra
DEPTH:  D
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:   extra
WEIGHT: 1
DEPTH:  D
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
WEIGHT:  1
DEPTH:   D, Elf
SHUFFLE: defgh
ITEM:    q:1 $, sausage, choko, sultana, stone
NSUBST:  ' = 9:d / *:.
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
WEIGHT: 1
DEPTH:  D,Elf
ITEM:   q:1 $, sultana, stone, choko
SUBST:  ' : TUdefg
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_ancient_swastika
TAGS:    allow_dup extra luniq_mini
DEPTH:   D
WEIGHT:  1
SHUFFLE: '"
SUBST:   x : xxxxxc
SUBST:   ? : xxxxxcm
SUBST:   ' : .
SUBST:   " : x

MAP
...........
.x'''x"""x.
.".?.x...'.
.".?.x.??'.
."...x...'.
.xxxxxxxxx.
.'...x...".
.'??.x.?.".
.'...x.?.".
.x"""x'''x.
...........
ENDMAP

NAME:  roderic_lattice_a
DEPTH: D
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:  extra
DEPTH: D
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:   allow_dup extra luniq_mini
WEIGHT: 1
DEPTH:  D
MAP
 .........
...ccccc...
....ccc....
.c...c...c.
.cc..c..cc.
.ccccccccc.
.cc..c..cc.
.c...c...c.
....ccc....
...ccccc...
 .........
ENDMAP

NAME:   roderic_whirl
TAGS:   allow_dup extra luniq_mini
DEPTH:  D, Elf
WEIGHT: 1
SUBST:  ? : ttTTG
MAP
 .......
.?..xx.?.
...x.....
.x.x.xx..
.x..x..x.
..xx.x.x.
.....x...
.?.xx..?.
 .......
ENDMAP

NAME:  roderic_lattice_octagonal_star
TAGS:  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


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

NAME:  feat_on_display
DEPTH: D, Elf, Crypt, Vault
TAGS:  serial_glass_rare allow_dup
SUBST: ? = TUl
TAGS:  no_monster_gen no_item_gen
MAP
.....
.mmm.
.m?m.
.mmm.
.....
ENDMAP

NAME:   item_on_display_a
DEPTH:  D, Elf, Crypt, Vault
TAGS:   serial_glass_rare allow_dup
WEIGHT: 9
SUBST:  % = %%%*
TAGS:   no_monster_gen no_item_gen
MAP
.....
.mmm.
.m%m.
.mmm.
.....
ENDMAP

NAME:   item_on_display_b
DEPTH:  D, Elf, Crypt, Vault
TAGS:   serial_glass_rare allow_dup
WEIGHT: 1
SUBST:  * = ***|
TAGS:   no_monster_gen no_item_gen
MAP
.....
.nnn.
.n*n.
.nnn.
.....
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
WEIGHT: 1
TAGS:   serial_glass_rare allow_dup no_wall_fixup
DEPTH:  D:8-27, Elf, Crypt, Vault
KMONS:  a = generate_awake unseen_horror
KITEM:  a = | / *
MAP
.....
.mmm.
.mam.
.mmm.
.....
ENDMAP

# Unseen surprise! by due (and dpeg).
NAME:   due_unseen_surprise
DEPTH:  D, Elf, Crypt, Vault
TAGS:   serial_glass_rare allow_dup no_wall_fixup luniq
: if you.absdepth()<11 or crawl.random2(27)>you.absdepth() then
SUBST:  a = %
SUBST:  b = %**
: else
KFEAT:  a = .
KFEAT:  b = .
# Two versions for loot.
: if crawl.coinflip() == 0 then
KITEM: a = * / %
KITEM: b = *
: else
KITEM: a = % / | w:1
KITEM: b = |
: end
# Expected value of unseen horrors depends on depth:
: 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
: end
MAP
........@
.........
..mmmmm..
..maaam..
..mabam..
..maaam..
..mmmmm..
.........
.........
ENDMAP

# Don't you wish you knew apportation?
NAME: baited_tele_trap
DEPTH: !Temple, !Slime
KITEM: x = any good_item, any good_item/nothing, any good_item/nothing
KFEAT: x = teleport trap
MAP
x
ENDMAP

# Not hard to obtain as is, but requires getting shafted.
NAME:  minmay_item_behind_shaft
TAGS:  extra mini_float luniq_mini
DEPTH: D:2-23
KFEAT: S = shaft trap
MAP
xxxxx
..S%x
xxxxx
ENDMAP

NAME:  minmay_statues_item
TAGS:  extra luniq_mini
DEPTH: D:1-26
MAP
.....
.GcG.
.c%c.
.GcG.
.....
ENDMAP

# Another somewhat-hard-to-obtain item
NAME:  min_item_tele_traps
TAGS:  extra luniq_mini
DEPTH: D:2-26
KFEAT: ! = teleport trap
MAP
.....
.v!v.
.!*!.
.v!v.
.....
ENDMAP

NAME:  corexii_item_surrounded_by_moat
DEPTH: D:1-7
TAGS:  no_pool_fixup no_monster_gen no_item_gen allow_dup extra luniq_mini
KPROP: % = no_rtele_into
MAP
.....
.www.
.w%w.
.www.
.....
ENDMAP

NAME:    treasure_zot_lemuel
DEPTH:   D:10-27, Elf, Vault, Crypt
TAGS:    allow_dup
NSUBST:  Z = 4=. / z
KFEAT:   z = zot trap
SUBST:   *: *$
WEIGHT:  3
MAP
xxxxxxxxxx
xxxxxxx**x
@ZZZZZ=**x
xxxxxxx**x
xxxxxxxxxx
ENDMAP

NAME:   water_maze_lemuel
TAGS:   no_pool_fixup uniq_water_maze_lemuel
WEIGHT: 5
ITEM:   ring of teleportation / scroll of teleportation q:3
DEPTH:  D:5-27
MAP
   wwwwwwwww
  wwcccccccww
 wwccwwwwwccww
wwccwwcccwwccww
wccwwccwccwwccw
wcwwccwwwccwwcw
wcwcc*wcwwccwcw
wcwc*d*ccwwcwcw
wcwcc*ccwwccwcw
wcwwcccwwccwwcw
wccwwccwccwwccw
wwccwwcwcwwccww
 wwccwwwcwccww
  wwcccccwcww
   wwwwwwwww
ENDMAP

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



NAME:  minmay_trapped_gold
TAGS:  extra luniq_mini no_monster_gen
DEPTH: D:16-, Crypt
KFEAT: a = axe trap / bolt trap
KFEAT: b = blade trap
KFEAT: c = zot trap
MAP
   xxxxx
xxxx$$$x
@abc$$$x
xxxx$$$x
   xxxxx
ENDMAP


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

NAME:   supply_closet_lemuel
DEPTH:  D:1-9
TAGS:   no_monster_gen allow_dup extra luniq_mini
ITEM:   potion of water w:20 / bread ration / meat ration / arrow /\
        bolt / spear / any potion w:5
NSUBST: x = 1:= / *:x
SUBST:  = = +===
MAP
x?xx
xddx
xddx
xxxx
ENDMAP

NAME:  minmay_bad_closet
TAGS:  extra
DEPTH: D:2-12
: if you.absdepth() > 4 then
ITEM:  scroll of immolation / potion of degeneration / potion of decay / \
       potion of strong poison / potion of poison
: else
ITEM:  scroll of random uselessness / potion of degeneration / potion of poison
: end
MAP
xxxx
xddx
xddx
xx+x
ENDMAP

NAME:    minmay_variable_closet
TAGS:    extra allow_dup luniq_mini
DEPTH:   D:9-27, Vault
ITEM:    any weapon, any missile, any armour, any food, any scroll
ITEM:    any jewellery, any potion, any book
SUBST:   + = +=, $ : $ZYXW
SUBST:   $ : $%defghijk
SUBST:   W = $%defghijk
SUBST:   Z = def
SUBST:   Y = hj
SUBST:   X = ik
MAP
x+xx
x$$x
x$$x
xxxx
ENDMAP

NAME:   secret_library_closet
DEPTH:  D, Vault, Elf, Crypt, Snake, Spider, Dwarf, Orc
TAGS:   allow_dup extra luniq_mini
ITEM:   any book w:20 / any scroll / nothing
MAP
x=xx
xddx
xddx
xxxx
ENDMAP

NAME:   eino_small_chamber_without_monster
TAGS:   mini_float allow_dup extra luniq_mini ruin_lair abyss ruin_abyss
DEPTH:  D:4-27, Lair
MAP
 xxxxx
xx...xx
x..*..x
x.....x
xx...xx
 x...x
ENDMAP

NAME:   eino_tiny_chamber_secret
TAGS:   allow_dup extra luniq_mini
DEPTH:  D:2-27, Elf, Vault, Crypt
MAP
xxxxx
x...x
x.*.=
x...x
xxxxx
ENDMAP

NAME:  firewood_loft
DEPTH: D:1-26
KITEM: " = quarterstaff, quarterstaff, quarterstaff
KITEM: ' = quarterstaff, quarterstaff / any staff w:3
MAP
xxxxx
x"']x
xxxxx
ENDMAP

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

NAME:  minmay_gold_behind_plants
TAGS:  extra luniq_mini no_monster_gen
DEPTH: D
MONS:  plant
MAP
11111
1$$$1
1$$$1
1$$$1
11111
ENDMAP

NAME:   corexii_mini_fake_secret_closet
DEPTH:  D:4-27
WEIGHT: 1
TAGS:   no_monster_gen no_item_gen allow_dup extra luniq_mini
NSUBST: + = 1:+ / *:x, = = 1:= / *:x
SUBST:  d = %%%., e = **%.
MAP
x++xxxx
+dd=eex
+dd=eex
xxxxxxx
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
DEPTH:  D:12-27, Vault, Elf, Geh
TAGS:   allow_dup abyss ruin_abyss
MARKER: * = lua:fog_machine { cloud_type="flame", \
            pow_min = 20, pow_max = 40, delay = 150, \
            size = 2, walk_dist = 0, spread_rate= 75 }
COLOUR: * = red
SUBST:  * = .
MAP
.....
cc.cc
cc.cc
cc.cc
 c*c
 ccc
  c
ENDMAP

NAME:   lemuel_flamethrower_2
DEPTH:  D:5-27, Vault, Elf, Geh
TAGS:   abyss ruin_abyss
MARKER: * = 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 }
COLOUR: n = red
SUBST:  * = .
MARKER: G = lua:props_marker { stop_explore = "a scorch-marked granite statue."\
        , feature_description = "scorch-marked granite statue" }
MAP
...........
.xxxx.xxxx.
.xxxx.xxxx.
.xxxx*xxxx.
.xxxnnnxxx.
...*nGn*...
.xxxnnnxxx.
.xxxx*xxxx.
.xxxx.xxxx.
.xxxx.xxxx.
...........
ENDMAP

NAME:   lemuel_flamethrower_1
DEPTH:  D:5-27, Vault, Elf, Geh
TAGS:   layout_rooms layout_city
MARKER: * = lua:fog_machine { cloud_type="flame", \
            pow_min = 20, pow_max = 40, delay = 150, \
            size = 2, walk_dist = 0, spread_rate= 75 }
COLOUR: * = red
SUBST:  * = .
MARKER: G = lua:props_marker { stop_explore = "a scorch-marked granite statue."\
        , feature_description = "scorch-marked granite statue" }
MAP
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxGxxxxxx
.............
@...........@
.............
xxxxxx.xxxxxx
xxxxxx.xxxxxx
xxxxxx.xxxxxx
xxxxxx*xxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
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
DEPTH:  D, Lair, Geh
TAGS:   uniq_geyser no_monster_gen
MONS:   nothing,nothing
MARKER: 1 = lua:fog_machine { cloud_type="steam", \
            pow_min = 2, pow_max = 5, delay = 25, \
            size = 2, walk_dist = 3, spread_rate= 10 }
MARKER: 2 = lua:fog_machine { cloud_type="steam", \
            pow_min = 10, pow_max = 20, delay = 750, \
            size = 10, walk_dist = 1, spread_rate= 75 }
SUBST:  1 = l, 2 = l
SUBST:  l = l w:20
SUBST:  ? : w. , ! : w. , & : w.
MAP
.......?.......
......&?.......
.......??......
..&&&&???......
&&&&?wwwww.....
&&?wwwwwwwww&&.
.wwwwwlwwwwwww&
..&wwl1lwwwww&&
...wwwl2lwww&&.
....wwwlww&&...
..!!wwwww......
..!!!www.......
.!!!!w!.....!..
..!!!w.....!!!.
...!!.......!!.
ENDMAP

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

NAME:  lemuel_nasty_fountain
DEPTH: D:11-27, Crypt, Tar
TAGS:  allow_dup
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 }
MAP
Y
ENDMAP

NAME:   lemuel_flame_loot_1
DEPTH:  D, Elf, Vault, Zot
ITEM:   nothing
SUBST:  * = *.
SUBST:  * : *$
NSUBST: @ = 2:@ / *:@.
MARKER: d = 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'd'ccccc
ccccc'''ccccc
ccccc...ccccc
.'''.***.'''.
@'d'.***.'d'@
.'''.***.'''.
ccccc...ccccc
ccccc'''ccccc
ccccc'd'ccccc
ccccc'''ccccc
ccccc.@.ccccc
ENDMAP

# High T&D skill or a means of detecting secret doors is helpful here....
NAME:    lemuel_freeze_loot_1
DEPTH:   D:12-27, Crypt
SUBST:   * : **$
SUBST:   * = **|
NSUBST:  n = 1:= / *:n
MONS:    nothing, nothing, nothing, nothing
SHUFFLE: 1234
MARKER:  1 = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 85, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MARKER:  2 = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 95, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MARKER:  3 = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 105, \
             size = 2, walk_dist = 2, spread_rate= 20 }
MARKER:  4 = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 1, pow_max = 10, delay = 115, \
             size = 2, walk_dist = 2, spread_rate= 20 }
SUBST:   1=w, 2=w, 3=w, 4=w
MAP
   .wwwww.
 .wwwwwwwww.
 wwwww1wwwww
.wwcnnnnncww.
wwwn..F..nwww
ww2n.***.nwww
wwwn.***.n4ww
wwwn..F..nwww
.wwcnnnnncww.
 wwwww3wwwww
 .wwwwwwwww.
   .wwwww.
ENDMAP

# No safe path in this one -- just got to take your chances!
NAME:   lemuel_flames_and_gold
DEPTH:  D:16-27
WEIGHT: 2
TAGS:   no_item_gen
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 }
MARKER: G = lua:props_marker { stop_explore = "a scorch-marked granite statue."\
        , feature_description = "scorch-marked granite statue" }
MAP
.............
.............
.............
.............
......$......
.....$$$.....
....$$G$$....
.....$$$.....
......$......
.............
.............
.............
.............
ENDMAP

#################################################################
# Flame stairs (Lemuel)
#
NAME:    lemuel_flame_stairs_1
DEPTH:   D:9-26, Elf:2-4, Vault, Zot:1-4
ITEM:    nothing
SHUFFLE: {[ / ]}
MARKER:  d = lua:fog_machine { cloud_type = "flame", \
             pow_min = 10, pow_max = 10, delay = 10, \
             size = 2, walk_dist = 0, spread_rate= 0 }
MAP
ccccccccccc
cccccc...{c
@.........c
@..d......c
@.........c
cccccc...[c
ccccccccccc
ENDMAP

NAME:    lemuel_freeze_stairs_1
DEPTH:   D:9-26, Elf:2-4, Vault, Zot:1-4
ITEM:    nothing
SHUFFLE: {[ / ]}
MARKER:  d = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 10, pow_max = 10, delay = 10, \
             size = 2, walk_dist = 0, spread_rate= 0 }
MAP
ccccccccccccc
cccccccc...{c
@...........c
@..d........c
@...........c
cccccccc...[c
ccccccccccccc
ENDMAP

# No item generation for the sake of autoexplore.
NAME:   lemuel_flamethrower_hall
DEPTH:  D:9-27, Vault, Elf, Geh
TAGS:   layout_rooms layout_city no_item_gen abyss ruin_abyss
MARKER: * = lua:fog_machine { cloud_type="flame", \
            pow_min = 25, pow_max = 50, delay = 150, \
            size = 3, walk_dist = 0, spread_rate= 40 }
COLOUR: * = red
SUBST:  * = .
SUBST:  $ : $$*|.c
MARKER: G = lua:props_marker { stop_explore = "a scorch-marked granite statue."\
        , feature_description = "scorch-marked granite statue" }
MAP
ccccccccccccccccccccccc
ccxxx*xxxxx*xxxxx*xxxxc
Gcxxx.xxxxx.xxxxx.xxxxc
ccccc.ccccc.ccccc.ccccc
c.................+$$$c
+.................+$$$c
c.................+$$$c
cc.ccccc.ccccc.cccccccc
Gc.xxxxx.xxxxx.xxxxxxxc
cc*xxxxx*xxxxx*xxxxxxxc
ccccccccccccccccccccccc
ENDMAP

# A poor man's Radiant Cavern (1KB)
#
# Without an amulet of rMut, in my tests, the cost was 4-6 bad
# mutations -- certainly not worth most of the loot. With rMut,
# it's still a gamble.
NAME:  kilobyte_mutagenic_chamber
DEPTH: D:15-, Elf, Vault
TAGS:  abyss ruin_abyss
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
DEPTH: D
MARKER: P = lua:fog_machine { cloud_type = "flame", \
             pow_min = 10, pow_max = 10, delay = 5, \
             size = 1, walk_dist = 0, start_clouds = 1 }
MAP
........
..ttttt.
.ttmmmt..
.ttmPmtt.
.ttmmmtt.
.tttttt..
.......
ENDMAP

NAME:  kilobyte_tornado_obelisk
TAGS:  no_monster_gen
DEPTH: D:15-27, Elf
ITEM:  acquire any
MONS:  statue generate_awake n_rpl name:diamond_obelisk hp:10000 \
       col:white tile:mons_diamond_obelisk
KPROP: .d1 = no_tele_into
{{
  hook("post_place", function()
    for mons in iter.mons_rect_iterator(dgn.point(1, 1),
                         dgn.point(dgn.GXM - 2, dgn.GYM - 2)) do
      if mons.name == "diamond obelisk" then
        mons.add_ench("perm_tornado", 1, 1)
      end
    end
  end)
}}
MAP
      ccc
     ccdcc
   ccc...ccc
  cc.......cc
 cc.........cc
 c...........c
cc...........cc
c.............c
c......1......c
c.............c
cc...........cc
 c...........c
 cc.........cc
  cc.......cc
   ccc...ccc
     c.@.c
ENDMAP


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

NAME:  minivault_1
TAGS:  allow_dup extra luniq_mini abyss ruin_abyss
DEPTH: D:4-
MAP
............
..xxxx=xxx..
.xx..x...xx.
.x....x...x.
.x...x....x.
.xx.x*x.x.=.
.=.x.x*x.xx.
.x....x...x.
.x...x....x.
.xx...x..xx.
..xxx=xxxx..
............
ENDMAP

NAME: minivault_4
TAGS: allow_dup extra luniq_mini abyss ruin_abyss
MAP
............
....xwxx....
..xxxwwxwx..
..xwwwwwwx..
.xwwxwwxwxx.
.xwwwwwwwwx.
.xwwxwwwxww.
.xxwwwwwwxx.
..wwwwxwwx..
..xxxwwxxw..
....xxww....
............
ENDMAP

NAME: minivault_5
TAGS: allow_dup extra luniq_mini abyss ruin_abyss
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-26
SUBST: * = %:30 * |:1
TAGS:  mini_float extra luniq_mini
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, Elf, Vault, Crypt, Lair
TAGS:    extra luniq_mini abyss ruin_abyss ruin_lair
SHUFFLE: bcva
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: allow_dup extra luniq_mini
MAP
............
.wwwww.wwww.
.wwwww.wwww.
.wwwww.wwww.
.wwwww.wwww.
.......wwww.
.wwww.......
.wwww.wwwww.
.wwww.wwwww.
.wwww.wwwww.
.wwww.wwwww.
............
ENDMAP

NAME: minivault_19
TAGS: allow_dup extra luniq_mini abyss ruin_abyss
MAP
............
.xx......xx.
.xxx....xxx.
..xxx..xxx..
...xxxxxx...
....xxxx....
....xxxx....
...xxxxxx...
..xxx..xxx..
.xxx....xxx.
.xx......xx.
............
ENDMAP

NAME:  minivault_21
TAGS:  allow_dup extra luniq_mini
DEPTH: D:8-26
MAP
............
.~xxxxxxxx~.
.x........x.
.x.cccccc.x.
.x.c|..<c.x.
.x.c.**.c.x.
.x.c.**.c.x.
.x.c>..|c.x.
.x.cccccc.x.
.x........x.
.~xxxxxxxx~.
............
ENDMAP

NAME:  minivault_22
TAGS:  allow_dup extra luniq_mini abyss ruin_abyss
DEPTH: D:6-26
SUBST: $ : $ *:5
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: allow_dup extra luniq_mini abyss ruin_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: allow_dup extra luniq_mini abyss ruin_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: allow_dup extra luniq_mini abyss ruin_abyss
SHUFFLE: XY
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: allow_dup extra luniq_mini abyss ruin_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: allow_dup extra luniq_mini abyss ruin_abyss
MAP
............
.x.xxxxxxxx.
.x........x.
.xxxxxxxx.x.
.x........x.
.x.xxxxxxxx.
.x........x.
.xxxxxxxx.x.
.x........x.
.x.xxxxxxxx.
............
ENDMAP
