############################################################################## # crypt.des: Maps for the Crypt. # - entry vaults # - minivaults # - branch end vaults ############################################################################## {{ function crypt_drop_grates(data, triggerable, triggerer, marker, ev) if data.trig == true then return else data.trig = true end local did_change = false for slave in iter.slave_iterator("wall_phase", 1) do if dgn.feature_name(dgn.grid(slave.x, slave.y)) == "iron_grate" then if you.see_cell(slave.x, slave.y) then did_change = true end dgn.terrain_changed(slave.x, slave.y, "floor", false, false, false) end end if did_change then crawl.mpr("There is a click. Suddenly, the grates are dropped!", "warning") else crawl.mpr("There is a click. Nothing appears to happen.", "warning") end end function callback.grunt_crypt_arrival_guards_awaken(data,triggerable,trigger,marker,ev) local seen = false for slave in iter.slave_iterator("trap_sarcophagus", 1) do if you.see_cell(slave.x, slave.y) then seen = true break end end if seen then crawl.mpr("Something awakens from inside the sarcophagi!", "warning") elseif you.silenced() then crawl.mpr("The ground shakes!", "warning") else crawl.mpr("You hear grinding stone!", "warning"); end for slave in iter.slave_iterator("trap_sarcophagus", 1) do if dgn.feature_name(dgn.grid(slave.x, slave.y)) == "granite_statue" then dgn.terrain_changed(slave.x, slave.y, "floor", false, false, false) dgn.colour_at(slave.x, slave.y, "lightgray") dgn.create_monster(slave.x, slave.y, "w:5 human skeleton / \ w:5 human zombie / \ mummy / \ w:5 guardian mummy") end end end function crypt_entry(e) e.tags("crypt_entry vaults_entry_crypt") e.kmons("0 = place:Crypt:1") e.kfeat("O = enter_crypt") end function crypt_loot_plus(e) -- Since Crypt is an optional, late, difficult branch, -- provide some unreliable but high quality incentives. local drain = "ego:draining good_item ident:type" local pain = "ego:pain ident:type" local vamp = "ego:vampirism ident:type" local book = "randbook disc:necromancy numspells:6 spells:" local ring = "ring of positive energy randart good_item" local amulet = "amulet of warding randart good_item" -- One drop-off of these, e.kitem("d = bastard sword w:5 " .. drain .." / claymore w:5 " .. drain .. " / quick blade " .. drain .. " / executioner's axe " .. drain .. " / eveningstar " .. drain .. " / bardiche " .. drain .. " / lajatang " .. drain) e.kitem("e = great sword " .. pain .." / battleaxe " .. pain .. " / great mace " .. pain .. " / glaive " .. pain .. " / quarterstaff " .. pain) e.kitem("f = great sword " .. vamp .." / quick blade " .. vamp .. " / battleaxe " .. vamp .. " / great mace " .. vamp .. " / glaive " .. vamp) e.kitem("g = " .. ring .. ", " .. ring .. " / " .. amulet .. " w:2, " .. ring .. " / " .. amulet .. " w:2 / nothing") -- and one drop-off of these. e.kitem("h = dagger unrand:vampires_tooth / dagger unrand:morg / " .. "great sword ego:pain unrand:sword_of_the_doom_knight / " .. "demon blade unrand:bloodbane / demon blade unrand:leech / " .. "bastard sword unrand:sword_of_zonguldrok / " .. "scythe unrand:finisher / scythe unrand:scythe_of_curses / " .. "spear unrand:spear_of_the_botono / " .. "mace unrand:sceptre_of_torment / great mace unrand:undeadhunter") e.kitem("i = necronomicon / " .. book .. "necromutation / " .. book .. "death's_door / " .. book .. "haunt / " .. book .. "borgnjor's_revivification") e.kitem("j = lamp of fire / phial of floods / fan of gales / " .. "stone of tremors / any rod good_item w:20, / " .. "crystal ball of energy / staff of energy ident:type, " .. "staff of death / staff of power / staff of wizardry / " .. "any magical staff w:5") e.subst("d = d:20 ef g:20") e.subst("h = hij") end }} NAME: crypt_curse_skull TAGS: allow_dup luniq extra DEPTH: Crypt CHANCE: 3333 MONS: curse skull MAP 1 ENDMAP NAME: crypt_curse_skull_rare TAGS: allow_dup luniq extra DEPTH: Crypt CHANCE: 1429 MONS: curse skull MAP 1 ENDMAP ############################################################################## # Crypt entry vaults ############################################################################## ############################################################################## NAME: dummy_crypt_entry WEIGHT: 50 TAGS: crypt_entry extra KFEAT: O = enter_crypt MAP O ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_round : crypt_entry(_G) MAP ......... ..ccccc.. ..c...c.. .cc.0.cc. .c.....c. .+.0O0.c. .c.....c. .cc.0.cc. ..c...c.. ..ccccc.. ......... ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_box : crypt_entry(_G) MAP ....... .cc.cc. .c0c0c. ..cOc.. .c0c0c. .cc.cc. ....... ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_statues : crypt_entry(_G) MAP ........... .x.......x. ........... ...GxxxG... ...xx0xx... ....0O0x... ...xx0xx... ...GxxxG... ........... .x.......x. ........... ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_sparse ORIENT: float : crypt_entry(_G) MAP ........... .x...x...x. ........... ...x.0.x... ........... .x.0.O.0.x. ........... ...x.0.x... ........... .x...x...x. ........... ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_walls : crypt_entry(_G) MAP .......... .xxxxxxxx. .x........ .x0xxxxxx. .x......x. .x.xxxx0x. .x.x....x. .x.x.O..x. .x.x....x. .x.xxxx0x. .x......x. .x0xxxxxx. .x........ .xxxxxxxx. .......... ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_corners : crypt_entry(_G) MAP ........... .xx.....xx. .x0.....0x. ....x.x.... ...xx.xx... .....O..... ...xx.xx... ....x.x.... .x0.....0x. .xx.....xx. ........... ENDMAP ############################################################################## NAME: minmay_crypt_entry_simple_plaza : crypt_entry(_G) MAP ...................... ..............xxxxxxx. .....G...G...Gx..0..x. ..............x.....x. ...........0..+..O.0x. ..............x.....x. .....G...G...Gx..0..x. ..............xxxxxxx. ...................... ENDMAP ############################################################################## NAME: minmay_crypt_entry_skeletal_spiral MONS: skeleton w:20 / skeletal warrior : crypt_entry(_G) MAP ........... .xxxxxxxxx. .x..1..1.x. .x1xxxxx.x. .x.x111x1x. .x.x1O1x.x. .x1x111x1x. .x.x.xxx.x. .x.x1.1.1x. .x1xxxxxxx. ........... ENDMAP ############################################################################## NAME: minmay_crypt_entry_necro_gods WEIGHT: 30 SHUFFLE: AB KFEAT: A = altar_kikubaaqudgha KFEAT: B = altar_yredelemnul : crypt_entry(_G) MAP ........... .G.ccccc.G. ...c...c... .ccc.A.ccc. .c.......c. .+...O...c. .c.......c. .ccc.B.ccc. ...c...c... .G.ccccc.G. ........... ENDMAP ############################################################################## NAME: minmay_crypt_entry_nasty_monster MONS: bone dragon w:25 / lich / shadow dragon w:5, curse skull SHUFFLE: 1X/2Y SUBST: X=., Y=x : crypt_entry(_G) MAP ......... .x.....x. .xx...xx. ..x.1.x.. ..x.X.x.. .xx...xx. .x.....x. .x..O..x. .x.....x. .xx...xx. ..xxxxx.. ......... ENDMAP ############################################################################## NAME: minmay_crypt_entry_vampire_xt MONS: vampire, vampire knight / vampire mage SUBST: V = VVVY : crypt_entry(_G) MAP ................ .xxxxx....xxxxx. .x...xx..xx...x. .x.O..xxxx..1.x. .x..2..xx.....x. .xx..V....V..xx. ..xx........xx.. ...xx..cc..xx... ...xx..cc..xx... ..xx........xx.. .xx..V....V..xx. .x.....xx.....x. .x.1..xxxx..1.x. .x...xx..xx..... .xxxxx....xxx... ................ ENDMAP ############################################################################## NAME: blue_anna_dwarven_crypt MONS: death knight / unborn w:5 MONS: shadow wraith / wraith / wight w:5 : crypt_entry(_G) MAP cccc@cccc c.......c c.ccccc.c c.c.2.c.c @.c.O.c.@ c.c...c.c c.cc+cc.c c1.....1c cccc@cccc ENDMAP ############################################################################## # Crypt arrival vaults ############################################################################## # It's been undisturbed for so long, cobwebs are starting to form. NAME: grunt_crypt_arrival_webbed TAGS: extra uniq_crypt_arrival no_monster_gen no_trap_gen no_item_gen KFEAT: ^ = known web trap / w:20 floor DEPTH: Crypt:1 WEIGHT: 30 ORIENT: south MAP .@. xxxxxc+++cxxxxx xxxxxc^.^cxxxxx xxxxcc^.^ccxxxx xxcccG^.^Gcccxx xxcG^^^.^^^Gcxx xcc^^.....^^ccx xcG^.V...V.^Gcx xc^^..[.(..^^cx xcV.........Vcx xc^^...{...^^cx xcG^.V...V.^Gcx xcc^^.....^^ccx xxcG^^^.^^^Gcxx xxcccG^V^Gcccxx xxxxcccccccxxxx xxxxxxxxxxxxxxx ENDMAP NAME: grunt_crypt_arrival_split TAGS: extra uniq_crypt_arrival no_monster_gen no_trap_gen no_item_gen DEPTH: Crypt:1 WEIGHT: 30 ORIENT: south MAP .@. xxxxxxx+++xxxxxxx xxxxx.......xxxxx xxG...xxGxx...Gxx xx..xxxxxxxxx..xx x..xxxxxxxxxxx..x x.xxxxxxxxxxxxx.x x.VxxxxxxxxxxxV.x x.xxxxxxxxxxxxx.x x..xxxxxxxxxxx..x xx..xGxxGxxGx..xx xx.....[.(.....xx xxxG....V....Gxxx xxxxxG..{..Gxxxxx xxxxxxxG.Gxxxxxxx xxxxxxxxxxxxxxxxx ENDMAP # Do not disturb the sanctity of this place, mortal... NAME: grunt_crypt_arrival_guarded_gate TAGS: uniq_crypt_arrival no_item_gen no_monster_gen no_trap_gen \ layout_rooms layout_city layout_corridors no_hmirror no_rotate extra ORIENT: south DEPTH: Crypt:1 WEIGHT: 30 TILE: H = dngn_sarcophagus_pedestal_left TILE: I = dngn_sarcophagus_pedestal_right COLOUR: HI = yellow TILE: C = wall_stone_gray SUBST: HI = G {{ local trap_marker = TriggerableFunction:new { func = "callback.grunt_crypt_arrival_guards_awaken", repeated = false} trap_marker:add_triggerer(DgnTriggerer:new { type="player_los"}) lua_marker('J', trap_marker) lua_marker('G', props_marker {trap_sarcophagus=1, veto_fragmentation="veto", veto_disintegrate="veto", veto_shatter="veto"}) set_feature_name("granite_statue", "sarcophagus") }} KFEAT: G = granite_statue no_mimic SUBST: J = V SUBST: C = c MAP .....@..... @....J....@ ........... xxcc+++ccxx xxcC...Ccxx xxcH...Icxx xxcC...Ccxx xxcH...Icxx xxcC...Ccxx xxcH...Icxx xxcC...Ccxx xxcH...Icxx xxcC...Ccxx xxcH...Icxx xxcC...Ccxx xccc...cccx xcC.....Ccx xc.......cx xc...{...cx xcV.....Vcx xc..[.(..cx xc.......cx xcC..V..Ccx xcccccccccx xxxxxxxxxxx ENDMAP ############################################################################## # Crypt minivaults ############################################################################## ############################################################################## # Dead fish NAME: lemuel_dead_fish_pool DEPTH: Crypt # Lemuel also had Cocytus TAGS: no_pool_fixup extra SUBST: . : .W SUBST: 1 = w:50 1 KFEAT: 1 = w KMONS: 1 = swamp worm zombie MAP @..wwwww..@ ..ww111ww.. .ww11111ww. ww1111111ww w111111111w w111111111w ww1111111ww .ww11111ww. ..ww111ww.. @..wwwww..@ ENDMAP ############################################################################## # tombs in the wall NAME: tombwall_bobbens TAGS: allow_dup DEPTH: Crypt MONS: w:150 zombie / skeletal warrior / ghoul / \ large abomination / small abomination / necrophage / \ w:150 skeleton / w:30 nothing MAP ccccccccccccccccccccccc ccc1c1c1c1c1c1c1c1c1ccc ccc+c+c+c+c+c+c+c+c+ccc ....................... ....................... ....................... ENDMAP ############################################################################## # small crypt building NAME: minicrypt_bobbens TAGS: allow_dup DEPTH: Crypt MONS: necromancer MONS: zombie/skeleton MONS: flying skull MAP ccccccc cc2c2c2cc ccc+c+c+ccc c2+.....+2c ccc..1..ccc c2+.3.3.+2c ccc.....ccc c2+.....+2c ccc.....ccc c2+.....+2c cccc+c+cccc ENDMAP ############################################################################## # death oozes - they're sort of like garden slugs NAME: minigarden_bobbens DEPTH: Crypt MONS: death ooze KFEAT: f = . # "withered plant" instead of "plant" KMONS: f = w:2 col:darkgrey plant name:withered name_adjective \ tile:mons_withered_plant / w:1 col:lightgrey plant name:withered \ name_adjective tile:mons_withered_plant NSUBST: p = 2:f / * = f:2 .:1 NSUBST: 1 = 1:3 / * = 1:3 .:1 MAP .......... ..p1pp.p.. .pp.pp..p. .ppp.1.p.. ..p1pp.p.. ...pppp1.. .p.pfffp.. ..ppfffp.. ..p.1p1p.. .1.p..pp.. .......... ENDMAP ############################################################################## # Lich vault NAME: weyrava_lich_vault DEPTH: Crypt TAGS: no_monster_gen no_item_gen ITEM: gold KFEAT: Z = w:5 alarm trap / w:8 zot trap / w:50 floor KMONS: Y = Boris / ancient lich, ancient lich MONS: w:3 zombie / lich / w:3 skeleton / w:3 bone dragon MONS: skeleton / zombie KFEAT: v = . KITEM: v = $ / % SUBST: $ = $.*| MAP ccccc ccccv.vcccc c$.+.Y..+$c c.ccv.vcc.c c+ccc+ccc+c c..$c.c$..c @n.1.c.c.1.c c$.$c.c$.$c ccc+c.ccccc cccZcZc$c c.+.cZczc cZcccZc+c c.+2+Z+2c cccccZccc c.c c@c ENDMAP ############################################################################## # Ghost lake NAME: weyrava_ghost_lake DEPTH: Crypt TAGS: no_monster_gen no_item_gen MONS: flying skull MONS: skeletal warrior ; long sword . shield . w:6 wand of lightning | nothing /\ skeletal warrior ; battleaxe | halberd . w:7 wand of lightning | nothing SUBST: y = .:8 c SUBST: v = z . SUBST: w = w z:6 KFEAT: z = deep_water KMASK: z = no_pool_fixup KFEAT: T = . KITEM: T = * / w:5 | KMONS: T = w:25 phantasmal warrior / spectral fire dragon / spectral ice dragon / \ spectral storm dragon KFEAT: S = . KITEM: S = $ / nothing KMONS: S = w:25 phantasmal warrior / spectral fire dragon / spectral ice dragon / \ spectral storm dragon MAP cccccccccccc cccyy.yy..yyycccc cyy..w..ww...12ycc cy.wwzwwzzwwwww.ycc cc.wzzzzzzzzzzzzw..@ ccy1wzzzzzzzzzzzzzw.cc cy.wzzzzzzvvzzzzzzw.yc @.wzzzzzv1.11vzzzzw.yc cy.wzzzv.c++c.vzzzzw.c cy.wzzz.ccSScc1zzzzw2c cy2wzzv.+STTS+.vzzw1yc c.wzzzv.+STTS+.vzzw.yc c.wzzzz1ccSScc.zzzw.yc c.wzzzzv.c++c.vzzzzw.c c.wzzzzzv11.1vzzzzzw.@ cy2wzzzzzzvvzzzzzzw.yc ccy1wzzzzzzzzzzzzw1ycc ccy.wzzzzzwwwwww2ycc cy.wzzwww......ycc cc.www...yyyccccc cy...yyccccc ccc@cccc ENDMAP ############################################################################## # Vampire temple NAME: weyrava_vampire_temple DEPTH: Crypt TAGS: no_monster_gen no_item_gen no_wall_fixup MONS: col:red fungus MONS: col:lightred fungus MONS: fungus MONS: vampire / w:4 patrolling vampire knight / w:4 vampire mage KFEAT: Z = altar_kikubaaqudgha / altar_yredelemnul KITEM: z = book of Unlife / book of Death / \ randbook disc:necromancy numspells:7 / nothing KFEAT: z = floor # create between one and four blood fountains SUBST: Q=qu, U=un, N=ns, S=sq SHUFFLE: Mmn / Xxy / Xxy / Xxy SUBST: M=V , m=v , n=u , X=A , x=a , y=b SHUFFLE: Rrs / Xxy / Xxy / Xxy SUBST: R=V , r=v , s=u , X=A , x=a , y=b SHUFFLE: Ppq / Xxy / Xxy / Xxy SUBST: P=V , p=v , q=u , X=A , x=a , y=b SUBST: V=Y, v=11111112, u=1222233... SUBST: A=V, a=..3, b=. MAP c@G@c ccc.c.ccc cc4..u...cc cc..cuvuc..cc c..QuvVvuU.4c cc4cqQuvuUnc.cc @..qpqQuUnmn..@ GcqpPpqZzmMmncG @..qpqSsNnmn..@ cc.cqSsrsNnc.cc c..SsrRrsN.4c cc4.csrsc..cc cc...s..4cc ccc.c.ccc c@G@c ENDMAP ############################################################################## # Shadows. # For Crypt and Tartarus # NAME: minmay_shadows ORIENT: northwest DEPTH: Crypt, Tar MONS: shadow, soul eater ITEM: lantern of shadows MAP xxxxxxxxxxxxxxxxxxxxxxxxxxxxx x.........xxx2.2xxx.........x x....1....xxx.d.xxx....1....x x.........xxx2.2xxx.........x x...xxx...xxx...xxx...xxx...x x...xxx.2.xxx.1.xxx.2.xxx...x x...xxx...xxx...xxx...xxx...x x1..xxx....1.....1....xxx..1x x...xxx...............xxx...x x...xxx.......1.......xxx...x x...xxxxxxxxxxxxxxxxxxxxx...x x.2.xxxxxxxxxxxxxxxxxxxxx.2.x x...xxxxxxxxxxxxxxxxxxxxx...x x...xxx...............xxx...x x...xxx..1.........1..xxx...x x1..xxx...............xxx..1x x...xxx...xxx...xxx...xxx...x x...xxx...xxx.1.xxx...xxx...x x...xxx...xxx...xxx...xxx...x x.........xxx1.1xxx.........x x....1....xxx...xxx....1....x x.........xxx...xxx.........x xxxxxxxxxxxxx.@.xxxxxxxxxxxxx ENDMAP NAME: kb_skeletal_archery DEPTH: Crypt, Tar KMONS: 1 = skeletal warrior name:skeletal_archer n_rpl n_des n_spe col:magenta \ spells:. ; longbow . arrow q:30 KMONS: 2 = skeletal warrior name:skeletal_archer n_rpl n_des n_spe col:magenta \ spells:. ; shortbow . arrow q:30 KITEM: 2 = | MAP xxxxxxxxxxxxxxx x............1x x............1x x............1x .............2x x............1x x............1x x............1x xxxxxxxxxxxxxxx ENDMAP NAME: st_shrine_of_skulls DEPTH: Crypt MONS: flying skull band, lich KMONS: 3 = curse skull KMONS: 4 = lich / ancient lich KMONS: P = w:2 col:darkgrey plant name:withered name_adjective \ tile:mons_withered_plant / w:1 col:lightgrey plant name:withered \ name_adjective tile:mons_withered_plant KFEAT: 4 = | SUBST: p = Pp, p = PP., o = P.. MAP ooooooooo ooopppppppooo oopppcccccpppoo ooppccc.1.cccppoo oppcc.......ccppo oppc..ccccc..cpp.. opcc+cc|4|cc+cc... opcc3c*|||*c..+1.@ opcc+ccc3cccccc... oppc...c.c...cpp.. oppcc.......ccppo ooppccc.2.cccppoo oopppcccccpppoo ooopppppppooo ooooooooo ENDMAP NAME: st_burial_chamber TAGS: no_wall_fixup DEPTH: Crypt MONS: mummy, guardian mummy KMONS: 3 = guardian mummy KMONS: 4 = mummy priest KMONS: 5 = greater mummy SUBST: 1 = 221 KITEM: 345 = | MAP ccccccccccccc cc...........cc cc.cccc+cccc.cc cc.cc1...1cc.cc ccxccc...cccxcc c3x3c1...1c3x3c cxxxcc...ccxxxc c4x4c1...1c4x4c cxxxcc...ccxxxc c4x5c1...1c5x4c ccccccc+ccccccc .ccGcc...ccGcc. .......@....... ENDMAP NAME: st_small_mortuary DEPTH: Crypt KMONS: 1 : vampire mage w:20 / necromancer : dgn.delayed_decay(_G, 'd', 'human corpse') NSUBST: ' = 5:d / *:. MAP ccccccccc ccc...1...ccc cc*.........*cc c|*1.......1*|c cc*.........*cc cccc.......cccc cd.cc.....cc.dc c.............c cd.cc.....cc.dc cccc'''''''cccc cc'''''''''''cc c'''''''''''''c cc'''''''''''cc .ccc''ddd''ccc. ...cccc+cccc... ......@...... ENDMAP NAME: st_vampire_maze DEPTH: Crypt MONS: vampire, vampire knight, vampire mage SUBST: 1 = 12233 MAP ccccccccccccccccc c...c**c........c c.c.c11c.cccc.c.c c.c.+..c....c1c.c c.ccccccccc+ccc.c c......c*1..c...c c.cccc.c*1..c.c.c c1c....c*1..c.c1c ccc.ccccccccc.ccc c1..c.....c.....c ccc.c.ccc.c.ccc+c c...c.c1..c.c1..c c.ccc.ccc.c.c*..c c.......c...c**1c ccccccc@ccccccccc ENDMAP NAME: st_chilly_death TAGS: no_pool_fixup DEPTH: Crypt KMONS: 1 = lich KMONS: 2 = simulacrum w:15 / nothing w:20 KMONS: 3 = simulacrum KMONS: 4 = wraith / shadow wraith / freezing wraith w:30 KFEAT: 4 = deep_water KITEM: 1 = | KITEM: 3 = * MAP cccccccccc cc444cc444cc ccwwwwwwwwwwcc ccww22222222wwcc ccww22ww22ww22wwcc c4w22www22www22w4c c4w2wwcc++ccww2w4c ccw2wcc3333ccw2wcc ccw2wcc3133ccw2wcc c4w2wwcc33ccww2w4c c4w..wwccccww..w4c ccww..ww44ww..wwcc ccww..wwww..wwcc ccww......wwcc cc44c++c44cc cccc@@cccc ENDMAP NAME: nicolae_crypt_ancient_font TAGS: transparent extra DEPTH: Crypt SHUFFLE: HIJ NSUBST: A = @ / ., B = @ / ., C = @ / ., D = @ / . SUBST: HI = c, J : Gcc MAP cccAcHcAccc ccc.....ccc ccIcc.ccIcc D.cJc.cJc.B c.cc...cc.c H....V....H c.cc...cc.c D.cJc.cJc.B ccIcc.ccIcc ccc.....ccc cccCcHcCccc ENDMAP NAME: nicolae_crypt_small_crypt TAGS: allow_dup extra DEPTH: Crypt MAP ccccc cG.Gc c...c c...c cc+cc ENDMAP NAME: nicolae_crypt_fedhas_prevails TAGS: transparent extra DEPTH: Crypt WEIGHT: 3 TAGS: no_monster_gen no_item_gen no_trap_gen SUBST: D = dw, W = wp KMONS: d = col:darkgrey plant name:withered n_adj tile:mons_withered_plant / \ nothing w:20 KMONS: w = col:lightgrey plant name:withered n_adj \ tile:mons_withered_plant w:20 / nothing KMONS: p = plant KFEAT: _ = altar_fedhas MAP cccccccccc cddDwwWppc cddDwwWppc +......_pc cddDwwWppc cddDwwWppc cccccccccc ENDMAP NAME: nicolae_crypt_twisting_catacombs TAGS: transparent extra DEPTH: Crypt SHUFFLE: Aa/Bb/Dd/Ee/Ff/Jj/Hh/Ii, {[(< SUBST: ABDE = @, abd = G, efjhi = ., FJHI = c MAP ccccccccccIIcccccc H..h.....iiic..a.A H..h........c..a.A cccccccc..ccc..ccc J....ccc..ccc..ccc J....ccc..ccc....c cjjccc{....[c....c c..ccc......ccc..c c.......cc.......c c.......cc.......c c..ccc......ccc..c c....c(.... 8 then MONS: ancient lich MONS: bone dragon MONS: lich MONS: ancient champion MONS: skeletal warrior MONS: flying skull MONS: w:20 skeletal warrior / w:50 skeleton / nothing # vampire layout : elseif brnd > 4 then KMONS: 1 = vampire knight / Jory w:5, vampire knight KMONS: 2 = phantasmal warrior KMONS: 3 = vampire knight w:15 / \ dancing weapon ; long sword ego:vampirism ident:type KMONS: 4 = vampire mage KMONS: 5 = skeletal warrior / phantasmal warrior KMONS: 6 = vampire w:15 / jiangshi KMONS: 7 = vampire / skeletal warrior / w:15 zombie / wraith / w:5 nothing # ghost layout : elseif brnd > 0 then MONS: curse skull MONS: revenant / unborn w:1 MONS: lich MONS: eidolon / flayed ghost MONS: phantasmal warrior / shadow wraith w:6 MONS: flying skull MONS: wraith / freezing wraith / shadow wraith / spectral thing / \ hungry ghost / w:15 shadow / w:5 nothing # mummy layout - rare : else MONS: greater mummy MONS: sphinx MONS: mummy priest MONS: mummy priest MONS: guardian mummy MONS: flying skull MONS: mummy / guardian mummy / w:5 nothing : end NSUBST: / = 1:| / 2:* / *:% NSUBST: . = 5:0 / *:. NSUBST: %*| = 1:d / 1:h : crypt_loot_plus(_G) MAP xxxxvvvvvvvvvvvvvvvvvxxxx xxxvv..WWWWWWWWWWW..vvxxx xxvv..WWWWWWWWWWWWW..vvxx xxv...WWWb.b.b.bWWW...vxx xxv...WWb$$|*|$$bWW...vxx xxxxxxxxv...WW.$/|1|/$.WW...vxxxxxxxx xxccccccv...WWb$$|*|$$bWW...vccccccxx xxc/.cccv...WWWb.b.b.bWWW...vccc./cxx xxc...ccvv..WWWWWWWWWWWWW..vvcc...cxx xxxxxxxc.../ccvv..WWWWWWWWWWW..vvcc/...cxxxxxxx xxccccccc+cccccv...............vccccc+cccccccxx xxcU......cxxxxvv....2...2....vvxxxxc......Ucxx xxc..3....cxxxxxvv.....6.....vvxxxxxc....3..cxx xxc.......cxxxxxvvv.6.....6.vvvxxxxxc.......cxx xxc.......cxxxxxvvvvv.....vvvvvxxxxxc.......cxx xxc...5.5.cxxxxxvvvvvvv+vvvvvvvxxxxxc.5.5...cxx xxccccc+cccxxxxxvcccccU.Ucccccvxxxxxccc+cccccxx xxxxxxc.cxxxxxxxvc.U.cc+cc.U.cvxxxxxxxc.cxxxxxx xxc.cxxxxxccccG..F...F..Gccccxxxxxc.cxx xxc.cccccccG....45...54....Gccccccc.cxx xxc.......+.................+.......cxx xxc.cccccccG.......C.......Gccccccc.cxx xxc.c...+.ccc56.........65cccxxxxcc.cxx xxxxc.c/..c.ccc5...........5cccxxxxcc.cxxxx xxxxccc+ccc/c.+7+.............+7ccccccc+cccxxxx xxccc.5.5.ccccccc..c.......c..ccccccc.5.5.cccxx xxc7+.....+7ccc7+.............+7ccc7+.....+7cxx xxccc.....ccccccc..c.......c..ccccccc.....cccxx xxc7+.....+7ccc7+.............+7ccc7+.....+7cxx xxccc.....ccccccc..c.55555.c..ccccccc.....cccxx xxc7+.....+7ccc7+.............+7ccc7+.....+7cxx xxccc.....ccccccc..c6.6.6.6c..ccccccc.....cccxx xxc7+.....+7ccc7+.............+7ccc7+.....+7cxx xxccc.5.5.ccccccc..c.......c..ccccccc.5.5.cccxx xxxxccc+cccxxxc7+.............+7+..cccc+cccxxxx xxc...cxxxxccc..c.......c..ccc./ccc...cxx xxc.4.cxxxxc7+.............+7cccccc.4.cxx xxc./.cxxxxccc..c.......c..cccxxxxc./.cxx xxcccccxxxxc7+.............+7cxxxxcccccxx xxxxxxxxxxxccc....c...c....cccxxxxxxxxxxx xxxxc5.Vcc...ccV.5cxxxx xxcccccc...ccccccxx xxc.............cxx xxc..vcccccccv..cxx c.............c cccccc@c@cccccc ENDMAP ############################################################################## # gigantic sort of aquatic base # NAME: cryptofortress_bobbens ORIENT: encompass TAGS: no_monster_gen no_item_gen no_pool_fixup no_rotate no_vmirror PLACE: Crypt:$ KFEAT: A = w KMONS: A = flying skull KMONS: B = ancient lich KMONS: D = bone dragon KMONS: V = vampire knight KMONS: X = dancing weapon KMONS: L = lich KMONS: I = war gargoyle KMONS: G = crystal guardian KMONS: z = skeletal warrior KMONS: N = necromancer KMONS: H = hell knight KMONS: M = zombie / skeleton / w:5 necrophage KMONS: h = titan zombie / fire dragon zombie / golden dragon zombie / ghoul KMONS: 0 = lost soul / nothing # red metal walls COLOUR: = = red SUBST: = = + COLOUR: r = red TILE: r = wall_hell SUBST: r = c # emergency exits; most are closed NSUBST: ? = 3:+ / *:v NSUBST: . = 7:0 / *:. # Tomb entrance : if crawl.x_chance_in_y(5, 7) then SUBST: O = * NSUBST: P = 1:> / *:|** : else NSUBST: O = 1:> SUBST: P = |** : end KFEAT: > = enter_tomb # Loot randomisation SUBST: % = %$, * = *%, / = |** NSUBST: *| = 1:d / 1:h : crypt_loot_plus(_G) MAP vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwv..........................vAwwwwwwwwwwwwwv vwwwwwwwwwwwwwwv.........rrrrrrrr.........vAAAwwwwwwwwwwwv vwwwwwwwwwwwwwwv.........r//||//r.........vAAAAAAwwwwwwwwv vwwwwwwvvvv?vvvv......rr=rr*/O*rr=rr......v?v?v?v?vwwwwwwv vwwwwwwv.......v......r$$*rr++rr*$$r......v.......vwwwwwwv vwwwwww?....H..v.....rrrrOr$$$$rOrrrr.....v.......?wwwwwwv vwwwwwwv....H..+........rrr$$$$rrr........+.h..H..vwwwwwwv vwwwwww?....H..v......L...r$$$$r...L......v....H..?wwwwwwv vwwwwwwv.h.vvvvv...rrr....rr++rr....rrr...v....H..vwwwwwwv vwwwwww?...v...vv....rr.rrrU..Urrr.rr....vvv+v....?wwwwwwv vwwwwwwv...v.X..vv....rrr........rrr....vv...vvvvvvwwwwwwv vwwwwwwv...+.....vv....r.U..BC..U.r....vvvv.....+Mvwwwwwwv vwwwwwwv...v..V.$vvv...rr........rr...vvvM+.....vvvwwwwwwv vwwwwwwv...v...$Ov.vv...rrrU..Urrr...vv.vvv.....+Mvwwwwwwv vwwwwwwv...vvvvvvv..vv....rr..rr....vv..vM+.....vvvwwwwwwv vwwwwwwv...vvv...v...vv............vv...vvv.....+Mvwwwwwwv vwwwwwwv...vv....+....vv..........vv....+....N..vvvwwwwwwv vwwwwwwv...vNz...v.....vv........vv.....vvv.....+Mvwwwwwwv vwwwwww?...v.M...v....G.vv......vvI.....vM+.....vvvwwwwwwv vwwwwwwv...v....vv....vvvvvvvvvvvvvv....vvv.....+Mvwwwwwwv vwwwwwA?.......vv....vv.....ll.....vv....vvv+v..vvvwwwwwwv vwwwwwAv......vv....vv..............vv....vvMv..+Mvwwwwwwv vwwwwAA?.....vv....vv................vv....vvv..vvvwwwwwwv vwwwAAAv.....v....vv.......N..N.......vv....vv..+Mvwwwwwwv vwvvvvvvvvvvvvv+vvvvv+vv.Mzz..zzM.vv+vvvvv+vvvvvvvvvvvvvwv vwvv.........v..I.v....v..........v....v.........v..%Ovvwv vwvv.........v....v....v..........v....v.........v...$vvwv vwvv.........+....v....v..........v....v.....X..V+....vvwv vwvv....D....v....v..z.v..........v.z..v.........v....vvwv vwvvv....z...v....+...Nvr........rvN...+......X..vvvvvvvwv vwwvv........v....v..z.vrr......rrv.z..v.............vvwwv vwwvvv.......+....v....vrrrr++rrrrv....v............vvvwwv vwwwvv.......v....v....vrrUz..zUrrv....v............vvwwwv vwwwvvvvvvvvvvvvvvvv+vvvrI......Irvvv+vvvvvvvvvvvvvvvvwwwv vwwwwvvvP**$$v.........vrrrr++rrrrv.........v$$**Pvvvwwwwv vwwwwwvvv/*$$+.........vrrww..wwrrv.........+$$*/vvvwwwwwv vwwwwwwvvv*$$v...X.....vrwAw..wAwrv...X.....v$$*vvvAwwwwwv vwwwwwwwwvvv$v....G....vwwww..wwwwv..G......v$vvvAAwwwwwwv vwwwwwwwwwvvvv.........vwwww..wwwwv.........vvvvwwwwwwwwwv vwwwwwwwwwwwvvvv.......vwwww..wwwwv.......vvvvwwwwwwwwwwwv vwwwwwwwwwwwwwvvvv.....vwwww..wwwwv.....vvvvwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwvvvvv..vwwww..wwwwv..vvvvvwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwvvvvvAwww..wwwAvvvvvwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwvvAwww..wwwAvvwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwAwwww..wwwwAwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwAww....wwAwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwww....wwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwww....{.wwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwAwww.[....wwwAwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwww..(.wwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwAwwwwwwAwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ENDMAP ############################################################################## # eye to eye with the evil # # XXX: Undiggable glass has been converted to grates. NAME: david_glass_crypt ORIENT: float TAGS: no_item_gen no_rotate PLACE: Crypt:$ MARKER: m = lua:portal_desc {wall_phase = 1} KFEAT: m = iron_grate MONS: patrolling lich / patrolling ancient lich MONS: bone dragon / curse skull / curse toe MONS: flying skull / skeletal warrior / w:40 nothing MONS: ancient champion KFEAT: ^ = alarm trap SUBST: F = G:99 F:1 KMONS: F = orange crystal statue / silver statue / ice statue {{ lua_marker("|", Triggerable.synchronized_markers( function_at_spot("crypt_drop_grates", { trig = false }, true, { only_at_slave = true, listen_to_slaves = true }))) }} NSUBST: %| = 1:d / 1:h : crypt_loot_plus(_G) MAP ..................... ..................... ..vvvvnnnnnnnnnvvvv.. ..vlllllllllllllllv.. ..vlllllllllllllllv.. ..vllll.%|||%.llllv.. .4vll..%|||||%..llv4. ..vl....%|||%....lv.. ..vl.............lv.. ..vmm..F.vvv.F..mmv.. ..v1m...^^^^^...m1v.. ..vvvvvvv+++vvvvvvv.. ...vv..2.....2..vv... ..vv.333333333.vv.. ...vvv.......vvv... ...vv+++++vv... ............. ENDMAP ############################################################################## # Four quadrants (by mu) # burial hoard (NE), chapel of kikubaaqudgha (NW), catacombs (SE), crematory (SW) # NAME: quadcrypt_mu ORIENT: encompass TAGS: no_monster_gen no_item_gen no_pool_fixup no_rotate no_vmirror no_hmirror PLACE: Crypt:$ KMONS: 0 = lost soul / nothing ####### chapel garden SUBST: F = f ? SUBST: f = p:1 .:1 KFEAT: p = . # "withered plant" instead of "plant" KMONS: p = w:2 col:darkgrey plant name:withered name_adjective \ tile:mons_withered_plant / w:1 col:lightgrey plant name:withered \ name_adjective tile:mons_withered_plant ####### hidden skeleton; sometimes good pain weapon, or draining short sword KMONS: ! = skeletal warrior ; w:2 dagger ego:pain | short sword ego:draining |\ w:2 cutlass ego:pain | w:1 quick blade ego:pain KFEAT: o = granite_statue SUBST: B = b % KITEM: b = any book SUBST: u = U Y KMONS: 8 = gargoyle ####### NW monsters (chapel). KMONS: A = ancient lich / w:2 mummy priest KMONS: DL = lich / w:5 ancient lich KMONS: E = war gargoyle KMONS: G = shadow / hungry ghost / wraith ####### NE monsters (hoard). On a coinflip, either vampires or mummies. : if crawl.coinflip() then KMONS: H = vampire knight KMONS: I = vampire mage KMONS: J = jiangshi KMONS: P = vampire / zombie / skeleton : else KMONS: H = sphinx KMONS: I = guardian mummy KMONS: J = guardian mummy / mummy KMONS: P = skeleton / mummy : end ####### SE monsters (catacombs). Either corporeal or incorporeal undead. : if crawl.coinflip() then KMONS: Z = curse skull KMONS: Q = bone dragon KMONS: R = skeletal warrior KMONS: S = zombie / skeleton : else KMONS: Z = curse skull KMONS: Q = eidolon KMONS: R = phantasmal warrior / flayed ghost w:8 KMONS: S = shadow / wraith / freezing wraith / shadow wraith / wight : end ####### SW monsters (crematory). Either fiery undead or hellish. : if crawl.coinflip() then KMONS: t = fire giant skeleton / fire dragon skeleton KMONS: X = w:1 curse skull / w:19 revenant : else KMONS: t = w:20 hell knight / smoke demon / red devil KMONS: X = w:1 curse skull / w:19 hell knight : end ####### Randomisation of doors SUBST: K : Kvvv NSUBST: K = 1:+ / *:v NSUBST: ' = 1:+ / *:v NSUBST: " = 1:+ / *:v NSUBST: . = 8:0 / *:. NSUBST: *| = 1:d / 1:h ####### Tomb entrance : if crawl.one_chance_in(4) then KFEAT: L = enter_tomb KFEAT: _ = altar_kikubaaqudgha SUBST: O = $ : elseif crawl.one_chance_in(3) then KFEAT: _ = enter_tomb SUBST: O = $ : else KFEAT: _ = altar_kikubaaqudgha NSUBST: O = 1:> / *:$ KFEAT: > = enter_tomb : end SUBST: ? = $ % * |:1 : crypt_loot_plus(_G) MAP vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vccccccccccccccccccccccccc......"...Bvvvvvvvvvvvvvvvvvvvvvv vc..D..c.....c....Bc..+..c.ffff.vvvBLvvvvvvvvvvvvvvvvvvvvvv vc.c.c.+.....+....cc..+..c.ffFf.vvvv"vvvvvvvvvvvvvnP+.....v vc.._..+...D.c....Bc..c..m.ffFf.vO???||$$$.vvvvv..nPn|????v vc.c.c.c.....c....cc..c..c.ffff.v?$$$$$$$$.vvvv...nPn$$$$$v vc.....ccc+ccc....Bc..cGGc.ffff.vnnnnnnnnn+vvv..H.nPn$$O$$v vc.....c.....c....cc..c..c.ffff.v..........vv.....nPn$$$$$v vc.....c?....c..A.Bc..c..m..fff.v..........vv.uvu.nPn$$$$$v vc.....c|?...c....cc..c..c...ff.v..vvvvvvvvv..vvv.nPnnnnnnv vc.....c||?EEcBcBcc...c..c....f.v..........+..uvu.nPPPPPPPv vc++cccccccccccccc...cc..c......v..........+......nnnnnnn+v vc.....G............cc...m..G...vvvvvvvvvvvv.H............v vc.....G...........cc...cc......v....vvvvvvv..............v vccccccccccccccccccc...cc...ff..v.JJ...vvvvvv....v..v..v..v vc....................cc..fffff.v.......vvvvv.............v vc...................ccE..fffff.vv+vv....vvvvv...v..v..v..v vccmcccmm++mmcccmcccmc...fffff..v...vvv...vvvvv...........v v.......f..f............fffffff.v.....vv...vvvvv..........v v....ffff..ffff.........fffFfff.v......v...vvvvvvvvvvvv++vv v.G.ffff...ffff...G....ffffffff.v......vv...v.....I.......v v...ffff...fffff.......fffffff..v.......v...+.............v v....ffff....ffff.......f.ffff..v.......v...+.............v v......f.f....ffff..............v.......v...v.....I.......v vvvvvvvvvvvvvv++vvvvvvvvvvvvvvvvvvvvvvv+vvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvv....v??llv??llv??llvvvvvvo.ovvvWWWWWWW.......v vvvvvlllvvvvv....v?.tlv?.tlv?.tlvvvv.......vvWWWWWWZ.mmmm.v vvv.......vvv....v....v....v....vvv.........vvWWWWWWWm*|m.v vv.........vv....v....v....v....vv...........vWWWWWWWW*|m.v v..ccc.ccc..vv++vvv++vvv++vvv++vvv...R.Q.R...vvWWWWmWW%|m.v v...lc.cl...v...................vo...........ovWWWWmmmmmm.v v..t.c.c.t..+...................+......U......+...........v v...........v...................vo...........ov...........v v.cccc.cccc.vvvvvvvvvKvvvvvvvvvvvv.........vvvvvvvvvvvvvvvv v.cll...llc.v??...... = enter_tomb MONS: w:3 patrolling lich / w:1 patrolling revenant MONS: patrolling zombie / nothing MONS: spider / jumping spider / wolf spider / redback / w:25 nothing MONS: w:5 wraith / phantasmal warrior / eidolon / w:5 freezing wraith / w:5 nothing MONS: raven skeleton / w:30 nothing MONS: w:3 guardian mummy / w:1 mummy MONS: w:5 patrolling mummy priest / w:1 patrolling greater mummy KMONS: z = curse skull SHUFFLE: 9H : if crawl.coinflip() then # Temple of yred KFEAT: _ = altar_yredelemnul KMONS: 9 = patrolling profane servitor KMONS: H = w:20 patrolling unborn / patrolling profane servitor KMONS: 0 = patrolling ghoul KMONS: A = patrolling death knight KMONS: B = skeletal warrior KMONS: C = necrophage KMONS: E = phantasmal warrior / w:4 flayed ghost / w:1 phantom / w:1 shadow / nothing KMONS: F = patrolling bone dragon / patrolling unborn : else # Temple of kiku - more necromancers, more demonic (kiku's description refers to # him/her/it being demonic). Not as much undead in this set. KFEAT: _ = altar_kikubaaqudgha KMONS: 9 = patrolling ancient lich KMONS: H = w:20 patrolling lich / patrolling ancient lich KMONS: 0 = patrolling reaper w:5 / patrolling soul eater KMONS: A = patrolling deep elf death mage KMONS: B = necromancer KMONS: C = hellwing KMONS: E = skeleton w:13 / nothing KMONS: F = patrolling reaper : end KMONS: S = lost soul / nothing NSUBST: . = 8:S / *:. SUBST: n : ncc : set_feature_name("granite_statue", "gravestone") : set_feature_name("tree", "dead tree") NSUBST: *| = 1:d / 1:h : crypt_loot_plus(_G) MAP tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt ttt"""ttttttttvvvvvvvvTttTtttttttttttttttttttttttTTTT...Tttttwwzttttt$$$c...--44vT...tTtttt ttttttT.......x***x...ccc-xxx--'''--xxx-ccc.T........c$$$$$$$c..vvvvvvvvvv.Ttttt tttttttT.t.T..xx-xx....n-------'''-------n.......T...c$$$7$$$c..--4--vT..t.Ttttt ttttttttT......x+x.....n-------'''-------n.....t..t..c**666**c....---v..t...Tttt tttttttttTt..T.x"x....ccc-xxx--'''--xxx-ccc..T...t..tc-------c....T..t....t..Ttt tttttttttT......".....ccc-xxx--'''--xxx-ccc...t....ttcccc+cccct.t.t........tTttt ttttttttTt..T..."".....n--C----'''----C--n..t..tt.ttttccc-ccctt.....t...t..Ttttt tttttttT.........".....nCC-----'''-----CCn....ttttt"""c-----ctttttt...t..Ttttttt tttttTT.t..T....."....cccccxxxcDDDcxxxccccc.tttt"""2""cc+++cc""""2tt.t..Tttttttt ttttT.t5........""....ccc--xxxV'''Vxxx--ccc 10 then MONS: patrolling skeletal warrior w:8 / patrolling wight MONS: ancient lich MONS: bone dragon w:1 / ancient champion / lich w:1 MONS: flying skull / skeleton MONS: w:50 skeleton / wight MONS: generate_awake bone dragon / generate_awake curse toe : elseif brnd > 6 then MONS: patrolling vampire ; scimitar | great sword | battleaxe | \ war axe | broad axe . chain mail w:15 | plate armour w:1 KMONS: 2 = vampire knight / Jory w:15, vampire knight KMONS: 3 = dancing weapon ; long sword ego:vampirism / vampire knight w:1 / \ vampire ; scimitar | great sword | battleaxe | \ war axe | broad axe . chain mail w:15 | plate armour w:1 KMONS: 4 = phantasmal warrior / jiangshi KMONS: 5 = vampire / zombie / golden dragon zombie w:3 / storm dragon zombie w:3 KMONS: 6 = generate_awake vampire mage : elseif brnd > 2 then MONS: patrolling freezing wraith / patrolling spectral thing w:8 MONS: revenant MONS: eidolon / unborn w:6 MONS: flayed ghost / phantasmal warrior MONS: spectral thing / simulacrum / shadow w:5 / wraith w:5 / shadow wraith / \ spectral storm dragon w:5 / spectral ice dragon w:5 / \ spectral iron dragon w:5 MONS: generate_awake shadow dragon / generate_awake ghost moth : else MONS: patrolling guardian mummy MONS: greater mummy MONS: mummy priest w:8 / guardian mummy ; long sword | great sword | \ battleaxe | war axe | broad axe . chain mail w:15 | plate armour w:1 MONS: guardian mummy MONS: bog body / mummy / guardian mummy MONS: generate_awake sphinx : end NSUBST: %*| = 1:d / 1:h : crypt_loot_plus(_G) MAP ccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccc cc*$*c|%*.......**|c.........cc cc$3$c|*....2....%|c..G.3.G..cc cc...c|%|.......|%|c.........cc ccc+cccccc.....ccccccc+cccBBBcc cc...c...ccc+ccc...c.....c$$$cc cc.4.c.G.4.RRR.4.G.+..G..c$$$cc cccccccccccccccccc...c.............c.....c%%*cc ccccccccccccccccccc+ccccccc+++ccccccc+ccccccccc c$$A...c|...*c%.*cc...ccc.......ccc...cc%*|%*cc c$$A.3.c..3..c.3.c..G.....G...G.....G..c..3..cc c$$A...c.....c...c..1...............1..c.....cc c$$Ac+cccc+cccc+cc..G..G..G...G..G..G..cc+++ccc ccccc...........cc..1...............1..c.....cc ...cc..G4...4G..cc..G..G..G...G..G..G..c.4.4.cc ...ccc.........ccc..1...............1..c.....cc @..cccccc+++cccccc..G..G..G...G..G..G..c.....cc ...ccc.........cccc...................ccc...ccc ...cc..G1...1G..ccc+c+c+c+c...c+c+c+c+ccc+++cccc c..cc...........ccc5c5c5c5c+++c5c5c5c5ccc...c+Cc c..ccccc.....cccccc+ccccccc...cccccccccc.....ccc c..c...c.....c...cc.c...............ccC+.....+Cc c..c.............cc.c....1.....1....cccc.....ccc c......G.....G...cc.cc.............+ccC+.....+Cc c.......1...1....cc.cccccc.....ccccc.ccc.....ccc c......G.....G...cc+cc.............cc+C+.....+Cc c.......1...1....+..+....1.....1....cccc.....ccc c......G.....G...cccc...............ccC+.....+Cc c..c.............cccccccccc+++cccccccccc.....ccc c..c...c.....c...c...........................+Cc cccccccc.....ccccc...........................ccc cc.............c...........................+Cc cc.G.G.....G.G.c.cccccc.......ccccccc......ccc cc..1.......1..cc+$$$$cc.....cc%....+c.....+Cc cc.G.........G.cc$$$$$cc.....cc%1...cccccccccc cc..1.......1..cc$$$$1cc.....cc*%%%%cc........ cc.G.........G.cccccccc.......ccccccc......... cc..1.......1..c.............................@ cc.G.........G.c.............................. @............................................. cccccc.....ccccccccccccccccccccccccccccccccccc cccccc.....ccccc cc.............c .............c ........@....... ENDMAP ############################################################################## # The death's head, by Grunt. # NAME: grunt_crypt_end_deaths_head TAGS: patrolling no_monster_gen no_rotate no_hmirror no_vmirror PLACE: Crypt:$ ORIENT: encompass MONS: skeletal warrior / jiangshi, flying skull band SHUFFLE: 34 / 56 / 78 / 90, AB / CD / EF / HI / JK / LM / NO / PQ KMONS: 3 = ghoul KMONS: 4 = necrophage KMONS: 5 = necromancer KMONS: 6 = simulacrum / spectral thing / zombie w:5 / skeleton w:5 / \ hell knight w:5 KMONS: 7 = death knight KMONS: 8 = death cob / skeletal warrior KMONS: 9 = ancient champion KMONS: 0 = skeletal warrior # Room guardian waves; these should be tougher, but not boss tier. KMONS: A = lich KMONS: C = revenant KMONS: BD = freezing wraith / shadow wraith / wraith KMONS: E = deep elf death mage KMONS: F = lost soul / small abomination / large abomination w:2 KMONS: H = unborn KMONS: I = death knight w:5 / nothing KMONS: J = profane servitor KMONS: L = bone dragon KMONS: KM = nothing KMONS: NO = jiangshi KMONS: P = flayed ghost KMONS: Q = flayed ghost / shadow w:20 # Boss tier monsters. : if crawl.one_chance_in(4) then KMONS: R = Khufu, greater mummy KMONS: S = mummy priest KMONS: T = guardian mummy : elseif crawl.one_chance_in(3) then KMONS: R = Jory, vampire knight KMONS: S = vampire mage KMONS: T = vampire / jiangshi : elseif crawl.coinflip() then KMONS: R = ancient lich KMONS: S = flayed ghost KMONS: T = phantasmal warrior : else KMONS: R = curse skull KMONS: S = ancient champion KMONS: T = skeletal warrior : end KFEAT: R = enter_tomb KFEAT: _ = altar_yredelemnul / altar_kikubaaqudgha SHUFFLE: {[(< NSUBST: *| = 1:d / 1:h : crypt_loot_plus(_G) MAP ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccc|*$$...R...$$*|ccccccccccccccccccccccccc cccccccccccccccccccccc..cc*$$.T...T.$$*cc..cccccccccccccccccccccc cccccccccccccccccccc....ccc$$...T...$$ccc....cccccccccccccccccccc ccccccccccccccccccc.G.G.c.ccccc+++ccccc.c.G.G.ccccccccccccccccccc cccccccccccccccccc......c...............c......cccccccccccccccccc ccccccccccccccccc.......c..G..T...T..G..c.......ccccccccccccccccc cccccccccccccccc..K.J.K.c......T.T......c.M.L.M..cccccccccccccccc cccccccccccccccc........c..G.........G..c........cccccccccccccccc ccccccccccccccc....K.K..cc.............cc..M.M....ccccccccccccccc ccccccccccccccc..........c.G.........G.c..........ccccccccccccccc ccccccccccccccc+c........c....c+++c....c........c+ccccccccccccccc cccccccccccccc..cc.G...G.c.S.cc...cc.S.c.G...G.cc..cccccccccccccc ccccccccccccccO.cc.......c..cc.....cc..c.......cc.Qcccccccccccccc ccccccccccccccONcc...F...cccc...9...cccc...I...ccPQcccccccccccccc ccccccccccccccOOcc.....F..c...G...G...c..I.....ccQQcccccccccccccc ccccccccccccccc$$c...E....c.0.......0.c....H...c$$ccccccccccccccc ccccccccccccccc$$c.....F..+.....Y.....+..I.....c$$ccccccccccccccc ccccccccccccccc$$cc...F...c.0.......0.c...I...cc$$ccccccccccccccc ccccccccccccccc**cc.G.G...c...G...G...c...G.G.cc**ccccccccccccccc cccccccccccccccc|cc....cccccc.......cccccc....cc|cccccccccccccccc cccccccccccccccc|cc..ccc.B..ccc+++ccc..D.ccc..cc|cccccccccccccccc cccccccccccccccccccccc*$..B.+...8...+.D..$*cccccccccccccccccccccc ccccccccccccccccccc.c|*$.A..c.......c..C.$*|c.ccccccccccccccccccc cccccccccccccccccc..cc*$..Bcc.8.7.8.ccD..$*cc..cccccccccccccccccc cccccccccccccccccc...c$$.B.c.........c.D.$$c...cccccccccccccccccc cccccccccccccccccc.G.cc...ccc...8...ccc...cc.G.cccccccccccccccccc ccccccc...cccccccc....ccccc.+c.....c+.ccccc....cccccccc...ccccccc ccccccc.[.cccccccc......c....ccccccc....c......cccccccc.{.ccccccc ccccccc....ccccccc...2..4..2.ccccccc.2..6..2...ccccccc....ccccccc ccccccc.G...ccccccc..........ccccccc..........ccccccc...G.ccccccc cccccc.......ccccccc..4.3V4..ccccccc..6V5.6..ccccccc.......cccccc ccccc..........ccccccc.......ccccccc.......ccccccc..........ccccc cccccc..cc...1....cccccc4....cc...cc....6cccccc....1...cc..cccccc cccccccccccc...2...cccccc..1.cc._.cc.1..cccccc...2...cccccccccccc ccccccccccccccc.....ccc.cc.............cc.ccc.....ccccccccccccccc ccccccccccccccccc....+.G.c....V...V....c.G.+....ccccccccccccccccc ccccccccccccccccccc..+...ccc.........ccc...+..ccccccccccccccccccc ccccccccccccccccccccccc..c1cccc+++cccc1c..ccccccccccccccccccccccc ccccccccccccccccccccccc.2c..+.c1.1c.+..c2.ccccccccccccccccccccccc cccccccccccccccccccccc...c+cc.+...+.cc+c...cccccccccccccccccccccc cccccccccccccccccccccc..cc.1ccccccccc1.cc..cccccccccccccccccccccc ccccccccccccccccccccccc..cc.+.+.1.+.+.cc..ccccccccccccccccccccccc cccccccccccccccccccc.c+...ccc.+...+.ccc...+c.cccccccccccccccccccc cccccccccccccccccc....+.....ccc+++ccc.....+....cccccccccccccccccc ccccccccccccccc.......cc.................cc.......ccccccccccccccc cccccccc....c....2..ccccc...1...2...1...ccccc..2....c....cccccccc ccccccccc......1..cccccccc....G...G....cccccccc..1......ccccccccc cccccccccc..G....ccccccccccc.........ccccccccccc....G..cccccccccc ccccccccccc....ccccccccccccccccccccccccccccccccccc....ccccccccccc ccccccccccc.(.ccccccccccccccccccccccccccccccccccccc.<.ccccccccccc ccccccccccc...ccccccccccccccccccccccccccccccccccccc...ccccccccccc ccccccccccc..ccccccccccccccccccccccccccccccccccccccc..ccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ENDMAP ############################################################################### NAME: lightli_unholy_cathedral TAGS: no_monster_gen PLACE: Crypt:$ ORIENT: float MONS: ancient champion, lich / revenant, jiangshi / ghoul w:2 MONS: profane servitor / bone dragon / curse toe / \ greater mummy w:2 / ancient lich w:2 MONS: skeletal warrior ; halberd | glaive | bardiche w:5 MONS: freezing wraith w:20 / shadow wraith w:20 / flayed ghost MONS: zombie w:20 / skeleton w:20 / simulacrum / nothing w:25 KMONS: 8 = vampire knight KMONS: 9 = vampire w:6 / vampire mage w:4 KMONS: 0 = mummy priest KMONS: A = mummy w:6 / guardian mummy w:4 SHUFFLE: 56, 89 / 0A SUBST: 5 = 5., 6 = 6., 9 = 99., A = AA. KFEAT: Y = altar_yredelemnul KFEAT: K = altar_kikubaaqudgha NSUBST: *| = 1:d / 1:h : crypt_loot_plus(_G) MAP cccc cc$$cc c$$$$c ccccc$$$$ccccc cccccccc++cccccccc ccccc..........ccccc cc**c............c**cc c||*+..4.K..Y.4..+*||c c||*+............+*||c cc**c............c**cc ccccc.........cccccc ccccccccc++ccccccccc ccccccccc....ccccccccc cccc9....+.33.+....9cccc ccc989...+.33.+...989ccc cc..9..ccc....ccc..9..cc cc.......cc**cc.......cc cc........cccc........cc cc.......2cccc2.......cc cc........cccc........cc cc5..5...ccVVcc...5..5cc cc.11.cccc....cccc.11.cc cc5..5...+.11.+...5..5cc cc.......+5..5+.......cc cc...ccccc....ccccc...cc cc.7.cc c.55.c cc.7.cc cc7V7cc cc++cc cc7V7cc cc.7.cc Gc..cG cc.7.cc ccccccc ..@@.. ccccccc ccccccc ccccccc ENDMAP NAME: cheibrodos_crypt_down_in_the_bonehoard DEPTH: Crypt, !Crypt:$ TAGS: no_item_gen no_monster_gen no_pool_fixup ORIENT: float MONS: lich, mummy priest, freezing wraith / w:5 flayed ghost KITEM: 1 = % KFEAT: A = altar_kikubaaqudgha SHUFFLE: 12 NSUBST: . = 8:0 NSUBST: " = 1:| / 5=*$ / *:% MAP ccccc ccccc cc.G.cc cc.G.cc cc.....ccccccc.....cc c..0....c...c....0..c cG..9...+.0.+...0..Gc ccccccc....0..c...c..0....c cc.....cc.....ccccccc.....cc cc.ccccc.cc...ccWWWWW+c...cc c.cc"""cc.cc+ccWWwwwWWccccc c.c""""1c.c...cWww3wwWc.... c.+""A""c.+.0GcWw3V3wWcG0.@ c.c""""1c.c...cWww3wwWc.... c.cc"""cc.cccccWWwwwWWcc+cc cc.ccccc.cc...c+WWWWWcc...cc cc.....cc.....ccccccc.....cc ccccccc....0..c...c..0....c cG..9...+.0.+...0..Gc c..0....c...c....0..c cc.....ccccccc.....cc cc.G.cc cc.G.cc ccccc ccccc ENDMAP NAME: cheibrodos_crypt_eye_of_stone DEPTH: Crypt, !Crypt:$ TAGS: no_item_gen no_monster_gen ORIENT: float MONS: giant eyeball, silver statue / orange crystal statue / curse skull MONS: ancient champion, skeletal warrior SHUFFLE: AB / CD SUBST: A = G, B = 1, C = ., D = 2 KFEAT: - = altar_kikubaaqudgha SUBST: * = *% MAP cccc cc$*cc cccc..$*c cccc......$c cc.4.......cc cc.3.......ccc c..4......ccVcc cc.4.cAc...cV... c-3..ABA...+...@ cc.4.cAc...cV... c..4......ccVcc cc.3.......ccc cc.4.......cc cccc......$c cccc..$*c cc$*cc cccc ENDMAP