summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/religion.cc24
-rw-r--r--crawl-ref/source/religion.h3
2 files changed, 18 insertions, 9 deletions
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 67749e2211..3b3bc6ee5c 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -819,24 +819,32 @@ static void _give_nemelex_gift()
}
}
-bool is_good_follower(const monsters* mon)
+bool is_orcish_follower(const monsters* mon)
+{
+ return (mon->alive() && mons_species(mon->type) == MONS_ORC
+ && mon->attitude == ATT_FRIENDLY && mons_is_god_gift(mon));
+}
+
+bool is_good_lawful_follower(const monsters* mon)
{
return (mon->alive() && !mons_is_evil_or_unholy(mon)
- && mons_friendly(mon));
+ && !mons_is_chaotic(mon) && mons_friendly(mon));
}
-bool is_orcish_follower(const monsters* mon)
+bool is_good_follower(const monsters* mon)
{
- return (mon->alive() && mons_species(mon->type) == MONS_ORC
- && mon->attitude == ATT_FRIENDLY && mons_is_god_gift(mon));
+ return (mon->alive() && !mons_is_evil_or_unholy(mon)
+ && mons_friendly(mon));
}
bool is_follower(const monsters* mon)
{
- if (is_good_god(you.religion))
- return is_good_follower(mon);
- else if (you.religion == GOD_BEOGH)
+ if (you.religion == GOD_BEOGH)
return is_orcish_follower(mon);
+ else if (you.religion == GOD_ZIN)
+ return is_good_lawful_follower(mon);
+ else if (is_good_god(you.religion))
+ return is_good_follower(mon);
else
return (mon->alive() && mons_friendly(mon));
}
diff --git a/crawl-ref/source/religion.h b/crawl-ref/source/religion.h
index ec3de2a35d..6330f1f161 100644
--- a/crawl-ref/source/religion.h
+++ b/crawl-ref/source/religion.h
@@ -102,8 +102,9 @@ bool ely_destroy_weapons();
bool trog_burn_books();
bool tso_unchivalric_attack_safe_monster(const actor *act);
-bool is_good_follower(const monsters* mon);
bool is_orcish_follower(const monsters* mon);
+bool is_good_lawful_follower(const monsters* mon);
+bool is_good_follower(const monsters* mon);
bool is_follower(const monsters* mon);
bool bless_follower(monsters *follower = NULL,
god_type god = you.religion,