address #H5590 - paranoid_confirm vs lycanthropy
Polymorph control gives the player a chance to accept or reject a form change due to lycanthropy, but if it occurs during combat or movement the player might type 'y' before realizing that the prompt is pending. Provide a paranoid_confirmation setting for 'Were-change' to allow a player to require "yes" instead of 'y' for that. The existing setting 'wand' is renamed to 'wand-break' and now requires at least two letters in the config file options instead of just 1. The spelling of its synonym is changed from 'breakwand' to 'break-wand'; it can be shorted to as few as 2 letters (same as before) but if more than 5 are present, the new dash is required. Both 'wand-break' and 'Were-change' are placed before 'pray' in the 'O' menu for paranoid_confirmation so that all the "yes" vs 'y' settings are grouped together. Bonus fixes: Reverting from were-critter form to human (due to timeout) did not give a player with polymorph control the option of remaining in creature form; now it does. The 'O' command's menu would not show "wand" (now "wand-break") in the current value of paranoid_confirmation. (A post 3.6.0 issue, so no fixes entry included.) The revised Guidebook.mn has been tested; Guidebook.tex has not.
This commit is contained in:
+6
-3
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 were.c $NHDT-Date: 1432512763 2015/05/25 00:12:43 $ $NHDT-Branch: master $:$NHDT-Revision: 1.18 $ */
|
||||
/* NetHack 3.6 were.c $NHDT-Date: 1505214877 2017/09/12 11:14:37 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.21 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -183,7 +183,7 @@ you_were()
|
||||
/* `+4' => skip "were" prefix to get name of beast */
|
||||
Sprintf(qbuf, "Do you want to change into %s?",
|
||||
an(mons[u.ulycn].mname + 4));
|
||||
if (yn(qbuf) == 'n')
|
||||
if (!paranoid_query(ParanoidWerechange, qbuf))
|
||||
return;
|
||||
}
|
||||
(void) polymon(u.ulycn);
|
||||
@@ -200,8 +200,11 @@ boolean purify;
|
||||
set_ulycn(NON_PM); /* cure lycanthropy */
|
||||
}
|
||||
if (!Unchanging && is_were(youmonst.data)
|
||||
&& (!controllable_poly || yn("Remain in beast form?") == 'n'))
|
||||
&& (!controllable_poly
|
||||
|| !paranoid_query(ParanoidWerechange, "Remain in beast form?")))
|
||||
rehumanize();
|
||||
else if (is_were(youmonst.data) && !u.mtimedone)
|
||||
u.mtimedone = rn1(200, 200); /* 40% of initial were change */
|
||||
}
|
||||
|
||||
/* lycanthropy is being caught or cured, but no shape change is involved */
|
||||
|
||||
Reference in New Issue
Block a user