##############################################################################
# zot.des: The ultimate goal. The Orb must be placed (Z). These maps can and
#          should be serious challenges! Players dying on Zot:5 are okay :)
#
# Content: Zot entry vaults (these are on D:27 and contain the portal)
#          Zot vaults, mini and not so mini
#          Zot hall (on Zot:5), with orb chamber subvaults
#          Vaults that define the floor/wall colours for Zot:1-5
#
##############################################################################


##############################################################################
##############################################################################
#
# Zot entries (D side)
#
##############################################################################
##############################################################################

# Old-style three stairs
#
NAME:   zot_entry_traditional
TAGS:   zot_entry
KFEAT:  O = enter_zot
{{
  hook("post_place", function()
    dgn.place_maps { tag = "zot_entry_secondary", count = 2 }
  end)
}}
MAP
O
ENDMAP

NAME:   zot_entry_traditional_secondary
TAGS:   zot_entry_secondary allow_dup
KFEAT:  O = enter_zot
MAP
O
ENDMAP

###########################
# Something to give the builder a chance if massive vaults keep failing.
#
NAME:   zot_entry_small
TAGS:   zot_entry
KFEAT:  O = enter_zot
COLOUR: c = lightmagenta
COLOUR: .+ = magenta
TILE:   c = WALL_ZOT_MAGENTA
FTILE:  .O+ = FLOOR_HALL
MONS:   killer klown
MAP
xxxxxxxxx
xxxcccxxx
xxcc.ccxx
xcc...ccx
xc..O..+@
xcc...ccx
xxcc.ccxx
xxxcccxxx
xxxxxxxxx
ENDMAP

NAME:   evilmike_zot_entry_round
TAGS:   no_monster_gen zot_entry
SUBST:  = = nnn=
SUBST:  c: c:70 v:20 b:10
SUBST:  v: vcxlmb, n: nnnnvbcx
FTILE:  })]O-4G: FLOOR_MARBLE
SUBST:  - = ^ .:90
KFEAT:  O = enter_zot
SUBST:  4 = 122223
MONS:   patrolling nonbase draconian
MONS:   dragon / ice dragon / storm dragon / shadow dragon / bone dragon / golden dragon
MONS:   patrolling base draconian
MAP
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxcccccccxxxxxxx
xxxcccccc..3..ccccccxx
xxcc......vvv......ccx
xxc.v......3......v.cx
xxc.2v...nn=nn...v..cx
xxc...nnnn---nnnn...cx
xxc...n----G----n..3cx
xcc...n-G--4--G-n...cc
xc.1.nn----v----nn...c
xc.v.n----v-v----n.v.+
xc.v.+-G-v-O-v-G-=.v.+
xc.v.n----v-v----n.v.+
xc.1.nn----v----nn...c
xcc...n-G--4--G-n...cc
xxc...n----G----n..3cx
xxc...nnnn---nnnn...cx
xxc.2v...nn=nn...v..cx
xxc.v.....3.......v.cx
xxcc......vvv......ccx
xxxcccccc.3...ccccccxx
xxxxxxxxcccccccxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP

# Sorry, no wand of wishing in this one
NAME:   evilmike_zot_entry_castle
TAGS:   no_monster_gen zot_entry
NSUBST: O = 1:O / *:n
SUBST:  ^ = ^.
SUBST:  s = ccc=
MARKER: = = lua:restrict_door()
KFEAT:  ^ = alarm trap / blade trap / axe trap / bolt trap
KFEAT:  O = enter_zot
KFEAT:  n = stone_arch
KFEAT:  m = iron_grate
FTILE:  "OnDx = FLOOR_MARBLE
COLOUR: " = magenta
TILE:   x = WALL_ZOT_MAGENTA
COLOUR: x = magenta
FTILE:  .+cm^1234$ = FLOOR_HALL
SUBST:  D = +, "' = .
MONS:   patrolling nonbase draconian
MONS:   dragon / ice dragon / storm dragon / shadow dragon / bone dragon / golden dragon
MONS:   w:20 patrolling base draconian / nothing
MONS:   base draconian ; glaive ego:reaching | halberd ego:reaching
MAP
'''''''''''''''''''''''''''''''''''''''''
'wwwwwwwww'''''''''''''''''''''wwwwwwwww'
'wcccccccwwwwwwwwwwwwwwwwwwwwwwwcccccccw'
'wc1....cccccmccccccmccccccmccccc....1cw'
'wc.""".+....2.............2....+.""".cw'
'wc."O".cccccccccccc+cccccccccccc."O".cw'
'wc.""".s..3.....=4m.m4=......3.s.""".cw'
'wc.....c.3...cccccc.cccccc.""".c.....cw'
'wccccccc3....+...3"""3...+."x"3ccc+cccw'
'wwwwwwccccccccc.""""""".ccc""".c$$$.ccw'
''''''wm.......c.""""""".c4=..3.s$$$2mww'
''''''wc.x3x3x2c"""xxx"""cmcccccccccccw''
''''''WD"""""""D"""xxx"""+.+^^^^^^^^^+w''
''''''wc.x3x3x2c"""xxx"""cmcccccccccccw''
''''''wm.......c.""""""".c4=..3.s$$$2mww'
'wwwwwwccccccccc.""""""".ccc""".c$$$.ccw'
'wccccccc3....+...3"""3...+."x"3ccc+cccw'
'wc.....c.3...cccccc.cccccc.""".c.....cw'
'wc.""".s..3.....=4m.m4=......3.s.""".cw'
'wc."O".cccccccccccc+cccccccccccc."O".cw'
'wc.""".+....2.............2....+.""".cw'
'wc1....cccccmccccccmccccccmccccc....1cw'
'wcccccccwwwwwwwwwwwwwwwwwwwwwwwcccccccw'
'wwwwwwwww'''''''''''''''''''''wwwwwwwww'
'''''''''''''''''''''''''''''''''''''''''
ENDMAP

NAME:   evilmike_zot_entry_gauntlet
TAGS:   no_monster_gen zot_entry
SUBST:  b: v.., v: c.
TILE:   X = WALL_ZOT_MAGENTA
FTILE:  -OD = FLOOR_HALL
COLOUR: X-D = magenta
KPROP:  O- = no_tele_into
SUBST:  - = ., D = +
KFEAT:  O = enter_zot
MARKER: + = lua:restrict_door()
# easy: 1, 2
: if crawl.coinflip() then
MONS:   pale draconian, steam dragon
: else
MONS:   grey draconian, wyvern
: end
# medium: 3, 4
: if crawl.coinflip() then
MONS:   mottled draconian, mottled dragon
: else
MONS:   green draconian, swamp dragon
: end
# hard: 5, 6
: if crawl.coinflip() then
MONS:   red draconian, dragon
: else
MONS:   white draconian, ice dragon
: end
# harder: 7, 8
: if crawl.coinflip() then
MONS:   black draconian
KMONS:  8 = storm dragon
: else
MONS:   purple draconian
KMONS:  8 = quicksilver dragon
: end
# boss: 9, 0
KMONS:  9 = nonbase draconian
KMONS:  0 = golden dragon
MAP
ccc+ccccccccccccccccccc
cvb.bvcccvb.bvccccccccc
cb...bcccb.9.bccccccccc
c.1.1.ccc.0...+.ccccccc
cb222bcccb.9.bc..cccccc
cvb.bvcccvb.bvcc..ccccc
ccc+ccccccc+ccccc..cccc
ccc.ccccccc.cccccc..ccc
ccc+ccccccXDXcccccc+ccc
cvb.bvcccXX-XXcccvb.bvc
cb...bccXX---XXccb.8.bc
c.3.3.ccX--O--Xcc.7.7.c
cb444bccXX---XXccb...bc
cvb.bvcccXX-XXcccvb.bvc
ccc+ccccccXXXcccccc+ccc
ccc..ccccccccccccc..ccc
cccc..ccccccccccc..cccc
ccccc..ccvb.bvcc..ccccc
cccccc..cb.56bc..cccccc
ccccccc.+.....+.ccccccc
cccccccccb.56bccccccccc
cccccccccvb.bvccccccccc
ccccccccccccccccccccccc
ENDMAP

NAME:   evilmike_zot_entry_argh
TAGS:   no_monster_gen patrolling zot_entry
KFEAT:  O = enter_zot
# Grey dracs can escape from the islands if they have water. This is intentional.
SUBST:  G: GXm., m: mmlw
SUBST:  x: xcvX
NSUBST: 2 = 2:2 / *:-
TILE:   X = WALL_ZOT_MAGENTA
COLOUR: X = magenta
COLOUR: . = white
FTILE:  -23O = FLOOR_HALL
SUBST:  - = .
MONS:   draconian zealot / draconian caller
MONS:   dragon / ice dragon / storm dragon / shadow dragon / bone dragon / golden dragon
MONS:   base draconian
KMONS:  O = nonbase draconian
MAP
xxxxxxxxxxxx@xxxxxxxxxxxx
xxx........---........xxx
xxmmm.....G.-.G.....mmmxx
x.m1m.......-.......m1m.x
x.mmm...G...-...G...mmm.x
x..........---..........x
x.....G....---....G.....x
x..........---..........x
x...G.....-----.....G...x
x........XX---XX........x
x.G.....-X3---3X-.....G.x
x-...------2-2------...-x
@-----------O-----------@
x-...------2-2------...-x
x.G.....-X3---3X-.....G.x
x........XX---XX........x
x...G.....-----.....G...x
x..........---..........x
x.....G....---....G.....x
x..........---..........x
x.mmm...G...-...G...mmm.x
x.m1m.......-.......m1m.x
xxmmm.....G.-.G.....mmmxx
xxx........---........xxx
xxxxxxxxxxxx@xxxxxxxxxxxx
ENDMAP

NAME:   evilmike_zot_entry_hall
TAGS:   no_monster_gen patrolling zot_entry
KFEAT:  O = enter_zot
TILE:   X = WALL_ZOT_MAGENTA
COLOUR: X+- = magenta
FTILE:  -O+ = FLOOR_HALL
KPROP:  O- = no_tele_into
SUBST:  - = .
SUBST:  v: ....cnXblw, z:..cnXblw
NSUBST: d = 5:3 / 2:2 / *:.
MONS:   nonbase draconian
MONS:   dragon / ice dragon / storm dragon / shadow dragon / bone dragon / golden dragon
MONS:   base draconian
MAP
                   cccccccccccc
                   cc..1....ccc
cccccccccccccccccccc.........cc
ccccccdccdccdccdccc..2XXXXX...c
ccc..............dc..XX---XX..c
+...vv.zz.vv.zz..cc..X-----X..c
+...vv.zz.vv.zz..+...X--O--+..c
+...vv.zz.vv.zz..cc..X-----X..c
ccc..............dc..XX---XX..c
ccccccdccdccdccdccc..2XXXXX...c
cccccccccccccccccccc.........cc
                  ccc..1....ccc
                  ccccccccccccc
ENDMAP

NAME:   evilmike_zot_entry_basic
TAGS:   no_monster_gen zot_entry
KFEAT:  O = enter_zot
TILE:   x = WALL_ZOT_MAGENTA
COLOUR: x+- = magenta
FTILE:  O-+ = FLOOR_HALL
KPROP:  O- = no_tele_into
SUBST:  - = .
NSUBST: d = 5:3 / 2:2 / 1:1
MONS:   patrolling nonbase draconian
MONS:   dragon / ice dragon / storm dragon / shadow dragon / bone dragon / golden dragon
MONS:   patrolling base draconian
MAP
....d....
.dxx+xxd.
.xx---xx.
.x-----x.
dx--O--xd
.x-----x.
.xx---xx.
.dxxxxxd.
....d....
ENDMAP

NAME:   evilmike_zot_entry_diamond
TAGS:   no_monster_gen zot_entry
KFEAT:  O = enter_zot
KFEAT:  A = stone_arch
TILE:   X = WALL_ZOT_MAGENTA
COLOUR: X+- = magenta
FTILE:  -O+A = FLOOR_HALL
KPROP:  -OxA = no_tele_into
SUBST:  - = .
NSUBST: 2 = 2:2 / *:.
NSUBST: 1 = 2:1 / *:2
MONS:   patrolling nonbase draconian
MONS:   dragon / ice dragon / storm dragon / shadow dragon / bone dragon / golden dragon
MONS:   patrolling base draconian
MAP
      ..1..
     .2X+X2.
    ..XX-XX..
   3.XX---XX.3
  ..XX--O--XX..
 ..XXXX---XXXX..
.2XX-XXX-XXX-XX2.
.XX---XXXXX---XX.
1+--A--XXX--A--+1
.XX---XXXXX---XX.
.2XX-XXX-XXX-XX2.
 ..XXXX---XXXX..
  ..XX--A--XX..
   3.XX---XX.3
    ..XX-XX..
     .2X+X2.
      ..1..
ENDMAP


##############################################################################
##############################################################################
#
# Zot petite vaults
#
##############################################################################
##############################################################################

NAME:   lemuel_baited_zot_trap
DEPTH:  Zot:*
WEIGHT: 20
TAGS:   allow_dup
KFEAT:  * = Zot trap
KITEM:  * = any good_item
MAP
*
ENDMAP

NAME:   lemuel_zot_downstairs
DEPTH:  Zot:1-4
ORIENT: float
TAGS:   allow_dup
SUBST:  . = .^
KFEAT:  ^ = Zot trap
SUBST:  > = }])
MAP
xxxxxxx
@....>x
xxxxxxx
ENDMAP

NAME:   lemuel_zot_upstairs
DEPTH:  Zot:2-5
ORIENT: float
TAGS:   allow_dup
SUBST:  . = .^
KFEAT:  ^ = zot trap
SUBST:  < = ([{
MAP
xxxxxxx
@....<x
xxxxxxx
ENDMAP

###########################
# Halls of Wrath
#
NAME:   lemuel_halls_of_wrath
DEPTH:  Zot:1-4
ORIENT: float
TAGS:   no_rotate
NSUBST: 1 = 6:2 / *=1
SUBST:  1 = 1 .:5
SUBST:  1 = 1 3
MONS:   troll /deep troll / iron troll / ogre / two-headed ogre / w:2 iron devil
MONS:   moth of wrath
MONS:   hill giant / stone giant / fire giant / frost giant / ettin /\
        w:5 efreet / w:3 titan
NSUBST: C = 2:= / *=c
NSUBST: D = 2:= / *=c
MAP
cccccccccccccccccccccccc
n111111111111111111.c..c
n111111111111111111.c.)c
cCCCCCCCCCCCCCCcc++cc..c
n....F....F....F....c..c
+...................+..c
+...................+.}c
+...................+..c
n....F....F....F....c..c
cDDDDDDDDDDDDDDcc++cc..c
n111111111111111111.c.]c
n111111111111111111.c..c
cccccccccccccccccccccccc
ENDMAP

###########################
# Lich library
#
NAME:   lemuel_lich_library
DEPTH:  Zot:1-4
TAGS:   no_monster_gen
MONS:   flying skull, lich, ancient lich, necromancer, vampire mage, mimic
ITEM:   any book, any scroll
SUBST:  w:w?
SUBST:  ?=. 1:1
SUBST:  x:xc
SUBST:  +=+=
SUBST:  d = d 6:1
SUBST:  4 = 4 5:2 .:4
SUBST:  d = d:20 e
MAP
wwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwww
wwxxxxxxxxx+xxxxxxxxxww
wwx....x.......x....xww
wwx....+...F...+....xww
wwx.4..x.......x..4.xww
wwx4.4.xxxx+xxxx.4.4xww
wwx.4.4xxx...xxx4.4.xww
wwx4.4.xxx.2.xxx.4.4xww
wwxxxxxxxxx+xxxxxxx+xww
wwxxxxxxxxx.xxxxxx$$xww
wwxdddxxxxx.x...xx$$xww
wwx.2.xxxxx.+.F.xxxxxww
wwx...xxxxx.x...xxxxxww
wwx...xxxxx.xxxxxxxxxww
wwxx+xxxxxx.xxxdddddxww
wwxx.xxxxxx.xxxd232dxww
wwxx.xxxxxx.xxxd...dxww
wwxx......+...+....dxww
wwxxxxxxxxxmxxxd...dxww
wwxxxxxxxxxFxxxdddddxww
wwxxxxxxxxxxxxxxxxxxxww
wwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwww
ENDMAP

###########################
# Lake of fire
#
NAME:  lemuel_lake_of_fire
DEPTH: Zot:*
SUBST: * =*l
KMONS: * = orb of fire
KFEAT: * = l
SUBST: .=.l
MAP
 ..ll..
..llll..
.llllll.
.ll**ll.
.ll**ll.
.llllll.
..llll..
 ..ll..
ENDMAP

###########################
# Globe of electric golems
#
NAME:  lemuel_golem_globe
DEPTH: Zot:*
TAGS:  no_rotate
KFEAT: T = teleport trap
SUBST: 1 = 1.
MONS:  electric golem
MAP
  mmmm
 mm..mm
mm.11.mm
m.1TT1.m
mm.11.mm
 mm..mm
  mmmm
ENDMAP

###################################################################
# Draconian Sentry Boxes
# There is an 8/27 chance all three downstairs will be here.
#
NAME:   lemuel_draconian_sentries
DEPTH:  Zot:1-4
ORIENT: float
TAGS:   uniq_sentry no_rotate
MONS:   red draconian scorcher / green draconian zealot / yellow draconian caller
SUBST:  }=}}> , )=))> , ]=]]> , 1=123, w:w. , m:mn
MAP
............................
..mmm..................mmm..
..m1m..................m1m..
..mmm...mmmwwwwwwmmm...mmm..
........m1mwwwwwwm1m........
........mmmwwwwwwmmm........
mmm.....www...}..www.....mmm
m1m.....www..)...www.....m1m
mmm.....www...]..www.....mmm
........mmmwwwwwwmmm........
........m1mwwwwwwm1m........
..mmm...mmmwwwwwwmmm...mmm..
..m1m..................m1m..
..mmm..................mmm..
............................
ENDMAP

NAME:   lemuel_draconian_sentries_small
DEPTH:  Zot:1-4
ORIENT: float
TAGS:   uniq_sentry no_rotate
MONS:   red draconian scorcher / green draconian zealot / yellow draconian caller
SUBST:  }=}}> , )=))> , ]=]]>, 1=123 , w:w. , m:mn
MAP
................
................
..mmmwwwwwwmmm..
..m1mwwwwwwm1m..
..mmmwwwwwwmmm..
..www...}..www..
..www..)...www..
..www...]..www..
..mmmwwwwwwmmm..
..m1mwwwwwwm1m..
..mmmwwwwwwmmm..
................
................
ENDMAP

###########################
# Acid trip
# chance for having all downstairs in the vault is 12.5%
#
NAME:   lemuel_acid_trip
DEPTH:  Zot:1-4
ORIENT: float
MONS:   oklob plant, acid blob, jelly, yellow draconian
MONS:   any nonbase yellow draconian
SUBST:  1 = 1:2 .
SUBST:  . = .:20 3:3 2:1
SUBST:  }=}>, )=)>, ]=]>
MAP
       xx++xx
     xxx....xxx
   xxx..4444..xxx
  xx....4554....xx
 xx.....cccc.....xx
 x....ccc..ccc....x
xx...cc......cc...xx
x...cc..1111..cc...x
x...c...1}11...c...x
x.5.c...11]1...c.5.x
x...c...1)11...c...x
x...cc..1111..cc...x
xx...cc......cc...xx
 x....cc....cc....x
 xx....c....c....xx
  xx............xx
   xxx..4444..xxx
     xxx4554xxx
       xxxxxx
ENDMAP

###########################
# Firehouse
#
NAME:   lemuel_firehouse
DEPTH:  Zot:1-4
ORIENT: float
MONS:   orb of fire
MONS:   fire elemental
MONS:   red draconian / weight:2 mottled draconian
MONS:   any nonbase red draconian
MONS:   efreet
SUBST:  1=122, 3=322
SUBST:  4 = 2:20 4:5 3:15 .:20
MAP
          lllll
       lllllllllll
     lllll.....lllll
    llll....x....llll
   llll....xxx....llll
   llll...xx}xx...llll
  llll...xx]2)xx...llll
  llll..xx2...2xx..llll
 llll..xx...5...xx..llll
 llll..x...2.2...x..llll
llll...x.2xx+xx2.x...llll
llll...x.xx444xx.x...llll
llll...x.x44444x.x...llll
 llll..x.x44F44x.x..llll
 llll..x.x44444x.x..llll
  llll.x.xx444xx.x.llll
  llll.x.1x...x1.x.llll
   llllxxxx+++xxxxllll
    llll333...333llll
     lllll.....lllll
       lllllllllll
          ll>ll
ENDMAP

######################################
# Circus (by mu)
# full of klowns, caged animals outside
NAME:   circus_mu
DEPTH:  Zot:1-4
ORIENT: float
TAGS:   no_rotate no_hmirror no_monster_gen
MONS:   killer klown
MONS:   elephant / w:5 dire elephant / w:2 hellephant
MONS:   human ; ankus
SUBST:  1 = 1 2:5 3:20
SUBST:  2 = 2 2 .
SUBST:  % = !:20 ?:5 $ .:20
KITEM:  ! = banana
KITEM:  ? = wand of random effects
KITEM:  $ = potion of water
COLOUR: " : yellow
MAP
     ................
    .....xxxxx.............
   .....xx...xx.............
  .....xx..%..xx.....mmmmm...
 .....xx..%.%..xx....m222m....
.....xx.%..1..%.xx...m+mmm.....
....xx...%.%.%...xx............
...xx..%1"""""1%..xx....mmmmm..
..xx..%.""..."".%..xx...m222m..
.xx..%%.".....".%%..xx..m+mmm..
.x.%1..1"..1.."1..1%.x.........
.xx..%%.".....".%%..xx..3......
..xx..%.""..."".%..xx..........
...xx..%1"""""1%..xx...mmmmm...
....xx...%.%.%...xx....m222m...
.....xx.%..1..%.xx.....m+mmm..
 .....xx...%...xx............
  .....xx.%.%.xx............
   .....xx+++xx.....
    .....xx+xx.....
     .............
ENDMAP

######################################
# This is weird, but in Zot weirdness fits. (nrook)
NAME: nrook_zot_tub
DEPTH: Zot
KFEAT: X = W
MARKER: X = lua:fog_machine { cloud_type="steam", \
            pow_min = 2, pow_max = 10, delay = 25, \
            size = 2, walk_dist = 3, spread_rate= 10 }
KMONS: M = patrolling pale draconian att:neutral / \
      patrolling pale draconian scorcher att:neutral w:2 / \
      patrolling pale draconian caller att:neutral w:2 / \
      patrolling pale draconian shifter att:neutral w:2 / \
      patrolling pale draconian annihilator att:neutral w:2 / \
      patrolling pale draconian knight att:neutral w:2 / \
      patrolling pale draconian monk att:neutral w:2
KFEAT: M = W
KMONS: F = orb of fire att:neutral
KFEAT: F = W
MAP
     @
xxxxx+xxxxx
xWWWWWWWWWx
xWMWWMWWMWx
xWWXWXWXWWx
xWWWmmmWWWx
xWMXmFmXMWx
xWWWmmmWWWx
xWWXWXWXWWx
xWMWWMWWMWx
xWWWWWWWWWx
xxxxxxxxxxx
ENDMAP

###################################################
# Minmay's Elemental castle
# 50% electricity, 25% fire, 25% ice
NAME:    minmay_elemental_castle
ORIENT:  float
DEPTH:   Zot:1-4
TAGS:    no_rotate
: if crawl.coinflip() then
MONS:    titan, storm dragon, electric golem
SUBST:   F = 3
ITEM:    disc of storms, air elemental fan, staff of air, book of the sky
: elseif crawl.coinflip() then
MONS:    frost giant, ice dragon
MARKER:  F = lua:fog_machine { cloud_type = "freezing vapour", \
              pow_min = 5, pow_max = 15, delay = 10, size = 2, \
              walk_dist = 0, spread_rate= 0 }
ITEM:    wand of cold, staff of cold, book of frost, book of ice
SUBST:   w = l
SUBST:   W = l..
: else
MONS:    fire giant, dragon
MARKER:  F = lua:fog_machine { cloud_type = "flame", pow_min = 5, \
              pow_max = 15, delay = 10, size = 2, walk_dist = 0, \
              spread_rate= 0 }
ITEM:    wand of fire, staff of fire, book of flames, book of fire
: end
SUBST:   1 = 112.
SUBST:   2 = 221.
SHUFFLE: defg
MAP
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwW
WwcccccccwwwwwwwwwwwwwwwwwwwwcccccccwW
Wwcd*%.1cwwwwwwwwwwwwwwwwwwwwc1.%*gcwW
Wwc*%...cwwwwwwwwwwwwwwwwwwwwc...%*cwW
Wwc%....ccccccccc++++ccccccccc....%cwW
Wwc................................cwW
Wwc1........2............2........1cwW
Wwcccc..........................ccccwW
Wwwwwc...cccccccccccccccccccc...cwwwwW
Wwwwwc...cccccccccccccccccccc...cwwwwW
Wwwwwc...cccccccccccccccccccc...cwwwwW
Wwwwwc.2.ccc*|*cccccccc*|*ccc.2.cwwwwW
Wwwwwc...ccc...cccccccc...ccc...cwwwwW
Wwwwwc...ccc...cccccccc...ccc...cwwwwW
Wwwwwc...ccc.F.cccccccc.F.ccc...cwwwwW
Wwwwwc...ccc...cccccccc...ccc...cwwwwW
Wwwwwc...ccc...cccccccc...ccc...cwwwwW
Wwwwwc..........................cwwwwW
Wwwwwc..........................cwwwwW
Wwwwwc...ccc..............ccc...cwwwwW
Wwwwwc...ccc....2....2....ccc...cwwwwW
Wwwwwc...ccc..............ccc...cwwwwW
Wwwwwc...ccc..............ccc...cwwwwW
Wwwwwc...ccc..............ccc...cwwwwW
Wwwwwc.2.ccc1............1ccc.2.cwwwwW
Wwwwwc...ccccccccc..ccccccccc...cwwwwW
Wwwwwc...ccccccccc..ccccccccc...cwwwwW
Wwwwwc...ccccccccc..ccccccccc...cwwwwW
Wwcccc..........................ccccwW
Wwc1........2............2........1cwW
Wwc................................cwW
Wwc%....cccccccccccccccccccccc....%cwW
Wwc*%...cwwwwwwwwwwwwwwwwwwwwc...%*cwW
Wwce*%.1cwwwwwwwwwwwwwwwwwwwwc1.%*fcwW
WwcccccccwwwwwwwwwwwwwwwwwwwwcccccccwW
WwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
ENDMAP



##############################################################################
##############################################################################
#
# hall_of_Zot_5
#
##############################################################################
##############################################################################

NAME:       hall_of_Zot
PLACE:      Zot:5
ORIENT:     north
TAGS:       no_dump
LFLAGS:     no_tele_control
LFLOORCOL:  magenta
LROCKCOL:   lightmagenta
LFLOORTILE: floor_tomb
LROCKTILE:  wall_zot_magenta

#traps
SUBST:    C = X:900 c:100 =
KFEAT:    8 = any trap / w:20 floor
SHUFFLE:  ABab / ^^FF / ^^FF / ^^FF
SHUFFLE:  Aa / Bb
KFEAT:    A = any trap / w:30 floor
KFEAT:    B = any trap / w:10 floor
SUBST:    a=F, b=6 F
SUBST:    ^ = ^ .:10
SUBST:    . = .:500 ^

#monsters
MONS:     patrolling Orb Guardian, Killer Klown, electric golem, orb of fire
MONS:     ancient lich, orange crystal statue / silver statue / ice statue
SUBST:    8=8., 8=8., 5=5.
SHUFFLE:  234
SUBST:    ? = .:8 ?
SUBST:    ? : KLM
SUBST:    K = 4:30 5 8 9
SUBST:    L = 4 5:30 8 9
SUBST:    M = 4 5 8:30 9

SUBVAULT: Y : orb_chamber
COLOUR:   c = magenta

MAP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccYYYYYYYYYccxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccYYYYYYYYYYYcccxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
XxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxcYYYYYYYYYYYYYYYcxxxXXXXXXXXXXXXXXXxxxxxxxxxxxxX
XxxxxxxxxxxXXXX.............XXXXcYYYYYYYYYYYYYYYcXXXX.............XXXXxxxxxxxxxX
XxxxxxxxxxXX...................XXXYYYYYYYYYYYYYXXX...................XXxxxxxxxxX
XxxxxxxxxXX..........3...........XXYYYYYYYYYYYXX...........3..........XXxxxxxxxX
XxxxxxxxxX..8.....................XYYYYYYYYYYYX.....................8..XxxxxxxxX
XxxxxxxxxX.......?..?.....8.8.....YYYYYYYYYYYYY.....8.8.....?..?.......XxxxxxxxX
XxxxxxxxxXX.8...........?.........YYYYYYYYYYYYY.........?...........8.XXxxxxxxxX
XxxxxxxxxxXX......................YYYYYYYYYYYYY......................XXxxxxxxxxX
XxxxxxxxxxxXX.....4....2....8.8...YYYYYYYYYYYYY...8.8....2....4.....XXxxxxxxxxxX
XxxxxxxxxxXX....?...?.....?...?...YYYYYYYYYYYYY...?...?.....?....?...XXxxxxxxxxX
XxxxxxxxxXX.......?....?..........YYYYYYYYYYYYY..........?....2.......XXxxxxxxxX
XxxxxxxxxX.....8..........8.8.....YYYYYYYYYYYYY.....8.8..........8.....XxxxxxxxX
XxxxxxxxxX...8....................cYYYYYYYYYYYc....................8...XxxxxxxxX
XxxxxxxxxXX.....8.8.8..8.........ccYYYYYYYYYYYcc........8...8.8.8.....XXxxxxxxxX
XxxxxxxxxxXX...............8...XccYYYYYYYYYYYYYccX...8............8..XXxxxxxxxxX
XxxxxxxxxxxXX........8..8...XXXXcYYYYYYYYYYYYYYYcXXXX...8..8........XXxxxxxxxxxX
XxxxxxxxxxxxXXa111accCCCCCCXXXXXcYYYYYYYYYYYYYYYcXXXXXCCCCCCccb111bXXxxxxxxxxxxX
Xxxxxxxxxxxcc...............AA1.cccYYYYYYYYYYYccc.1BB...............ccxxxxxxxxxX
Xxxxxxxxxxcc...8.8..8.8.....cc1...ccYYYYYYYYYcc...1cc.......8..8.8.8.ccxxxxxxxxX
Xxxxxxxxxcc.8...8......8.8...ccc...ccccccccccc...ccc...8.8.8..8.......ccxxxxxxxX
Xxxxxxxxxc.8..8....8.8........ccc...............ccc.....8....8..8.8....cxxxxxxxX
Xxxxxxxxxc..8..8.8....8.8.8.5.cxcc.............ccxc.5.8.8.8....8.8...8.cxxxxxxxX
Xxxxxxxxxc..8.....8.8.......8.cxxc.............cxxc8........8.....8.8..cxxxxxxxX
Xxxxxxxxxc.8...8......8.8.....cxxcc.1...1...1.ccxxc......8.......8.....cxxxxxxxX
Xxxxxxxxxc8..8...8.8.8.8...8.8cxxxc...........cxxxc8.8..8..8.8.8...8.8.cxxxxxxxX
Xxxxxxxxxc.....8.........8....cxxcc...........ccxxc....8.8.............cxxxxxxxX
Xxxxxxxxxcc...5..8..8.8....8.ccxxc.............cxxcc8.....8....8..5.8.ccxxxxxxxX
Xxxxxxxxxxcc8......8....8.8.ccxxcc.............ccxxcc.8.8....8....8..ccxxxxxxxxX
Xxxxxxxxxxxcc..............ccxxxc...............cxxxcc..............ccxxxxxxxxxX
XXXXXXXXXXXXccccccccccccccccxxxxcccccccc@ccccccccxxxxccccccccccccccccXXXXXXXXXXX
ENDMAP

NAME:   orb_original
TAGS:   orb_chamber
MARKER: Z = lua:item_pickup_change_flags { \
            level_flags="!no_tele_control", item="auto" \
        }
KITEM:  Z = Orb of Zot
KMASK:  Z1! = no_item_gen
SUBST:  ! = ^ .:40
SUBST:  . = .:500 ^
COLOUR: c = magenta
KMONS:  1 = patrolling Orb Guardian
MAP
   ccccccccc
  ccccccccccc
ccccccccccccccc
ccccccccccccccc
 ccccccccccccc
  ccccccccccc
  XXXXXXXXXXX
 XXX...1...XXX
 XX..1...1..XX
 X1...!!!...1X
 ...1.!Z!.1...
 X1...!!!...1X
 XX..1...1..XX
 XXX...1...XXX
  XXXXXXXXXXX
  ccccccccccc
 ccccccccccccc
ccccccccccccccc
ccccccccccccccc
  ccccccccccc
   ccccccccc
ENDMAP

NAME:   orb_monky_inset
TAGS:   orb_chamber
WEIGHT: 5
MARKER: Z = lua:item_pickup_change_flags { \
            level_flags="!no_tele_control", item="auto" \
        }
KITEM:  Z = Orb of Zot
KMASK:  Z1! = no_item_gen
SUBST:  ! = ^ .:40
SUBST:  . = .:500 ^
COLOUR: c = magenta
KMONS:  1 = patrolling Orb Guardian
MAP
   ccccccccc
  ccccccccccc
ccccccccccccccc
ccccccccccccccc
 ccccccccccccc
  ccccccccccc
  XXXXXXXXXXX
 XXXX.....XXXX
 XXX..X1X..XXX
 X....XXX....X
 ..1.XXXXX.1..
 X....XXX....X
 XXX..X1X..XXX
 XXXX.....XXXX
  X.XXX.XXX.X
  X....1....X
 XX..1!!!1..XX
cX....!Z!....Xc
cXX...!!!...XXc
  XXXXXXXXXXX
   ccccccccc
ENDMAP

NAME:   orb_two_ways
TAGS:   orb_chamber
WEIGHT: 5
NSUBST: Y = 1:Z / *:.
MARKER: Z = lua:item_pickup_change_flags { \
            level_flags="!no_tele_control", item="auto" \
        }
KITEM:  Z = Orb of Zot
KMASK:  YZ1! = no_item_gen
SUBST:  ! = ^ .:40
SUBST:  . = .:500 ^
COLOUR: c = magenta
KMONS:  1 = patrolling Orb Guardian
MAP
   ccccccccc
  XXXXXXXXXXX
cXXXXX.....XXXc
cXXX!!!1X...XXc
 XXX!Y!XXX..XX
  XX!!!XX..XX
  XXXXXX..XXX
 XXXX.....XXXX
 XXX..X1X..XXX
 X1...XXX...1X
 ....XXXXX....
 X1...XXX...1X
 XXX..X1X..XXX
 XXXX.....XXXX
  XXXX..XXXXX
  XXX..XX!!!X
 XXX..XXX!Y!XX
cXXX...X1!!!XXc
cXXXX.....XXXXc
  XXXXXXXXXXX
   ccccccccc
ENDMAP

NAME:   orb_monky_within_orb
TAGS:   orb_chamber
WEIGHT: 5
MARKER: Z = lua:item_pickup_change_flags { \
            level_flags="!no_tele_control", item="auto" \
        }
KITEM:  Z = Orb of Zot
KMASK:  Z1! = no_item_gen
SUBST:  ! = ^ .:40
SUBST:  . = .:500 ^
COLOUR: cn = magenta
KMONS:  1 = patrolling Orb Guardian
MAP
   ccccccccc
  ccccccccccc
ccccccccccccccc
ccccccccccccccc
 ccccccccccccc
  ccccccccccc
  XXXXXXXXXXX
 XXX...1...XXX
 XX1.nn.nn.1XX
 X..n1!!!1n..X
 ...n.!Z!.n...
 X..n1!!!1n..X
 XX1.nn.nn.1XX
 XXX...1...XXX
  XXXXXXXXXXX
  ccccccccccc
 ccccccccccccc
ccccccccccccccc
ccccccccccccccc
  ccccccccccc
   ccccccccc
ENDMAP

NAME:   orb_monky_twist
TAGS:   orb_chamber
WEIGHT: 5
MARKER: Z = lua:item_pickup_change_flags { \
            level_flags="!no_tele_control", item="auto" \
        }
KITEM:  Z = Orb of Zot
KMASK:  Z1! = no_item_gen
SUBST:  ! = ^ .:40
SUBST:  . = .:500 ^
COLOUR: cn = magenta
KMONS:  1 = patrolling Orb Guardian
MAP
   ccccccccc
  ccccccccccc
ccccccccccccccc
ccccccccccccccc
 ccccccccccccc
  ccXXXXXXXXc
  XXXnnnnnnXX
 XXXnn...1..XX
 XXnn1...n..1X
 Xnnn.!!!nn..X
 ..nn1!Z!1nn..
 X..nn!!!.nnnX
 X1..n...1nnXX
 XX..1...nnXXX
  XXnnnnnnXXX
  cXXXXXXXXcc
 ccccccccccccc
ccccccccccccccc
ccccccccccccccc
  ccccccccccc
   ccccccccc
ENDMAP

NAME:   mrperson_orb_statues
TAGS:   orb_chamber
MARKER: Z = lua:item_pickup_change_flags { \
            level_flags="!no_tele_control", item="auto" \
        }
KITEM:  Z = Orb of Zot
KMASK:  Z1! = no_item_gen
SUBST:  ! = ^ .:40
SUBST:  . = .:500 ^
COLOUR: G = magenta
SUBST:  G = G:100 F:1
KMONS:  F = orange crystal statue / silver statue / ice statue
KMONS:  1 = patrolling Orb Guardian
MAP
   ccccccccc
  ccccccccccc
ccccccccccccccc
ccccccccccccccc
 ccccccccccccc
  ccccccccccc
  ccccccccccc
 XXXXXXXXXXXXX
 XX.G.G.G.G.XX
 .............
 .1.........1.
 .............
 X.G.X...X.G.X
 XXXXX1.1XXXXX
  XX...G...XX
  XG11XXX11GX
 cXX..!Z!..XXc
ccXXG.!!!.GXXcc
cccXXGXGXGXXccc
  ccXXXXXXXcc
   ccccccccc
ENDMAP


##############################################################################
##############################################################################
#
# For colouring the walls and floors of the first four levels
#
##############################################################################
##############################################################################

NAME:       hall_of_Zot_1
PLACE:      Zot:1
TAGS:       transparent no_dump
ORIENT:     float
LFLOORCOL:  lightgrey
LROCKCOL:   white
LFLOORTILE: floor_tomb
LROCKTILE:  wall_zot_white
MAP
.
ENDMAP

NAME:       hall_of_Zot_2
PLACE:      Zot:2
TAGS:       transparent no_dump
ORIENT:     float
LFLOORCOL:  white
LROCKCOL:   blue
LFLOORTILE: floor_tomb
LROCKTILE:  wall_zot_blue
MAP
.
ENDMAP

NAME:       hall_of_Zot_3
PLACE:      Zot:3
TAGS:       transparent no_dump
ORIENT:     float
LFLOORCOL:  blue
LROCKCOL:   lightblue
LFLOORTILE: floor_tomb
LROCKTILE:  wall_zot_cyan
MAP
.
ENDMAP

NAME:       hall_of_Zot_4
PLACE:      Zot:4
TAGS:       transparent no_dump
ORIENT:     float
LFLOORCOL:  lightblue
LROCKCOL:   magenta
LFLOORTILE: floor_tomb
LROCKTILE:  wall_zot_blue
MAP
.
ENDMAP
