Double damage

From NetHackWiki
Jump to navigation Jump to search

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:

Double damage does not double the following:

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