transformations, plus additional curse checks. Also added "mutation" messages for hungry vampires.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1999 c06c8d41-db1a-0410-9941-cceddc491573
BZMLXBTB63CXPZZPFXM4VLE7IBXPBEZ6YLM4MSNQGJR4L5IBM3OAC
6CZYPP67SB2M3SQS3QIPJWHZY7PJIRTTBH5CLORV3AALVTJIL5MQC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
3BYA46OYLVN6ZPGAZD5OGIMMH5PRWGNSU3ITJRCVBE6P5HYYYAYQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
PGTE3JC4J5U536IJTCJFXTUOSRE73JXZJINWAGCANOQOCGC7J6AAC
// also AC 20, ev +20, regen/2, no hunger, fire -2, cold -2, air +2,
rem_stuff.insert(EQ_LEFT_RING);
rem_stuff.insert(EQ_RIGHT_RING);
rem_stuff.insert(EQ_AMULET);
if (check_for_cursed_equipment( rem_stuff ))
return false;
// also AC 20, ev +20, regen/2, no hunger, fire -2, cold -2, air +2,
// no further restrictions
if (transform == TRAN_NONE || transform == TRAN_LICH)
return true;
// bats cannot use anything, clouds obviously so
if (transform == TRAN_BAT || transform == TRAN_AIR)
return false;
// everyone else can wear jewellery, at least
if (eq == EQ_LEFT_RING || eq == EQ_RIGHT_RING || eq == EQ_AMULET)
return true;
// these cannot use anything but jewellery
if (transform == TRAN_SPIDER || transform == TRAN_DRAGON
|| transform == TRAN_SERPENT_OF_HELL)
{
return false;
}
if (transform == TRAN_BLADE_HANDS)
{
if (eq == EQ_WEAPON || eq == EQ_GLOVES || eq == EQ_SHIELD)
return false;
return true;
}
if (transform == TRAN_ICE_BEAST)
{
if (eq != EQ_CLOAK)
{
return false;
}
return true;
}
if (transform == TRAN_STATUE)
{
if (eq == EQ_BODY_ARMOUR || eq == EQ_GLOVES || eq == EQ_SHIELD)
return false;
return true;
}
return true;
}
result += "You are";
result += (you.experience_level > 25 && you.hunger_state == HS_FULL) ?
" very strongly" :
(you.experience_level > 12 && you.hunger_state != HS_HUNGRY) ?
" strongly" : "";
result += " in touch with the powers of death." EOL;
have_any = true;
if (you.hunger_state < HS_SATIATED)
{
result += "<green>";
result += "You are";
result += (you.experience_level > 25) ?
" strongly" : "";
result += " in touch with the powers of death." EOL;
result += "You mostly resist negative energy." EOL;
result += "You can see invisible." EOL;
if (you.hunger_state < HS_HUNGRY)
result += "You do not regenerate." EOL;
else
result += "You regenerate slowly." EOL;
result += "</green>";
have_any = true;
}