]> granicus.if.org Git - nethack/commitdiff
Add helltweaks to wizard1
authorPasi Kallinen <paxed@alt.org>
Mon, 30 Jan 2023 15:31:25 +0000 (17:31 +0200)
committerPasi Kallinen <paxed@alt.org>
Mon, 30 Jan 2023 15:31:25 +0000 (17:31 +0200)
dat/wizard1.lua

index 81a5cd21abe0ab3a45c3546f33b6f235c0ddbb50..f1d4be198f754404dd239f80c6780c7b9d1b0199 100644 (file)
@@ -9,85 +9,94 @@
 des.level_init({ style="mazegrid", bg ="-" });
 
 des.level_flags("mazelevel", "noteleport", "hardfloor")
-des.map([[
-----------------------------.
-|.......|..|.........|.....|.
-|.......S..|.}}}}}}}.|.....|.
-|..--S--|..|.}}---}}.|---S-|.
-|..|....|..|.}--.--}.|..|..|.
-|..|....|..|.}|...|}.|..|..|.
-|..--------|.}--.--}.|..|..|.
-|..|.......|.}}---}}.|..|..|.
-|..S.......|.}}}}}}}.|..|..|.
-|..|.......|.........|..|..|.
-|..|.......|-----------S-S-|.
-|..|.......S...............|.
-----------------------------.
-]]);
-des.levregion({ type="stair-up", region={01,00,79,20}, region_islev=1, exclude={0,0,28,12} })
-des.levregion({ type="stair-down", region={01,00,79,20}, region_islev=1, exclude={0,0,28,12} })
-des.levregion({ type="branch", region={01,00,79,20}, region_islev=1, exclude={0,0,28,12} })
-des.teleport_region({ region={01,00,79,20}, region_islev=1, exclude={0,0,27,12} })
-des.region({ region={12,01, 20,09}, lit=0, type="morgue", filled=2, contents=function()
-                local sdwall = { "south", "west", "east" };
-                des.door({ wall = sdwall[math.random(1, #sdwall)], state = "secret" });
-end })
--- another region to constrain monster arrival
-des.region({ region={01,01, 10,11}, lit=0, type="ordinary", arrival_room=true })
-des.mazewalk(28,05,"east")
-des.ladder("down", 06,05)
--- Non diggable walls
--- Walls inside the moat stay diggable
-des.non_diggable(selection.area(00,00,11,12))
-des.non_diggable(selection.area(11,00,21,00))
-des.non_diggable(selection.area(11,10,27,12))
-des.non_diggable(selection.area(21,00,27,10))
--- Non passable walls
-des.non_passwall(selection.area(00,00,11,12))
-des.non_passwall(selection.area(11,00,21,00))
-des.non_passwall(selection.area(11,10,27,12))
-des.non_passwall(selection.area(21,00,27,10))
--- The wizard and his guards
-des.monster({ id = "Wizard of Yendor", x=16, y=05, asleep=1 })
-des.monster("hell hound", 15, 05)
-des.monster("vampire lord", 17, 05)
--- The local treasure
-des.object("Book of the Dead", 16, 05)
--- Surrounding terror
-des.monster("kraken", 14, 02)
-des.monster("giant eel", 17, 02)
-des.monster("kraken", 13, 04)
-des.monster("giant eel", 13, 06)
-des.monster("kraken", 19, 04)
-des.monster("giant eel", 19, 06)
-des.monster("kraken", 15, 08)
-des.monster("giant eel", 17, 08)
-des.monster("piranha", 15, 02)
-des.monster("piranha", 19, 08)
--- Random monsters
-des.monster("D")
-des.monster("H")
-des.monster("&")
-des.monster("&")
-des.monster("&")
-des.monster("&")
--- And to make things a little harder.
-des.trap("board",16,04)
-des.trap("board",16,06)
-des.trap("board",15,05)
-des.trap("board",17,05)
--- Random traps.
-des.trap("spiked pit")
-des.trap("sleep gas")
-des.trap("anti magic")
-des.trap("magic")
--- Some random loot.
-des.object("ruby")
-des.object("!")
-des.object("!")
-des.object("?")
-des.object("?")
-des.object("+")
-des.object("+")
-des.object("+")
 
+local tmpbounds = selection.match("-");
+local bnds = tmpbounds:bounds();
+local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1);
+
+local wiz1 = des.map({ halign = "center", valign = "center", map = [[
+----------------------------x
+|.......|..|.........|.....|x
+|.......S..|.}}}}}}}.|.....|x
+|..--S--|..|.}}---}}.|---S-|x
+|..|....|..|.}--.--}.|..|..|x
+|..|....|..|.}|...|}.|..|..|x
+|..--------|.}--.--}.|..|..|x
+|..|.......|.}}---}}.|..|..|x
+|..S.......|.}}}}}}}.|..|..|x
+|..|.......|.........|..|..|x
+|..|.......|-----------S-S-|x
+|..|.......S...............|x
+----------------------------x
+]], contents = function(rm)
+   des.levregion({ type="stair-up", region={01,00,79,20}, region_islev=1, exclude={0,0,28,12} })
+   des.levregion({ type="stair-down", region={01,00,79,20}, region_islev=1, exclude={0,0,28,12} })
+   des.levregion({ type="branch", region={01,00,79,20}, region_islev=1, exclude={0,0,28,12} })
+   des.teleport_region({ region={01,00,79,20}, region_islev=1, exclude={0,0,27,12} })
+   des.region({ region={12,01, 20,09}, lit=0, type="morgue", filled=2, contents=function()
+                   local sdwall = { "south", "west", "east" };
+                   des.door({ wall = sdwall[math.random(1, #sdwall)], state = "secret" });
+   end })
+   -- another region to constrain monster arrival
+   des.region({ region={01,01, 10,11}, lit=0, type="ordinary", arrival_room=true })
+   des.mazewalk(28,05,"east")
+   des.ladder("down", 06,05)
+   -- Non diggable walls
+   -- Walls inside the moat stay diggable
+   des.non_diggable(selection.area(00,00,11,12))
+   des.non_diggable(selection.area(11,00,21,00))
+   des.non_diggable(selection.area(11,10,27,12))
+   des.non_diggable(selection.area(21,00,27,10))
+   -- Non passable walls
+   des.non_passwall(selection.area(00,00,11,12))
+   des.non_passwall(selection.area(11,00,21,00))
+   des.non_passwall(selection.area(11,10,27,12))
+   des.non_passwall(selection.area(21,00,27,10))
+   -- The wizard and his guards
+   des.monster({ id = "Wizard of Yendor", x=16, y=05, asleep=1 })
+   des.monster("hell hound", 15, 05)
+   des.monster("vampire lord", 17, 05)
+   -- The local treasure
+   des.object("Book of the Dead", 16, 05)
+   -- Surrounding terror
+   des.monster("kraken", 14, 02)
+   des.monster("giant eel", 17, 02)
+   des.monster("kraken", 13, 04)
+   des.monster("giant eel", 13, 06)
+   des.monster("kraken", 19, 04)
+   des.monster("giant eel", 19, 06)
+   des.monster("kraken", 15, 08)
+   des.monster("giant eel", 17, 08)
+   des.monster("piranha", 15, 02)
+   des.monster("piranha", 19, 08)
+   -- Random monsters
+   des.monster("D")
+   des.monster("H")
+   des.monster("&")
+   des.monster("&")
+   des.monster("&")
+   des.monster("&")
+   -- And to make things a little harder.
+   des.trap("board",16,04)
+   des.trap("board",16,06)
+   des.trap("board",15,05)
+   des.trap("board",17,05)
+   -- Random traps.
+   des.trap("spiked pit")
+   des.trap("sleep gas")
+   des.trap("anti magic")
+   des.trap("magic")
+   -- Some random loot.
+   des.object("ruby")
+   des.object("!")
+   des.object("!")
+   des.object("?")
+   des.object("?")
+   des.object("+")
+   des.object("+")
+   des.object("+")
+end
+});
+
+local protected = bounds2:negate() | wiz1;
+hell_tweaks(protected);