fix #K3257 - lichens' sticky attack holds hero
in the air. can_reach_floor() was changed relatively recently to return False if hero was held by a monster. It wasn't necessarily because the monster was lifting him or her off the floor though. Restricted movement could produce same effect. Change the new behavior to only happen when holder has used a hug attack, so that being held by a fungus or mimic doesn't prevent access to the floor. This may need to be revisited because the idea that the hero's arms have been pinned by a hugging monster contradicts the ability to attack that monster. However, it matches the long- standing inability to attack any other adjacent monster in that circumstance.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.438 $ $NHDT-Date: 1612053751 2021/01/31 00:42:31 $
|
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.439 $ $NHDT-Date: 1612055953 2021/01/31 01:19:13 $
|
||||||
|
|
||||||
General Fixes and Modified Features
|
General Fixes and Modified Features
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@@ -501,6 +501,8 @@ changes accompanying sorting of discoveries resulted in omitting very last
|
|||||||
item for '`'/#knownclass on a class where every item was discoverable
|
item for '`'/#knownclass on a class where every item was discoverable
|
||||||
and had no extra labels (so potions and rings, possibly others, but
|
and had no extra labels (so potions and rings, possibly others, but
|
||||||
not scrolls or wands) and every item was actually discovered
|
not scrolls or wands) and every item was actually discovered
|
||||||
|
change to can_reach_floor() resulted in hero being unable to reach the floor
|
||||||
|
when held by a lichen
|
||||||
|
|
||||||
curses: 'msg_window' option wasn't functional for curses unless the binary
|
curses: 'msg_window' option wasn't functional for curses unless the binary
|
||||||
also included tty support
|
also included tty support
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 engrave.c $NHDT-Date: 1608673691 2020/12/22 21:48:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.99 $ */
|
/* NetHack 3.7 engrave.c $NHDT-Date: 1612055954 2021/01/31 01:19:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.102 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -143,7 +143,13 @@ can_reach_floor(boolean check_pit)
|
|||||||
{
|
{
|
||||||
struct trap *t;
|
struct trap *t;
|
||||||
|
|
||||||
if (u.uswallow || (u.ustuck && !sticks(g.youmonst.data))
|
if (u.uswallow
|
||||||
|
|| (u.ustuck && !sticks(g.youmonst.data)
|
||||||
|
/* assume that arms are pinned rather than that the hero
|
||||||
|
has been lifted up above the floor [doesn't explain
|
||||||
|
how hero can attack the creature holding him or her;
|
||||||
|
that's life in nethack...] */
|
||||||
|
&& attacktype(u.ustuck->data, AT_HUGS))
|
||||||
|| (Levitation && !(Is_airlevel(&u.uz) || Is_waterlevel(&u.uz))))
|
|| (Levitation && !(Is_airlevel(&u.uz) || Is_waterlevel(&u.uz))))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
/* Restricted/unskilled riders can't reach the floor */
|
/* Restricted/unskilled riders can't reach the floor */
|
||||||
|
|||||||
Reference in New Issue
Block a user