diff options
author | David Lawrence Ramsey <dolorous@users.sourceforge.net> | 2009-10-01 07:50:56 -0500 |
---|---|---|
committer | David Lawrence Ramsey <dolorous@users.sourceforge.net> | 2009-10-01 07:50:56 -0500 |
commit | c99dc714c345f5d6d1ecc68708462e28e309db74 (patch) | |
tree | 32a01119e1f12955150702845cd9d38d572aa2a3 | |
parent | b6e861ec553110e50d8404f10467d0b0e914a144 (diff) | |
download | crawl-ref-c99dc714c345f5d6d1ecc68708462e28e309db74.tar.gz crawl-ref-c99dc714c345f5d6d1ecc68708462e28e309db74.zip |
Allow spectral things to take stairs again, to make Death Channel more
useful.
-rw-r--r-- | crawl-ref/source/dat/descript/spells.txt | 2 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.cc | 11 | ||||
-rw-r--r-- | crawl-ref/source/monplace.cc | 3 |
3 files changed, 9 insertions, 7 deletions
diff --git a/crawl-ref/source/dat/descript/spells.txt b/crawl-ref/source/dat/descript/spells.txt index cca950f851..1a7d4f8734 100644 --- a/crawl-ref/source/dat/descript/spells.txt +++ b/crawl-ref/source/dat/descript/spells.txt @@ -145,7 +145,7 @@ This spell removes poison from the caster's system. %%%% Death Channel -This spell raises living creatures slain by the caster into a state of unliving slavery as spectral things. Note that spectral things are incapable of leaving the level they were created on. +This spell raises living creatures slain by the caster into a state of unliving slavery as spectral things. Note that spectral things can follow you beyond the level they were created on. %%%% Death's Door diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index c8fa4f589c..9f6e384654 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -1038,12 +1038,12 @@ bool mons_can_be_zombified(const monsters *mon) bool mons_class_can_use_stairs(int mc) { - return (!mons_class_is_zombified(mc)); + return (!mons_class_is_zombified(mc) || mc == MONS_SPECTRAL_THING); } bool mons_can_use_stairs(const monsters *mon) { - return (!mons_is_zombified(mon) || mons_enslaved_intact_soul(mon)); + return (mons_class_can_use_stairs(mon->type)); } bool mons_enslaved_body_and_soul(const monsters *mon) @@ -3491,8 +3491,8 @@ bool monster_shover(const monsters *m) return (false); } - // Monsters too stupid to use stairs (e.g. zombified undead) are also - // disqualified. + // Monsters too stupid to use stairs (e.g. non-spectral zombified undead) + // are also disqualified. if (!mons_can_use_stairs(m)) return (false); @@ -3535,7 +3535,8 @@ bool monster_senior(const monsters *m1, const monsters *m2, bool fleeing) // If they're the same holiness, monsters smart enough to use stairs can // push past monsters too stupid to use stairs (so that e.g. non-zombified - // undead can push past zombified undead). + // or spectral zombified undead can push past non-spectral zombified + // undead). if (m1->holiness() == m2->holiness() && mons_can_use_stairs(m1) && !mons_can_use_stairs(m2)) { diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc index 5f19d2318b..406219e0bc 100644 --- a/crawl-ref/source/monplace.cc +++ b/crawl-ref/source/monplace.cc @@ -630,7 +630,8 @@ static monster_type _resolve_monster_type(monster_type mon_type, mon_type = pick_random_monster(place, *lev_mons, *lev_mons); // Don't allow monsters too stupid to use stairs (e.g. - // zombified undead) to be placed at stairs. + // non-spectral zombified undead) to be placed near + // stairs. if (proximity != PROX_NEAR_STAIRS || mons_class_can_use_stairs(mon_type)) { |