there'll be a base to work on; of course the format can (and should) be improved. Currently it's one line per resistance.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8396 c06c8d41-db1a-0410-9941-cceddc491573
4IE6LVHAQEALNGRIXCQZ7RINKLZ62TMCCKKD74Q7MCDSXLZOA2UQC
337Y6YXHHKPDH6UASINP5OQJYJSNHS6GGR7RWT3K7OHXDT25ERNQC
KO7TLN7OM7UQF33RRTOFPFTDQLTYCOE4N7KWQUTWRIUSEB6PQ4WQC
KATZLWENEIQMKKWIV4ZLXJ5HFUW6SU5K4ZU6NENBOL4XAAVTDUKAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
JDBTF7NKDHWDTAX5LRBQ75A5JBNELFITVYQ6KOGW5XM2SGW33STQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
RX6575DZOHRUXQUZH34YZGPZJF4STUPLBQDIVTINA2L6LVCKRIGQC
K2MLPJIAXXZRWEWZCNSGICCBNIU2WAAPT7SPIMOH7FLLTOB4QFRAC
KEYK3CH5J46U6TTOKTWRNMYTZXMQXFVEAZUC4ZQ4QCOSJHVIBDRQC
}
// Return a string of the form "She is resistant to fire."
static std::string _resistance_description(const char* pronoun,
int level, const char* attackname)
{
const char* modifiers[] = {
"susceptible", // -1
"resistant", // +1
"very resistant", // +2
"extremely resistant" // +3
};
std::string result;
if (level != 0)
{
const int offset = (level < 0) ? 0 : std::min(level, 3);
result = pronoun;
result += " is ";
result += modifiers[offset];
result += " to ";
result += attackname;
result += ".$";
}
return result;
static std::string _monster_resists_string(const monsters& mon)
{
const mon_resist_def resist = get_mons_resists(&mon);
const char* pronoun = mons_pronoun(static_cast<monster_type>(mon.type),
PRONOUN_CAP, true);
std::string result;
// Not shown: hellfire, asphyxiation, sticky flames.
result += _resistance_description(pronoun, resist.elec, "electricity");
result += _resistance_description(pronoun, resist.poison, "poison");
result += _resistance_description(pronoun, resist.fire, "fire");
result += _resistance_description(pronoun, resist.steam, "steam");
result += _resistance_description(pronoun, resist.cold, "cold");
result += _resistance_description(pronoun, resist.acid, "acid");
return result;
}