summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-util.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-18 18:58:52 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-18 18:58:52 +0000
commit6d7627cb65e54dae22237da82ea076bf17b1f9b7 (patch)
tree43eda0c3c953b041e1419650cc78a6ae9c381374 /crawl-ref/source/mon-util.cc
parent66c0054398335a6929dd22d3690775027b9906b6 (diff)
downloadcrawl-ref-6d7627cb65e54dae22237da82ea076bf17b1f9b7.tar.gz
crawl-ref-6d7627cb65e54dae22237da82ea076bf17b1f9b7.zip
Add the Slime god as per n78291's (Shayne?) patch. Thanks! :D
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10271 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r--crawl-ref/source/mon-util.cc39
1 files changed, 34 insertions, 5 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index f9f7f2bdcd..109d4c60a7 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -628,6 +628,24 @@ bool mons_is_icy(int mc)
|| mc == MONS_ICE_STATUE);
}
+// Monsters consider as "slime" for Jiyva.
+bool mons_is_slime(const monsters *mon)
+{
+ if (mons_genus(mon->type) == MONS_JELLY
+ || mons_genus(mon->type) == MONS_GIANT_EYEBALL
+ || mons_genus(mon->type) == MONS_GIANT_ORANGE_BRAIN)
+ {
+ return (true);
+ }
+ return (false);
+}
+
+bool mons_eats_items(const monsters *mon)
+{
+ return (mons_itemuse(mon) == MONUSE_EATS_ITEMS
+ || mon->has_ench(ENCH_EATS_ITEMS));
+}
+
bool mons_is_skeletal(int mc)
{
return (mc == MONS_SKELETON_SMALL
@@ -2558,7 +2576,8 @@ bool mons_friendly_real(const monsters *m)
bool mons_neutral(const monsters *m)
{
return (m->attitude == ATT_NEUTRAL || m->has_ench(ENCH_NEUTRAL)
- || m->attitude == ATT_GOOD_NEUTRAL);
+ || m->attitude == ATT_GOOD_NEUTRAL
+ || m->attitude == ATT_STRICT_NEUTRAL);
}
bool mons_good_neutral(const monsters *m)
@@ -2566,6 +2585,11 @@ bool mons_good_neutral(const monsters *m)
return (m->attitude == ATT_GOOD_NEUTRAL);
}
+bool mons_strict_neutral(const monsters *m)
+{
+ return (m->attitude == ATT_STRICT_NEUTRAL);
+}
+
bool mons_is_pacified(const monsters *m)
{
return (m->attitude == ATT_NEUTRAL && testbits(m->flags, MF_GOT_HALF_XP));
@@ -2573,17 +2597,17 @@ bool mons_is_pacified(const monsters *m)
bool mons_wont_attack(const monsters *m)
{
- return (mons_friendly(m) || mons_good_neutral(m));
+ return (mons_friendly(m) || mons_good_neutral(m) || mons_strict_neutral(m));
}
bool mons_wont_attack_real(const monsters *m)
{
- return (mons_friendly_real(m) || mons_good_neutral(m));
+ return (mons_friendly_real(m) || mons_good_neutral(m) || mons_strict_neutral(m));
}
bool mons_att_wont_attack(mon_attitude_type fr)
{
- return (fr == ATT_FRIENDLY || fr == ATT_GOOD_NEUTRAL);
+ return (fr == ATT_FRIENDLY || fr == ATT_GOOD_NEUTRAL || fr == ATT_STRICT_NEUTRAL);
}
mon_attitude_type mons_attitude(const monsters *m)
@@ -2592,6 +2616,8 @@ mon_attitude_type mons_attitude(const monsters *m)
return ATT_FRIENDLY;
else if (mons_good_neutral(m))
return ATT_GOOD_NEUTRAL;
+ else if (mons_strict_neutral(m))
+ return ATT_STRICT_NEUTRAL;
else if (mons_neutral(m))
return ATT_NEUTRAL;
else
@@ -7541,6 +7567,9 @@ void monsters::apply_enchantment(const mon_enchant &me)
del_ench(ENCH_SLEEPY);
break;
+ case ENCH_EATS_ITEMS:
+ break;
+
default:
break;
}
@@ -8254,7 +8283,7 @@ static const char *enchant_names[] =
"gloshifter", "shifter", "tp", "wary", "submerged",
"short-lived", "paralysis", "sick", "sleep", "fatigue", "held",
"blood-lust", "neutral", "petrifying", "petrified", "magic-vulnerable",
- "soul-ripe", "decay", "bug"
+ "soul-ripe", "decay", "hungry", "bug"
};
static const char *_mons_enchantment_name(enchant_type ench)