spell of protection feedback

From the newsgroup (subject: "3 xorn fixes"):  casting spell of
protection would report "the air around you begins to shimmer" even when
you were embedded in rock or swallowed.  It included a pointer to a patch;
I looked at that but ended up not using it.
This commit is contained in:
nethack.rankin
2006-12-07 05:27:18 +00:00
parent 1bb8545563
commit a29b06ac2f
2 changed files with 17 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)spell.c 3.5 2006/07/08 */
/* SCCS Id: @(#)spell.c 3.5 2006/12/06 */
/* Copyright (c) M. Stephenson 1988 */
/* NetHack may be freely redistributed. See license for details. */
@@ -704,16 +704,25 @@ cast_protection()
if (gain > 0) {
if (!Blind) {
const char *hgolden = hcolor(NH_GOLDEN);
int rmtyp;
const char *hgolden = hcolor(NH_GOLDEN), *atmosphere;
if (u.uspellprot)
if (u.uspellprot) {
pline_The("%s haze around you becomes more dense.",
hgolden);
else
} else {
rmtyp = levl[u.ux][u.uy].typ;
atmosphere = u.uswallow ?
((u.ustuck->data == &mons[PM_FOG_CLOUD]) ? "mist" :
is_whirly(u.ustuck->data) ? "maelstrom" :
is_animal(u.ustuck->data) ? "maw" : "ooze") :
u.uinwater ? "water" :
(rmtyp == CLOUD) ? "cloud" :
IS_TREE(rmtyp) ? "vegitation" :
IS_STWALL(rmtyp) ? "stone" : "air";
pline_The("%s around you begins to shimmer with %s haze.",
/*[ what about being inside solid rock while polyd? ]*/
(Underwater || Is_waterlevel(&u.uz)) ? "water" : "air",
an(hgolden));
atmosphere, an(hgolden));
}
}
u.uspellprot += gain;
u.uspmtime =