des.level_init({ style="mazegrid", bg ="-" });
des.level_flags("mazelevel", "noteleport", "hardfloor")
-des.map([[
-----------------------------.
-|.....|.S....|.............|.
-|.....|.-------S--------S--|.
-|.....|.|.........|........|.
-|..-S--S|.........|........|.
-|..|....|.........|------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} })
--- entire tower in a region, constrains monster migration
-des.region({ region={01,01, 26,11}, lit=0, type="ordinary", arrival_room=true })
-des.region({ region={09,03, 17,09}, lit=0, type="zoo", filled=1 })
-des.door("closed",15,02)
-des.door("closed",11,10)
-des.mazewalk(28,05,"east")
-des.ladder("up", 12,01)
-des.ladder("down", 14,11)
--- Non diggable walls everywhere
-des.non_diggable(selection.area(00,00,27,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))
--- Random traps.
-des.trap("spiked pit")
-des.trap("sleep gas")
-des.trap("anti magic")
-des.trap("magic")
--- Some random loot.
-des.object("!")
-des.object("!")
-des.object("?")
-des.object("?")
-des.object("+")
--- treasures
-des.object("\"", 04, 06)
+
+local tmpbounds = selection.match("-");
+local bnds = tmpbounds:bounds();
+local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1);
+
+local wiz2 = des.map({ halign = "center", valign = "center", map = [[
+----------------------------x
+|.....|.S....|.............|x
+|.....|.-------S--------S--|x
+|.....|.|.........|........|x
+|..-S--S|.........|........|x
+|..|....|.........|------S-|x
+|..|....|.........|.....|..|x
+|-S-----|.........|.....|..|x
+|.......|.........|S--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} })
+ -- entire tower in a region, constrains monster migration
+ des.region({ region={01,01, 26,11}, lit=0, type="ordinary", arrival_room=true })
+ des.region({ region={09,03, 17,09}, lit=0, type="zoo", filled=1 })
+ des.door("closed",15,02)
+ des.door("closed",11,10)
+ des.mazewalk(28,05,"east")
+ des.ladder("up", 12,01)
+ des.ladder("down", 14,11)
+ -- Non diggable walls everywhere
+ des.non_diggable(selection.area(00,00,27,12))
+ --
+ des.non_passwall(selection.area(00,00,27,12))
+ -- Random traps.
+ des.trap("spiked pit")
+ des.trap("sleep gas")
+ des.trap("anti magic")
+ des.trap("magic")
+ -- Some random loot.
+ des.object("!")
+ des.object("!")
+ des.object("?")
+ des.object("?")
+ des.object("+")
+ -- treasures
+ des.object("\"", 04, 06)
+end
+});
+
+local protected = bounds2:negate() | wiz2;
+hell_tweaks(protected);