diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index ebbaf82ba..9f56a0e83 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -981,6 +981,8 @@ allow cutting a known spider web with wielded weapon by force-fighting the web holes and trapdoors have a fixed exit level recent changes to losedogs() could result in an infinite loop when migrating monsters try to arrive as hero moves to a different level +when invisible without see invisible you could see your hands glowing red + after reading a scroll of confuse monster and delivering melee hits Fixes to 3.7.0-x Problems that Were Exposed Via git Repository diff --git a/src/read.c b/src/read.c index 3299ce2bd..50cc1611f 100644 --- a/src/read.c +++ b/src/read.c @@ -1273,9 +1273,10 @@ static void seffect_confuse_monster(struct obj **sobjp) { struct obj *sobj = *sobjp; - boolean sblessed = sobj->blessed; - boolean scursed = sobj->cursed; - boolean confused = (Confusion != 0); + boolean sblessed = sobj->blessed, + scursed = sobj->cursed, + confused = (Confusion != 0), + altfeedback = (Blind || Invisible); if (g.youmonst.data->mlet != S_HUMAN || scursed) { if (!HConfusion) @@ -1284,36 +1285,38 @@ seffect_confuse_monster(struct obj **sobjp) } else if (confused) { if (!sblessed) { Your("%s begin to %s%s.", makeplural(body_part(HAND)), - Blind ? "tingle" : "glow ", - Blind ? "" : hcolor(NH_PURPLE)); + altfeedback ? "tingle" : "glow ", + altfeedback ? "" : hcolor(NH_PURPLE)); make_confused(HConfusion + rnd(100), FALSE); } else { pline("A %s%s surrounds your %s.", - Blind ? "" : hcolor(NH_RED), - Blind ? "faint buzz" : " glow", body_part(HEAD)); + altfeedback ? "" : hcolor(NH_RED), + altfeedback ? "faint buzz" : " glow", body_part(HEAD)); make_confused(0L, TRUE); } } else { + int incr = 0; + if (!sblessed) { Your("%s%s %s%s.", makeplural(body_part(HAND)), - Blind ? "" : " begin to glow", - Blind ? (const char *) "tingle" : hcolor(NH_RED), + altfeedback ? "" : " begin to glow", + altfeedback ? (const char *) "tingle" : hcolor(NH_RED), u.umconf ? " even more" : ""); - u.umconf++; + incr = rnd(2); } else { - if (Blind) + if (altfeedback) Your("%s tingle %s sharply.", makeplural(body_part(HAND)), u.umconf ? "even more" : "very"); else - Your("%s glow a%s brilliant %s.", + Your("%s glow %s brilliant %s.", makeplural(body_part(HAND)), - u.umconf ? "n even more" : "", hcolor(NH_RED)); - /* after a while, repeated uses become less effective */ - if (u.umconf >= 40) - u.umconf++; - else - u.umconf += rn1(8, 2); + u.umconf ? "an even more" : "a", hcolor(NH_RED)); + incr = rn1(8, 2); } + /* after a while, repeated uses become less effective */ + if (u.umconf >= 40) + incr = 1; + u.umconf += (unsigned) incr; } } diff --git a/src/uhitm.c b/src/uhitm.c index 9a6036bf6..927e26e19 100644 --- a/src/uhitm.c +++ b/src/uhitm.c @@ -5435,17 +5435,21 @@ RESTORE_WARNING_FORMAT_NONLITERAL static void nohandglow(struct monst *mon) { - char *hands = makeplural(body_part(HAND)); + char *hands; + boolean altfeedback; if (!u.umconf || mon->mconf) return; + + hands = makeplural(body_part(HAND)); + altfeedback = (Blind || Invisible); /* Invisible == Invis && !See_invis */ if (u.umconf == 1) { - if (Blind) + if (altfeedback) Your("%s stop tingling.", hands); else Your("%s stop glowing %s.", hands, hcolor(NH_RED)); } else { - if (Blind) + if (altfeedback) pline_The("tingling in your %s lessens.", hands); else Your("%s no longer glow so brightly %s.", hands, hcolor(NH_RED));