diff options
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r-- | crawl-ref/source/fight.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc index 9b609f8d95..6f2f3ad4e7 100644 --- a/crawl-ref/source/fight.cc +++ b/crawl-ref/source/fight.cc @@ -2045,6 +2045,10 @@ void monster_attack(int monster_attacking) if (mons_has_ench( attacker, ENCH_SUBMERGED )) return; + // If a mimic is attacking the player, it is thereafter known. + if (mons_is_mimic(attacker->type)) + attacker->flags |= MF_KNOWN_MIMIC; + if (you.duration[DUR_REPEL_UNDEAD] && mons_holiness( attacker ) == MH_UNDEAD && !check_mons_resist_magic( attacker, you.piety )) @@ -3130,6 +3134,13 @@ bool monsters_fight(int monster_attacking, int monster_attacked) if (mons_near(attacker) && mons_near(defender)) sees = true; + // Any objects seen in combat are thereafter known mimics. + if (mons_is_mimic(attacker->type) && mons_near(attacker)) + attacker->flags |= MF_KNOWN_MIMIC; + + if (mons_is_mimic(defender->type) && mons_near(defender)) + defender->flags |= MF_KNOWN_MIMIC; + // now disturb defender, regardless behaviour_event(defender, ME_WHACK, monster_attacking); |