Ceiling
The ceiling is the implied part of a dungeon level in NetHack where certain monsters and dungeon features can be located.[1]
Description
The ceiling is mentioned in the effect text of various items, as well as a couple of traps or trap-like features. The following levels are considered to not have a ceiling, with the text for them substituted accordingly:[2]
- Certain Quest home levels
- The Plane of Air
- The Plane of Fire
- The Plane of Water
- The Astral Plane
Clinging monsters
Some monsters are capable of clinging to the ceiling and moving along it over the terrain below. These clinging monsters are denoted with the M1_CLING flag, and are listed below:[3][4]
Clinging monsters will not fall into pits, spiked pits, holes, or trap doors. They can move over squeaky boards, rolling boulder traps and landmines without triggering them, and can also move over possibly-hazardous terrain such as pools, moats or lava.
Hiding on the ceiling
Some monsters are capable of hiding on the ceiling until a target moves on or near their square:[5] these monsters consist of all piercers and the lurker above, with the lurker above utilizing flight rather than clinging to the ceiling like piercers do.
If a hero or monster moves onto the square of a piercer or lurker above, the monster will surprise them and appear adjacent to the target. Piercers will attempt to fall onto their targets and inflict physical damage, which can be reduced by a worn hard helm. Lurkers above do not inflict damage this way, but will instead usually attack immediately and try to engulf the target.
Traps
Two trap-related actions mention the ceiling in some form:
- When moving onto a falling rock trap, a rock falls on the hero or monster that triggered it, which is normally dropped from a trapdoor in the ceiling.
- Kicking a throne has a 1⁄4 chance of triggering a unique trap door-like mechanism connected to the throne, which appears underneath the hero and behaves as a normal trap door—this trap door does not remain behind afterward, and the game prints a message about the "hole in the ceiling" closing.
Items
The following items interact with the ceiling of the dungeon or produce a message about it in some manner.
- Applying a bullwhip, an expensive camera, or a mirror up will produce a message about the ceiling.
- The earthquake from applying a charged drum of earthquake will shake loose any monsters hiding on the ceiling.
- Quaffing a cursed potion of levitation causes the hero to take damage from hitting their head on the ceiling.
- Quaffing a cursed potion of gain level causes the hero to rise up through the ceiling, unless they are on the following levels under the following conditions:[6]
- Dungeon level 1, and they do not have the real Amulet of Yendor[7]
- The top floor of Sokoban[8]
- The Quest home level
- Fort Ludios
- The top floor of Vlad's Tower
- The top floor of the Wizard's Tower, while inside
- The Elemental Planes[8]
- Reading a scroll of earth on a level with a ceiling describes it as it "rumbles around" the hero and creates one or multiple boulders.
- Zapping a wand of digging or the dig spell upwards on a dungeon level with a ceiling dislodges a rock from it and causes it to fall on the hero's head.
History
In NetHack 3.4.3 and some previous versions, including variants based on those versions, trappers are treated as hiding on the ceiling identically to the lurker above: the game implicitly assumes that a non-mimic monster with the hiding monster attribute flag (M1_HIDE) is hiding on the ceiling, which includes trappers due to a lack of any differentiating code in spite of the encyclopedia entry suggesting that it hides on the ground.[9] This is bug C342-51, and is fixed in NetHack 3.6.0 via commit 70e25fa1 (dated November 2003) so that the trapper is correctly treated as being on the floor.
Variants
SporkHack
SporkHack introduces ceiling collapse traps, which drop several boulders onto the player.
xNetHack
In xNetHack, certain levels are flagged as "outdoors", including many retained and newly-made quest levels among others: read scrolls of earth have no effect in outdoor levels, and both falling rock traps and rust traps (which are considered ceiling-bound in xNetHack) will not be generated. Throwing an object upwards will also not be shown as hitting a ceiling if done outdoors.
References
- ↑ src/dungeon.c in NetHack 5.0.0, line 1713-L1747: ceiling() function
- ↑ src/dungeon.c in NetHack 5.0.0, line 1689-L1698: has_ceiling() function
- ↑ include/monflag.h in NetHack 5.0.0, line 89
- ↑ include/mondata.h in NetHack 5.0.0, line 22
- ↑ include/mondata.h in NetHack 5.0.0, line 39-46
- ↑ src/dungeon.c in NetHack 5.0.0, line 1667-L1687: Can_rise_up() function
- ↑ src/dungeon.c in NetHack 5.0.0, line 1683-L1686: per comment: "Checks for amulets and such must be done elsewhere."
- ↑ 8.0 8.1 src/dungeon.c in NetHack 5.0.0, line 1680
- ↑ mhitu.c in NetHack 3.4.3, line 361