############################################################################### # 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