summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r--crawl-ref/source/mon-util.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 7fb476eadb..5a8842e967 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -312,6 +312,14 @@ bool mons_is_stationary(const monsters *mons)
return (mons_class_is_stationary(mons->type));
}
+bool mons_behaviour_perceptible(const monsters *mons)
+{
+ return (!mons_class_flag(mons->type, M_NO_EXP_GAIN)
+ && !mons_is_mimic(mons->type)
+ && !mons_is_statue(mons->type)
+ && mons->type != MONS_OKLOB_PLANT);
+}
+
bool mons_is_icy(const monsters *mons)
{
return (mons_is_icy(mons->type));
@@ -1667,18 +1675,14 @@ bool mons_is_known_mimic(const monsters *m)
bool mons_looks_stabbable(const monsters *m)
{
- return (!mons_class_flag(m->type, M_NO_EXP_GAIN)
- && !mons_is_mimic(m->type)
- && !mons_is_statue(m->type)
- && !mons_friendly(m)
- && mons_is_sleeping(m));
+ return (mons_behaviour_perceptible(m)
+ && !mons_friendly(m)
+ && mons_is_sleeping(m));
}
bool mons_looks_distracted(const monsters *m)
{
- return (!mons_class_flag(m->type, M_NO_EXP_GAIN)
- && !mons_is_mimic(m->type)
- && !mons_is_statue(m->type)
+ return (mons_behaviour_perceptible(m)
&& !mons_friendly(m)
&& ((m->foe != MHITYOU && !mons_is_batty(m))
|| mons_is_confused(m)