From: Pasi Kallinen Date: Mon, 16 Jan 2023 17:09:28 +0000 (+0200) Subject: Add a cold, watery gehennom filler maze X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bd267c0c61248ee8b45f9640f25379ee70803904;p=nethack Add a cold, watery gehennom filler maze --- diff --git a/dat/hellfill.lua b/dat/hellfill.lua index 0c87550de..061292365 100644 --- a/dat/hellfill.lua +++ b/dat/hellfill.lua @@ -160,8 +160,6 @@ function rnd_hell_prefab() hell_prefabs[pf](); end --- TODO: cold hells? (ice & water instead of lava. sometimes floor = ice) - hells = { -- 1: "mines" style with lava function () @@ -228,6 +226,29 @@ hells = { des.terrain(outside_walls, " "); -- return the outside back to solid wall end end, + + -- 6: cold maze, with ice and water + function () + local cwid = math.random(4); + des.level_init({ style = "solidfill", fg = " ", lit = 0 }); + des.level_flags("mazelevel", "noflip"); + des.level_init({ style = "maze", wallthick = 1, corrwid = cwid }); + local outside_walls = selection.match(" "); + local icey = selection.negate():percentage(10):grow():filter_mapchar("."); + des.terrain(icey, "I"); + if (cwid == 1 and percent(25)) then + rnd_hell_prefab(); + end + if (cwid > 1) then + -- turn some ice into wall of water + des.terrain(icey:percentage(1), "W"); + end + des.terrain(icey:percentage(5), "P"); + if (percent(25)) then + des.terrain(selection.match("w"), "W"); -- walls of water + end + des.terrain(outside_walls, " "); -- return the outside back to solid wall + end, }; local hellno = math.random(1, #hells);