summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ploog <dploog@users.sourceforge.net>2009-12-08 17:20:54 +0100
committerDavid Ploog <dploog@users.sourceforge.net>2009-12-08 17:20:54 +0100
commit7e820aaa9f2b4590d45783fc5e7a46708bd54046 (patch)
treea2c346cca60152c393f87413566000d545d66de5
parent6efa910975ee9276ad90a84016a4bbece541448c (diff)
downloadcrawl-ref-7e820aaa9f2b4590d45783fc5e7a46708bd54046.tar.gz
crawl-ref-7e820aaa9f2b4590d45783fc5e7a46708bd54046.zip
Greatly simplified unique vault syntax. (Darshan)
-rw-r--r--crawl-ref/source/dat/uniques.des438
1 files changed, 109 insertions, 329 deletions
diff --git a/crawl-ref/source/dat/uniques.des b/crawl-ref/source/dat/uniques.des
index b4c024d004..beb3c81b7d 100644
--- a/crawl-ref/source/dat/uniques.des
+++ b/crawl-ref/source/dat/uniques.des
@@ -1,16 +1,47 @@
################################################################################
-# uniques.des: This is where unique placement should be defined. You should use
-# the format set in the example vault.
+# uniques.des: This is where unique placement should be defined.
################################################################################
-# Most of this should be self-explanatory. Vaults tagged as "place_unique" are
-# assumed to place only one unique. If the unique is in a band, specify "unique
-# band", (see uniq_duvessa, etc). Names of vault don't matter, except for the
-# Boris vault.
+# Most of this should be self-explanatory. A unique vault can be defined by
+#
+# NAME: uniq_linley
+# DEPTH: D:1-27, !Orc
+# WEIGHT: 10
+# TAGS: place_unique
+# MONS: Linley
+# MAP
+# 1
+# ENDMAP
+#
+# This assumes that the unique is defined as a monster in the files
+# enum.h, mon-gear.cc, mon-data.h, mon-spll.h, tilemcache.cc, tilepick.cc
+# Their speech is defined in
+# dat/database/monspeak.txt
+#
+# Vaults tagged as "place_unique" are assumed to place only one unique. If the
+# unique is in a band, specify "unique band", (see uniq_duvessa, etc). Names of
+# vault don't matter, except for the Boris vault.
+#
+# For most purposes, a vault like the above sample is desired. You can use the
+# inline function place_unique in this case, reducing to
+#
+# NAME: uniq_linley
+# DEPTH: D:1-27, !Orc
+# : place_unique(_G, "Linley")
+#
+# The WEIGHT line was skipped as 10 is the default.
+# You have to deviate from this simple 3 liner only if
+# * You want a more complicated map, e.g. with items or other monsters.
+# (Not needed for unique in bands: place_unique(_G, "Linley band") works.)
+# * You want additional tags, for example because you want to make a number
+# of Linley vaults. In this case, you can still use the inline function;
+# just add a TAG line.
+# * You want different WEIGHTS. In this case, just add a WEIGHT line.
#
# If you want to weight uniques differently for some vaults, the weights for
-# these vaults should all add up to 10 (the default weight for uniques).
+# these vaults should all add up to 10 (the default weight for uniques),
+# unless you want to make that unique appear more or less frequent on purpose.
# You can use multiple vaults that are tagged "uniq_<name>", with different
-# weights for each of the vaults.
+# weights for each of the vaults. See uniq_ribbit for examples of all this.
#
# As a final caveat, you.branches[you.where_are_you].has_uniques is still
# checked before vaults are even considered; unique vaults with depths that
@@ -24,6 +55,14 @@
# bosses, and the Pan bosses.
################################################################################
+{{
+function place_unique(e, monster)
+ e.mons(monster)
+ e.tags("place_unique")
+ e.map("1")
+end
+}}
+
################################################################################
# Dummy, these are used to weight uniques per branch.
################################################################################
@@ -57,39 +96,19 @@ ENDMAP
NAME: uniq_agnes
DEPTH: 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Agnes
-MAP
-1
-ENDMAP
+: place_unique(_G, "Agnes")
NAME: uniq_aizul
DEPTH: 16-25, !Lair, !Slime, Snake:2-5
-WEIGHT: 10
-TAGS: place_unique
-MONS: Aizul
-MAP
-1
-ENDMAP
+: place_unique(_G, "Aizul")
NAME: uniq_azrael
DEPTH: 14-16, 17-19, !Lair, !Slime, !Swamp, !Shoal
-WEIGHT: 10
-TAGS: place_unique
-MONS: Azrael band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Azrael band")
NAME: uniq_blork_the_orc
DEPTH: 4-7, 8-9, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Blork the orc
-MAP
-1
-ENDMAP
+: place_unique(_G, "Blork the orc")
###############################################################################
# Do *not* change the name of this vault without changing the relevant section
@@ -98,299 +117,141 @@ ENDMAP
# remove the tag in monstuff.cc:monster_die.
NAME: uniq_boris
DEPTH: 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Boris
-MAP
-1
-ENDMAP
+: place_unique(_G, "Boris")
NAME: uniq_donald
DEPTH: 10-13, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Donald
-MAP
-1
-ENDMAP
+: place_unique(_G, "Donald")
NAME: uniq_duane
DEPTH: 17-19, 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Duane
-MAP
-1
-ENDMAP
+: place_unique(_G, "Duane")
NAME: uniq_duvessa
DEPTH: 4-7, 8-9, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Duvessa band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Duvessa band")
NAME: uniq_edmund
DEPTH: 4-7, 8-9, !Lair, !Slime
-WEIGHT: 10
-MONS: Edmund
-MAP
-1
-ENDMAP
+: place_unique(_G, "Edmund")
NAME: uniq_erica
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Erica
-MAP
-1
-ENDMAP
+: place_unique(_G, "Erica")
NAME: uniq_erolcha
DEPTH: 8-9, 10-13, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Erolcha
-MAP
-1
-ENDMAP
+: place_unique(_G, "Erolcha")
NAME: uniq_eustachio
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Eustachio
-MAP
-1
-ENDMAP
+: place_unique(_G, "Eustachio")
NAME: uniq_frances
DEPTH: 17-19, 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Frances
-MAP
-1
-ENDMAP
+: place_unique(_G, "Frances")
NAME: uniq_francis
DEPTH: 17-19, 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Francis
-MAP
-1
-ENDMAP
+: place_unique(_G, "Francis")
NAME: uniq_frederick
DEPTH: 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Frederick
-MAP
-1
-ENDMAP
+: place_unique(_G, "Frederick")
NAME: uniq_gastronok_1
DEPTH: 8-9, 10-13, !Lair, !Slime
-TAGS: place_unique uniq_gastronok
+TAGS: uniq_gastronok
WEIGHT: 5
-MONS: Gastronok
-MAP
-1
-ENDMAP
+: place_unique(_G, "Gastronok")
NAME: uniq_gastronok_2
DEPTH: Lair:4-8
-TAGS: place_unique uniq_gastronok
+TAGS: uniq_gastronok
WEIGHT: 15
-MONS: Gastronok
-MAP
-1
-ENDMAP
+: place_unique(_G, "Gastronok")
NAME: uniq_grum
DEPTH: 8-9, 10-13, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Grum band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Grum band")
NAME: uniq_harold
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Harold
-MAP
-1
-ENDMAP
+: place_unique(_G, "Harold")
NAME: uniq_iyjb
DEPTH: 1-3, 4-7
-WEIGHT: 10
-TAGS: place_unique
-MONS: Ijyb
-MAP
-1
-ENDMAP
+: place_unique(_G, "Ijyb")
NAME: uniq_jessica
DEPTH: 1-3
-WEIGHT: 10
-TAGS: place_unique
-MONS: Jessica
-MAP
-1
-ENDMAP
+: place_unique(_G, "Jessica")
NAME: uniq_joseph
DEPTH: 10-13, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Joseph
-MAP
-1
-ENDMAP
+: place_unique(_G, "Joseph")
NAME: uniq_josephine
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Josephine band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Josephine band")
NAME: uniq_jozef
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Jozef
-MAP
-1
-ENDMAP
+: place_unique(_G, "Jozef")
NAME: uniq_kirke
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Kirke band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Kirke band")
NAME: uniq_louise
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Louise
-MAP
-1
-ENDMAP
+: place_unique(_G, "Louise")
NAME: uniq_margery
DEPTH: 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Margery band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Margery band")
NAME: uniq_maud
DEPTH: 14-16
-WEIGHT: 10
-TAGS: place_unique uniq_maud
-MONS: Maud
-MAP
-1
-ENDMAP
+: place_unique(_G, "Maud")
NAME: uniq_maurice
DEPTH: 8-9, 10-13, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Maurice
-MAP
-1
-ENDMAP
+: place_unique(_G, "Maurice")
NAME: uniq_menkaure
DEPTH: 4-7
-WEIGHT: 10
-TAGS: place_unique
-MONS: Menkaure
-MAP
-1
-ENDMAP
+: place_unique(_G, "Menkaure")
NAME: uniq_nergalle
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Nergalle
-MAP
-1
-ENDMAP
+: place_unique(_G, "Nergalle")
NAME: uniq_nessos
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Nessos
-MAP
-1
-ENDMAP
+: place_unique(_G, "Nessos")
NAME: uniq_nikola
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Nikola
-MAP
-1
-ENDMAP
+: place_unique(_G, "Nikola")
NAME: uniq_norbert
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Norbert
-MAP
-1
-ENDMAP
+: place_unique(_G, "Norbert")
NAME: uniq_norris
DEPTH: 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Norris
-MAP
-1
-ENDMAP
+: place_unique(_G, "Norris")
NAME: uniq_pikel
DEPTH: 4-7, 8-9, !Lair, !Slime, !Orc
-WEIGHT: 10
-TAGS: place_unique
-MONS: Pikel band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Pikel band")
NAME: uniq_prince_ribbit1
DEPTH: 4-7, 8-9, !Lair
WEIGHT: 7
-TAGS: place_unique uniq_ribbit
-MONS: Prince Ribbit
-MAP
-1
-ENDMAP
+TAGS: uniq_ribbit
+: place_unique(_G, "Prince Ribbit")
NAME: uniq_prince_ribbit2
DEPTH: Lair:1-3
@@ -403,111 +264,58 @@ ENDMAP
NAME: uniq_psyche
DEPTH: 8-9, 10-13, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Psyche
-MAP
-1
-ENDMAP
+: place_unique(_G, "Psyche")
NAME: uniq_purgy
DEPTH: 3-4
WEIGHT: 1
-TAGS: place_unique
-MONS: Purgy
-MAP
-1
-ENDMAP
+: place_unique(_G, "Purgy")
NAME: uniq_roxanne
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
TAGS: place_unique
MONS: Roxanne
MAP
-1
+...
+.1.
+...
ENDMAP
NAME: uniq_rupert
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Rupert
-MAP
-1
-ENDMAP
+: place_unique(_G, "Rupert")
NAME: uniq_saint_roka
DEPTH: 17-19, 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Saint Roka band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Saint Roka band")
NAME: uniq_sigmund
DEPTH: 1-3, 4-7
-WEIGHT: 10
-TAGS: place_unique
-MONS: Sigmund
-MAP
-1
-ENDMAP
+: place_unique(_G, "Sigmund")
NAME: uniq_snorg
DEPTH: 14-16, 17-19, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Snorg
-MAP
-1
-ENDMAP
+: place_unique(_G, "Snorg")
NAME: uniq_sonja
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Sonja
-MAP
-1
-ENDMAP
+: place_unique(_G, "Sonja")
NAME: uniq_terence
DEPTH: 1-3
-WEIGHT: 10
-TAGS: place_unique
-MONS: Terence
-MAP
-1
-ENDMAP
+: place_unique(_G, "Terence")
NAME: uniq_urug
DEPTH: 10-13, 14-16, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Urug
-MAP
-1
-ENDMAP
+: place_unique(_G, "Urug")
NAME: uniq_wayne
DEPTH: 17-19, 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Wayne
-MAP
-1
-ENDMAP
+: place_unique(_G, "Wayne")
NAME: uniq_xtahua
DEPTH: 20-27, !Lair, !Slime
-WEIGHT: 10
-TAGS: place_unique
-MONS: Xtahua
-MAP
-1
-ENDMAP
+: place_unique(_G, "Xtahua")
################################################################################
@@ -517,62 +325,34 @@ ENDMAP
NAME: uniq_dissolution
DEPTH: Slime:2-6
WEIGHT: 100
-TAGS: place_unique
-MONS: Dissolution
-MAP
-1
-ENDMAP
+: place_unique(_G, "Dissolution")
NAME: uniq_murray
DEPTH: Hell
-WEIGHT: 10
-TAGS: place_unique
-MONS: Murray
-MAP
-1
-ENDMAP
+: place_unique(_G, "Murray")
NAME: uniq_polyphemus
DEPTH: Shoal:1-5
-WEIGHT: 10
-TAGS: place_unique
-MONS: Polyphemus band
-MAP
-1
-ENDMAP
+
+: place_unique(_G, "Polyphemus band")
NAME: uniq_ilsuiw
DEPTH: Shoal:1-5
-WEIGHT: 10
-TAGS: place_unique
-MONS: Ilsuiw band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Ilsuiw band")
NAME: uniq_khufu
DEPTH: Tomb, Crypt
-WEIGHT: 10
-TAGS: place_unique
-MONS: Khufu band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Khufu band")
NAME: uniq_tiamat
DEPTH: Zot
-WEIGHT: 10
-TAGS: place_unique
-MONS: Tiamat band
-MAP
-1
-ENDMAP
+: place_unique(_G, "Tiamat band")
+
###############################################################################
# Crazy Yiuf! Only in his cottage.
NAME: uniq_crazy_yiuf_cottage
DEPTH: D:2-7
-WEIGHT: 10
TAGS: place_unique no_monster_gen no_item_gen
MONS: Crazy Yiuf
ITEM: hammer