Improve information output for vampires in the screens 'A', '@' and '%'. Reduce the "in touch with the powers of death" effect to one boost at xl 6, and disallow bat form at engorged. Also, modify messages if they are not available right away for feeding reasons.
What's still missing is a way to output those temporary resistances (currently only discernible from the '%' screen), preferentially in the form of some general statements on 'A': "When hungry, you gain resistance to cold." and more detailed descriptions on '@'.
Fix a couple of wrong hunger status checks.
Comment out the "Very agile monsters are quite hard to hit in your current equipment." messages because to my knowledge they hold little importance right now. Please correct me if that view is wrong.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3534 c06c8d41-db1a-0410-9941-cceddc491573
TRCCLE5RJ4VJULBOWOI2WC3RJU7WTEGS7RRQTDQL6W5UU246LKTQC
CEBMQCNUSIY6H2YXD23Y5Y3C3S23RX5TW5SHK7LUQ7PJCVM72WPQC
RPGERJQMO2J4ZDYTRHJCLZMXDVSTUOOJURSZ7FPWOUFHTXIV5VIAC
6PNVX6Q45HH733TZDXYBA6BYPJKDMND5BA4N2MP6HA3QVNCEPN2QC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
XCEZ7OA2INNPSYNAB5U6JB7XNDAD5BKU26YLFPPZ3SEESFZKADQAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
GSS3OCYMI4MYKACCGNLFA267VDH2U7G4QVVDLMOVAUHZTYQ3QJDAC
DMRXDEKHHBQNY37NPGZFAGUQPALWFANGGK4CUWIOQUPSLM2JBNFQC
BZ74AXEIQHNOCNQ7WSV4SLQW2BNAMSKDWEUKEZKNUIUUBDPMQMEQC
F7Q7QRZACTDPP6KH3AB5J6B6B5PRVV4FURTOIGXHRHWNVSQT3TVAC
KBBSDMAXAGEDFMIVL6BSPMMSOBZKWPJTFCLBGCHRLE5DGTVAACSAC
I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC
YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
JR2RAQ523LOWNDYJNK6AZVKI6WVMI622PIV72XWOVZYPXPUKSQWAC
BRGAZR5AXWC2IALBVXO5SB354IRQEIRHSK55RZPGFI4AGIOD4LUQC
LIBWXPN6HLJAIGEFJYLOL4HLIUD236U3WM5QPHIZ3DSB4CCUJERAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
JXOE7KJIEAJHPLMZAJ6O4YHDTRB6BGNP6XT3ZSEFYGSIUMHR77KQC
WXSE6KVTO6BBSWYSNFECDDI7FTNR34QVSXPJ3I3UA4B5VECTDEZQC
BZMLXBTB63CXPZZPFXM4VLE7IBXPBEZ6YLM4MSNQGJR4L5IBM3OAC
4GFCF6N3MZSCHUB77Z3SQYJ3FYR5N3VBW2CGWANLJ74O5FEQH3CQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
5S3CAGZSAQC3CYFPM5TQFPHW5IE2OZRVFJMICQZXHBZRGKFMNPRQC
3D6NWJ44UYHLZMD3BOQIWXJUEGITAVCHK6Z2WWDQONVQC4HSBRXQC
ARORC5GJNHLAPL2MJ3PUYIAR55ETDDAPXYSYH4OBMXHADNWSGYPAC
KW43PGXTTM57DXUGGBQXJ5G5OYYIY3WB76TXIKL2ZCIJGH7GH4LAC
WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC
3EFDG4W2ZURQDU6I3AFVW4ETTD3ZHSCLQ7MOK5FK7VQCDQDUXIGQC
// Vampires get bonus only when not hungry
if (you.experience_level >= 13 && you.hunger_state > HS_HUNGRY)
{
// Vampires get bonus only when hungry
if (you.experience_level >= 13 && you.hunger_state <= HS_HUNGRY)
mpr( "You can now transform into a vampire bat.",
MSGCH_INTRINSIC_GAIN );
if (you.hunger_state == HS_ENGORGED)
{
mpr( "If you weren't so full you could now transform "
"into a vampire bat.", MSGCH_INTRINSIC_GAIN );
}
else
{
mpr( "You can now transform into a vampire bat.",
MSGCH_INTRINSIC_GAIN );
}
if (you.disease && !you.duration[DUR_REGENERATION]
|| you.species == SP_VAMPIRE && you.hunger_state <= HS_STARVING)
{
mpr("You do not heal.");
}
else if (you.species == SP_VAMPIRE)
{
if (you.hunger_state <= HS_HUNGRY)
mpr("You heal slowly.");
else if (you.hunger_state == HS_ENGORGED)
mpr("You heal very quickly.");
else if (you.hunger_state >= HS_FULL)
mpr("You heal quickly.");
}
if (you.disease || you.species == SP_VAMPIRE && you.hunger_state <= HS_STARVING)
mpr("You do not heal.");
else if (you.species == SP_VAMPIRE)
{
if (you.hunger_state <= HS_HUNGRY)
mpr("You heal slowly.");
else if (you.hunger_state == HS_ENGORGED)
mpr("You heal very quickly.");
else if (you.hunger_state >= HS_SATIATED)
mpr("You heal quickly.");
}
if (you.duration[DUR_REGENERATION]
&& (you.species != SP_VAMPIRE || you.hunger_state >= HS_HUNGRY)
|| you.species == SP_VAMPIRE && you.hunger_state >= HS_FULL)
if (you.disease && !you.duration[DUR_REGENERATION]
|| you.species == SP_VAMPIRE && you.hunger_state <= HS_STARVING)
{
text += "non-regenerating, ";
}
else if (you.duration[DUR_REGENERATION]
|| you.species == SP_VAMPIRE && you.hunger_state != HS_SATIATED)
text += "regenerating, ";
text += "regenerating";
if (you.species == SP_VAMPIRE && you.hunger_state != HS_SATIATED)
{
if (you.hunger_state <= HS_HUNGRY)
text += " slowly";
else if (you.hunger_state == HS_ENGORGED)
text += " very quickly";
else if (you.hunger_state >= HS_FULL)
text += " quickly";
}
text += ", ";
result += "<green>";
result += "You are";
result += (you.experience_level > 25) ?
" strongly" : "";
result += " in touch with the powers of death." EOL;
result += "You are quite resistant to negative energy." EOL;
result += "You can see invisible." EOL;
result += "</green>";
if (you.experience_level >= 13)
{
result += "<green>";
result += "You are";
result += " in touch with the powers of death." EOL;
result += "</green>";
}
else if (newstate == HS_ENGORGED && you.species == SP_VAMPIRE
&& you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT
&& you.duration[DUR_TRANSFORMATION] > 2)
{
mpr("Your bloodfilled body can't sustain your transformation much longer.",
MSGCH_WARN);
you.duration[DUR_TRANSFORMATION] = 2;
}
mpr("Sorry, you're not good enough to have a special ability.");
// Vampires can't turn into bats when full to the rim with blood.
if (you.species == SP_VAMPIRE && you.experience_level >= 3)
mpr("Sorry, you're too full to transform right now.");
else
mpr("Sorry, you're not good enough to have a special ability.");
if (you.species == SP_VAMPIRE && you.experience_level >= 3 &&
you.attribute[ATTR_TRANSFORMATION] != TRAN_BAT)
if (you.species == SP_VAMPIRE && you.experience_level >= 3
&& you.hunger_state < HS_ENGORGED
&& you.attribute[ATTR_TRANSFORMATION] != TRAN_BAT)