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.
This commit is contained in:
PatR
2026-01-26 15:27:54 -08:00
parent 11bed1f55b
commit e18f4b65a9

View File

@@ -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;