diff options
author | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-15 20:43:40 -0800 |
---|---|---|
committer | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-15 20:43:40 -0800 |
commit | 3edb0b71f57aa058c6d20904dd7c875f67e222b6 (patch) | |
tree | bbb083ef185df4ef9313e1502f67d8ab386a110a /crawl-ref/source | |
parent | 1b490890d245da181d79e8730f1357759028eb9e (diff) | |
download | crawl-ref-3edb0b71f57aa058c6d20904dd7c875f67e222b6.tar.gz crawl-ref-3edb0b71f57aa058c6d20904dd7c875f67e222b6.zip |
Message for unseen eyes starting at you
If an eye you can't stares at you, you get the message "You feel you are
being watched by something" before the effect happens.
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/mon-abil.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/crawl-ref/source/mon-abil.cc b/crawl-ref/source/mon-abil.cc index a8037d2733..08ae3bbbe3 100644 --- a/crawl-ref/source/mon-abil.cc +++ b/crawl-ref/source/mon-abil.cc @@ -1326,13 +1326,17 @@ void mon_nearby_ability(monsters *monster) case MONS_GOLDEN_EYE: if (_eyeball_will_use_ability(monster)) { - if (you.can_see(monster) && you.can_see(foe)) + const bool can_see = you.can_see(monster); + if (can_see && you.can_see(foe)) mprf("%s blinks at %s.", monster->name(DESC_CAP_THE).c_str(), foe->name(DESC_NOCAP_THE).c_str()); int confuse_power = 2 + random2(3); + if (foe->atype() == ACT_PLAYER && !can_see) + mpr("You feel you are being watched by something."); + if (foe->check_res_magic((monster->hit_dice * 5) * confuse_power)) { if (foe->atype() == ACT_PLAYER) @@ -1352,11 +1356,15 @@ void mon_nearby_ability(monsters *monster) case MONS_GIANT_EYEBALL: if (_eyeball_will_use_ability(monster)) { - if (you.can_see(monster) && you.can_see(foe)) + const bool can_see = you.can_see(monster); + if (can_see && you.can_see(foe)) mprf("%s stares at %s.", monster->name(DESC_CAP_THE).c_str(), foe->name(DESC_NOCAP_THE).c_str()); + if (foe->atype() == ACT_PLAYER && !can_see) + mpr("You feel you are being watched by something."); + // Subtly different from old paralysis behaviour, but // it'll do. foe->paralyse(monster, 2 + random2(3)); @@ -1364,10 +1372,12 @@ void mon_nearby_ability(monsters *monster) break; case MONS_EYE_OF_DRAINING: - if (_eyeball_will_use_ability(monster) - && foe->atype() == ACT_PLAYER) + if (_eyeball_will_use_ability(monster) && foe->atype() == ACT_PLAYER) { - simple_monster_message(monster, " stares at you."); + if (you.can_see(monster)) + simple_monster_message(monster, " stares at you."); + else + mpr("You feel you are being watched by something."); dec_mp(5 + random2avg(13, 3)); |