Double damage
Double damage is a weapon property that appears in NetHack, and is generally seen on artifact weapons: Some do double damage against specific types of monsters, while others deal double damage to broad groups of monsters, and still others deal double damage against every monster - see the linked article for a detailed list.
Description
When the double damage property activates, the following damage rolls have their result doubled:
- The weapon's base damage
- The enchantment damage bonus (or penalty)
- The penalty for erosion
- Rogue backstab damage.
Double damage does not double the following:
- bonus for using a blessed weapon against undead
- bonus for using an axe against wooden monsters
- bonus for using a silver weapon against silver haters
- bonus for using a light source weapon against light haters
- bonuses for rings of increase damage (both worn and eaten)
- bonus for weapon skill
- bonus for Strength
- bonus for using a poisoned weapon
- bonus for jousting
Strategy
Enchanting double-damage artifact weapons yields higher returns compared to their standard counterparts. So does fixing erosion.
Source dive, step by step
This algorithm is from NetHack 3.6.7.
Each time the hero hits a monster in melee, the game calls hmon_hitmon.[1]. If the hero is twoweaponing, the game calls hmon_hitmon twice, once for each hit.
hmon_hitmon has numerous cases, such as bare-handed attacks, hitting with a wielded bow, hitting with a corpse, and so on. We are going to follow the case for hitting with an artifact weapon that may do double damage.
Step 1: base damage, enchantment bonus
hmon_hitmon calls dmgval.[2][3]
First, dmgval calculates:
- base damage
- weapon enchantment bonus
Step 2: situation bonuses
Next, dmgval calculates several situation bonuses:[4]
- blessed weapon against undead
- axe against wooden monster
- silver against silver hater
- light against light hater
However, if the weapon does double damage, then dmgval uses only half of the situation bonus total. Effectively, situation bonuses are not doubled.
Step 3: erosion penalty
Next, dmgval calculates the erosion penalty:[5]
- erosion damage
That is the end of dmgval. Back to hmon_hitmon.
Step 4: backstab damage
Next, hmon_hitmon calculates backstab damage:[6]
- backstab damage
Step 5: artifact_hit and spec_dbon
Next, hmon_hitmon calls artifact_hit.[7][8]. artifact_hit calls spec_dbon[9]. spec_dbon decides whether double damage applies, and if it does, then spec_dbon adds in the extra damage.
At this point, the damage has been doubled.
Step 6: more special damages and bonuses.
Next, artifact_hit calculates some more special damages from weapons such as Magicbane, the Tsurugi of Muramasa, Vorpal Blade, and Stormbringer. And then artifact_hit returns to hmon_hitmon.
And then hmon_hitmon adds in bonuses from rings of increase damage (both worn and eaten), weapon skill, strength, poison, and jousting.[10]
None of these bonuses get doubled because the doubling already happened in the previous step.
Step 7: do the damage
Finally, hmon_hitmon subtracts the total damage from the monster's hit points.[11]
SLASH'EM
A number of SLASH'EM techniques grant temporary double damage: Samurai's Kiii doubles all weapon damage, while Missile flurry, for droven Rangers only, doubles the damage done with their racial bow and arrows. Finally, Caveman's Primal roar grants double damage to pets. Note that these effects may be calculated differently from the vanilla mechanics described above.
History
For NetHack 3.4.3, see https://www.steelypips.org/nethack/343/weap-343.txt by Kevin Hugo.
References
- ↑ src/uhitm.c in NetHack 3.6.7, line 667
- ↑ src/uhitm.c in NetHack 3.6.7, line 767
- ↑ src/weapon.c in NetHack 3.6.7, line 204
- ↑ src/weapon.c in NetHack 3.6.7, line 316
- ↑ src/weapon.c in NetHack 3.6.7, line 339
- ↑ src/uhitm.c in NetHack 3.6.7, line 775
- ↑ src/uhitm.c in NetHack 3.6.7, line 816
- ↑ src/artifact.c in NetHack 3.6.7, line 1143
- ↑ src/artifact.c in NetHack 3.6.7, line 840
- ↑ src/uhitm.c in NetHack 3.6.7, line 1093
- ↑ src/uhitm.c in NetHack 3.6.7, line 1192