fix #K3925 - u.ustuck of long worm tail

Don't allow stick/wrap/engulf attacks directed at long worm tails
to succeed.  Achieved by making sure that 'notonhead' is up do date
in a bunch of places and utilizing the fairly recent can't-{stick,wrap,
engulf}-unsolid-monsters code.

Should prevent a 'sanity_check' warning about being too far from
u.ustuck that would happen when holding the tail while the head was
not adjacent to the hero.

Also don't let pet ranged attacks from choosing a long worm's tail
as target.  They'll still be able to target long worms provided that
the head is lined up and not shielded by tail segment(s).
This commit is contained in:
PatR
2023-05-20 15:34:32 -07:00
parent f176318c45
commit 9052bd5099
6 changed files with 99 additions and 47 deletions

View File

@@ -1748,9 +1748,9 @@ domove_attackmon_at(
coordxy x, coordxy y,
boolean *displaceu)
{
/* only attack if we know it's there */
/* or if we used the 'F' command to fight blindly */
/* or if it hides_under, in which case we call do_attack() to print
/* only attack if we know it's there
* or if we used the 'F' command to fight blindly
* or if it hides_under, in which case we call do_attack() to print
* the Wait! message.
* This is different from ceiling hiders, who aren't handled in
* do_attack().