]> granicus.if.org Git - nethack/commitdiff
Add hell_tweaks to Orcus' level
authorPasi Kallinen <paxed@alt.org>
Fri, 20 Jan 2023 12:08:34 +0000 (14:08 +0200)
committerPasi Kallinen <paxed@alt.org>
Fri, 20 Jan 2023 12:08:34 +0000 (14:08 +0200)
dat/orcus.lua

index cee7fc79496aa5735dc9df194e4c6ef8a1d17c08..d00aac53c3845eab9b1e7f361736a8fc38a1f0b9 100644 (file)
@@ -6,8 +6,13 @@
 des.level_init({ style="mazegrid", bg ="-" });
 
 des.level_flags("mazelevel", "shortsighted")
+
+local tmpbounds = selection.match("-");
+local bnds = tmpbounds:bounds();
+local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1);
+
 -- A ghost town
-des.map({ halign = "right", valign = "center", map = [[
+local orcus1 = des.map({ halign = "right", valign = "center", map = [[
 .|....|....|....|..............|....|........
 .|....|....|....|..............|....|........
 .|....|....|....|--...-+-------|.............
@@ -25,118 +30,123 @@ des.map({ halign = "right", valign = "center", map = [[
 .|....|..............|....+....|.............
 .|....+.......|......|....|....|.............
 .|....|.......|......|....|....|.............
-]] });
-des.mazewalk(00,06,"west")
--- Entire main area
-des.region(selection.area(01,00,44,16),"unlit")
-des.stair("down", 33,15)
+]], contents = function(rm)
+   des.mazewalk(00,06,"west")
+   -- Entire main area
+   des.region(selection.area(01,00,44,16),"unlit")
+   des.stair("down", 33,15)
+   -- Wall "ruins"
+   des.object("boulder",19,02)
+   des.object("boulder",20,02)
+   des.object("boulder",21,02)
+   des.object("boulder",36,02)
+   des.object("boulder",36,03)
+   des.object("boulder",06,04)
+   des.object("boulder",05,05)
+   des.object("boulder",06,05)
+   des.object("boulder",07,05)
+   des.object("boulder",39,05)
+   des.object("boulder",08,08)
+   des.object("boulder",09,08)
+   des.object("boulder",10,08)
+   des.object("boulder",11,08)
+   des.object("boulder",06,10)
+   des.object("boulder",05,11)
+   des.object("boulder",06,11)
+   des.object("boulder",07,11)
+   des.object("boulder",21,11)
+   des.object("boulder",21,12)
+   des.object("boulder",13,13)
+   des.object("boulder",14,13)
+   des.object("boulder",15,13)
+   des.object("boulder",14,14)
+   -- Doors
+   des.door("closed",23,02)
+   des.door("open",31,03)
+   des.door("nodoor",03,05)
+   des.door("closed",09,05)
+   des.door("closed",14,05)
+   des.door("closed",41,05)
+   des.door("open",03,08)
+   des.door("nodoor",13,08)
+   des.door("open",41,08)
+   des.door("closed",24,09)
+   des.door("closed",31,11)
+   des.door("open",11,13)
+   des.door("closed",18,13)
+   des.door("closed",41,13)
+   des.door("open",26,14)
+   des.door("closed",06,15)
+   -- Special rooms
+   des.altar({ x=24,y=07,align="noalign",type="sanctum" })
+   des.region({ region={22,12,25,16},lit=0,type="morgue",filled=1 })
+   des.region({ region={32,09,37,12},lit=1,type="shop",filled=1 })
+   des.region({ region={12,00,15,04},lit=1,type="shop",filled=1 })
+   -- Some traps.
+   des.trap("spiked pit")
+   des.trap("sleep gas")
+   des.trap("anti magic")
+   des.trap("fire")
+   des.trap("fire")
+   des.trap("fire")
+   des.trap("magic")
+   des.trap("magic")
+   -- Some random objects
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   des.object()
+   -- The resident nasty
+   des.monster("Orcus",33,15)
+   -- And its preferred companions
+   des.monster("human zombie",32,15)
+   des.monster("shade",32,14)
+   des.monster("shade",32,16)
+   des.monster("vampire",35,16)
+   des.monster("vampire",35,14)
+   des.monster("vampire lord",36,14)
+   des.monster("vampire lord",36,15)
+   -- Randomly placed companions
+   des.monster("skeleton")
+   des.monster("skeleton")
+   des.monster("skeleton")
+   des.monster("skeleton")
+   des.monster("skeleton")
+   des.monster("shade")
+   des.monster("shade")
+   des.monster("shade")
+   des.monster("shade")
+   des.monster("giant zombie")
+   des.monster("giant zombie")
+   des.monster("giant zombie")
+   des.monster("ettin zombie")
+   des.monster("ettin zombie")
+   des.monster("ettin zombie")
+   des.monster("human zombie")
+   des.monster("human zombie")
+   des.monster("human zombie")
+   des.monster("vampire")
+   des.monster("vampire")
+   des.monster("vampire")
+   des.monster("vampire lord")
+   des.monster("vampire lord")
+   -- A few more for the party
+   des.monster()
+   des.monster()
+   des.monster()
+   des.monster()
+   des.monster()
+end });
+
 des.levregion({ region={01,00,12,20}, region_islev=1, exclude={20,01,70,20}, exclude_islev=1, type="stair-up" });
 des.levregion({ region={01,00,12,20}, region_islev=1, exclude={20,01,70,20}, exclude_islev=1, type="branch" });
 des.teleport_region({ region={01,00,12,20}, region_islev=1, exclude={20,01,70,20}, exclude_islev=1 });
--- Wall "ruins"
-des.object("boulder",19,02)
-des.object("boulder",20,02)
-des.object("boulder",21,02)
-des.object("boulder",36,02)
-des.object("boulder",36,03)
-des.object("boulder",06,04)
-des.object("boulder",05,05)
-des.object("boulder",06,05)
-des.object("boulder",07,05)
-des.object("boulder",39,05)
-des.object("boulder",08,08)
-des.object("boulder",09,08)
-des.object("boulder",10,08)
-des.object("boulder",11,08)
-des.object("boulder",06,10)
-des.object("boulder",05,11)
-des.object("boulder",06,11)
-des.object("boulder",07,11)
-des.object("boulder",21,11)
-des.object("boulder",21,12)
-des.object("boulder",13,13)
-des.object("boulder",14,13)
-des.object("boulder",15,13)
-des.object("boulder",14,14)
--- Doors
-des.door("closed",23,02)
-des.door("open",31,03)
-des.door("nodoor",03,05)
-des.door("closed",09,05)
-des.door("closed",14,05)
-des.door("closed",41,05)
-des.door("open",03,08)
-des.door("nodoor",13,08)
-des.door("open",41,08)
-des.door("closed",24,09)
-des.door("closed",31,11)
-des.door("open",11,13)
-des.door("closed",18,13)
-des.door("closed",41,13)
-des.door("open",26,14)
-des.door("closed",06,15)
--- Special rooms
-des.altar({ x=24,y=07,align="noalign",type="sanctum" })
-des.region({ region={22,12,25,16},lit=0,type="morgue",filled=1 })
-des.region({ region={32,09,37,12},lit=1,type="shop",filled=1 })
-des.region({ region={12,00,15,04},lit=1,type="shop",filled=1 })
--- Some traps.
-des.trap("spiked pit")
-des.trap("sleep gas")
-des.trap("anti magic")
-des.trap("fire")
-des.trap("fire")
-des.trap("fire")
-des.trap("magic")
-des.trap("magic")
--- Some random objects
-des.object()
-des.object()
-des.object()
-des.object()
-des.object()
-des.object()
-des.object()
-des.object()
-des.object()
-des.object()
--- The resident nasty
-des.monster("Orcus",33,15)
--- And its preferred companions
-des.monster("human zombie",32,15)
-des.monster("shade",32,14)
-des.monster("shade",32,16)
-des.monster("vampire",35,16)
-des.monster("vampire",35,14)
-des.monster("vampire lord",36,14)
-des.monster("vampire lord",36,15)
--- Randomly placed companions
-des.monster("skeleton")
-des.monster("skeleton")
-des.monster("skeleton")
-des.monster("skeleton")
-des.monster("skeleton")
-des.monster("shade")
-des.monster("shade")
-des.monster("shade")
-des.monster("shade")
-des.monster("giant zombie")
-des.monster("giant zombie")
-des.monster("giant zombie")
-des.monster("ettin zombie")
-des.monster("ettin zombie")
-des.monster("ettin zombie")
-des.monster("human zombie")
-des.monster("human zombie")
-des.monster("human zombie")
-des.monster("vampire")
-des.monster("vampire")
-des.monster("vampire")
-des.monster("vampire lord")
-des.monster("vampire lord")
--- A few more for the party
-des.monster()
-des.monster()
-des.monster()
-des.monster()
-des.monster()
+
+local protected = bounds2:negate() | orcus1;
+hell_tweaks(protected);