##############################################################################
# elf.des: Special maps for Elf:7, arrival vaults for Elf:1, and (mini)vaults
#          particular to the Elven Halls.
##############################################################################

##############################################################################
# Elf:1 arrival vaults
#
# The concept:
# There are no entry vaults for the Elven Halls. Instead, there is a "border
# check" vault on the other side, in the Elf:1 level. Note that elves and orcs
# are not necessarily at war or have big enmities against each other. It's
# just a border check.
#
# The intention:
# I (Eino here, hi!) lost a lot of characters trying to do the Halls right
# after the Mines until I realized the Halls are significantly harder. A
# welcoming party on the other side will hopefully warn the player about this.
#
# Honour this intention. For instance, put lots of space between the monsters
# and the stairs, so the players have many turns to realize their mistake.
# Note that designing can be a challenge with the eight space LOS. What might
# make the player realize it's better to flee: facing a nasty summon, taking
# a few hits from conjurations.. they might engage melee opponents, at which
# point it's quite difficult to flee. Please keep that in mind. Note also, 
# that a corridor is usually easier for the player than an open space.
#
# This is an instance where an entry (arrival) vault really does benefit from
# having monsters, even a nasty bunch. However, don't go overboard trying to
# make it really hard. And try to make it seem like a plausible border guard.
#
##############################################################################

##############################################################################
# Dummy Elf arrival vault

NAME:   elf_arrival_dummy
TAGS:   dummy
PLACE:  Elf:1
WEIGHT: 50
ORIENT: float
MAP
{
ENDMAP

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

NAME:    elf_arrival_001
PLACE:   Elf:1
ORIENT:  west
TAGS:    patrolling
SHUFFLE: asd/x$=
SHUFFLE: fgh/x$=
SUBST:   a = x, s = x, d = x, f = x, g = x, h = x
MONS:    deep elf soldier
MONS:    deep elf mage / deep elf priest / deep elf summoner w:5
MAP
xxxxxxxxxxxxxxxaaa
xxxxxxxxxxxxxxxasa
xxxxxxxxxxxxxxxxdx
x...xxxxx..1.....@
x.{........G1.G2.x
x...xxxxx..1.....@
xxxxxxxxxxxxxxxxhx
xxxxxxxxxxxxxxxfgf
xxxxxxxxxxxxxxxfff
ENDMAP

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

NAME:    elf_arrival_002
PLACE:   Elf:1
ORIENT:  south
TAGS:    patrolling
MONS:    deep elf soldier, deep elf mage
MAP
xxxxx@xxx@xxx@xxxxx
xxxx...........xxxx
xx....G..2..G....xx
x...1.........1...x
x.G.............G.x
x.................x
x.......G.G.......x
x........[........x
x.....G.....G.....x
xx.1.....{.....1.xx
xxxx...........xxxx
xxxxxxxxxxxxxxxxxxx
ENDMAP

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

NAME:    eino_elf_arrival_customs
ORIENT:  southwest
PLACE:   Elf:1
TAGS:    patrolling
MONS:    deep elf soldier / deep elf mage w:5
MONS:    deep elf summoner / nothing
MAP
xxxxxxxxx
x.+.....x
x.x..x..x
x.m.xxx.x
x.x..x..x
x.m1..1.x
x.x.2x..x
x.m1xxx.x
x.x.1x..x
x{m...2.+
xxxxxxxxx
ENDMAP

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

NAME:    eino_elf_arrival_shootout
PLACE:   Elf:1
ORIENT:  float
TAGS:    patrolling
MONS:    deep elf soldier / deep elf mage w:3 / nothing w:6
MONS:    deep elf mage / deep elf priest w:3 / nothing w:6
MAP
xxxxxxxx@@@xxxxxxxx
xxxx...........xxxx
xx.......2.......xx
x.....1.....1.....x
xxxx.....G.....xxxx
xxxxxxxx...xxxxxxxx
xxx[.....{.....(xxx
xxxxxxxx...xxxxxxxx
xxxx.....G.....xxxx
x.....1.....1.....x
xx.......2.......xx
xxxx...........xxxx
xxxxxxxx@@@xxxxxxxx
ENDMAP

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

NAME:   eino_elf_arrival_sip
PLACE:  Elf:1
ORIENT: south
TAGS:   patrolling
TAGS:   no_monster_gen
KMONS:  Z = deep elf soldier / nothing w:7
KFEAT:  Z = W
MAP
 .........
x..WWWWW..x
xWWWZWZWWWx
xWWZWZWZWWx
xWWWWWWWWWx
x..WWWWW..x
x.........x
x....[....x
xx...{...xx
xxx.....xxx
xxxxxxxxxxx
ENDMAP

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

NAME:   eino_elf_arrival_the_gate
PLACE:  Elf:1
ORIENT: south
TAGS:   patrolling
MONS:   deep elf soldier / deep elf mage w:5
MONS:   deep elf mage / deep elf priest w:3
MAP
x.........x
@.........@
x....2....x
x...1.1...x
x.G..1..G.x
x.........x
xxx+++++xxx
xxx.....xxx
xxx..[..xxx
xxx.....xxx
xxx..{..xxx
xxxx...xxxx
xxxxxxxxxxx
ENDMAP

##############################################################################
# A nice scenic altar

NAME:    eino_elf_arrival_altar
ORIENT:  west
PLACE:   Elf:1
TAGS:    patrolling
SHUFFLE: 1/2
KFEAT:   C = altar_vehumet
MONS:    deep elf soldier, deep elf mage
MONS:    deep elf priest
MAP
xxxxxxxxxxxxxxxxxxxxxxx@@@xxxx
xxxxxxxxxxxxx...xxxxxx.....xxx
xxxxxxxxxxx.22x...xx.........x
xxxxxxxxx...xxxxx.x..........x
x...xxxxx.xxxxxxx.m..........x
x.[.......xxxxxx....1..GmG...@
x....xxxxxxxxxxx..m..C3mbm...@
x.{.......xxxxxx....2..GmG...@
x...xxxxx.xxxxxxx.m..........x
xxxxxxxxx...xxxxx.x..........x
xxxxxxxxxxx.11x...xx.........x
xxxxxxxxxxxxx...xxxxxx.....xxx
xxxxxxxxxxxxxxxxxxxxxxx@@@xxxx
ENDMAP

###########################################################################
# Two arrival vaults by Lemuel, using fog generators.

NAME:   elf_arrival_freeze
PLACE:  Elf:1
ORIENT: float
ITEM:   nothing
MARKER: d = lua:fog_machine { cloud_type = "freezing vapour", \
             pow_min = 10, pow_max = 10, delay = 10, \
             size = 1, walk_dist = 0, spread_rate= 0 }
MAP
xx@@@xx
xx...xx
xx...xx
xx.d.xx
xx...xx
xx...xx
xx...xx
xx...xx
xx...xx
xx...xx
xx...xx
xx.{.xx
xxxxxxx
ENDMAP

NAME:   elf_arrival_flame
PLACE:  Elf:1
ORIENT: float
ITEM:   nothing
MARKER: d = lua:fog_machine { cloud_type = "flame", \
             pow_min = 10, pow_max = 10, delay = 10, \
             size = 1, walk_dist = 0, spread_rate= 0 }
MAP
xx@@@xx
xx...xx
xx...xx
xx.d.xx
xx...xx
xx...xx
xx...xx
xx...xx
xx...xx
xx...xx
xx...xx
xx.{.xx
xxxxxxx
ENDMAP

##############################################################################
# Elf:7 branch endings
##############################################################################

##############################################################################
# elf_hall
#
NAME:    elf_hall
PLACE:   Elf:7
ORIENT:  northwest
TAGS:    no_rotate
LFLAGS:  no_tele_control
MONS:    deep elf high priest, deep elf demonologist, deep elf annihilator
MONS:    deep elf sorcerer, deep elf death mage
MONS:    deep elf blademaster, deep elf master archer
SUBST:   1=1., 2=2., 3=3., 4=4., 5=5.
SHUFFLE: 23, 45
KMONS:   $ = weight:450 nothing / deep elf sorcerer / deep elf annihilator
KMONS:   * = weight:300 nothing / deep elf annihilator / deep elf death mage
KMONS:   | = weight:600 nothing / deep elf demonologist / deep elf death mage
KFEAT:   $ = $
KFEAT:   * = *
KFEAT:   | = |
SUBST:   v = v .:2
SUBST:   v : xvb
SUBST:   | = | *:2
SUBST:   $ = $:20 *:4 |:1
SUBST:   * = * |:3
MARKER:  U = lua:feat_change_change_flags { \
            level_flags="!no_tele_control", final_feat="dry_fountain", \
            group="fountain" \
         }
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxcccccccccccccccccxxxxx
xxxxxxxxxxxxcc*|*|*|**|||||c$ccxxxx
xxxxxxxxxxxcc*$*|*|*|*|||||c$$ccxxx
xxxxxxxxxxcc*$|*$***$$|||||c|$$ccxx
xxxxxxxxxcc*$*|**ccccccccccc$$$$ccx
xxxxxxxxxc*|*$*$ccc..2..2..c+$|$$cx
xxxxxxxxxc$*$*ccc7........7.c$$$$cx
xxxxxxxxxc||**cc...5.5...4.4cc$|$cx
xxxxxxxxxc*$$cc..3.....3..ccccccccx
xxxxxxxxxc$+ccc.....2....cc.....5cx
xxxxxxxxxc$c....5.....5.cc....5..cx
xxxxxxxxxccc......5....cc..2....ccx
xxxxxxxxxxxc....5...2.cc.......ccxx
xxxxxxxxxxcc..1..U.....3.4..4..ccxx
xxxxxxxxxcc.....................ccx
xxxxxxxxxc..2........3........5..cx
xxxxxxxxxc.......2..2....3.......cx
xxxxxxxxxc..2................2..5cx
xxxxxxxxxc......v.........v..2...cx
xxxxxxxxxc..2..vv..1...1..vv.....cx
xxxxxxxxxc2..6vvv....1....vvv64.4cx
xxxxxxxxxc..vvvv...........vvvv..cx
xxxxxxxxxc.vvv.....cc.cc.....vvv.cx
xxxxxxxxxc.v.3...cccc.cccc.3...v.cx
xxxxxxxxxc.3...cccxxc.cxxccc.3.3.cx
xxxxxxxxxc...cccxxxxc.cxxxxccc...cx
xxxxxxxxxc.cccxxxxxxc.cxxxxxxccc.cx
xxxxxxxxxcccxxxxxxxxc.cxxxxxxxxcccx
xxxxxxxxxxxxxxxxxxxxx@xxxxxxxxxxxxx
ENDMAP


##############################################################################
## alternative elf halls: gauntlets (David)

NAME:    elf_hall_gauntlet_wide
PLACE:   Elf:7
TAGS:    no_pool_fixup no_rotate
LFLAGS:  no_tele_control
ORIENT:  float
WEIGHT:  5
MONS:    deep elf high priest, deep elf demonologist
MONS:    deep elf annihilator, deep elf sorcerer
MONS:    deep elf death mage, deep elf blademaster
SHUFFLE: 345
SUBST:   4=4., 2=2., 5=5., 3=3.
KMONS:   $ = weight:115 nothing / deep elf annihilator
KMONS:   * = weight:105 nothing / deep elf death mage
KMONS:   | = weight:290 nothing / deep elf sorcerer
KFEAT:   $ = $
KFEAT:   * = *
KFEAT:   | = |
SUBST:   | = | *:2
SUBST:   * = * |:3
KMONS:   A = deep elf master archer
KFEAT:   A = |
KMONS:   B = deep elf blademaster
KFEAT:   B = |
MARKER:  U = lua:feat_change_change_flags { \
            level_flags="!no_tele_control", final_feat="dry_fountain", \
            group="fountain" \
         }
MAP
cccccccccccccccccccccccccc
c2ccccccc........ccccccccc
c.cccc2...5....5...2cccccc
c.cc..................cccc
c.c....3....45....3....c3c
c.+........U..U........+.c
c.c......2.2..2.2......c.c
c.cc......3....4......cc.c
c.ccc4cccccc..cccccc.cc..c
c2ccc.c.3.ww..ww.4.ccc...c
c.ccc..3..ww..ww..5......c
c$$$ccc...ww..ww...ccccc.c
c$$$ccc.1.ww..ww.5.ccccc.c
c$$$cccccccc2.cccccc1262.c
ccc+cccccccc..cccccccccc.c
cB*|*|**|*cc..cc$|$*$|$|.c
c**|*|||||cc..cc|$|$*$*$.c
c*|*|||**|cc..cc$*$*$*$|.c
c|**|*|||Acc..ccA$|$|$|$2c
ccccccccccccWWcccccccccccc
ccccccccccccWWcccccccccccc
ccccccccccccWWcccccccccccc
xxxxxxxxxxxx@@xxxxxxxxxxxx
ENDMAP

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

NAME:    elf_hall_gauntlet_narrow
PLACE:   Elf:7
TAGS:    no_pool_fixup no_rotate
ORIENT:  float
WEIGHT:  5
MONS:    deep elf high priest, deep elf demonologist
MONS:    deep elf annihilator, deep elf sorcerer
MONS:    deep elf death mage, deep elf master archer
MONS:    deep elf blademaster
SHUFFLE: 345
SUBST:   4=4., 2=2., 5=5., 3=3.
SUBST:   l : lww
SHUFFLE: lww
SHUFFLE: nN / yY / zZ
SUBST:   N=@, n=., Y=c, y=c
SHUFFLE: zZ / nN
SUBST:   N=@, n=., Z=c, z=c
KMONS:   $ = weight:115 nothing / deep elf annihilator
KMONS:   * = weight:105 nothing / deep elf death mage
KMONS:   | = weight:290 nothing / deep elf sorcerer
KFEAT:   $ = $
KFEAT:   * = *
KFEAT:   | = |
SUBST:   | = | *:2 
SUBST:   * = * |:3
KITEM:   6 = |
KITEM:   7 = |
KFEAT:   6 = 6
KFEAT:   7 = 7
LFLAGS:  no_tele_control
MARKER:  U = lua:feat_change_change_flags { \
            level_flags="!no_tele_control", final_feat="dry_fountain", \
            group="fountain" \
         }
MAP
ccccccccccccccccccccccccc
c2ccccccc.......ccccccccc
c.cccc2...5...5...2cccccc
c.cc.................cc7c
c.c....3....45...3....c3c
c.+.........U.........+.c
c.c......2.2.2.2......c.c
c.cc......3...4......cc.c
c.ccc4cccccc.cccccc.cc..c
c2ccc.c.3.ww.ww.4.ccc...c
c.ccc..3..ww.ww..5......c
c$$$ccc...ww.ww...ccccc.c
c$$$ccc.1.ww.ww.5.ccccc.c
c$$$cccccccc.ccccccc122.c
ccc+cccccccc2cccccccccc.c
c7*|*|**|*cc.cc$|$*$|$|.c
c**|*|||||cc.cc|$|$*$*$.c
c||*||***|cc.cc$*$*$*$|.c
c|**|*||6*cc.cc6$|$|$|$2c
cccccccccccclcccccccccccc
ccccccccccclllccccccccccc
cccccccccc..c..cccccccccc
Yyyyyyyyyy.ccc.zzzzzzzzzZ
xxxxxxxxxxNncnNxxxxxxxxxx
ENDMAP


##############################################################################
# (Mini)vaults specific to the Elven Halls
##############################################################################

default-depth: Elf:*

##############################################################################
# Some orcs on a diplomatic mission (Shiori)
# They have brought some gold from their mines as a gift
NAME:    orc_legates
DEPTH:   Elf:1-2
SHUFFLE: AB , 34 , 12
SUBST:   6=4
SUBST:   0= 0 .:9 9:1
SUBST:   5= 5 .:9 4:1
NSUBST:  1= 2:1 / *:.
NSUBST:  2= 2:2 / *:.
KITEM:   A= any good_item race:elven
KITEM:   B= any good_item race:elven
KMONS:   A= patrolling deep elf knight
KMONS:   B= patrolling deep elf high priest / patrolling deep elf demonologist
MONS:    ice dragon, dragon
MONS:    orc knight / orc sorcerer / orc high priest
MONS:    orc warrior / orc wizard / orc priest
MONS:    orc
ITEM:    q:120 gold / q:60 gold / q:30 gold
# being able to blink and become invisible, the deep elves do not need a
# hidden exit in back of their audience chamber.
MAP
cccccxxccccc
c111cGGc222c
cnnncABcnnnc
xG00B..A00Gx
xG00A..B00Gx
xx00x..x00xx
xG00.dd.00Gx
xG...34...Gx
xx.5x66x5.xx
xG.555555.Gx
xG.555555.Gx
xx++x++x++xx
ENDMAP

##############################################################################
# A high-level negotiation between orc and deep elf leaders (Shiori)
NAME:     elf_orc_summit_meeting
DEPTH:    Elf:6-7
SHUFFLE: 12 , 45
NSUBST:  7= 1=7 / *= 7:1 .
NSUBST:  6= 1=6 D:1 / *= 6 .:1
SUBST:   3 = 3 .:1
# the deep elf delegation:
MONS:    deep elf blademaster / deep elf master archer
MONS:    deep elf annihilator / deep elf sorcerer / deep elf death mage
MONS:    deep elf knight / w:1 deep elf high priest / \
         w:1 deep elf demonologist
# the orcish delegation:
MONS:    orc warlord / iron troll / w:1 fire giant / w:1 frost giant / \
         w:1 stone giant
MONS:    orc sorcerer / orc high priest / w:5 ogre-mage
MONS:    orc knight / rock troll / ettin / w:1 orc sorcerer / \
         w:1 orc high priest
# the arbiter(s):
MONS:    great orb of eyes / sphinx
# The orcs might have a unique with them. He or she will likely be outclassed
# by the others in attendance, but perhaps has some special testimony to
# present. None of the uniques really fits in with the deep elves...
KMONS:   D = Ijyb / Blork the Orc / Urug / Erolcha / Snorg
MAP
     xxxx
    xxGGxx
 xxxx3776xxxx
.GxT33..66TxG.
.xxx3x..x6xxx.
@+3+331466+6+@
@+3+332566+6+@
.xxx3x..x.xxx.
.GxT33..66TxG.
 xxxx3776xxxx
    xxGGxx
     xxxx
ENDMAP