fix issue #326 - can't wish for were-foo corpse

"were{rat,jackal,wolf}" each occur twice in mons[], once for the
beast form and second time among '@' for the human form.  Wishing
for werecreature corpse or tin always matches the first entry so
yields the beast form, but all their beast forms are flagged as
no-corpse so the wish would fallback to a corpse with random monster
type.  Wishing for werecreature figurine worked but always produced
one that created its beast form if/when activated.

This fix allows specifying "human werecreature" to match the second
entry.  It's optional for corpse and tin; the wish code will now
switch to that implicitly if it gets a no-corpse were-form for
those.  It has to be specified explicitly to get a figurine that
will activate as the human form.  It works for ^G too.

Fixes #326
This commit is contained in:
PatR
2020-04-19 05:28:18 -07:00
parent 05403182eb
commit 2337252acf
3 changed files with 27 additions and 1 deletions

View File

@@ -141,6 +141,13 @@ wish parsing of things containing monster names would accept all supported
alternate spellings if they occurred at the end ("corpse of mumakil")
but only some when they occurred elsewhere ("gray-elf corpse" worked,
"mumakil corpse" yielded "does not exist") depending upon name length
couldn't wish for werecreature corpse or tin because monster name lookup
always matched the beast form which is flagged no-corpse; switch to
human form for "were<creature>"
wishing for werecreature figurine always made one that created the monster in
beast form if activated; allow "human were<creature>" to explicitly
specify werecreature's human form (for corpses and tins as well as
figurines); override the restriction against human figurines for that
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository