From 93cdf2b7f7a07e6b9652d251514bc349a0196ea4 Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Sat, 5 Jun 2004 22:16:00 +0000 Subject: [PATCH] potion of poison wrote: > It is a little odd that, if you are poison resistant, > potions of sickness can kill you if and only if they > are blessed. --- doc/fixes34.4 | 2 ++ src/potion.c | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 35fe38168..db8d70ed3 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -37,6 +37,8 @@ if you didn't see a rolling boulder fall into a pit, you only heard the sound fire trap was triggered twice in the same turn when melting ice was involved abandon the specialized djinn and ghost counters used for potion tuning and use the mvitals[].born field instead +if you were Poison_resistant, only a *blessed* potion of sickness caused + loss of hitpoints Platform- and/or Interface-Specific Fixes diff --git a/src/potion.c b/src/potion.c index 668e47dec..b7b1f2cc2 100644 --- a/src/potion.c +++ b/src/potion.c @@ -680,8 +680,13 @@ peffects(otmp) if (Role_if(PM_HEALER)) pline("Fortunately, you have been immunized."); else { + char contaminant[BUFSZ]; int typ = rn2(A_MAX); + Sprintf(contaminant, "%s%s", + (Poison_resistance) ? "mildly " : "", + (otmp->fromsink) ? "contaminated tap water" : + "contaminated potion"); if (!Fixed_abil) { poisontell(typ, FALSE); (void) adjattrib(typ, @@ -691,10 +696,14 @@ peffects(otmp) if(!Poison_resistance) { if (otmp->fromsink) losehp(rnd(10)+5*!!(otmp->cursed), - "contaminated tap water", KILLED_BY); + contaminant, KILLED_BY); else losehp(rnd(10)+5*!!(otmp->cursed), - "contaminated potion", KILLED_BY_AN); + contaminant, KILLED_BY_AN); + } else { + /* rnd loss is so that unblessed poorer than blessed */ + losehp(1 + rn2(2), contaminant, + (otmp->fromsink) ? KILLED_BY : KILLED_BY_AN); } exercise(A_CON, FALSE); } -- 2.50.1