dwarvish indecision

<Someone> (and later <Someone>) reported along with several other
things of a dwarf that stood in place and switched between his pick-axe and
broadsword on successive turns.  Fixed by bringing the logic in the two
cases in line.  The code now prefers to leave the hostile dwarf with a weapon.
This commit is contained in:
cohrs
2002-07-14 02:48:27 +00:00
parent 1238854154
commit adc4094d50
2 changed files with 8 additions and 2 deletions

View File

@@ -161,6 +161,8 @@ when a fountain dries up or a throne vanishes, make sure it really happens
allow player to name polymorph potion if nothing seems to happen allow player to name polymorph potion if nothing seems to happen
avoid crash when drinking a potion causes the hero to float up over a fire avoid crash when drinking a potion causes the hero to float up over a fire
trap, for example, which might try to destroy the in-use potion trap, for example, which might try to destroy the in-use potion
in some situations, if hero stood still, a hostile dwarf would switch back
and forth between weapon and pick-axe and never move
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes

View File

@@ -875,9 +875,13 @@ not_special:
} }
} }
/* don't tunnel if needspick and wielding a non-pick that is known
* cursed or hostile and close enough to prefer a weapon */
if (can_tunnel && needspick(ptr) && if (can_tunnel && needspick(ptr) &&
(mw_tmp = MON_WEP(mtmp)) != 0 && !is_pick(mw_tmp) && (mw_tmp = MON_WEP(mtmp)) != 0 && !is_pick(mw_tmp) &&
mw_tmp->cursed && mtmp->weapon_check == NO_WEAPON_WANTED) ((mw_tmp->cursed && mtmp->weapon_check == NO_WEAPON_WANTED) ||
((!mtmp->mpeaceful || Conflict) &&
dist2(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy) <= 8)))
can_tunnel = FALSE; can_tunnel = FALSE;
nix = omx; nix = omx;