infravision or ESP
display "lotus juice", not "lotu juice" for the fruit juice name
statue of any golem hit with stone-to-flesh spell animates as flesh golem
+two invisible monsters hitting one another should not be visible
+if only one monster in a monster-vs-monster fight is visible, show an I symbol
+ for the other one whether it is an attacker or defender
+display "It" and not "The invisible <pet>" when an invisible pet eats food.
Platform- and/or Interface-Specific Fixes
/* TODO: Reveal presence of sea monster (especially sharks) */
} else
/* hack: observe the action if either new or old location is in view */
+ /* However, invisible monsters should still be "it" even though out of
+ sight locations should not. */
if (cansee(x, y) || cansee(mtmp->mx, mtmp->my))
- pline("%s %s %s.", noit_Monnam(mtmp),
+ pline("%s %s %s.", mon_visible(mtmp) ? noit_Monnam(mtmp) : "It",
devour ? "devours" : "eats",
(obj->oclass == FOOD_CLASS) ?
singular(obj, doname) : doname(obj));
char buf[BUFSZ], mdef_name[BUFSZ];
if (vis) {
+ if (!canspotmon(magr))
+ map_invisible(magr->mx, magr->my);
if (!canspotmon(mdef))
map_invisible(mdef->mx, mdef->my);
if (mdef->m_ap_type) seemimic(mdef);
/* Set up the visibility of action */
- vis = (cansee(magr->mx,magr->my) && cansee(mdef->mx,mdef->my));
+ vis = (cansee(magr->mx,magr->my) && cansee(mdef->mx,mdef->my) && (canspotmon(magr) || canspotmon(mdef)));
/* Set flag indicating monster has moved this turn. Necessary since a
* monster might get an attack out of sequence (i.e. before its move) in
int compat;
char buf[BUFSZ], mdef_name[BUFSZ];
+ if (!canspotmon(magr))
+ map_invisible(magr->mx, magr->my);
if (!canspotmon(mdef))
map_invisible(mdef->mx, mdef->my);
if(mdef->m_ap_type) seemimic(mdef);