################################################################################
# lair.des: All maps relating to the Lair system, including entries and end
#           branch endings for Snake Pit, Slime Pit and Swamp.
################################################################################

################################################################################
# Lair entries
################################################################################
# Dummy Lair entry
NAME:   lair_0_dummy
TAGS:   lair_entry dummy
WEIGHT: 30
ORIENT: float
MAP
O
ENDMAP

################################################################################
# Generic Lair entry
#
NAME:    david_lair_1
TAGS:    lair_entry
MONS:    giant lizard / sheep, giant snail / elephant slug / nothing
MONS:    nothing / yak / weight:2 death yak, plant / fungus / w:20 nothing
SHUFFLE: 12
ORIENT:  float
MAP
xxxx..@..xxxx
xx.........xx
x..42...44..x
..44..1......
@....1O3....@
...4......4..
x...4..2....x
xx.........xx
xxxx..@..xxxx
ENDMAP

################################################################################
# Shrubbed Lair entry
#
NAME:   david_lair_2
TAGS:   lair_entry
MONS:   plant, firedrake
SUBST:  ' = 1.
ORIENT: float
MAP
xxxxxxxxxxxxx
xx111111111xx
x112.'111111x
x11.O.'111''.
x11'..111'..@
x111111''....
x1''11......x
xx.''..'...xx
xxxx..@..xxxx
ENDMAP

################################################################################
# Lair monsters near stair
#
NAME:    david_lair_3
TAGS:    lair_entry
ORIENT:  float
MONS:    w:50 nothing / w:30 giant slug / w:30 giant snail
MONS:    w:100 nothing / w:40 yak / sheep / death yak
MONS:    w:100 nothing / w:20 giant iguana / w:20 giant lizard /\
         gila monster / komodo dragon
MONS:    green rat / grey rat / orange rat / quokka / rat
MONS:    w:90 nothing / w:30 giant frog / blink frog / giant toad /\
         spiny frog
SHUFFLE: 12345
MAP
111...@......
111..........
11........2..
.............
@.....O.....@
...2.........
........2....
.............
....@........
ENDMAP

################################################################################
# Obligatory Oklob Plant Lair Entry Vault,
#
NAME:   oklobed_lair
TAGS:   lair_entry no_monster_gen no_pool_fixup no_rotate
ORIENT: float
: if you.absdepth() >= 12 then
MONS:   plant, oklob plant / w:50 plant
: elseif you.absdepth() >= 10 then
MONS:   plant, oklob plant / w:150 plant
: else
MONS:   fungus, wandering mushroom / w:50 fungus
:end
SUBST:  ? = 2.
MAP
...xxxxxxx...
..x.......x..
....x...x....
...xx???xx...
.x..?111?..x.
.x..?1O1?..x.
.x..?111?..x.
...xx???xx...
....x...x....
..x.......x..
...xxxxxxx...
ENDMAP

################################################################################
# A boring Lair entry vault.
#
NAME: erik_lair_2
TAGS: lair_entry
MONS: generate_awake boring beetle / nothing / rat
MONS: generate_awake boring beetle
# Rats are boring.
ORIENT: float
SUBST: ? = c x $ .
MAP
xxxxxxxxx?xxxx
xxxxxx?xxxx?xx
?xx?xxxxxxx?xx
xxxxxx121xxxxx
?xxxxx1O1xxx?x
xxx??x111xxx?x
xxxxxxxx??xxxx
x?xxxx?xxxxx?x
xxxxxxxxx?xxxx
ENDMAP

################################################################################
# Welcome to Lair Island. We make great pancakes.
#
NAME:   erik_lair_3
TAGS:   lair_entry
ORIENT: float
MONS:   w:60 troll / Snorg
MONS:   w:30 hound / jackal / w:20 war dog
SUBST:  ? = w.
MAP
.@........wwwwww?.....
..?.?.?..wwwwwww.?..?.
..??w..wwwwwwwww?.??..
...??w.wwwwwwww?www?..
...wwww?wwwwwwwwww??..
..wwwwww??w??w2wwww..@
..wwwwww??....wwww???.
....1....2.2O2.wwww...
..?wwwww???2.2www.ww?.
.....wwww2..w.2www....
..wwwwwwwww?.wwww???..
@..wwwwwwwwwwwwwww....
....?ww..ww?www..w....
....?......??.w..???..
...........?...@......
ENDMAP

################################################################################
# Dragon's Lair, for generous values of Dragon
#
NAME:    erik_lair_4
TAGS:    lair_entry no_rotate
ORIENT:  float
MONS:    steam dragon / mottled dragon / swamp drake
MONS:    w:20 giant iguana / komodo dragon / giant gecko / giant lizard / nothing
SUBST:   ? = x.c
SHUFFLE: %*RO
KITEM:   R = w:2 honeycomb / w:1 royal jelly

MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx?xxx?x?xx?x.2xx?xxx?x*?xxx?.2.xxxx
xxxxxxxxxxxxxxx.2.......?xx.x.?xxx?.??xxxx?x.?xxx
xxxxxxxxxxxxx?....xxx...2....??????..????x..%xxxx
xx?xx???xxxxx..xx??xx??..........?...???..??x=.?x
@......xxx.2.xx?xxxxxx?x?x??.......1...2.x.xxx.?x
xxx?xxx...xxxxxxxxxxxx?xxxx.??.2...?......?xxx$xx
xxxxxx?xxx?xxxxxxxxxxxx....xx??...?....??..??xx?x
xxxxxxxxxxxxxxxxxxxxx??.xxx?xx????..???2??.2O?xxx
xxxxxxxxxxxxxxxxxxxxx?R?xxxxxxxxxx.xxx?xxx?xxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

################################################################################
# Orcish Takeover!
#
NAME:   erik_lair_5
TAGS:   lair_entry
ORIENT: float
MONS:   orc
MONS:   warg / giant snail
MONS:   orc warrior / warg
MONS:   orc priest / orc wizard / plant
MAP
xxxx..@..xxxx
xx.........xx
x...2...44..x
...4..1......
@....1O3....@
..........4..
x...4..2....x
xx.........xx
xxxx..@..xxxx
ENDMAP

################################################################################
# Plant/fungus maze (due)
#
NAME:   due_lair_maze_entry_diamond
TAGS:   lair_entry
MONS:   plant / fungus
MONS:   w:100 giant bat / w:100 rat / w:30 green rat / gila monster /\
        yak / nothing
ORIENT: float
SUBST:  . = G:20 B:15 .
SUBST:  1 = 1:60 .
SUBST:  2 = 2:60 1 .
SUBST:  . = .:60 1:20 2:5
COLOUR: G = green
FTILE:  G = floor_grass
SUBST:  G = .
COLOUR: B = brown
FTILE:  B = floor_dirt
SUBST:  B = .
MAP
       ..1.1..
     ...........
   ..1.1.11.11....
 .....11..11211..1.
 .1..1111.11.111...
....1.1111211.111....
.1.11121.111.1.111...
...1111.1211.1.111...
...111.111O.11.1.1...
.1.12....1111211.1.1.
..111111.111.11.1....
 ....1111.1.11.1..1.
 1....1111.11.1..1..
   .1..11111.1....
     ......1....
       ..1....
ENDMAP

################################################################################
# Lair-specific non-entry/ending vaults
################################################################################

################################################################################
# Rats! (Lemuel), special Lair version
# There another, easier version for the shallow dungeon
#
NAME:    RatsNest_Lair
ORIENT:  northeast
TAGS:    uniq_rats_nest
DEPTH:   Lair
WEIGHT:  5
SHUFFLE: 23, 34
MONS:    rat / green rat / nothing, grey rat / orange rat / nothing
MONS:    green rat / orange rat / nothing, orange rat / rat
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx343.xx.xxxxxxxx.334433xxxxxxxxx23...x
xx.222...xxxxxxxx..224422xxxxxx1111...xx
x..111..xxxxxxxxx..111111.xxx.111...xxxx
xx.111..xxxxxxxxxx.11111..x......xxxxxxx
xxxx..xx.x.xxxxxx.xx..........xxxxxxxxxx
xxxxx.xxx.x..x.xx.x.xx....x.xxxxxxxxxxxx
xxxxx...x.xxx.x33xx.xxxx.xxxxxxxxxxxxxxx
xxxxxxx.x.xxxx221x.xxx...xxxxxxxxxxxxxxx
xxxxxxxx.xxxxx111.xxxx.xxxxxxxxxxxxxxxxx
       xx..xxx.x.x.xxx.xxxxxxxxxxxxxxxxx
       xxx..x.xx.x.xx.xxxxxxxxxxxxxxxxxx
       xxxxx..xx.xx.x.xxxxxxxxxxxxxxxxxx
       xxxxxxxx.xxxx.xxxxxxxxxxxxxxxxxxx
             xx.xxxxxxxxxxxxxxxxxxxxxxxx
             xxx.xxxxxxxxxxxxxxxxxxxxxxx
             xxx.xxx                   x
             xxxx.xx                   x
             xxx.xxx                   x
             xxxx.xx                   x
             xxxx@xx                   x
ENDMAP

################################################################################
# A comfortable, reclusive cottage for the summer holidays (Eino)
#
NAME:    pond_and_an_island_with_a_cottage
ORIENT:  float
DEPTH:   Lair:3-7
SUBST:   % = %%%%%$$$**|
MONS:    patrolling necromancer / necromancer
SHUFFLE: 23
MONS:    giant slug zombie / giant snail zombie / \
         elephant slug zombie w:2 / nothing
MONS:    giant lizard zombie / gila monster zombie / \
         komodo dragon zombie w:4 / nothing
MAP
             wwwwwwwww
        wwwwwwwwwwwwwwwww
     wwwwwwwwwwwwwwwwwwwwww
    wwwww..........wwwwwwwww
  wwwwww.xxxxxxxxxx.wwwwwwwww
 wwwwwww.x.3.2+.1.x..wwwwwwww
 wwwwwww.x+xxxx2.3x..wwwwwwwww
wwwwwwww.x.%%%x.32x..wwwwwwwww
wwwwwwww.xxxxxxx+xx..wwwwwwwww
wwwwwwwww...........wwwwwwwwww
 wwwwwwwww....WW....wwwwwwwww
  wwwwwwwwww..WWW..wwwwwwwww
  wwwwwwwwwww..W..wwwwwwww
   wwwwwwwwwww...wwwwwww
    wwwwwwwwwww..wwwww
     wwwwwwwww...www
       wwwwww.@.www
         www
ENDMAP

################################################################################
# Pointless little "vaults" by Lemuel
#
NAME:   strawberry_fields_big
ORIENT: float
WEIGHT: 1
DEPTH:  Lair
SUBST:  .= d .:150 1:8 2:4
MONS:   plant, butterfly
ITEM:   strawberry q:1 / strawberry q:2 / strawberry q:3 w:5 /\
        strawberry q:4 w:3 / strawberry q:5 w:2 / strawberry q:6 w:1
SUBST:  . = G:20 B:15 .
COLOUR: G = green
FTILE:  G = floor_grass
SUBST:  G = .
COLOUR: B = brown
FTILE:  B = floor_dirt
SUBST:  B = .
MAP
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
.....................
ENDMAP

NAME:   strawberry_fields_big_rounded
ORIENT: float
WEIGHT: 1
DEPTH:  Lair
SUBST:  .= d .:140 1:8 2:4
MONS:   plant, butterfly
ITEM:   strawberry q:1 / strawberry q:2 / strawberry q:3 w:5 /\
        strawberry q:4 w:3 / strawberry q:5 w:2 / strawberry q:6 w:1
SUBST:  . = G:20 B:15 .
COLOUR: G = green
FTILE:  G = floor_grass
SUBST:  G = .
COLOUR: B = brown
FTILE:  B = floor_dirt
SUBST:  B = .
MAP
       .......
     ...........
   ...............
 ..................
 ..................
.....................
.....................
.....................
.....................
.....................
.....................
 ...................
 ...................
   ...............
     ...........
       .......
ENDMAP

NAME:   strawberry_fields_round
ORIENT: float
WEIGHT: 4
TAGS:   allow_dup
DEPTH:  Lair
SUBST:  .= d .:50 1:8 2:4
MONS:   plant, butterfly
ITEM:   strawberry q:1 / strawberry q:2 / strawberry q:3 w:5 /\
        strawberry q:4 w:3 / strawberry q:5 w:2 / strawberry q:6 w:1
SUBST:  . = G:20 B:15 .
COLOUR: G = green
FTILE:  G = floor_grass
SUBST:  G = .
COLOUR: B = brown
FTILE:  B = floor_dirt
SUBST:  B = .
MAP
   ....
 ........
..........
..........
..........
..........
 ........
   ....
ENDMAP

NAME:   strawberry_fields_patches_spacepadded
ORIENT: float
WEIGHT: 4
DEPTH:  Lair
SUBST:  .= d .:50 1:8 2:4
MONS:   plant, butterfly
ITEM:   strawberry q:1 / strawberry q:2 / strawberry q:3 w:5 /\
        strawberry q:4 w:3 / strawberry q:5 w:2 / strawberry q:6 w:1
SUBST:  . = G:20 B:15 .
COLOUR: G = green
FTILE:  G = floor_grass
SUBST:  G = .
COLOUR: B = brown
FTILE:  B = floor_dirt
SUBST:  B = .
MAP
   ..
 ......
........
........      ..
 ......     ......
   ..      ........
           ........
     ..     ......
   ......     ..
  ........
  ........
   ......
     ..
ENDMAP

################################################################################
# Plantages
#
NAME:   fruit_tree_single
ORIENT: float
TAGS:   allow_dup
DEPTH:  Lair, Snake
MONS:   plant, fungus
SUBST:  ' = . a 2:1
SUBST:  . = .:90 a:10 2:1
KITEM:  a : apple / apricot / pear / orange / banana / strawberry q:1 w:5 /\
            strawberry q:2 w:5 / lemon
KFEAT:  a = .
WEIGHT: 8
MAP
 .....
.......
..'''..
..'1'..
..'''..
.......
 .....
ENDMAP

NAME:   fruit_tree_lots
ORIENT: float
DEPTH:  Lair, Snake
MONS:   plant, fungus
SUBST:  ' = . 1
SUBST:  . = .:90 a:10 2:1
SUBST:  _ = .:90 a:4
KITEM:  a : apple / apricot / pear / orange / banana / strawberry q:1 w:5 /\
            strawberry q:2 w:5 / lemon
KFEAT:  a = .
WEIGHT: 2
MAP
   ________
  _........_
 _.....'...._
_..'........._
_......'..'.._
_...'........_
_......'....._
 _..'....'.._
  _........_
   ________
ENDMAP

################################################################################
# Ice dragon lair with assorted imp pets
#
NAME:   ice_dragon_lair_bobbens
DEPTH:  Lair:4-8
TAGS:   no_monster_gen
MONS:   ice dragon
MONS:   w:9 white imp/w:1 nothing
MONS:   white imp
ITEM:   any good_item
SUBST:  ! = $:3 d:2
SUBST:  ' = w:15 x:9 c:3 .:1
SUBST:  ? = x:3 c:1
SUBST:  ; = x:2 .:3
SUBST:  _ = %:1 .:3
SUBST:  " = G:1 .:3
MAP
;;..;..;;;.;;.;;;
;;...wwww.;;..ww.;;
;..ww'''ww..wwwww;;;;
;.ww'???wwwwwwwww;....
;.ww'?!??''''''w...ww.
;..ww?!!??????'w..www.
;;..w?!1?...??'w"www.;
;;;.w?!!.2?3.?'wwww.;
;;;ww??w2.?W.''www.;;
;..www'??????'.wwww.;;
..wwww''????ww'''ww.;;
.wwwwwww...www'_'ww.;
..wwwww....www'''w.;;
.;www...V..wwwwww.;;
;;...........www.;;;
;;   ;;;....w..;
ENDMAP

################################################################################
# Dragon lair embedded in wall
#
NAME:   dragon_lair_wall_bobbens
DEPTH:  Lair:4-8
TAGS:   no_monster_gen mini_float
: if you.absdepth() >= 18 then
MONS:   dragon
MONS:   firedrake / w:2 mottled dragon / w:4 nothing
: else
MONS:   mottled dragon / steam dragon
MONS:   firedrake / w:15 nothing
: end
ITEM:   any good_item
SUBST:  ! = $:3 d:2
SUBST:  ' = l:15 x:9 c:3
SUBST:  ? = x:3 c:1
SUBST:  ; = x:3 c:1 .:4
SUBST:  / = l:3 .:1
SUBST:  _ = %:1 .:3
MAP
xxxxx?????????xxxxx
xxx?????..//???xxxx
xx???'.../?/!????xx
x???;.2./???!!???xx
x??;.1../;??!!???xx
x??;.../''???!???xx
x??;'.../'???????xx
x???;/..???????xxxx
x??????;.?????xxxxx
xx?????.;?????xxxxx
xx????./??????xxlxx
xx????.;_????xxxlxx
xx?./'.2///???x?xlx
x?//.././///x??xl/x
.._....//..//?x//..
.././...G./..//....
./........./.......
ENDMAP

################################################################################
#	Hibernating monster in a tunnel, can be pretty dangerous
#
NAME:   hibernation_bobbens
DEPTH:  Lair:4-8
TAGS:   allow_dup no_monster_gen no_item_gen mini_float
MONS:   w:5 death drake / ice dragon / dragon / swamp dragon
MONS:   swamp dragon / hydra / grey snake
MONS:   swamp drake / w:20 spiny frog / w:20 komodo dragon /\
        w:20 gila monster / w:20 black mamba
: if you.absdepth() >= 18 then
SUBST:  M = 1:1 2:9 3:20
: elseif you.absdepth() >= 13 then
SUBST:  M = 2:1 3:4
: else
SUBST:  M = 3
: end
SUBST:  ; = x:3 .:1
MAP
xxxxxxxxxx
xxx....xxx
xx......xx
xx..xx.Mxx
xxx..xxxxx
xxx;.;xxxx
xxx;..xxxx
xxxx..;xxx
xxx....xxx
ENDMAP

################################################################################
# Stranded yaks
#
NAME:   Lemuel_yak_island_a
DEPTH:  Lair
TAGS:   no_pool_fixup uniq_yak_island
WEIGHT: 5
MONS:   yak / w:5 sheep / w:3 death yak
SUBST:  ; : .wW
SUBST:  . : . W:2
MAP
..............
...;;wwww;;...
..;wwwwwwww;..
.;wwww..wwww;.
.;www.1.1www;.
.www.1>1.1www.
.;www.1.1www;.
.;wwww..wwww;.
..;wwwwwwww;..
...;;wwww;;...
..............
ENDMAP

NAME:   Lemuel_yak_island_b
DEPTH:  Swamp, Shoal
TAGS:   no_pool_fixup uniq_yak_island
WEIGHT: 5
MONS:   yak / w:5 sheep / w:3 death yak
SUBST:  ; = wW
SUBST:  . : . W:2
MAP
   ;;wwww;;
  ;wwwwwwww;
 ;wwww..wwww;
 ;www.1.1www;
 www.1>1.1www
 ;www.1.1www;
 ;wwww..wwww;
  ;wwwwwwww;
   ;;wwww;;
ENDMAP

##############################################################################
# Swamp specific non-ending vaults
##############################################################################

# The only Swamp entry... mist leaking from the stairs.
NAME:   swamp_mist
TAGS:   swamp_entry
MARKER: O = lua:fog_machine { \
             pow_min = 8, pow_max = 12, delay = 25, \
             size = 1, walk_dist = 1, spread_rate= 33 }
MAP
O
ENDMAP

##############################################################################
# Snake Pit specific non-ending vaults
##############################################################################

##############################################################################
# Slime Pit specific non-ending vaults
##############################################################################

# Weight balancer
NAME: slime_dummy
TAGS: slime_entry
MAP
O
ENDMAP

# Slime entries featuring an altar to Jiyva
NAME:   slime_altar_1
TAGS:   slime_entry
WEIGHT: 5
KFEAT:  Z = altar_jiyva
MAP
....
.OZ.
....
ENDMAP

NAME:   slime_altar_2
TAGS:   slime_entry
WEIGHT: 2
KFEAT:  Z = altar_jiyva
SUBST:  1 : 111223
NSUBST: 1 = 1 / 1. , 2 = 2 / 2... , 3 = 3 / 3....
MONS:   jelly / ooze / brown ooze / giant amoeba
MONS:   acid blob / slime creature
MONS:   azure jelly
MAP
ccccc
c111c.
cO1_+@
c111c.
ccccc
ENDMAP

##############################################################################
# Branch ends: Slime Pit, Snake Pit, Swamp
# Note that the Shoals usually have a randomised end map; predrawn maps
# (which need not be encompassing) are sometimes used, though.
##############################################################################

################################################################################
# Slime Pit
#
NAME:    slime_pit
PLACE:   Slime:6
ORIENT:  encompass
TAGS:    no_rotate no_dump
MONS:    the royal jelly
MONS:    acid blob
MONS:    great orb of eyes / nothing
SUBST:   ' : ' .:1,  ' : ' x:1,  ' = .x
SUBST:   " : " .:3,  " = .c
NSUBST:  P = O / *|
KMASK:   | = no_monster_gen
KFEAT:   Z = altar_jiyva
SHUFFLE: ([{
LFLAGS:  no_tele_control
{{
    dgn.set_feature_desc_short("stone wall", "rune carved stone wall")
    dgn.set_feature_desc_long("stone wall",
"This strangely slime-free stone wall is carved all over with countless "..
"mystical runes.  One often repeated set of runes seems to refer to "..
"'the royal jelly.'")
}}
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''xxxx''''...''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxx'''..'''''........'''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx'.....................'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx'.......................''x'xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx'..........................'.xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx'............................'xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx'.............................'''xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx'...............................''xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx''..(..............................''xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx'''....................................''xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx'.........................................'xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx''.........................................'xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx'...........................................'xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx''xx'..........................................'xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx'..''................""""."""""...........]....''xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx'x.................."cccc2ccccc".................'xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx'.'................"cc*cc..cc*cc".................''xxxxxxxxxxxxxxx
xxxxxxxxxxxxx'................."cc***cc4c***cc".................xxxxxxxxxxxxxxxx
xxxxxxxxxxxxx'................"cc*|*cc..cc*|*cc"................'xxxxxxxxxxxxxxx
xxxxxxxxxxxx''..............."cc*|P|*c4cc*|P|*cc"...............'xxxxxxxxxxxxxxx
xxxxxxxxxxxx'................"cc**|*cc..cc*|**cc"................'''xxxxxxxxxxxx
xxxxxxxxxxxx'................"ccc**c|cc4c|c**ccc"..................xxxxxxxxxxxxx
xxxxxxxxxxx'................."cccccccc.3cccccccc"..................'xxxxxxxxxxxx
xxxxxxxxxxx'................."c.4.c.4.1..4.c.4.c"..................''xxxxxxxxxxx
xxxxxxxxxxx'..................2.c.4.c..Z.c.4.c.2....................'xxxxxxxxxxx
xxxxxxxxxx'..........)......."cccccccc3.cccccccc"...................'xxxxxxxxxxx
xxxxxxxxxx'.................."ccc**c|cc4c|c**ccc"...................'xxxxxxxxxxx
xxxxxxxxxx'.................."cc**|*cc..cc*|**cc"..................'xxxxxxxxxxxx
xxxxxxxxx'..................."cc*|P|*c4cc*|P|*cc"..................'xxxxxxxxxxxx
xxxxxxxxx''..................."cc*|*cc..cc*|*cc"..................'xxxxxxxxxxxxx
xxxxxxxxxxx'..................."cc***cc4c***cc"...................'xxxxxxxxxxxxx
xxxxxxxxxxxx'..................."cc*cc..cc*cc"....................'xxxxxxxxxxxxx
xxxxxxxxxxxx'...................."cccc2ccccc"....................'xxxxxxxxxxxxxx
xxxxxxxxxxxxx'...................."""".""""".....................'xxxxxxxxxxxxxx
xxxxxxxxxxxxx'...........................................[........'xxxxxxxxxxxxx
xxxxxxxxxxxx''..............................................'''....'xxxxxxxxxxxx
xxxxxxxxxxxx'.............................................''xxx''.'xxxxxxxxxxxxx
xxxxxxxxxxxxx'..........................................''xxxxxxx.xxxxxxxxxxxxxx
xxxxxxxxxxxxx'''.......................................'xxxxxxxxx.xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx'......................................'xxxxxxxxx'xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx'.......................................'xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx''.....................................'xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx'.....................................'xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx''....................................'xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx'...................................'xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx'............................}......'xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx''................................'xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx'.............................''xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx'.............................'xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx'......................''...'xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx'''''........{.......'xx'..xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'''............'xxxx''xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''....'....'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''''x...''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP


################################################################################
# Snake Pit: the hunt
#
NAME:    snake_hunt
PLACE:   Snake:5
TAGS:    no_rotate
ORIENT:  northwest
KFEAT:   Z = weight:2 teleport trap / .
KFEAT:   z = teleport trap / Zot trap / weight:20 .
MONS:    naga / nothing
MONS:    greater naga / nothing
MONS:    guardian naga / nothing
MONS:    naga warrior / nothing
MONS:    naga mage / nothing
MONS:    greater naga / guardian naga
SHUFFLE: 'X / "Y
SHUFFLE: 'X / 'X / AB, "Y / CD
SUBST:   A=x, B=x, C=x, D=x
SUBST:   ' = .:250 1 2 3 4:15 5:5
SUBST:   " = .:250 1 2 3 4:5  5:15
SUBST:   X=xc..++, Y=xc++
SUBST:   T : T U V .:30 b
SUBST:   _:.!, !:!.x, !=x .:2
SHUFFLE: 123, 45, ([<
#
validate {{ return glyphs_connected('{', 'O') }}
#
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx''''''x4O4x""""""xxxxxxxxxxx
xxxxxxxxxxx''''''xxxx664z466xxxx""""""xxxxxx
xxxxxxxx''''xxxxxxxx.5665665.xxxxxxxx""""xxx
xxxxxxx''xxxx''''xxx..45554..xxx""""xxxx""xx
xxxxxx''xxx''''''''xxx.666.xxx""""""""xxx""x
xxxxxx'xxx''''''''''xxxcXcxxx""""""""""xxx"x
xxxxxx''x''''''''''''xx.3.xx""""""""""""x""x
xxxxxxx'Y'''''''''''''45354"""""""""""""Y"xx
xxxxxxxxxx''''''''''xx.....xx""""""""""xxxxx
xxxxxxxxxxx''''''''xxxxx.xxxxx""""""""xxxxxx
xxxxxxxxxxxxx''''xxxxxxx.xxxxxxx""""xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx!.!xxxxxx.....xxxxxx!.!xxxxxxxx
xxxxxxxxxx!....._xx...43335...xx_...!!!xxxxx
xxxxxxxx!......_x.11.4..3..5.22.x_......!xxx
xxxxxxx!...2...x..11.........22..x...1...!xx
xxxxxxx!..2..._x......T...T......x_...1..!xx
xxxxxx!...2...x..2.............1..x...1...!x
xxxxxx!..2....x.........{.........x....1...!
xxxxxx!.......x....T...(.[...T.............@
xxxxxx!..2....x.......ZZZZZ.......x....1...!
xxxxxxx!..2..._x.................x_...1..!xx
xxxxxxx!...2..._xx....T.}.T....xx_...1...!xx
xxxxxxx!........._xx.........xx_.........!xx
xxxxxxxx!.........._xxx...xxx_..........!xxx
xxxxxxxxx!.............x.x.............!xxxx
xxxxxxxxxx!!.........................!!xxxxx
xxxxxxxxxxxx!!!.....3.......3.....!!!xxxxxxx
xxxxxxxxxxxxxxx!!!!!..3...3..!!!!!xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx!!!...!!!xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx!@!xxxxxxxxxxxxxxxxxx
ENDMAP

################################################################################
# Snake Pit: old level
#
NAME:   snake_pit
PLACE:  Snake:5
ORIENT: southwest
TAGS:   no_rotate
MONS:   greater naga / nothing
MONS:   naga
MONS:   naga mage / nothing
MONS:   naga warrior / nothing
SUBST:  c = c .:1
SUBST:  v = v .:1
SUBST:  v = x
MAP
xxxxxxxxxxxxxxxxxxxxxxx..@.xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx.............xxxxxxxx
xxxxxxxxxxxxxx....v.............v..xxxxx
xxxxxxxxxxxx....2.v.............v.2..xxx
xxxxxxxxxxx.....2.v....v.....v..v.33.xxx
xxxxxxxxxxx.....22v.............vv.2..xx
xxxxxxxxxxx.......vv..v........vv.33..xx
xxxxxxxxxx.....x233vv....T...vvv4444..xx
xxxxxxxxxx......4444v.........v.333....x
xxxxxxxxxx......33v4...v.......4x4.....x
xxxxxxxxxx.......334.....v.....4333....x
xxxxxxxxxx..c......3.3..4.4..v.......c.x
xxxxxxxxx...cc.....1...1.1.1...133..cc.x
xxxxxxxxx...cc....3.....4.4.........cc.x
xxxxxxxxx...cc...3...v........2.....cc.x
xxxxxxxxx...cc.........1...1.......cc..x
xxxxxxxxxx..cc.....1.....1.....1..ccc.xx
xxxxxxxxxx...ccc......3333333.....cc..xx
xxxxxxxxxx....cccc....3333333.....cc..xx
xxxxxxxxxx.....cccccc............cc...xx
xxxxxxxxxx........ccccc..O....cccc....xx
xxxxxxxxxxx........cccccccccccccc....xxx
xxxxxxxxxxx..........ccccccccccc.....xxx
xxxxxxxxxxxxx.......................xxxx
xxxxxxxxxxxxxxxx..................xxxxxx
xxxxxxxxxxxxxxxxxxxxx.......xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP


################################################################################
# Swamp:5 standard
#
NAME:    swamp
PLACE:   Swamp:5
ORIENT:  float
TAGS:    no_rotate
MONS:    swamp dragon / nothing
MONS:    swamp drake / nothing
MONS:    hydra / nothing
SHUFFLE: 12
SUBST:   ' = xc
MAP
       @
       2
      2
       .
      2 2
        .
     cc.cc
    cc3.2cc
   'c3.2.3c'
  'c11.3322c''
 'cc...21.1ccc
 'c.13321.1.cc'
'cc31333.113cc'
'cc22113.223cc
 'cc3333113cc'
 'cccc3O3ccc'
  'cccccccc'
   ''ccccc'
     ''cc'
       '
ENDMAP

################################################################################
# Swamp:5 alternative (dp)
#
NAME:    swamp_alternative
PLACE:   Swamp:5
TAGS:    no_pool_fixup no_rotate
ORIENT:  float
MONS:    swamp dragon, swamp drake, hydra, firedrake
ITEM:    nothing
SUBST:   1=1., 2=2., 3=3., 4=4., L=l.
SHUFFLE: Od, 123, lw
SUBST:   l=l .:2, '=.x, "=cx, _=c.
MAP
   @       @
   1'       2'
    1      2'
    .      .
  '2 3. ''3
  '' "c..1""""
    ""c".ccccc""   '3
   "cc_.2LLl.ccc""2.'3
  "cc..33LL..2._c1'   @
 "cc1122lLL...1.1""
 "c....llllll21.2c"
 "cc33l4llllll2.cc"
  "ccll.llll34lcc"
   "cccO.lld3ccc"
    ""cccccccc""
      """"""""
ENDMAP

##################################################################
# Alternative swamp end, by Lemuel
#
NAME:    swamp_pestilence
PLACE:   Swamp:5
TAGS:    no_pool_fixup
ORIENT:  southeast
MONS:    spectral swamp dragon / spectral hydra
MONS:    hydra zombie / swamp dragon zombie
MONS:    spectral swamp drake / swamp drake zombie
MONS:    death drake / plant / w:5 oklob plant
MONS:    insubstantial wisp
MONS:    phantom
SHUFFLE: OX
MARKER:  Y = lua:fog_machine { cloud_type = "foul pestilence", \
             pow_min = 8, pow_max = 12, delay_min = 20, delay_max = 30, \
             size = 1, walk_dist = 1, spread_rate= 33 }
MARKER:  O = lua:fog_machine { cloud_type = "foul pestilence", \
             pow_min = 8, pow_max = 12, delay_min = 20, delay_max = 30, \
             size = 1, walk_dist = 1, spread_rate= 33 }
KMONS:   O = skeletal dragon
KFEAT:   O = O
SUBST:   ? = ? ! w
KMONS:   ? = big fish zombie
KMONS:   ! = swamp worm zombie
KFEAT:   ? = deep_water
KFEAT:   ! = deep_water
SUBST:   X=. , Y:w , 6=66. , 1=13 , .=W... , "=xc , '=.wW
MAP
    ?w......w?w"xx     xx
    w?ww..ww?wwc"xx   xxx
    "wWWwww?w?cc"xxx xxxx
   '""cWw?w?ccc"xxxxxxxxx
   'x"c..wwcccc"""xxxxxxx
   xxxc...ccccccccccc"xxx
  xxx"cc....cccc6666c"xxx
  xxx"cc....cccO6666cc"xx
 xxxxcccc...cc6666665c"xx
  x'"cccc...ccc666666ccxx
   'cc1Xcc...cc6666666cxx
   xc211ccc..cccc5.666c"x
   ccc2.1cc.Y.cccc..6cc"x
   '"c.1.ccc...ccc...cc"x
   'xcc.1.ccc...cc....cxx
   'x"c2.21ccc..ccc5.ccxx
   xxxcc...ccc..c....c"xx
   xxx"cc.1.2c...5.cccxxx
   xxxx"c2......?wcc""xxx
  xxxxxxccc2.wwwwcc""xxxx
  xxxxxxx"cc?w?wcc""xxxxx
  xxxxxxxx"cc4wcc"xxxxxxx
 xxxxxxxxxx"cccc"xxxxxxxx
xxxxxxxxxxxxx""xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP