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
|
infravision or ESP
|
||||||
display "lotus juice", not "lotu juice" for the fruit juice name
|
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
|
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
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -157,8 +157,10 @@ boolean devour;
|
|||||||
/* TODO: Reveal presence of sea monster (especially sharks) */
|
/* TODO: Reveal presence of sea monster (especially sharks) */
|
||||||
} else
|
} else
|
||||||
/* hack: observe the action if either new or old location is in view */
|
/* 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))
|
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",
|
devour ? "devours" : "eats",
|
||||||
(obj->oclass == FOOD_CLASS) ?
|
(obj->oclass == FOOD_CLASS) ?
|
||||||
singular(obj, doname) : doname(obj));
|
singular(obj, doname) : doname(obj));
|
||||||
|
|||||||
@@ -78,6 +78,8 @@ missmm(magr, mdef, mattk)
|
|||||||
char buf[BUFSZ], mdef_name[BUFSZ];
|
char buf[BUFSZ], mdef_name[BUFSZ];
|
||||||
|
|
||||||
if (vis) {
|
if (vis) {
|
||||||
|
if (!canspotmon(magr))
|
||||||
|
map_invisible(magr->mx, magr->my);
|
||||||
if (!canspotmon(mdef))
|
if (!canspotmon(mdef))
|
||||||
map_invisible(mdef->mx, mdef->my);
|
map_invisible(mdef->mx, mdef->my);
|
||||||
if (mdef->m_ap_type) seemimic(mdef);
|
if (mdef->m_ap_type) seemimic(mdef);
|
||||||
@@ -221,7 +223,7 @@ mattackm(magr, mdef)
|
|||||||
|
|
||||||
|
|
||||||
/* Set up the visibility of action */
|
/* 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
|
/* 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
|
* monster might get an attack out of sequence (i.e. before its move) in
|
||||||
@@ -371,6 +373,8 @@ hitmm(magr, mdef, mattk)
|
|||||||
int compat;
|
int compat;
|
||||||
char buf[BUFSZ], mdef_name[BUFSZ];
|
char buf[BUFSZ], mdef_name[BUFSZ];
|
||||||
|
|
||||||
|
if (!canspotmon(magr))
|
||||||
|
map_invisible(magr->mx, magr->my);
|
||||||
if (!canspotmon(mdef))
|
if (!canspotmon(mdef))
|
||||||
map_invisible(mdef->mx, mdef->my);
|
map_invisible(mdef->mx, mdef->my);
|
||||||
if(mdef->m_ap_type) seemimic(mdef);
|
if(mdef->m_ap_type) seemimic(mdef);
|
||||||
|
|||||||
Reference in New Issue
Block a user