more ^G of "hidden <monster>"

Fix a couple of glitches and add an enchancement.  The monster
attributes structure left the 'hidden' field uninitialized unless user
specified "hidden".  Mimics were being flagged with mon->mundetected
because they pass the is_hider() test but they 'hide' by taking on an
appearance rather than being unseen due to mundetected.  hides_under()
monsters fail the is_hider() test, but can become mundetected if there
is at least one object present.  Eels/other fish are neither is_hider()
nor hides_under() but can be mundetected at water locations.  So alter
'hidden' handling to deal with these various circumstances.

Asking for 'hidden' for any type of creature will result in having its
location be highlighted if it can't be actively seen or detected.  So
using '2000 ^G piranha' will fill up the Plane of Water "normally" but
'2000 ^G hidden piranha' will result in a ton of draw-glyph/delay/
draw-other-glyph/delay sequences and take a painfully long time.  Moral
of the story:  don't combine 'hidden' with a large count unless you
want to spend quite a while watching the level's fill pattern.  Turning
off the 'sparkle' option will cut the flashing in half but still take
a long time.  If you really need to fill a level with hidden creatures
and can't bear the flashing/highlighting, use blessed potion of monster
detection or #wizintrinsics to have extended detect.  Then all created
monsters will be seen so none will trigger location highlighting.

If you create a 'stalker' or 'invisible stalker' or 'invisible <other-
mon>' its location won't be highlighted, but for 'hidden stalker' or
'hidden invisible stalker' or 'hidden invisible <other-mon>' it will
(provided you don't actually see it due to See_invisible or sensemon()).
This commit is contained in:
PatR
2019-06-09 06:11:09 -07:00
parent f1f085c7fd
commit 56d16fc7ee
4 changed files with 49 additions and 34 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.45 $ $NHDT-Date: 1560009340 2019/06/08 15:55:40 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.48 $ $NHDT-Date: 1560085861 2019/06/09 13:11:01 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -66,13 +66,18 @@ thrown or kicked light source (lit lamp, candle, oil) should emit light as it
unlike watching a monster trying to swap out a cursed weapon for some other
weapon and failing, watching it wield a cursed weapon didn't report
that weapon becoming welded to the monster's hand/claw/whatever
wizard-mode: wish for hidden monsters that pass is_hider test
accept "hidden" as an attribute for wizard mode ^G monster creation; created
monsters which can't be seen will have their locations highlighted
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
------------------------------------------------------------------
elemental_clog() loop needed to guard against obliteration of the monster
that was trying to be placed
using ^G to create "hidden mimic" shouldn't have marked it as undetected since
mimics 'hide' be appearing to be something else; honor "hidden" for
'hides_under' creatures if/when created at location with object(s),
also for eels and other fish if/when created at water location
curses: sometimes the message window would show a blank line after a prompt