##############################################################################
# hell.des: Vestibule entry vaults; the Vestibule itself.
#           Vaults specific to the Hell branches should go to one of
#           dis.des, geh.des, coc.des, or tar.des.
##############################################################################

{{
function hell_entry_feature(e, glyph)
    e.tags("extra luniq_enter_hell chance_enter_hell")
    e.depth_chance("Depths", 10000)
-- start TAG_MAJOR_VERSION == 34
    e.depth_chance("D:21-", 10000)
-- end TAG_MAJOR_VERSION
    e.kfeat(glyph .. " = enter_hell")
end

function hell_entry_tier(e, tier)
    e.tags("nolayout_encompass")
    if tier ~= "low" then
        e.tags("luniq_hellpanabyss_threat_entry")
        if tier == "high" then
            e.tags("uniq_hell_entry_high")
        end
    end
end

function hell_water_abbrev(e, type, baseweight)
    return "patrolling " .. type .. " zombie w:" .. math.floor(baseweight/2) ..
        " / patrolling " .. type .. " skeleton w:" .. math.floor(baseweight/3) ..
        " / patrolling " .. type .. " simulacrum w:" .. math.floor(baseweight/6)
end

function hell_water_spawns(e)
    e.kmons("P = " .. hell_water_abbrev(_G, "sea snake", 150) ..
               " / " .. hell_water_abbrev(_G, "alligator", 120) ..
               " / " .. hell_water_abbrev(_G, "anaconda", 130) ..
               " / " .. hell_water_abbrev(_G, "hydra", 230) ..
               "/ kraken zombie w:25 / kraken simulacrum w:12 \
                / patrolling water elemental w:113")
    e.kfeat("Pw = w")
    e.kmask("wW = no_monster_gen")
    e.nsubst("w = 8:P / 4 = Pw / *:w")
end

function hell_lava_spawns(e)
    e.kmons("~ = patrolling molten gargoyle w:5 / patrolling smoke demon w:5")
    e.kfeat("~l = l")
    e.kmask("l = no_monster_gen")
    e.nsubst("l = 6:~ / 4 = ~l / *:l")
end
}}

default-depth: Depths, D:21-

##############################################################################
# Vestibule entries
##############################################################################

# This replaces the hardcoded placement of a hell entrance in Depths;
# it also acts as the backup entrance and the entrance for encompass vault
# placements.
NAME:   hell_entry
TAGS:   allow_dup overwrite_floor_cell no_exits replace_portal transparent
TAGS:   fallback_enter_hell
WEIGHT: 50
: hell_entry_feature(_G, 'O')
MAP
O
ENDMAP

##############################################################################
# Hellmouth (Lemuel)
NAME:   hellmouth_1
ORIENT: float
TAGS:   no_rotate
MONS:   sun demon / smoke demon / soul eater / hell hog
MONS:   hellion / balrug / reaper / hell beast / hell knight
ITEM:   good_item demon blade / good_item demon whip / \
        good_item demon trident
ITEM:   ring of fire ident:type / Necronomicon / \
        grand grimoire / scroll of torment ident:type
SUBST:  d=de, ?:?.l, ?=l.
: hell_entry_feature(_G, 'A')
: hell_entry_tier(_G, "mid")
MAP
xxxxxxxxxxxxxxxxxxx
xxxxxxxxlllxxxxxxxx
xxxxxxlllAlllxxxxxx
xxxlllll.d.llll?xxx
xlllllll121lllll?.x
x?lllllll1llll?...x
x.??llllllll?.....x
x...?llllll?......x
x....?lllll.......x
xxx...?lll?.....xxx
xxxx...lll?....xxxx
xxxxx.?ll?....xxxxx
xxxxx?lll.....xxxxx
xxxxxxlll?...xxxxxx
xxxxxxxlll...xxxxxx
xxxxxxxxll?.xxxxxxx
xxxxxxxxll?.xxxxxxx
xxxxxxxxl?@xxxxxxxx
ENDMAP

##############################################################################
# Hellmouth 2 (Lemuel)
NAME:   hellmouth_2
WEIGHT: 6
ORIENT: float
TAGS:   no_monster_gen
MONS:   sun demon / smoke demon / soul eater / hell hog / nothing w:20
MONS:   hellion / balrug / reaper / hell beast / hell knight
ITEM:   good_item demon blade / good_item demon whip /\
        good_item demon trident
ITEM:   ring of fire ident:type / Necronomicon / \
        grand grimoire / scroll of torment ident:type
ITEM:   good_item demon blade / good_item demon whip /\
        good_item demon trident / w:30 nothing
SUBST:  d=de, ?:?.l, ?=l.
SUBST:  b : b:30 c v .
KMASK:  @' = !opaque
: hell_entry_feature(_G, 'A')
: hell_entry_tier(_G, "high")
MAP
''''''''''''''''''''''''''
'''''''bbbbbbbbbbbb'''''''
''''bbbb..........bbbb''''
''bbb....llllllll....bbb''
'bb....llllllllllll....bb'
'b....llllllllllllll....b'
'b....llllll??llllll....b'
'b...?lll??.....?lll?...b'
'b...?ll?...111...ll?...b'
@+...?l?...11211d..l?...b'
@+...?l?...12A21|f.l?...b'
'b...?ll...11211d.ll?...b'
'b...?lll?..111..lll?...b'
'b....llll?.....llll....b'
'b....llllll??llllll....b'
'bb....llllllllllll....bb'
''bbb....llllllll....bbb''
''''bbbb..........bbbb''''
'''''''bbbbbbbbbbbb'''''''
''''''''''''''''''''''''''
ENDMAP

##############################################################################
# Hellmouth 3 (Lemuel)
NAME:   hellmouth_3
TAGS:   transparent
ORIENT: float
MONS:   sun demon / hell knight / hell hog / soul eater / smoke demon
MONS:   hellion / balrug w:20 / hell beast
ITEM:   demon blade / demon whip / demon trident
NSUBST: 1 = 1:l / 1:1l / *:1
KMASK:  12Ad = opaque
SUBST:  ? : . l ?:40, ?=l.
: hell_entry_feature(_G, 'A')
: hell_entry_tier(_G, "high")
MAP
              ..??..      ....
   .....     .......     ..??.
  ..??...   ....l?..    ......
 ..?ll?........?l?..   .......
..?lll?.........l.... .....
...?l........??l?.........
 ..........??lll?.........
 ........?lllllll?........
  .....?llllllllll??.....
  ....?lll111111llll?....
   ...?llll12Ad1lll.......
   ....?lll11111ll?.......
   .....?lllll1ll?.........
 ........??llllll......?....
...........?llll?.....ll?...
..?..  .....?ll?.......ll?..
.?...   ...................
....      ........??..
ENDMAP

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

NAME:   grunt_hell_entry_demonic_statue
WEIGHT: 6
ORIENT: float
TAGS:   no_monster_gen no_tele_into
MONS:   sun demon / smoke demon / soul eater / ynoxinul / sixfirhy \
        / neqoxec w:5 / w:50 nothing
MONS:   blizzard demon / hell beast / cacodemon / green death / reaper \
        / balrug / hellion w:5 / tormentor w:5 / nothing w:30
ITEM:   skeleton
KFEAT:  b = .
KMONS:  A = obsidian statue
MARKER: A = lua:fog_machine { cloud_type = "grey smoke", \
            pow_min = 20, pow_max = 30, delay = 50, \
            size = 1, walk_dist = 3, start_clouds = 1 }
KMONS:  b = w:100 nothing / w:4 common demon
KPROP:  b = nothing / w:5 bloody
KITEM:  b = nothing / w:1 gold
MARKER: H = lua:props_marker { stop_explore = "statue" }
KFEAT:  HI = G
: hell_entry_feature(_G, 'A')
: hell_entry_tier(_G, "high")
MAP
      xxxxxxx
    xxxbbbbbxxx
  xxxbbbbbbbbbxxx
  xbbbbGbbbGbbbbx
 xxbG1bbbbbbd1Gbxx
 xdb2bb2bGb2bb2bbx
xxbbbbGbbbbbGbbbbxx
xbbGb2bbd3*bb2bGbbx
xbbbbbb%**d*bbbbdbx
xbd1bGb%*A*%bGb1bbx
xb%bbbb%*d*dbbbbbbx
xbbGbbbd%b*bbbbGbbx
xxbbbbGbbbbbGdbbbxx
 xbb1bb2bGd2bb1bbx
 xxbG1bbbbbbb1Gbxx
  xbbbbG1b1Gbbbbx
  xxxbbbbb%bbbxxx
    xxxHdbbIxxx
    xxxv+++vxxx
ENDMAP

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

NAME: lightli_too_deep
TAGS: no_monster_gen nolayout_encompass uniq_hell_entry_high
ORIENT: northeast
MONS: balrug
MONS: sun demon / smoke demon
: hell_entry_feature(_G, 'H')
SUBST: y = x..
SUBST: ; = %A.....l
: dgn.delayed_decay(_G, '%', 'dwarf skeleton')
KITEM: A = any weapon w:20 / chain mail w:60 / plate armour w:19 / \
           crystal plate armour w:1
: hell_entry_tier(_G, "mid")
MAP
xxxxxxxxxxxxxxx
xxxxcccccccxxxx
xxxxcA;H;Acxxxx
xxxxc;;1;;cxxxx
xxxxc;2|2;cxxxx
xxxxc;;;;;cxxxx
xxxxccc.cccxxxx
xxxxxxy.yxxxxxx
xxxxxxy.yxxxxxx
xxxxxxy.yxxxxxx
xxxxxxy.yxxxxxx
xxxxxy%yxxxxxxx
xxxxxy.yxxxxxxx
xxxxxy.yxxxxxxx
xxxxy...yxxxxxx
xxxy.%...yxxxxx
ENDMAP

##############################################################################
NAME: grunt_hell_horde
TAGS: nolayout_encompass uniq_hell_entry_high transparent
WEIGHT: 6
MONS: hellephant, hell hog
# Second hellephant chance and hell hog counts increases with depth.
: nsubst("1 = 1:1 / 1:2 / 1:2. / 1 = 1:" ..
:         you.depth() .. " .:" .. 5 - you.depth())
: nsubst("2 = " .. you.depth() + 1 .. ":2 / 4:. / * = " ..
:        "2:" .. you.depth() .. " .:" .. 6 - you.depth())
NSUBST: + = 1:+ / 1:+x / *:x
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "high")
MAP
 xxx+xxx
xxl2.2lxx
xl2...2lx
x2.1.1.2x
+...O...+
x2.1.1.2x
xl2...2lx
xxl2.2lxx
 xxx+xxx
ENDMAP

NAME: grunt_metal_band
TAGS: transparent
WEIGHT: 6
KMONS: O = Margery band / hell knight band w:4, hell knight band
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "high")
MAP
 xxxxxxx
xx..O..xx
x.......x
x.......x
@...G...@
 .......
   .@.
ENDMAP

NAME: grunt_mini_vestibule
TAGS: nolayout_encompass no_monster_gen uniq_hell_entry_high transparent
: hell_entry_feature(_G, 'O')
KMONS: O = hell beast
MONS: frost giant / quicksilver dragon simulacrum / freezing wraith
MONS: iron dragon / war gargoyle / ancient champion
MONS: salamander tyrant / hell hog / balrug
MONS: eidolon / spectral spark wasp / bone dragon
: hell_entry_tier(_G, "high")
MAP
  .....@.....
 ..ccnc+cncc..
..cc.......cc..
.cccc..1..cccc.
.c.ccc...ccc.c.
.n..ccc+ccc..n.
.c...c...c...c.
@+.4.+.O.+.2.+@
.c...c...c...c.
.n..ccc+ccc..n.
.c.ccc...ccc.c.
.cccc..3..cccc.
..cc.......cc..
 ..ccnc+cncc..
  .....@.....
ENDMAP

##############################################################################
# Some branch-inspired mini entries. Total weight 14 for each branch.
NAME:    hangedman_geh_valley
WEIGHT:  4
TAGS:    transparent uniq_hell_entry_geh
KMONS:   O = sun demon / balrug w:1 / nothing w:5
SHUFFLE: +- / +- / =+
NSUBST:  - = 1:+cc / *:c
SUBST:   = = c
KMASK:   l = no_monster_gen
TILE:    c = dngn_stone_wall_red
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
  xxxxxxxxx
xxxllcccllxxx
xll.cc.cc.llx
x...-.O.-...x
....cc.cc....
@....c+c....@
.............
x.llll.llll.x
xlxxxxlxxxxlx
xxx  xxx  xxx
ENDMAP

# Inspired by the grated corridors in evilmike_geh.
NAME:   pf_hell_entry_great_geh
TAGS:   uniq_hell_entry_geh
WEIGHT: 4
KFEAT:  m = iron_grate
TILE:   c = dngn_stone_wall_red
COLOUR: c = red
FTILE:  .O = floor_infernal_blank
KMASK:  l = no_monster_gen
KPROP:  l = no_tele_into
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
cccc@cccc
clm...mlc
clm...mlc
clm...mlc
clm...mlc
clm...mlc
clm...mlc
clm...mlc
cccc+cccc
ccl...lcc
ccl.O.lcc
ccl...lcc
ccclllccc
ccccccccc
ENDMAP

# Inspired by the entrance to evilmike_geh.
NAME:    pf_vacation_house_of_asmodeus
TAGS:    transparent uniq_hell_entry_geh
WEIGHT:  4
TILE:    c = dngn_stone_wall_red
COLOUR:  c = red
FTILE:  'O = floor_infernal_blank
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
       @
  ccccc'ccccc
 cc'''c'c'''cc
 c'''''''''''c
 c''vv'''vv''c
 c''vv'''vv''c
 cc'''''''''cc
@''''''O''''''@
 cc'''''''''cc
 c''vv'''vv''c
 c''vv'''vv''c
 c'''''''''''c
 cc'''c'c'''cc
  ccccc'ccccc
       @
ENDMAP

# Inspired by the end of lightli_geh, sort of.
# (Low weight because the associated vault is disabled. -- Grunt)
NAME:   pf_dread_powers_of_hell
TAGS:   transparent uniq_hell_entry_geh
WEIGHT: 2
KMONS:  i = reaper ; wand of flame / balrug ; wand of flame ident:type
TILE:   c = dngn_stone_wall_red
COLOUR: c = red
FTILE:  'iO = floor_infernal_blank
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
     ........
    ..cccccc...
   ....cci'ccc..
  ...l..cc'''cc..
 ...lll..cc'''cc..
...lllll..cc'''cc..
..lllllll.'''O''c..
...lllll..cc'''cc..
 ...lll..cc'''cc..
  ...l..cc'''cc..
   ....cci'ccc..
    ..cccccc...
     ........
ENDMAP

NAME:    hangedman_coc_ice_floe
WEIGHT:  7
TAGS:    transparent no_pool_fixup uniq_hell_entry_coc
KMONS:   O = blizzard demon w:5 / nothing
KFEAT:   A = stone_arch
SHUFFLE: ab / ab / ba
SUBST:   a : xww, b = x
TILE:    x = wall_ice
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
   ..  ..
 .........
...wwWww..
..wwAxxww..
..wxxxxxw..
..wxxxxbw..
 .waxxxaw.
..wbxxxxw..
..wxxxxxw..
..wwxxOww..
 ..wwWww...
 .........
  ..  ..
ENDMAP

# A variant on hangedman_coc_ice_floe.
NAME:   pf_coc_iceberg
WEIGHT: 7
TAGS:   transparent no_pool_fixup uniq_hell_entry_coc
TILE:   x = wall_ice
COLOUR: x = lightcyan
FTILE:  'O = floor_frozen
COLOUR: ' = lightblue
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
   ..  ..
  .........
 ...wwwww...
...wwxxxww...
...wxxxxxw...
..wxxx'xxxw..
..wxx'''xxw..
..wxx'O'WxW..
..wxx'''xWw..
..wxxx'xxxw..
...wxxxxxw...
...wwxxxww...
 ...wwwww...
  .........
   ..   ..
ENDMAP

NAME:    hangedman_tar_grid_catacomb
WEIGHT:  4
TAGS:    transparent uniq_hell_entry_tar
KMONS:   O = soul eater w:5 / nothing
KFEAT:   A = stone_arch
SHUFFLE: o@O& / O&o@
SUBST:   o = ., & = x
NSUBST:  O = 1:O / *:A
TILE:    c = wall_cobalt_stone
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
    x&xxxx&x
    &.OxxO.&
    x.cccc.x
   xx..cc..xx
  xx..cccc..xx
 xx....cc....xx
xx....cccc....xx
x......cc......x
xx....cccc....xx
 xxxx..cc..xxxx
    x.cccc.x
    @.oxxo.@
    x@xxxx@x
ENDMAP

# Inspired by the loot vaults in tar_minmay_river.
NAME:   pf_hell_entry_tar_spiral
TAGS:   transparent no_monster_gen uniq_hell_entry_tar
WEIGHT: 5
TILE:   c = wall_cobalt_stone
COLOUR: . = magenta
FTILE:  +.O = floor_infernal_blank
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
    cccc
  ccc..ccc
 cc......cc
 cc..cccc..c
 c..cc..cc..
cc.cc....cc.@
c..c..cc.+..
c..c..cc.ccc
cc.cc......c
 c..cc+c.O.c
 cc..c.c..cc
  cc...cccc
   ccc....c
     cccc.c
         @
ENDMAP

# Inspired by the sad fish in tar_minmay river. They've never gotten a kill. :(
NAME:   pf_hell_entry_tar_river
TAGS:   transparent no_pool_fixup uniq_hell_entry_tar
WEIGHT: 5
COLOUR: . = magenta
FTILE:  .O = floor_infernal_blank
NSUBST: w = 2=F / 2=F. / w
# E is tiles not adjacent to walkable space
NSUBST: E = 2=FE / E
KMONS:  F = spectral caustic shrike
KFEAT:  EFw = deep_water
KMASK:  Ww = no_monster_gen
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
      @
   wwWwwEE
  EwWwwEEEE
 EEwwWwwEEEE
 EwwwwWwwwwE
 wwWww.wwWww
@WWwW.O.WwWw@
 wwwww.wwwwW
 EEEwWwwEEww
 EEEwwWwEEEE
  EEEwWwwEE
   EEwwWwE
      @
ENDMAP

####
# A couple of Dis-inspired mini-entries; total weight 14.
NAME: grunt_hell_entry_dis_old
TAGS: transparent nolayout_encompass uniq_hell_entry_dis
WEIGHT: 4
KMONS: O = iron dragon w:5 / iron troll w:20 / nothing
: hell_entry_feature(_G, 'O')
MAP
...................
.vvvv.........vvvv.
.v%.vvvvvvvvvvv.%v.
.v..+$%vvvvv$%+..v.
.vv+vvvv...vvvv+vv.
..v....+...+....v..
..v+vvvv...vvvv.v..
..v....vv+vv.%v.v..
..v..vOvv.vv.vv.v..
..v....vv.vv....v..
.vv+v..vv.vvvvv+vv.
.v..vvvvv.vvvvv..v.
.v%.vvvvv+vvvvv.%v.
.vvvv.........vvvv.
.........@.........
ENDMAP

NAME: grunt_hell_entry_dis_mu
TAGS: transparent nolayout_encompass uniq_hell_entry_dis
WEIGHT: 5
KMONS: O = iron dragon w:5 / iron troll w:20 / nothing
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
...................
..vvvvvvv.vvv......
..v$v$v$vvv$vvv....
.vv+v+v.+.+.vvvvv..
.v....vvv.vvv...vv.
.v.vvvvv...v.vvv.v.
.v.+...+...+.vO+.v.
.v.vvvvv...v.vvv.v.
.v....vvv+vvv...vv.
.vv+v+vvv.vvvvvvv..
..v$v$v.v.vvvvv....
..vvvvv.v+v........
.........@.........
ENDMAP

NAME: grunt_hell_entry_dis_grunt
TAGS: transparent nolayout_encompass uniq_hell_entry_dis
WEIGHT: 5
KMONS: O = iron dragon w:5 / iron troll w:20 / nothing
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
MAP
...................
...................
...vvvvvvvvv...vvv.
...v.+.v$v.vv.vv.v.
...v.v+v+vv.vvv.vv.
.v+v.v.v.vvv...vv..
.+.+.v.+.+.+.%.v...
.v+v.v.v.vvv...vv..
...v.v+v+vv.vvv.vv.
...v.+.v$vOvv.vv.v.
...vvvvvvvvv...vvv.
...................
.........@.........
ENDMAP

# If you're dumb enough to go to the Hells this weekend, you're a big enough
# schmuck to come to Big Baal Hell's Store!
# Inspired by the NSFW classic: https://www.youtube.com/watch?v=4sZuN0xXWLc
# Unlike Big Bill Hell's Cars, the items here are intended to be pretty good and
# useful in the Hells, since a shop full of crappy items wouldn't be
# particularly interesting, even if it was funny. However, to keep with the
# spirit of Big Bill Hell, the prices are 666% of the usual. Thieves!
NAME:   nicolae_hell_entry_big_baal_hell
TAGS:   transparent no_item_gen patrolling
ORIENT: float
WEIGHT: 2
{{
  -- sells 11 items: 2 each from lists geared towards each Hell, 2 from a
  -- generic list, and 1 from a list of holy wrath weapons

  -- the Dis inventory focuses on damage/AC increases to counteract the
  -- corrosion hell effect, rCorr for caustic shrikes, reflection for various
  -- Dis projectiles, and enchant armour/weapon scrolls in bulk
  local disinv = util.random_subset( { "any weapon good_item ego:heavy",
    "any weapon randart ego:heavy", "ring of slaying randart",
    "ring of protection randart", "any weapon good_item ego:protection",
    "any weapon randart ego:protection", "crystal plate armour randart",
    "gold dragon scales randart", "tower shield randart",
    "ring of resist corrosion randart", "amulet of reflection randart",
    "scroll of enchant weapon q:10", "scroll of enchant armour q:10",
    "potion of might q:10", "randbook disc:conjuration slevels:12",
    "randbook disc:earth slevels:12", "staff of earth",
    "staff of conjuration" }, 2 )

  -- the Gehenna inventory focuses on fire resistance and cold damage, and
  -- some potions of invisibility since a lot of monsters there can't sInv,
  -- and some tloc since you can't use blink/tele scrolls
  local gehinv = util.random_subset( { "any weapon good_item ego:freezing",
    "any weapon randart ego:freezing", "ring of protection from fire randart",
    "ring of fire randart", "fire dragon scales randart",
    "wand of iceblast charges:25", "any armour good_item ego:fire_resistance",
    "any armour randart ego:fire_resistance", "potion of invisibility q:10",
    "randbook disc:ice slevels:12", "randbook disc:translocation slevels:12",
    "staff of fire" }, 2 )

  -- the Cocytus inventory focuses on cold resistance and fire damage, and
  -- throws in some willpower for narguns
  local cocinv = util.random_subset( { "any weapon good_item ego:flaming",
    "any weapon randart ego:flaming", "ring of protection from cold randart",
    "ring of ice randart", "ice dragon scales randart",
    "wand of flame charges:55", "any armour good_item ego:cold_resistance",
    "any armour randart ego:cold_resistance", "ring of willpower randart",
    "randbook disc:fire slevels:12", "staff of air", "staff of cold" }, 2 )

  -- the Tartarus inventory focuses on increased willpower to counteract the
  -- Will/2 hell effect, as well rN+ for theme, scrolls of fog in bulk to deal
  -- with fear/mesmerise
  local tarinv = util.random_subset( { "ring of willpower randart",
    "ring of positive energy randart", "any armour randart ego:positive_energy",
    "any armour randart ego:willpower", "pearl dragon scales randart",
    "scroll of fog q:10", "any armour good_item ego:positive_energy",
    "any armour good_item ego:willpower", "quicksilver dragon scales randart",
    "staff of death" }, 2 )

  -- Generically useful in all the Hells, a lot of scrolls and potions in bulk,
  -- but also rings of rN+ and willpower, which are useful in all the Hells, and
  -- up to two generic randarts/randbooks, as well as magic stuff and
  -- assorted weapons, including demon weapons
  local hellinv = util.random_subset( { "scroll of blinking q:10",
    "scroll of revelation q:10", "scroll of silence q:10",
    "any ally scroll q:10", "scroll of teleportation q:10",
    "potion of brilliance q:10",
    "potion of cancellation q:10", "potion of curing q:10",
    "potion of haste q:10","potion of heal wounds q:10", "potion of magic q:10",
    "potion of experience", "potion of resistance q:10", "any weapon randart",
    "any armour randart", "any jewellery randart", "any weapon randart",
    "any armour randart", "any jewellery randart", "any wand charges:25",
    "ring of positive energy randart", "ring of willpower randart",
    "randbook good_item", "randbook good_item", "ring of wizardry randart",
    "any magical staff", "scroll of acquirement", "any manual",
    "demon trident randart", "demon whip randart", "demon blade randart",
    "javelin ego:silver q:25", "any misc" }, 2)

  -- one guaranteed randart weapon with holy wrath, including ranged weapons
  local holyinv = util.random_subset( { "quick blade randart ego:holy_wrath",
    "rapier randart ego:holy_wrath", "eudemon blade randart ego:holy_wrath",
    "great sword randart ego:holy_wrath", "battleaxe randart ego:holy_wrath",
    "executioner's axe randart ego:holy_wrath",
    "trishula randart ego:holy_wrath", "sacred scourge randart ego:holy_wrath",
    "eveningstar randart ego:holy_wrath", "bardiche randart ego:holy_wrath",
    "lajatang randart ego:holy_wrath", "hand cannon randart ego:holy_wrath",
    "longbow randart ego:holy_wrath", "arbalest randart ego:holy_wrath",
    "triple crossbow randart ego:holy_wrath" }, 1 )

   local fullinv = util.join( " | ", { util.join( " | ", disinv ),
     util.join( " | ", gehinv ), util.join( " | ", cocinv ),
     util.join( " | ", tarinv ), util.join( " | ", hellinv ), holyinv[1] } )

   kfeat( "S = general shop name:Big_Baal_Hell type:Store suffix: count:11 " ..
       "use_all greed:66 ; " .. fullinv )
}}
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "low")
KMONS: S = balrug band / hell knight band / jiangshi band / \
           ancient champion band / deep troll shaman band / \
           salamander tyrant band / wendigo band
SUBST: L = l., ` = lx
MAP
  xxxx
xxx``xxx
x`llll`xxxx
xllLLllll`xxx
........lll`xx
....T.T..Llllxx
.....S.....Lllxx
xll.T.T.....Ll`x
x`l.......O.Ll`x
xxllllllL...Ll`x
 xx``x`llLLLllxx
  xxxxx`lllll`x
      xxx```xxx
        xxxxx
ENDMAP

NAME:   nicolae_hell_entry_hellmouth_sunbeams
TAGS:   transparent patrolling
ORIENT: float
WEIGHT: 5
KMASK:  O = opaque
KMONS:  1 = sun demon
KMONS:  2 = shining eye / eye of devastation / great orb of eyes
KMONS:  3 = hell hound / hell hog / hell beast / hellion
NSUBST: - = 4=1 / 8=1. / 2=2 / 4=2. / 1=3 / 2=3. / .
: hell_entry_feature(_G, 'O')
: hell_entry_tier(_G, "high")
MAP
         ..@..
         ..c..
         .ccc.
       ...ccc...
     ...vv...vv...
   ...vv..---..vv...
....vv..-------..vv....
.ccc..-----------..ccc.
lccc---------------cccl
lccc------lll------cccl
llllvv----lOl----vvllll
 lllllvv--lll--vvlllll
 lllllllvv---vvlllllll
  llllllllcccllllllll
   lllllllccclllllll
     lllllccclllll
        lllllll
ENDMAP

##############################################################################
# Vestibule of Hell and Geryon
##############################################################################

default-depth:

######################################################################
# The main vault for Vestibule w/subvaults (by Mu.)
# The old vestibule has been folded into this vault.
#
NAME:     vestibule_of_hell_subvaulted
PLACE:    Hell
ORIENT:   encompass
TAGS:     no_rotate no_dump
SUBVAULT: A : vestibule_dis
SUBVAULT: B : vestibule_tar
SUBVAULT: C : vestibule_coc
SUBVAULT: D : vestibule_geh
SUBVAULT: E : vestibule_geryon
SHUFFLE:  ABCD
SUBST:    ABCDE = .
: if crawl.coinflip() then
  : if crawl.coinflip() then
MONS:   Murray
NSUBST: : = 1:1 / *:.
  : else
SUBST: : = .
  : end
: else
SUBST: : = x
: end
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxxxxxxxxxxxx
xxxxxxxxxxx::AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA::xxxxxxxxxxx
xxxxxxxxxx::::AAAAAAAAAAAAAAAAAAAAAAAAAAAAA::::xxxxxxxxxx
xxxxxxxxx::::::AAAAAAAAAAAAAAAAAAAAAAAAAAA::::::xxxxxxxxx
xxxxxxxx::::::::AAAAAAAAAAAAAAAAAAAAAAAAA::::::::xxxxxxxx
xxxxxxx::::::::::AAAAAAAAAAAAAAAAAAAAAAA::::::::::xxxxxxx
xxxxxx::::::::::::AAAAAAAAAAAAAAAAAAAAA::::::::::::xxxxxx
xxxxx::::::::::::::AAAAAAAAAAAAAAAAAAA::::::::::::::xxxxx
xxxxC:::::::::::::::AAAAAAAAAAAAAAAAA:::::::::::::::Dxxxx
xxxxCC:::::::::::::::AAAAAAAAAAAAAAA:::::::::::::::DDxxxx
xxxxCCC:::::::::::::::AAAAAAAAAAAAA:::::::::::::::DDDxxxx
xxxxCCCC:::::::::::::::AAAAAAAAAAA:::::::::::::::DDDDxxxx
xxxxCCCCC:::::::::::::::AAAAAAAAA:::::::::::::::DDDDDxxxx
xxxxCCCCCC:::::::::::::::AAAAAAA:::::::::::::::DDDDDDxxxx
xxxxCCCCCCC:::::::::::::::AAAAA:::::::::::::::DDDDDDDxxxx
xxxxCCCCCCCC:::::::::::::::AAA:::::::::::::::DDDDDDDDxxxx
xxxxCCCCCCCCC::::::::::::::EEE::::::::::::::DDDDDDDDDxxxx
xxxxCCCCCCCCCC::::::::::::EEEEE::::::::::::DDDDDDDDDDxxxx
xxxxCCCCCCCCCCC::::::::::EEEEEEE::::::::::DDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCC::::::::EEEEEEEEE::::::::DDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCC::::::EEEEEEEEEEE::::::DDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCC::::EEEEEEEEEEEEE::::DDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCCC::EEEEEEEEEEEEEEE::DDDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCCCCEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCCCCEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCCCCEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCCC::EEEEEEEEEEEEEEE::DDDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCCC::::EEEEEEEEEEEEE::::DDDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCCC::::::EEEEEEEEEEE::::::DDDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCCC::::::::EEEEEEEEE::::::::DDDDDDDDDDDDxxxx
xxxxCCCCCCCCCCC::::::::::EEEEEEE::::::::::DDDDDDDDDDDxxxx
xxxxCCCCCCCCCC::::::::::::EEEEE::::::::::::DDDDDDDDDDxxxx
xxxxCCCCCCCCC::::::::::::::EEE::::::::::::::DDDDDDDDDxxxx
xxxxCCCCCCCC:::::::::::::::BBB:::::::::::::::DDDDDDDDxxxx
xxxxCCCCCCC:::::::::::::::BBBBB:::::::::::::::DDDDDDDxxxx
xxxxCCCCCC:::::::::::::::BBBBBBB:::::::::::::::DDDDDDxxxx
xxxxCCCCC:::::::::::::::BBBBBBBBB:::::::::::::::DDDDDxxxx
xxxxCCCC:::::::::::::::BBBBBBBBBBB:::::::::::::::DDDDxxxx
xxxxCCC:::::::::::::::BBBBBBBBBBBBB:::::::::::::::DDDxxxx
xxxxCC:::::::::::::::BBBBBBBBBBBBBBB:::::::::::::::DDxxxx
xxxxC:::::::::::::::BBBBBBBBBBBBBBBBB:::::::::::::::Dxxxx
xxxxx::::::::::::::BBBBBBBBBBBBBBBBBBB::::::::::::::xxxxx
xxxxxx::::::::::::BBBBBBBBBBBBBBBBBBBBB::::::::::::xxxxxx
xxxxxxx::::::::::BBBBBBBBBBBBBBBBBBBBBBB::::::::::xxxxxxx
xxxxxxxx::::::::BBBBBBBBBBBBBBBBBBBBBBBBB::::::::xxxxxxxx
xxxxxxxxx::::::BBBBBBBBBBBBBBBBBBBBBBBBBBB::::::xxxxxxxxx
xxxxxxxxxx::::BBBBBBBBBBBBBBBBBBBBBBBBBBBBB::::xxxxxxxxxx
xxxxxxxxxxx::BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB::xxxxxxxxxxx
xxxxxxxxxxxxBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

################################################################################
# Vestibule Tartarus

NAME: vestibule_tar_old
TAGS: vestibule_tar
KFEAT: T = enter_tartarus
KMONS: T = revenant / shadow dragon
FTILE: +'T = floor_infernal_blank
TILE: c = dngn_stone_dark
MAP
xxxxxxxxxxxxxxxcccxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxcc'ccxxxxxxxxxxxxx
  ....xxxxccccc'T'cccccxxxx....
   .......c'''c'''c'''c.......
    ......c'''cc+cc'''c......
     ....ccc'''''''''ccc....
      ...ccc'''''''''ccc...
       ..cccccc+++cccccc..
        .ccc.........ccc.
         ...............
          .............
           ...........
            .........
             .......
              .....
               ...
ENDMAP

NAME: vestibule_tar_mu
TAGS: vestibule_tar
KFEAT:  T=enter_tartarus
FTILE:  =T3Dz+'; = floor_infernal_blank
TILE:   c = dngn_stone_dark
SUBST:  ; = .
KMONS:  3 = shadow wraith
KMONS:  z = vampire knight / phantasmal warrior / ancient champion / nothing
KMONS:  D = shadow dragon
KMONS:  2 = reaper / soul eater
MAP
ccccccccccccccccccccccccccccccccc
 ccczz+'''''';;;;;;;''''''+zzccc
  cczzc''3''c';;T;;'c''3''czzcc
   c+ccc''''''c;;;c''''''ccc+c
    .cccc'''''''D'''''''cccc.
     ..ccc'''''''''''''ccc..
      .cccc'''cc+cc'''cccc.
       ..cccc'c'''c'cccc..
        .cccc'cz'zc'cccc.
         ..cccczzzcccc..
          .cccc'''cccc.
           ..ccc'ccc..
            .c2c'c2c.
             ..c+c..
              .c.c.
               ...
ENDMAP

NAME:   vestibule_tar_nicolae_necropolis
TAGS:   vestibule_tar
KFEAT:  T = enter_tartarus
SUBST:  d = ccc., z = zzz..
KMONS:  z = place:Depths:1 zombie
KMONS:  b = revenant / lich / vampire mage / ancient lich / mummy priest / \
           curse skull / dread lich
TILE:   c = dngn_stone_dark
MAP
.......dd...............dd.......
 ...z..ddz..c.z.T.z.c..zdd..z...
  .....dd...............dd.....
   ..z.ddz..c.z.b.z.c..zdd.z..
    ...ddd.............ddd...
     ...dd....c.z.c....dd...
      ..dddz.........zddd..
       ..ddd..c.z.c..ddd..
        ..ddd.......ddd..
         ..dd.c.z.c.dd..
          .............
           .z.c.z.c.z.
            .........
             .c.z.c.
              .....
               ...
ENDMAP

NAME: vestibule_tar_grunt_deathgaze
TAGS: vestibule_tar
KFEAT: T = enter_tartarus
KMONS: T = revenant / lich / shadow dragon
MONS: ancient champion band, reaper / soul eater
MONS: phantasmal warrior / vampire knight
FTILE: +'T12 = floor_infernal_blank
TILE: c = dngn_stone_dark
MAP
...........ccccccccccc...........
 ...cc...ccc'''''''''ccc...cc...
  ..cc..cc'''''''''''''cc..cc..
   .....c'''2'''T'''2'''c.....
    ..3.cc'''''''''''''cc.3..
     ....cccc'''''''cccc....
      ...c''cc'''''cc''c...
       ..cc'''''c'''''cc..
        ..cc'1'ccc'1'cc..
         ..cc''c'c''cc..
          ..cc'''''cc..
           ..cc+++cc..
            .........
             ...3...
              .....
               ...
ENDMAP

NAME:   vestibule_tar_nicolae_cwn_annwn
TAGS:   vestibule_tar patrolling
KMONS:  1D = doom hound / nothing
KFEAT:  D = enter_tartarus
TILE:   c = dngn_stone_dark
MAP
ccccccccccccccccccccccccccccccccc
 cccccccccccccc...cccccccccccccc
  ccccccccccc...D...ccccccccccc
   ccccccccc.........ccccccccc
    ccccccc...........ccccccc
     cccccc..1.....1..cccccc
      cccc....c.1.c....cccc
       ccc.1..c...c..1.ccc
        cc...cc...cc...cc
         cc..c.....c..cc
          cc.c..1..c.cc
           ..cc...cc..
            ..cc.cc..
             .......
              .....
               ...
ENDMAP

NAME:   vestibule_tar_nicolae_miasmatic
TAGS:   vestibule_tar
KMONS:  J = tainted leviathan
KMONS:  12 = putrid mouth
KFEAT:  J = enter_tartarus
NSUBST: D = + / x, E = + / x
SUBST:  1 = 11., 2 = 22`
FTILE:  `2+ = floor_black_cobalt
TILE:   x = wall_cobalt_rock
MAP
...xxx`````````````````````xxx...
 ...x```2```````2```````2```x...
  .xxx`x`x`x`````````x`x`x`xxx.
   .xxDxDxDxx```````xxExExExx.
    .x.x.x.xxx`````xxx.x.x.x.
     .......D```J```E.......
      ...1.xxx`````xxx.1...
       .....D```````E.....
        ...xxx`x`x`xxx...
         ...xxDxxxExx...
          ...x.x.x.x...
           ...........
            .........
             ...1...
              .....
               ...
ENDMAP

NAME:    vestibule_tar_nicolae_seven_gates_of_the_underworld
TAGS:    vestibule_tar
KMONS:   H = lich / halazid warlock / shadow dragon / bone dragon / revenant
KMONS:   12 = ancient champion / skeletal warrior / phantasmal warrior / \
              reaper / soul eater / shadow demon / shadow wraith / \
              flayed ghost / putrid mouth
KFEAT:   H = enter_tartarus
SHUFFLE: DE/FH
SUBST:   D = +, E = 1, F = c, 1 = 1 ':15, 2 = 22.
FTILE:   +'H1 = floor_infernal_blank
TILE:    c = dngn_stone_dark
MAP
ccccccccccccccccccccccccccccccccc
 cc'''''''''+'''''''+'''''''''cc
  cc''1'1'1'+'1'1'1'+'1'1'1''cc
   cc'''''''+'''''''+'''''''cc
    cc+++ccccccccccccccc+++cc
     cc''''''c'''''+''''''cc
      cc1'H'1c1'E'1+1'1'1cc
       cc''''c'''''+''''cc
        ccFFFccDDDccccccc
         cc'''''''''''cc
          cc''1'1'1''cc
           cc'''''''cc
            ccc+++ccc
             G2.2.2G
              .....
               ...
ENDMAP

################################################################################
# Vestibule Gehenna

NAME: vestibule_geh_old
TAGS: vestibule_geh
KFEAT: G = enter_gehenna
KMONS: G = hellion / balrug
: hell_lava_spawns(_G)
MAP
xxxxxxxxxxxxxx.l.l.xxxxxxxxxxxxxx
 xxxxxxxxxx...l.l.l...xxxxxxxxxx
  xxxxxx.....l.l.l.l.....xxxxxx
   .........l.l.l.l.l.........
    .........l.l.l.l.l.......
     .......l.l.l.l.l.......
      .....l.l.l.l.l.l.....
       .....l.l.G.l.l.....
        ...l.l.l.l.l.....
         ...l.l.l.l.l...
          ...l.l.l.l...
           ...l.l.....
            .l.l.....
             .......
              .....
               ...
ENDMAP

NAME: vestibule_geh_mu
TAGS: vestibule_geh
KFEAT:  G=enter_gehenna
SUBST:  L = l.
KMONS:  2 = hellion
KMONS:  3 = sun demon / smoke demon
KMONS:  2 = reaper / balrug / hell beast
FTILE:  x'5a2V+ = floor_infernal_blank
: hell_lava_spawns(_G)
MAP
lllllllllllllllllllllllllllllllll
 Lllllllllllllllllllllllllllllll
  LllxxxxxxxxxxxxxxxxxxxxxxxllL
   Lllxx'''''''''''''''''xxllL
    Lllxx''3''''G''''3''xxllL
     Lllxx'''''''''''''xxllL
      Lllxx''V''2''V''xxllL
       Lllxx'''''''''xxllL
        Lllxx'''''''xxllL
         Lllxxx+++xxxllL
          Lllxx...xxllL
           Lll..3..llL
            Lll...llL
             Lll.llL
              ll.ll
               l.l
ENDMAP

NAME:    vestibule_geh_nicolae_lava_paths
TAGS:    vestibule_geh
SHUFFLE: ab/cd/ef, cd/cd/gh, ef/ef/ef/ij
NSUBST:  a = G / H / ', b = 1:' / 2:'pp / *:p
NSUBST:  h = 1:. / 2:.qq / *:q, j = 1:. / 2:.rr / *:r
SUBST:   p : llXXx, q : llXXx, r : llXXx
KFEAT:   G = enter_gehenna
SUBST:   ce = x, d : xlllLX., f : xlllLX., gi = ....m, m = mm.
SUBST:   L = l., X = xl
KMONS:   H = hellion
KMONS:   m = sun demon / smoke demon
KMONS:   ' = hell beast / hell hog / nothing w:140
FTILE:   AH' = floor_infernal_blank
: hell_lava_spawns(_G)
MAP
.........bab.........dcd.........
 ...m..bbbabbb.....dddcddd..m...
  ....bbaaaaabb.m.ddcccccdd....
   ...baaaaaaab...dcccccccd...
    ..bbaaaaabb.m.ddcccccdd..
     ..bbaabbb.....dddccdd..
      ..bbbb.m.fff.m.dddd..
       ......fffefff......
        ..m.ffeeeeeff.m..
         ...feeeeeeef...
          ..ffeeeeeff..
           ..ffeeeff..
            .mfffffm.
             .......
              ..m..
               ...
ENDMAP

NAME: vestibule_geh_grunt_obsidian_fortress
TAGS: vestibule_geh
KFEAT: G = enter_gehenna
MONS: balrug / hellion, hell beast / hell hog
MONS: sun demon / smoke demon / hell knight
NSUBST: 2 = 3:2 / *:.
NSUBST: 3 = 3:3 / *:.
FTILE: 123+G = floor_infernal_blank
: hell_lava_spawns(_G)
MAP
lllllllllccccccccccccccclllllllll
 llllllccc'''c''1''c'''cccllllll
  llllcc3''2'+''G''+'2''3ccllll
   lllc''''''c''1''c''''''clll
    llc'2'2'ccccccccc'2'2'cll
     lcc''''c'''''''c''''ccl
      lcc''c+''2'2''+c''ccl
       lcccc'3'''''3'ccccl
        lllc''3'''3''clll
         llcc'''''''ccll
          llccc+++cccll
           lll.....lll
            l.l4.4l.l
             .lllll.
              .lll.
               ...
ENDMAP

NAME:   vestibule_geh_nicolae_gehenna_overflowing
TAGS:   vestibule_geh
KMONS:  D = balrug band / hell knight band / hellephant
KMONS:  1 = sun demon / smoke demon / hell hog / creeping inferno w:5
KFEAT:  D = enter_gehenna
NSUBST: F = . / L, H = . / L, J = . / L, K = . / L, M = . / L, N = . / L, \
        L = 4=1 / 4=1L / L
SUBST:  L = l.
MAP
lllllL..........l...Ll...LlllllL.
 Lll....Lll....lDl...l.....lllL.
  .FlF....Ll..LlllL..HlH.JlJ...
   ..llll..FlllLlLlH...lll....
    ....Flll....l..lKllH.Ll..
     ....l.LlL..lL..l.......
      .LlL...lL..l..KlllK..
       .L.......llN.....lK
        ...MlMllM.l.Nll..
         .Ml.l....Nll.Nl
          l..LllL...l..
           .....l..Ll.
            ...LlL.l.
             ..lll..
              .LlL.
               ...
ENDMAP

NAME:    vestibule_geh_nicolae_lone_tower
TAGS:    vestibule_geh
KMONS:   D = balrug band / hell beast band / hell hog band / \
             hell knight band w:5
KFEAT:   D = enter_gehenna
SHUFFLE: Pp/Qq/Rr/Ss
SUBST:   P = +, p = ., QRS = c, qrs = l, L = l.
TILE:    c = dngn_stone_wall_red
FTILE:   +D' = floor_infernal_blank
COLOUR:  c = red
MAP
.LllllllllL.....L.LL..LllllllllL.
 .LllllllL..LllpppllL..LllllllL.
  ..LllL...LllccPccllL...LllL..
   .......Lllcc'''ccllL.......
    ......Llcc'''''cclL......
     ......sc'''''''cq......
      ....LsS'''D'''QqL....
       ....sc'''''''cq....
        ..Llcc'''''cclL..
         .Lllcc'''ccllL.
          .LllccRccllL.
           .LllrrrllL.
            .LL.L.LL.
             .......
              .....
               ...
ENDMAP

NAME:   vestibule_geh_nicolae_tongues_of_flame
TAGS:   vestibule_geh
KMONS:  D = stoker
KMONS:  E = searing wretch
KFEAT:  D = enter_gehenna
NSUBST: D = D / l
SUBST:  E = E., L = l.
MAP
lllllllllllllllllllllllllllllllll
 lllDllllDlllDllDlllDllll.DllDll
  ll..Lll.Ll.Llll.l.llllL.ll.ll
   ll.ll..lll.llL.lL.lll.Lll.l
    lEl.LlllLEllElllElll..lE.
     ..l..ll..ll.ll...l.L.l.
      L..E.l..l.ll.L.l.E.l.
       .L..l.l.Ell..l..l..
        ..l..l..ll..l....
         ...El.L.llEl..L
          .L..l..ll..l.
           ....L.lL...
            .L.E.l...
             ...L..L
              L....
               ..L
ENDMAP

################################################################################
# Vestibule Cocytus

NAME: vestibule_coc_old
TAGS: vestibule_coc
KFEAT: C = enter_cocytus
KMONS: C = blizzard demon / ice statue
: hell_water_spawns(_G)
MAP
wwwwwwwwwwwwwwwwCwwwwwwwwww......
 wwwwwwwwwwwwww....wwwwwww......
  wwwwwwwwww.........wwww......
   wwwwwwwww..wwwww....ww.....
    wwwwwwwww..wwwww....ww...
     wwwwwwww....ww......ww.
      .wwwww..ww.....ww....
       ...w..wwwww..wwww..
        ....wwwwwwwwwwww.
         .....wwwwwwww..
          ......wwwww..
           ...........
            .........
             .......
              .....
               ...
ENDMAP

NAME: vestibule_coc_mu
TAGS: vestibule_coc
KFEAT:  C=enter_cocytus
SUBST:  8 = 8 .:59
KMONS:  8 = ice statue
KMONS:  3 = ice devil
: hell_water_spawns(_G)
MAP
...........wwwwwwwwwww...........
 ....33...wwwwwwwwwwwww...33....
  ....3...wwwwww8wwwwww...3....
   ......wwwww.....wwwww......
    .....wwww...C...wwww.....
     ....wwww.......wwww....
      ...www8..T.T..8www...
       ..wwww.......wwww..
        ..www..T.T..www..
         ..www.....www..
          ...ww...ww...
           .....3.....
            .........
             .......
              .....
               ...
ENDMAP

NAME:    vestibule_coc_nicolae_fridge_bridge
TAGS:    vestibule_coc no_pool_fixup
KFEAT:   C = enter_cocytus
SHUFFLE: ab
SUBST:   a = I, b : w., W = w.
KMONS:   I = ice statue
KMONS:   3 = blizzard demon
KMONS:   2 = ice dragon / freezing wraith
: hell_water_spawns(_G)
MAP
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
 WWWWwwwwwwwww.....wwwwwwwwwWWWW
  ..WWWwwwwwww.3C3.wwwwwwwWWW..
   ...WWwwwwww.....wwwwwwWW...
    ...Wwwwwwwa...awwwwwwW...
     ..WWwwwwww...wWwwwwWW..
      ..Wwwwwww2.2wwwwwwW..
       .WWwwwww...wwwwwWW.
        .WWwwww...wwwwWW.
         .WWWww2.2wwWWW.
          ..WWW...WWW..
           ...b...b...
            .........
             .......
              .....
               ...
ENDMAP

NAME: vestibule_coc_grunt_go_with_the_floe
TAGS: vestibule_coc no_pool_fixup
MONS: frost giant / blizzard demon / ice statue
MONS: blizzard demon, ice dragon / freezing wraith
NSUBST: 3 = 3:3 / *:.
SUBST: W = wW.
KFEAT: A = stone_arch
KFEAT: C = enter_cocytus
KFEAT: W = W
: hell_water_spawns(_G)
MAP
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
 wwwwwWWWWWWWWWWwWWWWWWWWWWwwwww
  wwwWW...WW...WWW...WW...WWwww
   wwW..W2....3...3....2W..Www
    wwW.3W...W..W..W...W3.Www
     wwW..W.WWW.3.WWW.W..Www
      wwW.C.WwW.W.WwW.A.Www
       wwW..WwW.W.WwW..Www
        wwW1WwW.3.WwW1Www
         wwWWwW.W.WwWWww
          wwwwW.W.Wwwww
           wwwW.3.Wwww
            wwW.W.Www
             wW.W.Ww
              W.3.W
               .W.
ENDMAP

NAME:   vestibule_coc_nicolae_advancing_glacier
TAGS:   vestibule_coc no_pool_fixup
KMONS:  D = frost giant / ice dragon / wendigo band
KMONS:  1 = ice devil / blizzard demon
KFEAT:  D = enter_cocytus
KFEAT:  a = x
SUBST:  - = aw., ` = aw, ~ = w.
TILE:   a = wall_ice
COLOUR: a = lightcyan
MAP
aaaaaaaaxxxxxxxxxxxxxxxxxaaaaaaaa
 aaaaaaaaxxxxxxxxxxxxxxxaaaaaaaa
  aaaaaaaaaxxxxxxxxxxxaaaaaaaaa
   -aaaaaaaaaaxxxxxaaaaaaaaaa-
    .-aaaaaaaaaaaaaaaaaaaaa-.
     .-aaaaaaaaaaaaaaaaaaa-.
      .-aaaaaaaaaaaaaaaaa-.
       .-aaaaaaaaaaaaaaa-.
        ..-aaaaaaaaaaa-..
         ...w`aaaaa`w...
          ..www`a`www..
           .~wwwDwww~.
            .~w~.~w~.
             .~1.1~.
              .....
               ...
ENDMAP

NAME:   vestibule_coc_nicolae_freezer_leak
TAGS:   vestibule_coc no_pool_fixup
KMONS:  D = frost giant / ice dragon
KMONS:  1 = blizzard demon / freezing wraith / simulacrum / ice devil
KFEAT:  D = enter_cocytus
SUBST:  - = `., ' = x`
NSUBST: ` = 4=1 / 4=1` / `
FTILE:  D1` = floor_frozen
COLOUR: 1` = lightblue
TILE:   x = wall_ice
COLOUR: x = lightcyan
MAP
.-```............................
 -`x`-.-``.-```-........-``-....
  ```--````'xx'`--``--`''```...
   ..-``.``x``````````'xx'``..
    .--..`'x`D`'``--``'xx'`-.
     ....``'```x`-..-``''`-.
      .-``````xx``....-``-.
       -`-.-`x``'`-.......
        -...-```x'`-.....
         ..-``-`'x``....
          .-`-.-`x'`...
           .--..-''-..
            .....--..
             .......
              .....
               ...
ENDMAP

NAME:  vestibule_coc_nicolae_polynya
TAGS:  vestibule_coc no_pool_fixup
KMONS: D = wendigo
KMONS: 1 = simulacrum
KFEAT: D = enter_cocytus
SUBST: - = w., 1 = 1.
MAP
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
 wwwwwwww-..1.....1...-wwwwwwwww
  wwww-....-ww...ww-....-wwwwww
   ww-..1.Wwwww.1www-.1..-wwww
    ww....WWDwww..www.....www
     ww...Wwwww-..ww-....-ww
      ww-...ww...ww..1.-www
       www-.1..-ww...-wwww
        wwwwwwwww.1.-wwww
         wwwwww-...-wwww
          wwww...-wwwww
           ww-.1.wwwww
            ww...-www
             ww...ww
              w1..w
               ...
ENDMAP

################################################################################
# Vestibule Dis

NAME: vestibule_dis_old
TAGS: vestibule_dis
KFEAT: D = enter_dis
KMONS: D = war gargoyle / reaper
FTILE: +'D = floor_infernal_blank
MAP
xxxxxxxxxxxxxvvvvvvvxxxxxxxxxxxxx
 xxxxxxxxxx..v'''''v..xxxxxxxxxx
  xxxxxx.....v'''''v....xxxxxxx
   xxx.......v'''''v.......xxx
    .........v''D''v.........
     ........v'''''v........
      .......v'''''v.......
       ......vvv+vvv......
        .................
         ...............
          .............
           ...........
            .........
             .......
              .....
               ...
ENDMAP

NAME: vestibule_dis_mu
TAGS: vestibule_dis
KFEAT:  D=enter_dis
KMONS:  8 = iron dragon
KMONS:  3 = rust devil
KMONS:  6 = war gargoyle
FTILE:  'A+ = floor_infernal_blank
MAP
.............v.vvv.v.............
 ...vv....v...vv'vv...v....vv...
  ..3v.....vv.v'D'v.vv.....v3..
   .......v...vv'vv...v.......
    ...vv....v.v+v.v....vv...
     ..3v..6...8.8...6..v3..
      .....................
       ...vv...v.v...vv...
        ..3v.........v3..
         ...............
          ...vv...vv...
           ..3v...v3..
            .........
             .......
              .....
               ...
ENDMAP

NAME:   vestibule_dis_nicolae_mini_city_of_dis
TAGS:   vestibule_dis
KFEAT:  D = enter_dis
NSUBST: E = + / v, F = + / v, q = + / v, p = + / v, \
        B = 1:+ / 1:+vv / *:v, Z = 1:+ / 1:+v / *:v
SUBST:  2 = 22., 3 = 33.
KMONS:  1 = iron dragon
KMONS:  2 = rust devil
KMONS:  3 = war gargoyle / reaper w:5
KFEAT:  H = G
TILE:   GH = dngn_statue_iron_golem
FTILE:  A'1H = floor_infernal_blank
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 ....Gv.......vHDHv.......vG....
  ..2.E..2G...v'1'v...G2..F.2..
   ...v.......v'''v.......v...
    ..vvEvvvqqv'''vppvvvFvv..
     .....Gv..v'''v..vG.....
      ..2..v.3B'''B3.v..2..
       ....E..vvBvv..F....
        ...v..Z.3.Z..v...
         ..vEvv...vvFv..
          ..2Gv...vG2..
           ...vZvZv...
            ..G...G..
             .......
              .....
               ...
ENDMAP

NAME: vestibule_dis_grunt_castle
TAGS: vestibule_dis
MONS: war gargoyle / iron dragon, iron troll / iron golem
MONS: rust devil
NSUBST: D = 1:D / *:A
KFEAT: D = enter_dis
KFEAT: A = stone_arch
MAP
.......v.vvvvxxxxxxxvvvv.v.......
 ..vv...vvD.vvxxxxxvv.Dvv...vv..
  .3v...vv.2vvvvvvvvv2.vv...v3.
   ....v.vvv.........vvv.v....
    ....v.vv..1...1..vv.v....
     ..v.vvv.........vvv.v..
      ..vv.2vvv+++vvv2.vv..
       .vvD.vv.....vv.Dvv.
        .vvvv.v...v.vvvv.
         .vv.v.3.3.v.vv.
          ..v.v...v.v..
           ..3.....3..
            ..v...v..
             .......
              .....
               ...
ENDMAP

NAME:   vestibule_dis_nicolae_crystalline
TAGS:   vestibule_dis patrolling
KMONS:  D = crystal guardian
KMONS:  1 = crystal echidna / orange crystal statue / iron golem / iron troll
KFEAT:  D = enter_dis
SUBST:  E = D-, - = ..b, 1 = 111.
NSUBST: D = D / 3=111. / .
TILE:   b = wall_emerald
TILE:   v = dngn_metal_iron
MAP
vvbbbbbbbbbbbbbbbbbbbbbbbbbbbbbvv
 vvbbbbbbbbbbDbEbEbDbbbbbbbbbbvv
  vvbbbbbbbbDbDbEbDbDbbbbbbbbvv
   vvbbbbbbDbEbEbEbEbDbbbbbbvv
    vvbbbb-bDbDbEbDbDb-bbbbvv
     vvbb.b.bDbEbEbDb.b.bbvv
      vv-b1b-b-b-b-b-b1b-vv
       -v-b.b.b.b.b.b.b-v-
        .v-b1b.b-b.b1b-v.
         .v-b.b.b.b.b-v.
          .v.b1b-b1b.v.
           .v-b-b-b-v.
            .v-v-v-v.
             .......
              .....
               ...
ENDMAP

NAME:  vestibule_dis_nicolae_girt_by_a_triple_wall
TAGS:  vestibule_dis no_pool_fixup
KMONS: D = war gargoyle / iron dragon / iron giant
KMONS: 12 = iron troll / iron golem / rust devil
KFEAT: D = enter_dis
SUBST: 1 = 11'
FTILE: +'D1 = floor_infernal_blank
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 vv1''''+''''v''D''v''''+''''1vv
  vv''''+'1''v1'''1v''1'+''''vv
   vv'''vv'''vv'1'vv'''vv'''vv
    vv'''vv''1v+++v1''vv'''vv
     vv'1'vv'''''''''vv'1'vv
      vv'''vv'''1'''vv'''vv
       vv'''vvvvvvvvv'''vv
        vv'''''''''''''vv
         vv''1'''''1''vv
          vvvvv+++vvvvv
           wwww...wwww
            wwww.wwww
             .......
              .....
               ...
ENDMAP

NAME:    vestibule_dis_nicolae_metal_as_hell
TAGS:    vestibule_dis patrolling
KMONS:   D = war gargoyle / iron dragon / ancient champion
KMONS:   1 = iron golem / rust devil / reaper / iron troll
KMONS:   2 = hellion
KFEAT:   D = enter_dis
KFEAT:   - = iron_grate
SUBST:   1 = 111., 2 = 222.
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 vvvvvv...................vvvvvv
  vvvvv.2...1...1...1...2.vvvvv
   vvvv...................vvvv
    vvv...v---v.2.v---v...vvv
     .--...--.......--...--.
      .--...--..D..--...--.
       .--...--...--...--.
        .-v.1.v---v.1.v-.
         .--.........--.
          .--...1...--.
           .--.....--.
            .-v...v-.
             .......
              .....
               ...
ENDMAP

################################################################################
# Vestibule Geryon
NAME: vestibule_geryon_old
TAGS: vestibule_geryon
MONS: Geryon
MAP
       ...
      ..{..
     .......
    .........
   ...........
  .............
 ...............
.................
.......<1<.......
........<........
 ...............
  .............
   ...........
    .........
     [.....(
      .....
       ...
ENDMAP

NAME: vestibule_geryon_mu
TAGS: vestibule_geryon
MONS: Geryon
MAP
       ...
      ..<..
     ...1...
    .........
   ...........
  .............
 ...............
........(........
.<.............<.
.......{.[.......
 ...............
  .............
   ...........
    .........
     .......
      ..<..
       ...
ENDMAP

NAME: vestibule_geryon_nicolae_six_columns
TAGS: vestibule_geryon
MONS: Geryon
NSUBST: 1 = 1 / .
SUBST: b : x.
MAP
       ...
      .....
     .......
    .........
   ..xb...bx..
  ..b1.....1b..
 ...............
...b.........b...
..x1....{....1x..
...b.........b...
 ...............
  ..b1.....1b..
   ..xb...bx..
    .........
     .......
      .....
       ...
ENDMAP

NAME: vestibule_geryon_nicolae_wayward_sun
TAGS: vestibule_geryon
MONS: Geryon
SHUFFLE: ABCD, bc
SUBST: a : ..x, b : ..x, c : ., B : .x, C : .x, D : .x
NSUBST: A = 1:{ / 1:1 / *:.
MAP
       ...
      .....
     .......
    ....C....
   .a.b.B.b.a.
  ...D.cAc.D...
 ...b.x.x.x.b...
.....c.xxx.c.....
...CBAxxxxxABC...
.....c.xxx.c.....
 ...b.x.x.x.b...
  ...D.cAc.D...
   .a.b.B.b.a.
    ....C....
     .......
      .....
       ...
ENDMAP

NAME: vestibule_geryon_grunt_focused
TAGS: vestibule_geryon
MONS: Geryon
# Missing: abcde - we don't want it to be *completely* open.
SHUFFLE: ABCDE / ABCDe / ABCdE / ABCde / ABcDE / ABcDe / ABcdE / ABcde / \
         AbCDE / AbCDe / AbCdE / AbCde / AbcDE / AbcDe / AbcdE / Abcde / \
         aBCDE / aBCDe / aBCdE / aBCde / aBcDE / aBcDe / aBcdE / aBcde / \
         abCDE / abCDe / abCdE / abCde / abcDE / abcDe / abcdE
SUBST: ABCDE = x, abcde = .
MAP
       ...
      ..B..
     ...C...
    ....B....
   .ED.....DE.
  ..D{.....[D..
 .......A.......
.................
.BCB..A.1.A..BCB.
.................
 .......A.......
  ..D(.....<D..
   .ED.....DE.
    ....B....
     ...C...
      ..B..
       ...
ENDMAP

NAME:    vestibule_geryon_nicolae_amphitheater
TAGS:    vestibule_geryon
MONS:    Geryon
NSUBST:  1 = 1 / 0, < = { / <
SHUFFLE: DE
SUBST:   D = x, E = .
MAP
       ...
      .....
     .EDEDE.
    xx.....xx
   x1.......1x
  .x...EDE...x.
 .E...D...D...E.
..D..E..<..E..D..
..E..D.....D..E..
..D..E.<.<.E..D..
 .E...D...D...E.
  .x...EDE...x.
   x1.......1x
    xx.....xx
     .EDEDE.
      .....
       ...
ENDMAP

NAME:    vestibule_geryon_nicolae_diamonds
TAGS:    vestibule_geryon
MONS:    Geryon
NSUBST:  < = { / <
SHUFFLE: DE
SUBST:   D : x, E : x.
MAP
       ...
      .....
     ...D...
    ...E.E...
   ...D.<.D...
  .....E.E.....
 ...D...D...D...
...E.E.....E.E...
..D.<.D.1.D.<.D..
...E.E.....E.E...
 ...D...D...D...
  .....E.E.....
   ...D.<.D...
    ...E.E...
     ...D...
      .....
       ...
ENDMAP

NAME:   vestibule_geryon_nicolae_swimming_pool
TAGS:   vestibule_geryon no_pool_fixup
KMONS:  1 = Geryon
NSUBST: < = { / <
SUBST:  L = l., D : x., E : x., F : x.
: if crawl.one_chance_in( 3 ) then
KFEAT:  1 = w
SUBST:  l : w
: else
KFEAT:  1 = l
: end
MAP
       ...
      F...F
     EF...FE
    DE.....ED
   DD.......DD
  EE.<.LlL.<.EE
 FF...LlllL...FF
.....LlllllL.....
.....lll1lll.....
.....LlllllL.....
 FF...LlllL...FF
  EE.<.LlL.<.EE
   DD.......DD
    DE.....ED
     EF...FE
      F...F
       ...
ENDMAP
