#3121
Remove the Luck component of searching for secret doors and passages. Specifically, change the rnl() calls that allow a search to fail into rn2() calls, which have no Luck bias.
Remove the Luck component of searching for secret doors and passages. Specifically, change the rnl() calls that allow a search to fail into rn2() calls, which have no Luck bias.
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.
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.
Improvements to secret doors:
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.
A way to search for hidden passages behind a boulder you are pushing.