diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 4bb8308f8..89f06dce3 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -347,6 +347,7 @@ add missing data.base entries for caveman, healer, monk, priest, and samurai allow "grey spellbook" as alternative spelling of "gray spellbook" handle attacks by cancelled monsters more consistently armor worn by monsters might negate some magic attacks like it does for hero +give feedback and discovery when visible monster puts on cloak of invisibility Platform- and/or Interface-Specific Fixes diff --git a/src/worn.c b/src/worn.c index b89f0ddc6..738088ddd 100644 --- a/src/worn.c +++ b/src/worn.c @@ -404,9 +404,14 @@ boolean racialexception; { struct obj *old, *best, *obj; int m_delay = 0; + int unseen = !canseemon(mon); + char nambuf[BUFSZ]; if (mon->mfrozen) return; /* probably putting previous item on */ + /* Get a copy of monster's name before altering its visibility */ + Strcpy(nambuf, See_invisible ? Monnam(mon) : mon_nam(mon)); + old = which_armor(mon, flag); if (old && old->cursed) return; if (old && flag == W_AMUL) return; /* no such thing as better amulets */ @@ -495,6 +500,13 @@ outer_break: mon->misc_worn_check |= flag; best->owornmask |= flag; update_mon_intrinsics(mon, best, TRUE, creation); + /* if couldn't see it but now can, or vice versa, */ + if (!creation && (unseen ^ !canseemon(mon))) { + if (mon->minvis && !See_invisible) { + pline("Suddenly you cannot see %s.", nambuf); + makeknown(best->otyp); + } /* else if (!mon->minvis) pline("%s suddenly appears!", Amonnam(mon)); */ + } } #undef RACE_EXCEPTION