fix [part of] #H2554 - hunger when declining to attack peaceful monst
Reported last December by <email deleted>, attempting to move
into a peaceful monster's position and then declining to attack at the
confirmation prompt uses no time, as expected, but does burn nutrition
the same as if you carried out the attack. A player could abuse that to
make room to eat an intrinisic-conferring corpse before it rots away.
This fixes that, and also makes attacking a monster via applying a polearm
and via kicking burn the same extra nutrition as ordinary attack. I didn't
add it for attacking via throwing.
He/she also reported that kicking at a peaceful monster and declining
to attack at the prompt wakes up nearby monsters even though no actual kick
ultimately takes place. I can confirm that, but this does not fix it.
This commit is contained in:
16
src/uhitm.c
16
src/uhitm.c
@@ -366,16 +366,16 @@ register struct monst *mtmp;
|
||||
bhitpos.y = u.uy + u.dy;
|
||||
if (attack_checks(mtmp, uwep)) return(TRUE);
|
||||
|
||||
if (Upolyd) {
|
||||
/* certain "pacifist" monsters don't attack */
|
||||
if(noattacks(youmonst.data)) {
|
||||
You("have no way to attack monsters physically.");
|
||||
mtmp->mstrategy &= ~STRAT_WAITMASK;
|
||||
goto atk_done;
|
||||
}
|
||||
if (Upolyd && noattacks(youmonst.data)) {
|
||||
/* certain "pacifist" monsters don't attack */
|
||||
You("have no way to attack monsters physically.");
|
||||
mtmp->mstrategy &= ~STRAT_WAITMASK;
|
||||
goto atk_done;
|
||||
}
|
||||
|
||||
if(check_capacity("You cannot fight while so heavily loaded."))
|
||||
if (check_capacity("You cannot fight while so heavily loaded.") ||
|
||||
/* consume extra nutrition during combat; maybe pass out */
|
||||
overexertion())
|
||||
goto atk_done;
|
||||
|
||||
if (u.twoweap && !can_twoweapon())
|
||||
|
||||
Reference in New Issue
Block a user