###############################################################################
# gauntlet.des: Vaults particular to Gauntlets.
#
# <<1>>      Gauntlet arena subvaults.
# <<2>>      Gauntlet exit subvaults.
# <<3>>      Gauntlet main maps.
###############################################################################

: crawl_require("dlua/gauntlet.lua")
{{
function gauntlet_portal(e)
  local timeout_turns = crawl.random_range(400, 600)

  local messager =
    timed_msg {
      initmsg = { "You hear a distant snort.",
                  "Hark! There is a gateway to a gauntlet on this level. " ..
                  "Find the entrance quickly before the gate is sealed!" },
      finalmsg = "After a thunderous strike, the drumbeats cease.",
      verb = 'beating',
      noisemaker = 'drum',
      ranges = {
        { 5000, 'faint ' },  { 4000, '' }, { 2500, 'loud ' },
        { 1500, 'thunderous ' }, { 0, 'deafening ' }
      }
    }

    e.lua_marker('O',
      timed_marker {
        turns = timeout_turns,
        msg = messager,
        floor = 'stone_arch',
        feat_tile = 'dngn_portal_gauntlet_gone',
        single_timed = true,
        dstname = 'gauntlet' })
    e.kfeat("O = enter_gauntlet")
    e.tile("O = dngn_portal_gauntlet")
end

function gauntlet_appearance(e)
  e.kfeat("< = exit_gauntlet")
end
}}

#############################################################################
# Gauntlet entry vaults

NAME:   gauntlet_entry_generic
TAGS:   transparent extra uniq_gauntlet
CHANCE: 5%
DEPTH:  D:11-, Orc:$, Lair
: gauntlet_portal(_G)
MAP
O
ENDMAP

default-depth: Gauntlet

#############################################################################
# <<1>> Gauntlet arena subvaults
#
# <<1.1>> 9x9 arenas
# <<1.2>> 7x7 arenas
#############################################################################

#############################################################################
# <<1.1>> 9x9 arenas
#############################################################################
# Each vault should have tags 'gauntlet_arena_first' and
# 'gauntlet_arena_second' assuming its viable for both tiers. Two tags exist in
# case a vault wants to specify custom terrain for specific monsters and loot
# and is only appropriate for one tier.
#
# The vaults must must have the same shape as one of the templates below. These
# all have 'bottom' side that is tapered so that the vaults exit transporter
# landing site in the parent map will be close to the exit transporter. It
# represents the "end" of the vault and is where the exit transporter 'Q'
# glyph, '1' glyph, and 'd' loot glyphs should generally be (see below). As the
# templates below show, the vault can be any rotation of this basic shape.
#
# n.........n  nnnnnn      ..ddQdd..      nnnnnn
# n.........n  .........   ....1....   .........
# n.........n  .........   .........   .........
# n.........n  ........d  n.........n  d........
# n....P....n  ........d  n....P....n  d........
# n.........n  ....P..1Q  n.........n  Q1..P....
#  .........   ........d  n.........n  d........
#  ....1....   ........d  n.........n  d........
#  ..ddQdd..   .........  n.........n  .........
#              .........               .........
#              nnnnnn                     nnnnnn
#
# The 'n' tiles shown # are part of the transparent arena walls and must always
# be present. Ideally nearly every location in the subvault is visible from at
# least one of the three window areas on the walls. The 'P', 'Q', '1', and 'd',
# glyphs don't have to be at the exact spots shown, but the shown spots are
# good guidelines.
#
# All vaults must place the glyphs below in the given quantities and then call
# gauntlet_arena_setup(_G) to set up items, monsters, transporters, and
# terrain.
#
# Transporter Glyphs:
#
# 'P' : Entry transporter landing site. Central locations or locations somewhat
#       far away the top-center (non-tapered side) are best. This is because
#       the player usually enters from a transporter outside the vault at
#       top-center. Monsters inside will gather close to that area, so placing
#       the transporter away from it gives the player turns to move before
#       being attacked. Conversely placing 'P' too close to the exit
#       transporter 'Q' makes it too easy to raid the arena without engaging
#       monsters.
#
# 'Q' : Exit transporter. Needs to be located near the bottom-center (tapered
#       side) of the vault where it will be close to the exit transporter
#       landing site in the parent vault.
#
# Monster and Item Glyphs:
#
# Note that the '1', '2', and '3' glyphs only determine possible locations of
# monsters in the vault, not how many can or will place. See the comments for
# and contents of tier1_gauntlet_arenas in dat/dlua/gauntlet.lua for those
# details.
#
# '1' : At least one glyph for the strongest type of monster. Should be an
#       ideal location if the monster is stationary (i.e. statue or oklob). If
#       multiple '1' exist, one is chosen randomly and the rest become floor.
#
# '2' : At least six of this glyph for the middle tier monsters. Unused
#       instances will become floor.
#
# '3' : At least ten of this glyph for the weakest tier monsters. Unused
#       instances will become floor.
#
# 'd' : At least four of this glyph for loot items. Unused instances will
#       become floor. By default, tier one arenas place two items and tier two
#       place three. See gauntlet_arena_item_setup() for details on default
#       items, and gauntlet_arena_custom_extra_items() to change the default.
#
# 'p' : (Optional) All 'p' glyphs become a plant type appropriate for the
#       chosen monster set.
#
# Terrain Glyphs:
#
# '^' : Vaults should have some '^' glyphs to let the vault have a chance of
#       placing dispersal traps. These should be placed at interesting
#       locations that make the vault more challenging. All instances of '^'
#       become a trap, so any location randomization must be handled in the
#       vault before gauntlet_arena_setup() is called.
#
#       The number of '^' placed shouldn't be excessive for a 9x9 arena. It's
#       helpful to guarantee a trap-free walkable path to 'Q' so that the
#       player isn't forced to repeatedly step on a trap to blink to the exit
#       after the vault is cleared.
#
# 'x' : (Optional) All rock wall glyphs get collectively randomized to
#       appropriate walls for the tier: either rock or stone for first tier and
#       stone, metal, or crystal for the second tier. To prevent this, give a
#       second argument of true to gauntlet_arena_setup(). Otherwise, it's best
#       to use 'x' for all opaque walls in the arena.
#
# 'w' : (Optional) There's a chance for all 'w' glyphs to become 'l' lava
#       glyphs unless the chosen monster set indicates that only water is
#       thematically appropriate.
#
# 'l' : (Optional) All 'l' glyphs get turned to deep water if the chosen
#       monster set indicated that only lava is thematically appropriate.
#############################################################################

NAME:   gammafunk_gauntlet_arena_open
TAGS:   gauntlet_arena_first gauntlet_arena_second
WEIGHT: 5
NSUBST: "' = 10=3, - = 6=2 / ^...
SUBST:  ' = ^.....
: gauntlet_arena_setup(_G)
MAP
n"""""""""n
n"""""""""n
n'''''''''n
n'''...'''n
n'''.P.'''n
n'''...'''n
 ---------
 ----1----
 --ddQdd--
ENDMAP

NAME:   gammafunk_gauntlet_arena_corners
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^..
NSUBST: ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n3.3.3.3.3n
n~xx3.3xx~n
n3x3xnx3x3n
n.~xx~xx~.n
n....P....n
n.^xx~xx^.n
 2x2xnx2x2
 !xx.1.xx!
 .2ddQdd2.
ENDMAP

NAME:  gammafunk_gauntlet_arena_hedges
TAGS:  gauntlet_arena_first gauntlet_arena_second
SUBST: q = pp~, ~ = ^..
: gauntlet_arena_setup(_G)
MAP
n3.3.3.3.3n
n~qqq3qqq~n
n3qxpppxq3n
n~qqq~qqq~n
n3...P...3n
n.qqq~qqq~n
 2qxpppxq2
 ^qq212qq^
 .2ddQdd2.
ENDMAP

NAME:  gammafunk_gauntlet_arena_split_x
TAGS:  gauntlet_arena_first gauntlet_arena_second
SUBST: ~ = ^..
: gauntlet_arena_setup(_G)
MAP
n3.3.3.3.3n
n~x3.3.3x~n
n.xx3.3xx.n
n.~xx~xx~.n
n....P....n
n.^xxnxx^.n
 .xx2.2xx.
 !x~.1.~x!
 22ddQdd22
ENDMAP

NAME:   gammafunk_gauntlet_arena_grid
TAGS:   gauntlet_arena_first gauntlet_arena_second
NSUBST: - = 10=3 / ^...., ' = 6=2 / ^..
: gauntlet_arena_setup(_G)
MAP
n---------n
n-x-x-x-x-n
n--x-n-x--n
n-x-x-x-x-n
n--n-P-n--n
n-x-x-x-x-n
 ''x^n^x''
 'x'x1x'x'
 ''ddQdd''
ENDMAP

NAME:   gammafunk_gauntlet_arena_split_diamond
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^..
NSUBST: ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n333333333n
n3^xx~xx^3n
n.xx~~~xx.n
n~x.....x~n
n....P....n
n!x.....x!n
 2xx~~~xx2
 2^xx1xx^2
 .2ddQdd2.
ENDMAP

NAME:   nicolae_gauntlet_arena_t_cross
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^..
NSUBST: P = P / ., ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n333333333n
n3.~nnn~.3n
n.~..x..~.n
n.n.PxP.n.n
n!nxxxxxn!n
n.n..x..n.n
 .~.2x2.~.
 2^~n1n~^2
 .2ddQdd2.
ENDMAP

NAME:  nicolae_gauntlet_arena_x
TAGS:  gauntlet_arena_first gauntlet_arena_second
SUBST: ~ = ^..
: gauntlet_arena_setup(_G)
MAP
nx3333333xn
n3x.....x3n
n3~x...x~3n
n..~xPx~..n
n...^x^...n
n..~x.x~..n
 .~x2.2x~.
 ~x2.1.2x~
 x2ddQdd2x
ENDMAP

NAME:   nicolae_gauntlet_arena_flowing_pool
TAGS:   gauntlet_arena_first gauntlet_arena_second no_pool_fixup
NSUBST: P = P / -, - = 10=3 / ^..., ' = 6=2 / ^..
: gauntlet_arena_setup(_G)
MAP
n.-ww-..w.n
n-w--w--w-n
nPw-ww-wwPn
nw-w---w--n
nw--wPw-wwn
n-w-www-w-n
 'ww^'^w''
 'w''1w'w'
 d'wdQd'wd
ENDMAP

NAME:   nicolae_gauntlet_arena_quarters
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^..
NSUBST: P = P / ., ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n333333333n
n..nx3xn..n
n.n.~x~.n.n
n.x.PxP.x.n
n.^xxxxx^.n
n.x..x..x.n
 !n2~x~2n!
 .2nx1xn2.
 2.ddQdd.2
ENDMAP

NAME:   nicolae_gauntlet_arena_blocks
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^..
NSUBST: ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n3.3.3.3.3n
n~x.333.x~n
n3~xxnxx~3n
n..xx~xx..n
n....P....n
n..xx~xx..n
 2^xxnxx^2
 !x.212.x!
 .2ddQdd2.
ENDMAP

NAME:   nicolae_gauntlet_arena_grate_2
TAGS:   gauntlet_arena_first gauntlet_arena_second
KFEAT:  qr = iron_grate
NSUBST: "' = 10=3, - = 6=2 / ^.., ! = ^. / .
SUBST:  r = rr^, ' = ^...
: gauntlet_arena_setup(_G)
MAP
n"""""""""n
n'xrx'''x'n
n...xqx'''n
n!x...xrx'n
n.xrxP..x'n
n---xqx...n
 -x---xrx.
 -xrx1--x!
 --ddQdd--
ENDMAP

NAME:   nicolae_gauntlet_swirl
TAGS:   gauntlet_arena_first gauntlet_arena_second
NSUBST: P = P / -, - = 10=3 / ., ' = 6=2 / ., ! = ^.. / .
SUBST:  ~ = ^.
: gauntlet_arena_setup(_G)
MAP
n--x~-----n
n---x--~--n
n-~-x~---xn
n---PnPxx!n
n--^nnn^--n
n!xx'n''''n
 x'''~x'~'
 ''~'1x'''
 d''dQdx'd
ENDMAP

NAME: minmay_gauntlet_arena_make_your_own_arena
TAGS: gauntlet_arena_first gauntlet_arena_second
: gauntlet_arena_setup(_G)
MAP
n..=.P.=..n
n.^=...=^.n
n==n=n=n==n
n..=...=..n
n..=...=..n
n==n...n==n
 33n===n33
 322212223
 33ddQdd33
ENDMAP

NAME:   gammafunk_gauntlet_arena_teeth
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^...
NSUBST: ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n..33333..n
n..33333..n
n.nnnnnnn.n
nx~x~x~x~xn
n....P....n
n.x~x~x~x.n
 !nnnnnnn!
 2^2.1.2^2
 .2ddQdd2.
ENDMAP

NAME:    gammafunk_gauntlet_arena_mazey
TAGS:    gauntlet_arena_first gauntlet_arena_second
NSUBST:  P = P / a
# Ensure that at least one of the four paths is always open.
SHUFFLE: qrsu
SUBST:   a = ^pnn, q = ., rsu = ^pnnnnnn
NSUBST:  . = 10=3 / .
: gauntlet_arena_setup(_G)
MAP
n..x.nx..xn
nax..n.nxan
nx.xa.xn.Pn
nqP..x..a.n
nxqxxrPsxun
n...rxxs2un
 x2xnnn22x
 22xa1ndxa
 a^ddQdx^x
ENDMAP

NAME:   gammafunk_gauntlet_arena_chambers
TAGS:   gauntlet_arena_first gauntlet_arena_second
SUBST:  ~ = ^..
NSUBST: ! = ^. / .
: gauntlet_arena_setup(_G)
MAP
n333x.x333n
n33x...x33n
n.xx...xx.n
nx~~x~x~~xn
n....P....n
nx..x^x..xn
 !xxxnxxx!
 22x~1~x22
 .2ddQdd2.
ENDMAP

NAME:    gammafunk_gauntlet_arena_crates
TAGS:    gauntlet_arena_first gauntlet_arena_second
# At least one open path, but usually not the one adjacent to the landing site.
SHUFFLE: Pq / Rr / Ss
SUBST:   a = ...^nn, q = ^nnn, r = .^nn, sRS = ., x = ^ x:150
: gauntlet_arena_setup(_G)
MAP
nxx3xx3xx3n
nxx3xx3xx3n
na3a33a33an
nPxxRxxSxxn
n.xx.xx.xxn
n.a.a..a.an
 x2nxrxn2x
 xqnn1nnsx
 22ddQdd22
ENDMAP

NAME:  gammafunk_gauntlet_arena_arrow_garden
TAGS:  gauntlet_arena_first gauntlet_arena_second
SUBST: ~ = ^..
: gauntlet_arena_setup(_G)
MAP
n.333n333.n
n.33xpx33.n
n.~xpPpx~.n
n~np.n.pn~n
nxp.xpx.pxn
n..xp^px..n
 ^xp2n2px^
 xp2x1x2px
 ddx2Q2xdd
ENDMAP

NAME:  gammafunk_gauntlet_arena_spirals
TAGS:  gauntlet_arena_first gauntlet_arena_second
SUBST: q = ^ n:190
: gauntlet_arena_setup(_G)
MAP
nddxx..33^n
ndqx.qxx^3n
ndx.xq.xx3n
n1x.x.x.x3n
n2q.qPq.q2n
n2x.x.x.x2n
 2xx.qx.x2
 3^xxq.xq1
 ^3333xxQx
ENDMAP

#############################################################################
# <<1.2>> 7x7 arenas
#############################################################################

#############################################################################
# The 7x7 arenas use the same setup function and set of required and optional
# glyphs as the 9x9 vaults described in <<1.1>>. Follow the instructions in
# that section for creating 7x7 arenas, aside from the required tags. For 7x7
# arenas, the the selection tags are gauntlet_arena_77_first and
# gauntlet_arena_77_second. Vaults should have both of these tags unless they
# place specific terrain for a fixed monster set appropriate for only one of
# the tiers.
#
# Since 7x7 arenas are significantly smaller than 9x9 ones, they have some
# design considerations outlined below by minmay:
#
# Arenas have 23 mandatory glyphs, which is almost half of the available area,
# so these are heavily constrained in how many walls/liquids/etc. can be
# placed.
#
# A smaller arena is inherently more dangerous than a larger one, so compensate
# by providing good terrain, to keep the difficulty in line with the larger
# arenas.
#
# Template:
#
# n.......n
# n.......n
# n.......n
# n.......n
# n.......n
#  .......
#  .......
#

NAME:   minmay_gauntlet_arena_77_fan
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n2223xx3n
nx1^nn3.n
nxn3x3^.n
n3nx3xnPn
n2^3x3nxn
 23nn^dx
 2xxQddd
ENDMAP

NAME:   minmay_gauntlet_arena_77_two_lines
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n1.xx333n
n...xx33n
n2x.^xx3n
n2xxP.x3n
n22xx..3n
 2ddxx.3
 2ddQxx3
ENDMAP

NAME:   minmay_gauntlet_arena_77_checkered
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
nx2x3x2xn
n2n2n2n2n
nx3x3x3xn
n3nPn1n3n
nx3x^x3xn
 3ndndn3
 xdxQxdx
ENDMAP

NAME:   minmay_gauntlet_arena_77_box
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n333333^n
n3nxxx33n
n2x^..x2n
n2x.P.x2n
n2x..^x2n
 ..xxxn3
 ^ddQdd1
ENDMAP

NAME:   minmay_gauntlet_arena_77_double_cross
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n2......n
n22x....n
n3xxx...n
n33xPx..n
n333xxx.n
 3333x22
 1ddQdd2
ENDMAP

NAME:   minmay_gauntlet_arena_77_museum
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G, true)
MAP
n2223222n
n3G3I3V3n
n^.p.p.^n
n.x.P.c.n
n^.p.p.^n
 3v3b3n3
 1ddQdd3
ENDMAP

NAME:   minmay_gauntlet_arena_77_chump_sandwich
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n3322233n
n2332332n
n3xxnxx3n
n...P...n
n.xxnxx.n
 ...1...
 .ddQdd.
ENDMAP

NAME:   minmay_gauntlet_arena_77_tiled_triplets
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n1xx2xx2n
nx22n22xn
nxn3nn3xn
n33nP^n3n
nx3nn3nxn
 dn33n3d
 dxxQxxd
ENDMAP

NAME:   minmay_gauntlet_arena_77_hold_the_fort
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n3333222n
n3xxnx22n
n3x..nx2n
n..xP.n3n
n.^nx.x3n
 ..^.xx3
 1ddQdd3
ENDMAP

NAME:   minmay_gauntlet_arena_77_cramped
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
nnn222nnn
nnn333nnn
n23nn=32n
n13nPn33n
n3d=nn32n
 nndddnn
 nnnQnnn
ENDMAP

NAME:   minmay_gauntlet_arena_77_p_blocks
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n33332xxn
n3xxx2xxn
n3xx.^x3n
n22.P.22n
n3x^.xx3n
 xxdxxx3
 xxdQdd1
ENDMAP

# Without the runed door, players could still keep all the monsters away from
# the entry point by running clockwise around the vault. That is tedious, so the
# runed door gets rid of the need for it.
NAME:   minmay_gauntlet_arena_77_path
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n222n^.Pn
n2x2x.xxn
n2n3n^.^n
n1x3xxx.n
ndn333n3n
 dxxx3x=
 ddQn333
ENDMAP

NAME:   minmay_gauntlet_arena_77_mirror
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n2221222n
nxxx.xxxn
n3.n.n.3n
n3xxPxx3n
n3n...n3n
 3x^.^x3
 3ddQdd3
ENDMAP

NAME:   minmay_gauntlet_arena_77_terracotta_army
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n22GxG22n
n233G332n
nG3G^G3Gn
nxG3P3Gxn
nG3G^G3Gn
 ...G...
 1ddQdd.
ENDMAP

NAME:   minmay_gauntlet_arena_77_run_for_it
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n...Pn33n
n.xx.n33n
n3xx.n33n
n33^.n23n
nnn===21n
 ddn.n22
 ddnQn22
ENDMAP

NAME:   minmay_gauntlet_arena_77_squiggly
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n22222x3n
n.xx2.x3n
nx..nn33n
nx3^P^3xn
n33nn..xn
 3xddxx.
 3xdQd.1
ENDMAP

NAME:   minmay_gauntlet_arena_77_radiant_squares
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n3332221n
n.nxnx32n
n^.3^3x2n
nxnxP^n2n
n.ddx3x3n
 xddn.n3
 Qx.x^.3
ENDMAP

NAME:   minmay_gauntlet_arena_77_broken_ladder
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n3nnx333n
n3x333x2n
n33^xnn2n
n2x.P.x2n
n2nnx^.1n
 2x...x.
 .ddQdd.
ENDMAP

NAME:   minmay_gauntlet_arena_77_shame_cube
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n^333333n
n3xnxnx3n
n3=...=3n
n2x.P.x2n
n2nwwwn2n
 2xnxnx2
 1ddQdd^
ENDMAP

NAME:   minmay_gauntlet_arena_77_mess
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
# there is one 3 on the map because a dispersal trap should not be on that
# square
NSUBST: ' = 9=3 / 6=2 / 1 / ^ / .
: gauntlet_arena_setup(_G)
MAP
nn''x'n'n
n'xn'x3nn
nn''xn'xn
nx'xP'x'n
n'n''xn'n
 'xnx''x
 nddQddn
ENDMAP

NAME:   minmay_gauntlet_arena_77_block_sizes
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n222.222n
n3x..xx3n
n3..Pxx3n
n3xnx.^3n
n3xnx^13n
 3xnx..3
 .ddQdd.
ENDMAP

NAME:   minmay_gauntlet_arena_77_braids
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n22n.n22n
n3x2x2x3n
n3x.x.x3n
n^3nPn3^n
n3x.x.x3n
 3x1x.x3
 ddnQndd
ENDMAP

# to escape, face either the 1 or the plant
NAME:   minmay_gauntlet_arena_77_two_paths
TAGS:   gauntlet_arena_77_first gauntlet_arena_77_second
: gauntlet_arena_setup(_G)
MAP
n222.222n
n3xnxnx3n
n^33x33^n
nxnxPxnxn
n^33x33^n
 .xnxnxp
 1ddQdd.
ENDMAP

#############################################################################
# <<2>> Gauntlet exit subvaults
#############################################################################
# The vaults exit subvaults that place an exit, a boss, and its loot pile.
# These vaults must have tag 'gauntlet_exit'. Vaults not defining their own custom
# loot set can place exactly one '<' and call gauntlet_exit_loot(G_) to place
# loot there. Otherwise the map must place its own loot and exit_gauntlet
# feature. The vault must also place exactly one patrolling awake minotaur.
#
# These vaults must have the same shape as the template below. This is so that
# they place in the parent vault with the subvault entrance in the right
# relative location. The entrance must place in the first row at the wider top
# section, relative to the template below.
#
# ...............
# ...............
# ...............
# ...............
# ...............
# ...............
# ...............
# ...............
# ...............
# ...............
#  .............
#  .............
#  .............
#
# The vault will be surrounded by metal walls in the parent map. Hence the
# subvault should fill the shape above with 'v' metal wall glyphs for areas
# that are meant to be part of that surrounding wall.
#############################################################################

# Adapted from the labyrinth_watery minotaur exit vault.
NAME:    gauntlet_exit_watery
TAGS:    gauntlet_exit no_pool_fixup
MONS:    patrolling minotaur
KFEAT:   < = exit_gauntlet
SHUFFLE: def, ghi
SUBST:   dg = ., efhi = v
: gauntlet_exit_loot(_G)
MAP
vvv.vvv.vvv.vvv
vvv.vvv.vvv.vvv
v.............v
v.vvv.vvv.vvv.v
v.vvv.vvv.vvv.v
v.............v
vvvvbbb+bbbvvvv
vvvvb.....bvvvv
vvvvbbb1bbbvvvv
vvvvbw...wbvvvv
 vvvbww<wwbvvv
 vvvbwwwwwbvvv
 vvvbbbbbbbvvv
ENDMAP

# Adapted from labyrinth_green.
NAME:   gauntlet_exit_green
TAGS:   gauntlet_exit
MONS:   patrolling minotaur
KFEAT:  < = exit_gauntlet
: gauntlet_exit_loot(_G)
MAP
v.vv.vv.vv.vv.v
v.vv.vv.vv.vv.v
...............
.vv.vv.vv.vv.vv
.vv.vv.vv.vv.vv
...............
vv.vv.b+bvv.vv.
vv.vv.b.bvv.vv.
......b.b......
v.vv.vb1bv.vv.v
 .vv.vb<bv.vv.
 .....bbb.....
 vv.vv.vv.vv.v
ENDMAP

# Adapted from labyrinth_spiral.
NAME:   gauntlet_exit_spiral
TAGS:   gauntlet_exit
MONS:   patrolling minotaur
SUBST:  b : bvz, z = vb
KFEAT:  < = exit_gauntlet
: gauntlet_exit_loot(_G)
MAP
vvvvvvv.vvvvvvv
vvvvvvv.vvvvvvv
vvv.....vvvvvvv
vvb.bbbbbbbvvvv
vvb.b.....bvvvv
vvb.b.bbb.bvvvv
vvb.b.b<b.bvvvv
vvb.b.b1b.bvvvv
vvb.b.b.b.bvvvv
vvb.b...b.bvvvv
 vb.bbbbb.bvvv
 vb.......bvvv
 vbbbbbbbbbvvv
ENDMAP

# Adapted from labyrinth_hidden_loot.
NAME:   gauntlet_exit_hidden_loot
TAGS:   gauntlet_exit
MONS:   patrolling minotaur, minotaur zombie
SUBST:  d = 2%*
SUBST:  b : bvv
KFEAT:  < = exit_gauntlet
: gauntlet_exit_loot(_G)
MAP
vvv.vvv.vvv.vvv
vvv.vvv.vvv.vvv
v.............v
v.vvv.vvv.vvv.v
v.............v
vvvvxxx+xxxxvvv
vvvvxxx.xxxxvvv
vvvvxx..<.xxvvv
vvvvd+U...xxvvv
vvvvxx...U+dvvv
 vvvxx.U.1xxvv
 vvvxxx+xxxxvv
 vvvxxxdxxxxvv
ENDMAP

# Adapted from labyrinth_mini_lab.
NAME:    gauntlet_exit_mini_maze
TAGS:    gauntlet_exit
SHUFFLE: def, ghi, klm
SUBST:   d : b, e : ., f : b
SUBST:   g : b, h : ., i : b
SUBST:   k = <, l = ., m = .
KMONS:   < = patrolling minotaur
KFEAT:   < = exit_gauntlet
SUBST:   b : vvb
: gauntlet_exit_loot(_G)
# should not be necessary
validate {{ return has_exit_from_glyph('<') }}
MAP
vbfbbbbbebbbdbv
vbfg.......b.bv
vbfb.bhbdb.b.bv
vbfb.b.b.g.b.bv
vbfb.f.b.b.b.bv
vbfbii.b.b...bv
vbfb.h.b.bbebbv
vb...b.b.....bv
vbbbbb.bfbbb.bv
vb.........b.bv
 bfbbdbbbbebgb
 bl....k....mb
 bbbbbbbbbbbbb
ENDMAP

#############################################################################
# Chooses four corpses, each with their own set of loot, themed around some
# particular archetypical species/background. Each set of loot has 2-4 items.
NAME:    nicolae_gauntlet_exit_dead_adventurers
TAGS:    gauntlet_exit
KMONS:   1 = patrolling minotaur
KPROP:   DELM'1 = bloody
KFEAT:   ' = floor
SHUFFLE: bvc, DELM, DEFHJK, LMNOPQ
{{
-- These adventurers always place a weapon.

local light_scales = "troll leather armour good_item" ..
    " / steam dragon scales good_item / acid dragon scales good_item"
local medium_scales = "swamp dragon scales good_item" ..
    " / quicksilver dragon scales / fire dragon scales good_item" ..
    " / ice dragon scales good_item / quicksilver dragon scales" ..
    " / pearl dragon scales good_item"
local heavy_scales = "storm dragon scales / shadow dragon scales" ..
    " / gold dragon scales"
local heavy_armour = "scale mail good_item w:50 / chain mail good_item w:50" ..
    " / plate armour good_item w:50 / crystal plate armour good_item"

 -- Dwarven fighter. Maybe the minotaur got the last MD.
dgn.delayed_decay_extra(_G, "D", "dwarf skeleton",
    "flail randart / morningstar good_item / eveningstar w:2" ..
    "    / demon whip w:2 / dire flail good_item / great mace good_item" ..
    "    / war axe randart / broad axe good_item / battleaxe good_item" ..
    "    / executioner's axe w:2 " ..
    ", ring mail randart w:50 / " .. heavy_armour .. " / " .. medium_scales ..
    "    / " .. heavy_scales ..
    ", kite shield good_item / tower shield good_item / " .. dgn.good_aux_armour ..
    "    / nothing w:80" ..
    ", any wand w:20 / any misc / gold / any scroll / any potion" ..
    "    / nothing w:60")

 -- Minotaur hunter.
dgn.delayed_decay_extra(_G, "E", "minotaur skeleton",
    "shortbow good_item / longbow w:5 / arbalest good_item" ..
    "    / triple crossbow w:5 / javelin good_item" ..
    ", leather armour good_item w:50 / ring mail good_item w:50" ..
    "    / " .. heavy_armour .. " / " .. medium_scales ..
    "    / " .. heavy_scales ..
    ",   / " .. dgn.good_aux_armour ..
    "    / nothing w:40" ..
    ", any wand w:20 / any misc / gold / any scroll / any potion" ..
    "    / nothing w:60")

 -- Spriggan stabber.
dgn.delayed_decay_extra(_G, "F", "spriggan skeleton",
    "dagger good_item / short sword good_item / rapier good_item" ..
    "    / quick blade w:5" ..
    ", robe good_item w:120 / " .. light_scales .. " / shadow dragon scales" ..
    ", randbook disc:hexes / book of misfortune / nothing w:20" ..
    ", buckler good_item / hat good_item / any wand w:20 / any misc / gold" ..
    "    / any scroll / any potion / nothing w:80")

 -- Merfolk gladiator. 3 guaranteed items, 3.25 on-average.
dgn.delayed_decay_extra(_G, "H", "merfolk skeleton",
    "trident good_item / demon trident / glaive good_item / bardiche" ..
    ", leather armour good_item w:100 / ring mail good_item w:100" ..
    "    / " .. light_scales .. " / " .. medium_scales ..
    -- Give this a 1/4 in chance of placing since we guarantee 3 items above.
    ", buckler good_item / kite shield good_item / tower shield good_item" ..
    "    / " .. dgn.good_aux_armour .. " / any wand w:20 / any misc / gold" ..
    "    / any scroll / any potion / nothing w:480")

 -- Hill orc fighter. 3 guaranteed items, 3.25 on-average.
dgn.delayed_decay_extra(_G, "J", "orc skeleton",
    "long sword good_item / double sword w:5 / demon blade w:5" ..
    "    / flail good_item / morningstar good_item / eveningstar" ..
    "    / war axe good_item / broad axe good_item / trident good_item" ..
    "    / demon trident w:5" ..
    ", kite shield good_item / tower shield good_item w:5" ..
    ", ring mail randart w:50 / " .. heavy_armour .. " / " .. medium_scales ..
    "    / " .. heavy_scales ..
    -- Give this a 1/4 in chance of placing since we guarantee 3 items above.
    ", any wand w:20 / any misc / gold / any scroll / any potion" ..
    "    / " .. dgn.good_aux_armour ..  " / nothing w:390")

 -- Ogre, maybe an ogre mage of some kind.
dgn.delayed_decay_extra(_G, "K", "ogre skeleton",
    "trident good_item / demon trident / glaive good_item / bardiche" ..
    "    / war axe randart / broad axe good_item / battleaxe good_item" ..
    "    / executioner's axe w:2 / giant club good_item" ..
    "    / giant spiked club good_item / quarterstaff good_item / lajatang" ..
    "    / any magical staff w:20" ..
    ", robe good_item w:200 / " .. light_scales .. " / " .. medium_scales ..
    "    / " .. heavy_scales ..
    ", hat good_item w:20 / cloak good_item w:20 / kite shield good_item" ..
    "    / tower shield good_item / nothing w:60" ..
    ", randbook w:20 / any wand w:20 / any misc / gold / any scroll" ..
    "    / any potion / nothing w:80")

-- These adventurers don't always place weapons, with the exception of
-- magical staves.

-- Human wanderer.
dgn.delayed_decay_extra(_G, "L", "human skeleton",
    "any armour good_item, any weapon good_item / randbook / any misc" ..
    ", any book / any jewellery / any wand w:20 / any misc / gold" ..
    "    / any scroll / any potion / nothing w:70" ..
    ", any book / any jewellery / any wand w:20 / any misc / gold" ..
    "    / any scroll / any potion / nothing w:70")

-- Deep Elf caster.
dgn.delayed_decay_extra(_G, "M", "elf skeleton",
    "randbook, any magical staff" ..
    ", robe good_item w:50 / leather armour good_item w:50" ..
    "    / " .. light_scales .. " / buckler good_item" ..
    "    / " .. dgn.good_aux_armour .. " / nothing" ..
    ", any jewellery w:20 / any wand w:20 / any misc / gold" ..
    "    / any scroll / any potion / nothing w:80")

-- Deep Dwarf artificer.
dgn.delayed_decay_extra(_G, "N", "dwarf skeleton",
    "any wand, any misc, any wand / any misc / nothing w:20" ..
    ", any weapon good_item / any armour good_item / gold / any scroll" ..
    "    / any potion / nothing w:50")

-- Octopode. Two guaranteed rings and up to two more.
dgn.delayed_decay_extra(_G, "O", "octopode corpse",
    "any ring good_item, any ring good_item" ..
    ", any ring w:150 / any magical staff / trident good_item" ..
    "    / demon trident w:5 / glaive good_item w:5 / nothing w:180" ..
    ", any ring w:60 / hat good_item w:20 / buckler good_item w:20" ..
    "    / kite shield good_item / tower shield good_item / any wand w:20" ..
    "    / any misc / gold / any scroll / any potion / nothing w:180")

-- Felid Transmuter.
dgn.delayed_decay_extra(_G, "P", "felid skeleton",
    "randbook disc:transmutation / book of changes" ..
    "    / book of transfigurations" ..
    ", any jewellery good_item w:60 / manual of transmutations" ..
    "    / manual of unarmed combat / manual of fighting" ..
    ", any wand w:20 / any misc / gold / any scroll / any potion" ..
    "    / nothing w:60" ..
    ", any wand w:20 / any misc / gold / any scroll / any potion" ..
    "    / nothing w:60")

-- Kobold warper.
dgn.delayed_decay_extra(_G, "Q", "kobold skeleton",
    "randbook disc:translocation / book of spatial translocations" ..
    "    / book of the warp" ..
    ", scroll of blinking / scroll of teleportation q:2" ..
    "    / boomerang ego:dispersal" ..
    ", dagger good_item / short sword good_item / rapier good_item" ..
    "    / long sword good_item / double sword / demon blade" ..
    "    / hunting sling randart / fustibalus good_item" ..
    "    / hand crossbow randart / arbalest good_item / triple crossbow" ..
    "    / shortbow good_item / any armour good_item / nothing w:130" ..
    ", buckler good_item / kite shield good_item / " .. dgn.good_aux_armour ..
    "    / any wand w:20 / any misc / gold / any scroll / any potion" ..
    "    / nothing w:140")

}}
MAP
v.v.vvvvvvv.v.v
v.v....v....v.v
v.v.vv.v.vv.v.v
v.............v
v.v..bb+bb..v.v
v.v..bG.Gb..v.v
v....b...b....v
vvvG.bG1Gb.Gvvv
vvvvvbE'Mbvvvvv
vvvvvbG'Gbvvvvv
 vvvvbD'Lbvvvv
 vvvvbG<Gbvvvv
 vvvvbbbbbvvvv
ENDMAP

#############################################################################
# <<3>> Gauntlet main maps.
#############################################################################
# These are encompass maps that place the arena and exit subvaults. These maps
# should show the player all arenas and give the player some kind of path
# through those arenas based on choice. The number of arenas taken should be
# anywhere from 2-4 to avoid these from completely overshadowing the reward
# from the boss fight.
#
# Before any arena subvault statements, call the setup function:
#
#    gauntlet_setup(_G, entry_glyphs, exit_glyphs)
#
# The map should place the arena entry transporters on the glyphs in the string
# 'entry_glyphs' and the arena exit transporter landing sites on the glyphs in
# the string 'exit_glyphs'.

# The glyphs in these strings must be in the same order of the subvault
# transporter satements so that the transporters go to their intended
# destinations.
#
# Gauntlet arenas have two tiers for easier and harder difficulties. To set a
# subvault's difficulty, call gauntlet_arena_set_tier(n) before the subvault
# statement and use tags gauntlet_arena_first and gauntlet_arena_second. The
# gauntlet_setup() function will initialize difficulty to the first tier.
#
# The map should place exactly one subvault with tag 'gauntlet_exit', which
# will place and exit features. Call gauntlet_appearance(_G) to set the exit
# feature on the '<' and for any other common visual changes.

NAME:   gammafunk_gauntlet_branching
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNPRp", "EHKMOQSq")
SUBVAULT: a : gauntlet_arena_first
SUBVAULT: d : gauntlet_arena_first
: if crawl.coinflip() then
SUBVAULT: e : gauntlet_arena_first
SUBVAULT: f : gauntlet_arena_first
SUBVAULT: g : gauntlet_arena_first
SUBVAULT: h : gauntlet_arena_first
: else
:     gauntlet_arena_set_tier(2)
SUBVAULT: e : gauntlet_arena_second
SUBVAULT: f : gauntlet_arena_second
SUBVAULT: g : gauntlet_arena_second
SUBVAULT: h : gauntlet_arena_second
: end
: gauntlet_arena_set_tier(2)
SUBVAULT: i : gauntlet_arena_second
SUBVAULT: j : gauntlet_arena_second
SUBVAULT: y : gauntlet_exit
# Just in case we ever add lava felids, prevent their revival in closets.
KPROP:    lG = no_tele_into
: gauntlet_appearance(_G)
MAP
               ccc ccc ccccccccccccc ccc ccc
               cGc cGc cGccccGccccGc cGc cGc
              ccncccncccnccccnccccncccncccncc
              cl............l<l............lc
            ccc.............................ccc
            cGn..nnnnaaaaaan...nddddddnnnn..nGc
            cnn..naaaaaaaaan...ndddddddddn..nnc
            c....naaaaaaaaan.A.ndddddddddn....c
          ccc....naaaaaaaaan...ndddddddddn....ccc
          cGn..nnnaaaaaaaaan...ndddddddddnnn..nGc
          ccc..nEnaaaaaaaaanD.FndddddddddnHn..ccc
            c..n.naaaaaaaaan...ndddddddddn.n..c
          ccc..n.naaaaaaaaan...ndddddddddn.n..ccc
          cGn..n.naaaaaaaaan...ndddddddddn.n..nGc
    cccccccnn..n.naaaaaaaaan...ndddddddddn.n..nnccccccc
    cGn........n.nnnnaaaaaan...nddddddnnnn.n........nGc
  cccnn........n.n...........l...........n.n........nnccc
cccl.....nnnnnnn.nnnnnnn....lGl....nnnnnnn.nnnnnnn.....lccc
cGn......nJ...........Ln.....l.....nN...........Pn......nGc
ccc..nnnnnnnnnnnnnnnnnnnnnnn...nnnnnnnnnnnnnnnnnnnnnnn..ccc
  c..eeeeeeeeeeelfffffffffff...ggggggggggglhhhhhhhhhhh..c
ccc..eeeeeeeeeeelfffffffffff...ggggggggggglhhhhhhhhhhh..ccc
cGn..eeeeeeeeeeelfffffffffff...ggggggggggglhhhhhhhhhhh..nGc
ccc..eeeeeeeeeeelfffffffffff...ggggggggggglhhhhhhhhhhh..ccc
  c..eeeeeeeeeeeGfffffffffff...gggggggggggGhhhhhhhhhhh..c
ccc..eeeeeeeeeeelfffffffffff...ggggggggggglhhhhhhhhhhh..ccc
cGn..neeeeeeeeenlnfffffffffn...ngggggggggnlnhhhhhhhhhn..nGc
ccc..neeeeeeeeenlnfffffffffn...ngggggggggnlnhhhhhhhhhn..ccc
  c..neeeeeeeeenlnfffffffffn...ngggggggggnlnhhhhhhhhhn..c
ccc..nnnnnnnnnnnnnnnnnnnnnnn...nnnnnnnnnnnnnnnnnnnnnnn..ccc
cGn......nK...........Mn.....l.....nO...........Qn......nGc
cccl.....nnnnnnn.nnnnnnn....lGl....nnnnnnn.nnnnnnn.....lccc
  cccnn........n.n...........l...........n.n........nnccc
    cGn........n.niiiiiinnnn...nnnnjjjjjjn.n........nGc
    cccccccnn..n.niiiiiiiiin...njjjjjjjjjn.n..nnccccccc
          cGn..n.niiiiiiiiin...njjjjjjjjjn.n..nGc
          ccc..n.niiiiiiiiin...njjjjjjjjjn.n..ccc
            c..n.niiiiiiiiin...njjjjjjjjjn.n..c
          ccc..nRniiiiiiiiin...njjjjjjjjjnpn..ccc
          cGn..nnniiiiiiiiin...njjjjjjjjjnnn..nGc
          ccc....niiiiiiiiin...njjjjjjjjjn....ccc
            c....niiiiiiiiin...njjjjjjjjjn....c
            cnn..niiiiiiiiin...njjjjjjjjjn..nnc
            cGn..niiiiiinnnn...nnnnjjjjjjn..nGc
            ccc........nSn.......nqn........ccc
              cl.......n.n..l<l..n.n.......lc
              ccnccccccn.nnnnnnnnn.nccccccncc
               cGc  vl...............lv  cGc
               ccc  vG.G.G.G.G.G.G.G.Gv  ccc
                    vl...............lv
                    vvyyyyyyyyyyyyyyyvv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vyyyyyyyyyyyyyyyv
                     vvyyyyyyyyyyyyyvv
                     vvyyyyyyyyyyyyyvv
                     vvyyyyyyyyyyyyyvv
                     vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   gammafunk_gauntlet_hard_choice
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNP", "EHKMOQ")
SUBVAULT: a : gauntlet_arena_first
SUBVAULT: p : gauntlet_arena_first
# 50% chance to make the second fight harder.
: if crawl.coinflip() then
SUBVAULT: q : gauntlet_arena_first
SUBVAULT: r : gauntlet_arena_first
: else
:   gauntlet_arena_set_tier(2)
SUBVAULT: q : gauntlet_arena_second
SUBVAULT: r : gauntlet_arena_second
: end
: gauntlet_arena_set_tier(2)
SUBVAULT: s : gauntlet_arena_second
SUBVAULT: u : gauntlet_arena_second
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
ccccccccccccccccccccccccccccccccccc
cccccGcccGcccGcccGcccGcccGcccGccccc
cccccncccncccncccncccncccncccnccccc
cccl............l<l............lccc
cGn.......D.............F.......nGc
ccc..nnnnnnnnnnn...nnnnnnnnnnn..ccc
ccc..aaaaaaaaaaa...ppppppppppp..ccc
ccc..aaaaaaaaaaa.A.ppppppppppp..ccc
cGn..aaaaaaaaaaa...ppppppppppp..nGc
ccc..aaaaaaaaaaa...ppppppppppp..ccc
ccc..aaaaaaaaaaa...ppppppppppp..ccc
ccc..aaaaaaaaaaa...ppppppppppp..ccc
cGn..naaaaaaaaan...npppppppppn..nGc
ccc..naaaaaaaaan...npppppppppn..ccc
ccc..naaaaaaaaan...npppppppppn..ccc
ccc..nnnnnnnnnnn...nnnnnnnnnnn..ccc
cGn.....n.E.n....l....n.H.n.....nGc
ccc...G.n...n...lGl...n...n.G...ccc
ccc.....n.J.n....l....n.L.n.....ccc
ccc..nnnnnnnnnnn...nnnnnnnnnnn..ccc
cGn..qqqqqqqqqqq...rrrrrrrrrrr..nGc
ccc..qqqqqqqqqqq...rrrrrrrrrrr..ccc
ccc..qqqqqqqqqqq...rrrrrrrrrrr..ccc
ccc..qqqqqqqqqqq...rrrrrrrrrrr..ccc
cGn..qqqqqqqqqqq...rrrrrrrrrrr..nGc
ccc..qqqqqqqqqqq...rrrrrrrrrrr..ccc
ccc..nqqqqqqqqqn...nrrrrrrrrrn..ccc
ccc..nqqqqqqqqqn...nrrrrrrrrrn..ccc
cGn..nqqqqqqqqqn...nrrrrrrrrrn..nGc
ccc..nnnnnnnnnnn...nnnnnnnnnnn..ccc
ccc.....n.K.n....l....n.M.n.....ccc
ccc...G.n...n...lGl...n...n.G...ccc
cGn.....n.N.n....l....n.P.n.....nGc
ccc..nnnnnnnnnnn...nnnnnnnnnnn..ccc
ccc..sssssssssss...uuuuuuuuuuu..ccc
ccc..sssssssssss...uuuuuuuuuuu..ccc
cGn..sssssssssss...uuuuuuuuuuu..nGc
ccc..sssssssssss...uuuuuuuuuuu..ccc
ccc..sssssssssss...uuuuuuuuuuu..ccc
ccc..sssssssssss...uuuuuuuuuuu..ccc
cGn..nsssssssssn...nuuuuuuuuun..nGc
ccc..nsssssssssn...nuuuuuuuuun..ccc
ccc..nsssssssssn...nuuuuuuuuun..ccc
ccc..nnnnnnnnnnn...nnnnnnnnnnn..ccc
cGn.............................nGc
cccl............l<l............lccc
cccccnccccnnnnnnnnnnnnnnnccccnccccc
    cGc vl...............lv cGc
    ccc vG.G.G..O.Q..G.G.Gv ccc
        vl...............lv
        vvyyyyyyyyyyyyyyyvv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vvyyyyyyyyyyyyyvv
         vvyyyyyyyyyyyyyvv
         vvyyyyyyyyyyyyyvv
         vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   gammafunk_gauntlet_shortcut
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNP", "EHKMOQ")
: gauntlet_arena_set_tier(2)
# 3.5 on average per arena (including the single guaranteed item), for 7 items
# total on average.
: gauntlet_arena_custom_extra_items("fg / |* / e.")
SUBVAULT: a : gauntlet_arena_second
SUBVAULT: d : gauntlet_arena_second
: gauntlet_arena_set_tier(1)
# 1.75 on average per arena for 7 items total on average.
: gauntlet_arena_custom_extra_items("fffggg|||***.... / .")
SUBVAULT: e : gauntlet_arena_first
SUBVAULT: f : gauntlet_arena_first
SUBVAULT: g : gauntlet_arena_first
SUBVAULT: h : gauntlet_arena_first
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
ccccccccccccccccccccccccccccccccccccccccccccccccc
ccccGcccGcccGcccGcccGcccGcccGcccGcccGcccGcccGcccc
ccccncccncccncccncccncccncccncccncccncccncccncccc
cccl............l<l..........................lccc
cGn.......D.............J.....................nGc
ccc..nnnnnnnnnnn...nnnnnnnnnnn...nffffffnnnn..ccc
ccc..aaaaaaaaaaa...eeeeeeeeeee.G.nfffffffffn..ccc
ccc..aaaaaaaaaaa.A.eeeeeeeeeee...nfffffffffn..ccc
cGn..aaaaaaaaaaa...eeeeeeeeeeennnnfffffffffn..nGc
ccc..aaaaaaaaaaa...eeeeeeeeeee...nfffffffffn..ccc
ccc..aaaaaaaaaaa...eeeeeeeeeeeK.Lnfffffffffn..ccc
ccc..aaaaaaaaaaa...eeeeeeeeeee...nfffffffffn..ccc
cGn..naaaaaaaaan...neeeeeeeeennnnnfffffffffn..nGc
ccc..naaaaaaaaan...neeeeeeeeen...nfffffffffn..ccc
ccc..naaaaaaaaan...neeeeeeeeen.G.nfffffffffn..ccc
ccc..nnnnnnnnnnn...nnnnnnnnnnn...nffffffnnnn..ccc
cGn.....n.E.n....l.............l....n.M.n.....nGc
ccc...G.n...n...lGl...........lGl...n...n.G...ccc
ccc.....n.F.n....l.............l....n.N.n.....ccc
ccc..nnnnnnnnnnn...nnnnnnnnnnn...nnnnnnnnnnn..ccc
cGn..ddddddddddd...hhhhhhhhhhh.G.ggggggggggg..nGc
ccc..ddddddddddd...hhhhhhhhhhh...ggggggggggg..ccc
ccc..ddddddddddd...hhhhhhhhhhhnnnggggggggggg..ccc
ccc..ddddddddddd...hhhhhhhhhhh...ggggggggggg..ccc
cGn..ddddddddddd...hhhhhhhhhhhP.Oggggggggggg..nGc
ccc..ddddddddddd...hhhhhhhhhhh...ggggggggggg..ccc
ccc..ndddddddddn...nhhhhhhhhhnnnnngggggggggn..ccc
ccc..ndddddddddn...nhhhhhhhhhn...ngggggggggn..ccc
cGn..ndddddddddn...nhhhhhhhhhn.G.ngggggggggn..nGc
ccc..nnnnnnnnnnn...nnnnnnnnnnn...nnnnnnnnnnn..ccc
  c...........................................c
  cl............l<l..........................lc
  ccccncccnnnnnnnnnnnnnnncccncccncccncccncccncc
     cGcvl...............lvcGcccGcccGcccGcccGc
     cccvG.G.G..H.Q..G.G.Gvccccccccccccccccccc
        vl...............lv
        vvyyyyyyyyyyyyyyyvv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vyyyyyyyyyyyyyyyv
         vvyyyyyyyyyyyyyvv
         vvyyyyyyyyyyyyyvv
         vvyyyyyyyyyyyyyvv
         vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   gammafunk_gauntlet_one_two_three
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNPRpr", "EHKMOQSqs")
SUBVAULT: a : gauntlet_arena_first
SUBVAULT: d : gauntlet_arena_first
SUBVAULT: e : gauntlet_arena_first
: gauntlet_arena_set_tier(2)
SUBVAULT: f : gauntlet_arena_second
SUBVAULT: g : gauntlet_arena_second
SUBVAULT: h : gauntlet_arena_second
SUBVAULT: i : gauntlet_arena_second
SUBVAULT: j : gauntlet_arena_second
SUBVAULT: k : gauntlet_arena_second
SUBVAULT: y : gauntlet_exit
# Just in case we ever add lava felids, prevent their revival in closets.
KPROP:    lG = no_tele_into
: gauntlet_appearance(_G)
MAP
                                     ccccc
                    ccc ccc ccc ccc  cl<lc  ccc ccc ccc ccc
                    cGc cGc cGc cGc  c...c  cGc cGc cGc cGc
                   ccncccncccncccncccc.A.ccccncccncccncccncc
                   cl.....................................lc
                 ccc...................D...................ccc
                 cGn..nnnnddddddn.nnnnnnnnnnn.neeeeeennnn..nGc
                 cnn..ndddddddddn.aaaaaaaaaaa.neeeeeeeeen..nnc
                 c....ndddddddddn.aaaaaaaaaaa.neeeeeeeeen....c
               ccc....ndddddddddn.aaaaaaaaaaa.neeeeeeeeen....ccc
               cGn..nnndddddddddn.aaaaaaaaaaa.neeeeeeeeennn..nGc
               ccc..nHndddddddddn.aaaaaaaaaaa.neeeeeeeeenKn..ccc
                 c..n.ndddddddddn.aaaaaaaaaaa.neeeeeeeeen.n..c
       ccc ccc ccc..n.ndddddddddn.naaaaaaaaan.neeeeeeeeen.n..ccc ccc ccc
       cGc cGc cGn..n.ndddddddddn.naaaaaaaaan.neeeeeeeeen.n..nGc cGc cGc
   cccccncccncccnn..n.ndddddddddn.naaaaaaaaan.neeeeeeeeen.n..nncccncccnccccc
   cGn..............n.nnnnddddddnnnnnnnnnnnnnnneeeeeennnn.n..............nGc
  ccnn..............n.nllGllnF.........E.........JnllGlln.n..............nncc
cccl....nnnnnnnnnnnnn.nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn.nnnnnnnnnnnnn....lccc
cGn.....nL...........N...........PnllllGllllnR...........p...........rn.....nGc
ccc.nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn.ccc
  c.fffffffffff.ggggggggggg.hhhhhhhhhhh.iiiiiiiiiii.jjjjjjjjjjj.kkkkkkkkkkk.c
ccc.fffffffffff.ggggggggggg.hhhhhhhhhhh.iiiiiiiiiii.jjjjjjjjjjj.kkkkkkkkkkk.ccc
cGn.fffffffffff.ggggggggggg.hhhhhhhhhhh.iiiiiiiiiii.jjjjjjjjjjj.kkkkkkkkkkk.nGc
ccc.fffffffffff.ggggggggggg.hhhhhhhhhhh.iiiiiiiiiii.jjjjjjjjjjj.kkkkkkkkkkk.ccc
  c.fffffffffff.ggggggggggg.hhhhhhhhhhh.iiiiiiiiiii.jjjjjjjjjjj.kkkkkkkkkkk.c
ccc.fffffffffff.ggggggggggg.hhhhhhhhhhh.iiiiiiiiiii.jjjjjjjjjjj.kkkkkkkkkkk.ccc
cGn.nfffffffffn.ngggggggggn.nhhhhhhhhhn.niiiiiiiiin.njjjjjjjjjn.nkkkkkkkkkn.nGc
ccc.nfffffffffn.ngggggggggn.nhhhhhhhhhn.niiiiiiiiin.njjjjjjjjjn.nkkkkkkkkkn.ccc
  c.nfffffffffn.ngggggggggn.nhhhhhhhhhn.niiiiiiiiin.njjjjjjjjjn.nkkkkkkkkkn.c
ccc.nnnnnnnnnnn.nnnnnnnnnnn.nnnnnnnnnnn.nnnnnnnnnnn.nnnnnnnnnnn.nnnnnnnnnnn.ccc
cGn.........................................................................nGc
cccl..................................l<l..................................lccc
  ccncccncccncccncccncccncccnccccnnnnnnnnnnnnnnnccncccncccncccncccncccncccncc
   cGc cGc cGc cGc cGc cGc cGcvl...............lvcGc cGc cGc cGc cGc cGc cGc
   ccc ccc ccc ccc ccc ccc cccvG..M.O.Q.S.q.s..Gvccc ccc ccc ccc ccc ccc ccc
                              vl...............lv
                              vvyyyyyyyyyyyyyyyvv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vyyyyyyyyyyyyyyyv
                               vvyyyyyyyyyyyyyvv
                               vvyyyyyyyyyyyyyvv
                               vvyyyyyyyyyyyyyvv
                               vvvvvvvvvvvvvvvvv
ENDMAP

################################################################################
# Main vaults for 7x7 arenas. Denoted by a water pattern along the walls.
################################################################################

# Three choices between two arenas. The small arena size allows the player to
# still examine every arena before they start.
NAME:   minmay_gauntlet_77_indecision
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen no_pool_fixup
SUBST:  G : GT
: gauntlet_setup(_G, "DFJLNP", "EHKMOQ")
SUBVAULT: a : gauntlet_arena_77_first
SUBVAULT: p : gauntlet_arena_77_first
SUBVAULT: q : gauntlet_arena_77_first
SUBVAULT: r : gauntlet_arena_77_first
: gauntlet_arena_set_tier(2)
SUBVAULT: s : gauntlet_arena_77_second
SUBVAULT: u : gauntlet_arena_77_second
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
             c
            ccc
           ccwcc
          ccwwwcc
 ccccccccccwwwwwcccccccccc
ccwcccwccc.......cccwcccwcc
cwwwcwwwc..A.G.<..cwwwcwwwc
ccw.....D.........F.....wcc
ccc.nnnnnnnnn.nnnnnnnnn.ccc
ccw.aaaaaaaaa.ppppppppp.wcc
cww.aaaaaaaaa.ppppppppp.wwc
ccw.aaaaaaaaa.ppppppppp.wcc
ccc.aaaaaaaaa.ppppppppp.ccc
ccw.aaaaaaaaa.ppppppppp.wcc
cww.naaaaaaan.npppppppn.wwc
ccw.naaaaaaan.npppppppn.wcc
ccc.nnnnnnnnnnnnnnnnnnn.ccc
ccw....nE.........Hn....wcc
cww..G.n.G.G.G.G.G.n.G..wwc
ccw....nJ.........Ln....wcc
ccc.nnnnnnnnn.nnnnnnnnn.ccc
ccw.qqqqqqqqq.rrrrrrrrr.wcc
cww.qqqqqqqqq.rrrrrrrrr.wwc
ccw.qqqqqqqqq.rrrrrrrrr.wcc
ccc.qqqqqqqqq.rrrrrrrrr.ccc
ccw.qqqqqqqqq.rrrrrrrrr.wcc
cww.nqqqqqqqn.nrrrrrrrn.wwc
ccw.nqqqqqqqn.nrrrrrrrn.wcc
ccc.nnnnnnnnnnnnnnnnnnn.ccc
ccw....nK.........Mn....wcc
cww..G.n.G.G.G.G.G.n.G..wwc
ccw....nN.........Pn....wcc
ccc.nnnnnnnnn.nnnnnnnnn.ccc
ccw.sssssssss.uuuuuuuuu.wcc
cww.sssssssss.uuuuuuuuu.wwc
ccw.sssssssss.uuuuuuuuu.wcc
ccc.sssssssssnuuuuuuuuu.ccc
ccw.sssssssss.uuuuuuuuu.wcc
cww.nsssssssn.nuuuuuuun.wwc
ccw.nsssssssn.nuuuuuuun.wcc
ccc.nnnnnnnnn.nnnnnnnnn.ccc
ccw.....................wcc
cwwwcwwwc..<.G.<..cwwwcwwwc
ccwcccwccc.......cccwcccwcc
 ccccccccccnnnnncccccccccc
    v.................v
    v.G.G.G.O.Q.G.G.G.v
    v.................v
    vvyyyyyyyyyyyyyyyvv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vyyyyyyyyyyyyyyyv
     vvyyyyyyyyyyyyyvv
     vvyyyyyyyyyyyyyvv
     vvyyyyyyyyyyyyyvv
     vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   minmay_gauntlet_77_tree
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen no_pool_fixup
KMONS:  ' = plant
SUBST:  ' = '.
: gauntlet_setup(_G, "DFJLNPR", "EHKMOQS")
SUBVAULT: a : gauntlet_arena_77_first
SUBVAULT: p : gauntlet_arena_77_first
SUBVAULT: q : gauntlet_arena_77_first
: gauntlet_arena_set_tier(2)
SUBVAULT: r : gauntlet_arena_77_second
SUBVAULT: s : gauntlet_arena_77_second
SUBVAULT: u : gauntlet_arena_77_second
SUBVAULT: z : gauntlet_arena_77_second
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
                      ccc
                     ccwcc
                    ccwwwcc
                 ccccwwwwwcccc
                 cww...t...wwc
                 cw..A...<..wc
              cccc.....D.....cccc
              cww..nnnnnnnnn..wwc
              cw...aaaaaaaaa...wc
           cccc..t.aaaaaaaaa.t..cccc
           cww..''.aaaaaaaaa.''..wwc
           cw..t''.aaaaaaaaa.''t..wc
        cccc..''''.aaaaaaaaa.''''..cccc
        cww..t'''t.naaaaaaan.t'''t..wwc
        cw.........naaaaaaan.........wc
     cccc...nnnnnnnnnnnnnnnnnnnnnnn...cccc
     cww....nF.........E.........Jn....wwc
     cw..nnnnnnnnnnnnnnnnnnnnnnnnnnnnn..wc
  cccc...ppppppppp...........qqqqqqqqq...cccc
  cww..t.ppppppppp..'cwcwc'..qqqqqqqqq.t..wwc
  cw..''.ppppppppp.''wwwww''.qqqqqqqqq.''..wc
 cc..''t.ppppppppp.t'cwcwc't.qqqqqqqqq.t''..cc
ccw.''''.ppppppppp.''wwwww''.qqqqqqqqq.''''.wcc
cww.'''t.npppppppn..'cwcwc'..nqqqqqqqn.t'''.wwc
ccw.''...npppppppn...'''''...nqqqqqqqn...''.wcc
ccc.'t.nnnnnnnnnnnnn..'t'..nnnnnnnnnnnnn.t'.ccc
ccw....nL....H....Nn.......nP....K....Rn....wcc
cww.nnnnnnnnnnnnnnnnnnn.nnnnnnnnnnnnnnnnnnn.wwc
ccw.rrrrrrrrr.sssssssss.uuuuuuuuu.zzzzzzzzz.wcc
ccc.rrrrrrrrr.sssssssss.uuuuuuuuu.zzzzzzzzz.ccc
ccw.rrrrrrrrr.sssssssss.uuuuuuuuu.zzzzzzzzz.wcc
cww.rrrrrrrrr.sssssssss.uuuuuuuuu.zzzzzzzzz.wwc
ccw.rrrrrrrrr.sssssssss.uuuuuuuuu.zzzzzzzzz.wcc
ccc.nrrrrrrrn.nsssssssn.nuuuuuuun.nzzzzzzzn.ccc
ccw.nrrrrrrrn.nsssssssn.nuuuuuuun.nzzzzzzzn.wcc
cww.nnnnnnnnn.nnnnnnnnn.nnnnnnnnn.nnnnnnnnn.wwc
ccw.........................................wcc
 cc.'t'.'t'.'t'.'t'.........'t'.'t'.'t'.'t'.cc
ccw...............''...<...''...............wcc
cwwwcwwwcwwwcwwwc..t'.....'t..cwwwcwwwcwwwcwwwc
ccwcccwcccwcccwccc...........cccwcccwcccwcccwcc
 ccc ccc ccc ccccccnnnnnnnnncccccc ccc ccc ccc
              v.................v
              v.t.t.M.O.Q.S.t.t.v
              v.................v
              vvyyyyyyyyyyyyyyyvv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vvyyyyyyyyyyyyyvv
               vvyyyyyyyyyyyyyvv
               vvyyyyyyyyyyyyyvv
               vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   gammafunk_gauntlet_77_escape_option
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen no_pool_fixup
: gauntlet_setup(_G, "DFJLN", "EHKMO")
# 1.5 items on-average for tier 1 difficulty
: gauntlet_arena_custom_extra_items("fg**||...... / .")
SUBVAULT: a : gauntlet_arena_77_first
SUBVAULT: p : gauntlet_arena_77_first
# 50% chance for middle arena to be tier 2 difficulty.
 : if crawl.coinflip() then
SUBVAULT: q : gauntlet_arena_77_first
: gauntlet_arena_set_tier(2)
# 2 items for tier 2 difficulty
: gauntlet_arena_custom_extra_items("fg|* / .")
: else
: gauntlet_arena_set_tier(2)
: gauntlet_arena_custom_extra_items("fg|* / .")
SUBVAULT: q : gauntlet_arena_77_second
: end
SUBVAULT: r : gauntlet_arena_77_second
SUBVAULT: s : gauntlet_arena_77_second
SUBVAULT: y : gauntlet_exit
MARKER:   P = lua:transp_loc("escape_option_1")
MARKER:   Q = lua:transp_dest_loc("escape_option_1")
MARKER:   R = lua:transp_loc("escape_option_2")
MARKER:   S = lua:transp_dest_loc("escape_option_2")
MARKER:   Z = lua:transp_loc("escape_option_3")
MARKER:   - = lua:transp_dest_loc("escape_option_3")
MARKER:   u = lua:transp_loc("escape_option_4")
MARKER:   z = lua:transp_dest_loc("escape_option_4")
: gauntlet_appearance(_G)
MAP
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
ccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcccwcc
cwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwcwwwc
ccw...............................................................wcc
ccc...naaaaannn...npppppnnn...nqqqqqnnn...nrrrrrnnn...nsssssnnn...ccc
ccw...naaaaaaan.G.npppppppn.G.nqqqqqqqn.G.nrrrrrrrn.G.nsssssssn...wcc
cwwA..naaaaaaan...npppppppn...nqqqqqqqn...nrrrrrrrn...nsssssssn...wwc
ccw...naaaaaaannnnnpppppppnnnnnqqqqqqqnnnnnrrrrrrrnnnnnsssssssn...wcc
ccc..DnaaaaaaanE.FnpppppppnH.JnqqqqqqqnK.LnrrrrrrrnM.Nnsssssssn...ccc
ccw...naaaaaaan...npppppppn...nqqqqqqqn...nrrrrrrrn...nsssssssn...wcc
cww<..naaaaaaan...npppppppn...nqqqqqqqn...nrrrrrrrn...nsssssssn...wwc
ccw...naaaaaaanGPGnpppppppnGRGnqqqqqqqnGZGnrrrrrrrnGuGnsssssssn...wcc
ccc...naaaaannnnnnnpppppnnnnnnnqqqqqnnnnnnnrrrrrnnnnnnnsssssnnn...ccc
ccw...............................................................wcc
cwwwcwwwcwwwcwwwcwwwcwwwc...GUG..G<G..GUG...cwwwcwwwcwwwcwwwcwwwcwwwc
ccwcccwcccwcccwcccwcccwccc.................cccwcccwcccwcccwcccwcccwcc
cccccccccccccccccccccccccvvnnnnnnnnnnnnnnnvvccccccccccccccccccccccccc
                        vvw...............wvv
                       vvww..GQGSG-GzGOG..wwvv
                        vvw...............wvv
                        vvvyyyyyyyyyyyyyyyvvv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vyyyyyyyyyyyyyyyv
                          vvyyyyyyyyyyyyyvv
                          vvyyyyyyyyyyyyyvv
                          vvyyyyyyyyyyyyyvv
                          vvvvvvvvvvvvvvvvv
ENDMAP

################################################################################
# Main vaults with multiple arena shapes. Denoted by a lava pattern along the
# walls, and no fountains.
################################################################################
NAME:   minmay_gauntlet_mixed_big_or_small
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNP", "EHKMOQ")
SUBVAULT: a : gauntlet_arena_first
SUBVAULT: p : gauntlet_arena_77_first
SUBVAULT: q : gauntlet_arena_first
SUBVAULT: r : gauntlet_arena_77_first
: gauntlet_arena_set_tier(2)
SUBVAULT: s : gauntlet_arena_second
SUBVAULT: u : gauntlet_arena_77_second
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
  ccccccccccccccc
 cclclclclclclclcc
cc...............cc
cl.......D.....<.lc
cc..nnnnnnnnnnn..cc
cl..aaaaaaaaaaa..lc
cc..aaaaaaaaaaa..cccccccccccc
cl..aaaaaaaaaaa..lclclclclclcc
cc..aaaaaaaaaaa.A...........lc
cl..aaaaaaaaaaa......F......cc
cc..aaaaaaaaaaa..nnnnnnnnn..lc
cl..naaaaaaaaan..ppppppppp..cc
cc..naaaaaaaaan..ppppppppp..lc
cl..naaaaaaaaan..ppppppppp..cc
cc..nnnnnnnnnnn..ppppppppp..lc
cl......nEn......ppppppppp..cc
cc......nJn......npppppppn..lc
cl..nnnnnnnnnnn..npppppppn..cc
cc..qqqqqqqqqqq..nnnnnnnnn..lc
cl..qqqqqqqqqqq.....nHn.....cc
cc..qqqqqqqqqqq.....nLn.....lc
cl..qqqqqqqqqqq..nnnnnnnnn..cc
cc..qqqqqqqqqqq..rrrrrrrrr..lc
cl..qqqqqqqqqqq..rrrrrrrrr..cc
cc..nqqqqqqqqqn..rrrrrrrrr..lc
cl..nqqqqqqqqqn..rrrrrrrrr..cc
cc..nqqqqqqqqqn..rrrrrrrrr..lc
cl..nnnnnnnnnnn..nrrrrrrrn..cc
cc......nKn......nrrrrrrrn..lc
cl......nNn......nnnnnnnnn..cc
cc..nnnnnnnnnnn.....nMn.....lc
cl..sssssssssss.....nPn.....cc
cc..sssssssssss..nnnnnnnnn..lc
cl..sssssssssss..uuuuuuuuu..cc
cc..sssssssssss..uuuuuuuuu..lc
cl..sssssssssss..uuuuuuuuu..cc
cc..sssssssssss..uuuuuuuuu..lc
cl..nsssssssssn..uuuuuuuuu..cc
cc..nsssssssssn..nuuuuuuun..lc
cl..nsssssssssn..nuuuuuuun..cc
cc..nnnnnnnnnnn..nnnnnnnnn..lc
cl..............<...........cc
cc..........................lc
 cclclclclclcnnnnnnclclclclccc
  ccccccccccc.O..Q.cccccccccc
       vvvvvv......vvvvv
       v...............v
       v...............v
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vyyyyyyyyyyyyyyyv
       vvyyyyyyyyyyyyyvv
       vvyyyyyyyyyyyyyvv
       vvyyyyyyyyyyyyyvv
       vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   minmay_gauntlet_mixed_oops_all_seconds
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNP", "EHKMOQ")
: gauntlet_arena_set_tier(2)
SUBVAULT: a : gauntlet_arena_77_second
SUBVAULT: p : gauntlet_arena_second
SUBVAULT: q : gauntlet_arena_77_second
SUBVAULT: r : gauntlet_arena_second
SUBVAULT: s : gauntlet_arena_77_second
SUBVAULT: u : gauntlet_arena_second
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
                 ccccccccccccc
  cccccccccccccccclclclclclclcccccccccccccccc
 cclclclclclclclc.............clclclclclclclcc
 cl.................A..G..<.................lc
 cc.G.....G.....G......F......G.....G.....G.cc
 cl.......D.......nnnnnnnnnnn.......J.......lc
 cc...nnnnnnnnn...ppppppppppp...nnnnnnnnn...cc
 cl...aaaaaaaaa...ppppppppppp...qqqqqqqqq...lc
 cc...aaaaaaaaa...ppppppppppp...qqqqqqqqq...cc
 cl...aaaaaaaaa...ppppppppppp...qqqqqqqqq...lc
 cc.G.aaaaaaaaa.G.ppppppppppp.G.qqqqqqqqq.G.cc
 cl...aaaaaaaaa...ppppppppppp...qqqqqqqqq...lc
 cc...naaaaaaan...npppppppppn...nqqqqqqqn...cc
 cl...naaaaaaan...npppppppppn...nqqqqqqqn...lc
 cc...nnnnnnnnn...npppppppppn...nnnnnnnnn...cc
 cl.....n.E.n.....nnnnnnnnnnn.....n.K.n.....lc
 cc.G...n.G.n...G....n.H.n....G...n.G.n...G.cc
cc......n.L.n........n...n........n.P.n......cc
cl...nnnnnnnnnnn.....n.N.n.....nnnnnnnnnnn...lc
cc...rrrrrrrrrrr...nnnnnnnnn...uuuuuuuuuuu...cc
cl...rrrrrrrrrrr...sssssssss...uuuuuuuuuuu...lc
cc...rrrrrrrrrrr...sssssssss...uuuuuuuuuuu...cc
cl...rrrrrrrrrrr...sssssssss...uuuuuuuuuuu...lc
cc.G.rrrrrrrrrrr.G.sssssssss.G.uuuuuuuuuuu.G.cc
cl...rrrrrrrrrrr...sssssssss...uuuuuuuuuuu...lc
cc...nrrrrrrrrrn...nsssssssn...nuuuuuuuuun...cc
cl...nrrrrrrrrrn...nsssssssn...nuuuuuuuuun...lc
cc...nrrrrrrrrrn...nnnnnnnnn...nuuuuuuuuun...cc
cl...nnnnnnnnnnn...............nnnnnnnnnnn...lc
cc...............G.....G.....G...............cc
cl.G......G.........................G......G.lc
cc...............clcnnnnnnnclc...............cc
 cclclclclclclclcccc.......cccclclclclclclclcc
  cccccccccccccccvv..G.G.G..vvccccccccccccccc
                vv...M.O.Q...vv
               vv.............vv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vyyyyyyyyyyyyyyyv
               vvyyyyyyyyyyyyyvv
               vvyyyyyyyyyyyyyvv
               vvyyyyyyyyyyyyyvv
               vvvvvvvvvvvvvvvvv
ENDMAP

NAME:   gammafunk_gauntlet_mixed_choke_point
ORIENT: encompass
TAGS:   no_item_gen no_monster_gen no_trap_gen
: gauntlet_setup(_G, "DFJLNPR", "EHKMOQS")
SUBVAULT: a : gauntlet_arena_77_first
SUBVAULT: p : gauntlet_arena_77_first
SUBVAULT: q : gauntlet_arena_77_first
: if crawl.coinflip() then
:   gauntlet_arena_set_tier(2)
SUBVAULT: r : gauntlet_arena_second
: else
SUBVAULT: r : gauntlet_arena_first
:   gauntlet_arena_set_tier(2)
: end
SUBVAULT: s : gauntlet_arena_77_second
SUBVAULT: u : gauntlet_arena_77_second
SUBVAULT: z : gauntlet_arena_77_second
SUBVAULT: y : gauntlet_exit
: gauntlet_appearance(_G)
MAP
            ccccccccccccc
  ccccccccccclclclclclclccccccccccc
ccclclclclclc...........clclclclclccc
cl.............A..G..<.............lc
cc......D.........F.........J......cc
cl..nnnnnnnnn.nnnnnnnnn.nnnnnnnnn..lc
cc..aaaaaaaaa.ppppppppp.qqqqqqqqq..cc
cl..aaaaaaaaa.ppppppppp.qqqqqqqqq..lc
cc..aaaaaaaaa.ppppppppp.qqqqqqqqq..cc
cl..aaaaaaaaa.ppppppppp.qqqqqqqqq..lc
cc..aaaaaaaaa.ppppppppp.qqqqqqqqq..cc
cl..naaaaaaan.npppppppn.nqqqqqqqn..lc
cc..naaaaaaan.npppppppn.nqqqqqqqn..cc
cl..nnnnnnnnnnnnnnnnnnnnnnnnnnnnn..lc
ccc...n.E.........H.........K.n...ccc
 cl...n...........L...........n...lc
 ccc..nnnnnnnnnnnnnnnnnnnnnnnnn..ccc
  cl.........rrrrrrrrrrr.........lc
  ccc........rrrrrrrrrrr........ccc
    clclclc..rrrrrrrrrrr..clclclc
    ccccccc..rrrrrrrrrrr..ccccccc
         cl..rrrrrrrrrrr..lc
    ccccccc..rrrrrrrrrrr..ccccccc
    clclclc..nrrrrrrrrrn..clclclc
  ccc........nrrrrrrrrrn........ccc
  cl.........nrrrrrrrrrn.........lc
 ccc..nnnnnnnnnnnnnnnnnnnnnnnnn..ccc
 cl...n...........M...........n...lc.
ccc...n.N.........P.........R.n...ccc
cl..nnnnnnnnnnnnnnnnnnnnnnnnnnnnn..lc
cc..sssssssss.uuuuuuuuu.zzzzzzzzz..cc
cl..sssssssss.uuuuuuuuu.zzzzzzzzz..lc
cc..sssssssss.uuuuuuuuu.zzzzzzzzz..cc
cl..sssssssss.uuuuuuuuu.zzzzzzzzz..lc
cc..sssssssss.uuuuuuuuu.zzzzzzzzz..cc
cl..nsssssssn.nuuuuuuun.nzzzzzzzn..lc
cc..nsssssssn.nuuuuuuun.nzzzzzzzn..cc
cl..nnnnnnnnn.nnnnnnnnn.nnnnnnnnn..lc
cc.................................cc
cl..............G.<.G..............lc
ccclclclclclccnnnnnnnnncclclclclclccc
 cccccccccccvv.........vvcccccccccc
           vv...O.Q.S...vv
          vv.............vv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vyyyyyyyyyyyyyyyv
          vvyyyyyyyyyyyyyvv
          vvyyyyyyyyyyyyyvv
          vvyyyyyyyyyyyyyvv
          vvvvvvvvvvvvvvvvv
ENDMAP
