Magic resistance (monster)
In NetHack, monsters have some degree of innate magic resistance, also known as monster MR. Monsters' magic resistance allows them to resist various attacks, generally of a "magical" nature. It is handled by the resist() function—if a monster successfully resists an attack, it takes roughly half damage.[1] Players cannot ever gain monster-style resistance, e.g. through polymorph, and must instead rely upon magic cancellation and magic resistance.
Monster magic resistance is separate from the magic resistance property provided by various worn or carried items, which some monsters such as gray dragons and Angels also have intrinsically; this form of "player-style" magic resistance does not affect taming and conflict, but renders polymorph traps ineffective. Neither type of magic resistance will protect monsters from level teleporters.
Contents
Description
MR is given as a number from 0 to 100. This is frequently given as a percentage, although this is not entirely accurate. The chance of a monster resisting is given as follows:
Chance = MR/(100 + (attack level) - (defense level))[2]
which is only equal to MR as a percentage when attack and defense level are equal. Zero MR monsters will never resist.
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, polytrap[3] | 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.
List of effects subject to monster magic resistance
Unless otherwise specified, monster magic resistance completely prevents effects. Some exceptions cause monsters to take less damage instead of nullifying it completely.
- The scaring effect of Magicbane[4]
- Conflict[5][6][7][8][9][10][11][12]
- Explosions (halves damage)[13]
- All sources of sleeping[14]
- Wand of striking and force bolt (halves damage)[15][16][17]
- The scaring effect of tooled horn, drum of earthquake, leather drum, and bugle[18][19]
- The taming effect of magic harp, scroll of taming, or spellbook of charm monster[20][21]
- The maximum and current HP halving effects (one check for each) when hit by potion of sickness (or healing potions for Pestilence)[22]
- The confusion effect when hit by potion of confusion or booze[23]
- The blinding effect when hit by potion of blindness (blindness duration is increased by fewer turns, instead of being nullified)[24]
- Acid damage when hit by potion of acid[25]
- Turn undead – one check each for scaring, and pacifying or killing[26][27]
- The scaring effect when reading scroll of scare monster or casting cause fear[28]
- Polymorph trap[29][30]
- Confusion when hitting while charged from scroll or spell of confuse monster[31]
- Slowing from wand or spell of slow monster[32]
- Hasting from wand of speed monster[33]
- Scaring from wand of undead turning or spell of turn undead[34]
- Polymorph from wand, spell, or potion of polymorph[35]
- Damage received by Pestilence from spell of healing or spell of extra healing (halves the amount of damage instead of nullifying it)[36]
- Spell of drain life (resistance halves damage and prevents level drain)[15][37]
- Cancellation from Magicbane, wand of cancellation, and spell of cancellation [38]
- Damage from ray hits (halves damage)[39]
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
- <Foo> 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
- ↑ src/zap.c in NetHack 3.6.0, line 4802
- ↑ src/zap.c in NetHack 3.6.0, line 4842
- ↑ src/trap.c in NetHack 3.6.0, line 2588
- ↑ src/artifact.c in NetHack 3.6.7, line 1076
- ↑ src/dogmove.c in NetHack 3.6.7, line 899
- ↑ src/dogmove.c in NetHack 3.6.7, line 938
- ↑ src/monmove.c in NetHack 3.6.7, line 506
- ↑ src/monmove.c in NetHack 3.6.7, line 645
- ↑ src/monmove.c in NetHack 3.6.7, line 1082
- ↑ src/priest.c in NetHack 3.6.7, line 204
- ↑ src/shk.c in NetHack 3.6.7, line 3839
- ↑ src/mhitm.c in NetHack 3.6.7, line 126
- ↑ src/explode.c in NetHack 3.6.7, line 425
- ↑ src/mhitm.c in NetHack 3.6.7, line 1512
- ↑ 15.0 15.1 src/zap.c in NetHack 3.6.7, line 5210: damage is done directly inside the
resist()
function, and halved if resisted - ↑ src/muse.c in NetHack 3.6.7, line 1270
- ↑ src/zap.c in NetHack 3.6.7, line 175
- ↑ src/music.c in NetHack 3.6.7, line 79: for horns and drums
- ↑ src/music.c in NetHack 3.6.7, line 205: for bugles
- ↑ src/music.c in NetHack 3.6.7, line 230
- ↑ src/read.c in NetHack 3.6.7, line 944
- ↑ src/potion.c in NetHack 3.6.7, line 1457
- ↑ src/potion.c in NetHack 3.6.7, line 1468
- ↑ src/potion.c in NetHack 3.6.7, line 1502
- ↑ src/potion.c in NetHack 3.6.7, line 1551
- ↑ src/pray.c in NetHack 3.6.7, line 2023
- ↑ src/pray.c in NetHack 3.6.7, line 2023
- ↑ src/read.c in NetHack 3.6.7, line 1250
- ↑ src/trap.c in NetHack 3.6.7, line 1639
- ↑ src/trap.c in NetHack 3.6.7, line 2682
- ↑ src/uhitm.c in NetHack 3.6.7, line 1323
- ↑ src/zap.c in NetHack 3.6.7, line 182
- ↑ src/zap.c in NetHack 3.6.7, line 195
- ↑ src/zap.c in NetHack 3.6.7, line 218
- ↑ src/zap.c in NetHack 3.6.7, line 235
- ↑ src/zap.c in NetHack 3.6.7, line 394
- ↑ src/zap.c in NetHack 3.6.7, line 438
- ↑ src/zap.c in NetHack 3.6.7, line 2741
- ↑ src/zap.c in NetHack 3.6.7, line 3753