From 43f42b35e6eb76254631f1369cd5725bad4fbc4f Mon Sep 17 00:00:00 2001 From: vultur-cadens Date: Wed, 27 Sep 2023 20:36:19 -0700 Subject: [PATCH] potion of sickness hit effect The potion of sickness would previously always print the message " looks rather ill." when hitting a non-poison-resistant monster, even if all effects were resisted due to monster magic resistance. To make the potion more useful against high-MR monsters, this change removes the dependence on monster MR, but also removes the halving of maximum HP to prevent it from being overpowered. Hitting with a potion of sickness now reliably halves only the current HP of non-poison-resistant targets. The effect of poisoned projectiles, which can be created from a potion of sickness, is not resisted by monster MR, so it does not make much sense for the potion effect to be subject to monster MR. There is also code to make Pestilence suffer the sickness effect when hit by a potion of healing, but due to monster MR, it had no practical effect other than printing a misleading message. --- src/potion.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/potion.c b/src/potion.c index f8792e5ea..0ae6e8db8 100644 --- a/src/potion.c +++ b/src/potion.c @@ -1745,14 +1745,11 @@ potionhit(struct monst *mon, struct obj *obj, int how) break; } do_illness: - if ((mon->mhpmax > 3) && !resist(mon, POTION_CLASS, 0, NOTELL)) - mon->mhpmax /= 2; - if ((mon->mhp > 2) && !resist(mon, POTION_CLASS, 0, NOTELL)) + if (mon->mhp > 2) { mon->mhp /= 2; - if (mon->mhp > mon->mhpmax) - mon->mhp = mon->mhpmax; - if (canseemon(mon)) - pline("%s looks rather ill.", Monnam(mon)); + if (canseemon(mon)) + pline("%s looks rather ill.", Monnam(mon)); + } break; case POT_CONFUSION: case POT_BOOZE: