On-death explosion
An on-death explosion is an attack type that appears in NetHack, and it is distinct from the active explosion attack—both are primarily used by monsters. The attack type is defined by the AT_BOOM flag within monattk.h in the source code.[1]
Description
A monster that has an on-death explosion attack will naturally only 'use' that attack if they are killed by HP loss, somewhat similar to a passive attack:[2] being killed by poison or zapped by a death ray meets the conditions for the attack, but death by stoning and disintegration do not. The on-death explosion is not counted as a standard attack by the game code for most purposes (e.g. interrupting occupations or determining whether the monster can attempt an attack on the hero).[3][4]
Monsters that explode on death will create a 3x3 explosion centered on their former square that makes noise and deals damage to a hero or any other monsters caught in that explosion[5][6][7][8]—damage from this explosion is dealt to the hero after all other monsters are accounted for, and a hero caught in an on-death explosion abuses strength.[9][10] If the hero kills a monster and causes it to explode in this manner, they are credited for any monsters hit or killed by the explosion, including any penalties for angering peaceful monsters or killing peacefuls and pets. Monsters will not attack another monster that explodes on death unless they are capable of surviving the explosion, i.e. they have more current HP than the maximum amount of damage it can deal.
A monster that is killed by engulfing (including via digestion) and explodes on death will solely damage the monster that was engulfing them, making less noise than the explosion would normally[11][12][13][14][15][16]—this behavior is bugged for unsolid engulfers, and causes the explosion to hit a 3x3 range centered on that monster without affecting the engulfer itself. If a hero or monster is caught in a holding attack when they are hit by an on-death explosion, the grabber takes double damage.[17][18]
Cancellation and magic cancellation have no effect on a monster's ability to explode upon dying, though a monster's MR score can halve damage, and half physical damage halves damage taken by the hero from the explosion.[19][20][21]
The only monster to have an on-death explosion attack is the gas spore, whose dying explosion always occurs and deals physical damage.[22] A hero that polymorphs into a gas spore will explode in the same way upon dying, though this "death" will always return the hero to normal form even if they have a source of unchanging.[23]
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 695c6ef3, the on-death explosion of a gas spore that occurs while engulfed by an unsolid monster will damage the engulfer and be properly contained within it.History
The on-death explosion attack type is formally defined in NetHack 3.3.0. From this version to NetHack 3.4.3, including some variants based on those versions, a gas spore (the only monster with the attack) will "pull back" from a hero that is invulnerable due to successfully praying, despite not having any active attacks—this is bug C343-56, and is fixed in NetHack 3.6.0 via commit 98ab86c9.
Messages
- <The monster> explodes!
- A monster used an on-death explosion attack against you—this will never occur in practice due to how the attack functions.[24]
- You hear a blast.
- A monster exploded upon dying, outside of your range of vision.[25]
- You are caught in <the monster's> explosion!
- You were in the range of an on-death explosion and took damage.
- It is fatal.
- The damage from the above explosion killed you.
- <The victim> is caught in <the monster's> explosion!
- Another monster was in the range of an on-death explosion and took damage.
- You hear an explosion.
- A monster exploded upon death as a result of being engulfed.
- <The engulfer> seems to have indigestion.
- The engulfer took damage from the above explosion.
- <The engulfer> rips open!
- The engulfer took lethal damage from the above explosion.
- There is an explosion in your <stomach>!
- As above, but you are the engulfing monster in question via polymorph.[26]
- <The monster> reconstitutes!
- A monster's on-death explosion triggered an amulet of life saving.[27]
- You explode!
- You "died" while in the form of a monster and your on-death explosion attack went off, returning you to normal form.[23]
Variants
Variants of NetHack may give on-death explosion attacks to new and returning monsters, as well as implement additional different damage types for on-death explosions.
UnNetHack
In UnNetHack, dungeon ferns can generate spores that have on-death explosion attacks:
All of these attacks deal 2d4 physical damage and propagate more ferns of the corresponding type—fern spores are only generated by reading a blessed scroll of stinking cloud while confused, and can propagate any type of dungeon fern.
dNetHack
In dNetHack, notdNetHack and notnotdNetHack, many monsters are given on-death explosion attacks:
- e freezing sphere (2d6 cold)
- e flaming sphere (2d6 fire)
- e shocking sphere (2d6 shock)
- e ballistospore (2d6 disease)
- e sphere of force (2d6 physical)
- e vexing orb (5d10 dark)
- e flaming orb (6d6 fire)
- e aphanactonan audient (6d6 physical)
- n rage-walker (0d0 death-shriek)
- s spellweaver (10d4 physical)
- s spellweaver goddess-mocker (20d4 physical)
- G faberge sphere (3d6 physical)
- G firework cart (2d6 fireworks)
- G hellfire orb (6d10 elemental fire)
- @ butterfly swarm (4d8 disease)
- . garo (4d4 physical, minor rumor)
- . garo master (4d8 physical, major rumor)
- & ancient of blessings (77d1 fireworks)
- & ancient of vitality (33d1 disease)
- & ancient of corruption (136d1 sliming)
- & ancient of the burning wastes (55d5 elemental fire)
- & ancient of thought (66d6 wet)
- & ancient of ice (88d1 elemental cold)
- & ancient of death (108d1 physical)
- & balrog (11d11 elemental fire)
- & Alrunes (0d0 death-shriek)
- v hateful whispers (0d0 death-shriek)
- & creature in the ice (81d1 cold, release creature)
- & Molek (88d1 elemental fire)
- & Mephistopheles (88d1 elemental fire)
- & Baalphegor (108d1 elemental cold)
- { mandrake (0d0 death-shriek)
- e dungeon fern spore (2d4 acid)
- e swamp fern spore (4d8 disease)
- e burning fern spore (8d8 physical)
- & Durin's Bane (11d11 elemental fire)
- & Lungorthin (16d11 elemental fire)
- Defunct monsters
References
- ↑ include/monattk.h in NetHack 3.6.7, line 24
- ↑ src/mhitu.c in NetHack 3.6.7, line 2797
- ↑ src/mondata.c in NetHack 3.6.7, line 75
- ↑ src/mondata.c in NetHack 3.6.7, line 525
- ↑ src/explode.c in NetHack 3.6.7, line 28
- ↑ src/explode.c in NetHack 3.6.7, line 116-L123
- ↑ src/explode.c in NetHack 3.6.7, line 163-L169
- ↑ src/explode.c in NetHack 3.6.7, line 570
- ↑ src/explode.c in NetHack 3.6.7, line 481
- ↑ src/explode.c in NetHack 3.6.7, line 558
- ↑ src/explode.c in NetHack 3.6.7, line 343
- ↑ src/explode.c in NetHack 3.6.7, line 369
- ↑ src/explode.c in NetHack 3.6.7, line 397
- ↑ src/explode.c in NetHack 3.6.7, line 573
- ↑ src/mon.c in NetHack 3.6.7, line 2098
- ↑ src/mon.c in NetHack 3.6.7, line 2104
- ↑ src/explode.c in NetHack 3.6.7, line 434
- ↑ src/explode.c in NetHack 3.6.7, line 516
- ↑ src/explode.c in NetHack 3.6.7, line 425
- ↑ src/explode.c in NetHack 3.6.7, line 501
- ↑ src/mon.c in NetHack 3.6.7, line 2103
- ↑ src/mon.c in NetHack 3.6.7, line 2090
- ↑ 23.0 23.1 src/mhitu.c in NetHack 3.6.7, line 2872: hero goes boom
- ↑ src/mhitu.c in NetHack 3.6.7, line 68: monster goes boom versus hero
- ↑ src/explode.c in NetHack 3.6.7, line 307
- ↑ src/mon.c in NetHack 3.6.7, line 2100
- ↑ src/mon.c in NetHack 3.6.7, line 1895