From 12ec49f4941b83c362269a7a420d0f709c05a6a6 Mon Sep 17 00:00:00 2001 From: evktalo Date: Sat, 10 Oct 2009 20:08:18 +0300 Subject: A new Ice Cave map by Zaba. Signed-off-by: evktalo --- crawl-ref/source/dat/icecave.des | 1779 ++++++++++++++++++++------------------ 1 file changed, 926 insertions(+), 853 deletions(-) (limited to 'crawl-ref/source/dat/icecave.des') diff --git a/crawl-ref/source/dat/icecave.des b/crawl-ref/source/dat/icecave.des index 7c382cf14d..b03c7612cf 100644 --- a/crawl-ref/source/dat/icecave.des +++ b/crawl-ref/source/dat/icecave.des @@ -1,853 +1,926 @@ -############################################################################### -# -# The Ice Cave (Eino) -# -# -# Ice Cave is aimed to appear at somewhere in the middle game. It should be -# fairly challenging, but also allow retreating. The entries shouldn't be out -# of depth. -# -# Flavour: white colours, ice monsters, appropriate clouds. -# The escape is at the start. The player can back away if s/he decides -# some challenges are too much to handle. -# -############################################################################### - -{{ -function ice_cave_portal(e) - local desc_long = "A permanent cold front seems to surround this " .. - "portal. Whatever lives on the other side, they will be full of " .. - "grim and arctic fury. You note that the archway is melting away." - - local timeout_turns = crawl.random_range(1200, 1700) - - local messager = - timed_msg { - visible = true, - -- $F{xxx} will be substituted with the 'entity' property of the timed - -- marker, or with the desc property (if entity is not set). - messages = time_messages(timeout_turns, - "$F{The} is slowly melting away.", - "$F{The} is melting away.", - "$F{The} is quickly melting away.", - "$F{The} is almost completely melted.") - } - - e.lua_marker('O', - timed_marker { - disappear = "The archway melts and disappears.", - desc = "A frozen archway", - desc_long = desc_long, - entity = 'archway', - dst = "ice_cave", - dstname_abbrev = "IceCv", - dstorigin = "in an ice cave", - overmap = "frozen archway", - turns = timeout_turns, - floor = "floor", - msg = messager }) - e.kfeat("O = enter_portal_vault") - e.colour("O = white") -end -}} - -{{ --- Alter short feature descriptions for all ice cave destination vaults. -function ice_cave_feat_descs() - dgn.set_feature_desc_short("rock wall", "ice covered $BASE") - dgn.set_feature_desc_short("gate leading back to the Dungeon", - "ice covered $BASE") - dgn.set_feature_desc_short("empty arch of ancient stone", - "ice choked $BASE") - dgn.set_feature_desc_short("Some shallow water", - "Some ice crusted shallow water") - dgn.set_feature_desc_short("Some deep water", - "Some ice crusted deep water") - - dgn.set_feature_desc_long("Some deep water", - "It looks freezing!"); -end - -dgn.set_lt_callback("ice_cave", "ice_cave_feat_descs") -}} - -# For destination (not entry) vaults, use the following line after all -# substitutions have been performed: -# : ice_cave_colours(_G) -{{ -function ice_cave_colours(e) - e.kfeat("< = exit_portal_vault") - e.colour("< = white") - e.lrockcol("white") - e.lfloorcol("blue") - e.lrocktile("wall_ice") - e.lfloortile("floor_ice") -end -}} - -# Using this function will turn any ! glyph on the map into a fog generator. -# Any use requires two parameters as follows: -# : place_fog(_G, "freezing vapour", 25) -{{ -function place_fog(e, type, strength) - e.lua_marker("!", fog_machine { pow_max = strength, cloud_type = type, - delay_min = 50, delay_max = 300, size = 12, - start_clouds = 1 } ) -end -}} - -# Monster set functions - -# Some random monster lists are the same for multiple destination caves. -# : ice_cave_random_monster_list_natural_giant(_G) -{{ -function ice_cave_random_monster_list_natural_giant(e) - e.set_random_mon_list("wolf w:35 / yak w:35 / polar bear w:15 / death yak / \ - frost giant w:5") -end -}} - -# : ice_cave_random_monster_list_undead_demon(_G) -{{ -function ice_cave_random_monster_list_undead_demon(e) - e.set_random_mon_list("white imp w:20 / ufetubus w:20 / freezing wraith / \ - wolf simulacrum / yak simulacrum / \ - polar bear simulacrum / human simulacrum / \ - elf simulacrum / orc simulacrum / \ - draconian simulacrum / ogre simulacrum / \ - centaur simulacrum / troll simulacrum / \ - naga simulacrum / blue devil / ice devil / \ - ice fiend w:5") -end -}} - -# : ice_cave_random_monster_list_undead_necromancer(_G) -{{ -function ice_cave_random_monster_list_undead_necromancer(e) - e.set_random_mon_list("white imp w:20 / ufetubus w:20 / freezing wraith / \ - wolf simulacrum / yak simulacrum / \ - polar bear simulacrum / human simulacrum / \ - elf simulacrum / orc simulacrum / \ - draconian simulacrum / ogre simulacrum / \ - centaur simulacrum / troll simulacrum / \ - naga simulacrum / necromancer") -end -}} - -# Currently, all the "caverns" maps use the same monster sets for placement. -# : ice_cave_caverns_undead_demon_monster_set(_G) -{{ -function ice_cave_caverns_undead_demon_monster_set(e) - e.mons("white imp w:5 / ufetubus w:5 / human simulacrum w:2 / \ - elf simulacrum w:2 / orc simulacrum w:2") - e.mons("polar bear simulacrum / freezing wraith w:3 / nothing w:1") - e.mons("ice statue") - e.mons("ice devil") - e.mons("draconian simulacrum / ogre simulacrum / centaur simulacrum / \ - naga simulacrum / troll simulacrum") - e.mons("freezing wraith / blue devil") - e.mons("patrolling ice fiend") -end -}} - -# : ice_cave_caverns_natural_giant_monster_set(_G) -{{ -function ice_cave_caverns_natural_giant_monster_set(e) - e.mons("wolf / yak w:3 / nothing w:1") - e.mons("polar bear / nothing w:5") - e.mons("ice statue") - e.mons("polar bear / death yak w:5") - e.mons("polar bear / yak") - e.mons("wolf") - e.mons("patrolling frost giant") -end -}} - -# Add a milestone for entering the Ice Cave. -{{ -function ice_cave_milestone(e) - crawl.mark_milestone("br.enter", "entered an Ice Cave.") -end -}} - -# Entries ########################################## - -NAME: portal_ice_cave_entry_animals_and_master -TAGS: uniq_ice_cave -DEPTH: D:16-20, Lair:6- -ORIENT: float -: ice_cave_portal(_G) -COLOUR: X = white -KFEAT: X = x -MONS: wolf / yak w:5 / nothing w:1 -MONS: yak / polar bear w:5 / nothing w:1 -MONS: polar bear / nothing w:2 -MONS: ice dragon w:8 / nothing w:2 -MAP - xxxxxxx -xxXXXXXxx -xXX.4.XXx -xX.3.3.Xx -xX..O..Xx -xX.2.2.Xx -xXX...XXx -xxXX.1.Xx - xX11XXXx - xXX.XXxx - xXX.XXx - xxXX.Xx -xxXX.XXx -xXX@XXxx -ENDMAP - -NAME: portal_ice_cave_entry_horrid_things -TAGS: uniq_ice_cave -DEPTH: D:14-20, Elf:2-6 -ORIENT: float -: ice_cave_portal(_G) -COLOUR: X = white -KFEAT: X = x -MONS: ice beast / freezing wraith w:2 / nothing w:2 -MONS: freezing wraith / nothing w:3 -MONS: azure jelly w:3 / freezing wraith w:7 -MAP -xxxxxxxxxxxxxxxxxxxxxxxx -xxXXXXXxXXXXXXXXXXxxxxxx -xXX...XXX........XXxxxxx -xX.....X....2..1..XXXXXX -xX..O..+..3..1..1......+ -xX.....X....2..1..XXXXXX -xXX...XXX........XXxxxxx -xxXXXXXxXXXXXXXXXXxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxx -ENDMAP - -NAME: portal_ice_cave_demonic_guard -TAGS: uniq_ice_cave -DEPTH: D:14-20, Elf:2-6 -ORIENT: float -: ice_cave_portal(_G) -COLOUR: x = white -MONS: ice devil -MAP -xxxxxxx -x..O..x -x.....x -x.1.1.x -x.....x -xxx.xxx -xxx.xxx -xxx.xxx -xxx.xxx -xxx+xxx -ENDMAP - -NAME: portal_ice_cave_entry_ice_statue_001 -TAGS: uniq_ice_cave -DEPTH: D:14-20, Elf:2-6, Vault:1-7 -ORIENT: float -: ice_cave_portal(_G) -COLOUR: x = white -MONS: ice statue -MAP -xxxxxxx -x.....x -x..O..x -x.....x -x..1..x -x.....x -x.....x -xxx+xxx -ENDMAP - -NAME: portal_ice_cave_entry_ice_statue_002 -TAGS: uniq_ice_cave -DEPTH: D:14-20, Elf:2-6, Vault:1-7 -ORIENT: float -: ice_cave_portal(_G) -MONS: ice statue -MAP - ..... - ......... -........... -.....1..... -.....O..... -.....1..... -........... - ......... - ..... -ENDMAP - -# The destination vaults ############ -# -# Currently, there are four cave vaults (each of weight 8) and three -# cavern vaults (each of weight 5). - -############################################################################ -# small caves -# -# All have the starting point next to the exit, so you can always retreat; -# a middle point/area where there is some loot; and the end, where there is a -# bigger challenge and some major loot. Ideally weaker characters attempt -# to overcome the midpoint and then go back to dungeon, and strong characters -# can try to clear the whole cave. - -# Foes: animals + frost giant & an ice statue. -# Loot: heavy weapons and rC gear wearable by big races, -# plus some useful potions in the freezer. -NAME: ice_cave_small_01 -TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup -ORIENT: encompass -WEIGHT: 8 -# Randomize the layout slightly. -SHUFFLE: "' -SUBST: "=. , ':x .:1 -: ice_cave_colours(_G) -: ice_cave_random_monster_list_natural_giant(_G) -: ice_cave_milestone(_G) -MONS: yak / wolf / polar bear w:4 -MONS: polar bear -MONS: frost giant -MONS: polar bear w:3 generate_awake / wolf generate_awake / \ - yak generate_awake -MONS: ice statue -SHUFFLE: defg -ITEM: giant club / giant spiked club / great mace w:9 / \ - battleaxe w:7 / glaive w:8 / halberd w:8 / great sword w:6 / \ - nothing w:58 -ITEM: great mace good_item / battleaxe good_item / glaive good_item / \ - halberd good_item / great sword good_item / nothing w:50 -ITEM: battleaxe ego:freezing / glaive ego:freezing / halberd ego:freezing / \ - great sword ego:freezing / battleaxe ego:freezing good_item / \ - glaive ego:freezing good_item / halberd ego:freezing good_item / \ - great sword ego:freezing good_item / nothing w:80 -ITEM: cap ego:cold_resistance w:9 / cap ego:resistance w:1 / \ - cloak ego:cold_resistance w:9 / cloak ego:resistance w:1 / \ - shield ego:cold_resistance w:9 / shield ego:protection w:1 / \ - large shield ego:cold_resistance w:5 / \ - animal skin ego:cold_resistance / nothing w:60 -ITEM: potion of resistance w:5 / potion of gain strength / \ - potion of might / potion of confusion / potion of levitation / \ - potion of experience w:2 -MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxx..xxxxxxxxxx12....xxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxx...xx...xxxx...2xxx...xxxxxxxxxxxxx -xxxxxxxxxx......1..xxxxx..x212.xxxxxxx...1xxxxxxxxxx -xxxxxxx.......1..1.xxxxxx....xxxxxxxxxxxx21..xxxxxxx -xxxxxx...xxxx.3.1....xxxxxxxxxxxxxwwwxxxxxx....xxxxx -xxxx...xxxfgxx.1..1...xxxxxxxxxxwwwwwxxxxxxxx....xxx -xxx...xxdegefxx..1.....xxxxxwwwwwwwwwwwwwxxxxxx....x -xxx...x$$$$gdex.......xxxxxwwwwwwwwwwwwwwwwwxxxxx..x -xxx...x....$$xx.....xxxxwwwwxxwwwwwwwwwwwwxxxxxx11xx -xxxx.......xxx.....xxwwwwxxxxxxxxxwwwwwwxxxxx...2xxx -xxxxx............xxxwwwwxxxxxxxxxxxwwwxxxx......xxxx -xxxx"xx.........x'wwwwwxxxxxxxxxxxxwxxxx...xxxxxxxxx -xxwwxxxxxxxxxxxxxxwwwxxxxxxxxxxxxxxxxxx..xxxxxxxxxxx -xxxwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxx..xxxxxxxxxxxx -xxwwwwwwwwwwwwwwwwwx'xxxxxxxxxxxxxxx5...xxxxxxxxxxxx -xxwwwxxxxxxxxxxwwxx'x'xxxxxxxxxxxxx.......xxxxxxxxxx -xxwwxxxxxxxxxxxwwxxx'xxxxxxxxxxxxxxxx.......xxxxxxxx -x"xxxxxxxxxxxxxxwxx'xxxxxx"xxxxxxxxxxx....2...xxxxxx -xx"xxxxxxxxxxxxxxx'xxxxxxx""""x..xxxxxxx2......xxxxx -xxx"xxxxxxxxxxxxx'xxxxxxx"xxxx.......xxx.......xxxxx -xxx"xxxxxxxxxxxxx''xxxxx"xxx''xx......21x.....xxxxxx -xxxx""xxxxxxxxxxxxx'xxx"xxx'xxxxx....1..2....xxxxxxx -xxxxxx""""xxxxxxxxxx'xx"xxx'xxwwxx.1......1.xxxxxxxx -xxxxxxxxxx"xxxxxxxxx'xxx"xxx'xxwwxx.x....x.xxxxxxxxx -xxxxxxxxx"xxxxxxxxx'xxx"xxxxx'xxwwxxxx..xxxxxxxxxxxx -xxxxxxx""xxxxxxxxx'xxx"xxxxxx'xxxwwxxx..xxxwwxxxxxxx -xxxxxx"xxxxxxxxxxx''xxx"xxxxxx'xxwwxx..xxxwwxxxxxxxx -xxxxx"xxxxxxxxxxxxx'xxxx""xxxx'xxwxx..xxxwwxxxxxxxxx -xxxx"xxxxxxxxxxxxxxx'xxxx"xxx'xxxwwx...xxwwxxxxxxxxx -xxx"xxxxxxxxxxxxxxxxx'xxxx"x'xxxxwwxx...xxwwxxxxxxxx -xxx"xxxxxxxxxxxxxxxxx'xxxxx2xxxxxwwxxx44.xwwxxxxxxxx -xxx"xxxxxxxxxxxxxxxxx'x..x.xxxxxwwxxxx4.4xxwwxxxxxxx -xx"xxxxxxxxxxxxxxxxxxx.hx.xxxxxxwwxxx...xxxwwxxxxxxx -xx"xxxxxxxxxxxxxxxx.1xhxhx.xxxxwwwxxx...xxxwwwxxxxxx -x"xxxxxxxxxxxxxxxxx.xhxhxh.xxxwwwxxx.....xxxwwxxxxxx -xx"xxxxxxxxx"xxxxxxx1.....xxxxxwwxx...A...xxxwxxxxxx -xxx"""xxx"""x""xxx""xxxxxxxxxxxwwxx.......xxwwxxxxxx -xxxxxx"""xxxxxx"""xxxxxxxxxxxxxwwxxx..<..xxxwwxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwwwxxxx...xxxwwwxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -ENDMAP - -# Foes: ice beasts, ice dragons & ice statues. -# Loot: some gold, jewellery (approximately three rings). -NAME: ice_cave_small_02 -TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup -ORIENT: encompass -WEIGHT: 8 -# Randomize the layout slightly. -SHUFFLE: "' -SUBST: "=. , ':x .:1 -: ice_cave_colours(_G) -: dgn.set_random_mon_list("ice beast w:90 / ice dragon / nothing") -: ice_cave_milestone(_G) -MONS: ice beast -MONS: ice dragon -MONS: ice beast generate_awake -MONS: ice statue -ITEM: any jewellery / gold w:15 / nothing w:5 -ITEM: any jewellery good_item / gold w:5 / nothing w:5 -MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxx......xxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxx.....xxx....xxxxxx -xxxxxxxxxxxxxxxxxxxxxx..xxxxxxx...2..xxxx -xxxxwwwxxxxxxxxxxxxxxxxx.xxxx$$.2....dexx -xxwwwwwxxxxxxxxxxxxxx..xx.xx$$$$....deddx -xwwwwwwwwwwxxxxxxxxx.xx..xx$$$$$$..deddxx -xxxwwwwwwwwwwwxxxxx..xxxxxxxx$$$$$$$xxx'x -xwwwwwwwwwwwxxxxxx11xxxxwwwxxxxxxxxxxwx'x -xxxxwwwwwwxxxxx...1xxwwwwwwwwwwwwwwwwwwxx -xxxxxwwwxxxx......xxwwwwwwwwwwwwwwwwwwwxx -xxxxxwxxxx...xxxxxxxxxxxxxxxxxxxwwwwwwxxx -xxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxx'xxxx -xxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxx.xxxxx -xxxxxx....xxxxxxxxxxxxxxxxxxx"""x..$$xxxx -xxxx........xxxxxxxx""xxxxx""xxx.xxx$xxxx -xxx...........xxxxx"xx""x""xxxxxx'xxx"xxx -xx..............x""xxxxx"xxxxxxxxx'xxx"xx -x................xxxxxxxxxxxxxxxxxx'xx"xx -x.................xxxxxxxxxxxxxxxxxx'xx"x -xx...1.111.1....xx'xxxxxxxxxxxxxxxxx'xx"x -xxx...1.1.1.....xxx'xxx''xxxxx''x'x'xx"xx -xwxx..........xxxxxx'''xx'xxx'xx'x'xx"xxx -xwwxx4x....x4xxxxxxxxxxxxx''$xxxxxxx"xxxx -xxwwxxxx..xxxxxxxxxxxxxxxxx$$$xxxx""xxxxx -xxxwwxxx..xxxxxxxxxxxxxx"xx$$$$xx"xxxxxxx -xxxwwxx..xxxxxxxxxxxxxx"x""x$$"xxx"xxxxxx -xxxwxx..xxxxxxxxxxxxxxx"xxxxxxx"x"xxxxxxx -xxxwwx...x""x"xxxxxxxxxx"xxxxxxx"xxxxxxxx -xxxwwxx...xx"x""xxxxxxxxx"xxxxxxxxxxxxxxx -xxxwwxxx33.xxxxx""xxxxx""xxxxxxxxxxxxxxxx -xxwwxxxx3.3xxxxxxx"""x"xxxxxxxxxxxxxxxxxx -xxwwxxx...xxxxxxxxxxx"xxxxxxxxxxxxxxxxxxx -xxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xwwxxx.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xwwxx...A...xxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xwwxx.......xxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xwwxxx..<..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xwwxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -ENDMAP - -# Foes: mostly in the undead vein, plus a necromancer and an ice statue. -# Loot: ice magic loot, gear of cold resistance (one piece). -NAME: ice_cave_small_03 -TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup -ORIENT: encompass -WEIGHT: 8 -KFEAT: _ = altar_kikubaaqudgha -SUBST: - = ........- -KFEAT: - = alarm trap -: ice_cave_colours(_G) -: ice_cave_random_monster_list_undead_necromancer(_G) -: ice_cave_milestone(_G) -MONS: ice beast -MONS: white imp -MONS: freezing wraith -MONS: human simulacrum / elf simulacrum / orc simulacrum / \ - draconian simulacrum w:5 / ogre simulacrum w:5 / \ - centaur simulacrum w:5 / troll simulacrum w:5 / naga simulacrum w:5 -MONS: necromancer / necromancer ; robe ego:cold_resistance / \ - necromancer ; robe ego:cold_resistance . wand of fire / \ - necromancer ; robe ego:cold_resistance . wand of fireball -MONS: polar bear simulacrum w:3 generate_awake / \ - wolf simulacrum generate_awake / \ - yak simulacrum generate_awake -MONS: ice statue -ITEM: wand of frost / wand of cold w:5 -ITEM: ring of ice / staff of cold -: if crawl.coinflip() then -ITEM: manual of ice magic -ITEM: nothing -: else -ITEM: book of ice / book of frost / book of minor magic [frost] -ITEM: book of ice / book of frost / book of minor magic [frost] -: end -ITEM: cap ego:cold_resistance w:9 / \ - pair of gloves ego:cold_resistance w:9 / \ - cloak ego:cold_resistance w:9 / \ - naga barding ego:cold_resistance w:5 / \ - centaur barding ego:cold_resistance w:5 / \ - cap ego:resistance w:1 / pair of gloves ego:resistance w:1 / \ - cloak ego:resistance w:1 / \ - buckler ego:cold_resistance / helmet ego:cold_resistance -MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxwwwxxxxxx....xxxxwxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxwwwwwxxx.......xxwxxxxxxxxxxxxxxxx -xxwwxxxxxxxxxxxxxxwwwxxx...xxx..xxxxxxxxxxxxxxxxxxxx -xxxwwwwwwwwwwwwwwwwwxxx...xxx..xxxxxxxxxxxxxxxxxxxxx -xxwwwwwwwwwwwwwwwwwxxx...xxx..xxxxxxxxxxxxxxxxxxxxxx -xxwwwxxxxxxxxxxwwxxxx3..xxx...xxxxxxxxxxxxxxxxxxxxxx -xxwwxx.G...G.xxwwxx..33xxxx..xxxxxxxxxxxxxxxxxxxxxxx -xxxxx.........xxwx....xxxxx...xxxxxxx...xxxxxxxxxxxx -xxdx....2_424..xxx..xxxxxxxx....xxx...2....xxxxxxxxx -xx*+.....44..2..xx...xxxxxxxx.......2.1.2...xxxxxxxx -xxdx....423.342.xxx.33xxxxxxxxxx...1.....1...xxxxxxx -xxxxx..4...324xxxxxxx3..xxxxxxxxx............xxxxxxx -xxxxxxxG4.2G...xxxxxxxx...xxxxwwxx2........2xxxxxxxx -xxxxxxxxxxxx....xxxxxxxx....xxxwwxx1x....x1xxxxxxxxx -xxxxxxxxxxxxxx...xx.xxxxxx....xxwwxxxx..xxxxxxxxxxxx -xxxxxxxxxxxx....xx...xxxxxxx...xxwwxxx..xxxwwxxxxxxx -xxxxxlm..xxx..xxx..x..xxxxxxxx..xwwxx..xxxwwxxxxxxxx -xxxxxxxx+xxxx.....xxx.....xxx..xxwxx..xxxwwxxxxxxxxx -xxxxx444544xxx...xxxxx........xxxwwx...xxwwxxxxxxxxx -xxxx.444444.xxxxxxxxx..3..3...xxxwwxx...xxwwxxxxxxxx -xxx..xgdegx..xxxxxx*%...3.....xxxwwxxx.66xwwxxxxxxxx -xx...xxffxx...xxxxx*%....3.3..xxwwxxxx6.6xxwwxxxxxxx -xx....xxxx...xxxxxxxxx.......xxxwwxxx...xxxwwxxxxxxx -xxxx.........xxxxxxxxxxx...xxxxwwwxxx...xxxwwwxxxxxx -xxxx...7....xxxxxxxxxxxxx..xxxwwwxxx.....xxxwwxxxxxx -xxxxx------xxxxxxxxxxxxxxxx..xxwwxx...A...xxxwxxxxxx -xxxxxx----xxxxxx...xxxxxxxx...xwwxx.......xxwwxxxxxx -xxxxxx---xxxx...xx...xx.....xxxwwxxx..<..xxxwwxxxxxx -xxxxxxx.......xxxxxx....xxxxxxwwwxxxx...xxxwwwxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -ENDMAP - -# Foes: ice & blue devils, white imps & ufetubi, an ice statue. -# Loot: weapons and/or armour. -NAME: ice_cave_small_04 -TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup -ORIENT: encompass -WEIGHT: 8 -NSUBST: . = 9:1 / 1:2 / *:. -SHUFFLE: Qq / Zz / Nn / Bb / Mm -SUBST: Q=2, Z=2, N=., B=., M=. -SUBST: q=!, z=!, n=., b=., m=. -# Replaces '!'s with fog generators, then makes them floor. -: place_fog(_G, "freezing vapour", 100) -KFEAT: ! = . -# Couple of more random, milder fog generators. -NSUBST: . = 3:! / *:. -: place_fog(_G, "freezing vapour", 30) -KFEAT: ! = . -# The random ones weren't placed near the entrance, though. -SUBST: - = . -# Still more fog, in the water this time. -NSUBST: w = 3:! / *:w -: place_fog(_G, "freezing vapour", 50) -KFEAT: ! = w -{{ -ice_cave_colours(_G) -dgn.set_random_mon_list("white imp w:35 / ufetubus w:35 / blue devil w:20 / \ - ice devil / nothing") -ice_cave_milestone(_G) -}} -MONS: white imp / ufetubus -MONS: ice devil / blue devil w:3 -MONS: ice statue -MONS: blue devil -SHUFFLE: dg, efh -SUBST: e = ed -ITEM: battleaxe ego:freezing / executioner's axe ego:freezing / \ - glaive ego:freezing / halberd ego:freezing / quick blade ego:freezing / \ - great sword ego:freezing / triple sword ego:freezing / \ - giant spiked club ego:freezing / demon trident ego:freezing -ITEM: battleaxe ego:freezing good_item / executioner's axe ego:freezing good_item /\ - glaive ego:freezing good_item / halberd ego:freezing good_item / \ - great sword ego:freezing good_item / quick blade ego:freezing good_item /\ - triple sword ego:freezing good_item / demon trident ego:freezing good_item /\ - giant spiked club ego:freezing good_item -ITEM: demon whip good_item / demon blade good_item / demon trident good_item -ITEM: cap ego:cold_resistance / pair of gloves ego:cold_resistance / \ - cloak ego:cold_resistance / buckler ego:cold_resistance / \ - pair of boots ego:cold_resistance -ITEM: crystal plate mail ego:cold_resistance / \ - troll leather armour ego:cold_resistance / \ - ice dragon armour good_item / robe ego:resistance / \ - naga barding ego:cold_resistance good_item w:5 / \ - centaur barding ego:cold_resistance good_item w:5 / \ - crystal plate mail ego:cold_resistance good_item / \ - troll leather armour ego:cold_resistance good_item -MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxx........xxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxx...xxx....xxxxxxxxx -xxxxxxxxxxxxxxxxxxxxx..xxx4xxx...xxxxxxxx -xxxxxx...xxxxxxxxxxx...xx44..xxxx..xxxxxx -xxxx..1..1...xxxxxxxx...xx.....xx...xxxxx -xxx.1......1...xxxxxxx........dxxx..xxxxx -xxx..........1..xxxx.....xx..dxx...xxxxxx -xxx..1..1..1....xx.....xxxxxxxx...xxxxxxx -xxxx................xxxxxxxxxx...xxxxxxxx -xxxxx.........x...xxxxxxxxxxq..xxxxxxxxxx -xxxxx1x....x3xxxxxxxxxx....Q..xxxxxxxxxxx -xxxxxxxx..xxxxwwwxxx......QqQ..xxxxxxxxxx -xxxxxxxx..xxxwwxxx....xx.........xxxxxxxx -xxxxxxx..xxxwwxx.....xx..xxxx..z...xxxxxx -xxxxxx..xxxwwxx4.b.x.....N..x...Z...xxxxx -xxxxxx...xxwwxx..B.xxx..n.N.xx.ZzZ..4xxxx -xxxxxxx...xxwwx4BbB..xx..N...xx.......xxx -xxxxxxxx.-.xwwxx.........x.n........4xxxx -xxxxxxxx---xxwwxx...xxx..x..xxx.....xxxxx -xxxxxxx---xxwwwwxxxxx....x.....x..xxxxxxx -xxxxxxx---xxwwwwwwx.....mx.....xxxxxxxxxx -xxxxxx-----xxwwwwwxx.xx.M.m..xxxxxxxxxxxx -xxxxx---A---xxwwwccccc.M.M.cccccxxxxxxxxx -xxxxx-------xwwwwc...ccc.ccc...cxxxxxxxxx -xxxxxx--<--xxwwwwc.e.........f.cxxxxxxxxx -xxxxxxx---xxwwwwwc...cc*|*cc...cxxxxxxxxx -xxxxxxxxxxxxxxxxxcccccccccccccccxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -ENDMAP - -############################################################################ -# sprawling caverns -# -# A winding, tight cavern with a hard challenge at the end. You can always -# go back to the beginning to retreat. -# The caverns are more rare than the caves. - -NAME: ice_cave_caverns_01 -TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup -WEIGHT: 5 -ORIENT: encompass -# A bit of layout randomization. -: if crawl.coinflip() then -SUBST: ' = x -SUBST: - = . -SUBST: _ = . -: else -SUBST: ' = . -SUBST: - = x -SUBST: _ = w -: end -: ice_cave_colours(_G) -: ice_cave_milestone(_G) -# Two different populations: undead/demon and natural/giant. -: if crawl.coinflip() then -: ice_cave_random_monster_list_undead_demon(_G) -: ice_cave_caverns_undead_demon_monster_set(_G) -ITEM: cloak ego:fire_resistance good_item / wizard hat good_item / \ - pair of gloves good_item / pair of boots good_item / nothing -ITEM: book of ice / book of unlife / staff of cold / staff of death / \ - nothing w:30 -ITEM: ring of ice / ring of protection from fire / ring of life protection / \ - wand of cold / wand of draining / nothing -: else -: ice_cave_random_monster_list_natural_giant(_G) -: ice_cave_caverns_natural_giant_monster_set(_G) -ITEM: animal skin good_item ego:fire_resistance / \ - battleaxe good_item ego:freezing w:4 / \ - glaive good_item ego:freezing w:4 / \ - great sword good_item ego:freezing w:2 / nothing -ITEM: book of ice / \ - crossbow ego:frost good_item no_uniq / \ - longbow ego:frost good_item no_uniq / nothing w:20 -ITEM: ring of ice / ring of protection from fire / wand of cold / \ - arrow ego:ice q:25 / bolt ego:ice q:20 / nothing -: end -ITEM: any wand / any potion w:5 / any scroll w:5 -MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxx.xxxxxxxxxxx-'xxxxxxxxxxwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xx....xxxxxxxxx....xxxxxxxxxwwwxxxx*xxx$$xxxxxxxx...xx...xxxxxxxxgxxxx -x...A.xxxxxx....xx....xxxxxxxwwwwx*x*xxx$$x-.x...xx...xx...xxxxxgxgxxx -x.<....'-....xxxxxxx...xxxxxwwwwxxx*x.xxxx.'x..xxxxxxxxxx....xxxx.xxxx -xx..xx....xxxxxxxx1111xxxxwwwwwwxxxxxx...xxxxx..xxxxxxxxxx..3..x.xxxxx -xxxxxxxxxxxxxxx....xxxxxxxxwwwwxxxx11..x...x..xxxxwwwxxxxxx.....xxxxxx -xxwxxwxwxxx.....xxxx______xxwwxxxx51xxxxxx..xxxwwwwxwxxxxx..6xxxxxxxxx -xxxwxxxxx..xxxxxx___xx_____xxxx...xxxxwxxxxxxwwwxxxxxxxxx.66xxxwwwxxxx -xwxxxx....xxwxx__xxxxxxxx___xx..xxxwwwxwxxxwwwxxxxxxxx....xxxxwwwxxxxx -xxxx...xxxxwxx_xxxx....xxx__xxx..xxxxxwwwwwwxxxx....x...xxxxwwwxwwwxxx -xxx..xxxwwwwx-xxx...xx...xxx_xxx..xxwwwwwxxxx...xx....xxxwwwxxxxxxwwxx -x...xxwwwwwwxx-...x.xxxx...xx_x..xxxxwwwwxxx..xxxxxxxxxwxxxxxx.xxxxwxx -x..xxxwwwwwxxx141xxxgxxxx...x_xx.11xxxwwwwxxx...xxxwwwwxx...x.x.xxxxxx -xx..xxxwwwwxx...xxxgxxx...xxx_xxxx51xxxwwwxxxx..1.xxxwwx.U...xxx..xxxx -xxx..xwwwwxxxx....xxxx5.xxxwxx_xx...xxxxxwwwxxxx.1.5xxxxx.x.xxx..xxxxx -xx..xxxwwwwxx'x.xxxxx5..5xxwwxx_xxx1.xxxxxwwxxxxx5415.xxxxxx.xx...xxxx -xx...xxwwwxx..'xxxxwxx15.5xxwwxx_xxx51xxxxwwxxxxxx5.41.xxxx..xxx454xxx -xxx..-xxxxx..xxxwxwwwxxx5.1xxwwxx_--x1xxxxxwwwxxxxxx.5..x...xxx5.7.5xx -xxx...-xx-..xxxwxwwxxwxx-x1.xxwwxx'''xxxxxxwwwwxxxxxxx'...xxxxxx5.5xxx -xxx...x--xx..1xxxxxwxx--x-..'xxwx'x'xxxxxwxxwwwwxxxx*.xxxxx.xxx..xxx|x -xxx222x''x''x..xx1xxx----xxxx'xx'''xxxxwxxxwwwwwwxxxx*xxxx.<.xxx.$defx -xxxx'.'xx'xx1.x.1...2xxxxxxxxx'''xxxxwxxwwxwwwwwwwwxxx--........x|fedx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'xxxxwxwwwxwwwwwxwxxxxxxxxxx.xxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -ENDMAP - -NAME: ice_cave_caverns_02 -TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup -WEIGHT: 5 -ORIENT: encompass -# Two different populations: undead/demon and natural/giant. -# The fog generators are placed differently - the natural population -# doesn't have enough cold resistance for many clouds. The ';' placeholder -# symbol gives the natural monsters some safety padding from generator -# placement. -: if crawl.coinflip() then -: ice_cave_random_monster_list_undead_demon(_G) -: ice_cave_caverns_undead_demon_monster_set(_G) -ITEM: cloak ego:fire_resistance good_item / wizard hat good_item / \ - pair of gloves good_item / pair of boots good_item / nothing -ITEM: book of ice / book of unlife / staff of cold / staff of death / \ - nothing w:30 -ITEM: ring of ice / ring of protection from fire / ring of life protection / \ - wand of cold / wand of draining / nothing -# Take out ';' safety padding. -SUBST: ; = . -# Place the fog generators: -SUBST: . = .:40 !:1 -: place_fog(_G, "freezing vapour", 25) -KFEAT: ! = . -: else -: ice_cave_random_monster_list_natural_giant(_G) -: ice_cave_caverns_natural_giant_monster_set(_G) -ITEM: animal skin good_item ego:fire_resistance / \ - battleaxe good_item ego:freezing w:4 / \ - glaive good_item ego:freezing w:4 / \ - great sword good_item ego:freezing w:2 / nothing -ITEM: book of ice / \ - crossbow ego:frost good_item no_uniq / \ - longbow ego:frost good_item no_uniq / nothing w:20 -ITEM: ring of ice / ring of protection from fire / wand of cold / \ - arrow ego:ice q:25 / bolt ego:ice q:20 / nothing -# Place the fog generators. The predetermined ones are mild. -: place_fog(_G, "freezing vapour", 5) -# Place a few random, mild ones. -SUBST: . = .:60 !:1 -: place_fog(_G, "freezing vapour", 10) -KFEAT: ! = . -SUBST: ; = . -: end -ITEM: any wand / any potion w:5 / any scroll w:5 -# The ':' provides fog-free zone near the entrance. -SUBST: : = . -# Some layout randomization. -: if crawl.coinflip() then -SUBST: '=x , -=. -: else -SUBST: '=. , -=x -: end -: ice_cave_colours(_G) -: ice_cave_milestone(_G) -MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xx::xxwwwwxxx.x.'x-;x5;;5xxwwwwwxxx1;;;x;Wxxxxxx15415;xxxxxx......xxxx -xx:<:xwwwwxx...x.x;x;x15;5xxwwxxx''';;x;xxWWxx15xx5;41;xxxx..xxx...xxx -xxx::xxwwxx..xxx-;'xx;xx5;1xxxx'''xxx.-xxxxWWWxxxxxx;;;;x...xxx..U..xx -xxx:A:xxwx..xxxwxxxwwwwxxx1;x'''xxwwx---xxxxWWwxwwwxxx'...xxxxxx...xxx -xxx:::xwwxx;;;xxxxxwwwwwxx;;'xxxxxxxxxx--xxwwwwwwwxx*.xxxxxxxxx..xxxxx -xxx:::xxwxxxx;;xx1-'xxwwxxx--xxxxx'''x--xxwwwwwwwxx.x*xxxx..xxxx..xxxx -xxxx:11xwwxx1;x;1;1;2xxwx---xx.*.*.xx..xxxwwwwwwwwww-x-x..xx.x..xxxxxx -xxx11:xxwwwxxx1xxxxx1;xxxx--x.g.T.g.xxx;;xwwwwwwwwx-xx..xxxxx.xxxxxxxx -xxxx::xwwwwwxx2;;1x11;;xxxx-...*.*..xx;;;xxwwwwwwx'...xxxxxxxxxxxxxxxx -xxxxx:xxwxxxxxxxxx;xxx;;xwxx...xxxxxxxxx;;xxwwwxxx.-xxxxxxxxxxxxxxxxxx -xxxxx;;xxxx.x....xxxx;;;xxwxxx.-xwwwxxx1xxxxwwwxx..xxxxxxxxxxxxxxxxxxx -x*x$xx..xx.*..-'..xxxxx..xxx''.-xwwwx15xxxwwwwxxxx;;xxxxxxxxxxxxxxxxxx -xx$x.xx..xx..xxxx..xwwxxx;;''xx--xxxx115xxwwwwwxxxx;;;xxxxxxxxxxxxxxxx -x$x..x.!..xx..xxx..xwwwwxx--xxxx-xx;1;xxxwwwwwwxxxxx;;;;xxxxxxxxxxxxxx -xx.xx;x;;xxx..xx...xxwwwwxx1;xxxx.;;xxxxxwwwwwwxxxxxx;2;2;xxxxxxxxxxxx -xxxxxx;;xxxx...xx.3.xxwwxx'-;1x'''xxxxxwwwwwwwwxxxxxx;54;2;xxxxxxxxxxx -xxxxx;;xxxx...xxxx...xxxx;;x;;''xxxxxxwwwwwwwxxxx$$x;2475;;;xxxxxxxxxx -xxxx5;5xx...xxxx.x.xxxxx..;x;xxxxxxwwwwwwwwxxxxdf$$;;;;;;;xx;xxxxxxxxx -xxxx;;xx;..xxwwxx|x.xx...xx;xxxxxwwwwwwwwwwwxxed|$$$;;;xxxxxx..xxxxxxx -xxxx122;;.xxwwwwxx....xxxxxxxxxxwwwwwwwwwwwwwxxfe|$$$$.xxxxxxxx....xxx -xxxxx1;;xxxwwwwwxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxx...