runrest_ignore_monster option gets too close. Also give a more informative interruption message when an air elemental quits being "submerged" in the air, and give a new message when it first "submerges" itself into the air.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2451 c06c8d41-db1a-0410-9941-cceddc491573
GTXKQTORYHZ7XB2VIH6372UM5GMWAN7IVRXWY5FGBCHFGBV6D6NAC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
VBG2GGMVC66LQM4OSI67VKXGAQK4GVOEHX3OL6V3IFOO52MQL72QC
OP6CTAKWCAU64JXQ3USQYR5E5IFHQHNCACII5UMVRXUTZXJQOAZAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
ODNAIEJW732NG7USKQKCIP4R4DAEYXXJQX6LY7TIN32NKE75454QC
QYQKV4R47PTERXVFQNNWWQVICGSOMBHW6WM5TAZAKLIYOLLPUAJAC
UWMN4HLG6YA2YFQEVIVMDISD6APKEPIZXMMPMNUYCBQDSAUYSXPQC
case ENCH_SUBMERGED:
if (type == MONS_AIR_ELEMENTAL)
{
if (mons_near(this))
{
if (!mons_is_safe( static_cast<const monsters*>(this)))
{
activity_interrupt_data aid(this);
aid.context = "thin air";
interrupt_activity( AI_SEE_MONSTER, aid );
}
else if (!quiet)
mprf("%s forms itself from the air!",
name(DESC_CAP_A, true).c_str() );
seen_monster( this );
// Monster was viewed this turn
flags |= MF_WAS_IN_VIEW;
}
}
break;
const std::string mweap =
get_monster_desc(mon, false, DESC_NONE);
std::string text = mon->name(DESC_CAP_A) + " comes into view.";
if (!mweap.empty())
text += " " + mon->pronoun(PRONOUN_CAP)
+ " is" + mweap + ".";
print_formatted_paragraph(text,
get_number_of_cols(),
MSGCH_WARN);
if (mon->type == MONS_AIR_ELEMENTAL)
text += " forms itself from the air.";
else
text += " appears from thin air.";