################################################################################
# vaults_rooms_hard.des: Subvaults for the Vaults.
#
# Content: These are the subvaults that place a large number of monsters and
#          out of depth monsters.
#
# <<1>>      Abstract / generic threat
# <<2>>      Themed threat
#
################################################################################
#
# All of the subvaults in here should use the tag vaults_hard
#
# You can additionally use the following tags:
#
# vaults_orient_n vaults_orient_s vaults_orient_e vaults_orient_w
# no_windows preserve_wall
#
# vaults_orient_x: controls the entry points to the subvault.
# A subvault using vaults_orient_n will always be entered from the north side,
# as it appears in the .des. Multiple orient tags may be used.
#
# no_windows: prevents the layout from creating windows into the subvault.
#
# preserve_wall: prevents the layout from changing rock into the same wall type
# as the rest of the floor.
#
################################################################################

: crawl_require('dlua/vault.lua')

#
#  st_box_setup
#
#  This is the header for st's "greater box" vaults.

{{
function init_protected_by_tso(e)
  local h = "ego:holy_wrath good_item"
  e.tags('uniq_protected_by_tso')
  e.kmons('A = angel')
  e.kmons('1 = generate_awake daeva')
  e.kmons('2 = vault warden ; great sword ' .. h .. ' | battleaxe .. ' .. h ..
                             'glaive ' .. h .. ' | great mace ' .. h .. ' . ' ..
                             ' . chain mail | plate armour')
  e.kmons('3 = generate_awake vault guard')
  e.kfeat('A = altar_the_shining_one')
  e.kitem('A = any weapon ego:holy_wrath w:2 no_pickup / $')
  e.lua_marker('!', message_at_spot("You almost think you hear a voice: " ..
                                    "\"Seek not undue power, mortal.\"",
                                    "warning"))
  e.tile('G = dngn_statue_angel')
end

function st_box_setup(e)
  e.tags("no_item_gen")
  e.subst("% = %%%**|$")
  e.kmons("7 = patrolling vault guard")
  e.kmons("Z = frost giant / fire giant / titan w:5 / ettin / shadow dragon /\
               golden dragon w:5 / storm dragon / quicksilver dragon w:2 /\
               iron dragon w:2 / swamp dragon / fire dragon / ice dragon /\
               catoblepas / moth of wrath w:1 / ghost moth /\
               glass eye / eye of devastation / glowing orange brain /\
               nagaraja / guardian serpent /\
               vampire knight / vampire mage / deep elf sorcerer /\
               deep elf death mage / deep elf demonologist /\
               deep elf annihilator / deep elf high priest / orc warlord /\
               base draconian w:15 / sphinx / shapeshifter /\
               glowing shapeshifter")
  e.subst("0 = 0:9 Z:1")
  e.subst("9 = 9:3 Z:1")
end
}}

###############################################################################
#
# <<1>> Generic threat vaults.
#
###############################################################################

NAME:     vaults_room_glass_cross
TAGS:     vaults_hard
NSUBST:   y = 1:+ / *:x
SUBST:    w : ....x, m : mmmx, * = *%
KITEM:    8 = $
NSUBST:   9 = 1:9 / *:000009
NSUBST:   8 = 1:9 / *=09
MAP
ww......ww
ww......ww
..9xmmx9..
..xy.8yx..
..m.*%.m..
..m.%*.m..
..xy8.yx..
..9xmmx9..
ww......ww
ww......ww
ENDMAP

NAME:     vaults_room_hangedman_quadrants
TAGS:     vaults_hard no_monster_gen
SUBST:    $ = $%., * = *|, = : -., - : +:4 $:1
MAP
xx.x.xx
x9$x$9x
.$*-*$.
xx=x=xx
.$*-*$.
x9$x$9x
xx.x.xx
ENDMAP

NAME:     vaults_room_guarded_vault
TAGS:     vaults_hard vaults_orient_e
MONS:     vault guard
SUBST:    0 = 00.
MAP
%....*x11
..00..x..
......n..
0.99.0+..
......n..
..00..x..
*....%x11
ENDMAP

NAME:    st_diamondy
TAGS:    vaults_hard
SUBST:   1 = 0..
MAP
xxxxx..x..xxxxx
xxxx..1x1..xxxx
xxx...xxx...xxx
xx...xx%xx...xx
x...0.....0...x
...x.......x...
.1xx.......xx1.
xxx*..9.9..*xxx
.1xx.......xx1.
...x.......x...
x...0.....0...x
xx...xx%xx...xx
xxx...xxx...xxx
xxxx..1x1..xxxx
xxxxx..x..xxxxx
ENDMAP

NAME:    st_cells
TAGS:    vaults_hard allow_dup
MAP
...x....x...
...x....x...
xxx+xxxx+xxx
$0.x%09*x.0$
$0.x*90%x.0$
xxx+xxxx+xxx
...x....x...
...x....x...
ENDMAP

NAME:    st_smaller_cells
TAGS:    vaults_hard
MAP
..x.0x..x0.x..
..x0.x..x.0x..
xx+xx+xx+xx+xx
..x$%x9*x$$x..
..x$$x*9x%$x..
xx+xx+xx+xx+xx
..x0.x..x.0x..
..x.0x..x0.x..
ENDMAP

NAME:    st_lines
TAGS:    vaults_hard
SHUFFLE: 90
SUBST:   1 = 00.
MAP
%............9
0............*
xxxxxx++xxxxxx
.....+11+.....
.....+11+.....
xxxxxx++xxxxxx
9............%
*............0
ENDMAP

NAME:    st_spiral_rooms
TAGS:    vaults_hard
MAP
....x.........
.0..+.........
..0.xxxxxxxxxx
.0..x$*9%+....
....+%9*$x..0.
xxxxxxxxxx.0..
.........+..0.
.........x....
ENDMAP

NAME:    st_cross
TAGS:    vaults_hard
KMONS:   8 = 8
KITEM:   8 = |, *
SUBST:   8 = 98, 0 = 09
MAP
xxxxx.xxxxx
xxxx.0.xxxx
xxxxx.xxxxx
xxx.....xxx
x.x.x+x.x.x
.0..+8+..0.
x.x.x+x.x.x
xxx.....xxx
xxxxx.xxxxx
xxxx.0.xxxx
xxxxx.xxxxx
ENDMAP

NAME:    st_check
TAGS:    vaults_hard
WEIGHT:  5
KMONS:   8 = 8
KITEM:   8 = |
KMONS:   9 = 9
KITEM:   9 = *
MAP
.................
.xxxxxxxxxxxxxxx.
.x98990+9+9+0+0+.
.xxxxxxxxxxxxxxx.
.................
ENDMAP

NAME:    st_octagons_1
TAGS:    vaults_hard
NSUBST:  ^ = 2:* / *:%
MAP
......|x.....x^..^x..
.9...9*x.....x.90.x..
......xx.....xx..xx..
.....xx.......x++x...
....+x..xx+xx........
.9.xx..xx...xx.....xx
*%xx...x^.9.^x....xx^
xxx....xx...xx...xx..
........xx+xx....+.0.
.................+.9.
x+xx......xx+xx..xx..
...xx....xx...xx..xx^
...0xx..xx.....xx..xx
..9.^x..x0..9..0x....
....^x..x^.....^x....
ENDMAP

NAME:    st_octagons_2
TAGS:    vaults_hard
NSUBST:  ^ = 3:* / *:%$
MAP
....^x..x^......^x^..
.9..^x..x...90...x.0.
....xx..xx......xx.0.
...xx...%xxx..xxxx...
x++x....|x.x++x..xx..
x.....9.%x........x++
xx..9...xx...........
.xx....xx............
..x+xx+x.............
.................xx+x
......xx+xx.....xx...
x++x.xx...xx...xx....
x..xxx.....xx+xx^.0..
.00.xx..9..x...x^.9..
....xx^...^x.0.x.....
ENDMAP

NAME:    st_squares
TAGS:    vaults_hard
MAP
..............
....0....0....
..xxxx++xxxx..
..x........x..
..x...00...x..
..x..xxxx..x..
..x..x*%x..x..
..x..x*%x..x..
..x..x++x..x..
..x........x..
..x0..99..0x..
..xxxxxxxxxx..
..............
..............
ENDMAP

NAME:    st_lattice
TAGS:    vaults_hard
MAP
.x.x.x.x.
.x0x.x0x.
x.x.x.x.x
x%x9x*x.x
.x*x9x%x.
.x.x.x.x.
x0x.x.x0x
x.x.x.x.x
ENDMAP

NAME:    st_more_cells
TAGS:    vaults_hard
MAP
...x...x...
.0.+.9.+.9.
...x*.*x...
x+xxx+xxx+x
...x*.%x...
.9.+.9.+.0.
...x...x...
ENDMAP

NAME:    st_hourglassy
TAGS:    vaults_hard
TAGS:    vaults_orient_n vaults_orient_s
MAP
xxxxxxx...xxxxxxx
xxxxxx.....xxxxxx
xxxx.........xxxx
xx0...........0xx
x|9....9.9....9|x
xx0...........0xx
xxxx.........xxxx
xxxxxx.....xxxxxx
xxxxxxx...xxxxxxx
ENDMAP

NAME:    st_eye
TAGS:    vaults_hard
TAGS:    vaults_orient_n vaults_orient_s
NSUBST:  9 = 1:8 / *:9
MAP
xxxxxxxxx..xxxxxxxxx
xx%**xxxx..xxxx%*%xx
x.9...xx....xx...9.x
x...0.xx....xx.0...x
x....xx0....0xx....x
x.0.xx..x..x..xx.0.x
x.........9........x
x........9.........x
x.0.xx..x..x..xx.0.x
x....xx0....0xx....x
x...0.xx....xx.0...x
x.9...xx....xx...9.x
xx|*%xxxx..xxxx%**xx
xxxxxxxxx..xxxxxxxxx
ENDMAP

NAME:    st_star
TAGS:    vaults_hard
TAGS:    vaults_orient_n vaults_orient_s
NSUBST:  0 = 2=998 / 6:0 / *:.
MAP
xxxxxxxxxxxx..xxxxxxxxxxxx
x%*xxxxxxx......xxxxxxx%*x
x*9..xxx...0..0...xxx..9%x
xx.......0..xx..0.......xx
xxxx..0....xxxx....0..xxxx
xxxx..0....xxxx....0..xxxx
xx.......0..xx..0.......xx
x%9..xxx...0..0...xxx..9*x
x*%xxxxxxx......xxxxxxx*%x
xxxxxxxxxxxx..xxxxxxxxxxxx
ENDMAP

NAME:    st_quartered_hall
TAGS:    vaults_hard
NSUBST:  0 = 4=998 / 8:0 / *:.
MAP
xxxxxxx..xxxxxxx
x*00*x....x*00*x
xx..xx....xx..xx
xxx+x.0..0.x+xxx
xxx...x..x...xxx
x..0x......x0..x
.......09.......
.......90.......
x..0x......x0..x
xxx...x..x...xxx
xxx+x.0..0.x+xxx
xx..xx....xx..xx
x*00|x....x*00*x
xxxxxxx..xxxxxxx
ENDMAP

NAME:    hangedman_vaults_hard_town_square
TAGS:    vaults_hard
KFEAT:   d = any shop
SHUFFLE: abc, de, d*, AB
SUBST:   a : x., b : x.., c = ., e = %%$, * = %:3 *:7
SUBST:   A : x.., B : xx., C : xGT
SUBST:   1 = 9:3 0:7, 2 = 9:7 0:3
MAP
xxxxxx...xxxxxx
xe.2xx.C.xx1.ex
x.A..x...x..A.x
x1.d.xx.xx.d.2x
xx...........xx
xxxx.B.c.B.xxxx
...x..aba..x...
.C...cbGbc...C.
...x..aba..x...
xxxx.B.c.B.xxxx
xx...........xx
x2.e.xx.xx...1x
x.A..x...x..A%x
xd.1xx.C.xx2%%x
xxxxxx...xxxxxx
ENDMAP

NAME: grunt_vaults_funneled_arena
TAGS: vaults_hard
NSUBST: 9 = 1:8 / *:9
SUBST: 0 = 90000000
KMONS: 0 = 0 band
SUBST: $ = |***$$$$
MAP
  x.....xxxxx...xxxxx.....x
 xx......xxxxx.xxxxx......xx
xx.......+...x.x...+.......xx
.........xx..x.x..xx.........
....0...xxx.......xxx....0...
.......xxxxx..0..xxxxx.......
......xxxxxx.....xxxxxx......
.....xxxxxxxx...xxxxxxxx.....
x...xxxxxxxxx...xxxxxxxxx...x
xx+xxxxxxxxxxx.xxxxxxxxxxx+xx
xx.xxxxxxxxxxx.xxxxxxxxxxx.xx
xx...xxxxxxxxx+xxxxxxxxx...xx
xx.....xxxxxx$$$xxxxxx.....xx
.xxx.....xxx$9$9$xxx.....xxx.
.....0.....+$$G$$+....0......
.xxx.....xxx$9$9$xxx.....xxx.
xx.....xxxxxx$$$xxxxxx.....xx
xx...xxxxxxxxx+xxxxxxxxx...xx
xx.xxxxxxxxxxx.xxxxxxxxxxx.xx
xx+xxxxxxxxxxx.xxxxxxxxxxx+xx
x...xxxxxxxxx...xxxxxxxxx...x
.....xxxxxxxx...xxxxxxxx.....
......xxxxxx.....xxxxxx......
.......xxxxx..0..xxxxx.......
........xxx.......xxx........
....0....xx..x.x..xx....0....
xx.......+...x.x...+.......xx
 xx......xxxxx.xxxxx......xx
  x.....xxxxx...xxxxx.....x
ENDMAP

####
# st's greater box vaults!

# 32 monsters, 38 %
NAME:     st_greater_box_1
TAGS:     vaults_hard vaults_orient_s
NSUBST:   ' = 5:9 / 3:0 / *:.
NSUBST:   " = 8:9 / *:.
NSUBST:   - = 8:9 / *:.
NSUBST:   8 = 2:8 / *:.
: st_box_setup(_G)
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
v''''''''''''''''''''''''''''v
v''''''''''''''''''''''''''''v
v''''''''''''''''''''''''''''v
v''''''''''''''''''''''''''''v
vvvv++vvvv''''''''''vv++vvvvvv
v""""""""v''''''''''v----v-8-v
v""""""""v''''''''''v----v---v
v""""""""vvvvv++vvvvv----v---v
v""""""""v%%%v77v---v----v---v
v""""""""v%%%v77v------------v
v""""""""v%%%v77v------------v
v""""""""v"""v++v------------v
v"""""""""""8v..v------------v
v""""""""""""v..v------------v
v""""""""v"""v..v------------v
v""""""""v%%%v..v-----8------v
v""""""""v%%%v..v$%%%%%%%%%%$v
v"""8""""v%%%v..v$%%%%%%%%%%$v
vvvvvvvvvvvvvv..vvvvvvvvvvvvvv
ENDMAP

# 32 monsters, 36 %
NAME:     st_greater_box_2
TAGS:     vaults_hard vaults_orient_s
SHUFFLE:  ab
SUBST:    a = +
SUBST:    b = v
SUBST:    c : v.
SUBST:    d : v.
NSUBST:   ' = 8:9 / *:.
NSUBST:   " = 8:9 / *:.
NSUBST:   - = 8:9 / *:.
NSUBST:   8 = 2:8 / *:.
: st_box_setup(_G)
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
v%%%---v"""""""8""""""v---%%%v
v%%%---+""""""""""""""+---%%%v
v%%%8--v""""""""""""""v--8%%%v
v------vvvvvvvaavvvvvvv------v
v------v''''''''''''''v------v
vvbbvvvb'c''''dd''''c'vvvvbbvv
v""""v'''c''''dd''''c'''v""""v
v""""v'ccc''''''''''ccc'v""""v
v""""a'''''dd''8'dd'''''a"""8v
v8"""a'''''dd'8''dd'''''a""""v
v""""v'ccc''''''''''ccc'v""""v
v""""v'''c''''dd''''c'''v""""v
vv++vvvv'c''''dd''''c'bvvv++vv
v------v''''''''''''''v------v
v------vvvvvvv++vvvvvvv------v
v%%%8--v..7........7..v--8%%%v
v%%%---v..7........7..v---%%%v
v%%%---v..7........7..v---%%%v
vvvvvvvvvvvvvv..vvvvvvvvvvvvvv
ENDMAP

# 36 monsters, 42 %
NAME:     st_greater_box_3
TAGS:     vaults_hard vaults_orient_s
NSUBST:   ' = 12:9 / *:.
NSUBST:   " = 10:9 / *:.
: st_box_setup(_G)
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vv''''vv''''vv77vv..9..9..vv"v
v''''vv''''vv....vv......vv""v
v...vv''''vv......vv....vv"""v
v...v....vv........vv++vv""""v
v...+....+7...vv...7+..+"""""v
v...+....+7...vv...7+..+"""""v
v...v....vv........vv++vv""""v
v...vv''''vv......vv""""vv"""v
v''''vv''''vv....vv""""""vv""v
vv''''vv''''vv77vv""""""""vv+v
vvv''''vv''''v++v""""""""""+8v
v%vv''''vv''vv..vv""""""""vv+v
v%%vv''''vvvv....vv""""""vv$$v
v%%%vv''''vv......vv""""vv$%%v
v%%%%vv'''v0......0vv++vv%%%%v
v%%$%$vv++vv......vv$%%$vv%%%v
v%%%$+v....vv....vv$%%%%$vv%%v
v%%$vv.....8vv..vv$%%%%%%$vv%v
vvvvvvvvvvvvvv..vvvvvvvvvvvvvv
ENDMAP

# 31 monsters, 28 %, 8 |
NAME:     st_greater_box_4
TAGS:     vaults_hard vaults_orient_s
NSUBST:   ' = 5:9 / 3:0 / *:.
NSUBST:   " = 8:9 / *:.
NSUBST:   - = 8:9 / 2:8 / *:.
: st_box_setup(_G)
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
v%$%$v------------------v%$%$v
v$%$%v------------------v$%$%v
v%|%$+------------------+%|%$v
v$%|%+------------------+$%|%v
v%$%$v------------------v%$%$v
v$%$%v------------------v$%$%v
vvvvvvvvvvvvvv++vvvvvvvvvvvvvv
v......."""""""""""""".......v
v......."""""""""""""".......v
v+vvvv+vvvvvvvvvvvvvvvv+vvvv+v
v''''v""""""v%||%v""""""v''''v
v''''v""""""+%||%+""""""v''''v
vvvv+vvvvvvvvvvvvvvvvvvvv+vvvv
v.......''''''''''''''.......v
v.......''''''''''''''.......v
v++vvvvvvvvvvvvvvvvvvvvvvvv++v
v........77........77........v
v........7..........7........v
vvvvvvvvvvvvvv..vvvvvvvvvvvvvv
ENDMAP

# 26 monsters, 36 %
NAME:     st_greater_box_5
TAGS:     vaults_hard vaults_orient_s
NSUBST:   ' = 15:9 / 3:8 / *:.
SHUFFLE:  abc
SUBST:    a = +
SUBST:    b = v
SUBST:    c = v
: st_box_setup(_G)
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
v%$%$v''''''''''''''''''v%$%$v
v$%$%+''''''''''''''''''+$%$%v
v%$%$v''''''''''''''''''v%$%$v
vvvvvv''''''''''''''''''vvvvvv
v%%%%v''''''''''''''''''v%%%%v
v%%%%+''''''''''''''''''+%%%%v
v%%%%v''''''''''''''''''v%%%%v
vvvvvv''''''''98''''''''vvvvvv
v$$$$v''''''''''''''''''v$$$$v
v$$$$+''''''''''''''''''+$$$$v
v$$$$v''''''''''''''''''v$$$$v
vvvvvv''''''''''''''''''vvvvvv
v....v''''''''''''''''''v....v
v....+''''''''''''''''''+....v
v....v''''''''''''''''''v....v
vavvvvvvvcvvvvbbvvvvcvvvvvvvav
v.........77......77.........v
v.........7........7.........v
vvvvvvvvvvvvvv..vvvvvvvvvvvvvv
ENDMAP

####

NAME: ontoclasm_vaults_water_temple
WEIGHT: 3
TAGS: vaults_hard no_pool_fixup
KMASK: wW = no_monster_gen
NSUBST: 0 = 1:9 / *:0
KMONS: 0 = 0 band
SUBST: G : GU, % = %%%%*.
MAP
     ........
     ........
      wx++xw
   xxxxxWWxxxxx
   xwwwxWWxwwwx
.. xw0.x++x.0wx ..
..wxw%W....W%wxw..
..xxxx.G..G.xxxx..
..+WW+..WW..+WW+..
..+WW+..WW..+WW+..
..xxxx.G..G.xxxx..
..wxw%WWwwWW%wxw..
.. xw0.wwww.0wx ..
   xwwwxxxxwwwx
ENDMAP

NAME: ontoclasm_vaults_fire_temple
WEIGHT: 3
TAGS: vaults_hard
KMASK: l = no_monster_gen
NSUBST: 0 = 1:9 / *:0
KMONS: 0 = 0 band
SUBST: G : GY, % = %%%%*.
MAP
     ........
     ........
      lx++xl
   xxxxx..xxxxx
   xlllx..xlllx
.. xl0.x++x.0lx ..
..lxl%......%lxl..
..xxxx.llll.xxxx..
..+..+.lGGl.+..+..
..+..+......+..+..
..xxxx.lGGl.xxxx..
..lxl%.llll.%lxl..
.. xl0.llll.0lx ..
   xlllxxxxlllx
ENDMAP

NAME: ontoclasm_vaults_shout
TAGS: vaults_hard
KMONS: 0 = 0 band
MAP
..xxxxxxx
..x.9...xx
..x%.9...x
..xxxxx..x
.....+..0x
.....+..0x
..xxxxx..x
..x%.9...x
..x.9...xx
..xxxxxxx
ENDMAP

NAME: ontoclasm_vaults_gallery
TAGS: vaults_hard
NSUBST: 9 = 1:0 / 1=8 / *:9
MAP
G...........G
..x.......x..
..xx..%..xx..
..x.GGGGG.x..
..xx..9..xx..
..x*9.9.9*x..
..xxxxxxxxx..
ENDMAP

NAME: ontoclasm_vaults_echo
WEIGHT: 3
TAGS: vaults_hard no_rotate vaults_orient_s
NSUBST: % = 2=% / 1=* / *=.
SUBST: G : GGGTUY
MAP
x%..x.x..%x
..8..|..8..
....x.x....
x.xxxxxxx.x
%....x....%
.9.x...x.9.
...x...x...
x.%x...x%.x
xxxxx.xxxxx
...G...G...
...........
ENDMAP

NAME:   dpeg_vaults_monster_doublerow
TAGS:   vaults_hard
WEIGHT: 1
SUBST:  0 : 0000000z, z : z., 0 = 0009..
KMONS:  z = human skeleton
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxx
xx00xx00xx00xx00xx00xx00xx
xx..xx..xx..xx..xx..xx..xx
x........................x
x.xx..xx..xx..xx..xx..xx.x
..xx00xx00xx00xx00xx00xx..
xxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   dpeg_vaults_pockets_of_resistance
TAGS:   vaults_hard
NSUBST: 0 = 3 = 899 / 12 = 099 / * = 0
MAP
  xxx......
 xxxxx....xxx
xx000xx..xxxxx
xx000xx..x000xx
xx000....x000xx
.xx.......000xx
...........xxx.
...............
...xx000xx.....
.  xx000xx  ...
   xx000xx    .
    xxxxx
     xxx
ENDMAP

NAME:   dpeg_vaults_waves
TAGS:   vaults_hard
SUBST:  = = +x
SUBST:  ^ : .x , - : .xx
SUBST:  * = **% , | = ||*
SUBST:  8 = 89
MAP
xxxxxx
x8..|x
x-..^xxxxxxxxxxxxxx
x8...+*.9...x%.....
x-...=..9...+..000@
x8...+*.9...x%.....
x-..^xxxxxxxxxxxxxx
x8..|x
xxxxxx
ENDMAP

NAME: nicolae_vaults_display_case
TAGS: vaults_hard vaults_orient_w no_monster_gen
MAP
.........
.........
..xxxxxx+
..m*x.0..
..m*+090.
..m*x.0..
..xxxxxx+
.........
.........
ENDMAP

NAME: nicolae_vaults_minivaults
TAGS: vaults_hard
NSUBST: P = 1:P / *:9
SHUFFLE: abc, def, ghi, jkl
KITEM: P = superb_item
SUBST: adgj : x
SUBST: bcefhikl : .
MAP
................
.xxxxxx..xxxxxx.
.xP.cbx..xefePx.
.x.abax..x.ddex.
.xcbc.x..xfddfx.
.xba...00..f.ex.
.xxxx.0..0.xxxx.
.....0.<<.0.....
.....0.<<.0.....
.xxxx.0..0.xxxx.
.x.gi..00..jllx.
.xhghix..xjkkjx.
.xihggx..xlkj.x.
.xPih.x..xlj.Px.
.xxxxxx..xxxxxx.
................
ENDMAP

NAME: nicolae_vaults_murderbox
TAGS: vaults_hard
SUBST: m : mx
MAP
xx.....xx
xmm.0.mmx
.mxx+xxm.
..x...x..
.0+.8.+0.
..x...x..
.mxx+xxm.
xmm.0.mmx
xx.....xx
ENDMAP

NAME: nicolae_vaults_quadrants
TAGS: vaults_hard
SUBST: m : +++xxm, n : +x, % = %%%%%$$$$**|, 8 = 89
MAP
     .......
   ...xm+mx...
  ..xxx...xxx..
 ..xx...9...xx..
 .xxxx.....xxxx.
..x.xxx...xxx.x..
.xx..xxn+nxx..xx.
.m....x%%%x....m.
.+.9..x%8%x..9.+.
.m....x%%%x....m.
.xx..xxxxxxx..xx.
..x.xxx...xxx.x..
 .xxxx.....xxxx.
 ..xx...9...xx..
  ..xxx...xxx..
   ...xm+mx...
     .......
ENDMAP

NAME: nicolae_vaults_statue_guard
TAGS: vaults_hard vaults_orient_e
MONS: obsidian statue / orange crystal statue
KPROP: % = no_tele_into
SUBST: % = %%%*
MAP
xxxx......xx
x%%x....x..x
x%%1....m.(.
x%%x....x..x
xxxx......xx
ENDMAP

NAME:     vaults_mumra_bighexcomb
TAGS:     vaults_hard
SUBST:    0 = 0.
NSUBST:   0 = 1:9 / *:0
MAP
      ...
     .000.
 ...xx...xx...
.000.xx+xx.000.
x...x+...+x...x
xxxxx..(..xxxxx
x...x+...+x...x
.000.xx+xx.000.
 ...xx...xx...
     .000.
      ...
ENDMAP

NAME: nicolae_vaults_branching_niches
TAGS: vaults_hard vaults_orient_s no_monster_gen no_item_gen
SUBST: + : +.
KMONS: m = 0 band w:12 / 9 w:3 / 8 w:1 / nothing w:6
KITEM: m = nothing / % / $ / * w:5 / | w:1
MAP
xmxxxmxxxmxxxmx
x+xxx+xxx+xxx+x
x.....xxx.....x
x+x.x+xxx+x.x+x
xmx.xmxxxmx.xmx
xxx.xxxxxxx.xxx
xxx.........xxx
xxx.xxx.xxx.xxx
xmx.xmx.xmx.xmx
x+x.x+x.x+x.x+x
x.....x.x.....x
x+xxx+x.x+xxx+x
xmxxxmx.xmxxxmx
xxxxxxx.xxxxxxx
ENDMAP

NAME: nicolae_vaults_c_with_doors
TAGS: vaults_hard vaults_orient_e no_monster_gen no_item_gen
NSUBST: A = 1:+ / *:x
SUBST: $ = $$%, B = 0., 0 = 900
KMONS: 0 = 0 band
MAP
xxxxxxxxxxx
xB.B...B..x
x.$$xAxAxAx
xB$$xBxBxBx
x.xxx+x+x+x
x.AB+......
xBxxx.(..(.
x.AB+.(..(.
xBxxx.(..(.
x.AB+......
x.xxx+x+x+x
xB$$xBxBxBx
x.$$xAxAxAx
xB.B...B..x
xxxxxxxxxxx
ENDMAP

NAME: nicolae_vaults_meeting
TAGS: vaults_hard vaults_orient_s patrolling no_monster_gen
KMONS: S = vault sentinel
KMONS: G = vault guard
KMONS: W = vault warden
KMONS: P = ironbound preserver
KMONS: C = ironbound convoker
SUBST: | = ||*
MAP
   xxxxxxx
 xxx%*|*%xxx
xxG+..S..+Gxx
x..xnnnnnx..x
x.P...C...P.x
x...........x
x..W.....W..x
xx...GGG...xx
 xxxx+++xxxx
   xx...xx
    x...x
ENDMAP

NAME: nicolae_vaults_quartermaster
TAGS: vaults_hard
NSUBST: 0 = 1:9 / *:0
KFEAT: % = alarm trap / . w:30
KITEM: % = any
KMONS: 0 = 0 band
MAP
xxxxx.xxxxx
x...+0+...x
x.x.xxx.x.x
x..0%x%0..x
x+x%xxx%x+x
.0xxxxxxx0.
x+x%xxx%x+x
x..0%x%0..x
x.x.xxx.x.x
x...+0+...x
xxxxx.xxxxx
ENDMAP

NAME: nicolae_vaults_good_morning_starshine
TAGS: vaults_hard
NSUBST: A = 3:+ / x, B = 2:+ / x, C = + / x
SUBST: 0 = 0., Q = 9998., 9 = 9.., % = %%%$*, $ = $$.
KMONS: 0 = 0 band
KMONS: 9 = 9 band
KMONS: 8 = 8 band
KITEM: 8 = star_item / superb_item w:3
MAP
...........................
.xx......0...x...0......xx.
.xxxx.......xxx.......xxxx.
..xxxxx....xx$xx....xxxxx..
..xx$.xxx.xx...xx.xxx.$xx..
...x....xAx..x..xAx....x...
...xx.......xxx.......xx...
....x..9...xx%xx...9..x....
....xx....xx...xx....xx....
.0...A....B..Q..B....A...0.
....xx..xBx.xCx.xBx..xx....
...xx..xx...x$x...xx..xx...
..xx..xx..xxx%xxx..xx..xx..
.xx$.xx%.QC$%8%$CQ.%xx.$xx.
..xx..xx..xxx%xxx..xx..xx..
...xx..xx...x$x...xx..xx...
....xx..xBx.xCx.xBx..xx....
.0...A....B..Q..B....A...0.
....xx....xx...xx....xx....
....x..9...xx%xx...9..x....
...xx.......xxx.......xx...
...x....xAx..x..xAx....x...
..xx$.xxx.xx...xx.xxx.$xx..
..xxxxx....xx$xx....xxxxx..
.xxxx.......xxx.......xxxx.
.xx......0...x...0......xx.
...........................
ENDMAP

NAME: nicolae_vaults_lopsided_apartments
TAGS: vaults_hard
NSUBST: EPOD = 1:+, DNMH = 1:+, AKLH = 1:+, EIJA = 1:+, \
        BFCG = 3:+, IJKLMNOP = 1:+, 0 = 9 / 0
SUBST: ) = )0, 0 = 0009%$
SUBST: ABCDEFGHIJKLMNOP = x
KMONS: 9 = 9 band
KITEM: 9 = star_item
MAP
            ...
        ...x.).
    ...x.).+...
...x.).A...xx+x
.).+...xxKxxx...
...xxxJxx...x.).
 x+xx...x.0.L...
 ...x.0.B...xxHx
 .).I...xxGxxx...
 ...xxxFxx...M.).
  xExx...C.0.x...
  ...P.0.x...xx+x
  .).x...xxNxxx...
  ...xxxOxx...+.).
   x+xx...D.).x...
   ...+.).x...
   .).x...
   ...
ENDMAP

NAME: nicolae_vaults_know_your_exits
TAGS: vaults_hard no_windows vaults_orient_s
SHUFFLE: pqrstu/PQRSTU
SUBST: pqRT = %, rsPU = x, tuQS = ., 0 = 0.
KMONS: 0 = 0 band
KMONS: 9 = 9 band
KITEM: % = any / gold
KMONS: % = nothing w:11 / 0 w:1
MAP
      .
    ..9..
  .........
...xpxqxpx...
...rxrsrxr...
.0.xpxqxpx.0.
 ..tut0tut..
 ..xpxqxpx..
 ..rxrsrxr..
  .xpxqxpx.
  .........
  .........
ENDMAP

NAME: nicolae_vaults_halls_meeting
TAGS: vaults_hard
SUBST: 9 = 9998, 0 = 00.
MAP
xxxx..xxxx..xxxx
x9.xx...0..xx.9x
x...xx....xx...x
xx...xx++xx...xx
.xx...x..x...xx.
..xx..+0.+..xx..
x..xx+x..x+xx..x
x0.+...xx.0.+..x
x..+.0.xx...+.0x
x..xx+x..x+xx..x
..xx..+.0+..xx..
.xx...x..x...xx.
xx...xx++xx...xx
x...xx....xx...x
x9.xx..0...xx.9x
xxxx..xxxx..xxxx
ENDMAP

NAME: nicolae_vaults_octagons
TAGS: vaults_hard
SHUFFLE: abcdefgh, ijklmnop
SUBST: abcdefgijklmno = x, hp = ., 0 = 009.
KMONS: 0 = 0 band
KMONS: 9 = 9 band
MAP
      .....
     ...0...
    ..iiiii..
   ..pp...jj..
  ..pp..0..jj..
 ..pp..aaa..jj..
..op..hh.bb..jk..
..o..gh...bc..k..
.0o.0g..9..c0.k0.
..o..gf...dc..k..
..on..ff.dd..lk..
 ..nn..eee..ll..
  ..nn..0..ll..
   ..nn...ll..
    ..mmmmm..
     ...0...
      .....
ENDMAP

NAME: nicolae_vaults_fighting_squares
TAGS: vaults_hard
SHUFFLE: ABCDEFGHabcdefgh%/IJKLMNOPijklmnop!
NSUBST: 0 = 1:9 / * = 0009., ABCDEFGH = x / +, abcdefgh = + / x, \
        PI = + / x, JK = + / x, LM = + / x, NO = + / x, \
        ij = + / x, kl = + / x, mn = + / x, op = + / x
SUBST: ! = .
KMONS: 9 = 9 band
MAP
xxxxxx..xxxxxx
x!...x..x...!x
x.0..B..C..0.x
x..xbxxxxcx..x
x..a......d..x
xxAx.0..0.xDxx
...x..%%..x...
...x..%%..x...
xxHx.0..0.xExx
x..h......e..x
x..xgxxxxfx..x
x.0..G..F..0.x
x!...x..x...!x
xxxxxx..xxxxxx
ENDMAP

NAME: nicolae_vaults_an_arrangement
TAGS: vaults_hard
SUBST: 0 = 00.
KMONS: 9 = 9 band
MAP
x.x.x.x.x.x.x
.............
x.0...0...0.x
...x..x..x...
x...........x
.....x.x.....
x.0x..9..x0.x
.....x.x.....
x...........x
...x..x..x...
x.0...0...0.x
.............
x.x.x.x.x.x.x
ENDMAP

####

NAME: lightli_bank_vault
TAGS: vaults_hard vaults_orient_s
MONS: vault guard
KMONS: 2 = vault guard
KMONS: 3 = vault warden
KITEM: 23 = $
KFEAT: ^ = alarm trap
MAP
xxxxxxxxxxx
x$$$$$$$$$x
x$$2$3$2$$x
x$2$$$$$2$x
x$2$$$$$2$x
x$$$$$$$$$x
xx+xx+xx+xx
x$$$x1x$$$x
x$*$x^x$*$x
x$$$x.x$$$x
xxxxx+xxxxx
ENDMAP

####

NAME:   kennysheep_vaults_gozag_temple
TAGS:   vaults_hard no_item_gen uniq_kennysheep_gozag_temple
WEIGHT: 5
KMONS:  1 = ironbound preserver
KMONS:  2 = vault warden
KITEM:  | = gold good_item
KITEM:  12 = gold
KFEAT:  B = altar_gozag
KFEAT:  D = granite_statue
TILE:   GD = dngn_golden_statue
: set_feature_name("granite_statue", "golden statue")
COLOUR: cGD = yellow
FTILE:  $|B}+nc12-D = floor_limestone
FTILE:  " = floor_hall
KFEAT:  _ = antiques shop name:Gozag greed:100 /\
            antique weapon shop name:Gozag greed:100 /\
            antique armour shop name:Gozag greed:100
MAP
...............
.G.""c+++c"".G.
..""cc---cc""..
..""cD---Dc""..
.9""cc+++cc""9.
.""Gcc$$$ccG"".
.""cc$$$$$cc"".
.""n$$2|1$$n"".
."_n$$|B|$$n_".
9""n$$1|2$$n""9
.""cc$$$$$cc"".
.""Gcc$$$ccG"".
."""0cnnnc0""".
.."""""_"""""..
.G.""""""""".G.
...............
ENDMAP

NAME: nicolae_vaults_inception_network
TAGS: vaults_hard
WEIGHT: 5
KMONS: 0 = 0 / 0 band w:5
KMONS: 9 = 9 / 9 band w:5
KITEM: 0 = $ / any w:5
KITEM: 9 = * / % w:5
NSUBST: p = x / ., q = x / ., r = x / ., s = x / .
NSUBST: A = . / x, B = . / x, C = . / x, D = . / x, E = . / x,  F = . / x, \
  G = . / x, H = . / x, I = . / x, J = . / x, K = . / x, L = . / x, M = . / x, \
  N = . / x, O = . / x, P = . / x, Q = . / x, R = . / x, S = . / x, T = . / x, \
  U = . / x, V = . / x, W = . / x, X = . / x, Y = . / x, Z = . / x, 1 = . / x, \
  2 = . / x, 3 = . / x, 4 = . / x, 5 = . / x, 6 = . / x
NSUBST: % = 2:9 / 6:0 / 4 = 0% / * = ......%
MAP
.........................
.x6xpxAxBxCxDxExFxGxqxHx.
.6%6.A%x%x%x%x%x%x%G.H%H.
.x6xpxAxBxCxDxExFxGxqxHx.
.p.p.................q.q.
.x5x.               .xIx.
.5%5.               .I%I.
.xxx.               .xxx.
.4%4.               .J%J.
.xxx.               .xxx.
.3%3.               .K%K.
.xxx.               .xxx.
.2%2.               .L%L.
.xxx.               .xxx.
.1%1.               .M%M.
.xxx.               .xxx.
.Z%Z.               .N%N.
.xxx.               .xxx.
.Y%Y.               .O%O.
.xYx.               .xOx.
.s.s.................r.r.
.xXxsxWxVxUxTxSxRxQxrxPx.
.X%X.x%x%x%x%x%x%x%Q.P%P.
.xXxsxWxVxUxTxSxRxQxrxPx.
.........................
ENDMAP

NAME: nicolae_vaults_holding_cells
TAGS: vaults_hard
WEIGHT: 5
KMONS: P = human ; nothing / orc ; nothing / elf ; nothing / troll ; nothing / \
       centaur ; nothing / kobold ; nothing
KFEAT: g = iron_grate
KFEAT: ^ = alarm trap
KMONS: 1 = vault guard
KMONS: 2 = vault warden
KMONS: 3 = ironbound preserver / ironbound convoker
NSUBST: 1 = 4:1 / 1:2 / 1:3 / *:., . = 2:^ / *:.
SUBST: ' = .
KPROP: P = no_tele_into
KMASK: P = opaque
KMASK: P = no_trap_gen
KMASK: P = no_item_gen
MAP
xxxxxxxxx
xPg..1xxx
xxx1...xx
xPg....1x
xxx1.1..'
xPg....1x
xxx1...xx
xPg..1xxx
xxxxxxxxx
ENDMAP

NAME:    minmay_guarded_unrand_guard_vaults
TAGS:    vaults_hard vaults_orient_n
WEIGHT:  3
ITEM:    glaive_of_the_guard no_pickup
SUBST:   b : bxcmG.T
NSUBST:  3:9 / 4=9. / ., 8 = 2:8 / 6=8.. / .
MAP
vvvvvvv@vvvvvvv
v...v*v.v*v...v
v8b8.*n.n*.8b8v
v.8.v*v.v*v.8.v
vv.vvvv.vvvv.vv
v.9.vv.9.vv.9.v
v.b9..9b9..9b.v
v.9.vv...vv.9.v
vv.vvvvnvvvv.vv
vv.vvv...vvv.vv
v.8.v..*..v.8.v
v8b8..*d*..8b8v
v...v..*..v...v
vGvGvv...vvGvGv
vvvvvvvvvvvvvvv
ENDMAP

NAME:    minmay_guarded_unrand_secular_launcher
TAGS:    vaults_hard vaults_orient_s
WEIGHT:  3
# n.b. if one of these has generated, this may fall back on a randart. If both
# have generated, it is guaranteed to.
ITEM:    storm_bow no_pickup / sniper no_pickup
NSUBST:  3:9 / 6=9. / ., 8 = 2:8 / 6=8.. / .
MAP
     vvvvv
   vvv999vvv
  vv.......vv
 vv..cc.cc..vv
 v..cc888cc..v
vv.cc|...|cc.vv
v9.c8.bbb.8c.9v
v9.c8.bdb.8c.9v
v9.c8.b.b.8c.9v
vv.cc|...|cc.vv
 v..cc888cc..v
 vv..ccncc..vv
  vv.......vv
   vvv999vvv
     vv.vv
ENDMAP

NAME:  nicolae_vaults_antechamber_and_loot_room
TAGS:  vaults_hard vaults_orient_s vaults_orient_n vaults_orient_e
KITEM: 8 = |
KMONS: 8 = 8 band
SUBST: 0 = .00009, % = ..%%%**
MAP
xxxx0...0
%%%x.....
%8.+..9..
%%%x.....
xxxx0...0
ENDMAP

NAME:   nicolae_vaults_corpse_flower
TAGS:   vaults_hard
KMONS:  0 = 0 band
KMONS:  9 = 9 band
KMONS:  8 = 8 band
SUBST:  0 = 0009, 9 = 9998, * = ***|
NSUBST: D = + / x, E = + / x, F = + / x, H = + / x
MAP
          ...
         ..(..
         .....
        .......
        ...0...
        .......
        .......
         xDDDx
   .... xx...xx ....
 ......xx*...*xx......
.......H.......E.......
.(..0..H...9...E..0..(.
.......H.......E.......
 ......xx*...*xx......
   .... xx...xx ....
         xFFFx
        .......
        .......
        ...0...
        .......
         .....
         ..(..
          ...
ENDMAP

NAME:   nicolae_vaults_corridor_and_loot_room
TAGS:   vaults_hard vaults_orient_e
KITEM:  8 = |
KMONS:  0 = 0 / 0 band w:5
KMONS:  8 = 8 band
NSUBST: D = + / n
SUBST:  0 = .0, % = ..%%%**
MAP
.......x%%%x
.0...9.+.8%x
.......x%%%x
...xxxxxnnnx
...x...x....
.0.x.0.+.0..
...x...x....
...xxDxxx+xx
.......x...x
.0...0.D.0.x
.......x...x
ENDMAP

NAME:   nicolae_vaults_crenellated_ambush
TAGS:   vaults_hard
NSUBST: ' = 4=0 / 4=.0 / ..%
SUBST:  0 = 0000998
MAP
x'x'x'x
'.....'
x.....x
'..(..'
x.....x
'.....'
x'x'x'x
ENDMAP

NAME:  nicolae_vaults_diffraction_hallways
TAGS:  vaults_hard
SUBST: 0 = .009, 9 = .998, * = .**|
MAP
..........
x.xxxxxx.x
x...00...x
x.x.xx.x.x
x.x9**9x.x
x.x9**9x.x
x.x.xx.x.x
x...00...x
x.xxxxxx.x
..........
ENDMAP

NAME:    nicolae_vaults_disappearing_quadrants
TAGS:    vaults_hard
SHUFFLE: FMNS, DEH, JKL, OPQ, RZ-
SUBST:   FJORD = ., MEKPZ = x, N : xx., S : xx., H : xx., L : xx., Q : xx., \
         - : xx., 0 = .0, 9 = ...9, 0 = 0009, 9 = 9998, * = ***|
MAP
......................
.(..DDEE......JJKK..(.
..DDD..EEE..JJJ..KKK..
..D......E..J......K..
.DD.0..0.EEJJ.0..0.KK.
.D...xx...EJ...xx...K.
.H...xx...FM...xx...L.
.HH.0..0.FFMM.0..0.LL.
..H......F..M......L..
..HHH..FFF99MMM..LLL..
....HHFF.9**9.MMLL....
....RRSS.9**9.NNOO....
..RRR..SSS99NNN..OOO..
..R......S..N......O..
.RR.0..0.SSNN.0..0.OO.
.R...xx...SN...xx...O.
.-...xx...ZQ...xx...P.
.--.0..0.ZZQQ.0..0.PP.
..-......Z..Q......P..
..---..ZZZ..QQQ..PPP..
.(..--ZZ......QQPP..(.
......................
ENDMAP

NAME:  nicolae_vaults_enemy_cabinets
TAGS:  vaults_hard vaults_orient_s
KITEM: 0 = %
KITEM: 9 = *
KITEM: 8 = |
KMONS: 0 = 0
KMONS: 9 = 9
KMONS: 8 = 8
SUBST: 0 = 099988
MAP
0x0x0x0
.......
..x.x..
.......
x..x..x
x.....x
x.....x
ENDMAP

NAME: nicolae_vaults_little_guard_posts
TAGS: vaults_hard
MAP
..xxxx
..+.9x
x++..x
x..++x
x9.+..
xxxx..
ENDMAP

NAME:  nicolae_vaults_murder_corner
TAGS:  vaults_hard vaults_orient_s vaults_orient_w
KITEM: 9 = *
KITEM: 8 = |
KMONS: 9 = 9
KMONS: 8 = 8
MAP
x9.x.8
x.....
xx.0.x
......
...x.9
...xxx
ENDMAP

NAME:   nicolae_vaults_museum
TAGS:   vaults_hard
WEIGHT: 3
KITEM:  M = any weapon randart / any armour randart / any jewellery randart / \
            any magical staff randart / any randbook
KMONS:  R = vault warden band
KMONS:  S = vault sentinel
KMONS:  s = vault guard w:40 / ironbound preserver / ironbound convoker
KFEAT:  M = alarm trap
KMASK:  M = no_monster_gen
KMASK:  M = opaque
KPROP:  M = no_tele_into
NSUBST: ! = R / S / s0..., D = m / n
SUBST:  0 = 009, 9 = 998
MAP
.............
.!....!....!.
..nnn...nnn..
..nMn.0.nMn..
..nnm...mnn..
.....DDD.....
.!.0.DMD.0.!.
.....DDD.....
..nnm...mnn..
..nMn.0.nMn..
..nnn...nnn..
.!....!....!.
.............
ENDMAP

NAME:  nicolae_vaults_mush_room
TAGS:  vaults_hard vaults_orient_s
KMONS: 8 = 8 band
KMONS: 9 = 9 band
SUBST: * = **|, 0 = ...0000
MAP
    0...0
  .........
 ...........
..0...9...0..
.............
.............
+xx.0...0.xx+
..xx.....xx..
...xx...xx...
....x.0.x....
.8..x...x..8.
x***x...x***x
xxxxx...xxxxx
ENDMAP


NAME:    nicolae_vaults_off_center_swirl
TAGS:    vaults_hard
SHUFFLE: PQRS/pqrs
NSUBST:  PD = + / x, QE = + / x, RF = + / x, SH = + / x, 0 = 9 / 0.
SUBST:   pqrs = .
MAP
    .P...
  ..0P.0.q0
 ppppDp%QEQQ
 ....Pxxxq..
....0%xxx%0..
.....sxxxR...
SSSSSHS%rFrrr
....0s.0.R0..
.....s...R...
 ....s...R..
 ....s...R..
  ...s...R.
    .s...
ENDMAP

NAME:    nicolae_vaults_security_offices_1
TAGS:    vaults_hard vaults_orient_n
SHUFFLE: DEF
SUBST:   D = +, EF = n, 0 = ...000998
MAP
.....
.....
DEFED
.....
00000
ENDMAP

NAME:  nicolae_vaults_security_offices_2
TAGS:  vaults_hard vaults_orient_e
KITEM: L = % w:5 / * / | w:5
KMONS: L = 0 / 9 / 9 band / 8
MAP
........x
........x
........x
+xnxx...x
...Ln....
...Ln.(..
...Ln....
ENDMAP

NAME:  nicolae_vaults_security_offices_3
TAGS:  vaults_hard
SUBST: 0 = 000998, * = **|
MAP
...xxxxx...
.(.xxxxx.(.
...xx*xx...
...+.0.x...
...n...n...
...n0*0n...
...n...n...
...x.0.+...
...xx*xx...
.(.xxxxx.(.
...xxxxx...
ENDMAP

NAME:    nicolae_vaults_security_offices_4
TAGS:    vaults_hard
SHUFFLE: DE, FH
SUBST:   D : xxn .:5, E : xnn .:5, F : xxn .:5, H : xnn .:5, 9 = 9998
MAP
x...xxxxx
..D..+.9x
.DED.n..x
..D0.xnnx
x.......x
xnnx.0F..
x..n.FHF.
x9.+..F..
xxxxx...x
ENDMAP

NAME:  nicolae_vaults_security_offices_5
TAGS:  vaults_hard
SUBST: 0 = .0009
MAP
...xxxxx...
.(.xx..+...
...xx..x...
...xx+xx...
...n0.0n...
...n.0.n...
...n0.0n...
...xnnnx...
...........
.(.......(.
...........
ENDMAP

NAME:   nicolae_vaults_security_offices_6
TAGS:   vaults_hard
NSUBST: D = + / x, E = + / x
SUBST:  O = .0
MAP
.............
.O....(....O.
.............
xDnnx...xnnEx
x.0%n...n*9.x
x.9*n...n%0.x
xDnnx...xnnEx
.............
.O....(....O.
.............
ENDMAP

NAME:    nicolae_vaults_shipping_containers_1
TAGS:    vaults_hard
SHUFFLE: DE, FH, JK, LM, NO
SUBST:   DFJLN = +, E : xxxx+, H : xxxx+, K : xxxx+, M : xxxx+, O : xxxx+, \
         - = ......%0, % = %%%**|, 0 = 000998
MAP
........................
......xFFx..............
..xDDxx--xxJJxxLLx.xNNx.
..x--xx--xx--xx--x.x--x.
..x--xx--xx--xx--x.x--x.
..x--xx--xx--xx--x.x--x.
..x--xxHHxx--xx--x.x--x.
..xEEx....xKKxxMMx.xOOx.
........................
........................
ENDMAP

NAME:    nicolae_vaults_shipping_containers_2
TAGS:    vaults_hard
SHUFFLE: DE, FH, JK, LM
SUBST:   DFJL = +, E : xxxx+, H : xxxx+, K : xxxx+, M : xxxx+, \
         - = ......%0, % = %%%**|, 0 = 000998
MAP
.......xxxxxx.
.xDDx..J----K.
.x--x..J----K.
.x--x..xxxxxx.
.x--x.........
.x--xxxxxxx...
.xEExF----H...
.....F----H...
.....xxxxxx...
.......xxxxxx.
xxxxxx.L----M.
x----+.L----M.
x----+.xxxxxx.
xxxxxx........
ENDMAP

NAME:    nicolae_vaults_shipping_containers_3
TAGS:    vaults_hard
SHUFFLE: DE, FH, JK
SUBST:   DFJ = +, E : xxxx+, H : xxxx+, K : xxxx+, \
         - = ......%0, % = %%%**|, 0 = 000998
MAP
..............
......xxxxxx..
xDDx..F----H..
x--x..F----H..
x--x..xxxxxx..
x--x..........
x--x..........
xEEx.xxxxxx...
.....J----K...
.....J----K...
.....xxxxxx...
ENDMAP

NAME:    nicolae_vaults_shipping_containers_4
TAGS:    vaults_hard
SHUFFLE: DE, FH
SUBST:   DF = +, E : xxxx+, H : xxxx+, \
         - = ......%0, % = %%%**|, 0 = 000998
MAP
.xxxxxx..
.D----E..
.D----E..
.xxxxxx..
..xxxxxx.
..F----H.
..F----H.
..xxxxxx.
.........
ENDMAP

NAME:    nicolae_vaults_shipping_containers_5
TAGS:    vaults_hard
SHUFFLE: DEFH
SUBST:   DEF = +, H : xxxx+, - = ......%0, % = %%%**|, 0 = 000998
MAP
xxxxxx.......
x----+.......
x----+.......
xxxxxx.......
.........xFFx
...xxxxxxx--x
...+----xx--x
...+----xx--x
...xxxxxxx--x
...xxxxxxxHHx
...D----E....
...D----E....
...xxxxxx....
ENDMAP

NAME:    nicolae_vaults_shipping_containers_6
TAGS:    vaults_hard
SHUFFLE: DE, FH, JK/ML, LM
SUBST:   DFJL = +, E : xxxx+, H : xxxx+, K = x, M : ++++x, \
         - = ......%0, % = %%%**|, 0 = 000998
MAP
................
................
.xxxxxx.xxxxxx..
.D----E.F----H..
.D----E.F----H..
.xxxxxx.xxxxxx..
..xxxxxxxxxxxx..
..+----xx----+..
..+----xx----+..
..xxxxxxxxxxxx..
..xxxxxx........
..J----Kxxxxxx..
..J----KL----M..
..xxxxxxL----M..
........xxxxxx..
................
ENDMAP

NAME:    nicolae_vaults_shipping_containers_7
TAGS:    vaults_hard
SHUFFLE: DE/FH/JK, FH, JK
SUBST:   DEFJ = +, H : xxxx+, K : xxxx+, \
         - = ......%0, % = %%%**|, 0 = 000998
MAP
.....xxxxxx.
.....D----E.
.....D----E.
.....xxxxxx.
...xxxxxx...
...F----H...
...F----H...
...xxxxxx...
..xxxxxx....
..J----K....
..J----K....
..xxxxxx....
ENDMAP

NAME:  nicolae_vaults_shock_wave
TAGS:  vaults_hard vaults_orient_w
SUBST: 0 = ..0009, 9 = 9998, % = %%%*, * = ***|
MAP
            .....
        .....xxx.
    .....xxx.x*x.
......xx.x%x.x+x.
..0x..0x..0x..9x.
..0x..0x..0x..9x.
......xx.x%x.x+x.
    .....xxx.x*x.
        .....xxx.
            .....
ENDMAP

NAME:  nicolae_vaults_storing_the_good_stuff
TAGS:  vaults_hard vaults_orient_w no_windows
KITEM: LM = any weapon randart w:15 / any armour randart w:15 / \
            any jewellery randart w:15 / any magical staff randart w:5 / \
            gold good_item w:5 / | w:5
KMONS: L = 9
KMONS: M = 8
SUBST: 0 = .009
MAP
.....xLM
....0x**
..n++x++
.0n.0+.0
.0n.0+.0
..n++x++
....0x**
.....xLM
ENDMAP

NAME:  nicolae_vaults_surprise_closet_hard
TAGS:  vaults_hard allow_dup
KITEM: 9 = *
KITEM: 8 = |
KMONS: 9 = 9
KMONS: 8 = 8
SUBST: 9 : 998
MAP
8
ENDMAP

NAME:  nicolae_vaults_tangent_ellipses
TAGS:  vaults_hard
KMONS: 8 = 8 band
SUBST: * = ***|, 0 = ...0, 9 = ..9, 0 = 0009
MAP
.....xxxxxxxxxxxxxxx.....
.....xx...........xx.....
..0.0.+..0.0.0.0..+.0.0..
......xx.........xx......
..0.0..xxx.....xxx..0.0..
xx.......xxx+xxx.......xx
xx+x....xx.....xx....x+xx
x..xx..xx...9...xx..xx..x
x...x.xx.........xx.x...x
x.0.xxx..9.xxx.9..xxx.0.x
x....x....xx*xx....x....x
x.0..x...xx*.*xx...x..0.x
x....+.9.x*.8.*x.9.+....x
x.0..x...xx*.*xx...x..0.x
x....x....xx.xx....x....x
x.0.xxx..9.x+x.9..xxx.0.x
x...x.xx.........xx.x...x
x..xx..xx...9...xx..xx..x
xx+x....xx.....xx....x+xx
xx.......xxx+xxx.......xx
..0.0..xxx.....xxx..0.0..
......xx.........xx......
..0.0.+..0.0.0.0..+.0.0..
.....xx...........xx.....
.....xxxxxxxxxxxxxxx.....
ENDMAP

NAME:   nicolae_vaults_thirteen_compartments
TAGS:   vaults_hard
NSUBST: D = + / x, E = + / x, F = + / x, H = + / x, \
        p = p / x, q = q / x, r = r / x, s = s / x, \
        Jp = + / x, Kp = + / x, Lq = + / x, Mq = + / x, \
        Nr = + / x, Or = + / x, Ps = + / x, Qs = + / x, - = + / x
SUBST:  9 = 999., 0 = ...%0009, 9 = 99998, * = ***|
MAP
.................
.................
..xDDxJJxKKxEEx..
..D..J..p..K..E..
..D.0J.0p0.K0.E..
..xQQx--x--xLLx..
..Q..-.....-..L..
..Q.0-.9*9.-0.L..
..xssx.*x*.xqqx..
..P.0-.9*9.-0.M..
..P..-.....-..M..
..xPPx--x--xMMx..
..H.0O.0r0.N0.F..
..H..O..r..N..F..
..xHHxOOxNNxFFF..
.................
.................
ENDMAP

NAME:  nicolae_vaults_whirlpool_walls
TAGS:  vaults_hard
KITEM: L = * w:15 / | w:5
KMONS: 0 = 0 band
KMONS: L = 9 w:15 / 8 w:5
SUBST: ( = .(0
MAP
.............
...xxx..(....
..x...x...x..
....(..x...x.
.(.....x.(.x.
...xxxLx...x.
..x..LxL..x..
.x...xLxxx...
.x.(.x.....(.
.x...x..(....
..x...x...x..
....(..xxx...
.............
ENDMAP

###############################################################################
#
# <<2>> Themed threat vaults.
#
###############################################################################

NAME:    abrahamwl_protected_by_tso_1
TAGS:    patrolling no_monster_gen no_item_gen no_pool_fixup
TAGS:    vaults_hard vaults_orient_e
WEIGHT:  4
COLOUR:  _2 = yellow
FTILE:   _A2| = floor_limestone
: init_protected_by_tso(_G)
MAP
 xxxxx
 xcccx xxxxxxxxxxxxxx
 xc|cxxxxcccccccccccx
 xc_cxxxxc_........cx
 xc_cxxxxc_......3.cxx.
 xc_ccccxc_.G...G..cxx.
xxc+ccGccc.........cxx.
xcc__....+.........=xx.
xcA2_....+....1....=!+.
xcc__....+.........=xx.
xxc+ccGccc.........cxx.
 xc_ccccxc_.G...G..cxx.
 xc_cxxxxc_......3.cxx.
 xc_cxxxxc_........cx
 xc|cxxxxcccccccccccx
 xcccx xxxxxxxxxxxxxx
 xxxxx
ENDMAP

NAME:    abrahamwl_protected_by_tso_2
TAGS:    patrolling no_monster_gen no_item_gen no_pool_fixup
TAGS:    vaults_hard vaults_orient_e
WEIGHT:  4
SUBST:   T : T G:1
SHUFFLE: %|
COLOUR:  _2 = yellow
FTILE:   _A2 = floor_limestone
: init_protected_by_tso(_G)
MAP
 xxxxx
 xcccxxx
xxc|cxcxxxxxxxxxxxx
xcc+ccccccccccccccx
xc_Wxxxx.........cx
xc_wWxxx.......3.cxx
xc_wwWxx..G.T.G..cxx
xc_wwWxx.........cxx
xc_www.+.........=xx.
xcA_2__+.....1...=!+.
xc_www.+.........=xx.
xc_wwWxx.........cxx
xc_wwWxx..G.T.G..cxx
xc_wWxxx.......3.cxx
xc_Wxxxx.........cx
xcc+ccccccccccccccx
xxc%cxcxxxxxxxxxxxx
 xcccxxx
 xxxxx
ENDMAP

NAME:    abrahamwl_protected_by_tso_3
TAGS:    patrolling no_monster_gen no_item_gen no_pool_fixup
TAGS:    vaults_hard vaults_orient_e
WEIGHT:  4
SHUFFLE: |%
SUBST:   T : T F:1
COLOUR:  _2 = yellow
FTILE:   _A2 = floor_limestone
MARKER:  F = lua:fog_machine { cloud_type = "blessed fire", \
                pow_min = 10, pow_max = 10, delay = 10, \
                size = 1, walk_dist = 0, start_clouds = 1, excl_rad = 0 }
: init_protected_by_tso(_G)
MAP
     xxxxx
    xxcccx
  xxxxc%cxxxxxxxxxxxx
 xxcccc+ccccccccccccx
xxxcWWWWWx....3....cx
xxxcW.T.Tx.........cxx
xxxcW....x..G...G..cxx.
xxxcW_...x.........cxx.
xcccT____+.........=xx.
xc|+A_2__+....1....=!+.
xcccT____+.........=xx.
xxxcW_...x.........cxx.
xxxcW....x..G...G..cxx.
xxxcW.T.Tx.........cxx
xxxcWWWWWx....3....cx
 xxcccc+ccccccccccccx
  xxxxc*cxxxxxxxxxxxx
    xxcccx
     xxxxx
ENDMAP

NAME:   wander_protected_by_tso
TAGS:   patrolling no_monster_gen no_item_gen vaults_hard vaults_orient_e
WEIGHT: 4
COLOUR: _2 = yellow
FTILE:  _|%AU2 = floor_limestone
: init_protected_by_tso(_G)
MAP
 xxxxxxxxxxxxxxxxxx
xxcccccxccccccccccxxxx
xcc.%.cccG..G.3G.cccxx
xc.U_U..+.........=cx.
xc|_A_2_+.....1...=!+.
xc.U_U..+.........=cx.
xcc.%.cccG..G.3G.cccxx
xxcccccxcccccccccxxxx
 xxxxxxxxxxxxxxxxx
ENDMAP

####

NAME:   dpeg_vaults_hating_casters
TAGS:   vaults_hard
MONS:   ghost moth
SUBST:  % = %%%$* , * = **|
NSUBST: . = 6:0 / *:.
SUBST:  0 = 00009, 8 = 889
SUBST:  _ : x. , + : +==
NSUBST: = = 1:+ / *=+x
KPROP:  1 = no_tele_into
MAP
    @@@
xxxx+++xxxx
x%%.....%%x
x%..000..%x
x_..mmm.._x
x_..m1m.._x
x_..mmm.._x
x...***...x
x8.......8x
xxxxxxxxxxx
ENDMAP

NAME:   kennysheep_ogre_elephant_herders
TAGS:   no_monster_gen no_trap_gen vaults_hard orient_s
DEPTH:  Vaults, !Vaults:$
MONS:   ogre mage, ironbound thunderhulk, dire elephant
KMONS:  B = bush
SUBST:  * = **%
NSUBST: 1 = 1:1 / 1:1. / 1:2 / 1:2. / *:., 3 = 2:3 / 3 = 3. / .
MARKER: F = lua:fog_machine { cloud_type = "flame", pow_min = 100, \
                              pow_max = 100, delay = 10, size = 1, \
                              walk_dist = 0, excl_rad = 0 }
MAP
  xxxxxx
  xBxxBx  xxxxxx
  xB.33xxxx.1**x
  x.3.3.3.B1.1*x
  xB.3B.3...1.1x
xxx.3..3.....1.x
xB...33........x
x.......I..I...x
xxB...I......I.x
 xxxx....FF....x
    x....FF....x
    x.I......I.x
    x...I..I...x
     ...........
ENDMAP

NAME:  nicolae_vaults_library_corner
TAGS:  vaults_hard vaults_orient_e vaults_orient_s
# The deep elf librarian is doing some reshelving. There might be a second
# (or even third) librarian hanging out in the reading nooks. And of course,
# some ironbound vault security.
KITEM: L = any manual, any book good_item / any scroll good_item / nothing, \
           any book / any scroll / nothing
KITEM: RN = any book good_item / any scroll good_item
KMONS: LN = deep elf annihilator / deep elf sorcerer / deep elf high priest / \
           deep elf death mage / deep elf demonologist
KMONS: R = arcanist / necromancer / lich / ogre mage / deep troll earth mage
KMONS: S = vault sentinel / vault warden / ironbound preserver / \
           ironbound convoker
SUBST: R = R:80 N, S = SSS.
TILE:  c = wall_studio
MAP
cRcRcRc
R.....c
c.....c
R..LcS.
c..cn..
R..S...
ccc....
ENDMAP

NAME:   nicolae_vaults_loss_of_containment
TAGS:   vaults_hard
KMONS:  S = glowing shapeshifter
NSUBST: ' = . / xxx., S = 3=S / S..
SUBST:  - = x.
MAP
...........
.---.S.---.
.-S..-..S-.
.-.'''''.-.
...'...'...
.S-'.S.'-S.
...'...'...
.-.'''''.-.
.-S..-..S-.
.---.S.---.
...........
ENDMAP

NAME:    nicolae_vaults_oozy_zoo
TAGS:    vaults_hard
KITEM:   O = * / | w:3
KMONS:   O = slime creature w:40 / glowing orange brain / great orb of eyes / \
             large slime creature / very large slime creature w:5 / \
             quicksilver ooze w:5
KMASK:   O = no_trap_gen
KPROP:   O = no_tele_into
SHUFFLE: xn
NSUBST:  n = 1== / n
MAP
.........
.........
..xnxnx..
..nOOOn..
..xOOOx..
..nOOOn..
..xnxnx..
.........
.........
ENDMAP

NAME:   nicolae_vaults_stand_back
TAGS:   vaults_hard
KITEM:  EH = * w:15 / | w:5
KMONS:  E = patrolling eidolon
KMONS:  F = patrolling ironbound frostheart
KMONS:  H = patrolling ironbound thunderhulk
NSUBST: F = 2=F / 0
MAP
x..........x
............
..x......x..
............
....x.Fx....
....FEH.....
.....HEF....
....xF.x....
............
..x......x..
............
x..........x
ENDMAP

NAME:  nicolae_vaults_you_can_take_it_with_you
TAGS:  vaults_hard vaults_orient_w
KMONS: L = patrolling dread lich / patrolling ancient lich
KMONS: P = necromancer / hell knight / phantasmal warrior / lich / \
           shadow wraith / freezing wraith / flayed ghost / eidolon
SUBST: p = P.., * = **|
MAP
....n...n**|.
.p..n.p.n**P.
..x+x...xxx..
xxx...x..px+x
xp....n......
x..p..n..P.L.
xp....n......
xxx...x..px+x
..x+x...xxx..
.p..n.p.n**P.
....n...n**|.
ENDMAP
