From: Pasi Kallinen Date: Mon, 30 Jan 2023 15:47:21 +0000 (+0200) Subject: Add helltweaks to wizard3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a4c15f23bc585d7c79ed3ab245f390a5d89057b7;p=nethack Add helltweaks to wizard3 --- diff --git a/dat/wizard3.lua b/dat/wizard3.lua index 55b283a07..3166d799c 100644 --- a/dat/wizard3.lua +++ b/dat/wizard3.lua @@ -6,75 +6,85 @@ des.level_init({ style="mazegrid", bg ="-" }); des.level_flags("mazelevel", "noteleport", "hardfloor") -des.map([[ -----------------------------. -|..|............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.levregion({ region={25,11,25,11}, type="portal", name="fakewiz1" }); -des.mazewalk(28,09,"east") -des.region({ region={07,03, 15,11}, lit=0 ,type="morgue", filled=2 }) -des.region({ region={17,06, 18,11}, lit=0, type="beehive", filled=1 }) --- make the entry chamber a real room; it affects monster arrival -des.region({ region={20,06,26,11},lit=0,type="ordinary",arrival_room=true, - contents = function() - local w = "north"; - if percent(50) then w = "west" end - des.door({ state="secret", wall=w }) - end + +local tmpbounds = selection.match("-"); +local bnds = tmpbounds:bounds(); +local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1); + +local wiz3 = des.map({ halign = "center", valign = "center", map = [[ +----------------------------x +|..|............S..........|x +|..|..------------------S--|x +|..|..|.........|..........|x +|..S..|.}}}}}}}.|..........|x +|..|..|.}}---}}.|-S--------|x +|..|..|.}--.--}.|..|.......|x +|..|..|.}|...|}.|..|.......|x +|..---|.}--.--}.|..|.......|x +|.....|.}}---}}.|..|.......|x +|.....S.}}}}}}}.|..|.......|x +|.....|.........|..|.......|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.levregion({ region={25,11,25,11}, type="portal", name="fakewiz1" }); + des.mazewalk(28,09,"east") + des.region({ region={07,03, 15,11}, lit=0 ,type="morgue", filled=2 }) + des.region({ region={17,06, 18,11}, lit=0, type="beehive", filled=1 }) + -- make the entry chamber a real room; it affects monster arrival + des.region({ region={20,06,26,11},lit=0,type="ordinary",arrival_room=true, + contents = function() + local w = "north"; + if percent(50) then w = "west" end + des.door({ state="secret", wall=w }) + end + }); + des.door("closed",18,05) + des.ladder("up", 11,07) + -- Non diggable walls + -- Walls inside the moat stay diggable + des.non_diggable(selection.area(00,00,06,12)) + des.non_diggable(selection.area(06,00,27,02)) + des.non_diggable(selection.area(16,02,27,12)) + des.non_diggable(selection.area(06,12,16,12)) + -- + des.non_passwall(selection.area(00,00,06,12)) + des.non_passwall(selection.area(06,00,27,02)) + des.non_passwall(selection.area(16,02,27,12)) + des.non_passwall(selection.area(06,12,16,12)) + -- + des.monster("L", 10, 07) + des.monster("vampire lord", 12, 07) + -- Some surrounding horrors + des.monster("kraken", 08, 05) + des.monster("giant eel", 08, 08) + des.monster("kraken", 14, 05) + des.monster("giant eel", 14, 08) + -- Other monsters + des.monster("L") + des.monster("D") + des.monster("D", 26, 09) + des.monster("&") + des.monster("&") + des.monster("&") + -- And to make things a little harder. + des.trap("board",10,07) + des.trap("board",12,07) + des.trap("board",11,06) + des.trap("board",11,08) + -- Some loot + des.object(")") + des.object("!") + des.object("?") + des.object("?") + des.object("(") + -- treasures + des.object("\"", 11, 07) +end }); -des.door("closed",18,05) -des.ladder("up", 11,07) --- Non diggable walls --- Walls inside the moat stay diggable -des.non_diggable(selection.area(00,00,06,12)) -des.non_diggable(selection.area(06,00,27,02)) -des.non_diggable(selection.area(16,02,27,12)) -des.non_diggable(selection.area(06,12,16,12)) --- -des.non_passwall(selection.area(00,00,06,12)) -des.non_passwall(selection.area(06,00,27,02)) -des.non_passwall(selection.area(16,02,27,12)) -des.non_passwall(selection.area(06,12,16,12)) --- -des.monster("L", 10, 07) -des.monster("vampire lord", 12, 07) --- Some surrounding horrors -des.monster("kraken", 08, 05) -des.monster("giant eel", 08, 08) -des.monster("kraken", 14, 05) -des.monster("giant eel", 14, 08) --- Other monsters -des.monster("L") -des.monster("D") -des.monster("D", 26, 09) -des.monster("&") -des.monster("&") -des.monster("&") --- And to make things a little harder. -des.trap("board",10,07) -des.trap("board",12,07) -des.trap("board",11,06) -des.trap("board",11,08) --- Some loot -des.object(")") -des.object("!") -des.object("?") -des.object("?") -des.object("(") --- treasures -des.object("\"", 11, 07) + +local protected = bounds2:negate() | wiz3; +hell_tweaks(protected);