invisible pets
Invisible pet fix for the recently reported bug, as well as another one found in the process.
This commit is contained in:
@@ -11,6 +11,10 @@ expert fireball/cone of cold could not target a monster seen only with
|
||||
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
|
||||
|
||||
@@ -157,8 +157,10 @@ boolean devour;
|
||||
/* 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));
|
||||
|
||||
@@ -78,6 +78,8 @@ missmm(magr, mdef, mattk)
|
||||
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);
|
||||
@@ -221,7 +223,7 @@ mattackm(magr, 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
|
||||
@@ -371,6 +373,8 @@ hitmm(magr, mdef, mattk)
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user