From f83a57c5bf76f1947a26021bd21249b1e2aa57b9 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Tue, 3 Oct 2023 20:57:26 +0300 Subject: [PATCH] Tweak wand of make invisible and potion of invisibility Wand of make invisible doesn't make you permanently invisible, just for a short duration. Potion of invisibility makes you invisible for much longer period, or if blessed, has a small chance of giving permanent invisibility. This makes the wand actually useful, and improves the spell too. --- doc/fixes3-7-0.txt | 1 + src/potion.c | 4 ++-- src/zap.c | 6 +----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 029b552a6..e7150921e 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -1252,6 +1252,7 @@ wand of probing reveals tin contents steam vortices and fog clouds leave steam clouds behind fog clouds maintain any clouds they are in, even poisonous ones bone devils summon skeletons +adjust wand of make invisible and potion of invisibility effects Fixes to 3.7.0-x General Problems Exposed Via git Repository diff --git a/src/potion.c b/src/potion.c index 40df5d931..2bef884fc 100644 --- a/src/potion.c +++ b/src/potion.c @@ -806,10 +806,10 @@ peffect_invisibility(struct obj *otmp) } else { self_invis_message(); } - if (otmp->blessed) + if (otmp->blessed && !rn2(HInvis ? 15 : 30)) HInvis |= FROMOUTSIDE; else - incr_itimeout(&HInvis, rn1(15, 31)); + incr_itimeout(&HInvis, d(6 - 3 * bcsign(otmp), 100) + 100); newsym(u.ux, u.uy); /* update position */ if (otmp->cursed) { pline("For some reason, you feel your presence is known."); diff --git a/src/zap.c b/src/zap.c index 68b6662ec..b7f124bf3 100644 --- a/src/zap.c +++ b/src/zap.c @@ -2707,11 +2707,7 @@ zapyourself(struct obj *obj, boolean ordinary) You_feel("rather itchy under %s.", yname(uarmc)); break; } - if (ordinary || !rn2(10)) { /* permanent */ - HInvis |= FROMOUTSIDE; - } else { /* temporary */ - incr_itimeout(&HInvis, d(obj->spe, 250)); - } + incr_itimeout(&HInvis, rn1(15, 31)); if (msg) { learn_it = TRUE; newsym(u.ux, u.uy);