diff options
author | evktalo <evktalo@users.sourceforge.net> | 2009-10-10 20:11:28 +0300 |
---|---|---|
committer | evktalo <evktalo@users.sourceforge.net> | 2009-10-10 20:11:28 +0300 |
commit | ecf93b9763ba7d21228db03a5b1a4b28a60796c0 (patch) | |
tree | a99abaad67c534cd1799f5dfa6c9b8583e015c22 /crawl-ref/source | |
parent | 12ec49f4941b83c362269a7a420d0f709c05a6a6 (diff) | |
download | crawl-ref-ecf93b9763ba7d21228db03a5b1a4b28a60796c0.tar.gz crawl-ref-ecf93b9763ba7d21228db03a5b1a4b28a60796c0.zip |
Revert "A new Ice Cave map by Zaba." (Whitespace mess-up).
This reverts commit 12ec49f4941b83c362269a7a420d0f709c05a6a6.
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/dat/icecave.des | 1779 |
1 files changed, 853 insertions, 926 deletions
diff --git a/crawl-ref/source/dat/icecave.des b/crawl-ref/source/dat/icecave.des index b03c7612cf..7c382cf14d 100644 --- a/crawl-ref/source/dat/icecave.des +++ b/crawl-ref/source/dat/icecave.des @@ -1,926 +1,853 @@ -###############################################################################
-#
-# 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 five cave vaults (each of weight 6) 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: 6
-# 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: 6
-# 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: 6
-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: 6
-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
-
-NAME: ice_cave_tombish
-# This is an ice cave which is also a tomb of a necromancer who likes staying
-# alive and simulacrums, or just a chillout of an ice fiend. By Zaba.
-# Weighted as a small cave, although this is pretty tough. --Eino
-TAGS: ice_cave no_item_gen no_monster_gen
-ORIENT: encompass
-WEIGHT: 6
-# S is either an ice statue or a granite statue.
-SUBST: S = GGS
-KMONS: S = ice statue
-# I is an ice statue with loot underneath.
-KITEM: I = any scroll q:3
-KMONS: I = ice statue
-MONS: ice devil / blue devil / nothing w:7
-# FIXME: I can't quite make up more simulacrums
-MONS: grizzly bear simulacrum / bear simulacrum / dragon simulacrum /\
- human simulacrum / golden dragon simulacrum w:1
-MONS: Ice Fiend w:2 / necromancer
-ITEM: any potion / any scroll / any weapon good_item / any armour good_item
-KFEAT: ' = alarm trap / net trap / arrow trap / bolt trap w:5 / floor w:5
-: ice_cave_colours(_G)
-: ice_cave_milestone(_G)
-: ice_cave_random_monster_list_undead_demon(_G)
-MAP
- xxxxx
- xx...xx
- xx.....xx
- x...A...x
- x...<...x
- xx.....xx
- xx...xx
- x...xx
- xx...x
- xx...x
- x...xx
- xxxx...xxxx
- xxIx.....xIxx
- xx...........xx
- x.............x
-xx.............xx
-x.......1.......x
-x....1.....1....x
-x.......U.......x
-x....1.....1....x
-x.......1.......x
-xx.............xx
- x.cnnc...cnnc.x
- xxc11c...c11cxx
- xc11cc+cc11cx
- ccc+c...c+ccc
- c...c...c...c
-ccc.ccc...ccc.ccc
-c...c2c...c2c...c
-c+ccc+c...c+ccc+c
-c'c2+.......+2c'c
-c'ccc.G...G.ccc'c
-c'c2+.......+2c'c
-c'ccc.G...G.ccc'c
-c'c2+.......+2c'c
-c'ccc.G...G.ccc'c
-c'c2+.......+2c'c
-c+cccccc+cccccc+c
-c...............c
-ccccS.ccccc.Scccc
- cc.cd3dc.cc
- c.cdUdc.c
- c.cdddc.c
- c.cc+cc.c
- c.'''''.c
- ccccScccc
- ccc
-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...<x
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-ENDMAP
-
-NAME: ice_cave_caverns_03
-TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup
-WEIGHT: 5
-ORIENT: encompass
-# Two different populations: undead/demon and natural/giant.
-# Different fog generator generation according to population,
-# as the natural monsters can't stomach the clouds.
-: 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
-# Place fog generators.
-SUBST: 3 = 3!
-: place_fog(_G, "freezing vapour", 25)
-KFEAT: ! = .
-SUBST: ; = .
-SUBST: . = .:100 !:1
-: place_fog(_G, "freezing vapour", 15)
-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 fog generators.
-SUBST: 3 = 3!
-: place_fog(_G, "freezing vapour", 20)
-KFEAT: ! = .
-SUBST: . = .:100 !:1
-: place_fog(_G, "freezing vapour", 8)
-KFEAT: ! = .
-SUBST: ; = .
-: end
-ITEM: any wand / any potion w:5 / any scroll w:5
-# The ':' provides a fog-free zone near the entrance.
-SUBST: : = .
-# A bit of layout randomization for the middle part.
-: if crawl.coinflip() then
-SUBST: '=x , -=.
-: else
-SUBST: '=. , -=x
-: end
-: ice_cave_colours(_G)
-: ice_cave_milestone(_G)
-MAP
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.x.xxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.U.x$xxxxxxxx...xx;;;xxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwxxx.xxx$x..x...xx...xx;55xxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxwwwwxWWWxxxxxxx..x..xxxxxxxxxx;554xxx
-xxxxxxxxxxxxxxxxxxxxxxxxxwxxxxxWwWxWW.xxxxx..xxwwwwwwxx;2525x
-xxxxxxxxxxxxxxxxxxxxxwwxxxxxxxxxWWWWxW..xx..xxwwwwwwwwxx427;x
-xxxxxxxxxxxxxxxxxxxwwwwwxxxxxxxWWxwWwxx...xxxwwwwwwwxxx;;5xxx
-xxxxxxxxxxxxxxxxxxxxwwwwwxxx.WWxxxxwwwxxxxxwwwwwwxxxxx;;;xxxx
-xxxxxxxxxxxxxxxxxxxxxxwwwxx."xxxwwwwwxwwxwwwxxxxxxx....xxxxxx
-xxxxxxxxxxxxxxxx;...xxxwwwxx..xxxwwwwwwwwwwxx<..!x...xx.xfxxx
-xxxxxxxxxxxxxx;;;xx...xxxwwxx..xxxxwwwwwwwwxxxx....xxxxxex|xx
-xxxxxxxxxxxx;44x;xxxx...xxwx..xxxxxxwwxwxwwwwxxxxxxxxxxdx$xdx
-xxxxxxxxxxx;4;xxx$xxxx;;;xwxx"..xxxxxwwwwwxwwwxxxxxxxxxx|xexx
-xxxxxxxxxx;;;xxx$xxx;;;xxxwwxxx..xxxwwwxxwwwwxwxxxxxxxxxxfxxx
-xxxxxxxxxxx;;..xxxx5;xxxwwwwxx...xxxxxwwwwwwwxxxxxxxxxxxxxxxx
-xxxxxxxxxx.x.xxxxx51;5xxwwwwxxxx..xxxxxwwxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxx;;;xxxxxxx15;5xxwwxxx'''".xxxxwwxxxxxxxxxxxxxxxxxxxx
-xxxxxxxx;;xxxxxxxxxxx5;1xxxx''xxxx.-xxxxwwwxxxxxxxxxxxxxxxxxx
-xxxxxxx;1xxxxxxxxxxxxxx;;x'''xxxxx---xxxwwwwxxxxxxxxxxxxxxxxx
-xxxxxxxx;11xxxxxxxxxxxx;;''xxxxx'xxx--xxxwwwwxxxxxxxxxxxxxxxx
-xxxxxxxxxx1;xx.xxxxxxxxx--xxxxx''''--xxxwwwwwwxxxxxxxxxxxxxxx
-xxxxxxxxx;;x;;....xxxx---xx.*.*.xx..xxxxwwwwwwwwxxxxxxxxxxxxx
-xxxxxxxxxxx;xxxxx.;xxxx--x.g.T.g.xxx..xxxwwwwxxxxxxxxxxxxxxxx
-xxxxxxxxxxx2;;2x;;;;xxxx-...*.*..xx.;;xxwwwwwwxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxx;xxx;1xxxx...xxxxxxxxx;;xxwwwxxxxxxxxxxxxxxxxx
-xxxxxxxx.x;;;'xxxx;1;xxxxxx.-xxxxxxx1xxxxwwwxxxxxxxxxxxxxxxxx
-xxxxxxx;*66-x..xxxxx11xxxx'.--x---15xxxwwwwxxxxxxxxxxxxxxxxxx
-xxx::<xx;;xxxx..xxxxxx;;''xx-x-xxx115xxwwwwwxxxxxxxxxxxxxxxxx
-xxA::xxxx;.xxx..xxxxxxx--xxxx-xx.11xxxwwwwwwxxxxxxxxxxxxxxxxx
-xx::::xxx;,xx...xxxxxxxx1;xxx-;;;xxxxxwwwwwwxxxxxxxxxxxxxxxxx
-xx:::xxxx;;;xx.3.xxxxxxxx;1x'''xxxxxwwwwwwwwxxxxxxxxxxxxxxxxx
-xx::xxxx21;xxxx...xxxx..x;;''xxxxxxwwwwwwwxxxxxxxxxxxxxxxxxxx
-x:::xx;12xxxx.x.xxxxx...x;xxxxxxwwwwwwwwxxxxxxxxxxxxxxxxxxxxx
-x::xx;;;xxxxxx|x.xx...xx;xxxxxwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxx
-x:::..;xxxxxxxx....xxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxx
-xx:..xxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-ENDMAP
+############################################################################### +# +# 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...<x +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +ENDMAP + +NAME: ice_cave_caverns_03 +TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup +WEIGHT: 5 +ORIENT: encompass +# Two different populations: undead/demon and natural/giant. +# Different fog generator generation according to population, +# as the natural monsters can't stomach the clouds. +: 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 +# Place fog generators. +SUBST: 3 = 3! +: place_fog(_G, "freezing vapour", 25) +KFEAT: ! = . +SUBST: ; = . +SUBST: . = .:100 !:1 +: place_fog(_G, "freezing vapour", 15) +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 fog generators. +SUBST: 3 = 3! +: place_fog(_G, "freezing vapour", 20) +KFEAT: ! = . +SUBST: . = .:100 !:1 +: place_fog(_G, "freezing vapour", 8) +KFEAT: ! = . +SUBST: ; = . +: end +ITEM: any wand / any potion w:5 / any scroll w:5 +# The ':' provides a fog-free zone near the entrance. +SUBST: : = . +# A bit of layout randomization for the middle part. +: if crawl.coinflip() then +SUBST: '=x , -=. +: else +SUBST: '=. , -=x +: end +: ice_cave_colours(_G) +: ice_cave_milestone(_G) +MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.x.xxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.U.x$xxxxxxxx...xx;;;xxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwxxx.xxx$x..x...xx...xx;55xxxxx +xxxxxxxxxxxxxxxxxxxxxxxxwwwwxWWWxxxxxxx..x..xxxxxxxxxx;554xxx +xxxxxxxxxxxxxxxxxxxxxxxxxwxxxxxWwWxWW.xxxxx..xxwwwwwwxx;2525x +xxxxxxxxxxxxxxxxxxxxxwwxxxxxxxxxWWWWxW..xx..xxwwwwwwwwxx427;x +xxxxxxxxxxxxxxxxxxxwwwwwxxxxxxxWWxwWwxx...xxxwwwwwwwxxx;;5xxx +xxxxxxxxxxxxxxxxxxxxwwwwwxxx.WWxxxxwwwxxxxxwwwwwwxxxxx;;;xxxx +xxxxxxxxxxxxxxxxxxxxxxwwwxx."xxxwwwwwxwwxwwwxxxxxxx....xxxxxx +xxxxxxxxxxxxxxxx;...xxxwwwxx..xxxwwwwwwwwwwxx<..!x...xx.xfxxx +xxxxxxxxxxxxxx;;;xx...xxxwwxx..xxxxwwwwwwwwxxxx....xxxxxex|xx +xxxxxxxxxxxx;44x;xxxx...xxwx..xxxxxxwwxwxwwwwxxxxxxxxxxdx$xdx +xxxxxxxxxxx;4;xxx$xxxx;;;xwxx"..xxxxxwwwwwxwwwxxxxxxxxxx|xexx +xxxxxxxxxx;;;xxx$xxx;;;xxxwwxxx..xxxwwwxxwwwwxwxxxxxxxxxxfxxx +xxxxxxxxxxx;;..xxxx5;xxxwwwwxx...xxxxxwwwwwwwxxxxxxxxxxxxxxxx +xxxxxxxxxx.x.xxxxx51;5xxwwwwxxxx..xxxxxwwxxxxxxxxxxxxxxxxxxxx +xxxxxxxxx;;;xxxxxxx15;5xxwwxxx'''".xxxxwwxxxxxxxxxxxxxxxxxxxx +xxxxxxxx;;xxxxxxxxxxx5;1xxxx''xxxx.-xxxxwwwxxxxxxxxxxxxxxxxxx +xxxxxxx;1xxxxxxxxxxxxxx;;x'''xxxxx---xxxwwwwxxxxxxxxxxxxxxxxx +xxxxxxxx;11xxxxxxxxxxxx;;''xxxxx'xxx--xxxwwwwxxxxxxxxxxxxxxxx +xxxxxxxxxx1;xx.xxxxxxxxx--xxxxx''''--xxxwwwwwwxxxxxxxxxxxxxxx +xxxxxxxxx;;x;;....xxxx---xx.*.*.xx..xxxxwwwwwwwwxxxxxxxxxxxxx +xxxxxxxxxxx;xxxxx.;xxxx--x.g.T.g.xxx..xxxwwwwxxxxxxxxxxxxxxxx +xxxxxxxxxxx2;;2x;;;;xxxx-...*.*..xx.;;xxwwwwwwxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxx;xxx;1xxxx...xxxxxxxxx;;xxwwwxxxxxxxxxxxxxxxxx +xxxxxxxx.x;;;'xxxx;1;xxxxxx.-xxxxxxx1xxxxwwwxxxxxxxxxxxxxxxxx +xxxxxxx;*66-x..xxxxx11xxxx'.--x---15xxxwwwwxxxxxxxxxxxxxxxxxx +xxx::<xx;;xxxx..xxxxxx;;''xx-x-xxx115xxwwwwwxxxxxxxxxxxxxxxxx +xxA::xxxx;.xxx..xxxxxxx--xxxx-xx.11xxxwwwwwwxxxxxxxxxxxxxxxxx +xx::::xxx;,xx...xxxxxxxx1;xxx-;;;xxxxxwwwwwwxxxxxxxxxxxxxxxxx +xx:::xxxx;;;xx.3.xxxxxxxx;1x'''xxxxxwwwwwwwwxxxxxxxxxxxxxxxxx +xx::xxxx21;xxxx...xxxx..x;;''xxxxxxwwwwwwwxxxxxxxxxxxxxxxxxxx +x:::xx;12xxxx.x.xxxxx...x;xxxxxxwwwwwwwwxxxxxxxxxxxxxxxxxxxxx +x::xx;;;xxxxxx|x.xx...xx;xxxxxwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxx +x:::..;xxxxxxxx....xxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxx +xx:..xxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +ENDMAP |