summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/stuff.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-10-31 18:55:05 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-10-31 18:55:05 +0000
commit6987aba04a7b93992f330d83d8a12f67214e32a9 (patch)
treed64a579dab00293a64c46f4627e2473b63d5afed /crawl-ref/source/stuff.cc
parent9866c3c4efe109c8b7e23a4e2827f864929aaf06 (diff)
downloadcrawl-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.cc15
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);