Describe out-of-range monsters.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7145 c06c8d41-db1a-0410-9941-cceddc491573
MSRJ3N4NX255RVISUOPTTTY2GG4JVVNNM76HWUZ2EKCYESNI6MLQC
PEZFWKRHDHV4UJTPK5XJZ3CGTZ3LPTDYSPTYBENLQ7VRSP7YFSIQC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
ON7HKKWM4CRYWNI5SZKKWI5Q5MVFOPC6QVKHXX3D66G7EOZEMGWAC
IIN7AVA6JYRBXH6ZYRR7BY7TV6PW7ANAQ2A3PD55FKBKKQFEEF2AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
4PUWNQO7QMEWY3GSUHLBKMYOAI7ASYSRM32KDGTA7DLNDIGFAWFAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
2G55UEHQ7554OPNSZVTUCZTWSHIFKGT56QEGSYFKCTX547I4AL3AC
QYQKV4R47PTERXVFQNNWWQVICGSOMBHW6WM5TAZAKLIYOLLPUAJAC
JBZ7NU4BB5PGQWCOSZHD5OQUHQIVOD4XGJLSJQ7BUGQEGPRTVGZQC
ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
B3FDHXVBFR7YQF56JLQT2EYWRTWV6Y4N44GI6EWVWUU2KBNMZDCAC
PI5BATR2SER3RFE76IUGHM2AGXVFOUM3PLU7WC2K2Q2BA5K2E73QC
I4HQEB6RVIPJD3EQCNADMQJVGYAIIHTBGFVMPXHDNLYYG5JVIK4AC
O7S3ILRELHICJXXTDGMF7KPPZWYHPYCNDPV2I77FZXXH4I454B4QC
Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC
// Save and replace monster colours.
for (int i = 0; i < MAX_MONSTERS; ++i)
{
if (menv[i].alive()
&& grid_distance(menv[i].pos(), you.pos()) > range
&& you.can_see(&menv[i]))
{
orig_mon_colours[i] = menv[i].colour;
menv[i].colour = DARKGREY;
}
else
{
orig_mon_colours[i] = -1;
}
}
// Repaint.
std::string _mon_enchantments_string(const monsters* mon)
{
const bool paralysed = mons_is_paralysed(mon);
std::vector<std::string> enchant_descriptors;
for (mon_enchant_list::const_iterator e = mon->enchantments.begin();
e != mon->enchantments.end(); ++e)
{
const std::string tmp =
_describe_mons_enchantment(*mon, e->second, paralysed);
if (!tmp.empty())
enchant_descriptors.push_back(tmp);
}
if (paralysed)
enchant_descriptors.push_back("paralysed");
if (!enchant_descriptors.empty())
{
return
mon->pronoun(PRONOUN_CAP)
+ " is "
+ comma_separated_line(enchant_descriptors.begin(),
enchant_descriptors.end())
+ ".";
}
else
return "";
}
std::string text = get_monster_desc(mon);
text += ".";
print_formatted_paragraph(text, get_number_of_cols());
const int numcols = get_number_of_cols();
std::string text = get_monster_desc(mon) + ".";
print_formatted_paragraph(text, numcols);
std::string desc = "";
std::string last_desc = "";
std::string tmp = "";
const bool paralysed = mons_is_paralysed(mon);
if (paralysed)
last_desc += "paralysed";
for (mon_enchant_list::const_iterator e = mon->enchantments.begin();
e != mon->enchantments.end(); ++e)
{
tmp = _describe_mons_enchantment(*mon, e->second, paralysed);
if (!tmp.empty())
{
if (!desc.empty())
desc += ", ";
desc += last_desc;
last_desc = tmp;
}
}
if (!last_desc.empty())
{
if (!desc.empty())
desc += ", and ";
desc += last_desc;
}
if (!desc.empty())
{
text = mon->pronoun(PRONOUN_CAP);
text += " is ";
text += desc;
text += ".";
print_formatted_paragraph(text, get_number_of_cols());
}
text = _mon_enchantments_string(mon);
if (!text.empty())
print_formatted_paragraph(text, numcols);