git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6773 c06c8d41-db1a-0410-9941-cceddc491573
RTNCVAW3IRKSTVGF2RKT4MFCXNSMA6LHW45QVO4FZNYUNMRLJT2AC
DIAGORS5MPTNYDMPDOBXCIGCVDH7THTHYFOQUKMET57QH2J6WF5AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
ADIVVYTV2MJ3XVRYDNBLPTAEACCNF27XZDCRVZFQEHRHPMZGNITQC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
JI33MPZAQQV55WDCZE4IHGMZYRYWIYU5MSYKYZB7RX2AWWY2SMCQC
I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC
if (amulet == AMU_CONTROLLED_FLIGHT
&& (you.duration[DUR_CONTROLLED_FLIGHT]
|| player_genus(GENPC_DRACONIAN)
|| you.attribute[ATTR_TRANSFORMATION] == TRAN_DRAGON
|| you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT))
switch ( amulet )
return (true);
case AMU_CONTROLLED_FLIGHT:
return (you.duration[DUR_CONTROLLED_FLIGHT]
|| player_genus(GENPC_DRACONIAN)
|| you.attribute[ATTR_TRANSFORMATION] == TRAN_DRAGON
|| you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT);
case AMU_CLARITY:
return (player_mutation_level(MUT_CLARITY) > 0);
case AMU_RESIST_CORROSION:
case AMU_CONSERVATION:
return (player_equip_ego_type(EQ_CLOAK, SPARM_PRESERVATION) > 0);
default:
return false;
if (amulet == AMU_RESIST_CORROSION || amulet == AMU_CONSERVATION)
{
// XXX: this is hackish {dlb}
if (player_equip_ego_type( EQ_CLOAK, SPARM_PRESERVATION ))
return (true);
}
if (you.inv[you.equip[EQ_AMULET]].sub_type == amulet
&& ( calc_unid || item_type_known(you.inv[you.equip[EQ_AMULET]]) ))
{
return (true);
}
return (false);
const item_def& amu(you.inv[you.equip[EQ_AMULET]]);
return (amu.sub_type == amulet && (calc_unid || item_type_known(amu)));
// Amulets can auto-ID.
// FIXME: should also happen when putting on/removing amulet
// while levitating.
if (!you.duration[DUR_LEVITATION]
&& wearing_amulet(AMU_CONTROLLED_FLIGHT)
&& !extrinsic_amulet_effect(AMU_CONTROLLED_FLIGHT))
{
item_def& amu(you.inv[you.equip[EQ_AMULET]]);
set_ident_type(amu.base_type, amu.sub_type, ID_KNOWN_TYPE);
set_ident_flags(amu, ISFLAG_KNOW_PROPERTIES);
mprf("You are wearing: %s", amu.name(DESC_INVENTORY_EQUIP).c_str());
}