mtmp->data == &mons[PM_WATCH_CAPTAIN]) &&
couldsee(mtmp->mx, mtmp->my) &&
mtmp->mpeaceful) {
- pline("%s yells:", Amonnam(mtmp));
+ if (canspotmon(mtmp))
+ pline("%s yells:", Amonnam(mtmp));
+ else
+ You_hear("someone yell:");
verbalize("Halt, thief! You're under arrest!");
(void) angry_guards(FALSE);
break;
if ((mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN]) &&
mtmp->mpeaceful && couldsee(mtmp->mx, mtmp->my)) {
- pline("%s yells:", Amonnam(mtmp));
+ if (canspotmon(mtmp))
+ pline("%s yells:", Amonnam(mtmp));
+ else
+ You_hear("someone yell:");
if(levl[x][y].looted & D_WARNED) {
verbalize("Halt, vandal! You're under arrest!");
(void) angry_guards(FALSE);
if (!foundyou && thinks_it_foundyou &&
!is_undirected_spell(mattk->adtyp, spellnum)) {
pline("%s casts a spell at %s!",
- canseemon(mtmp) ? Monnam(mtmp) : "It",
+ canseemon(mtmp) ? Monnam(mtmp) : "Something",
levl[mtmp->mux][mtmp->muy].typ == WATER
? "empty water" : "thin air");
return(0);
pline_The("air crackles around %s.", mon_nam(mtmp));
return(0);
}
- pline("%s casts a spell%s!", Monnam(mtmp),
- is_undirected_spell(mattk->adtyp, spellnum) ? "" :
- (Invisible && !perceives(mtmp->data) &&
- (mtmp->mux != u.ux || mtmp->muy != u.uy)) ?
- " at a spot near you" :
- (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) ?
- " at your displaced image" :
- " at you");
+ if (canspotmon(mtmp) || !is_undirected_spell(mattk->adtyp, spellnum)) {
+ pline("%s casts a spell%s!",
+ canspotmon(mtmp) ? Monnam(mtmp) : "Something",
+ is_undirected_spell(mattk->adtyp, spellnum) ? "" :
+ (Invisible && !perceives(mtmp->data) &&
+ (mtmp->mux != u.ux || mtmp->muy != u.uy)) ?
+ " at a spot near you" :
+ (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) ?
+ " at your displaced image" :
+ " at you");
+ }
/*
* As these are spells, the damage is related to the level