Allow starting game as pauper, without any inventory
And also without spells, skills, or preidentified items. This also implies nudist. Breaks saves and bones.
This commit is contained in:
@@ -3465,6 +3465,8 @@ Blind from birth.
|
||||
Deaf from birth.
|
||||
.PL Nudist
|
||||
Never wore any armor.
|
||||
.PL Pauper
|
||||
Started out with no possessions.
|
||||
.PL Ascended
|
||||
Delivered the Amulet to its final destination.
|
||||
.PE
|
||||
@@ -3501,7 +3503,7 @@ instrument played closely
|
||||
enough\(embut not too close!\(emto
|
||||
the Castle level's drawbridge or can be given to you via prayer boon.
|
||||
.pg
|
||||
\fIBlind\fP, \fIDeaf\fP, and \fINudist\fP are also conducts, and they can only be
|
||||
\fIBlind\fP, \fIDeaf\fP, \fINudist\fP, and \FIPauper\fP are also conducts, and they can only be
|
||||
enabled by setting the correspondingly named option in NETHACKOPTIONS
|
||||
or run-time configuration file prior to game start.
|
||||
In the case of \fIBlind\fP and \fIDeaf\fP, the option also enforces the conduct.
|
||||
@@ -4396,6 +4398,8 @@ use the \(oq\f(CR+\fP\(cq form and list entries to be added by their name
|
||||
and entries to be removed by \(oq\f(CR!\fP\(cq and name.
|
||||
The positive (no \(oq!\(cq) and negative (with \(oq!\(cq) entries
|
||||
can be intermixed.
|
||||
.lp pauper
|
||||
Start the character with no possessions (default false). Persistent.
|
||||
.lp perm_invent
|
||||
If true, always display your current inventory in a window (default false).
|
||||
.lp ""
|
||||
|
||||
@@ -3731,6 +3731,8 @@ Blind from birth.
|
||||
Deaf from birth.
|
||||
\item[{\tt Nudist}]
|
||||
Never wore any armor.
|
||||
\item[{\tt Pauper}]
|
||||
Started out with no possessions.
|
||||
\item[{\tt Ascended}]
|
||||
Delivered the Amulet to its final destination.
|
||||
\elist
|
||||
@@ -3777,7 +3779,7 @@ enough---but not too close!---to
|
||||
the Castle level's drawbridge or can be given to you via prayer boon.
|
||||
|
||||
%.pg
|
||||
{\it Blind\/}, {\it Deaf\/}, and {\it Nudist\/} are also conducts, and they can only be
|
||||
{\it Blind\/}, {\it Deaf\/}, {\it Nudist\/}, and {\it Pauper\/} are also conducts, and they can only be
|
||||
enabled by setting the correspondingly named option in {\tt NETHACKOPTIONS}
|
||||
or run-time configuration file prior to game start.
|
||||
In the case of {\it Blind\/} and {\it Deaf\/}, the option also enforces the conduct.
|
||||
@@ -4794,6 +4796,9 @@ and entries to be removed by `{\tt !}' and name.
|
||||
The positive (no `!') and negative (with `!') entries
|
||||
can be intermixed.
|
||||
%.lp
|
||||
\item[\ib{pauper}]
|
||||
Start the character with no possessions (default false). Persistent.
|
||||
%.lp
|
||||
\item[\ib{perm\verb+_+invent}]
|
||||
If true, always display your current inventory in a window (default is false).
|
||||
%.lp ""
|
||||
|
||||
@@ -548,6 +548,9 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
||||
NHOPTC(paranoid_confirmation, Advanced, 28, opt_in, set_in_game,
|
||||
Yes, Yes, Yes, Yes, "prayconfirm",
|
||||
"extra prompting in certain situations")
|
||||
NHOPTB(pauper, Advanced, 0, opt_in, set_in_config,
|
||||
Off, Yes, No, No, NoAlias, &u.uroleplay.pauper, Term_False,
|
||||
"start your character without any items")
|
||||
NHOPTB(perm_invent, Advanced, 0, opt_in, set_in_game,
|
||||
Off, Yes, No, No, NoAlias, &iflags.perm_invent, Term_Off,
|
||||
"show persistent inventory window")
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* Incrementing EDITLEVEL can be used to force invalidation of old bones
|
||||
* and save files.
|
||||
*/
|
||||
#define EDITLEVEL 106
|
||||
#define EDITLEVEL 107
|
||||
|
||||
/*
|
||||
* Development status possibilities.
|
||||
|
||||
@@ -162,6 +162,7 @@ struct u_roleplay {
|
||||
boolean blind; /* permanently blind */
|
||||
boolean nudist; /* has not worn any armor, ever */
|
||||
boolean deaf; /* permanently deaf */
|
||||
boolean pauper; /* no starting inventory */
|
||||
long numbones; /* # of bones files loaded */
|
||||
};
|
||||
|
||||
|
||||
@@ -2061,6 +2061,8 @@ show_conduct(int final)
|
||||
you_have_been("deaf from birth");
|
||||
if (u.uroleplay.nudist)
|
||||
you_have_been("faithfully nudist");
|
||||
if (u.uroleplay.pauper)
|
||||
enl_msg(You_, "have gone", "started out", " without possessions", "");
|
||||
|
||||
if (!u.uconduct.food)
|
||||
enl_msg(You_, "have gone", "went", " without food", "");
|
||||
|
||||
@@ -5172,6 +5172,10 @@ optfn_boolean(
|
||||
|
||||
/* After the change */
|
||||
switch (optidx) {
|
||||
case opt_pauper:
|
||||
/* pauper implies nudist */
|
||||
u.uroleplay.nudist = u.uroleplay.pauper;
|
||||
break;
|
||||
case opt_ascii_map:
|
||||
iflags.wc_tiled_map = negated;
|
||||
break;
|
||||
|
||||
@@ -596,6 +596,7 @@ encode_extended_conducts(char *buf)
|
||||
add_achieveX(buf, "blind", u.uroleplay.blind);
|
||||
add_achieveX(buf, "deaf", u.uroleplay.deaf);
|
||||
add_achieveX(buf, "nudist", u.uroleplay.nudist);
|
||||
add_achieveX(buf, "pauper", u.uroleplay.pauper);
|
||||
add_achieveX(buf, "bonesless", !flags.bones);
|
||||
add_achieveX(buf, "petless", !u.uconduct.pets);
|
||||
|
||||
|
||||
@@ -559,6 +559,8 @@ static const struct def_skill Skill_W[] = {
|
||||
staticfn void
|
||||
knows_object(int obj)
|
||||
{
|
||||
if (u.uroleplay.pauper)
|
||||
return;
|
||||
discover_object(obj, TRUE, FALSE);
|
||||
objects[obj].oc_pre_discovered = 1; /* not a "discovery" */
|
||||
}
|
||||
@@ -571,6 +573,9 @@ knows_class(char sym)
|
||||
struct obj odummy, *o;
|
||||
int ct;
|
||||
|
||||
if (u.uroleplay.pauper)
|
||||
return;
|
||||
|
||||
odummy = cg.zeroobj;
|
||||
odummy.oclass = sym;
|
||||
o = &odummy; /* for use in various obj.h macros */
|
||||
@@ -1213,6 +1218,9 @@ ini_inv(struct trobj *trop)
|
||||
int otyp;
|
||||
boolean got_sp1 = FALSE; /* got a level 1 spellbook? */
|
||||
|
||||
if (u.uroleplay.pauper) /* pauper gets no items */
|
||||
return;
|
||||
|
||||
while (trop->trclass) {
|
||||
otyp = (int) trop->trotyp;
|
||||
if (otyp != UNDEF_TYP) {
|
||||
|
||||
Reference in New Issue
Block a user