preferred ammo for bow, crossbow, hand crossbow, blowgun, sling, and non-launchers. Breaks saves. (Was Bug 1872821.)
Also fix 1858916: update EV when paralysis is over
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3285 c06c8d41-db1a-0410-9941-cceddc491573
FVT2J6IVMSQZYKQGUHQVGT4ADYM7AWUQ4U7766GBRRFMSR2WBMLAC
QFM6WJTFHB4KCQYVROAQD4KRAYV2FZKDL5PJZQN5MS7WDYSLJBIAC
NQIXUYGUIQTKZUB2IQDII7BBDMZ4VN4NUUTGT2ARQBZTDJUMPKRQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
UKN6HTZXDUUOWKNWNKWPHKGUGL474JIAQN5JU3DM3DU26WGMNP4AC
EGV2HM7SD7UQSWJGLR65NQJTUBAJ7WHLM67FMH4UFP7JRSFKREPAC
HSRRNAU5UAYC6B6IQWGJPFROMZBTJICPCH6DJVZDHDTAGOQ6IOYAC
6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
LKLHWERPXMDTRNYPEXVDVB6PE7CT5PZ6WMNJJDTBBE5FBHOCEK5AC
}
quiver_type get_quiver_type()
{
const int wielded = you.equip[EQ_WEAPON];
if (wielded == -1)
return (QUIVER_THROW);
item_def &weapon = you.inv[wielded];
if (weapon.base_type != OBJ_WEAPONS)
return (QUIVER_THROW);
switch (weapon.sub_type)
{
case WPN_BLOWGUN:
return (QUIVER_BLOWGUN);
case WPN_SLING:
return (QUIVER_SLING);
case WPN_BOW:
case WPN_LONGBOW:
return (QUIVER_BOW);
case WPN_CROSSBOW:
return (QUIVER_CROSSBOW);
case WPN_HAND_CROSSBOW:
return (QUIVER_HAND_CROSSBOW);
default:
return (QUIVER_THROW);
}
enum quiver_type
{
QUIVER_THROW, // no launcher wielded -> darts, stones, ...
QUIVER_BOW, // wielded bow -> arrows
QUIVER_SLING, // wielded sling -> stones, sling bullets
QUIVER_CROSSBOW, // wielded crossbow -> bolts
QUIVER_HAND_CROSSBOW, // wielded hand crossbow -> darts
QUIVER_BLOWGUN, // wielded blowgun -> needles
NUM_QUIVER
};