From cebd0ccbab6d39291af6553e65f10e7be28d0195 Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Sun, 5 Jan 2003 03:57:21 +0000 Subject: [PATCH] B14004 Cloaks of invisibility There's no feedback message nor item discovery when you see a monster disappear as it puts on a cloak of invisibility. --- doc/fixes34.1 | 1 + src/worn.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) 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 -- 2.40.0