From 7e820aaa9f2b4590d45783fc5e7a46708bd54046 Mon Sep 17 00:00:00 2001 From: David Ploog Date: Tue, 8 Dec 2009 17:20:54 +0100 Subject: Greatly simplified unique vault syntax. (Darshan) --- crawl-ref/source/dat/uniques.des | 438 ++++++++++----------------------------- 1 file 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_", 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 -- cgit v1.2.3-54-g00ecf