diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2011-03-06 19:29:09 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2011-03-06 19:34:16 +1000 |
commit | 8333f4560c760a8bbe7eb5d06b0b854466010365 (patch) | |
tree | 9301bca1debd6c4568cf6f2b0c96a0a95f8d1a43 /crawl-ref/source/behold.cc | |
parent | 429086523c50d66312860e581354c69da620db65 (diff) | |
download | crawl-ref-8333f4560c760a8bbe7eb5d06b0b854466010365.tar.gz crawl-ref-8333f4560c760a8bbe7eb5d06b0b854466010365.zip |
De-mermaid-ify mesmerisation for non-mermaid beholders.
It's a little bit odd to be beheld by an ogre, say, and then have them
described as "mermaids" or their actions as "singing". A bit jarring and
odd, but fixed now!
Diffstat (limited to 'crawl-ref/source/behold.cc')
-rw-r--r-- | crawl-ref/source/behold.cc | 76 |
1 files changed, 62 insertions, 14 deletions
diff --git a/crawl-ref/source/behold.cc b/crawl-ref/source/behold.cc index ffbb9b0cf9..b171ea66fa 100644 --- a/crawl-ref/source/behold.cc +++ b/crawl-ref/source/behold.cc @@ -19,20 +19,40 @@ #include "stuff.h" #include "areas.h" +static bool _mermaid_beholder (const monster* mons) +{ + return (mons_genus(mons->type) == MONS_MERMAID); +} + // Add a monster to the list of beholders. void player::add_beholder(const monster* mon, bool axe) { if (is_sanctuary(you.pos()) && !axe) { - if (you.can_see(mon)) + if (_mermaid_beholder(mon)) { - mprf("%s's singing sounds muted, and has no effect on you.", - mon->name(DESC_CAP_THE).c_str()); + if (you.can_see(mon)) + { + mprf("%s's singing sounds muted, and has no effect on you.", + mon->name(DESC_CAP_THE).c_str()); + } + else + { + mpr("The melody is strangely muted, and has no effect on you."); + } } else { - mpr("The melody is strangely muted, and has no effect on you."); + if (you.can_see(mon)) + { + mprf("%s's is no longer quite as mesmerising!", mon->name(DESC_CAP_THE).c_str()); + } + else + { + mpr("Your mesmeriser suddenly seems less interesting!"); + } } + return; } @@ -121,8 +141,7 @@ void player::beholders_check_noise(int loudness, bool axe) if (loudness >= 20 && beheld()) { - mprf("For a moment, you cannot hear the mermaid%s!", - beholders.size() > 1 ? "s" : ""); + mprf("For a moment, your mind becomes perfectly clear!"); clear_beholders(); _removed_beholder(); } @@ -138,13 +157,27 @@ static void _removed_beholder_msg(const monster* mon) if (is_sanctuary(you.pos()) && !mons_is_fleeing(mon)) { - if (you.can_see(mon)) + if (_mermaid_beholder(mon)) { - mprf("%s's singing becomes strangely muted.", - mon->name(DESC_CAP_THE).c_str()); + if (you.can_see(mon)) + { + mprf("%s's singing becomes strangely muted.", + mon->name(DESC_CAP_THE).c_str()); + } + else + mpr("Something's singing becomes strangely muted."); } else - mpr("Something's singing becomes strangely muted."); + { + if (you.can_see(mon)) + { + mprf("%s's is no longer quite as mesmerising!", mon->name(DESC_CAP_THE).c_str()); + } + else + { + mpr("Your mesmeriser suddenly seems less interesting!"); + } + } return; } @@ -153,15 +186,30 @@ static void _removed_beholder_msg(const monster* mon) { if (silenced(you.pos()) || silenced(mon->pos())) { - mprf("You can no longer hear %s's singing!", - mon->name(DESC_NOCAP_THE).c_str()); + if (_mermaid_beholder(mon)) + { + mprf("You can no longer hear %s's singing!", + mon->name(DESC_NOCAP_THE).c_str()); + } + else + { + mpr("The silence clears your mind."); + } return; } - mprf("%s stops singing.", mon->name(DESC_CAP_THE).c_str()); + + if (_mermaid_beholder(mon)) + mprf("%s stops singing.", mon->name(DESC_CAP_THE).c_str()); + else + mprf("%s is no longer quite as mesmerising!", mon->name(DESC_CAP_THE).c_str()); + return; } - mpr("Something stops singing."); + if (_mermaid_beholder(mon)) + mpr("Something stops singing."); + else + mpr("Your mesmeriser is now quite boring!"); } // Update all beholders' status after changes. |