summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/showsymb.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/showsymb.cc')
-rw-r--r--crawl-ref/source/showsymb.cc19
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);
}