Magic resistance (monster)

From NetHackWiki
(Redirected from MR score)
Jump to navigation Jump to search
This article is about the measure of a monster's magical defenses. For the property that blocks magic missiles and force bolts, see magic resistance.

In NetHack, monster magic resistance, also known as monster MR or MR score, is a numeric value that determines the ability of a monster to resist the effects of magic such as spellcasting, zapped wands and thrown potions.

Description

A monster with a magic resistance score higher than 0 has a chance of taking halved damage when subjected to certain magical items and effects by a hero or another monster.[1] A monster's MR score also determines the chance that it resists the effects of conflict, taming and being polymorphed, e.g. by a polymorph trap.[2] This chance is given as follows:[3]

Chance = MR/(100 + (attack level) - (defense level))

Monster magic resistance is distinct from the magic resistance property (sometimes referred to as "player-style MR"): the latter does not affect a monster's resistance to conflict and taming effects, but does protect them from polymorphing as well as wands of striking, force bolts, wands of death, rays from a finger of death, and all forms of magic missiles[4]—neither type of magic resistance will protect monsters from level teleporters. Monster magic resistance is also different from magic cancellation, which can block some of the secondary effects of direct monster attacks such as the level drain from a wraith's touch attack, and is applicable to both heroes and monsters (e.g. by wearing armor).

Attack and defense level

The attack level is calculated as follows, where the defense level is the monster level of the target, which has a maximum of 50:

Source Attack level
spell Caster's level
Wand or polymorph trap[5] 12
Tool 10
Weapon 10
Scroll 9
Potion 6
Ring 5

All this also determines the chance that monsters (including pets) resist conflict; conflict from the Sceptre of Might is treated the same as the ring of conflict for this purpose.

Effects subject to monster magic resistance

Monster magic resistance is used in determining the outcomes of the following effects, including whether or not any damage inflicted from these effects is halved:

Strategy

Monster magic resistance generally determines what strategies are effective against certain monsters - for example, mind flayers have 90 monster magic resistance, which makes strategies such as polymorph magic or scaring from a musical instrument unlikely to work. In contrast, these strategies will work on minotaurs, which have no monster magic resistance.

Messages

<The monster> resists!
A monster resisted an attack; this is shown only in some cases.

Variants

Some variants change the monster magic resistance stats for certain monsters that are included from vanilla NetHack or other variants, and may additionally change the name to further distinguish it from the magic resistance property.

NetHack Fourk

In NetHack Fourk, the stat is referred to as willpower.

FIQHack

In FIQHack, this stat is also called willpower, with the attacker bonus from wands dependent on the wand skill.

xNetHack

xNetHack calls this stat magic saving throw.

EvilHack

In EvilHack, this stat is referred to as magic saving throw in the monster lookup; various monsters added from NetHack and other variants also have their magic saving throw improved.

References

  1. src/zap.c in NetHack 3.6.7, line 5159-L5223: resist() function
  2. 2.0 2.1 src/trap.c in NetHack 3.6.7, line 2682
  3. src/zap.c in NetHack 3.6.7, line 5204
  4. src/trap.c in NetHack 3.6.7, line 2680: polytrap check for magic resistance property
  5. src/trap.c in NetHack 3.6.0, line 2588
  6. src/artifact.c in NetHack 3.6.7, line 1076
  7. src/dogmove.c in NetHack 3.6.7, line 899
  8. src/dogmove.c in NetHack 3.6.7, line 938
  9. src/monmove.c in NetHack 3.6.7, line 506
  10. src/monmove.c in NetHack 3.6.7, line 645
  11. src/monmove.c in NetHack 3.6.7, line 1082
  12. src/priest.c in NetHack 3.6.7, line 204
  13. src/shk.c in NetHack 3.6.7, line 3839
  14. src/mhitm.c in NetHack 3.6.7, line 126
  15. src/explode.c in NetHack 3.6.7, line 425
  16. src/mhitm.c in NetHack 3.6.7, line 1512
  17. src/zap.c in NetHack 3.6.7, line 5210: damage is done directly inside the resist() function, and halved if resisted
  18. src/muse.c in NetHack 3.6.7, line 1270
  19. src/zap.c in NetHack 3.6.7, line 175
  20. src/music.c in NetHack 3.6.7, line 79: for horns and drums
  21. src/music.c in NetHack 3.6.7, line 205: for bugles
  22. src/music.c in NetHack 3.6.7, line 230
  23. src/read.c in NetHack 3.6.7, line 944
  24. src/potion.c in NetHack 3.6.7, line 1457
  25. src/potion.c in NetHack 3.6.7, line 1468
  26. src/potion.c in NetHack 3.6.7, line 1502
  27. src/potion.c in NetHack 3.6.7, line 1551
  28. src/pray.c in NetHack 3.6.7, line 2023
  29. src/pray.c in NetHack 3.6.7, line 2023
  30. src/read.c in NetHack 3.6.7, line 1250
  31. src/trap.c in NetHack 3.6.7, line 1639
  32. src/uhitm.c in NetHack 3.6.7, line 1323
  33. src/zap.c in NetHack 3.6.7, line 182
  34. src/zap.c in NetHack 3.6.7, line 195
  35. src/zap.c in NetHack 3.6.7, line 218
  36. src/zap.c in NetHack 3.6.7, line 235
  37. src/zap.c in NetHack 3.6.7, line 394
  38. Cite error: Invalid <ref> tag; no text was provided for refs named resist_halfdamage
  39. src/zap.c in NetHack 3.6.7, line 438
  40. src/zap.c in NetHack 3.6.7, line 2741
  41. src/zap.c in NetHack 3.6.7, line 3753