avoid hallucinatory effect on black light as it explodes

From a bug report:  when a black light explodes and triggers
hallucination, its own monster symbol--or warning marker for same--could
be seen changing.  Since nothing is left after it explodes, you shouldn't
hallucinate anything at its location.  Fix by killing it off (so removing
it from the map) before initiating Hallucination.
This commit is contained in:
nethack.rankin
2004-11-30 04:32:01 +00:00
parent 8215976fdb
commit b4be660c0a
2 changed files with 7 additions and 4 deletions

View File

@@ -69,6 +69,7 @@ some types of shop theft of a stack of items only charged for a single one
wizard mode: WIZKIT wish for own quest artifact triggered crash at startup
avoid "your steed is still eating" message when going through a magic portal
cannot drink from fountain, sink or surrounding water while swallowed
don't hallucinate anything for an exploding black light as it dies
Platform- and/or Interface-Specific Fixes

View File

@@ -1826,7 +1826,7 @@ register struct monst *mtmp;
register struct attack *mattk;
boolean ufound;
{
boolean physical_damage = TRUE;
boolean physical_damage = TRUE, kill_agr = TRUE;
if (mtmp->mcan) return(0);
@@ -1890,6 +1890,9 @@ common:
boolean chg;
if (!Hallucination)
You("are caught in a blast of kaleidoscopic light!");
/* avoid hallucinating the black light as it dies */
mondead(mtmp); /* remove it from map now */
kill_agr = FALSE; /* already killed (maybe lifesaved) */
chg = make_hallucinated(HHallucination + (long)tmp,FALSE,0L);
You("%s.", chg ? "are freaked out" : "seem unaffected");
}
@@ -1903,10 +1906,9 @@ common:
ugolemeffects((int)mattk->adtyp, tmp);
}
}
mondead(mtmp);
if (kill_agr) mondead(mtmp);
wake_nearto(mtmp->mx, mtmp->my, 7*7);
if (mtmp->mhp > 0) return(0);
return(2); /* it dies */
return (mtmp->mhp > 0) ? 0 : 2;
}
int