status_hilite for Xp and Exp by percent rules

Extend support for highlight rules that specify percentages from HP
and spell power to experience level and experience points.  For both
of those, the percentage is based on progress from the start of the
current Xp level to the start of the next Xp level.  100% isn't
possible so is used to enable highlighting a special case:  1 point
shy of next level, most likely to occur after losing a level.

This is something I had in mind a long time ago and then forgot all
about until fiddling with the final disclosure of experience points
recently.  It turned out to be trickier than expected because it needs
to check whether Xp should have a status update when it hasn't changed
but Exp has gone up.  The latter might hit a percentage threshold that
switches to another highlight rule.  Fortunately changes to Exp, at
least that aren't part of level gain or loss (which always trigger
status updating), are all funnelled through a single place (I hope).
This commit is contained in:
PatR
2019-07-02 17:39:23 -07:00
parent ad88205229
commit 1e7fb839a3
6 changed files with 165 additions and 29 deletions
+5 -1
View File
@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.81 $ $NHDT-Date: 1562056615 2019/07/02 08:36:55 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.83 $ $NHDT-Date: 1562114348 2019/07/03 00:39:08 $
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,
@@ -206,6 +206,10 @@ if you reach the edge of a level (relatively uncommon) and try to move off,
'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)
status highlighting using percentage rules now supported for experience level
and experience points; for both, percent is based on Exp progress from
the start of the current Xp level to the start of the next Xp level;
100% isn't possible so used as special case for next_Xp_lvl - 1 Exp_pt
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