summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-death.cc
diff options
context:
space:
mode:
authorShmuale Mark <shm.mark@gmail.com>2014-06-26 14:16:49 -0400
committerShmuale Mark <shm.mark@gmail.com>2014-06-26 14:16:49 -0400
commit0e1b8faa9d1878b449fac1ff185b63526249e8d8 (patch)
tree136613c7bbec95f103d4db910cd4865d050f8194 /crawl-ref/source/mon-death.cc
parent8d4f0ef980dcbef12f53137d11df3fe11ce316f2 (diff)
downloadcrawl-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.cc14
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);