###############################################################################
# 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, 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 .
MAP
cccccccccc
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, Snake
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: fire drake / 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
##############################################################################
# A variety of statues, with loot. (1KB)
#
NAME: statue_cache
ORIENT: north
TAGS: no_monster_gen
DEPTH: D:12-20, Elf, Vault
MONS: statue name:archer name_adjective tile:mons_statue_crossbow ; crossbow \
ego:flame . bolt q:30
MONS: statue name:archer name_adjective tile:mons_statue_crossbow ; crossbow \
ego:frost . bolt q:30
MONS: statue name:warrior name_adjective tile:mons_statue_axe ; battleaxe \
ego:flaming good_item
MONS: statue name:warrior name_adjective tile:mons_statue_axe ; battleaxe \
ego:freezing good_item
MONS: statue name:warrior name_adjective tile:mons_statue_mace ; great mace \
ego:flaming good_item
MONS: statue name:warrior name_adjective tile:mons_statue_mace ; great mace \
ego:freezing good_item
MONS: silver statue
KMONS: 8 = statue name:wizard name_adjective tile:mons_statue_mage \
spells:lehudib's_crystal_spear;iskenderun's_mystic_blast;slow;stone_arrow
KMONS: 9 = statue name:wizard name_adjective tile:mons_statue_mage \
spells:freezing_cloud;mephitic_cloud;throw_icicle;confuse
MAP
cccccccccccccc
cccccccc7ccccc
cccccc.....ccc
cccc..ccccc.cc
ccc.ccccc5c.cc
ccc.cccccc.ccc
cc8.9cc3c.c6cc
c$$$$$cc.ccccc
c|*|*|c.c4cccc
ccccccccc.ccccccccc
........1.2........
...................
...................
.................
.............
...@...
ENDMAP
##############################################################################
# The Shining One Protects a Powerful Item 1 (by abrahamwl)
#
# The basic theme of this vault is that the the Shining one has placed a
# powerful item under the guard of an angel or daeva
#
NAME: protected_by_tso_1
ORIENT: float
TAGS: patrolling no_monster_gen no_item_gen no_pool_fixup allow_dup luniq_protected_by_tso
WEIGHT: 4
DEPTH: 23-27
MONS: generate_awake angel / generate_awake daeva / w:1 angel / w:1 daeva
COLOUR: - : yellow
SUBST: - : +
KMASK: + = no_secret_doors
MARKER: ! = lua:message_at_spot ( "You almost think you hear a voice: \
\"Seek not undue power, mortal.\"", \
"warning" )
SUBST: ! : .
MAP
xxxxx
xxxxxxxXXXxxxxxxx
xXXXXXXX1XXXXXXXx
xX|...-...-...|Xx
xXXXXXX...XXXXXXx
xxxxxXX...XXxxxxx
xxxXG...GXxxx
xxxxXX...XXxxxx
xXXXXX...XXXXXx
xXxxxx---xxxxXx
xX...........Xx
xX...........Xx
xX..G.....G..Xx
xX...........Xx
xX.....1.....Xx
xX...........Xx
xX..G.....G..Xx
xX...........Xx
xX...........Xx
xXXXXXX-XXXXXXx
xxxxxxx!xxxxxxx
xxxx+xxxx
@
ENDMAP
##############################################################################
# The Shining One Protects a Powerful Item 2 (by abrahamwl)
#
# The basic theme of this vault is that the the Shining one has placed a
# powerful item under the guard of an angel or daeva
#
NAME: protected_by_tso_2
ORIENT: float
TAGS: patrolling no_monster_gen no_item_gen no_pool_fixup allow_dup luniq_protected_by_tso
WEIGHT: 4
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
COLOUR: - : yellow
SUBST: - : +
KMASK: + = no_secret_doors
MARKER: ! = lua:message_at_spot ( "You almost think you hear a voice: \
\"Seek not undue power, mortal.\"", \
"warning" )
SUBST: ! : .
MAP
xxxxxxxxxxxxxx
xxxXXXXXXXXXXXXXxxx
xXXX_____A_____XXXx
xX%?Wwwww_wwwwW=|Xx
xXXXxWwww_wwwWxXXXx
xxxXxxWWw_wWWxxXxxx
xXXxxxx._.xxxxXXx
xxXxxxx---xxxxXxx
xX...........Xx
xX...........Xx
xX..G.....G..Xx
xX...........Xx
xX.....1.....Xx
xX...........Xx
xX..G.....G..Xx
xX...........Xx
xX...........Xx
xXXXXXX-XXXXXXx
xxxxxxx!xxxxxxx
xxxx+xxxx
@
ENDMAP
##############################################################################
# The Shining One Protects a Powerful Item 3 (by abrahamwl)
#
# The basic theme of this vault is that the the Shining one has placed a
# powerful item under the guard of an angel or daeva
#
NAME: protected_by_tso_3
ORIENT: float
TAGS: patrolling no_monster_gen no_item_gen no_pool_fixup allow_dup luniq_protected_by_tso
WEIGHT: 4
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
COLOUR: - : yellow
SUBST: - : +
KMASK: + = no_secret_doors
MARKER: ! = lua:message_at_spot ( "You almost think you hear a voice: \
\"Seek not undue power, mortal.\"", \
"warning" )
SUBST: ! : .
MAP
xxxxxxxxxxx
xxxxxXXXxxxxx
xxxxxxX|Xxxxxxx
xXXXXXX=XXXXXXx
xxXWWWWTATWWWWXx
xxxXW.._____..WXx
xXXXWt..___..tWXx
xX%?W...___...WXx
xXXXWt..___..tWXx
xxxXxxxx---xxxxXx
xX...........Xx
xX...........Xx
xX..G.....G..Xx
xX...........Xx
xX.....1.....Xx
xX...........Xx
xX..G.....G..Xx
xX...........Xx
xX...........Xx
xXXXXXX-XXXXXXx
xxxxxxx!xxxxxxx
xxxx+xxxx
@
ENDMAP
##############################################################################
# Elemental Laboratory (by Mu.)
#
NAME: elemental_lab_mu
DEPTH: D:13-26, Elf:1-6
ORIENT: float
FLAGS: no_monster_gen no_item_gen no_pool_fixup
MARKER: ! = lua:fog_machine { \
pow_max = 10, delay_min = 10, delay_max = 40, \
size = 1, size_buildup_amnt = 5, \
size_buildup_time = 25, cloud_type = "flame" \
}
MARKER: ? = lua:fog_machine { \
pow_max = 10, delay_min = 10, delay_max = 40, \
size = 1, size_buildup_amnt = 5, \
size_buildup_time = 25, cloud_type = "thin mist" \
}
MARKER: * = lua:fog_machine { \
pow_max = 10, delay_min = 10, delay_max = 40, \
size = 1, size_buildup_amnt = 5, \
size_buildup_time = 25, cloud_type = "black smoke" \
}
KMONS: 1 = fire elemental
NSUBST: ; = 3:2 / *=.ll
KMONS: 2 = molten gargoyle
KMONS: e = earth elemental
SUBST: E = exxx....
NSUBST: ' = 3:3 / 3:W / *:.
KMONS: 3 = clay golem
NSUBST: w = 3:4 / *:w
KMONS: 4 = water elemental
KFEAT: 4 = deep_water
NSUBST: " = 3:5 / *:.
KMONS: 5 = vapour
KMONS: 6 = air elemental
KMONS: 7 = fire vortex
#
: if you.in_branch("elf") then
KMONS: Z = col:gila deep elf sorcerer \
name:deep_elf_elementalist n_rpl n_des \
spells:iron_shot;summon_air_elementals;sticky_flame;\
summon_water_elementals;haste;blink actual_spells \
; robe ego:fire_resistance race:elven | \
robe ego:cold_resistance race:elven | \
robe ego:resistance race:elven . dagger ego:freezing race:elven | \
dagger ego:flaming race:elven | dagger ego:electrocution race:elven
: else
KMONS: Z = col:gila wizard hd:15 name_descriptor \
name:master_elementalist name_replace \
spells:iron_shot;summon_air_elementals;sticky_flame;\
summon_water_elementals;haste;blink actual_spells \
; robe ego:fire_resistance | robe ego:cold_resistance | \
robe ego:resistance \
. dagger ego:freezing | dagger ego:flaming | \
dagger ego:electrocution
: end
KITEM: B = randbook disc:air / randbook disc:fire / randbook disc:ice / \
randbook disc:earth
KITEM: | = staff of fire / staff of cold / staff of earth / staff of air / \
quarterstaff unrand:elemental_staff
MAP
ccccccccc
ccE+'''cwcc
ccEEc'''cwwcc
ccEEEc'''cwwwcc
ccEEEEc'''cwwwwcc
ccEEEEEc'''cwwwwwcc
ccEEEEEEc''Wcwwwwwwcc
ccEEEEEEEc'WW+wwwwwwwcc
cEEEEEEEEcccccwwwwwwwwc
ccccccc+ccB|Bcccccccc+c
c;;;;;;;c$...$c"""""""c
c;;;;;;;c$.Z.$c""?"?""c
c;;;;;;;c$...$c"""""""c
c+cccccccc...cc+ccccccc
c........c+++c........c
cc..!1.!1c...c.6..6..cc
cc......c7.7c......cc
cc.....c...c.....cc
cc.1!.c.*.c.6..cc
cc...c...c...cc
cc..c.7.c..cc
cc.c...+.cc
c+ccccccc
@
ENDMAP
##############################################################################
# Ancient Champions (by Mu., lua by due)
#
NAME: ancient_champions_mu
DEPTH: D:15-26, Vault, Crypt
ORIENT: float
FLAGS: no_item_gen no_monster_gen
KFEAT: ABCDEFG = metal_wall
KMONS: 1 = col:gold skeletal warrior name:ancient_champion name_replace \
name_descriptor spells:iron_shot;.;haste;pain;.;. actual_spells \
; plate mail ego:fire_resistance | plate mail ego:cold_resistance . \
great sword ego:pain | great sword ego:draining | great sword \
ego:flaming | w:3 triple sword ego:vorpal
KMONS: 2 = col:gold skeletal warrior name:ancient_champion name_replace \
name_descriptor spells:bolt_of_draining;.;haste;throw_frost;.;. \
actual_spells ; plate mail ego:fire_resistance | plate mail \
ego:cold_resistance . great mace ego:vorpal | great mace ego:draining
KMONS: 3 = col:gold skeletal warrior name:ancient_champion name_replace \
name_descriptor spells:venom_bolt;.;haste;haunt;.;. actual_spells \
; plate mail ego:fire_resistance | plate mail ego:cold_resistance . \
battleaxe ego:vorpal | battleaxe ego:pain | \
w:3 executioner's axe ego:vorpal
KMONS: 4 = col:gold skeletal warrior name:ancient_champion name_replace \
name_descriptor spells:iskenderun's_mystic_blast;slow;haste;.;.;. \
actual_spells ; plate mail ego:fire_resistance | plate mail \
ego:cold_resistance . great sword ego:pain | great sword ego:draining \
| great sword ego:flaming | battleaxe ego:vorpal | battleaxe ego:pain \
| triple sword ego:vorpal | executioner's axe ego:vorpal
: local ac_desc = "The unfathomably ancient " ..
: "skeleton of a humanoid creature. It has hundreds of golden sigils " ..
: "etched onto its bones, and pulses with terrible, unholy power.\n"
SHUFFLE: 123
KPROP: ]v.1234+ABCDEFG!n$wr|" = no_rtele_into
KITEM: w = acquire weapon
KITEM: r = acquire armour
NSUBST: $ = 1:w / 1:r / 4:| / *:$
COLOUR: " = yellow
KFEAT: " = .
MARKER: 1 = lua:MonPropsMarker:new { description=ac_desc }
MARKER: 2 = lua:MonPropsMarker:new { description=ac_desc }
MARKER: 3 = lua:MonPropsMarker:new { description=ac_desc }
MARKER: 4 = lua:MonPropsMarker:new { description=ac_desc }
{{
-- First off, slave marker magic.
lua_marker("A", portal_desc { skele_slave=1 })
lua_marker("B", portal_desc { skele_slave=2 })
lua_marker("C", portal_desc { skele_slave=3 })
lua_marker("D", portal_desc { skele_slave=4 })
lua_marker("E", portal_desc { skele_slave=5 })
lua_marker("F", portal_desc { skele_slave=6 })
lua_marker("G", portal_desc { skele_slave=7 })
-- Then the actual function which does everything.
function skele_death (data, triggerable, triggerer, marker, ev)
data.skele_number = data.skele_number + 1
-- Only 7 skeles!
if data.skele_number > 7 then
return
end
local function get_slave (slavenum)
local myslaves = dgn.find_marker_positions_by_prop("skele_slave", slavenum)
return myslaves[1]
end
local wall_pos = get_slave(data.skele_number)
if wall_pos == nil then
crawl.mpr("Couldn't find a slave!")
end
dgn.terrain_changed(wall_pos.x, wall_pos.y, "floor", false, false, false)
if you.see_cell(wall_pos.x, wall_pos.y) then
crawl.mpr("As the champion is destroyed, a metal wall slides away!")
else
crawl.mpr("As the champion is destroyed, you hear a distant grinding noise.")
end
end
local skele_death_marker = TriggerableFunction:new {
func=skele_death,
repeated=true,
data={skele_number=0} }
skele_death_marker:add_triggerer(DgnTriggerer:new {
type="monster_dies",
target="ancient champion" })
lua_marker("]", skele_death_marker)
}}
MAP
vvvvvvvvvvvvvvvvvvv
v..".1v.."..v.."..v
v.""".v.""".v.""".v
v"""""C"""""B"""""v
v.""".v.""".v.""".v
v.."..v..".3v..".2v
vvvDvvvvvvvvvvvAvvv
v..".2v$$$$$v.."..v
v.""".v$$$$$v.""".v
v"""""v$$.$$v"""""v
v.""".v$$.$$v.""".v
v.."..v$...$v1."..v
vvvEvvvvvGvvvvv+vvv
v3."..v.."..v.."..v
v.""".v.""".v.""".v
v"""""F"""""v""]""v
v.""".v.""".v.""".v
v.."..v4."..v.."..v
vvvvvvvvvvvvvvvvvvv
ENDMAP