From e18f4b65a97ee097ac77413fbf0146f8d206abf4 Mon Sep 17 00:00:00 2001 From: PatR Date: Mon, 26 Jan 2026 15:27:54 -0800 Subject: [PATCH] cure sickness feedback A thread on Reddit mentions that successfully casting the cure sickness spell when not Sick doesn't provide any feedback. Change it to report |You are not ill. in that situation. Also, give "you are no longer ill" feedback when actually curing sickness after status gets updated. --- src/spell.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/spell.c b/src/spell.c index 889f624ba..43c2acd51 100644 --- a/src/spell.c +++ b/src/spell.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 spell.c $NHDT-Date: 1762680996 2025/11/09 01:36:36 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.179 $ */ +/* NetHack 3.7 spell.c $NHDT-Date: 1769498874 2026/01/26 23:27:54 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.185 $ */ /* Copyright (c) M. Stephenson 1988 */ /* NetHack may be freely redistributed. See license for details. */ @@ -1549,13 +1549,23 @@ spelleffects(int spell_otyp, boolean atme, boolean force) case SPE_CURE_BLINDNESS: healup(0, 0, FALSE, TRUE); break; - case SPE_CURE_SICKNESS: - if (Sick) - You("are no longer ill."); - if (Slimed) - make_slimed(0L, "The slime disappears!"); + case SPE_CURE_SICKNESS: { + boolean was_sick = !!Sick, was_slimed = !!Slimed; + + /* cure conditions (which updates status) before feedback */ healup(0, 0, TRUE, FALSE); + /* + * Sick + !Slimed -- You are no longer ill. + * !Sick + !Slimed -- You are not ill. + * !Sick + Slimed -- The slime disappears. + * Sick + Slimed -- You are no longer ill. The slime disappears. + */ + if (was_sick || !was_slimed) + You("are %s ill.", was_sick ? "no longer" : "not"); + if (was_slimed) + make_slimed(0L, "The slime disappears!"); break; + } case SPE_CREATE_FAMILIAR: (void) make_familiar((struct obj *) 0, u.ux, u.uy, FALSE); break;