#4332
The first delicatessen generated in the game will always stock food aligned with whatever food-related conducts you have kept up until that point, except for foodless, in which case it stocks only decadent food to tempt you into breaking it.
The first delicatessen generated in the game will always stock food aligned with whatever food-related conducts you have kept up until that point, except for foodless, in which case it stocks only decadent food to tempt you into breaking it.
New room-joining algorithm for regular Dungeons levels and levels which use des.random_corridors:
Fortune cookies will occasionally generate in gold vaults, containing money-based rumors.
Sometimes, if there is space and there is no intersection with another corridor, a closet will extend 2 more spaces back (for a total length of 3). The middle space will be a secret corridor (or sometimes plain stone), and the second space will be a regular corridor with a chest with random contents.
Shorten Gehennom drastically, paring it down to a few mandatory levels (the Valley, the Wizard’s Tower (containing Vlad’s Tower entrance), the vibrating square level containing the fake Wizard’s Tower to portal into the real one) with no demon lord lairs and no filler. In exchange, once you start escaping the Sanctum with the Amulet, any level you reenter for the first time gets partly overwritten with Gehennom elements – rivers of lava, twisted mazes, and in particular, the demon lords. However, enough areas of the map will be left in their original states so that it remains recognizable. In particular this is aimed at making sure any stash you have made may not survive the process.
There are several motivations for this:
Occasionally, if a Mines filler level generates where there is a sufficiently large space of empty stone, a little separate walled-off area may generate disconnected from the main map, containing a few gnomes and dwarves, and some more gems and gold, possibly in a chest. This area won’t get the stairs generated in it, and should probably contain a hole so that a randomly teleporting player won’t get stuck there (other types of escape items could get picked up by the gnomes and dwarves).
Generate a single out-of-difficulty monster on every level, as an experiment to see how the game balance changes (not necessarily as a permanent feature). Or instead of picking something out of difficulty, generate a monster with the maximum permissible difficulty.
In regular dungeon levels, a certain engraving can occasionally generate which has treasure buried beneath it.
(Note: This idea predates 3.7 themed rooms, and could likely be done as a themed room. One themed room is similar, containing buried treasure but no engraving.)
Some Dungeons of Doom levels are corridorless - rooms directly adjoin, and do not all have to be rectangular, though most will. Rooms can have longish, nonlinear extensions - like corridors, but made of ordinary floor, walled, and anywhere between 1 to 3 spaces wide.
Easter egg: a comestible that has very low weight and very high nutrition, thus a very good food to have. They generate very rarely, perhaps only 1-3 per game on average, and generate exclusively in hidden spots: in chests, closets, and vaults, the dead ends of mazes, beneath sinks (revealed when you step onto the sink), in trees (revealed either when you step next to the tree or kick it), etc. The glyph is brightly colored, perhaps purple.
Dragons that generate at level creation time also spawn a hoard of gold beneath them, similar to how concealing monsters generate items to hide beneath. Possibly, their AI recognizes the horde as theirs and they are reluctant to stray off of it or far from it as long as there is gold there.
Rather than placing random amounts of gold on each tile in a special room that generates gold on each tile (zoo, leprechaun hall, and any other that might get added), bias it so that there is more gold in the corners and along the walls, on the basis that things tend to accumulate in the corners of rooms. Should work on irregularly shaped rooms as well as rectangular ones.
One possible algorithm is that corners get 3 “helpings” of gold placed on them, walls 2, and every other space 1.
Another take is to instead put more gold into the center of the room and less further out, possibly guaranteeing some dragons on top of the biggest piles.
All food generated in Gehennom (including both food generated with the level and after creation time, and corpses) is rotten.
Very rarely (perhaps 0.3% of the time), a soldier ant will generate in a barracks instead of a soldier.
Proposals to address the situation where all the candles needed for the invocation are guaranteed in Vlad’s Tower. The current situation removes frustration but many players feel that it’s trivialized, whereas the system in 3.4.3 was frustrating because it was a common occurrence to have to backtrack to the Mines for candles after forgetting they needed to be collected, or worse, having to wish for them because the game didn’t generate 7 of them.
Shops occasionally generate in Gehennom. They are staffed by peaceful demons, stocked with dodgy goods, and priced outrageously.
Allow lua files to specify a trap as “mapped”/”known”/”seen”/”premapped”/”visible”; when the trap is generated it will set its tseen value so that the player instantly sees it from a distance, like how most holes work.
When you enter Gehennom, the Sanctum is right there as one of the first couple of levels. But entering it transforms all the existing dungeon levels irreversibly into Gehennom levels, including demon lord lairs and the like. Everything in the Dungeons of Doom will be lost, and the player now has to work their way through the rest of Gehennom with the Amulet to enter the Planes.
Alternatively, and perhaps more straightforwardly, destroy the Dungeons of Doom when the player goes beneath the Valley of the Dead, and just have them enter the Planes directly from the Sanctum.
An option that disables special level flipping.
Allow themed rooms to be specified as joined to the rest of the level, but only at preexisting doors on the edge of the room, and the level generator should not create new doors to connect it to the rest of the level. Internally, this means expanding a room’s ‘joined’ variable from a boolean to a larger type that can hold a third value. This would be useful for making themed rooms where it’s desirable to connect them to the map only at specific points.
Dungeons levels generate random, small Sokoban “rooms” - actually themed rooms, never on a path between the two stairs, possibly using “diagonaloban” rules which permit boulders to be rolled in any direction. There is a minor prize in each room at the end of the puzzle.
Internally, rooms like this should have their own room type, which will help with putting in anti-cheating measures:
It’s unclear what the methods to prevent the standard forms of cheating (breaking boulders, reading scrolls of earth, carrying boulders as a giant, etc) should be. Possibly they will just carry cheating penalties like normal.
In special rooms with zoo-like generation, meaning they generate a monster on every square, generate the monsters with MM_NOGRP to suppress group generation. This prevents a group from being one of the last things to spawn into the room and overflow into nearby spaces outside of it.
Define a special filling algorithm which adds walls to any space to tile it with small hexagons. When a beehive generates, use this algorithm to fill it with hexagons in order to make it look like a honeycomb.
When generating corridors in the Dungeons of Doom, make corridor-drawing follow established corridor paths when possible instead of allowing long parallel double-wide corridors to be carved, because these are ugly.
A possible algorithm is to build the proposed corridor without editing the map, then identify all squares where the proposed corridor intersects with or is adjacent to existing ones, then pathfind to see which successive pairs of intersections are not already reachable, then only connect those pairs of intersections along the proposed path.
Another possibility is to let the corridors generate normally, and then do a postprocessing cleanup step, where all “unnecessary” corridor spaces are removed one by one until there are no more. An unnecessary space is defined as a CORR space where for each pair of orthogonally adjacent CORR spaces to it, the common corner of those orthogonally adjacent CORR spaces is itself a CORR. Though this may still produce some odd dead-end corridors.
Randomly generated puzzle mechanisms that reveal secret doors once completed. Things such as finding a mechanism hidden under a statue, or having a boulder generate in a room and needing to push it somewhere else in that room.
On deeper Dungeons of Doom levels, when the game randomly places an altar in a room without intending to create a temple, sometimes make the room into an abandoned temple.
Prevent items from generating on top of the pits and holes in Sokoban.
Rather than occurring entirely randomly, a secret passage can only generate to close off a dead end, where exactly 2 of the 4 adjacent squares, on opposite sides, are corridors, and the other 2 are rock. The dead end criterion is tested by trying to pathfind an alternate route from one of the adjacent corridor spaces to the other; if none can be found, this space must be blocking a dead end, so it is valid.
Create a procedural level generation algorithm for tower levels, particularly Vlad’s tower. Vlad’s tower should also be larger on the bottom than it is on the higher levels.
When the player arrives on a newly generated level, any monsters within a certain radius of the player are randomly relocated somewhere else.
Walled-off sections of graveyards with locked doors named “crypts” can generate. Inside crypts are very strong out-of-difficulty mummies. Note that this would require that very strong mummies exist in the game in the first place.
Monster lairs (antholes, cockatrice nests, etc) are not filled wall-to-wall with monsters.
Graveyards can rarely generate visible pits (open graves) with no monster on top of them.
Treasure zoos try to generate only “animal” monsters (those that have the M1_ANIMAL flag).
Add code that allows the game to determine whether a room is a “dead-end” room (contains only 1 door which connects to the rest of the level, but unlike shop-compatible rooms, it’s okay to have closets.)
Certain special rooms (typically ones that have awake monsters in them that shouldn’t wander around the level) always generate with all of their doors locked.
Throne rooms should place the throne along one wall, preferably the narrower wall of the room.
Vaults on deeper levels may generate with four gold golems instead of four gold piles. Or both.
If you are a Monk and the game decides to generate a delicatessen, replace it with a health food store 80% of the time. This is independent from the special case for health food stores in Minetown.
Occasionally, instead of a werecreature corpse being placed in a closet behind iron bars, a live werecreature will be placed there instead.
Assuming a new Gehennom generation algorithm which generates doors, some of which must be passed in order to get through the level: have a special type of “demon key” to open doors in Gehennom. Lots of them generate in Gehennom (though not as many as there are doors; possibly a certain type of monster there generates with them so you can obtain more if you get stuck), but each key is single-use and breaks when used to open a door.
Shops can sometimes generate disconnected from the rest of the level and must be teleported or dug into.
Antholes contain eggs of the type of ant the room is filled with; fewer than the ants themselves.
When the game tries to generate a sink in a room, it tries to place the sink next to the wall (though not in front of a doorway).
Sealed closets (with either a wall or iron bars) generate some additional item loot on top of their guaranteed scroll of teleportation.
Throne rooms generate their monsters awake, but also generate all their doorways as locked.
Put engravings outside or nearby inaccessible closets so that you know that something’s there.
Add a “specialness” value to each special room and possibly dungeon feature, based on their approximate usefulness to the player. (For example, a swamp room is virtually useless to the player, a treasure zoo not very useful, a throne room more useful, and a temple or shop the most useful.) A level will start out with some amount of specialness available, and randomly chooses special rooms and features to add until it runs out of specialness.
Random piles of loot can sometimes generate buried in the floor or behind walls on spaces not adjoining any walkable spaces. Nearby engravings are generated to indicate that there is something in the vicinity. Archeologists get an alignment bonus for digging out these items.
The Mines have a higher rate of gold and gems embedded in rock than the other branches.
Track the number of unattended altars generated in the Dungeons of Doom above, say, the Quest portal level. If zero have been generated yet, the chance of one generating on a new level in that range increases more and more until it’s a certainty on the final one.
A very small percentage of closets have a random item generated in them, even if they aren’t sealed off.
Instead of being completely lit or unlit, Mines levels can generate with large contiguous areas of lit and unlit floor.
Upper Mines levels’ stairs are biased to generate relatively close to each other.
Slightly increase the minimum depth of rolling boulder traps, which is currently 2 and can instakill a character on level 2 easily.
Scale the probability of secret doors and secret passages in a room-and-corridor level based on its depth, so that level 1 is almost guaranteed not to contain any blocking the way, and the other early levels are also not likely for this to happen.
If Magicbane has not yet been generated when the player reaches the Wizard goal level, Newt the wizard has a higher-than-usual chance of being given it.
When generating a corpse during level creation, pre-age the corpse a la zombie and mummy corpses so that it’s not weirdly fresh.
Pressure plate traps that cause all the doors of the current room to close and lock (doorways without doors could turn into iron bars or, on deep enough levels, all doors could turn into iron bars). Triggering this automatically removes the trap. Generated very rarely, and has special generation that occasionally makes it appear just inside a door to a throne room.
Use a miniature cellular automaton to determine which spaces in a swamp room will become water, rather than using a fixed checkerboard. This may not work well for tiny rooms, so enforce a minimum size constraint on what can become a swamp room if necessary.
Improvements to secret doors:
Random closets that have secret doors (but not no door at all) can sometimes generate a random item inside, or possibly a dungeon feature like a sink. (Generating a sink would be a bad idea unless the sink glyph is changed, since it’s otherwise identical to the corridor glyph normally used for closets).
The treasure found under randomly generated gravestones should be more treasure-like or the sort of items that get buried in graves in real life, rather than just random objects.
Decorative objects/furniture for atmosphere: sarcophagi, (inanimate) skeletons, rubble in corners, mist, shafts of light that illuminate small areas.
Rooms are generated dark much more often when your luck is negative.
Allow closets to generate on east/west sides of rooms.
Spiked pits and a lower percentage of pits generate with an item or two buried. When you fall into one, any buried items are automatically exposed. The most commonly generated items here are a few gold or an eroded weapon.
Chests generated in barracks should contain gold, which is the soldiers’ payroll.
Use the builtin pathfinding algorithm to trace a path between the upstairs and downstairs of each level in the Dungeons of Doom. Along this path, remove or relocate any traps, and (in early levels, perhaps up until the Oracle) convert any secret doors or passages along the path into regular ones.
Cave-like or cavernous levels, like the Mines and the Caveman home level, spawn bats fairly often.
Dart and arrow traps are much more likely to generate if the trap is next to a wall. Alternatively, when generating a dart or arrow trap, look for a wall tile in line within 3 squares that contains the launching mechanism; if no such tile exists, the trap cannot generate. The player must then untrap the wall square, or dig it out, to remove the trap.
Levels between Medusa and the Castle generate with roving contingents of the Yendorian Army, and have large open areas if they are maze levels.
Instead of having Sokoban as a branch, generate occasional Sokoban puzzles in the Dungeons proper. It must not be mandatory to complete them to pass through the level.
Minor special feature of a level “jackal kill”: a corpse of a playable race surrounded by a few jackals. If fake bones piles are added, make this a fake bones pile with “killed by a jackal” on the headstone.
In the uppermost levels of the dungeon, add (non-guaranteed) fake bones piles which contain starting equipment from some role. Gear is eroded or biased towards negative enchantment, most magical items are removed, and perhaps one or two non-starting items are added. Then the whole pile is mostly cursed as usual.
Note: This has been implemented in 3.6.1 but differently; it places random cursed items instead of selecting starting gear.
Several things relating to making the upper dungeon feel more “eroded” or exposed to the elements/other adventurers, in keeping with NetHack flavor that other people have been seeking the Amulet:
Note that this has been partially implemented in 3.6.1 with the addition of fake bones piles that come with a pre-disarmed trap if applicable, although that was aimed less at adding ambiance and more at helping players avoid early traps.
Non-inaccessible closets have a small chance of containing a monster on level generation.
Shop generation chance increases for every level with no shop, and decreases/is reset when one is generated.
Reduce the amount of gold generated on the floor, and probably also that buried under the floor and in rock so it doesn’t incentivize the player digging out a level. This is an attempt at gold rebalance.
Silver weapons should be rarer than they currently are outside Gehennom and fairly common inside it.