attributes disclosure: experience points

Wizard mode shows the number of points needed to reach the next level
(unless already maxxed out at 30) for ^X and end of game disclosure.
Do it in normal play for the latter too.  (I think it would ok to do
that for ^X too but haven't gone that far.)

Even when it was wizard mode only, the phrasing for past tense had a
minor grammar bug, and it could make the line a little too long for
tty and curses (not sure about others) when level was high, resulting
in wrapped text.  That looked bad for tty, which first tries removing
indentation (just 1 space in this case), making that line outdented
as well as wrapped.  So change the phrasing slightly when experience
level is 'too high'.  I had a version which formatted, measured, and
re-formatted if necessary but that was overkill; simple hardcoded
rephrasing suffices particularly when measuring was against assumed
display width (80) rather than actual width.
This commit is contained in:
PatR
2019-06-30 10:51:00 -07:00
committed by Pasi Kallinen
parent ee70762c69
commit 3e029d2900
2 changed files with 25 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.78 $ $NHDT-Date: 1561766416 2019/06/29 00:00:16 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.79 $ $NHDT-Date: 1561917056 2019/06/30 17:50:56 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -92,6 +92,8 @@ wizard mode ^I with 'perm_invent' On would unintentionally filter the content
change #adjust to treat carrying only gold as not having anything to adjust
saving bones with 'perm_invent' On could result in "Bad fruit #N" warnings
update persistent inventory window immediately if 'sortpack' option is toggled
grammar bit for wizard mode final disclosure; attribute section could show
"You had N experience points, 1 more were needed to attain level X+1."
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
@@ -196,6 +198,9 @@ classify sources as released, beta, or work-in-progress via NH_DEVEL_STATUS
rather than just released vs beta via BETA
if you reach the edge of a level (relatively uncommon) and try to move off,
report that you can't go farther if the 'mention_walls' option is set
'attributes' disclosure at end of game includes number of experience points
that were needed to reach the next experience level (new for normal
play and explore mode; previously only shown for wizard mode)
wizard-mode: display effect to show where an unseen wished-for monster landed
curses: enable latent mouse support
curses: give menus and text windows a minimum size of 5x25 since tiny ones can

View File

@@ -1977,19 +1977,28 @@ int final;
enlght_line(You_, "entered ", buf, "");
}
if (!Upolyd) {
/* flags.showexp does not matter */
int ulvl = (int) u.ulevel;
/* [flags.showexp currently does not matter; should it?] */
/* experience level is already shown above */
Sprintf(buf, "%-1ld experience point%s", u.uexp, plur(u.uexp));
if (wizard) {
if (u.ulevel < 30) {
int ulvl = (int) u.ulevel;
long nxtlvl = newuexp(ulvl);
/* long oldlvl = (ulvl > 1) ? newuexp(ulvl - 1) : 0; */
/* TODO?
* Remove wizard-mode restriction since patient players can
* determine the numbers needed without resorting to spoilers
* (even before this started being disclosed for 'final';
* just enable 'showexp' and look at normal status lines
* after drinking gain level potions or eating wraith corpses
* or being level-drained by vampires).
*/
if (ulvl < 30 && (final || wizard)) {
long nxtlvl = newuexp(ulvl), delta = nxtlvl - u.uexp;
Sprintf(eos(buf), ", %ld %s%sneeded to attain level %d",
(nxtlvl - u.uexp), (u.uexp > 0) ? "more " : "",
!final ? "" : "were ", (ulvl + 1));
}
Sprintf(eos(buf), ", %ld %s%sneeded %s level %d",
delta, (u.uexp > 0) ? "more " : "",
/* present tense=="needed", past tense=="were needed" */
!final ? "" : (delta == 1L) ? "was " : "were ",
/* "for": grammatically iffy but less likely to wrap */
(ulvl < 18) ? "to attain" : "for", (ulvl + 1));
}
you_have(buf, "");
}