summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-03-28 08:58:09 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-03-28 08:58:09 +0000
commit84651bb77b43871a8142015a87f14b9e52f9e0d8 (patch)
treeedf6ce9f7c0f6283ddc1b8160c91e76cdcc2028b
parent242254cdf5f10ae806f22b624e830f51aca1e054 (diff)
downloadcrawl-ref-84651bb77b43871a8142015a87f14b9e52f9e0d8.tar.gz
crawl-ref-84651bb77b43871a8142015a87f14b9e52f9e0d8.zip
Updated levels (David).
Give Tiamat wings and flight. Converted her second attack to a tail-slap (David). Allow ITEM: declarations to use * % and |. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1113 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dat/splev.des216
-rw-r--r--crawl-ref/source/dat/tricky.des35
-rw-r--r--crawl-ref/source/dat/vaults.des36
-rw-r--r--crawl-ref/source/describe.cc4
-rw-r--r--crawl-ref/source/dungeon.cc12
-rw-r--r--crawl-ref/source/mapdef.cc13
-rw-r--r--crawl-ref/source/mapdef.h6
-rw-r--r--crawl-ref/source/mon-data.h5
8 files changed, 204 insertions, 123 deletions
diff --git a/crawl-ref/source/dat/splev.des b/crawl-ref/source/dat/splev.des
index af9f59e691..5bb100f83c 100644
--- a/crawl-ref/source/dat/splev.des
+++ b/crawl-ref/source/dat/splev.des
@@ -140,7 +140,9 @@
# ----
# Tags go an a TAGS: line and are space-separated. Valid tags are:
# "entry": this tag MUST be there for a vault to be pickable as an entry vault.
-# "no_monster_gen": this tag prevents monster generation at the time of
+# "no_item_gen": Prevents random item generation in the vault. Items
+# explicitly placed by the vault are not affected.
+# "no_monster_gen": Prevents random monster generation at the time of
# the vault's creation. Highly advised for entry vaults with
# a player-hostile geography, MUST-HAVE for those with water
# or lava.
@@ -161,16 +163,19 @@
# SHUFFLE:
# -------
# This allows you to randomly permute glyphs on the map. There are two ways:
-# SHUFFLE: 123w (i.e. list of glyphs, NOT comma-separated)
+# SHUFFLE: 123w (i.e. list of glyphs, NOT slash-separated)
# could, for example, swap all occurences of "1" with "2",
# as well as swapping all "3" with "w" (or any other of the 23
# possibilities).
# SHUFFLE: 12/3w (i.e. list of slash-separated blocks of same size)
# will either do nothing or swap all "1" with "3" and then also
# swap "2" with "w" everywhere.
-# Several SHUFFLE: lines can be used, and mixed with SUBST:, and the shuffles
-# and substitutions will be applied in order.
#
+# Several SHUFFLE: lines can be used, and mixed with SUBST:, and the shuffles
+# and substitutions will be applied in order. You can also put multiple
+# SHUFFLEs on one line, comma-separated. Shuffles cannot use , or /. All spaces
+# are stripped before shuffling.
+#
# SUBST:
# ------
# The SUBST: directive allows you to specify a placeholder symbol that is
@@ -195,7 +200,8 @@
# SUBST: w = wW
#
# Multiple SUBST: lines can be used, and mixed with SHUFFLE:, and will be
-# applied in order.
+# applied in order. Multiple substitutions can be performed on one line, using
+# commas.
#
# KFEAT:
# -----
@@ -521,7 +527,7 @@ ORIENT: encompass
MONS: Antaeus, Ice Fiend, ice dragon / nothing
MONS: random, random, random, random
ITEM: any, any misc, any misc, any misc
-SHUFFLE: O1d/e0%/f9*/g8|
+SHUFFLE: O1d / e0% / f9* / g8|
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -2567,8 +2573,8 @@ MONS: random, random, random, random
##############################################################################
# Dummy Orc entry
-NAME: david_orc_0_dummy
-TAGS: orc_entry
+NAME: orc_0_dummy
+TAGS: orc_entry
CHANCE: 50
ORIENT: float
MAP
@@ -2576,29 +2582,28 @@ O
ENDMAP
##############################################################################
-# Freedom of Choice (Orc entry)
-
+# Freedom of Choice
+#
NAME: david_orc_1_choice
TAGS: orc_entry
MONS: orc, warg / orc priest / orc warrior, orc warrior / orc
-ITEM: scroll of blinking / scroll of recharging / scroll of fear
-ITEM: scroll of teleport / scroll of remove curse / scroll of identify
+ITEM: % / scroll of teleport / scroll of remove curse / scroll of identify
+ITEM: % / weight:2 * / scroll of blinking / scroll of recharging / scroll of fear
+SHUFFLE: %1
ORIENT: float
MAP
xxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxx.........xxxxxxxx
-xxxxx.......O.......xxxxx
+xxxxxxxxxxxxOxxxxxxxxxxxx
+xxxxxxxxx.......xxxxxxxxx
+xxxxxx.............xxxxxx
xxxx....x.......x....xxxx
-xxxx...xxx.....xxx...xxxx
-xxx...xxxxx...xxxxx...xxx
xxx....xxx.....xxx....xxx
xx.....xxx.I.I.xxx..I..xx
xx......x.......x......xx
x..x.x..x..x=x..x..x+x..x
x.xx.xx.x.xx=xx.x.xx~xx.x
-x.x.%.x.x.x2.2x.x.x.3.x.x
-x.x.1.x.x.xdddx.x.x.e.x.x
-x.x.%.x.x.x2.2x.x.x.3.x.x
+x.x%1.x.x.x2e2x.x.x3d3x.x
+x.x.%1x.x.x2e2x.x.xd3dx.x
x.xx.xx.x.xx=xx.x.xx~xx.x
x..x.x..x..x=x..x..x+x..x
x.......+.......+.......x
@@ -2609,12 +2614,11 @@ ENDMAP
##############################################################################
# Generic Orc entry
-
+#
NAME: david_orc_2
TAGS: orc_entry
-MONS: weight:50 orc / orc warrior
+MONS: weight:50 orc / orc warrior / nothing
ORIENT: float
-
MAP
xxxx..@..xxxx
x.....I.....x
@@ -2629,13 +2633,12 @@ ENDMAP
##############################################################################
# Orcish monsters near stair
-
+#
NAME: david_orc_3
TAGS: orc_entry
MONS: weight:80 nothing / weight:50 orc / orc priest / orc wizard / orc warrior
MONS: nothing / orc warrior / warg / orc priest
ORIENT: float
-
MAP
1.....@....11
1............
@@ -2650,7 +2653,7 @@ ENDMAP
#############################################################################
# The Orc Outfitter
-
+#
NAME: orc_david_3
TAGS: orc_entry
ORIENT: float
@@ -2671,11 +2674,11 @@ ENDMAP
#############################################################################
# Wary orcs
#
-
NAME: david_orc_4
TAGS: orc_entry
ORIENT: float
FLAGS: no_rotate
+SHUFFLE: XYZ
SUBST: ? = I:11 G F:1
SUBST: a = ~:4 .
SUBST: b = ~:8 .
@@ -2684,7 +2687,6 @@ SUBST: d = ~:16 .
KFEAT: X = .
KFEAT: Y = blade trap
KFEAT: Z = blade trap
-SHUFFLE: XYZ
MAP
xxxxxxxxxxxxxxxxxxxxxx
xx?xxx?xxx?xxx?xxxxxxx
@@ -2704,9 +2706,8 @@ NAME: david_orc_5
TAGS: orc_entry
ORIENT: float
KFEAT: C = altar of Yredelemnul / altar of Makhleb / altar of Trog
-MONS: orc priest
-MONS: orc / weight:5 orc warrior / weight:1 orc knight
-SHUFFLE: cxv
+MONS: orc priest, orc / weight:5 orc warrior / weight:1 orc knight
+SUBST: x : cxv
SUBST: ( = ( .
SUBST: ) = ) .
MAP
@@ -2722,13 +2723,14 @@ ENDMAP
##############################################################################
# Caught partying
-
-NAME: erik_orc_1
-TAGS: orc_entry
-MONS: orc, orc priest/orc wizard, weight:50 orc warrior/ogre, swamp drake
+#
+NAME: erik_orc_1
+TAGS: orc_entry
+MONS: orc, orc priest/orc wizard, weight:50 orc warrior/ogre, swamp drake
# The drake's name is Bobby. Since you did ask.
KITEM: 1 = sausage / nothing / animal skin / potion of confusion / potion of paralysis / potion of slowing / potion of degeneration / weight:2 potion of speed / weight:2 potion of might
-ITEM: club, potion of confusion, slice of pizza, sausage / weight:40 nothing, potion of confusion / potion of water
+ITEM: club, potion of confusion, slice of pizza, sausage / weight:40 nothing
+ITEM: potion of confusion / potion of water
SHUFFLE: defO
FLAGS: no_rotate
ORIENT: float
@@ -2746,10 +2748,11 @@ ENDMAP
##############################################################################
# C'mon, you *gotta* have a *fort*!
-
+#
NAME: erik_orc_2
TAGS: orc_entry no_pool_fixup
-MONS: orc warrior, orc priest/orc wizard, weight:100 orc / orc warrior, weight:100 orc knight / orc warrior
+MONS: orc warrior, orc priest/orc wizard, weight:100 orc / orc warrior
+MONS: weight:100 orc knight / orc warrior
ORIENT: float
FLAGS: no_rotate
SUBST: c = c:1000 x
@@ -2772,14 +2775,14 @@ ENDMAP
##############################################################################
# Just like home
-
-NAME: erik_orc_3
-TAGS: orc_entry
-MONS: orc / weight:2 goblin / weight:2 hobgoblin / nothing, orc warrior / orc priest / orc wizard / nothing, warg / ogre / nothing
+#
+NAME: erik_orc_3
+TAGS: orc_entry no_item_gen
+MONS: orc / weight:2 goblin / weight:2 hobgoblin / nothing
+MONS: orc warrior / orc priest / orc wizard / nothing
+MONS: warg / ogre / nothing
ORIENT: float
-SUBST: ? = x . $:1
-# too bad there's no no_item_gen tag
-
+SUBST: ? = x . $:1
MAP
xxx.xxxxxxxxxxxxxxxxxxx
xxx?.x?x?xx?xxx??xx?xxx
@@ -2804,7 +2807,7 @@ ENDMAP
##############################################################################
# Orc-henge
-
+#
NAME: erik_orc_4
TAGS: orc_entry
MONS: human/goblin/hobgoblin/weight:2 orc, orc priest, orc
@@ -2816,7 +2819,7 @@ SUBST: X : c:20 .
SUBST: v : c:20 .
SUBST: b : c:20 .
KITEM: 2 = knife
-
+#
MAP
..............................
...............ZZ.............
@@ -2844,8 +2847,8 @@ ENDMAP
##############################################################################
# Dummy Vaults entry
-NAME: david_vaults_0_dummy
-TAGS: vault_entry
+NAME: vaults_0_dummy
+TAGS: vault_entry
CHANCE: 60
ORIENT: float
MAP
@@ -2854,16 +2857,18 @@ ENDMAP
##############################################################################
# Generic Vaults entry
-
-NAME: david_vaults_1
-TAGS: vault_entry
-MONS: human
-ORIENT: float
+#
+NAME: david_vaults_1
+TAGS: vault_entry
+MONS: weight:20 nothing / weight:30 human / necromancer / wizard
+ORIENT: float
+SHUFFLE: !=
+SUBST: ! = x
MAP
xxxxx.@.xxxxx
x...+...x...x
x...x...x...x
-xxx=x111x...x
+x!x=x111x...x
@.x.x111+.O.x
x.x.x111x...x
x.x.x...x...x
@@ -2873,7 +2878,7 @@ ENDMAP
##############################################################################
# Vault monsters near stair
-
+#
NAME: david_vaults_2
TAGS: vault_entry
MONS: weight:40 nothing / weight:30 yaktaur / yaktaur captain
@@ -2901,7 +2906,6 @@ NAME: david_vaults_3
TAGS: vault_entry
ORIENT: float
MONS: human, human / Donald, human / Michael, human / Norris, human / Wayne
-# are these uniques all human? -- Yes [ds]
SHUFFLE: 2345
MAP
@..........@
@@ -2922,6 +2926,7 @@ ENDMAP
NAME: david_vaults_4
TAGS: vault_entry
ORIENT: float
+SHUFFLE: 12345
MONS: dragon / golden dragon / ice dragon / iron dragon / shadow dragon / storm dragon
MONS: freezing wraith / shadow wraith / wight / wraith
MONS: deep troll / iron troll / rock troll / troll
@@ -2935,14 +2940,14 @@ SUBST: 3 = 3 .
SUBST: 4 = 4 .
SUBST: 5 = 5 .
SUBST: * : * % .
-SHUFFLE: 12345
+
MAP
@..........@
.xxxxxxxxxx.
.x..12345.x.
.x.xxxxx..x.
-.x.x.**x..x.
-.x.+.*Ox..x.
+.x.x***x..x.
+.x.+**Ox..x.
.xxxxxxx..x.
...777....x.
.xx...xxxxx.
@@ -2959,7 +2964,6 @@ SUBST: ! : ! .
SUBST: ? : ? .
SUBST: ? = .:30 0:10 9:4 8:1 %:10 *:4 |:1
SUBST: ! = .:30 0:10 9:4 8:1 %:10 *:4 |:1
-# half of the !? are nothing, a quarter are monsters, another quarter items
MAP
xxxxxxxxxxxxxx
xOx!x!x?x!x?xx
@@ -3018,9 +3022,8 @@ ENDMAP
# Lair entries
##############################################################################
# Dummy Lair entry
-
-NAME: david_lair_0_dummy
-TAGS: orc_lair
+NAME: lair_0_dummy
+TAGS: orc_lair
CHANCE: 60
ORIENT: float
MAP
@@ -3029,11 +3032,13 @@ ENDMAP
##############################################################################
# Generic Lair entry
-
-NAME: david_lair_1
-TAGS: lair_entry
-MONS: giant lizard, giant snail, yak, plant
-ORIENT: float
+#
+NAME: david_lair_1
+TAGS: lair_entry
+MONS: giant lizard, giant snail / elephant slug
+MONS: yak / weight:2 death yak, plant / fungus
+SHUFFLE: 12
+ORIENT: float
MAP
xxxx..@..xxxx
xx.........xx
@@ -3048,7 +3053,7 @@ ENDMAP
##############################################################################
# Shrubbed Lair entry
-
+#
NAME: david_lair_2
TAGS: lair_entry
MONS: plant, firedrake
@@ -3067,7 +3072,7 @@ ENDMAP
##############################################################################
# Lair monsters near stair
-
+#
NAME: david_lair_3
TAGS: lair_entry
MONS: weight:50 nothing / weight:30 giant slug / weight:30 giant snail
@@ -3077,7 +3082,6 @@ MONS: green rat / grey rat / orange rat / quokka / rat
MONS: weight:90 nothing / weight:30 giant frog / blink frog / giant brown frog / spiny frog
SHUFFLE: 12345
ORIENT: float
-
MAP
111...@......
111..........
@@ -3093,7 +3097,7 @@ ENDMAP
########################################################################
# Obligatory Oklob Plant Lair Entry Vault,
# a.k.a. let's see just how many new-in-DCSS vault-features we can use at once
-
+#
NAME: erik_lair_1
TAGS: lair_entry no_monster_gen no_pool_fixup
MONS: plant, fungus, oklob plant, boulder beetle
@@ -3102,7 +3106,6 @@ SHUFFLE: 124w
SHUFFLE: cG
SUBST: ? = %.
KMONS: O = oklob plant
-
MAP
..............@.........
..........x.............
@@ -3133,14 +3136,13 @@ ENDMAP
##############################################################################
# A boring Lair entry vault.
-
+#
NAME: erik_lair_2
TAGS: lair_entry
MONS: generate_awake boring beetle / nothing / rat, generate_awake boring beetle
# Rats are boring.
ORIENT: float
SUBST: ? = c x $ .
-
MAP
xxxxxxxxx?xxxx
xxxxxx?xxxx?xx
@@ -3155,13 +3157,12 @@ ENDMAP
########################################################################
# Welcome to Lair Island. We make great pancakes.
-
+#
NAME: erik_lair_3
TAGS: lair_entry
MONS: weight:50 troll / Snorg, weight:30 hound / jackal / weight:20 war dog
ORIENT: float
SUBST: ? = w.
-
MAP
.@........ww?www?.....
..?.?.?..wwwwwww.?..?.
@@ -3182,7 +3183,7 @@ ENDMAP
########################################################################
# Dragon's Lair, for generous values of Dragon
-
+#
NAME: erik_lair_4
TAGS: lair_entry
MONS: steam dragon/mottled dragon/swamp drake
@@ -3209,7 +3210,7 @@ ENDMAP
##############################################################################
# Orcish Takeover!
-
+#
NAME: erik_lair_5
TAGS: lair_entry
MONS: orc, warg/giant snail, orc warrior/warg, orc priest/orc wizard/plant
@@ -3229,9 +3230,9 @@ ENDMAP
##############################################################################
# Hive entries
##############################################################################
-# Beehive entry
-
-NAME: david_hive_0
+# Dummy entry
+#
+NAME: hive_0
TAGS: hive_entry
ORIENT: float
CHANCE: 60
@@ -3239,6 +3240,9 @@ MAP
O
ENDMAP
+##############################################################################
+# Standard hive
+#
NAME: david_hive_1
TAGS: hive_entry
MONS: queen bee, killer bee, killer bee larva
@@ -3260,13 +3264,12 @@ ENDMAP
##############################################################################
# Hive monsters near stair
-
+#
NAME: david_hive_2
-TAGS: hive_entry
+TAGS: hive_entry
MONS: nothing / killer bee / killer bee larva
MONS: queen bee
ORIENT: float
-
MAP
1111..@.....1
1211.........
@@ -3288,35 +3291,45 @@ ORIENT: float
ITEM: honeycomb, honeycomb, honeycomb / royal jelly, royal jelly
MONS: killer bee larva / killer bee, queen bee
MONS: giant ant / soldier ant, queen ant
-MONS: bumblebee, yellow wasp
+MONS: yellow wasp / nothing, red wasp / yellow wasp
+MONS: bumblebee
+SHUFFLE: XY
+SHUFFLE: VW
SHUFFLE: defgOR
SHUFFLE: 34 / 56
+SUBST: V = =
+SUBST: W = a
+SUBST: X = =
+SUBST: Y = a
+SUBST: ? = a .:20
+SUBST: 1 : 1 7:2
+SUBST: 7 = 7 .
MAP
............................
-................aaa..aaa....
-....aaa........aaOaaaadaa...
-..aaa4aa........aa=.aa=eaa..
-.aa33a.aaa.......a.a11aaa...
-.aaR3a..=...T...a.1aea1.a...
-..a.3..aaa......aa.1a2a1aa..
-..aa.3aa.......aaaaa1a1a=aa.
-...aaaa.........aag=..aafaa.
-.................aaaaaaaaa..
-...................aaa.a....
+.....??........??aaa?aaa???.
+...?aaa?......?aaOaaaadaa?..
+.?aaa.aa??.....?aa=.aa=eaa?.
+.aa333.aaa.......a?a11aaa?..
+.aaR43..=...T...a.1aea1.a?..
+.?a.33.aaa......aa.1a2a1aa?.
+.?aa.3aa??.....aaaVa1a1aYaa.
+..?aaaa?.......?aagW..aXfaa.
+...????.........?aaaaaaaaa?.
+.................??aaa?a??..
............................
ENDMAP
##############################################################################
# Bears Won't Share
-
+#
NAME: erik_hive_1
TAGS: hive_entry
-MONS: weight:200 bear/polar bear, grizzly bear, black bear, killer bee, queen bee, killer bee larva
+MONS: weight:200 bear/polar bear, grizzly bear, black bear
+MONS: killer bee, queen bee, killer bee larva
ITEM: honeycomb, royal jelly
SHUFFLE: 123
SHUFFLE: deO
ORIENT: float
-
MAP
.......................
.............aaa.......
@@ -3329,9 +3342,9 @@ MAP
.......................
ENDMAP
-
##############################################################################
# Bucolic
+#
NAME: erik_hive_2
TAGS: hive_entry
MONS: plant, killer bee
@@ -3357,15 +3370,14 @@ MAP
.....................
ENDMAP
-
##############################################################################
# Object lesson
+#
NAME: erik_hive_3
TAGS: hive_entry
MONS: killer bee larva, killer bee, queen bee, firedrake
SUBST: l = l.
ORIENT: float
-
MAP
..................
...aaaaa..........
diff --git a/crawl-ref/source/dat/tricky.des b/crawl-ref/source/dat/tricky.des
index 2288e9f079..39a8a386b1 100644
--- a/crawl-ref/source/dat/tricky.des
+++ b/crawl-ref/source/dat/tricky.des
@@ -2,7 +2,7 @@
# Tricky entry vaults
# This file contains a number of entries which may not be appropriate for
# certain players, like newbies. These entries may require the use of certain
-# item, or demand searching for hidden passages, or may be plain more risky.
+# items, or demand searching for hidden passages, or may be plain more risky.
# By default, they are not used. If you want to try them, set in the init.txt
# entries += tricky
##############################################################################
@@ -210,6 +210,39 @@ xxx@xxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
##############################################################################
+# Tricky river
+
+NAME: lemuel_trickyentry_river
+TAGS: entry no_monster_gen
+ORIENT: float
+SHUFFLE: {[(
+SHUFFLE: ABC
+SUBST: A = =
+SUBST: B = x
+SUBST: C = x
+CHANCE: 1
+MAP
+xxxxxxxxxxxxxxxxxxx
+xxxWA{...(...[xxxxx
+xxwWx.........xxxxx
+xwwWB.........xxxxx
+xwwWx.........xxxxx
+xwwWC.........xxxxx
+xxWwx.........xxxxx
+xxWwww........xxxxx
+xWxwwwwwwww...xxxxx
+xWxxwwwwwwwwwwxxxxx
+xxWxxwwwwwwwwwwwxxx
+xxWxx...wwwwwwwwwxx
+xxwWx........wwwwxx
+xwxw+.........xwwwx
+xwxxx.........xxwwx
+xxxxx.........xxxwx
+xxxxx.........xxxxx
+xxxxx.........xxxxx
+ENDMAP
+
+##############################################################################
# the eight (infinity)
NAME: david_trickyentry_001_infinity
diff --git a/crawl-ref/source/dat/vaults.des b/crawl-ref/source/dat/vaults.des
index 20ae5051e5..39dc997185 100644
--- a/crawl-ref/source/dat/vaults.des
+++ b/crawl-ref/source/dat/vaults.des
@@ -140,7 +140,9 @@
# ----
# Tags go an a TAGS: line and are space-separated. Valid tags are:
# "entry": this tag MUST be there for a vault to be pickable as an entry vault.
-# "no_monster_gen": this tag prevents monster generation at the time of
+# "no_item_gen": Prevents random item generation in the vault. Items
+# explicitly placed by the vault are not affected.
+# "no_monster_gen": Prevents random monster generation at the time of
# the vault's creation. Highly advised for entry vaults with
# a player-hostile geography, MUST-HAVE for those with water
# or lava.
@@ -161,16 +163,19 @@
# SHUFFLE:
# -------
# This allows you to randomly permute glyphs on the map. There are two ways:
-# SHUFFLE: 123w (i.e. list of glyphs, NOT comma-separated)
+# SHUFFLE: 123w (i.e. list of glyphs, NOT slash-separated)
# could, for example, swap all occurences of "1" with "2",
# as well as swapping all "3" with "w" (or any other of the 23
# possibilities).
# SHUFFLE: 12/3w (i.e. list of slash-separated blocks of same size)
# will either do nothing or swap all "1" with "3" and then also
# swap "2" with "w" everywhere.
-# Several SHUFFLE: lines can be used, and mixed with SUBST:, and the shuffles
-# and substitutions will be applied in order.
#
+# Several SHUFFLE: lines can be used, and mixed with SUBST:, and the shuffles
+# and substitutions will be applied in order. You can also put multiple
+# SHUFFLEs on one line, comma-separated. Shuffles cannot use , or /. All spaces
+# are stripped before shuffling.
+#
# SUBST:
# ------
# The SUBST: directive allows you to specify a placeholder symbol that is
@@ -195,7 +200,8 @@
# SUBST: w = wW
#
# Multiple SUBST: lines can be used, and mixed with SHUFFLE:, and will be
-# applied in order.
+# applied in order. Multiple substitutions can be performed on one line, using
+# commas.
#
# KFEAT:
# -----
@@ -425,12 +431,12 @@ ENDMAP
NAME: lemuel_entry_005_b
TAGS: entry no_monster_gen
ORIENT: float
-SHUFFLE: {[(
CHANCE: 5
-
-# Although it is extremely likely that the dungeon builder will provide
-# a shallow water path out, we take steps to ensure this is always the case.
-
+SHUFFLE: {[(
+SHUFFLE: XYZ
+SUBST: X = W
+SUBST: Y = w
+SUBST: Z = w
MAP
xxxxxxxxxxxxxxxxxxx
xxxxx{...(...[xxxxx
@@ -439,11 +445,11 @@ xwxxx.........xxxxx
xwwxx.........xxxxx
xwwwx.........xxxxx
xxwwx.........xxxxx
-xxwwww........xxxxx
-xxxwwwwwWww...xxxxx
-xxxxwwwwwWwwwwxxxxx
-xxxxxwwwWwwwwwwwxxx
-xxxxx...wwwwwwwwwxx
+xxwwXw........xxxxx
+xxxXwwwwwww...xxxxx
+xxxxXwwwwYYwwZxxxxx
+xxxxxXwwYwwwwwZwxxx
+xxxxx...wwwwwZwwwxx
xxxxx........wwwwxx
xxxxx.........xwwwx
xxxxx.........xxwwx
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 05830e781b..890e3201cb 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -5957,8 +5957,8 @@ void describe_monsters(int class_described, unsigned char which_mons)
break;
case MONS_TIAMAT:
- description += "A powerful draconian. Her scales seem to shimmer "
- "and change colour as you watch.";
+ description += "A powerful draconian with mighty wings. $"
+ "Her scales seem to shimmer and change colour as you watch.$";
break;
case MONS_DRACONIAN:
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 557c24bd33..2bea533386 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -6018,6 +6018,18 @@ static void dngn_place_item_explicit(const item_spec &spec,
if (spec.level >= 0)
level = spec.level;
+ else
+ {
+ switch (spec.level)
+ {
+ case ISPEC_GOOD:
+ level = 5 + level * 2;
+ break;
+ case ISPEC_SUPERB:
+ level = MAKE_GOOD_ITEM;
+ break;
+ }
+ }
const int item_made =
items( spec.allow_uniques, spec.base_type, spec.sub_type, true,
diff --git a/crawl-ref/source/mapdef.cc b/crawl-ref/source/mapdef.cc
index 706bfec6bf..acd7dc4dbf 100644
--- a/crawl-ref/source/mapdef.cc
+++ b/crawl-ref/source/mapdef.cc
@@ -1104,9 +1104,20 @@ item_spec item_list::parse_single_spec(std::string s)
trim_string(s);
// Completely random?
- if (s == "random" || s == "any")
+ if (s == "random" || s == "any" || s == "%")
return (result);
+ if (s == "*")
+ {
+ result.level = ISPEC_GOOD;
+ return (result);
+ }
+ else if (s == "|")
+ {
+ result.level = ISPEC_SUPERB;
+ return (result);
+ }
+
if (s == "nothing")
{
result.base_type = OBJ_UNASSIGNED;
diff --git a/crawl-ref/source/mapdef.h b/crawl-ref/source/mapdef.h
index c96d6df9bb..7f0a21eecc 100644
--- a/crawl-ref/source/mapdef.h
+++ b/crawl-ref/source/mapdef.h
@@ -210,6 +210,12 @@ private:
std::string error;
};
+enum item_spec_type
+{
+ ISPEC_GOOD = -2,
+ ISPEC_SUPERB = -3
+};
+
struct item_spec
{
int genweight;
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index aa0351b7a1..25643ffb05 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -4404,10 +4404,11 @@
,
{
MONS_TIAMAT, 'd', MAGENTA, "Tiamat",
- M_HUMANOID | M_SEE_INVIS | M_EVIL | M_UNIQUE,
+ M_HUMANOID | M_SEE_INVIS | M_EVIL | M_UNIQUE | M_FLIES,
MR_RES_POISON,
0, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, -5,
- { {AT_HIT, AF_PLAIN, 35}, {AT_HIT, AF_PLAIN, 25}, {AT_HIT, AF_PLAIN, 10} },
+ { {AT_HIT, AF_PLAIN, 35}, {AT_TAIL_SLAP, AF_PLAIN, 25},
+ {AT_NONE, AF_PLAIN, 0}, {AT_NONE, AF_PLAIN, 0} },
{ 22, 0, 0, 200 },
8, 10, 10, 10, MST_NO_SPELLS, CE_NOCORPSE, Z_SMALL, S_ROAR, I_HIGH,
MONUSE_STARTING_EQUIPMENT, SIZE_MEDIUM