summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mstuff2.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mstuff2.cc')
-rw-r--r--crawl-ref/source/mstuff2.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc
index 37f0973796..b090a1e68b 100644
--- a/crawl-ref/source/mstuff2.cc
+++ b/crawl-ref/source/mstuff2.cc
@@ -971,6 +971,7 @@ void monster_teleport(struct monsters *monster, bool instan, bool silent)
{
if (!silent)
simple_monster_message(monster, " looks slightly unstable.");
+
monster->add_ench( mon_enchant(ENCH_TP, 0, KC_OTHER,
random_range(20, 30)) );
}
@@ -1013,11 +1014,18 @@ void monster_teleport(struct monsters *monster, bool instan, bool silent)
mgrd[monster->x][monster->y] = monster_index(monster);
- /* Mimics change form/colour when t'ported */
+ // Mimics change form/colour when teleported.
if (mons_is_mimic( monster->type ))
{
+ int old_type = monster->type;
monster->type = MONS_GOLD_MIMIC + random2(5);
monster->colour = get_mimic_colour( monster );
+
+ // If it's changed form, you won't recognize it.
+ // This assumes that a non-gold mimic turning into another item of
+ // the same description is really, really unlikely.
+ if (old_type != MONS_GOLD_MIMIC || monster->type != MONS_GOLD_MIMIC)
+ was_seen = false;
}
const bool now_visible = mons_near(monster);