Add minimum difficulty cutoffs to two themed rooms
This sets the minimum level depth of "Spider nest" to 10, somewhat above the difficulty of an individual giant spider, because a whole room full of them is a tougher challenge. Note that this isn't the only possible fix to this problem; another solution would be to alter the special case in mktrap that hardcodes a giant spider to generate with each web to produce cave spiders if giant spiders would be too tough. Even then, a lower difficulty cutoff is probably still warranted for this room, since a large number of cave spiders might be too tough for level 1 or 2. This also sets the minimum level depth of "Boulder room" to 4, based on the fact that individual rolling boulder traps normally can't appear until level 2, and having a bunch of them in one place which may be required to reach the downstairs could be problematic. This doesn't do anything to address the "Mausoleum" room problem, in which a master or arch-lich can generate and immediately warp out and attack the player. Even with a high difficulty threshold, it won't fix the problem of these liches generating out of their normal difficulty and Gehennom constraints. Other potential candidates for difficulty thresholds: - "Trap room": This room might be perilous on the first few levels, especially if the level generates with it blocking the way to the downstairs. - "Massacre": Doesn't have any particular hazards, but might be interesting if it only generated at deeper levels.
This commit is contained in:
committed by
Pasi Kallinen
parent
c5b5a869d7
commit
999222a8a4
+37
-31
@@ -16,7 +16,7 @@
|
|||||||
-- to generate a single themed room.
|
-- to generate a single themed room.
|
||||||
|
|
||||||
themerooms = {
|
themerooms = {
|
||||||
{
|
{
|
||||||
-- the "default" room
|
-- the "default" room
|
||||||
frequency = 1000,
|
frequency = 1000,
|
||||||
contents = function()
|
contents = function()
|
||||||
@@ -79,38 +79,44 @@ themerooms = {
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
-- Boulder room
|
-- Boulder room
|
||||||
function()
|
{
|
||||||
des.room({ type = "themed",
|
mindiff = 4,
|
||||||
contents = function(rm)
|
contents = function()
|
||||||
for x = 0, rm.width - 1 do
|
des.room({ type = "themed",
|
||||||
for y = 0, rm.height - 1 do
|
contents = function(rm)
|
||||||
if (percent(30)) then
|
for x = 0, rm.width - 1 do
|
||||||
if (percent(50)) then
|
for y = 0, rm.height - 1 do
|
||||||
des.object("boulder");
|
if (percent(30)) then
|
||||||
else
|
if (percent(50)) then
|
||||||
des.trap("rolling boulder");
|
des.object("boulder");
|
||||||
end
|
else
|
||||||
end
|
des.trap("rolling boulder");
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
});
|
end
|
||||||
end,
|
end
|
||||||
|
});
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
-- Spider nest
|
-- Spider nest
|
||||||
function()
|
{
|
||||||
des.room({ type = "themed",
|
mindiff = 10,
|
||||||
contents = function(rm)
|
contents = function()
|
||||||
for x = 0, rm.width - 1 do
|
des.room({ type = "themed",
|
||||||
for y = 0, rm.height - 1 do
|
contents = function(rm)
|
||||||
if (percent(30)) then
|
for x = 0, rm.width - 1 do
|
||||||
des.trap("web", x, y);
|
for y = 0, rm.height - 1 do
|
||||||
end
|
if (percent(30)) then
|
||||||
end
|
des.trap("web", x, y);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
});
|
end
|
||||||
end,
|
end
|
||||||
|
});
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
-- Trap room
|
-- Trap room
|
||||||
function()
|
function()
|
||||||
|
|||||||
Reference in New Issue
Block a user