summaryrefslogtreecommitdiffstats
path: root/crawl-ref/docs/develop
diff options
context:
space:
mode:
authorDarshan Shaligram <dshaligram@users.sourceforge.net>2009-11-04 20:09:46 +0530
committerDarshan Shaligram <dshaligram@users.sourceforge.net>2009-11-04 20:15:34 +0530
commit9ad85435681ad82c7ef07d2083e40e525e2b0f55 (patch)
tree3b16cb1129c004ad90cce5c81486373557d5f272 /crawl-ref/docs/develop
parentf7c29d55ca91d539d64de5e120a5b2c301ccb938 (diff)
downloadcrawl-ref-9ad85435681ad82c7ef07d2083e40e525e2b0f55.tar.gz
crawl-ref-9ad85435681ad82c7ef07d2083e40e525e2b0f55.zip
Allow vaults to override monster spells with spells:<xyz>
Vaults can now override monster spell sets, or give non-casting monsters spells, and mark monsters as wizard or priest types. The M_ACTUAL_SPELLS, M_SPELLCASTER and M_PRIEST monster class flags are converted into MF_* flags at monster creation/polymorph time, and only the per-monster flags are checked when determining wizard/priestliness. See caveats in level_design.txt.
Diffstat (limited to 'crawl-ref/docs/develop')
-rw-r--r--crawl-ref/docs/develop/level_design.txt56
1 files changed, 55 insertions, 1 deletions
diff --git a/crawl-ref/docs/develop/level_design.txt b/crawl-ref/docs/develop/level_design.txt
index b7c1f2c728..cdeac74581 100644
--- a/crawl-ref/docs/develop/level_design.txt
+++ b/crawl-ref/docs/develop/level_design.txt
@@ -722,7 +722,61 @@ MONS: (list of monsters)
and then using the glyph '1' multiple times will result in multiple
"Durwent the Kobold"s).
- Monster names should be used very, very, very sparingly.
+ Monster names should be used very sparingly.
+
+ Overriding Monster Spells:
+ --------------------------
+ Monster spell sets can be overridden with a spells: tag,
+ used as follows:
+
+ MONS: goblin spells:throw_flame
+ MONS: ancient lich spells:symbol_of_torment;ice_storm;ice_storm
+
+ (a list of spell names, spaces replaced with underscores,
+ and names separated by ';' with no spaces around the ';' or
+ after the spell: prefix)
+
+ Monster spells currently use a limited spell-slot system,
+ with these slots:
+ 1. Bolt spell
+ 2. Enchantment
+ 3. Self-enchantment
+ 4. Misc(1)
+ 5. Misc(2)
+ 6. Emergency/escape
+
+ These slots are not hard and fast rules, but it is sometimes
+ useful to drop a spell in a specific slot, for instance the
+ emergency/escape slot:
+ MONS: hobgoblin spells:.;.;.;.;.;teleport_self
+
+ Spell names must exactly match the names in spl-data.h, with
+ spaces replaced by underscores. You may use "." or an empty
+ string to specify that a slot should be left empty. You can
+ force a spell-less monster with:
+ MONS: orc wizard spells:.
+ (although why you'd want to do this is open to question.)
+
+ If you define spells for a monster that cannot cast spells
+ normally, you may want to mark the monster as a real
+ spellcaster with 'actual_spells':
+ MONS: goblin spells:throw_flame actual_spells
+
+ Or as a priestly (divine) caster with 'priest_spells':
+ MONS: goblin spells:smiting priest_spells
+
+ Real spellcasters and priests can be silenced and will
+ trigger appropriate conducts (Trog will appreciate killing
+ spellcasters, Beogh will appreciate killing priests). If you
+ define spells without specifying 'actual_spells' or
+ 'priest_spells', and the monster cannot cast spells
+ normally, the spells will be treated as innate abilities, so
+ the monster can use these spells even when silenced.
+ Treating spells as innate abilities may produce odd casting
+ message (such as: "the rat throws fire at you"). If you find
+ the messages you get unsatisfactory, add suitable entries to
+ source/dat/database/monspell.txt.
+
COLOUR: . = green / blue:5 / red / none
COLOUR: allows you to attach explicit colours to any feature.