Note items which give abilities or resistances even if they're not equipped.
Don't give conjurers the item note about heavy armour for non-body armour, but do give a note about shields making casting harder.
Miscellaneous other improvements.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9812 c06c8d41-db1a-0410-9941-cceddc491573
2D6QENGAEM7WKV3OWDBOWIEBKPHWO7MCV6VOM52GR3FNNWBZ57JAC
E4TSDW2JQI5ZHGUKO5TJG2FBICUL47HF5INLCV7UAXTUPSVGXVBAC
WXWLZ6GPVBE7EMFUDIEFBLXRB7D7TNQMCZDAB6FGACH5D7FJ2LZQC
QXD3HX6QQ37PW6HVKIIKGFLO2ACROLUGKK66KFX7ED6SO4FDXB2AC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
LS5XCCGKQHSJQGWLWLGTP2F5OYWK4ND5AQQAGRN6H2HVBSXNCCZAC
JBZ7NU4BB5PGQWCOSZHD5OQUHQIVOD4XGJLSJQ7BUGQEGPRTVGZQC
Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC
ESWIM76FGJL4QFLSHU6AC4D74PT7OPLQ7ZCJYWLZS5UCBAJDXYHAC
467AWA4ZIVLXCJAAYRP5EZUF2YEM6QPRSLYIUBQ65GQ4DXQYX3UAC
ACDPN464TK2LKLHSDN3YVRHAPF7WLSLLU3UHIYEXKFDEZPEU3XSQC
Q4YYTFXYZUDBYWT37U354CJOAQMAAIWM5W72TAEGMEUKZIUZBMGAC
NK2TBKWOQBD2ZRGAO4Z3HMZPIN7UX3HNUS2YHEIJUUINUTRMPODQC
S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
"you've picked up. Darts can be thrown by hand, but other "
"missile types like arrows and needles require a launcher "
"and training in using it to be really effective. "
"you've picked up. Darts and throwing nets can be thrown by "
"by hand, but other missile types like arrows and needles "
"require a launcher and training in using it to be really "
"effective. "
text << " Note that casting spells is still very much possible.";
text << " Note that casting spells is still very much possible, "
"as is using wands, scrolls and potions.";
else
text << " Note that using wands, scrolls and potions is still "
"very much possible.";
return ("To do this, enter the ability menu with <w>a</w>, and then "
std::string str = "To do this, ";
if (!item_is_equipped(item))
{
switch(item.base_type)
{
case OBJ_WEAPONS: str += "first <w>w</w>ield it"; break;
case OBJ_ARMOUR: str += "first <w>W</w>ear it"; break;
case OBJ_JEWELLERY: str += "first <w>P</w>ut it on"; break;
default:
str += "<r>(BUG! this item shouldn't give an ability)</r>";
break;
}
str += ", then ";
}
str += "enter the ability menu with <w>a</w>, and then "
ostr << "\nWhen worn, some types of armour (such as this "
"one) offer certain abilities you can activate. ";
ostr << _tut_abilities();
ostr << "\n\nWhen worn, some types of armour (such as "
"this one) offer certain abilities you can "
"activate. ";
ostr << _tut_abilities(item);
// unworn ring
item_def *lring = you.slot_item(EQ_LEFT_RING);
item_def *rring = you.slot_item(EQ_RIGHT_RING);
if ((!lring || lring->slot != item.slot)
&& (!rring || rring->slot != item.slot))
{
return (false);
}
// unworn amulet
item_def *amul = you.slot_item(EQ_AMULET);
if (!amul || amul->slot != item.slot)
return (false);
// unworn armour
item_def *arm = you.slot_item(eq);
if (!arm || arm->slot != item.slot)
return (false);
if (ego == SPARM_DARKNESS || ego == SPARM_LEVITATION)
return (true);
// unworn ring
const item_def *lring = you.slot_item(EQ_LEFT_RING);
const item_def *rring = you.slot_item(EQ_RIGHT_RING);
if ((!lring || lring->slot != item.slot)
&& (!rring || rring->slot != item.slot))
{
return (false);
}
// unworn amulet
const item_def *amul = you.slot_item(EQ_AMULET);
if (!amul || amul->slot != item.slot)
return (false);
{
// unwielded staff
item_def *weap = you.slot_item(EQ_WEAPON);
if (!weap || weap->slot != item.slot)
return (false);