diff options
author | Shmuale Mark <shm.mark@gmail.com> | 2014-06-26 14:16:49 -0400 |
---|---|---|
committer | Shmuale Mark <shm.mark@gmail.com> | 2014-06-26 14:16:49 -0400 |
commit | 0e1b8faa9d1878b449fac1ff185b63526249e8d8 (patch) | |
tree | 136613c7bbec95f103d4db910cd4865d050f8194 /crawl-ref/source/mon-death.cc | |
parent | 8d4f0ef980dcbef12f53137d11df3fe11ce316f2 (diff) | |
download | crawl-ref-0e1b8faa9d1878b449fac1ff185b63526249e8d8.tar.gz crawl-ref-0e1b8faa9d1878b449fac1ff185b63526249e8d8.zip |
Make living lost soul revival more like the undead one.
Turning the monster into a spectre is a really cool effect and causes
some useful things automatically, like making it evil, but has interface
problems (with showing the base monster type, not just the species) and
also monster-monster consistency ones (in general, spectral things can't
cast spells).
There are minor gameplay differences, mostly in that the new monster
will not have any of the resistances/vulnerabities of being undead,
but in general it should play similarly to how it already does.
Diffstat (limited to 'crawl-ref/source/mon-death.cc')
-rw-r--r-- | crawl-ref/source/mon-death.cc | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/crawl-ref/source/mon-death.cc b/crawl-ref/source/mon-death.cc index e405290187..79356e376e 100644 --- a/crawl-ref/source/mon-death.cc +++ b/crawl-ref/source/mon-death.cc @@ -777,7 +777,9 @@ static bool _monster_avoided_death(monster* mons, killer_type killer, int i) // Before the hp check since this should not care about the power of the // finishing blow - if (mons->holiness() == MH_UNDEAD && !mons_is_zombified(mons) + if (!mons_is_zombified(mons) + && (mons->holiness() == MH_UNDEAD || mons->holiness() == MH_NATURAL) + && !testbits(mons->flags, MF_SPECTRALISED) && killer != KILL_RESET && killer != KILL_DISMISSED && killer != KILL_BANISHED @@ -2554,16 +2556,6 @@ int monster_die(monster* mons, killer_type killer, invalidate_agrid(); } - // Done before items are dropped so that we can clone them - if (mons->holiness() == MH_NATURAL - && killer != KILL_RESET - && killer != KILL_DISMISSED - && killer != KILL_BANISHED - && _lost_soul_nearby(mons->pos())) - { - lost_soul_spectralize(mons); - } - const coord_def mwhere = mons->pos(); if (drop_items) monster_drop_things(mons, YOU_KILL(killer) || pet_kill); |