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;