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.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index ed227e404c..14b9ddf7cc 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -2185,7 +2185,13 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
}
if ((mon.flags & MF_KNOWN_MIMIC) && mons_is_shapeshifter(&mon))
- result += " shaped shifter";
+ {
+ // If momentarily in original form, don't display "shaped shifter".
+ if (mons_genus(mon.type) != MONS_SHAPESHIFTER)
+ {
+ result += " shaped shifter";
+ }
+ }
// All done.
return result;
@@ -7810,6 +7816,12 @@ bool monsters::mutate()
if (!can_mutate())
return (false);
+ if (this->has_ench(ENCH_GLOWING_SHAPESHIFTER))
+ return (monster_polymorph(this, MONS_GLOWING_SHAPESHIFTER));
+
+ if (this->has_ench(ENCH_SHAPESHIFTER))
+ return (monster_polymorph(this, MONS_SHAPESHIFTER));
+
return (monster_polymorph(this, RANDOM_MONSTER));
}