diff options
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r-- | crawl-ref/source/mon-util.cc | 14 |
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)); } |