lords, using mons_class_resists (currently only poison) instead of mons_resists().
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9652 c06c8d41-db1a-0410-9941-cceddc491573
HGBHRHXFVTEWYYV2D5HKTKL4Z6OSNR2ZOIHFQX55CVRCXQUQ7MQAC
UJHVY3MHU23VJMYKIXCDSAIXF6HH6MWKT5H2KHSJTHJVU4DYWTFAC
EMPCLM5IS2DKVNICFEDGSA36EDE4ZEAXNPEOFUKA6W57B3HFHQVAC
GTV4UGWYQRAHPDSKZZFMJZH6K6UUOGFELYYWADLJ7XHMLSODFUFQC
MG2J6HQGH4DWFH3PC2SZB45NGKK5ISPBADQD24GWAZCZTDLOA33AC
UA5DAEP7KCACHMACVVL2KGE6XNUCWLOUWT6MS2HOZ4P4LQAAV6OAC
ZYXDNELXBXZ6F5EVS5R6CTR4SIZ6G2RX6DKGHAZYTKPO6XJCZYRAC
AVEOSLDREJHWFZE6ULAWGQPDT24YX4OAOGL7YAUCFVRGHCS22UCAC
LKB2LH3EPYUBXYGRNR3TY4G3ZRM7QUJPJTY2HMWQ7DB44734AQ3AC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
7GCM5WFIKX5N2PQ5UCVNMFJEKTZTBCUVZH5RZ7CPDL3Z6GB26KAQC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
CDEJUVHMOT2SRPKWBB5IUPAXPGX6TUTGRBFLSPTR4XNZABDLSNUQC
JYEEOUYQ7ZPKOGWUV7VCORBVSOLF2UCBFBH3TR75RGOSS6PNKYUAC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
64HB7VYSYHQEN5UP7OYJ5GSVA2XMDSLLH647UPWE5NSFF3AVZSSQC
H2OHWQKMHL66CPVJGJL35RY7EIZB74SZTGOLDJDSCG5WVEVPIIUAC
PUY2VWZJ3G7HNCLIHZP5VGT2DAGHI436ETDJQTPEBFPRSEHOM2NQC
EPHUKDK7NF5QIFYT4MBFBRYSMNFXDTVUMZVCC4EUTBCFIDN5OFQQC
IFYZSFWJRTV6JM46H6U4CMTQX46VT562EAM64Y6UYU3F6RDWRRYQC
KO7PZNWIRLSAPOXUHK7U446ZXT562QCPIT3AYFYKPG7OWRLNBU4QC
IBV5MNXWCCOWCI7DPVTPFEEMLX7QWP75EP6YQ3RA2WJOKWSGMPSQC
43XCHFXZ34FDVT2QG23RZ65V6NRBY6PE3ENQEEDXFYKRR7IRFHCAC
TPJYUAKSEZMCCCJANJ5EQ7F67QVTPFEOWBD7WYK33NLRN657Y5VQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC
43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
K2MLPJIAXXZRWEWZCNSGICCBNIU2WAAPT7SPIMOH7FLLTOB4QFRAC
4IE6LVHAQEALNGRIXCQZ7RINKLZ62TMCCKKD74Q7MCDSXLZOA2UQC
ISSEUTHG7EH3QTFLS23GXFIOQXCI5HJPJMK6GWNFMC6NDRD2H34QC
456KTRCLDMONHJFPEKJYMXO737ZHKN36ZU3UQ77JDERXBU5VFMVQC
MDFQRJ6QZNFUBVSFWLXUJ6EBXOU47T3CVDI2XKBGNNRF4DXDKESQC
3WHI3KM43ZCN4ITJLFQQBQBC4OJPRS7QTBPIQ6QBCUVKRSK476SAC
QAUXI2U6XHSKZTLWIDBACYCHVFEKHFZSS3TMSADAJKH2TJGDYJRQC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
N6F35CMZALDQR4LD3HP2JQZGQ4JNBATAICO7ZUCF5M2ZW5E4QYVAC
B7DNCNY7SXL5WAW5B3XZP5KIQSBWOJ3N2YW46WOUQKTRBRRZ7YOQC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
7V4DCKFJCNBXFODMKJ6H3MCDUTSD4XVQ7D4D6XFCD4JNF4HCE4KAC
2WNUWTZNE66IUUTQ4NW3RN7P2MFUKBXPD265M5CTZCDKC56VQONQC
IXW2IM5ITYDCXDB3ORDDVAR5XUSPVQ3BWLP3Q6TRXNTIKGMZTHXAC
4FQAKUKUO6PCAZ3N4HUR5XL6E4VA5UQUZ3AEDGRBLVY7W2LMWI7QC
7OC5HCGLN26GDA5SQTWKBSUZYZDZJXWIVMJ4NKKXREOEEPUGQ4YQC
3TYLZMKPDKBUM4NJ36PJIINJNTMXDYL7CSYW6VQNJ5U3XWCOLLJAC
Q3CXKRHUYJ2HYIJPTJ6PEZOOATHLJKUSE5ZJ37L4M2EPCVHC7A4QC
75OSTCYAQI6PNHPJIL7DCP45PRMYPK7WADGJWS7ZCH5ZAD6Z4DNQC
KOH7BGYORAFAQ5UL5ACMX4X3JGAQFPNBLMKHAWTVW726S7NVB2KQC
EPRT5LWIQULNZW5XP3ZMAGMEZ5KC4PQTW2BDTEXNH367LDL5NE5QC
HHI3OKPP4E6OHJDA4UTMIW7ISHFRIOEZETYTKYU4D3WQW7ZMTNTAC
XKSYV5QUG2PET6BNBZPNI4D7LDBJGWOH335OD3J24AKJWE63J3WQC
TDAVD56MGLFSMJLPLSYLEVW7MBRMT7V5BNII4TRWVDIHH47CD2OAC
WL5WZXFJ6TONUQRSHUY4GQ5USU47ILWNN5X2JDQZO4CRJJZSRQIAC
RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC
EHSY6DVGUMI6C67WKET3GDJVLWJWGYBYQONNDK5JVT7BCTHBEZVAC
DS2GZKISEP2DM2VU6EJ525Q7W3WVOKJXG5PY2OY4VNFCLBHVVOTAC
Z5ORIVPW6DXOP3G37OTMP4CY4JYUYS4PGNJ4BTZQ3L2ZTWU67RWAC
snprintf(spell_buf, sizeof(spell_buf), "XOM: cast spell '%s' (tension %d)",
spell_title(spell), tension);
take_note(Note(NOTE_MESSAGE, 0, 0, spell_buf), true);
#endif
snprintf(spell_buf, sizeof(spell_buf), "cast spell '%s'",
spell_title(spell));
take_note(Note(NOTE_XOM_EFFECT, you.piety, tension, spell_buf), true);
#ifdef NOTE_DEBUG_XOM
static char gift_buf[100];
snprintf(gift_buf, sizeof(gift_buf), "XOM: god gift: %s",
mitm[thing_created].name(DESC_PLAIN).c_str());
take_note(Note(NOTE_MESSAGE, 0, 0, gift_buf), true);
#endif
static char poly_buf[120];
snprintf(poly_buf, sizeof(poly_buf), "XOM: polymorph %s -> %s (%s)",
old_name.c_str(), mon->full_name(DESC_PLAIN).c_str(),
powerup ? "upgrade" : "downgrade");
take_note(Note(NOTE_MESSAGE, 0, 0, poly_buf), true);
poly += " (";
poly += (powerup ? "upgrade" : "downgrade");
poly += ")";
static char mut_buf[80];
snprintf(mut_buf, sizeof(mut_buf), "XOM: give %s mutation%s",
good ? "good" : "random", num_tries > 1 ? "s" : "");
take_note(Note(NOTE_MESSAGE, 0, 0, mut_buf), true);
good ? "good " : "random ");
#else
"");
"XOM: divine lightning%s", protection ? " (protected)" : "");
take_note(Note(NOTE_MESSAGE, 0, 0, lightning_buf), true);
#endif
"divine lightning%s", protection ? " (protected)" : "");
take_note(Note(NOTE_XOM_EFFECT, you.piety, -1, lightning_buf), true);
"XOM: %d-stop teleportation journey%s",
count, (player_in_a_dangerous_place() ? " (dangerous)" : ""));
take_note(Note(NOTE_MESSAGE, 0, 0, tele_buf), true);
"XOM: %d-stop teleportation journey%s", count,
#ifdef NOTE_DEBUG_XOM
player_in_a_dangerous_place() ? " (dangerous)" : // see below
static char miscast_buf[80];
snprintf(miscast_buf, sizeof(miscast_buf), "XOM: level %d miscast effect %s",
level, nasty ? "(nasty)" : "");
take_note(Note(NOTE_MESSAGE, 0, 0, miscast_buf), true);
static char level_buf[20];
snprintf(level_buf, sizeof(level_buf), " level %d%s",
level, (nasty ? " (nasty)" : ""));
desc += level_buf;
"XOM: torment (%d/%d hp)", you.hp, you.hp_max);
take_note(Note(NOTE_MESSAGE, 0, 0, torment_buf), true);
#endif
"torment (%d/%d hp)", you.hp, you.hp_max);
take_note(Note(NOTE_XOM_EFFECT, you.piety, -1, torment_buf), true);
const mon_resist_def resist = get_mons_resists(&mon);
std::ostringstream result;
// Don't leak or duplicate resistance information for ghosts/demons.
const mon_resist_def resist =
(mon.type == MONS_PANDEMONIUM_DEMON
|| mon.type == MONS_PLAYER_GHOST ? get_mons_class_resists(mon.type)
: get_mons_resists(&mon));
if (mons_class_flag(mon.type, M_SEE_INVIS))
result << pronoun << " can see invisible.$";
else if (mons_class_flag(mon.type, M_SENSE_INVIS))
result << pronoun << " can sense the presence of invisible creatures.$";
// Unusual monster speed.
const int speed = mons_base_speed(&mon);
if (speed != 10)
if (mon.type != MONS_PANDEMONIUM_DEMON && mon.type != MONS_PLAYER_GHOST)
result << pronoun << " is ";
if (speed < 7)
result << "very slow";
else if (speed < 10)
result << "slow";
else if (speed > 20)
result << "extremely fast";
else if (speed > 15)
result << "very fast";
else if (speed > 10)
result << "fast";
result << ".$";
if (mons_class_flag(mon.type, M_SEE_INVIS))
result << pronoun << " can see invisible.$";
else if (mons_class_flag(mon.type, M_SENSE_INVIS))
result << pronoun << " can sense the presence of invisible creatures.$";
// Unusual monster speed.
const int speed = mons_base_speed(&mon);
if (speed != 10)
{
result << pronoun << " is ";
if (speed < 7)
result << "very slow";
else if (speed < 10)
result << "slow";
else if (speed > 20)
result << "extremely fast";
else if (speed > 15)
result << "very fast";
else if (speed > 10)
result << "fast";
result << ".$";
}
// Don't leak or duplicate resistance information for demons.
if (mons.type != MONS_PANDEMONIUM_DEMON)
{
std::string result = _monster_stat_description(mons);
if (!result.empty())
inf.body << "$" << result;
}
// Get information on resistances, speed, etc.
std::string result = _monster_stat_description(mons);
if (!result.empty())
inf.body << "$" << result;