diff options
Diffstat (limited to 'crawl-ref/source/showsymb.cc')
-rw-r--r-- | crawl-ref/source/showsymb.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/crawl-ref/source/showsymb.cc b/crawl-ref/source/showsymb.cc index 1d3c4e7dae..6f3c77fea6 100644 --- a/crawl-ref/source/showsymb.cc +++ b/crawl-ref/source/showsymb.cc @@ -56,6 +56,19 @@ glyph get_show_glyph(show_type object) static int _get_mons_colour(const monsters *mons) { int col = mons->colour; + if (!crawl_state.arena && you.misled()) + { + const monsterentry* mdat = get_monster_data(mons->get_mislead_type()); + col = mdat->colour; + // Some monsters (specifically, ugly things and butterflies) are generated + // black. Ugly things are an object of mislead, but never a subject; however + // if a monster summons ugly things (such as Kirke) while under the Misled + // status effect, they will show up black instead of their assigned colour. + // Likewise with any other black-coloured monsters on-screen but not yet + // mislead. {due} + if (col == BLACK) + col = mons->colour; + } if (mons->berserk()) col = RED; @@ -125,7 +138,11 @@ glyph get_item_glyph(const item_def *item) glyph get_mons_glyph(const monsters *mons) { glyph g; - g.ch = mons_char(mons->type); + + if (!crawl_state.arena && you.misled()) + g.ch = mons_char(mons->get_mislead_type()); + else + g.ch = mons_char(mons->type); g.col = _get_mons_colour(mons); return (g); } |