diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-10-31 18:55:05 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-10-31 18:55:05 +0000 |
commit | 6987aba04a7b93992f330d83d8a12f67214e32a9 (patch) | |
tree | d64a579dab00293a64c46f4627e2473b63d5afed /crawl-ref/source/stuff.cc | |
parent | 9866c3c4efe109c8b7e23a4e2827f864929aaf06 (diff) | |
download | crawl-ref-6987aba04a7b93992f330d83d8a12f67214e32a9.tar.gz crawl-ref-6987aba04a7b93992f330d83d8a12f67214e32a9.zip |
Disallow zombified monsters' use of stairs.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7321 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/stuff.cc')
-rw-r--r-- | crawl-ref/source/stuff.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc index 768b10f762..82e646b6e5 100644 --- a/crawl-ref/source/stuff.cc +++ b/crawl-ref/source/stuff.cc @@ -361,6 +361,11 @@ static bool tag_follower_at(const coord_def &pos) return (false); } + // Zombified undead (not including enslaved souls) will not follow + // you. + if (mons_is_zombified(fmenv) && !mons_enslaved_intact_soul(fmenv)) + return (false); + // Monsters that are not directly adjacent are subject to more // stringent checks. if ((pos - you.pos()).abs() > 2) @@ -368,13 +373,17 @@ static bool tag_follower_at(const coord_def &pos) if (!mons_friendly(fmenv)) return (false); - // Non-mindless undead will follow Yredelemnul worshippers, and - // orcs will follow Beogh worshippers. + // Non-zombified undead (including enslaved souls) will follow + // Yredelemnul worshippers, and orcs will follow Beogh + // worshippers. if (you.religion != GOD_YREDELEMNUL && you.religion != GOD_BEOGH) return (false); - if (you.religion == GOD_YREDELEMNUL && mons_intel(fmenv) <= I_PLANT) + if (you.religion == GOD_YREDELEMNUL + && mons_is_zombified(fmenv) && !mons_enslaved_intact_soul(fmenv)) + { return (false); + } if (!is_follower(fmenv)) return (false); |