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