github PR #259 - paranoid_confirmation:trap

Fairly old pull request from copperwater:  add new paranoid_confirm
setting 'trap'.

The old commit suffered from bit rot and merging needed too much
fixing up despite there not being many bands of change in the commit's
diffs.  I ultimately redid it from scratch, although the two biggest
chunks of code started with copy+paste of the pull request's commit.

It operates like paranoid:pray.  Setting paranoid:trap adds a new
"Really step into <trap>?" y/n prompt when attempting to move
into/onto a known trap, even if an object covers it on the map.
Setting both 'paranoid:Confirm trap' turns that into a yes/no prompt.
(Adding 'Confirm' affects other paranoid confirmations; in addition
to requiring yes<return> rather than just y to accept, it also forces
no<return> to reject.)

However, moving into a known trap that is considered to be harmless
behaves as if no trap was present.  Some of the trap classification
might be out of date; several types of traps have undergone changes
since implementation of the original pull request, notably anti-magic
field.  When the hero is hallucinating, all known traps are considered
harmful since the map no longer reliably describes them.

Preceding a movement command with the 'm' prefix also behaves as if
no trap was present, bypassing confirmation for that move, similar to
how paranoid:swim currently behaves.  Being stunned or confused also
behaves as if no trap was present, taking priority over hallucination.

This updates the documentation.

Supersedes #259
Closes #259
This commit is contained in:
PatR
2023-09-08 15:55:31 -07:00
parent 33d85bfe08
commit 1a64ee1c28
10 changed files with 248 additions and 11 deletions

View File

@@ -46,7 +46,7 @@
\author{Original version - Eric S. Raymond\\
(Edited and expanded for 3.7.0 by Mike Stephenson and others)}
%DO NOT REMOVE NH_DATESUB \date{DATE(%B %-d, %Y)}
\date{August 5, 2023}
\date{September 8, 2023}
\maketitle
@@ -4646,7 +4646,7 @@ a peaceful monster;
\item[{\tt wand-break}]
require ``{\tt yes}'' rather than `{\tt y}' to confirm breaking
a wand with the {\it apply} command;
\item[{\tt eating}]
\item[{\tt eating~}]
require ``{\tt yes}'' rather than `{\tt y}' to confirm whether to
continue eating;
\item[{\tt Were-change}]
@@ -4656,6 +4656,11 @@ to lycanthropy when hero has polymorph control;
require `{\tt y}' to confirm an attempt to pray rather
than immediately praying; on by default;
(to require ``yes'' rather than just `y', set Confirm too);
\item[{\tt trap~~~}]
require `{\tt y}' to confirm an attempt to move into or onto a known trap,
unless doing so is considered to be harmless;
(to require ``yes'' rather than just `y', set Confirm too);
confirmation can be skipped by using the `{\tt m}' movement prefix;
\item[{\tt swim~~~}]
prevent walking into water or lava; on by default; (to deliberately step
onto/into such terrain when this is set, use the `{\tt m}'