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:
+18
-6
@@ -1,4 +1,4 @@
|
|||||||
.\" $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.224 $ $NHDT-Date: 1498078870 2017/06/21 21:01:10 $
|
.\" $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.233 $ $NHDT-Date: 1505214878 2017/09/12 11:14:38 $
|
||||||
.ds h0 "NetHack Guidebook
|
.ds h0 "NetHack Guidebook
|
||||||
.ds h1
|
.ds h1
|
||||||
.ds h2 %
|
.ds h2 %
|
||||||
@@ -611,6 +611,9 @@ location other than the current position.
|
|||||||
Wait or rest, do nothing for one turn.
|
Wait or rest, do nothing for one turn.
|
||||||
.lp a
|
.lp a
|
||||||
Apply (use) a tool (pick-axe, key, lamp...).
|
Apply (use) a tool (pick-axe, key, lamp...).
|
||||||
|
.lp ""
|
||||||
|
If used on a wand, that wand will be broken, releasing its magic in the
|
||||||
|
process. Confirmation is required.
|
||||||
.lp A
|
.lp A
|
||||||
Remove one or more worn items, such as armor.
|
Remove one or more worn items, such as armor.
|
||||||
.lp ""
|
.lp ""
|
||||||
@@ -926,10 +929,16 @@ choosing the item to adjust, enter a count prior to its letter.
|
|||||||
.lp #annotate
|
.lp #annotate
|
||||||
Allows you to specify one line of text to associate with the current
|
Allows you to specify one line of text to associate with the current
|
||||||
dungeon level. All levels with annotations are displayed by the
|
dungeon level. All levels with annotations are displayed by the
|
||||||
``#overview'' command. Autocompletes. Default key is 'M-A', and '^N' if number_pad is on.
|
``#overview'' command. Autocompletes. Default key is 'M-A', and '^N'
|
||||||
|
if number_pad is on.
|
||||||
.lp #apply
|
.lp #apply
|
||||||
Apply (use) a tool such as a pick-axe, a key, or a lamp. Default key is 'a'.
|
Apply (use) a tool such as a pick-axe, a key, or a lamp. Default key is 'a'.
|
||||||
If the tool used acts on items on the floor, using the `m' prefix skips those items.
|
.lp ""
|
||||||
|
If the tool used acts on items on the floor, using the `m' prefix skips
|
||||||
|
those items.
|
||||||
|
.lp ""
|
||||||
|
If used on a wand, that wand will be broken, releasing its magic in the
|
||||||
|
process. Confirmation is required.
|
||||||
.lp #attributes
|
.lp #attributes
|
||||||
Show your attributes. Default key is '^X'.
|
Show your attributes. Default key is '^X'.
|
||||||
.lp #autopickup
|
.lp #autopickup
|
||||||
@@ -2726,7 +2735,7 @@ at the end from the previous order.
|
|||||||
.lp paranoid_confirmation
|
.lp paranoid_confirmation
|
||||||
A space separated list of specific situations where alternate
|
A space separated list of specific situations where alternate
|
||||||
prompting is desired. The default is paranoid_confirmation:pray.
|
prompting is desired. The default is paranoid_confirmation:pray.
|
||||||
.PS Confirm
|
.PS Were-change
|
||||||
.PL Confirm
|
.PL Confirm
|
||||||
for any prompts which are set to require "yes" rather than 'y', also
|
for any prompts which are set to require "yes" rather than 'y', also
|
||||||
require "no" to reject instead of accepting any non-yes response as no
|
require "no" to reject instead of accepting any non-yes response as no
|
||||||
@@ -2741,11 +2750,14 @@ require "yes" rather than 'y' to confirm saving
|
|||||||
bones data when dying in debug mode;
|
bones data when dying in debug mode;
|
||||||
.PL attack
|
.PL attack
|
||||||
require "yes" rather than 'y' to confirm attacking a peaceful monster;
|
require "yes" rather than 'y' to confirm attacking a peaceful monster;
|
||||||
|
.PL wand-break
|
||||||
|
require "yes" rather than 'y' to confirm breaking a wand;
|
||||||
|
.PL Were-change
|
||||||
|
require "yes" rather than 'y' to confirm changing form due to lycanthropy
|
||||||
|
when hero has polymorph control;
|
||||||
.PL pray
|
.PL pray
|
||||||
require 'y' to confirm an attempt to pray rather
|
require 'y' to confirm an attempt to pray rather
|
||||||
than immediately praying; on by default;
|
than immediately praying; on by default;
|
||||||
.PL wand
|
|
||||||
require "yes" rather than 'y' to confirm breaking a wand;
|
|
||||||
.PL Remove
|
.PL Remove
|
||||||
require selection from inventory for 'R' and 'T'
|
require selection from inventory for 'R' and 'T'
|
||||||
commands even when wearing just one applicable item.
|
commands even when wearing just one applicable item.
|
||||||
|
|||||||
+19
-8
@@ -738,7 +738,10 @@ location other than the current position.
|
|||||||
Wait or rest, do nothing for one turn.
|
Wait or rest, do nothing for one turn.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\tb{a}]
|
\item[\tb{a}]
|
||||||
Apply (use) a tool (pick-axe, key, lamp \ldots).
|
Apply (use) a tool (pick-axe, key, lamp \ldots).\\
|
||||||
|
%.lp ""
|
||||||
|
If used on a wand, that wand will be broken, releasing its magic in the
|
||||||
|
process. Confirmation is required.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\tb{A}]
|
\item[\tb{A}]
|
||||||
Remove one or more worn items, such as armor.\\
|
Remove one or more worn items, such as armor.\\
|
||||||
@@ -1112,9 +1115,12 @@ and '{\tt \^{}N}' if {\it number\verb+_+pad\/} is on.
|
|||||||
%.lp
|
%.lp
|
||||||
\item[\tb{\#apply}]
|
\item[\tb{\#apply}]
|
||||||
Apply (use) a tool such as a pick-axe, a key, or a lamp.
|
Apply (use) a tool such as a pick-axe, a key, or a lamp.
|
||||||
Default key is '{\tt a}'.
|
Default key is '{\tt a}'.\\
|
||||||
If the tool used acts on items on the floor, using the `{\tt m}' prefix
|
If the tool used acts on items on the floor, using the `{\tt m}' prefix
|
||||||
skips those items.
|
skips those items.\\
|
||||||
|
%.lp ""
|
||||||
|
If used on a wand, that wand will be broken, releasing its magic in the
|
||||||
|
process. Confirmation is required.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\tb{\#attributes}]
|
\item[\tb{\#attributes}]
|
||||||
Show your attributes. Default key is '{\tt \^{}X}'.\\
|
Show your attributes. Default key is '{\tt \^{}X}'.\\
|
||||||
@@ -3323,7 +3329,7 @@ prompting is desired. The default is ``{\it paranoid\verb+_+confirmation:pray}'
|
|||||||
%.sd
|
%.sd
|
||||||
%.si
|
%.si
|
||||||
\newlength{\pcwidth}
|
\newlength{\pcwidth}
|
||||||
\settowidth{\pcwidth}{\tt Confirm}
|
\settowidth{\pcwidth}{\tt Were-change}
|
||||||
\addtolength{\pcwidth}{\labelsep}
|
\addtolength{\pcwidth}{\labelsep}
|
||||||
\blist{\leftmargin \pcwidth \topsep 1mm \itemsep 0mm}
|
\blist{\leftmargin \pcwidth \topsep 1mm \itemsep 0mm}
|
||||||
\item[{\tt Confirm}]
|
\item[{\tt Confirm}]
|
||||||
@@ -3342,13 +3348,18 @@ bones data when dying in debug mode
|
|||||||
\item[{\tt attack~}]
|
\item[{\tt attack~}]
|
||||||
require ``{\tt yes}'' rather than `{\tt y}' to confirm attacking
|
require ``{\tt yes}'' rather than `{\tt y}' to confirm attacking
|
||||||
a peaceful monster;
|
a peaceful monster;
|
||||||
|
\item[{\tt wand-break}]
|
||||||
|
require ``{\tt yes}'' rather than `{\tt y}' to confirm breaking
|
||||||
|
a wand;
|
||||||
|
\item[{\tt Were-change}]
|
||||||
|
require ``{\tt yes}'' rather than `{\tt y}' to confirm changing form
|
||||||
|
due to lycanthropy
|
||||||
|
when hero has polymorph control;
|
||||||
\item[{\tt pray~~~}]
|
\item[{\tt pray~~~}]
|
||||||
require `{\tt y}' to confirm an attempt to pray rather
|
require `{\tt y}' to confirm an attempt to pray rather
|
||||||
than immediately praying; on by default;
|
than immediately praying; on by default;
|
||||||
\item[{\tt wand}]
|
\item[{\tt Remove~}] require selection from inventory for `{\tt R}'
|
||||||
require ``{\tt yes}'' rather than `{\tt y}' to confirm breaking
|
and `{\tt T}'
|
||||||
a wand;
|
|
||||||
\item[{\tt Remove~}] require selection from inventory for `{\tt R}' and `{\tt T}'
|
|
||||||
commands even when wearing just one applicable item.
|
commands even when wearing just one applicable item.
|
||||||
\item[{\tt all~~~~}]
|
\item[{\tt all~~~~}]
|
||||||
turn on all of the above.
|
turn on all of the above.
|
||||||
|
|||||||
@@ -639,6 +639,9 @@ blinded hero or monster who breathes vapor from broken potion of healing,
|
|||||||
sysconf definition BONES_POOLS to allow more bones files per level
|
sysconf definition BONES_POOLS to allow more bones files per level
|
||||||
blessed scroll of fire lets you choose explosion location like stinking cloud
|
blessed scroll of fire lets you choose explosion location like stinking cloud
|
||||||
optional sections in the config file, selected with CHOOSE
|
optional sections in the config file, selected with CHOOSE
|
||||||
|
new paranoid_confirm settings: wand-break to require "yes" rather than 'y'
|
||||||
|
to break a wand via (a)pply, and Were-change to require "yes" rather
|
||||||
|
than 'y' when hero inflicted with lycanthropy has polymorph control
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific New Features
|
Platform- and/or Interface-Specific New Features
|
||||||
|
|||||||
+14
-10
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 flag.h $NHDT-Date: 1498078871 2017/06/21 21:01:11 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.119 $ */
|
/* NetHack 3.6 flag.h $NHDT-Date: 1505214875 2017/09/12 11:14:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.123 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -60,15 +60,16 @@ struct flag {
|
|||||||
unsigned long suppress_alert;
|
unsigned long suppress_alert;
|
||||||
#define NEW_MOON 0
|
#define NEW_MOON 0
|
||||||
#define FULL_MOON 4
|
#define FULL_MOON 4
|
||||||
int paranoia_bits; /* alternate confirmation prompting */
|
unsigned paranoia_bits; /* alternate confirmation prompting */
|
||||||
#define PARANOID_CONFIRM 0x01
|
#define PARANOID_CONFIRM 0x0001
|
||||||
#define PARANOID_QUIT 0x02
|
#define PARANOID_QUIT 0x0002
|
||||||
#define PARANOID_DIE 0x04
|
#define PARANOID_DIE 0x0004
|
||||||
#define PARANOID_BONES 0x08
|
#define PARANOID_BONES 0x0008
|
||||||
#define PARANOID_HIT 0x10
|
#define PARANOID_HIT 0x0010
|
||||||
#define PARANOID_PRAY 0x20
|
#define PARANOID_PRAY 0x0020
|
||||||
#define PARANOID_REMOVE 0x40
|
#define PARANOID_REMOVE 0x0040
|
||||||
#define PARANOID_BREAKWAND 0x80
|
#define PARANOID_BREAKWAND 0x0080
|
||||||
|
#define PARANOID_WERECHANGE 0x0100
|
||||||
int pickup_burden; /* maximum burden before prompt */
|
int pickup_burden; /* maximum burden before prompt */
|
||||||
int pile_limit; /* controls feedback when walking over objects */
|
int pile_limit; /* controls feedback when walking over objects */
|
||||||
char inv_order[MAXOCLASSES];
|
char inv_order[MAXOCLASSES];
|
||||||
@@ -441,6 +442,9 @@ enum runmode_types {
|
|||||||
#define ParanoidRemove ((flags.paranoia_bits & PARANOID_REMOVE) != 0)
|
#define ParanoidRemove ((flags.paranoia_bits & PARANOID_REMOVE) != 0)
|
||||||
/* breakwand: Applying a wand */
|
/* breakwand: Applying a wand */
|
||||||
#define ParanoidBreakwand ((flags.paranoia_bits & PARANOID_BREAKWAND) != 0)
|
#define ParanoidBreakwand ((flags.paranoia_bits & PARANOID_BREAKWAND) != 0)
|
||||||
|
/* werechange: accepting randomly timed werecreature change to transform
|
||||||
|
from human to creature or vice versa while having polymorph control */
|
||||||
|
#define ParanoidWerechange ((flags.paranoia_bits & PARANOID_WERECHANGE) != 0)
|
||||||
|
|
||||||
/* command parsing, mainly dealing with number_pad handling;
|
/* command parsing, mainly dealing with number_pad handling;
|
||||||
not saved and restored */
|
not saved and restored */
|
||||||
|
|||||||
+14
-19
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 options.c $NHDT-Date: 1505084668 2017/09/10 23:04:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.301 $ */
|
/* NetHack 3.6 options.c $NHDT-Date: 1505214875 2017/09/12 11:14:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.302 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -1229,7 +1229,10 @@ STATIC_VAR const struct paranoia_opts {
|
|||||||
takes precedence and "all" isn't present in the interactive menu,
|
takes precedence and "all" isn't present in the interactive menu,
|
||||||
and "d"ie vs "d"eath, synonyms for each other so doesn't matter;
|
and "d"ie vs "d"eath, synonyms for each other so doesn't matter;
|
||||||
(also "p"ray vs "P"aranoia, "pray" takes precedence since "Paranoia"
|
(also "p"ray vs "P"aranoia, "pray" takes precedence since "Paranoia"
|
||||||
is just a synonym for "Confirm") */
|
is just a synonym for "Confirm"); "b"ones vs "br"eak-wand, the
|
||||||
|
latter requires at least two letters; "wand"-break vs "Were"-change,
|
||||||
|
both require at least two letters during config processing and use
|
||||||
|
case-senstivity for 'O's interactive menu */
|
||||||
{ PARANOID_CONFIRM, "Confirm", 1, "Paranoia", 2,
|
{ PARANOID_CONFIRM, "Confirm", 1, "Paranoia", 2,
|
||||||
"for \"yes\" confirmations, require \"no\" to reject" },
|
"for \"yes\" confirmations, require \"no\" to reject" },
|
||||||
{ PARANOID_QUIT, "quit", 1, "explore", 1,
|
{ PARANOID_QUIT, "quit", 1, "explore", 1,
|
||||||
@@ -1240,12 +1243,14 @@ STATIC_VAR const struct paranoia_opts {
|
|||||||
"yes vs y to save bones data when dying in debug mode" },
|
"yes vs y to save bones data when dying in debug mode" },
|
||||||
{ PARANOID_HIT, "attack", 1, "hit", 1,
|
{ PARANOID_HIT, "attack", 1, "hit", 1,
|
||||||
"yes vs y to attack a peaceful monster" },
|
"yes vs y to attack a peaceful monster" },
|
||||||
|
{ PARANOID_BREAKWAND, "wand-break", 2, "break-wand", 2,
|
||||||
|
"yes vs y to break a wand via (a)pply" },
|
||||||
|
{ PARANOID_WERECHANGE, "Were-change", 2, (const char *) 0, 0,
|
||||||
|
"yes vs y to change form when lycanthropy is controllable" },
|
||||||
{ PARANOID_PRAY, "pray", 1, 0, 0,
|
{ PARANOID_PRAY, "pray", 1, 0, 0,
|
||||||
"y to pray (supersedes old \"prayconfirm\" option)" },
|
"y to pray (supersedes old \"prayconfirm\" option)" },
|
||||||
{ PARANOID_REMOVE, "Remove", 1, "Takeoff", 1,
|
{ PARANOID_REMOVE, "Remove", 1, "Takeoff", 1,
|
||||||
"always pick from inventory for Remove and Takeoff" },
|
"always pick from inventory for Remove and Takeoff" },
|
||||||
{ PARANOID_BREAKWAND, "wand", 1, "breakwand", 2,
|
|
||||||
"yes vs y to break a wand" },
|
|
||||||
/* for config file parsing; interactive menu skips these */
|
/* for config file parsing; interactive menu skips these */
|
||||||
{ 0, "none", 4, 0, 0, 0 }, /* require full word match */
|
{ 0, "none", 4, 0, 0, 0 }, /* require full word match */
|
||||||
{ ~0, "all", 3, 0, 0, 0 }, /* ditto */
|
{ ~0, "all", 3, 0, 0, 0 }, /* ditto */
|
||||||
@@ -2712,7 +2717,8 @@ boolean tinitial, tfrom_file;
|
|||||||
if (i == SIZE(paranoia)) {
|
if (i == SIZE(paranoia)) {
|
||||||
/* didn't match anything, so arg is bad;
|
/* didn't match anything, so arg is bad;
|
||||||
any flags already set will stay set */
|
any flags already set will stay set */
|
||||||
config_error_add("Unknown %s parameter '%s'", fullname, op);
|
config_error_add("Unknown %s parameter '%s'",
|
||||||
|
fullname, op);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
/* move on to next token */
|
/* move on to next token */
|
||||||
@@ -5210,20 +5216,9 @@ char *buf;
|
|||||||
char tmpbuf[QBUFSZ];
|
char tmpbuf[QBUFSZ];
|
||||||
|
|
||||||
tmpbuf[0] = '\0';
|
tmpbuf[0] = '\0';
|
||||||
if (ParanoidConfirm)
|
for (i = 0; paranoia[i].flagmask != 0; ++i)
|
||||||
Strcat(tmpbuf, " Confirm");
|
if (flags.paranoia_bits & paranoia[i].flagmask)
|
||||||
if (ParanoidQuit)
|
Sprintf(eos(tmpbuf), " %s", paranoia[i].argname);
|
||||||
Strcat(tmpbuf, " quit");
|
|
||||||
if (ParanoidDie)
|
|
||||||
Strcat(tmpbuf, " die");
|
|
||||||
if (ParanoidBones)
|
|
||||||
Strcat(tmpbuf, " bones");
|
|
||||||
if (ParanoidHit)
|
|
||||||
Strcat(tmpbuf, " attack");
|
|
||||||
if (ParanoidPray)
|
|
||||||
Strcat(tmpbuf, " pray");
|
|
||||||
if (ParanoidRemove)
|
|
||||||
Strcat(tmpbuf, " Remove");
|
|
||||||
Strcpy(buf, tmpbuf[0] ? &tmpbuf[1] : "none");
|
Strcpy(buf, tmpbuf[0] ? &tmpbuf[1] : "none");
|
||||||
} else if (!strcmp(optname, "pettype")) {
|
} else if (!strcmp(optname, "pettype")) {
|
||||||
Sprintf(buf, "%s", (preferred_pet == 'c') ? "cat"
|
Sprintf(buf, "%s", (preferred_pet == 'c') ? "cat"
|
||||||
|
|||||||
+3
-1
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 timeout.c $NHDT-Date: 1496619133 2017/06/04 23:32:13 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.71 $ */
|
/* NetHack 3.6 timeout.c $NHDT-Date: 1505214876 2017/09/12 11:14:36 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.75 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -363,6 +363,8 @@ nh_timeout()
|
|||||||
if (u.mtimedone && !--u.mtimedone) {
|
if (u.mtimedone && !--u.mtimedone) {
|
||||||
if (Unchanging)
|
if (Unchanging)
|
||||||
u.mtimedone = rnd(100 * youmonst.data->mlevel + 1);
|
u.mtimedone = rnd(100 * youmonst.data->mlevel + 1);
|
||||||
|
else if (is_were(youmonst.data))
|
||||||
|
you_unwere(FALSE); /* if polycontrl, asks whether to rehumanize */
|
||||||
else
|
else
|
||||||
rehumanize();
|
rehumanize();
|
||||||
}
|
}
|
||||||
|
|||||||
+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. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ you_were()
|
|||||||
/* `+4' => skip "were" prefix to get name of beast */
|
/* `+4' => skip "were" prefix to get name of beast */
|
||||||
Sprintf(qbuf, "Do you want to change into %s?",
|
Sprintf(qbuf, "Do you want to change into %s?",
|
||||||
an(mons[u.ulycn].mname + 4));
|
an(mons[u.ulycn].mname + 4));
|
||||||
if (yn(qbuf) == 'n')
|
if (!paranoid_query(ParanoidWerechange, qbuf))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(void) polymon(u.ulycn);
|
(void) polymon(u.ulycn);
|
||||||
@@ -200,8 +200,11 @@ boolean purify;
|
|||||||
set_ulycn(NON_PM); /* cure lycanthropy */
|
set_ulycn(NON_PM); /* cure lycanthropy */
|
||||||
}
|
}
|
||||||
if (!Unchanging && is_were(youmonst.data)
|
if (!Unchanging && is_were(youmonst.data)
|
||||||
&& (!controllable_poly || yn("Remain in beast form?") == 'n'))
|
&& (!controllable_poly
|
||||||
|
|| !paranoid_query(ParanoidWerechange, "Remain in beast form?")))
|
||||||
rehumanize();
|
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 */
|
/* lycanthropy is being caught or cured, but no shape change is involved */
|
||||||
|
|||||||
Reference in New Issue
Block a user