mind flayer vs headless target

When a mind flayer scores a hit against a headless target (or worm's
tail), there's a message that says that the attack hits and that the
target is unharmed.  Since an ordinary mind flayer has 3 such attacks
per turn and a master mind flayer has 5, it can become excessively
verbose.

This doesn't eliminate the attacks until a hit fails to do harm, so
ordinary misses still get repeated if they happen first.  Once a
successful hit doesn't do anything, any remaining AT_TENT+AD_DRIN
attacks are silently skipped.  That way feedback isn't as verbose
and mind flayers don't seem to be quite so stupid about using their
tentacles when those won't work.  Unfortunately they need to relearn
the lesson every turn they attack.
This commit is contained in:
PatR
2020-07-14 05:43:51 -07:00
parent a37975b625
commit ee7fbc4a61
4 changed files with 29 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 decl.h $NHDT-Date: 1593953331 2020/07/05 12:48:51 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.238 $ */
/* NetHack 3.6 decl.h $NHDT-Date: 1594730609 2020/07/14 12:43:29 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.239 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2007. */
/* NetHack may be freely redistributed. See license for details. */
@@ -932,9 +932,10 @@ struct instance_globals {
/* makemon.c */
/* mhitm.c */
boolean vis;
boolean far_noise;
long noisetime;
boolean far_noise;
boolean vis;
boolean skipdrin; /* mind flayer against headless target */
/* mhitu.c */
int mhitu_dieroll;