###############################################################################
# float.des: This is the place where floating regular vaults should go. These
#            are defined as vaults with an ORIENT: float line. Vaults with
#            other ORIENT arguments (encompassing, north, northwest etc.)
#            are considered big and reside in large.des. Vaults without any
#            ORIENT line are minivaults and behave somewhat differenty; these
#            are stored in mini.des.
#
#            All maps dealing with the Vault branch system, including Vaults:8
#            reside in vaults.des.
###############################################################################

# Set the default depth for vaults. Be sure to adapt the DEPTH of particulary
# easy or tough vaults. Also, exlucde unthemely branches with !Lair etc.
default-depth: D:12-26

##############################################################################
# Dummy probability balancer vault for depths 1-11.
#
# Why this is necessary: there are very few vaults in the 1-11 range (entries
# are not considered here); to avoid too much repetition of the existing vaults,
# we use this dummy vault.
#
NAME: dummy_balancer
DEPTH: D:1-11
# Vaults tagged "dummy" are no-ops when the dungeon builder is looking for maps
# by depth.
TAGS: dummy
ORIENT: float
WEIGHT: 100
MAP
x
ENDMAP

##############################################################################
# Dummy probability balancer vault for non-dungeon branches.
#
NAME: dummy_balancer_other
DEPTH: 1-, !D
# Vaults tagged "dummy" are no-ops when the dungeon builder is looking for maps
# by depth.
TAGS: dummy
ORIENT: float
WEIGHT: 60
MAP
x
ENDMAP

################################################################################
# Elevator
#
NAME:    lemuel_elevator
DEPTH:   D, Vault, Elf, Crypt, Zot, Tar, Dis, Geh, Coc
ORIENT:  float
TAGS:    allow_dup
SUBST:   m:mn
SHUFFLE: {}, ]}) , [{(
MAP
mmmm
m{}m
mmmm
ENDMAP

##############################################################################
# Cavepeople
#
NAME:   erik_1
ORIENT: float
WEIGHT: 5
TAGS:   no_monster_gen
DEPTH:  D:7-11, Lair
#
SHUFFLE: rR/sS/uU/vV/wW/yY/zZ, uU/nN
SUBST: r=n, R=N, s=n, S=N
SUBST: n=., N=@
SUBST: u=x, v=x, w=x, y=x, z=x
SUBST: U=x, V=x, W=x, Y=x, Z=x
#
SUBST: 1 = 1:20 ., 2=2., 3=23, 4=24
MONS:  jackal/hound, human, Edmund/Jessica/Sigmund, Michael/Ijyb/Psyche
MONS:  sheep/nothing
MAP
         xSxxxxx    xxxxxxxxxxUx
         xxssxxx    xx1xxxxxxuxx
xxxxxxxxxxxxxssx    x111xxxxxuxx
xxxzzzxxxxxxxxxsxxxxxx1xxxxxxuxx
Zzzxzxzxx555xxsxxxxxxx1xxxxxuxxx
xxxxxxxzxx5xxx.xxx..x1xxxxxuxxxx
   xxxxzxx5xxxx......xxxxxuuxxxx
   xxxzxxxx5xx...2...cccxxxux
   xxxzxxxx....2224..+$cxxuxx
   xxxxz.......2ll22.cccxxxux
   xxxxxx......3222.xxxxxxuxxxxxxxxx
   xxxxxxyxxxx2.......xxuuxxvvvvxxxx
   xxxxxyxxxx.......xx..vxvvxxxxvxxx
xxxxxxyyxxxxxrxxxxx.xxwxxvxxxxxxxvvx
xxxyxyxxxxxxrxxrxxxx.xxwxxxxxxxxxvxx
xyyyyxxxxxxxxrrxrrxxxxxxwxxxxxxxvxxx
xyxxxx     xxxxrxrrxxxxxxwwxxxxxxvvxxxxx
Yxxxxx     xxxxxxxrxxxxxxxxwxxxxxxxvvxvV
xxxxxx   xxxxxxxrrx       xxwxxxxxxxxvxx
         xxxrrrrxxx       xxwxxxxxxxxxxx
         xxRxxxxxxx       xxWxx
ENDMAP

##############################################################################
# Old Forge (castamir)
#
NAME:    old_forge
DEPTH:   D:4-12
ORIENT:  float
KITEM:   ? = long sword unrand:singing_sword, damaged short sword, \
             damaged long sword, damaged hand axe
KITEM:   ! = damaged executioner's axe, damaged short sword, \
             damaged long sword, damaged morningstar
KITEM:   + = damaged eveningstar, damaged short sword, \
             damaged long sword, damaged war axe
KITEM:   & = damaged hammer / nothing
MONS:    fungus, plant
MONS:    giant mite, scorpion
MONS:    rat / grey rat, green rat / orange rat
MONS:    giant bat
SHUFFLE: ?!+
SUBST:   c:cccvvb , b=cc.
SUBST:   1 : 1112
SUBST:   1=1. , 2=2.... , 3=3. , 4=4. , 5=5. , 6=6.
SUBST:   ':.x''' , '=.x , .=........17
MAP
              xxxxxxxxxxxxxxxx
             xxx11'cccccccxxxx
            xxx'...c..?v3cx1xx
           xx111.3.c&'.v3c14xx
           x111'.......&&c4xxx
           xxx3.11..1xxccc.44x
             xxx.1.1113x..'xxx
              xxx'&..11.'xxx
               x1xxx'..xxx
               xxx xx'.'xx
                    xxx44xxxx
                      xx'.44xx
                       xxxx.'x
                          xx@x
ENDMAP

##############################################################################
# Sometimes You Just Gotta Run
# Moved deeper and minor changes.
#
NAME:    erik_ogre
DEPTH:   D:6-10
ORIENT:  float
SHUFFLE: 1X / 1X / 2l / 3Y
SUBST:   X=x, Y:x.
MONS:    ogre, iron devil, nothing
ITEM:    potion of heal wounds / potion of speed / potion of berserk rage /\
         scroll of blinking
MAP
        xx@xx
        x...x
        xX.Xx
        xX1Xx
        xX.Xx
        xx.xx
        xx.xx
        xx.xx
        x...x
        x...x
        x...x
        x.d.x
        x...x
        x.d.x
        x...x
     xxxx...xxxx
     x....[....x
xxxxxx..x(.{x..xxxxxx
x...x...x...x...x...x
x....x..xx]xx..x....x
xxxxxx...xxx...xxxxxx
     xxxxx xxxxx
ENDMAP

################################
# Starter slime pit
#
# The slime creature or amoeba may seem too tough for the level where this appears,
# but since they are normal speed with no range attacks, they can be escaped.
#
NAME:   slime_lemuel
DEPTH:  D:6-16, Lair
ORIENT: float
MONS:   w:20 ooze / jelly / fungus
MONS:   slime creature / giant amoeba / oklob plant
MAP
xxxxxxxxxx
xxxx111xxx
xx1111111x
@+1112111x
xx1111111x
xxxx111xxx
xxxxxxxxxx
ENDMAP

##############################################################################
# Beware the mummy's curse (Lemuel)
#
NAME:    MiniTomb
ORIENT:  float
DEPTH:   D:15-26, Crypt
MONS:    large zombie / nothing
MONS:    mummy, patrolling guardian mummy, patrolling greater mummy
MONS:    large zombie
MONS:    mummy / nothing
SHUFFLE: 2F, cbv
SUBST:   F = G:100 F:1
KMONS:   F = orange crystal statue / silver statue / ice statue
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxx3$$xxxxxxxxxxxxx
ccxxxxxxxxccc=cccccccccxxxx
cccxxxxxxxc.....c...1$cxxxc
@Fcx6$.xxxc..1..c...25ccccc
cccccc=cccc.62..c...15c$$$c
@+111.....+.63..=..F11=4||c
cccccc=cccc.62..c...15c$$$c
@Fcx6$.xxxc..1..c...25ccccc
cccxxxxxxxc.....c...1$cxxxc
ccxxxxxxxxccc=cccccccccxxxx
xxxxxxxxxxx3$$xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

####################################
# An old-fashioned vault, by Lemuel
#
NAME: traditional_vault_lemuel
DEPTH: D:12-27, Vault
ORIENT: float
SUBST: 9 = 9 0 8:2
SUBST: 0 = 0 .
KFEAT: $ = ^
KITEM: $ = gold
MAP
........................
wwwwwwwwwwwwwwwwwwwwwwww
wcccccccccc==ccccccccccw
wc$..................$cw
wc.........99.........cw
wc..cccccccccccccccc..cw
wc0.c$....9999....$c.0cw
wc..c.....9999.....c..cw
wc..c..cccc++cccc..c..cw
wc..c..c$......$c..c..cw
wc..c..c...99...c..c..cw
wc..c..c..cccc..c..c..cw
wc00c..c..c||c..c..c00cw
wc00c..c..c||c..c..c00cw
wc..c..c..c++c..c..c..cw
wc..c..c..9889..c..c..cw
wc..c..c$.9889.$c..c..cw
wc..c..cccccccccc..c..cw
wc..c......99......c..cw
wc0.c$............$c.0cw
wc..ccccccc++ccccccc..cw
wc.........00.........cw
wc$........00........$cw
wccccccccccccccccccccccw
wwwwwwwwwwwwwwwwwwwwwwww
........................
ENDMAP

#############################################################################
# Anthole (zaba)
# Intentionally used ORIENT: float in order to enforce rooms+corridors.
#
NAME:   zaba_anthole
ORIENT: float
TAGS:   allow_dup
DEPTH:  D:3-9, Lair
MONS:   giant ant / nothing w:5
MAP
   @
 xx+xx
xx...xx
x.111.x
x.111.x
xx...xx
 xx+xx
   @
ENDMAP

#############################################################################
# Insect pit (Lemuel)
#
NAME:   insect_pit
TAGS:   no_rotate
ORIENT: float
DEPTH:  D:5-12, Elf, Vault
SUBST:  1 = 1:70 2:60 3:25
MONS:   giant beetle w:20 / giant cockroach w:30 / butterfly w:20
MONS:   bumblebee / giant centipede / giant mite w:30 / giant mosquito
MONS:   giant blowfly / scorpion / redback w:5
MAP
cccccccc+cccccccc
c...............c
c...............c
c....vvvvvvv....c
c....v11111v....c
c....=11111=....c
c....v11111v....c
c....vvvvvvv....c
c...............c
c...............c
cccccccc+cccccccc
ENDMAP

#############################################################################
# Troll bridge (Lemuel)
#
NAME:   troll_bridge
DEPTH:  D:9-18
ORIENT: float
TAGS:   no_pool_fixup patrolling
SUBST:  1 = 1:50 2 3:5
MONS:   troll
MONS:   rock troll
MONS:   iron troll
MAP
xxxxx...........................xxxxxx
xwwwx...........................xxxxxx
xwwwx...........................xxxxxx
xwwwx...........................xxxxxx
xwwwwwwwwwwwwwwwww.wwwwwwwwwww..xxxxxx
xxwwwwwwwwwwwxxxxw.wwwwwwwwwwwwwwwwxxx
xxwwwwwwwwwwwx11xw.wxxxxwwwwwwwwwwwwxx
xxwwwwwwwwwwwx11=...=11xwwwwwwwwwwwwwx
xxxwwwwwwwwwwxxxxw.wx11xwwwwwwwwwwwwwx
xxxxxwwwwwwwwwwwww.wxxxxwwwwwwwwwwwwwx
xxxxx...wwwwwwwwww.wwwwwwwwwwwwwwwwwwx
xxxxx...........................xwwwwx
xxxxx...........................xxwwwx
xxxxx...........................xxwwwx
xxxxx...........................xxxxxx
ENDMAP

#################################
# An Ice Statue vault
#
NAME:    ice1_lemuel
MONS:    ice statue
TAGS:    no_pool_fixup
ORIENT:  float
DEPTH:   D:7-20, Elf
SUBST:   * : *$
SUBST:   * = |:5 * .
SUBST:   T = TU
SHUFFLE: xb/cc, ABC
: if crawl.coinflip() then
KFEAT:   X = < / >
KITEM:   X = any good_item
SUBST:   A=., B=., C=.
: else
SUBST:   X=*, B=., C=.
KFEAT:   A = teleport trap
: end
MAP
xxxxxxxxxxxxxxxxx
xbbbbbbbbbbbbbbbb
xb**....www.....T
xb**..A.www......
xbX*..B.w1w.....@
xb**..C.www......
xb**....www.....T
xbbbbbbbbbbbbbbbb
xxxxxxxxxxxxxxxxx
ENDMAP

#####################################################
# Lions and Tigers and Bears, oh my! (or at least bears)
#
NAME:   lemuel_bear_cage
DEPTH:  D:7-21
MONS:   bear / black bear / grizzly bear / polar bear
MONS:   hippogriff / griffon
MONS:   yak / sheep / weight:3 death yak
MONS:   hound / wolf / hog
SUBST:  1 = 1:30 2 3 4 .:20
MAP
cccccccccc
c1.1.1.1.c
c.1.1.1.1c
c1.1.1.1.c
c.1.1.1.1c
c1.1.1.1.c
c.1.1.1.1c
cnn++++nnc
..........
@........@
..........
xxxxxxxxxx
ENDMAP

##################################
# Vampire Tower by Lemuel Pitkin
#
NAME:    vampire
ORIENT:  float
DEPTH:   D:12-26, Vault, Crypt
MONS:    rat / grey rat / w:6 green rat / w:3 orange rat / w:20 giant bat
MONS:    flying skull, human zombie
MONS:    vampire, vampire mage, vampire knight
KITEM:   > = any good_item
KFEAT:   > = >
KFEAT:   ; = altar_yredelemnul/altar_kikubaaqudgha
SHUFFLE: defg
SUBST:   d = =, e = x, f = x, g = x
SUBST:   s = =, ! = x, ? = x
SUBST:   1 = 1 .:20
SUBST:   1 : 1:30 2
SUBST:   + = +=
SUBST:   w:w.
NSUBST:  ? = 2:L / *:?
SUBST:   ? = L:1 x
SUBST:   ? = x
SUBST:   L = |*$
MAP
F..wwwwwwwwwwwwwwwww..F
..wwwwwwwwwwwwwwwwwww..
.www111xxxx+xxxx111www.
www111xxx22322xxx111www
ww111xx.+23432+.xx111ww
ww11dx..ccccccc..xe11ww
ww1xx..ccc|>|ccc..xx1ww
wwxx..ccccc6ccccc..xxww
wwx..ccc33+4+33ccc..xww
wwx.ccccccc+cccc?cc.xww
wwx.c***x.....x???c4xww
wwx.c***=..5..x???c.xww
wwx4cc**x4.;.4x??cc.xww
wwx..ccxx.....x?cc..xww
wwxx..ccx..4..xcc..xxww
ww1xx..cc.....cc..xx1ww
ww11fx..ccc.ccc..xg11ww
ww111xx..cc+cc..xx111ww
www111xx..333..xx111www
.www111xxxxxxxxx111www.
..wwwwwwwwwwwwwwwwwww..
F..wwwwwwwwwwwwwwwww..F
ENDMAP


#############################################################################
# Oklob gauntlet
# average of 2.3 oklobs, and at most 5 of them
NAME:    oklob_2
DEPTH:   D:18-26, Lair, Snake, Elf
MONS:    plant, oklob plant
ORIENT:  float
SHUFFLE: ]}) / def
NSUBST:  ' = 5:2 *:1
NSUBST:  2 = 1:2 *:112
SUBST:   1=1w, "=ww.
SUBST:   d=|*, e=|*, f=|*
MAP
xxxxxxxxxxxxx
xxxxx]})xxxxx
xxxxx...xxxxx
x'ww.....ww'x
x'"......."'x
x'"......."'x
x'"......."'x
x'"......."'x
x'ww.....ww'x
xxxxxx+xxxxxx
ENDMAP

#############################################################################
# Oklob shooting range
#
# Disallowing this vault on branch starts, as brown stairs can't help there.
# Chance for a plant to turn oklob based on dungeon level. Elf:7 is hard, but
# considered okay. Has between 1 and 3 oklob plants.
# Single oklob at absolute depth 10, expect 2 oklobs at depth 20.
# Rarely (2.5% chance) the whole vault is enclosed. This is the hardest case,
# and the walls are always diggable then.
#
NAME:    oklob_3
DEPTH:   D:18-26, Lair:2-10, Elf:2-7
WEIGHT:  2
ORIENT:  float
SHUFFLE: ab" / AB'
SUBST:   a=[, b=(, A=., B=., '=., "=>
#
SUBST:   x : y:1 x:5 .:34
SUBST:   x = x:2 .
SHUFFLE: xcv
SUBST:   y = x
#
NSUBST:  1 = 1:2 1:3 *:1
: wt = (you.absdepth()-10)/2
: mons("oklob plant w:" .. wt .. " / plant")
MONS:    plant, oklob plant
MAP
xxxxxxxxxxxxxxx
xxxx...1...xxxx
xx...........xx
xx...........xx
x......"......x
x......'......x
x1...aA{Bb...1x
x......'......x
x......"......x
xx...........xx
xx...........xx
xxxx...1...xxxx
xxxxxxxxxxxxxxx
ENDMAP

#############################################################################
# Swampy vault
#
NAME:    onia_ninara_012_swampy_vault
TAGS:    no_pool_fixup no_monster_gen
DEPTH:   D:16-20, Lair:3-10, Swamp, Snake, Slime
ORIENT:  float
SHUFFLE: AB@
SUBST: x = .:30 W x:4
SUBST: A : x, B : x
SUBST: D = .:30 W
KFEAT: E = w:20 . / x / w:50 W / w:30 w / ~
KFEAT: F = w:150 w / w:70 W / ~ / . / x
KFEAT: G = x / . / w / W
KFEAT: H = . / W
KMONS: D = Plant / w:200 nothing
KMONS: E = w:2 slime creature / swamp worm / giant blowfly /\
           w:2 giant mosquito / w:1 electric eel / w:1000 nothing
KMONS: F = w:2 slime creature / swamp worm / giant blowfly /\
           w:2 giant mosquito / w:2 electric eel / w:1000 nothing
KMONS: H = swamp drake / swamp dragon / hydra / w:20 nothing
KITEM: H = any good_item / any potion / w:20 nothing / gold
MAP
xxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx
xxxxxxGGGxxxxxxGEDEExxxxGGxxxxxxx
xxxxGHHFFGGGGFFFEEDEEGGFFFxxGGxxx
xxFFFHHFFFFFGFFFFEEDEEFFFFFFFFGxx
xGGFFFFDDEEFFFFFEEDEEFFFFFFFFFFGx
xxGFFFFEEDDEEFFEEDEEFFFEEEFFFFGxx
xGFFFFFFFEEDEEEDDEEEEEEEDDEEEFFGx
xGGFFFFFFFEEDEDEEEEEEEDDEEDDDEEDB
xxGFFFFFFFFEEDEDDEDDDDEEEEEEEDDxx
xxxGFFFFFFEEDEEEEDEEEEEFFFFFFFFxx
xxxxFFFFFEEDEEFFFFDDFFFFFFFFFGGGx
xxxGFFFFEEDEEFFFFFFEDEFFFFFFFxxxx
xGGFFFFFFDEEFFFFFFFFEDFFFFFFGGxxx
xGFFFFFFEEDEEFFFFFFFFEDEFFFGxxxxx
xxGxxxGFEEDEEFFFFGGGFFHHHGxxxxxxx
xxxxxxxGFEEDEEGGxxxxxGFHGxxxxxxxx
xxxxxxxxGFDEGGxxxxxxxxxGxxxxxxxxx
xxxxxxxxxxAxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

###########################
# Another low-level vault - LP

NAME:    reptile_caves
DEPTH:   D:10-13, Lair, Snake
ORIENT:  float
MONS:    giant gecko / giant newt, giant lizard, giant iguana
MONS:    firedrake / swamp drake
MONS:    snake, water moccasin, viper
SUBST:   4 = 34
SUBST:   3 = 3:20 2
SUBST:   2 = 2:20 1
SUBST:   1 = 1.
SHUFFLE: ab/cd
SUBST:   a = w, b = x, c = x, d = .
SHUFFLE: 123/567
SUBST:   X=x.
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxXW**wXxxxxxxxxxxxxxxX**XXx
xXwWwwwXxxxxxxX33xxxxxX423Xx
xXWww232XxxxxX121xxxxX.13Xxx
xXXWww2XxxxxxX.1xxxxxw222Xxx
xxXXWwwwaaxxxxXWxxaaaw1121Xx
xxxXWww1XaaaaaWwaaaxXWw211Xx
xxxxXW23xxxxxaWwwxxxXww11XXx
xxxxXX1XxxxxxxxWwwxxxxX.Xxxx
xxxxxxX.XxxxXwWwwwxxx...Xxxx
xxxxxxx..Xxxx2xWwxxX..XXxxxx
xxxxxxxX.12111xw3X211bxxxxxx
xxxxxxxxxxXXXxxW2xxxxbbxxxxx
xxxxxxxxxxxxxxxw1Xxxxxbbxxxx
xxxxxxxxxxxxxXww1Xxxxxxbxxxx
xxxxxxxxxxxXwwww111@...Xxxxx
ENDMAP

##############################################################################
# A guard of gargoyles
#
# ORIENT: float ensures correct stair generation.
#
NAME:    gargoyle_guard
ORIENT:  float
TAGS:    patrolling no_monster_gen
DEPTH:   D:10-18
# you should be able to arrive both via stairs and via corridor
SUBST:   { = {([)]}
MONS:    gargoyle, metal gargoyle / gargoyle
MAP
xxxxxxxxxxxxxxxxxxx
xxxxxxxxx2xxxxxxxxx
xxxxx1x1x.x1x1xxxxx
xxxxx.........xxxxx
xxxx...........xxxx
xxxx...........xxxx
xxx...G..{..G...xxx
xxxx...........xxxx
xxxx...........xxxx
xxxxx.........xxxxx
xxxxx1x1x.x1x1xxxxx
xxxxxxxxx.xxxxxxxxx
xxxxxxxxx.xxxxxxxxx
xxxxxxxxx.xxxxxxxxx
xxxxxxxxx@xxxxxxxxx
ENDMAP

##############################################################################
# Ogre Cave, by Lemuel
#
NAME:    lemuel_ogre_cave
ORIENT:  float
DEPTH:   D:9-15, Orc
TAGS:    no_pool_fixup
MONS:    ogre, two-headed ogre, ogre-mage / Erolcha, plant / fungus
MONS:    ogre zombie, two-headed ogre zombie
SHUFFLE: WX/ZY , 12/12/67
SUBST:   W:ww. , X:. , Z:x , Y:+.=
SHUFFLE: *5/WW
SUBST:   *=. , W=wW , !:$.
SUBST:   5 = 5 6 = ^:5 I:5 F:5
MAP
              xxxxx
          xxxxxx12xx
         xx*..x.122xx
 xxxxxxxxx5xxx...11xx
xxWxxxxxxx*xxxxx....xx
xxWWxxxxxx.xxxxxx**xxxx
xWWWxxxxxx.xxxxxxx**xxxxx
WWWW**xxxxx.xxxxxxx5xxxxxxxx
xWWWW..xxxxx.xxxxxx.xccccccx
xxWW....1xxx.xxxxx.xxc$$$$cx
@..X...111..xxxxxx.xxc$$$$cx
xxWWW...11xxxxxxx.xxxc!!!!cx
xWWW....*xxxxxxx*..xxc+ccccx
xxWWW..**xxxxxx*....x..xxxxx
 xxWWWW*xxxxxxx*.11.Y.xx
  xxWWWWWxxxxxxx1221xxx
  xxxxWWWWxxxxxxx23xx
  xxxxxWWxxxxxxxxx|xx
  xxWWWWxxxxxxxxxxxx
  WWWWxxx
ENDMAP

##############################################################################
# Slaugherhouse (Zaba)
#
# Butchers have either knives or hand axes.  They have some chance of opening
# the doors so animals can go for a walk, that's intended.
#
NAME:   slaughterhouse
DEPTH:  Lair:7-, D:11-18
FLAGS:  no_monster_gen
ORIENT: float
WEIGHT: 5
MARKER: F = lua:fog_machine { \
                pow_max = 10, delay_min = 10, delay_max = 40, \
                size = 4, size_buildup_amnt = 4, \
                size_buildup_time = 25, cloud_type = "freezing vapour" \
            }
MONS:   death yak w:5 / sheep w:3 / yak w:7
MONS:   generate_awake human ; knife | hand axe
SUBST:  F=d, 2=2.
ITEM:   meat ration w:5 / sausage / nothing 
MAP
 cccccc       ccccccc
 cddddcxxxxxxxxcddddc
 cdFdd+..+..+..+ddFdc
 cddddcxxx..xxxcddddc
 cccccc..x..x..cccccc
.........x2.x.........
.nnnnnn..x..x..nnnnnn.
.n1111nxxx..xxxn1111n.
.n1111+..+..+..+1111n.
.n1111nxxx..xxxn1111n.
.nnnnnn..x..x..nnnnnn.
.........x.2x.........
 xxxxxx..x..x..xxxxxx
 x...2xxxx..xxxx2...x
 x..2.+..+..+..+.2..x
 x...2xxxx..xxxx2...x
 xxxxxx  x..x  xxxxxx
         x++x
          @.
ENDMAP

##############################################################################
# An "artefact" protected by the the Shining One (abrahamwl)
#
# ORIENT: float ensures correct stair generation.
#
NAME:    protected_by_tso
ORIENT:  float
TAGS:    patrolling no_monster_gen no_item_gen
DEPTH:   18-27

MONS:    generate_awake angel / generate_awake daeva / w:1 angel / w:1 daeva

KFEAT:   A = altar_shining_one
KITEM:   A = w:1 acquire:the_shining_one any / nothing

: if crawl.one_chance_in(3) then
SUBST:   | = .
SUBST:   % = |
SUBST:   ? = =
: else
SUBST:   % = X
SUBST:   ? = X
: end

COLOUR:  _ : yellow
SUBST:   _ : .
SUBST:   T = T F:1
KMASK:   + = no_secret_doors

MARKER:  ! = lua:message_machine({marker_type="player_at", message="You almost \
             think you hear a voice: \"Seek not undue power, mortal.\"", \
             channel="warning" })
SUBST:   ! : .

MAP
    xxxxxxxxxxx
   xxxxxXXXxxxxx
  xxxxxxX|Xxxxxxx
  xXXXXXX=XXXXXXx
 xxXWWWWTATWWWWXx
xxxXW.._____..WXx
xXXXWt..___..tWXx
xX%?W...___...WXx
xXXXWt..___..tWXx
xxXxxxxx+++xxxxxXx
 xX.............Xx
 xX.............Xx
 xX.............Xx
 xX...G.....G...Xx
 xX......1......Xx
 xX...G.....G...Xx
 xX.............Xx
 xX.............Xx
 xX.............Xx
 xXXXXXXX+XXXXXXXx
 xxxxxxxx!xxxxxxxx
     xxxx+xxxx
         @
ENDMAP