bullwhip inconsistencies
Reported by entrez: applying a bullwhip towards a medium or small peaceful monster used to be an attack but that stopped working when 'safepet' was extended to peacefuls in order for the hero to be able to swap places which those. Also, side-effects were different when hero applied the whip from within a pit compared to when not in one. This allows the hero trapped in a pit to try to snag furniture or a boulder even when a small or medium is present, and escaping that pit if successful. (It still snags big monsters in preference to furniture/boulder at their location.) When no such non-monster target is available, it attacks the monster if hostile or peaceful but not when tame. When revealing a previously unseen monster it prevents snagging that monster's wielded weapon because hero couldn't possibly target the weapon in that situation. This makes other changes, mostly dealing with finding and exposing concealed monsters, which may introduce some new bugs. Since I was already in the right place, implement snagging an item off the floor while flying. It isn't necessary since a flyer can pick things up off the floor directly, but there isn't any pressing reason to disallow it. Supersedes the commit in pull request #632 by RojjaCebolla. Closes #632
This commit is contained in:
@@ -2707,6 +2707,7 @@ extern void erode_armor(struct monst *, int);
|
||||
extern boolean attack_checks(struct monst *, struct obj *);
|
||||
extern void check_caitiff(struct monst *);
|
||||
extern int find_roll_to_hit(struct monst *, uchar, struct obj *, int *, int *);
|
||||
extern boolean force_attack(struct monst *, boolean);
|
||||
extern boolean do_attack(struct monst *);
|
||||
extern boolean hmon(struct monst *, struct obj *, int, int);
|
||||
extern boolean shade_miss(struct monst *, struct monst *, struct obj *,
|
||||
|
||||
Reference in New Issue
Block a user