Hit points

From NetHackWiki
(Redirected from HP regeneration)
Jump to navigation Jump to search

Hit points, abbreviated to HP or hp, are a statistic in NetHack represent the life force of the hero and monsters alike.

Description

A hero or monster whose hit points reach zero will usually die, with the following exceptions:

  • Reaching 0 HP with a worn amulet of life saving will cause the amulet to activate, restoring the hero or monster wearing it to life and destroying the amulet unless they are in a non-living form.
  • A vampire that is shapeshifted into another form will arise in their base form if killed by any means.[1]
  • A hero that is polymorphed and has their HP reduced to 0 will return to base form, unless they are wearing an amulet of unchanging or have 0 HP in their base form as well.[2][3]
  • A player in wizard mode or explore mode can choose to have the hero survive when they would die from their HP reaching 0.

There are several forms of instant death that will kill a hero or monster regardless of their hit points at the time, and some such as stoning and intelligence drain can also kill even a polymorphed hero.

Both the hero and monsters will slowly recover or "regenerate" their hit points with the passage of time if they are below their maximum—this is different from the regeneration property, which accelerates this natural recovery and is an intrinsic that certain monsters have.

A user has suggested improving this page or section as follows:

"Consider moving information about HP impacting the hero's abilities and monster behavior here. Figure out historical information and where to place it."

Gaining and restoring hit points

There are several methods for a hero or monster to increase their current and maximum hit points:

  • Quaffing healing potions increase the drinker's maximum hit points if doing so would heal them for more than the difference between their current and maximum HP (including when at full HP):
  • A successful prayer while the hero's maximum HP is no more than 5 * (2+XL), their god will increase their maximum HP by a random amount and fully heal them.
  • A hero that gains a level by any method–including natural experience point gain, quaffing a non-cursed potion of gain level, eating a wraith corpse, or having an "educational experience" with a foocubus–will increase their current and maximum HP. This gain will be reversed if the level is subsequently lost.
  • Successfully praying to the hero's god at a co-aligned altar may grant a favor that surrounds them with a "golden glow", fully healing them if possible and increasing maximum HP by 5 similar to a blessed potion of full healing—the effect can also restore a lost experience level.
  • A nurse that is healing the hero (i.e. hitting them while they are not wielding a weapon and wearing no armor) has a 17 chance of increasing their maximum HP by 1, provided that this maximum is less than a roll of 5 * XL + (2 + XL)d10.

The hero's HP

A hero's starting HP at the beginning of a game is the sum of their role and race's base HP statistics.[4][5]

The amount of HP that a hero gains whenever they gain an experience level is determined by their race, role and current constitution, including the "cutoff" level associated with that role:[6][7] if the hero's experience level is less than their role "cutoff" level prior to gaining a level, the amount of HP gained is randomized based on the roll of a die, with Barbarians using a d10, Rangers using a d6, and all other roles using a d8, and otherwise the hero will gain a set amount of HP based on their role[8][9]—a bonus or penalty based on constitution is applied in either case. The hero will always gain at least one hit point per level, even when they are already at the maximum experience level of 30.[10]

The HP gains from race, role and constitution when gaining an experience level are detailed in the tables below:

Role[11] Cutoff Pre-cutoff Post-cutoff Starting
Arc 14 d8 1 11
Bar 10 d10 2 14
Cav 10 d8 2 14
Hea 20 d8 1 11
Kni 10 d8 2 14
Mon 10 d8 1 12
Pri 10 d8 1 12
Rog 11 d8 1 10
Ran 12 d6 1 13
Sam 11 d8 1 13
Tou 14 d8 0 8
Val 10 d8 2 14
Wiz 12 d8 1 10
Race[12] Pre-cutoff Post-cutoff Starting
Human d2 1 2
Elf d1 1 1
Dwarf d3 2 4
Gnome d1 0 1
Orc d1 0 1
Con Modifier[13]
≤ 3 -2
≤ 6 -1
≤ 14 0
≤ 16 +1
17 +2
18 +3
≥ 19 +4

Hit point recovery

The hero's natural HP-healing rate functions as follows:[14][15] a hero below experience level 10 will recover one hit point every (42 / (XL + 2)) + 1 turns, while a hero at XL 10 or above will recover HP every third turn; if their constitution is 12 or lower they will recover one hit point, and otherwise will regain an amount of HP equal to a roll on a constitution-sized die (or d[Con]), up to a maximum of (XL - 9). A hero whose encumbrance level is Stressed or worse will only recover hit points on turns when they are not moving. A hero with the regeneration property will gain one hit point on any turn where they did not recover HP as above.

A hero that is polymorphed, and is also not in the form of a sea monster while outside of water, will recover one hit point every 20 turns.[16][17] A hero that is in the form of a sea monster and not within water instead gradually loses HP, with the HP loss rate slowing down as the hero's HP becomes lower.[18]

Natural regeneration for the hero is described in the chart below:

Level Turns HP
1 15 1
2 11 1
3 9 1
4 8 1
5 7 1
6 6 1
7 5 1
8 5 1
9 4 1
10+ 3 1 or d(Con)

The following information pertains to an upcoming version (NetHack 3.7.0). If this version is now released, please verify that the information below is still accurate, then update the page to incorporate it.

Per commit f3408b87, the HP recovery formula is now simply a (xlevel + Con)% chance of recovering 1 HP each turn, and the regeneration property heals 1 HP unconditionally on all turns, rather than any turn where a hero did not recover HP.

Per commit 91c46ab5, while a hero has restful sleep and is asleep, their hit point regeneration is boosted so that they gain 1 additional HP each turn. If the hero is not polymorphed into another form, this stacks with normal HP regeneration and any additional regeneration property (e.g. from a ring of regeneration).

Monster hit points

A monster's HP is determined by the monster level they are generated at, then subjected to any applicable modifications:[19][20] by default, monsters are generated with 1d4 hit points if they are created at level 0, and otherwise generate with an mount of HP equal to ML(d8).[21]

In lieu of gaining experience, monsters gain levels by raising their maximum hit points, and their maximum hit points are also raised when their level increases directly: A monster that kills another monster will increase their maximum HP by a minimum of 1, and the maximum level a monster can reach this way is 32 times their base monster level;[22] a monster that gains levels by any other method, such as a non-cursed potion of gain level or an eaten wraith corpse, will raise their current and maximum HP by d8 along with increasing their monster level, and the default maximum level a monster can reach this way is 49.[23][24][25] Monsters that gain enough levels and HP may grow up into stronger forms.[26] A monster's current and maximum HP are lowered when subjected to level drain, and a monster drained below level 0 will die regardless of HP.[27] A monster that is below maximum HP will gain 1 HP every 20 moves, or every turn if they have regeneration.[28]

The sub-headers below this one describe various other modifications that are made to a monster's HP when they are generated, gain or lose a monster level, or are polymorphed into a particular monster.

Elementals

The hit points of an elemental are calculated normally, but both their initial HP and maximum HP thresholds are additionally tripled if they are generated or currently located on their "home" Elemental Plane.[29][30][31]

Golems

Golems do not use default hit point calculations when generated or when gaining or losing levels, and their initial HP is instead determined by type:[32][33]

Hit points Golems
20 paper golem, straw golem
30 rope golem
40 flesh golem, gold golem, leather golem
50 clay golem, wood golem
60 glass golem, stone golem
80 iron golem

Golems use an HP threshold of (max HP10 + 1) * 10 - 1 to calculate whether they gain a level when increasing their HP from combat.[34] They also use a different equation from other monsters when adjusting HP from level drain.[35]

Riders

The Riders are always generated with 10d8 HP regardless of their maximum level, which is done deliberately to give them stronger attacks.[36]

Dragons

The amount of HP adult dragons are generated with depend on their monster level and whether or not they are generated in the End Game, i.e. the Elemental Planes or Astral Plane:[37] adult dragons generated in the End Game use a flat 8*(ML), and so will always have the maximum amount of HP possible for their level, and otherwise they will roll (ML)d4 and adds 4 times its monster level to that result, e.g., a level 15 adult dragon will always have at least 75 HP if generated normally and will always have 120 HP if generated on the Elemental Planes or Astral Plane. An adult dragon subjected to level drain loses 4-8 HP.[38]

Player monsters

Player monsters are normally generated with (ML)d10 + 30 HP, and if generated in the endgame (i.e. the Astral Plane, in practice) they are given an extra d30 HP.[39]

Guardian angel

The guardian Angel minion given to a hero that enters the Astral Plane will be generated with (ML)d10 + d30 + 30 HP, the same hit point formula as the player monsters on that level.[40] A hero must be at least fervently aligned and not generating conflict when they enter the level.[41][42][43]

Other monsters

Certain other monsters that have their level defined as anywhere from 50 to 127 are generated with a fixed amount of HP, always equal to 2 * (ML - 6):[44] their actual monster level is the resulting HP value divided by four.[45] This generation method is applied to all demon lords and princes, along with the mail daemon, and the results are detailed in the table below:

Monster Hit points Level
& Juiblex 88 22
& Yeenoghu 100 25
& mail daemon 100 25
& Orcus 120 30
& Geryon 132 33
& Dispater 144 36
& Baalzebub 166 41
& Asmodeus 198 49
& Demogorgon 200 50

Strategy

A hero should always have an escape plan or emergency healing method for situations where their health is low, regardless of their strength level, and should be able to judge when it is safe to heal by waiting and when it is preferable to use a spell or item, especially characters with pets. Some weak starting characters might deliberately lower their HP in order to pray for an increase to max HP on turn 101.

Nurse dancing is a commonplace strategy that uses one or more nurses (typically from reverse genocide) in order to massively increase HP.

Messages

You don't have enough stamina to move.
Your encumbrance is stressed or higher while you are under your hit point maximum and have less than 5 hit points if polymorphed, or less than 10 otherwise. This does not occur if you are on the Plane of Air, nor if you are overloaded.[46]
You hear the howling of the CwnAnnwn...
You have less than 110 of your total HP left. The Cŵn Annwn are the spectral hounds of Annwn, the otherworld of Welsh folklore, which are associated with a form of the Wild Hunt, and their coming is generally seen as a death portent.
Valkyrie/Wizard/Elf, your life force is running out.
As above, while you are a Valkyrie, Wizard or elven hero, and have fewer than four intrinsics. This and other similar messages are references to the Gauntlet franchise of video games.
Valkyrie/Wizard/Elf, all of your powers will be lost...
As above, but you have at least four intrinsics.

Once you have seen one of the below messages, you will not see another for 50 turns.[47]

You hear the wailing of the Banshee...
You have only 1 hit point left. A banshee is a female spirit in Irish folklore who heralds the death of a family member, usually by screaming, wailing, shrieking, or keening.
Valkyrie/Wizard/Elf is about to die.
As above while you are a Valkyrie, Wizard or elven character.

Variants

FIQHack

Main article: FIQHack/New HP growth

In FIQHack, the HP regeneration rate has been modified as follows:

  • +1hp/turn for regen
  • +0.33hp/turn for healers
  • +0.03*level hp/turn
  • +0.03*(constitution - 5) hp/turn
  • min cap is +0.01 hp/turn

In addition, hunger from a worn ring of regeneration only applies when the hero is not at maximum HP. See the linked article at the top of the section for more information.

External links

References

  1. Jump up src/mon.c in NetHack 3.6.7, line 2190: if (!vamp_stone(mdef)) is used to exclude shifted vampires from instant death by stoning
  2. Jump up src/polyself.c in NetHack 3.6.7, line 1070
  3. Jump up src/polyself.c in NetHack 3.6.7, line 1086
  4. Jump up src/allmain.c in NetHack 3.6.7, line 608
  5. Jump up src/u_init.c in NetHack 3.6.7, line 635
  6. Jump up src/attrib.c in NetHack 3.6.7, line 981
  7. Jump up include/you.h in NetHack 3.6.7, line 23
  8. Jump up src/exper.c in NetHack 3.6.7, line 292: newhp() is called before your level is incremented
  9. Jump up src/attrib.c in NetHack 3.6.7, line 999: Both lofix are always 0; both hirnd are always 0
  10. Jump up src/attrib.c in NetHack 3.6.7, line 1028
  11. Jump up src/role.c in NetHack 3.6.7, line 27
  12. Jump up src/role.c in NetHack 3.6.7, line 617
  13. Jump up src/attrib.c in NetHack 3.6.7, line 1012
  14. Jump up src/allmain.c in NetHack 3.6.7, line 204: Normal HP recovery
  15. Jump up src/allmain.c in NetHack 3.6.7, line 458
  16. Jump up src/allmain.c in NetHack 3.6.7, line 465
  17. Jump up src/allmain.c in NetHack 3.6.7, line 475
  18. Jump up src/allmain.c in NetHack 3.6.7, line 468
  19. Jump up src/makemon.c in NetHack 3.6.7, line 983
  20. Jump up src/makemon.c in NetHack 3.6.7, line 1212
  21. Jump up src/makemon.c in NetHack 3.6.7, line 1008-L1013
  22. Jump up src/makemon.c in NetHack 3.6.7, line 1793
  23. Jump up src/makemon.c in NetHack 3.6.7, line 1837
  24. Jump up src/makemon.c in NetHack 3.6.7, line 1846
  25. Jump up src/makemon.c in NetHack 3.6.7, line 1855
  26. Jump up src/makemon.c in NetHack 3.6.7, line 1858
  27. Jump up src/makemon.c in NetHack 3.6.7, line 956: monhp_per_lvl(mon) function
  28. Jump up src/monmove.c in NetHack 3.6.7, line 187
  29. Jump up src/makemon.c in NetHack 3.6.7, line 34
  30. Jump up src/makemon.c in NetHack 3.6.7, line 1010
  31. Jump up src/makemon.c in NetHack 3.6.7, line 1825
  32. Jump up src/makemon.c in NetHack 3.6.7, line 990
  33. Jump up src/makemon.c in NetHack 3.6.7, line 1967
  34. Jump up src/makemon.c in NetHack 3.6.7, line 1823
  35. Jump up src/makemon.c in NetHack 3.6.7, line 963
  36. Jump up src/makemon.c in NetHack 3.6.7, line 992: "We want low HP, but a high mlevel so they can attack well"
  37. Jump up src/makemon.c in NetHack 3.6.7, line 1002
  38. Jump up src/makemon.c in NetHack 3.6.7, line 969
  39. Jump up src/mplayer.c in NetHack 3.6.7, line 143
  40. Jump up src/do.c in NetHack 3.6.7, line 1710
  41. Jump up src/minion.c in NetHack 3.6.7, line 460
  42. Jump up src/minion.c in NetHack 3.6.7, line 476
  43. Jump up src/minion.c in NetHack 3.6.7, line 502
  44. Jump up src/makemon.c in NetHack 3.6.7, line 995
  45. Jump up src/makemon.c in NetHack 3.6.7, line 100
  46. Jump up src/hack.c in NetHack 3.6.7, line 1385
  47. Jump up src/hack.c in NetHack 3.6.7, line 2970