diff options
author | Matthew Cline <zelgadis@sourceforge.net> | 2009-12-05 20:01:16 -0800 |
---|---|---|
committer | Matthew Cline <zelgadis@sourceforge.net> | 2009-12-05 20:03:57 -0800 |
commit | 259fa0c5a67742c72a0952297789ae834b2ffe1d (patch) | |
tree | cba5a5e3c4fe8cf4f1690eecc4d7087f23b3f80f /crawl-ref | |
parent | ba0c7906057642dd0464f304e3afa1ad62a3c479 (diff) | |
download | crawl-ref-259fa0c5a67742c72a0952297789ae834b2ffe1d.tar.gz crawl-ref-259fa0c5a67742c72a0952297789ae834b2ffe1d.zip |
Sometimes give msg when mermaid stops beholding
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/behold.cc | 25 | ||||
-rw-r--r-- | crawl-ref/source/spells4.cc | 5 |
2 files changed, 26 insertions, 4 deletions
diff --git a/crawl-ref/source/behold.cc b/crawl-ref/source/behold.cc index 650c2f089f..b1235c6a85 100644 --- a/crawl-ref/source/behold.cc +++ b/crawl-ref/source/behold.cc @@ -107,6 +107,29 @@ void player::beholders_check_noise(int loudness) } } +static void _removed_beholder_msg(const monsters* mon) +{ + if (!mon->alive() || mons_genus(mon->type) != MONS_MERMAID + || mon->submerged() || !you.see_cell(mon->pos())) + { + return; + } + + if (you.can_see(mon)) + { + if (silenced(you.pos()) || silenced(mon->pos())) + { + mprf("You can no longer hear %s's singing!", + mon->name(DESC_NOCAP_THE).c_str()); + return; + } + mprf("%s stops singing.", mon->name(DESC_CAP_THE).c_str()); + return; + } + + mpr("Something stops singing."); +} + // Update all beholders' status after changes. void player::update_beholders() { @@ -120,6 +143,7 @@ void player::update_beholders() { beholders.erase(beholders.begin() + i); removed = true; + _removed_beholder_msg(mon); } } if (removed) @@ -135,6 +159,7 @@ void player::update_beholder(const monsters *mon) if (beholders[i] == mon->mindex()) { beholders.erase(beholders.begin() + i); + _removed_beholder_msg(mon); _removed_beholder(); return; } diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc index 3a87718b9e..5147acc2ea 100644 --- a/crawl-ref/source/spells4.cc +++ b/crawl-ref/source/spells4.cc @@ -755,10 +755,7 @@ void cast_silence(int pow) you.increase_duration(DUR_SILENCE, 10 + random2avg(pow,2), 100); if (you.beheld()) - { - you.clear_beholders(); - mpr("You break out of your daze!", MSGCH_RECOVERY); - } + you.update_beholders(); } static int _discharge_monsters(coord_def where, int pow, int, actor *) |