'f'ire revamp

The fire command could claim that time passed when it hadn't (fill
quiver with ammo, which takes no time, then queue commands to switch
to matching launcher, which should also take no time while queueing,
only during subsequent execution).

If quiver is empty or has ammo in it, give wielded thrown-and-return
weapon (aklys) priority over filling quiver or switching to ammo's
launcher.  Don't do that if quiver has non-ammo in it, otherwise
players running Valks who wield Mjollnir with super strength but
want to throw quivered daggers would complain.

When player is being asked what to fill the quiver with, use the
\#quiver command to do that.  Using it honors a count to split a
stack, handles switching uwep or uswapwep to uquiver, and gives
feedback.  This is actually a fairly substantial change.

For 'fireassist', when switching to a launcher that isn't already
uswapwep pick one known to be blessed or uncursed over one having
unknown BUC status.  But use the latter as last resort.
This commit is contained in:
PatR
2022-04-23 02:12:21 -07:00
parent e8374b36a1
commit 40d0caa157
4 changed files with 132 additions and 80 deletions

View File

@@ -1751,9 +1751,10 @@ getobj(
}
}
if (cntgiven && !strcmp(word, "throw")) {
/* permit counts for throwing gold, but don't accept
* counts for other things since the throw code will
* split off a single item anyway */
/* permit counts for throwing gold, but don't accept counts
for other things since the throw code will split off a
single item anyway; if populating quiver, 'word' will be
"ready" or "fire" and this restriction doesn't apply */
if (cnt == 0)
return (struct obj *) 0;
if (cnt > 1 && (ilet != def_oc_syms[COIN_CLASS].sym