summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/monstuff.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index ffb6f30b3e..de3cc7d7b5 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -4289,7 +4289,17 @@ static bool _handle_special_ability(monsters *monster, bolt & beem)
if (one_chance_in(5)
|| monster->foe == MHITYOU && !already_beheld && coinflip())
{
- if (player_monster_visible(monster))
+ int walls = num_feats_between(you.x_pos, you.y_pos,
+ monster->x, monster->y, DNGN_UNSEEN,
+ DNGN_MAXWALL);
+
+ if (walls > 0)
+ {
+ simple_monster_message(monster, " appears to sing, but you "
+ "can't hear her.");
+ break;
+ }
+ else if (player_monster_visible(monster))
{
simple_monster_message(monster,
make_stringf(" chants %s song.",