##############################################################################
# elf.des: Special maps for the Elven Halls.
# Content: arrival vaults for Elf:1
#          (mini)vaults particular to the Elven Halls.
#          Elf:5 branch end vaults
##############################################################################

#############################################################
# Lua functions to simplify Elf:5
{{
function elf_setup(e)
  e.lflags("no_tele_control")
  e.tags("no_rotate")
end

function elf_loot_randomisation(e)
  e.kfeat("$ = $")
  e.kfeat("* = *")
  e.kfeat("| = |")
  e.subst("| = | *:2")
  e.subst("$ = $:20 *:4 |:1")
  e.subst("* = * |:3")
end

-- The standard Elf:5 monster set
function elf_monsters(e)
  e.mons("deep elf high priest")
  e.mons("deep elf demonologist")
  e.mons("deep elf annihilator")
  e.mons("deep elf sorcerer")
  e.mons("deep elf death mage")
  e.mons("deep elf blademaster")
  e.mons("deep elf master archer")
end

-- The standard item defense squad
function elf_loot_defenders(e)
  e.kmons("$ = weight:450 nothing / deep elf sorcerer / deep elf annihilator")
  e.kmons("* = weight:300 nothing / deep elf annihilator / deep elf death mage")
  e.kmons("| = weight:600 nothing / deep elf demonologist / deep elf death mage")
end
}}


##############################################################################
##############################################################################
#
# 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 = 2, 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 = 2, walk_dist = 0, spread_rate= 0 }
MAP
xxxxxxxxxxxxx
xxxxxxxxxxxxx
@...........x
@..d.......{x
@...........x
xxxxxxxxxxxxx
xxxxxxxxxxxxx
ENDMAP

NAME:   minmay_elf_arrival_circle
ORIENT: float
PLACE:  Elf:1
TAGS:   patrolling
MONS:   deep elf soldier / deep elf fighter, deep elf mage / deep elf summoner
SUBST:  B : b.
MAP
       xx+xx
    xxxx...xxxx
   xx....2....xx
  xx...........xx
 xx.............xx
 x...BbB...BbB...x
 x...bbb...bbb...x
xx...BbB...BbB...xx
x.................x
+.1......{......1.+
x.................x
xx...BbB...BbB...xx
 x...bbb...bbb...x
 x...BbB...BbB...x
 xx.............xx
  xx...........xx
   xx....2....xx
    xxxx...xxxx
       xx+xx
ENDMAP

NAME:   minmay_elf_arrival_plus
ORIENT: float
PLACE:  Elf:1
TAGS:   patrolling
MONS:   deep elf soldier / deep elf fighter / deep elf mage / \
        deep elf summoner / deep elf priest / deep elf conjurer / nothing w:40
MAP
     x@...@x
     x.....x
     x.1T1.x
     x.....x
    xx.....xx
xxxxxmmm=mmmxxxxx
@....m.....m....@
..1..m.....m..1..
..T..=.({[.=..T..
..1..m.....m..1..
@....m.....m....@
xxxxxmmm=mmmxxxxx
    xx.....xx
     x.....x
     x.1T1.x
     x.....x
     x@...@x
ENDMAP

NAME:   minmay_elf_arrival_summoners
ORIENT: float
PLACE:  Elf:1
TAGS:   patrolling
MONS:   deep elf summoner / deep elf mage / deep elf priest
MAP
  xxxxxxx
  x.....x
  x.({[.x
xxx.....xxx
@1m.....m1@
xxx.....xxx
@1m.....m1@
xxx.....xxx
@1m.....m1@
xxx.....xxx
  x.....x
  x@...@x
ENDMAP


##############################################################################
##############################################################################
#
# Elf minivaults
#
##############################################################################
##############################################################################

# Total weight of minmay's crystal vaults is 30.
NAME:   minmay_elf_crystal_square
DEPTH:  Elf
ORIENT: float
MONS:   deep elf mage / nothing
MAP
+bbbbbbbbbbbbbbb+
b...............b
b.bbbb..bbbbbb..b
b.b1....b..11b..b
b.bb....b..bbb..b
b.b1............b
b.b...bbbbb..b..b
b....bb......b..b
b...bb....1..b..b
b..bb...b....b..b
b..b.1..bb..1b..b
b..b.....bb..b..b
b..b1U.1..b..b..b
b..b.......1.b..b
b..bbbbbbbbbbb..b
b...............b
+bbbbbbbbbbbbbbb+
ENDMAP

NAME:   minmay_elf_crystal_pentagon
DEPTH:  Elf
ORIENT: float
WEIGHT: 8
MONS:   deep elf mage / deep elf summoner / nothing w:25
MAP
   +bbbbbbbbbbb+
   b...........b
   b...........b
  bb...bbbbb...bb
  b1..bb1.1bb..1b
  b...b1.U.1b...b
 bb...bb1.1bb...bb
 b.....bb.bb.....b
 b...............b
bb..bb..1........bb
+...b1....bbb.....+
bb..bbbb...1b...1bb
 bb1..1bb..bb...bb
  bbb...b..b1.bbb
    bb.......bb
     bb.....bb
      bbb.bbb
        b+b
ENDMAP

NAME:   minmay_elf_crystal_hexagon
DEPTH:  Elf:2-
ORIENT: float
WEIGHT: 6
MONS:   deep elf mage / deep elf summoner / deep elf conjurer / nothing w:45
MAP
    +bbbbbbbbb+
    b...1b1...b
   bb...1b1...bb
   b....bbbb...b
  bb...bb.1....bb
  b....b.1......b
 bb....b...bb...bb
bb.....b.1..bb...bb
+.......1.1..bb...+
bb...bb1.U.1bb...bb
 bb...bb1.1bb1..bb
  b...1bb1bb....b
  bb...1bbb....bb
   b..1.1b1....b
   bb.bbbb....bb
    b.........b
    +bbbbbbbbb+
ENDMAP

NAME:   minmay_elf_crystal_heptagon
DEPTH:  Elf:3-
ORIENT: float
WEIGHT: 4
MONS:   deep elf mage / deep elf summoner / deep elf conjurer / \
        deep elf death mage / nothing w:70
MAP
    +bbbbbbb+
   bb.......bb
   b.........b
  bb..bbbbb..bb
 bb...b.1.b...bb
bb...bb1.1bb...bb
+....b1.U.1b.1..+
b.b1.b1.1.1b1bb.b
b.bb1bb1.1bb.1b.b
b1....bb.bb1....b
bb..1.....11b..bb
 b.bb1....bbb..b
 b..b.1b11.....b
 +b1...bbb....b+
  bbb.......bbb
    bbb...bbb
      bb+bb
ENDMAP

NAME:   minmay_elf_crystal_octagon
DEPTH:  Elf:3-
ORIENT: float
WEIGHT: 2
MONS:   deep elf mage / deep elf summoner / deep elf conjurer / \
        deep elf death mage / deep elf sorcerer / nothing w:100
MAP
     +bbbbb+
    bb.....bb
   bb..bb...bb
  bb...1.1...bb
 bb...bbbbb...bb
+b....b111b...1b+
b...bb.1b1.bb...b
b..1b11...11b1b.b
b...b1b.U.b1b.b.b
b.b1b11...11b1b.b
b...bb.1b1.bb...b
+b....b111b....b+
 bb...bbbbb...bb
  bb1..1.1...bb
   bb..b.b..bb
    bb.....bb
     +bbbbb+
ENDMAP

NAME:  minmay_elf_necromancy
DEPTH: Elf
MONS:  elf zombie / necromancer w:1 / nothing
KMONS: 2 = deep elf death mage
KITEM: 2 = randbook disc:necromancy slevels:16
MAP
xxxxxxxxxxx
xxx1..x112x
xxx..1+111x
x.1.1.xxxxx
+......1..x
x..1.1....+
x.Y.....xxx
x11...1xxxx
xxxxxxxxxxx
ENDMAP

NAME:  minmay_elf_sorcery
DEPTH: Elf:2-
MONS:  deep elf summoner / deep elf conjurer / deep elf mage / nothing
KMONS: 2 = deep elf sorcerer w:90 / deep elf annihilator / deep elf demonologist
KITEM: 2 = randbook disc:conjuration disc2:summoning slevels:16
SUBST: x : xxc, m : mmcxb
MAP
...........1............
.mmm.x..x......x..x.mmm.
.mmm...........1....mmm.
.mmm1.x..x....x..x.1mmm.
1mmmm.....1......1.mmmm.
.mmmm1.x..x..x..x..mmmm.
..mmmm..1.........mmmm..
 ..mmmm......1...mmmm.1
  ..mmmmm......mmmmm..
   ...mmxxx++xxxmm...
     1..xx....xx...
      ..x......x..
       .x......x1
       .x......x.
       .x......x.
       .xx2...xx.
       .xxxxxxxx.
       ...1......
ENDMAP

NAME:  minmay_elf_annihilation
DEPTH: Elf:3-
MONS:  deep elf conjurer / nothing
KMONS: 2 = deep elf annihilator / deep elf sorcerer w:2
KITEM: 2 = randbook disc:conjuration slevels:16
SUBST: x : x c:1
MAP
        ...
        .x1
  ...............
  .x.xxxx+xxxx.x.
  ...x....1..x...
  .xxx1x...x.xxx.
  .x....1......x.
  .x.x..b+b..x.x.
...x1..bb.bb1..x...
.x.+...+.2.+...+.x.
...x...bb.bb..1x...
  .x.x1.b+b..x.x.
  .x.......1...x.
  .xxx.x...x.xxx.
  .1.x..1....x..1
  .x.xxxx+xxxx.x.
  ...............
        .x.
        ...
ENDMAP

NAME:  minmay_elf_demonology
DEPTH: Elf:3-
MONS:  deep elf summoner / nothing
KMONS: 2 = deep elf demonologist w:90 / deep elf sorcerer / deep elf high priest
KITEM: 2 = randbook disc:summoning slevels:16
MAP
        ..
       ....
      ......
     ..1xx...
    ...xxxx...
   ....xxxx1.1.
  ...1..xx......
 ..xx.....1..xx1.
..xxxx..xx..xxxx..
..xxxx1x.2x.xxxx..
 ..xx..x..x..xx..
  ..1...xx....1.
   ..xx....xx1.
   .xxxx..xxxx.
   .xxxx1.xxxx.
   ..xx...1xx..
    ..1.......
     ........
      ......
       ....
        ..
ENDMAP

# Dummies give 2 XP and halt autotravel for adjacent players, used for flavour
NAME:   minmay_elf_archery
DEPTH:  Elf:3-
ORIENT: float
MONS:   deep elf soldier; bow | longbow . arrow / \
        deep elf fighter; bow | longbow . arrow / nothing
MONS:   deep elf master archer
MONS:   training dummy tile:mons_training_dummy
MAP
x+xxxxxxxxxxxxxx
x...1..........x
x.1....1......3x
.....1.........x
@2............3x
...1...........x
x1....1.......3x
x...1..........x
x+xxxxxxxxxxxxxx
ENDMAP

NAME:    minmay_elf_blademastery
DEPTH:   Elf:4-
ORIENT:  float
MONS:    deep elf soldier; falchion | long sword | scimitar | sabre / \
         deep elf fighter; falchion | long sword | scimitar | sabre / nothing
MONS:    deep elf blademaster
MONS:    training dummy tile:mons_training_dummy
KITEM:   d = long sword race:elven, long sword race:elven / nothing, \
             long sword race:elven / nothing, long sword race:elven / nothing
KITEM:   e = falchion race:elven, falchion race:elven / nothing, \
             falchion race:elven / nothing, falchion race:elven / nothing
KITEM:   f = scimitar race:elven, scimitar race:elven / nothing, \
             scimitar race:elven / nothing, scimitar race:elven / nothing
KITEM:   g = sabre race:elven, sabre race:elven / nothing, \
             sabre race:elven / nothing, sabre race:elven / nothing
SHUFFLE: defg
MAP
xxxxxxxxxx+xxx
x.1..........+
x3..31.31....x
x............x
x..........2.x
x3.13..3.....x
x1.....1...x+x
x..........xdx
x31.31.3...xex
x.......1..xfx
xxxxxxxxxx+xxx
ENDMAP

# 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:4-5
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 / w:1 ettin
MONS:    orc sorcerer / orc high priest / w:5 ogre mage
MONS:    orc knight / rock troll / 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


##############################################################################
##############################################################################
#
# Elf:5 branch endings
#
##############################################################################
##############################################################################


##############################################################################
## Classical elf_hall
##
NAME:    elf_hall
PLACE:   Elf:5
WEIGHT:  50
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=1., 2=2., 3=3., 4=4., 5=5.
SHUFFLE: 23, 45
: elf_loot_defenders(_G)
SUBST:   v = v .:2
SUBST:   v : xvb
: elf_loot_randomisation(_G)
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)
## A wide and narrow one, with total weight 20.
##
NAME:    elf_hall_gauntlet_wide
PLACE:   Elf:5
ORIENT:  float
TAGS:    no_pool_fixup
: elf_setup(_G)
: elf_monsters(_G)
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 = |
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:5
ORIENT:  float
TAGS:    no_pool_fixup
: elf_setup(_G)
: elf_monsters(_G)
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
MAP
ccccccccccccccccccccccccc
c2ccccccc.......ccccccccc
c.cccc2...5...5...2cccccc
c.cc.................cc6c
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
c6*|*|**|*cc.cc$|$*$|$|.c
c**|*|||||cc.cc|$|$*$*$.c
c||*||***|cc.cc$*$*$*$|.c
c|**|*||7*cc.cc7$|$|$|$2c
cccccccccccclcccccccccccc
ccccccccccclllccccccccccc
cccccccccc..c..cccccccccc
Yyyyyyyyyy.ccc.zzzzzzzzzZ
xxxxxxxxxxNncnNxxxxxxxxxx
ENDMAP

##############################################################################
## minmay's Elf hall
##
NAME:    minmay_elf_hall
PLACE:   Elf:5
ORIENT:  southwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
MAP
xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxcccccxxxxxxxxxc.cxxxxxxxxxcccccxxx
xccc...cccxxxxxccc.cccxxxxxccc...cccx
cc.......cccxccc.....cccxccc.......cc
c3.........ccc.........ccc.........4c
c....6......5...........5......6....c
c3.................................4c
cc......3.........7.........3......cc
xcc...............n...............ccx
xxc5............6nnn6............5cxx
xcc...............n...............ccx
cc.......4........7........4.......cc
c1.................................2c
c....7......5...........5......7....c
c1.........ccc.........ccc.........2c
cc.......cccxccc.....cccxccc.......cc
xccc...cccxxxxxccc.cccxxxxxccc...cccx
xxxcc+ccxxxxxxxxxc.cxxxxxxxxxcc+ccxxx
xxxc$*|cxxxxxxxxxc.cxxxxxxxxxc|*$cxxx
xxxc|*$cxxxxxxxxxc.cxxxxxxxxxc$*|cxxx
xxxcccccxxxxxxxxxc.cxxxxxxxxxcccccxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxcccccxxxccc.cccxxxcccccxxxxxxx
xxxxcccc|$*ccccc6...6ccccc*||ccccxxxx
xxccc*|$*|$$|+....U....+|$$|*$*$cccxx
xcc*$$*|$$|$$ccc7...7ccc|*|$$$||*$ccx
cc$*|*|*|*|cccxcccccccxccc$*$$*$$$|cc
c|*|$$|*ccccxxxxxxxxxxxxxcccc|*$||$*c
cccccccccxxxxxxxxxxxxxxxxxxxccccccccc
ENDMAP

##############################################################################
## minmay's more circular hall
##
NAME:    minmay_elf_hall_circle
PLACE:   Elf:5
ORIENT:  float
: elf_setup(_G)
: elf_monsters(_G)
SHUFFLE: 12345, 67
SUBST:   1=1., 2=2., 3=3., 4=4., 5=5.
: elf_loot_defenders(_G)
SUBST:   v = v .:2
SUBST:   v : xvb
: elf_loot_randomisation(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxcccccccccccxxxxxxxxxxx
xxxxxxxxccc$|$|$|$|$cccxxxxxxxxx
xxxxxxccc***$|$|$|$|$|cccxxxxxxx
xxxxxcc******$|$|$|$|$|$ccxxxxxx
xxxxcc**cc+cc|$|$|$|$|$|$ccxxxxx
xxxcc**cc5..cccc|$|$|$|$|$ccxxxx
xxxc****cc...2.ccccc$|$|$|$cxxxx
xxcc*****ccc......3cccccc$|ccxxx
xxc*****cc6cccc........5cccccxxx
xcccccccc.....ccccc.5......6ccxx
xc2........2......cccccc.....cxx
xc..........4................cxx
xc..3..5.......U..2........5.cxx
xc7..................4....1..cxx
xc.....2...vv.....vv.........cxx
xc..........vvvvvvv..3.......cxx
xc....2.......vvv.........2..cxx
xc.........3...v...7.........cxx
xc2.........5....4....4......cxx
xcc.5....4..................ccxx
xxc....vv6...4.......6vv...2cxxx
xxcc...vvv2......5..2vvv.5.ccxxx
xxxc3..vvvvv2.....2vvvvv..3cxxxx
xxxcc....vvvvv...vvvvv....ccxxxx
xxxxcc3....vvvv1vvvv....3ccxxxxx
xxxxxcc.................ccxxxxxx
xxxxxxccc3...1...1...3cccxxxxxxx
xxxxxxxxccc.........cccxxxxxxxxx
xxxxxxxxxxccccc@cccccxxxxxxxxxxx
ENDMAP

##############################################################################
## minmay
# Before transforms: 32x$, 27x*, 29x|, 4x1, 13x2, 10x3, 6x4, 9x5, 4x6, 2x7
#
NAME:    minmay_elf_hall_hex
PLACE:   Elf:5
WEIGHT:  3
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
: elf_loot_defenders(_G)
SUBST:   v = v .:2
SUBST:   v : xvb
: elf_loot_randomisation(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxcccxxxxxxxxxxcccxxxxxxxxxxcccxxxxxx
xxxxccc*cccxxxxxxccc.cccxxxxxxccc$cccxxxx
xxxcc*****ccxxxxcc.....ccxxxxcc|$|$|ccxxx
xccc**ccc$|cccccc....5..cccccc|$ccc$|cccx
xc***ccccc$|$c.............c$|$ccccc$|$cx
xc*ccccccccc|c.............c|ccccccccc|cx
xc*ccccccccc$c..........2..c$ccccccccc$cx
xc*|ccccccc$|+.....2U......+|$ccccccc||cx
xc*ccccccccc$c.............c$ccccccccc$cx
xc*ccccccccc|c..5.......3..c|ccccccccc|cx
xc***ccccc$|$cccc.......cccc$|$ccccc$|$cx
xccc**ccc$|ccc..cc..4..cc5.ccc|$ccc$|cccx
xxxcc*****cc.....ccc.ccc....2cc|$|$|ccxxx
xxxxccc*ccc....3.....7........ccc$cccxxxx
xxxxxxccc........6..............cccxxxxxx
xxxxxxxc.4.............2.........cxxxxxxx
xxxxxxxc......2..............3...cxxxxxxx
xxxxxxxc..........4.........2....cxxxxxxx
xxxxxxxc...5......v...v..........cxxxxxxx
xxxxxxxc.......3vvv...vvv3...6...cxxxxxxx
xxxxxxxc.......vvvv...vvvv......4cxxxxxxx
xxxxxxxc...3.vvvv.......vvvv3....cxxxxxxx
xxxxxxxc...vvvvv.........vvvvv...cxxxxxxx
xxxxxxxc...vvv.............vvv...cxxxxxxx
xxxxxxxc..........1...12.........cxxxxxxx
xxxxxxcc..6......................ccxxxxxx
xxxxccc...........................cccxxxx
xxxcc.......2...1ccc.ccc1...........ccxxx
xccc............cc.....cc...3...2....cccx
xc...2....4..3ccc.......ccc............cx
xc...........cc...........cc.....5..2..cx
xc.....v.....cc...........cc...4.v.....cx
xc..5.vvv....cc...........cc....vvv....cx
xc.....v.....cc...........cc.....v.5...cx
xc3..7.....5.cc...........cc...........cx
xc...........cc...........cc...2....6..cx
xccc...2...cccccc.......cccccc...5...cccx
xxxcc.....ccxxxxcc.....ccxxxxcc.....ccxxx
xxxxccc.cccxxxxxxccc.cccxxxxxxccc.cccxxxx
xxxxxxcccxxxxxxxxxxc.cxxxxxxxxxxcccxxxxxx
xxxxxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxxxx
ENDMAP

# Before transforms: 26x$, 24x*, 24x|, 5x1, 3x2, 8x3, 4x4, 7x5, 2x6, 2x7
NAME:    minmay_elf_hall_dome
PLACE:   Elf:5
WEIGHT:  3
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
MAP
cccccccccccccccccccccccccccccc
ccccccccccc4....5..ccccccccccc
cccccccc..............cccccccc
cccccc......1....3......cccccc
ccccc...............5....ccccc
cccc....2....bbbb3........cccc
cccc..2.....bbbbbb........cccc
ccc4.......bbbbbbbb........ccc
ccc........bbbbbbbb3..1....ccc
ccc..5.U..2bbbbbbbb...U....ccc
cc.........bbbbbbbb.1.......cc
cc....1.....bbbbbb..........cc
cc.......3..3bbbb.....4.....cc
cc.........................5cc
c5...............5...........c
c.c3..c..5c...1....c...c...c.c
c.cc..cc..cc......cc..cc..cc3c
c.ccc6ccc6ccc....ccc7ccc7ccc.c
c+cccccccccccc..cccccccccccc+c
c$**cc*$cc*$cc..cc$|cc$|cc||$c
c*$*$***$*$**c.4c||$|$|$|||$|c
c**$*$***$*$*c3.c|||$|||$|$||c
cc**cc$*cc$*cc..cc|$cc|$cc|$cc
cccccccccccccc@@cccccccccccccc
ENDMAP

# Before transforms: 32x$, 27x*, 27x|, 4x1, 8x2, 9x3, 2x4, 10x5, 2x6, 2x7
NAME:    minmay_elf_hall_spiked
PLACE:   Elf:5
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
SUBST:   b : bn....
SUBST:   v = v .:2
SUBST:   v : xvb
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxccccxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxcccc*|ccccxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc|$|$**|$cccxxxxxxxxxxxxxx
xxxxxxxxxxxxxcc$|$||*$*$|$*ccxxxxxxxxxxxxx
xxxxxxxxxxxxxc$|$|**$*$|$|$*cxxxxxxxxxxxxx
xccccxxxxxxxxc+cccccccccccc+cxxxxxxxxccccx
xc..cccxxxxccc..............cccxxxxccc2.cx
xc3...cccccc...6...2..........cccccc....cx
xcc.U.5.cc..........2..2.....6..cc...U.ccx
xxc.........4..............3...........cxx
xxcc....2.......U........U....5.......ccxx
xxxc7........3........5............2..cxxx
xxxcc...bb.....vvv.3....vvv.....bb...ccxxx
xxxcc...bb..5...vvvv..vvvv......bb1..ccxxx
xxxc..............vvvvvv..............cxxx
xxcc3.....5.........vv......4....3....ccxx
xxc..........................1.......5.cxx
xcc1....cc............3.........cc7....ccx
xc...1cccccc3....2.c..c.......cccccc....cx
xc5.ccc$*$*ccc....cc..cc...5ccc|*||ccc2.cx
xc+cc*$*$*$$*ccccccc.5ccccccc*|*$|$|$cc+cx
xc*$*$*$*$|$*cxxxxxc3.cxxxxxc*|$|$|$|$|$cx
xcccccc*$*|cccxxxxxc5.cxxxxxccc|$|$ccccccx
xxxxxxccccccxxxxxxxc..cxxxxxxxccccccxxxxxx
xxxxxxxxxxxxxxxxxxxx@@xxxxxxxxxxxxxxxxxxxx
ENDMAP

# Before transforms: 20x$, 31x*, 28x|, 8x1, 4x2, 8x3, 4x4, 8x5, 4x6, 2x7
NAME:    minmay_elf_hall_quartered_circle
PLACE:   Elf:5
WEIGHT:  3
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
MAP
xxxxxxxxxxcccccccccccxxxxxxxxxxx
xxxxxxxxccc*|*|+...1cccxxxxxxxxx
xxxxxxccc*$|*||c.....6cccxxxxxxx
xxxxxcc$*|*|cccc........ccxxxxxx
xxxxcc*|$|ccc*|c....3....ccxxxxx
xxxcc|$*ccc|$*$+......5...ccxxxx
xxcc$||cc*$*|$*c..6........ccxxx
xxc|$$cc*$**cccc............cxxx
xcc$*cc$**ccc1....3...U.....ccxx
xc$||c*|$cc.................2cxx
cc*|cc**cc...5bbb7.......4...ccx
c$|*c|**c..1bbbbbbb..........2cx
c|$cc*|cc..bbbbbbbbb..4.......cx
c*|c|**c..6bbbbbbbbb..........cx
c|*c$$|c..bbbbbbbbbbb..........@
c+ccc+cc6.bbbbbbbbbbb...1..3cccx
c..1......bbbbbbbbbbb......2cxxx
c..........bbbbbbbbb.......ccxxx
c.7..5....4bbbbbbbbb.......cxxxx
c...........bbbbbbb...5...1cxxxx
cc.5.........5bbb..3.......cxxxx
xc........2.............1.ccxxxx
xcc..3..U...........5....ccxxxxx
xxc........4.............cxxxxxx
xxcc.............5......ccxxxxxx
xxxcc.................cccxxxxxxx
xxxxcc......1........ccxxxxxxxxx
xxxxxcc3........3cccccxxxxxxxxxx
xxxxxxccc......cccxxxxxxxxxxxxxx
xxxxxxxxccc3...cxxxxxxxxxxxxxxxx
xxxxxxxxxxcccc.cxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxx
ENDMAP

# The elves have created golems to guard their treasure.
# Before transforms: 39x$, 26x*, 26x|, 6x1, 8x2, 4x3, 10x4, 6x5, 2x6, 2x7, 16x8
NAME:    minmay_elf_hall_golems
PLACE:   Elf:5
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
KMONS:   9 = stone golem
KMONS:   8 = crystal golem
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67, 8b / 9c / 9c / 9c
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
MAP
xxxxxcccccccccccccccccccccccccxxxxx
xxxxxc$*|$$$|*$$*$$*$|$|$|$*$cxxxxx
xxxxcc+cc|*$$*$$$$|$$$|$*$cc+ccxxxx
xxxcc8.8ccccccccccccccccccc8.8ccxxx
xccc8.......4.......6......4..8cccx
xc$+....3.............1......2.+$cx
xc*c8..4.......2..4.....1.....8c*cx
xc|cc5....................2...cc*cx
xc$$cccc......5.......7...5cccc$|cx
xc*|$*|cc..2.......2......cc|*||$cx
xc|*$|$*c.........2.....5.c*$$|**cx
xc*|**|cc.....1...........cc$|*|$cx
xc$*cccc........1....3.....cccc||cx
xc$cc4.....bb1........bb.4....cc*cx
xc|c8.....3bbbbb...3bbbb......8c|cx
xc*+....2....bbbb7bbbb....2....+$cx
xccc8..........bbbbb..........8cccx
xxxcc4.......4...b.....6......ccxxx
xxxxcccc...4..............5ccccxxxx
xxxxxxxcccc.........1...ccccxxxxxxx
xxxxxxxxxxccc5........cccxxxxxxxxxx
xxxxxxxxxxxxccc....4cccxxxxxxxxxxxx
xxxxxxxxxxxxxxccc.cccxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc...ccxxxxxxxxxxxxxx
xxxxxxxxxxxxxxc8...8cxxxxxxxxxxxxxx
xxxxxxxxxxxxxxc8...8cxxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc@cccxxxxxxxxxxxxxx
ENDMAP

# Before transforms: 28x$, 27x*, 29x|, 4x1, 9x2, 8x3, 6x4, 8x5, 2x6, 2x7
NAME:    minmay_elf_hall_x
PLACE:   Elf:5
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
SUBST:   n : nnnb
MAP
xxccccccccccccccccccccx
xcc||*$**cc||$|*$|*|ccx
xc*|*|$|**cc$|$*$||$|cx
xc$$|$*cc+ccc*$|$*$|*cx
xc||$|cc2.54cc*$|$*||cx
xc$*|cc...U..+*$*|*$*cx
xc|$cc.......ccc$*|*$cx
xc*cc3...1..cc4cc$$*$cx
xccc...1...cc3.2cc|*$cx
xcc.......cc.....cc$*cx
cc...n...cc...n...cc|cx
c...nnn..3...nnn..6cccx
cc...n..6.....n...ccxxx
xcc..2....1....2.ccxxxx
xxcc............ccxxxxx
xxxcc4...2..3..ccxxxxxx
xxxxcc........ccxxxxxxx
xxxcc..3..5....ccxxxxxx
xxcc5........1..ccxxxxx
xcc2....4......5.ccxxxx
cc...n2...3...n.2.ccxxx
c7..nnn......nnn..4cxxx
cc...n...5....n...ccxxx
xcc.....c..c4....ccxxxx
xxcc5.3cc.2cc...ccxxxxx
xxxcc3ccc..ccc7ccxxxxxx
xxxxcccxc.5cxcccxxxxxxx
xxxxxxxxc5.cxxxxxxxxxxx
xxxxxxxxx@@xxxxxxxxxxxx
ENDMAP

# Before transforms: 18x$, 23x*, 31x|, 6x1, 8x2, 7x3, 10x4, 11x5, 2x6, 4x7
NAME:    minmay_elf_hall_four_x
PLACE:   Elf:5
ORIENT:  northwest
: elf_setup(_G)
: elf_monsters(_G)
SUBST:   1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77.
SHUFFLE: 12, 34, 67
: elf_loot_defenders(_G)
: elf_loot_randomisation(_G)
MAP
xxxcccccccccccccccccccccccccccccxxxx
xxxc$||*$|$$|*$+c2c+*$|*$$$|*||cxxxx
xxccc|$|*$*|*|cc4..cc*|*|**|$*cccxxx
xcc.cc|*||*|$cc...3.cc*|$|||*cc4ccxx
cc...cc||*||cc.......cc*||$|cc...ccx
c..5..cc*$$cc..6...5..cc*|*cc.....cx
cc.....cc*cc...........cc$cc.7...ccx
xcc7....ccc5.....b.....2ccc.....ccxx
xxcc4....c......bbb.1....c....4ccxxx
xxxcc.3.....4..bbbbb..........ccxxxx
xxxxcc...2......bbb...5...3..ccxxxxx
xxxxxcc..........b..........ccxxxxxx
xxxxcc....5....4.........7...ccxxxxx
xxxcc.2...b.........2...b.....ccxxxx
xxcc.....bbb...........bbb.....ccxxx
xxc..5..bbbbb.3..6.2..bbbbb...1.cxxx
xxcc.....bbb...........bbb...5.ccxxx
xxxcc.1...b..........3..b.....ccxxxx
xxxxcc......7................ccxxxxx
xxxxxcc..........b...4......ccxxxxxx
xxxxcc..4....1..bbb.......5..ccxxxxx
xxxcc..........bbbbb..........ccxxxx
xxcc3....c......bbb......c.....ccxxx
xcc.....ccc......b...2..ccc.1...ccxx
cc.....ccxcc.5.........ccxcc...5.ccx
c..5..ccxxxcc......4..ccxxxcc.....cx
cc...ccxxxxxcc.......ccxxxxxcc4..ccx
xcc1ccxxxxxxxcc.....ccxxxxxxxcc.ccxx
xxcccxxxxxxxxxcc3..ccxxxxxxxxxcccxxx
xxxxxxxxxxxxxxxcc.ccxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxc2cxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx
ENDMAP
