From: Pasi Kallinen Date: Sun, 6 Feb 2022 15:52:40 +0000 (+0200) Subject: Magic traps can toggle intrinsic invisibility X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2bd43869564a9ec5621c8fc1c082cbd66f74817e;p=nethack Magic traps can toggle intrinsic invisibility Originally from Sporkhack by Derek Ray --- diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 6f7890927..7b891818c 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -768,9 +768,11 @@ have fake player monsters use verbalize instead of pline when reacting to chat fix mention_walls distinguishing unseen walls from solid stone don't push unknown boulders when moving in flush_screen, reorder the code slightly to complete the bot() and -timebot() calls prior to the window port call to place the cursor on the hero + timebot() calls prior to the window port call to place the cursor + on the hero +magic traps can toggle intrinsic invisibility + - Fixes to 3.7.0-x Problems that Were Exposed Via git Repository ------------------------------------------------------------------ fix compile when DLB isn't defined diff --git a/src/trap.c b/src/trap.c index e342c5e14..4b513c07e 100644 --- a/src/trap.c +++ b/src/trap.c @@ -3634,9 +3634,27 @@ domagictrap(void) } else { switch (fate) { case 10: - case 11: /* sometimes nothing happens */ break; + case 11: /* toggle intrinsic invisibility */ + You_hear("a low hum."); + if (!Invis) { + if (!Blind) + self_invis_message(); + } else if (!EInvis && !pm_invisible(g.youmonst.data)) { + if (!Blind) { + if (!See_invisible) + You("can see yourself again!"); + else + You_cant("see through yourself anymore."); + } + } else { + /* If we're invisible from another source */ + You_feel("a little more %s now.", HInvis ? "obvious" : "hidden"); + } + HInvis = HInvis ? 0 : HInvis | FROMOUTSIDE; + newsym(u.ux, u.uy); + break; case 12: /* a flash of fire */ dofiretrap((struct obj *) 0); break;