diff --git a/src/zap.c b/src/zap.c index 73666008f..f7001d2ac 100644 --- a/src/zap.c +++ b/src/zap.c @@ -190,14 +190,16 @@ bhitm(struct monst *mtmp, struct obj *otmp) /*FALLTHRU*/ case SPE_FORCE_BOLT: reveal_invis = TRUE; - if (disguised_mimic) - seemimic(mtmp); learn_it = cansee(gb.bhitpos.x, gb.bhitpos.y); if (resists_magm(mtmp)) { /* match effect on player */ + if (mimic_disguised_as_non_mon(mtmp)) + seemimic(mtmp); shieldeff(mtmp->mx, mtmp->my); pline("Boing!"); /* 3.7: used to 'break' to avoid setting learn_it here */ } else if (u.uswallow || rnd(20) < 10 + find_mac(mtmp)) { + if (disguised_mimic) + seemimic(mtmp); dmg = d(2, 12); if (dbldam) dmg *= 2; @@ -206,7 +208,8 @@ bhitm(struct monst *mtmp, struct obj *otmp) hit(zap_type_text, mtmp, exclam(dmg)); (void) resist(mtmp, otmp->oclass, dmg, TELL); } else { - miss(zap_type_text, mtmp); + if (!disguised_mimic) + miss(zap_type_text, mtmp); learn_it = FALSE; } break;