bar change was really about).
Modify mutations screen for Vampires to allow a toggle to a second page that lists all those resistances and stuff depending on their blood level. The screen (designed by David) is really neat, but the underlying could stand to be improved, and it might be too large, as well.
Also restrict Sublimation of Blood to Vampires that are at least Full, and it also makes them a bit more thirsty (since they presumably lose blood when using it). Dispel Undead only does half damage to Vampires at Alive, and 66% damage at Full or Very Full.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4325 c06c8d41-db1a-0410-9941-cceddc491573
IMC2HA2YWCU7SLGGVQQVUEUIST4ILSOEAUYXNZAW2PJZ475GXLDAC
IGRPHZG3Q6Y6OED7C2IR7HSKTNZH2CYRW23CB7JC4NELCJNZKPLQC
EB33TUEEJFHMEO6YHEXSYX3MBXHNPEFNMZL2VA75GOGKY6POSF2AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
IIN7AVA6JYRBXH6ZYRR7BY7TV6PW7ANAQ2A3PD55FKBKKQFEEF2AC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
PKMMQBEKTMP4EUYLUJFYIB3PRAQV5DPPDRBLNVMH4RQG2NMALWIQC
PGTE3JC4J5U536IJTCJFXTUOSRE73JXZJINWAGCANOQOCGC7J6AAC
YH23OR26YDA6C5K74QRWHROMTPGRNZHTHE4HJGPC3JVNAJ62CHGAC
5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
2SNCC2NXKFVBYTWH7THU2QELHONTOBRNCWH6FWYORKKCWZAXTTVAC
KAOE5HB3THUKVGFZRO5EZESHEB3Q34WUO5DFMLWIKOBF47LZTIYAC
static void _display_vampire_attributes()
{
clrscr();
cgotoxy(1,1);
std::string result;
std::string column[9][7] =
{
{" ", "<lightgreen>Alive</lightgreen> ", "<green>Full</green> ",
"Satiated ", "<yellow>Thirsty</yellow> ", "<yellow>Near...</yellow> ",
"<lightred>Bloodless</lightred>"},
//Alive Full Satiated Thirsty Near... Bloodless
{"Metabolism ", "very fast ", "fast ", "fast ", "normal ", "slow ", "none"},
{"Regeneration ", "very fast ", "fast ", "normal ", "normal ", "slow ", "none"},
{"Poison resistance ", " ", " ", " + ", " + ", " + ", " + "},
{"Cold resistance ", " ", " ", " ", " + ", " + ", " ++ "},
{"Negative resistance ", " ", " ", " ", " + ", " ++ ", " +++ "},
{"Torment resistance ", " ", " ", " ", " ", " ", " + "},
{"Mutation effects ", "full ", "capped ", "capped ", "none ", "none ", "none "},
{"Stealth boost ", "none ", "none ", "none ", "minor ", "major ", "large"}
};
int current = 0;
switch (you.hunger_state)
{
case HS_ENGORGED:
current = 1;
break;
case HS_VERY_FULL:
case HS_FULL:
current = 2;
break;
case HS_SATIATED:
current = 3;
break;
case HS_HUNGRY:
case HS_VERY_HUNGRY:
current = 4;
break;
case HS_NEAR_STARVING:
current = 5;
break;
case HS_STARVING:
current = 6;
}
for (int y = 0; y < 9; y++) // lines (properties)
{
for (int x = 0; x < 7; x++) // columns (hunger states)
{
if (y > 0 && x == current)
result += "<w>";
result += column[y][x];
if (y > 0 && x == current)
result += "</w>";
}
result += EOL;
}
/*
result = " <lightgreen>Alive</lightgreen> <green>Full</green> Satiated "
"<yellow>Thirsty Near...</yellow> <lightred>Bloodless</lightred>" EOL
"Metabolism very fast fast fast normal slow none " EOL
"Regeneration very fast fast normal normal slow none " EOL
"Poison resistance + + + + " EOL
"Cold resistance + + ++ " EOL
"Negative resistance + ++ +++ " EOL
"Torment resistance + " EOL
"Mutation effects full capped capped none none none " EOL
"Stealth boost none none none minor major large" EOL;
*/
result += EOL EOL;
result += EOL EOL;
result += EOL EOL;
result += "Press '<w>!</w>' to toggle between mutations and properties depending on your " EOL
"hunger status." EOL;
const formatted_string vp_props = formatted_string::parse_string(result);
vp_props.display();
if (you.species == SP_VAMPIRE)
{
const int keyin = getch();
if (keyin == '!')
display_mutations();
}
}
Menu mutation_menu(mutation_fs);
mutation_menu.show();
if (you.species == SP_VAMPIRE)
{
mutation_fs.display();
const int keyin = getch();
if (keyin == '!')
_display_vampire_attributes();
}
else
{
Menu mutation_menu(mutation_fs);
mutation_menu.show();
}