From 6d7627cb65e54dae22237da82ea076bf17b1f9b7 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sat, 18 Jul 2009 18:58:52 +0000 Subject: 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 --- crawl-ref/source/mon-util.cc | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'crawl-ref/source/mon-util.cc') 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) -- cgit v1.2.3-54-g00ecf