Use lua for special level files

Game is playable, and should compile on linux and Windows.
Assumes you have a lua 5.3 library available.

Removes level compiler and associated files.
Replaces special level des-files with lua scripts.
Exposes some NetHack internals to lua:
 - des-table with commands to create special levels
 - nh-table with NetHack core commands
 - nhc-table with some constants
 - u-table with some player-specific data (u-struct)
 - selection userdata

Adds some rudimentary tests.

Adds new extended command #wizloadlua to run a specific script,
and #wizloaddes to run a specific level-creation script.

nhlib.lua is loaded for every lua script.

Download and untar lua:
  mkdir lib
  cd lib
  curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
  tar zxf lua-5.3.5.tar.gz

Then make nethack normally.
This commit is contained in:
Pasi Kallinen
2019-05-10 21:11:50 +03:00
parent 3e029d2900
commit fd55d9118e
189 changed files with 16653 additions and 27346 deletions

59
dat/Arc-fila.lua Normal file
View File

@@ -0,0 +1,59 @@
-- NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster("S")
end
});
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster("S")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster("S")
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.monster("S")
des.monster("human mummy")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster("S")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.monster("S")
end
})
des.random_corridors()

59
dat/Arc-filb.lua Normal file
View File

@@ -0,0 +1,59 @@
-- NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster("M")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster("M")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster("M")
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.monster("S")
des.monster("human mummy")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster("S")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.monster("S")
end
})
des.random_corridors()

115
dat/Arc-goal.lua Normal file
View File

@@ -0,0 +1,115 @@
-- NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
---------
|..|.|..|
-----------|..S.S..|-----------
|.|........|+-|.|-+|........|.|
|.S........S..|.|..S........S.|
|.|........|..|.|..|........|.|
------------------+------------------
|..|..........|.......|..........|..|
|..|..........+.......|..........S..|
|..S..........|.......+..........|..|
|..|..........|.......|..........|..|
------------------+------------------
|.|........|..|.|..|........|.|
|.S........S..|.|..S........S.|
|.|........|+-|.|-+|........|.|
-----------|..S.S..|-----------
|..|.|..|
---------
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region(selection.area(35,02,36,03), "unlit")
des.region(selection.area(40,02,41,03), "unlit")
des.region(selection.area(24,04,24,06), "unlit")
des.region(selection.area(26,04,33,06), "lit")
des.region(selection.area(38,02,38,06), "unlit")
des.region(selection.area(43,04,50,06), "lit")
des.region(selection.area(52,04,52,06), "unlit")
des.region(selection.area(35,05,36,06), "unlit")
des.region(selection.area(40,05,41,06), "unlit")
des.region(selection.area(21,08,22,11), "unlit")
des.region(selection.area(24,08,33,11), "lit")
des.region(selection.area(35,08,41,11), "unlit")
des.region(selection.area(43,08,52,11), "lit")
des.region(selection.area(54,08,55,11), "unlit")
des.region(selection.area(24,13,24,15), "unlit")
des.region(selection.area(26,13,33,15), "unlit")
des.region(selection.area(35,13,36,14), "unlit")
des.region(selection.area(35,16,36,17), "unlit")
des.region(selection.area(38,13,38,17), "unlit")
des.region(selection.area(40,13,41,14), "unlit")
des.region(selection.area(40,16,41,17), "unlit")
des.region({ region={43,13, 50,15}, lit=0, type="temple", prefilled=0 })
des.region(selection.area(52,13,52,15), "unlit")
-- Stairs
des.stair("up", 38,10)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- The altar of Huhetotl. Unattended.
des.altar({ x=50,y=14,align="chaos",type="altar" })
-- Objects
des.object({ id = "crystal ball", x=50, y=14,buc="blessed",spe=5,name="The Orb of Detection" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap("rolling boulder",46,14)
-- Random monsters.
des.monster("Minion of Huhetotl", 50, 14)
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("M")

145
dat/Arc-loca.lua Normal file
View File

@@ -0,0 +1,145 @@
-- NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
des.map([[
............................................................................
............................................................................
............................................................................
........................-------------------------------.....................
........................|....|.S......................|.....................
........................|....|.|.|+------------------.|.....................
........................|....|.|.|.|.........|......|.|.....................
........................|....|.|.|.|.........|......|.|.....................
........................|---+-.|.|.|..---....+......|.|.....................
........................|....|.|.|.---|.|....|......|.|.....................
........................|....S.|.|.+..S.|--S-----S--|.|.....................
........................|....|.|.|.---|.|....|......+.|.....................
........................|---+-.|.|.|..---....|.------.|.....................
........................|....|.|.|.|.........|.|....+.|.....................
........................|....|.|.|.|.........|+|....|-|.....................
........................|....|.|.|------------+------.S.....................
........................|....|.S......................|.....................
........................-------------------------------.....................
............................................................................
............................................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region({ region={25,04, 28,07}, lit=1, type="temple", prefilled=0 })
des.region({ region={25,09, 28,11}, lit=0, type="temple", prefilled=0 })
des.region({ region={25,13, 28,16}, lit=1, type="temple", prefilled=0 })
des.region(selection.area(30,04,30,16), "lit")
des.region(selection.area(32,04,32,16), "unlit")
des.region({ region={33,04, 53,04}, lit=0, type="ordinary", prefilled=0, irregular=1 })
des.region(selection.area(36,10,37,10), "unlit")
des.region(selection.area(39,09,39,11), "unlit")
des.region({ region={36,06, 42,08}, lit=0, type="ordinary", prefilled=0, irregular=1 })
des.region({ region={36,12, 42,14}, lit=0, type="ordinary", prefilled=0, irregular=1 })
des.region(selection.area(46,06,51,09), "unlit")
des.region({ region={46,11, 49,11}, lit=0, type="ordinary", prefilled=0, irregular=1 })
des.region(selection.area(48,13,51,14), "unlit")
-- Doors
des.door("closed",31,04)
des.door("closed",28,08)
des.door("locked",29,10)
des.door("closed",28,12)
des.door("closed",31,16)
des.door("locked",34,05)
des.door("locked",35,10)
des.door("locked",38,10)
des.door("closed",43,10)
des.door("closed",45,08)
des.door("locked",46,14)
des.door("locked",46,15)
des.door("locked",49,10)
des.door("locked",52,11)
des.door("closed",52,13)
des.door("closed",54,15)
-- Stairs
des.stair("up", 03,17)
des.stair("down", 39,10)
-- Altars - three types. All are unattended.
des.altar({ x=26,y=05,align=align[1], type="altar" })
des.altar({ x=26,y=10,align=align[2], type="altar" })
des.altar({ x=26,y=15,align=align[3], type="altar" })
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Treasure?
des.engraving({ type="engrave", text="X marks the spot." })
des.engraving({ type="engrave", text="X marks the spot." })
des.engraving({ type="engrave", text="X marks the spot." })
des.engraving({ type="engrave", text="X marks the spot." })
-- Random traps
des.trap("spiked pit",24,02)
des.trap("spiked pit",37,00)
des.trap("spiked pit",23,05)
des.trap("spiked pit",26,19)
des.trap("spiked pit",55,10)
des.trap("spiked pit",55,08)
des.trap("pit",51,01)
des.trap("pit",23,18)
des.trap("pit",31,18)
des.trap("pit",48,19)
des.trap("pit",55,15)
des.trap("magic",60,04)
des.trap("statue",72,07)
des.trap("statue")
des.trap("statue")
des.trap("anti magic",64,12)
des.trap("sleep gas")
des.trap("sleep gas")
des.trap("dart")
des.trap("dart")
des.trap("dart")
des.trap("rolling boulder",32,10)
des.trap("rolling boulder",40,16)
-- Random monsters.
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("S")
des.monster("M")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("human mummy")
des.monster("M")

113
dat/Arc-strt.lua Normal file
View File

@@ -0,0 +1,113 @@
-- NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Lord Carnarvon
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
............................................................................
............................................................................
............................................................................
............................................................................
....................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.................
....................}-------------------------------------}.................
....................}|..S......+.................+.......|}.................
....................}-S---------------+----------|.......|}.................
....................}|.|...............|.......+.|.......|}.................
....................}|.|...............---------.---------}.................
....................}|.S.\.............+.................+..................
....................}|.|...............---------.---------}.................
....................}|.|...............|.......+.|.......|}.................
....................}-S---------------+----------|.......|}.................
....................}|..S......+.................+.......|}.................
....................}-------------------------------------}.................
....................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.................
............................................................................
............................................................................
............................................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region(selection.area(22,06,23,06), "unlit")
des.region(selection.area(25,06,30,06), "unlit")
des.region(selection.area(32,06,48,06), "unlit")
des.region(selection.area(50,06,56,08), "lit")
des.region(selection.area(40,08,46,08), "unlit")
des.region(selection.area(22,08,22,12), "unlit")
des.region(selection.area(24,08,38,12), "unlit")
des.region(selection.area(48,08,48,08), "lit")
des.region(selection.area(40,10,56,10), "lit")
des.region(selection.area(48,12,48,12), "lit")
des.region(selection.area(40,12,46,12), "unlit")
des.region(selection.area(50,12,56,14), "lit")
des.region(selection.area(22,14,23,14), "unlit")
des.region(selection.area(25,14,30,14), "unlit")
des.region(selection.area(32,14,48,14), "unlit")
-- Stairs
des.stair("down", 55,07)
-- Portal arrival point
des.levregion({ region = {63,06,63,06}, type="branch" })
-- Doors
des.door("closed",22,07)
des.door("closed",38,07)
des.door("locked",47,08)
des.door("locked",23,10)
des.door("locked",39,10)
des.door("locked",57,10)
des.door("locked",47,12)
des.door("closed",22,13)
des.door("closed",38,13)
des.door("locked",24,14)
des.door("closed",31,14)
des.door("locked",49,14)
-- Lord Carnarvon
des.monster("Lord Carnarvon", 25, 10)
-- The treasure of Lord Carnarvon
des.object("chest", 25, 10)
-- student guards for the audience chamber
des.monster("student", 26, 09)
des.monster("student", 27, 09)
des.monster("student", 28, 09)
des.monster("student", 26, 10)
des.monster("student", 28, 10)
des.monster("student", 26, 11)
des.monster("student", 27, 11)
des.monster("student", 28, 11)
-- city watch guards in the antechambers
des.monster("watchman", 50, 06)
des.monster("watchman", 50, 14)
-- Eels in the moat
des.monster("giant eel", 20, 10)
des.monster("giant eel", 45, 04)
des.monster("giant eel", 33, 16)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster("S", 60, 09)
des.monster("M", 60, 10)
des.monster("S", 60, 11)
des.monster("S", 60, 12)
des.monster("M", 60, 13)
des.monster("S", 61, 10)
des.monster("S", 61, 11)
des.monster("S", 61, 12)
des.monster("S", 30, 03)
des.monster("M", 20, 17)
des.monster("S", 67, 02)
des.monster("S", 10, 19)

View File

@@ -1,472 +0,0 @@
# NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Lord Carnarvon
# and receive your quest assignment.
#
MAZE: "Arc-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
............................................................................
............................................................................
............................................................................
............................................................................
....................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.................
....................}-------------------------------------}.................
....................}|..S......+.................+.......|}.................
....................}-S---------------+----------|.......|}.................
....................}|.|...............|.......+.|.......|}.................
....................}|.|...............---------.---------}.................
....................}|.S.\.............+.................+..................
....................}|.|...............---------.---------}.................
....................}|.|...............|.......+.|.......|}.................
....................}-S---------------+----------|.......|}.................
....................}|..S......+.................+.......|}.................
....................}-------------------------------------}.................
....................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.................
............................................................................
............................................................................
............................................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION: (22,06,23,06),unlit,"ordinary"
REGION: (25,06,30,06),unlit,"ordinary"
REGION: (32,06,48,06),unlit,"ordinary"
REGION: (50,06,56,08),lit,"ordinary"
REGION: (40,08,46,08),unlit,"ordinary"
REGION: (22,08,22,12),unlit,"ordinary"
REGION: (24,08,38,12),unlit,"ordinary"
REGION: (48,08,48,08),lit,"ordinary"
REGION: (40,10,56,10),lit,"ordinary"
REGION: (48,12,48,12),lit,"ordinary"
REGION: (40,12,46,12),unlit,"ordinary"
REGION: (50,12,56,14),lit,"ordinary"
REGION: (22,14,23,14),unlit,"ordinary"
REGION: (25,14,30,14),unlit,"ordinary"
REGION: (32,14,48,14),unlit,"ordinary"
# Stairs
STAIR:(55,07),down
# Portal arrival point
BRANCH:(63,06,63,06),(0,0,0,0)
# Doors
DOOR:closed,(22,07)
DOOR:closed,(38,07)
DOOR:locked,(47,08)
DOOR:locked,(23,10)
DOOR:locked,(39,10)
DOOR:locked,(57,10)
DOOR:locked,(47,12)
DOOR:closed,(22,13)
DOOR:closed,(38,13)
DOOR:locked,(24,14)
DOOR:closed,(31,14)
DOOR:locked,(49,14)
# Lord Carnarvon
MONSTER:('@',"Lord Carnarvon"),(25,10)
# The treasure of Lord Carnarvon
OBJECT:('(',"chest"),(25,10)
# student guards for the audience chamber
MONSTER:('@',"student"),(26,09)
MONSTER:('@',"student"),(27,09)
MONSTER:('@',"student"),(28,09)
MONSTER:('@',"student"),(26,10)
MONSTER:('@',"student"),(28,10)
MONSTER:('@',"student"),(26,11)
MONSTER:('@',"student"),(27,11)
MONSTER:('@',"student"),(28,11)
# city watch guards in the antechambers
MONSTER:('@',"watchman"),(50,06)
MONSTER:('@',"watchman"),(50,14)
# Eels in the moat
MONSTER:(';',"giant eel"),(20,10)
MONSTER:(';',"giant eel"),(45,04)
MONSTER:(';',"giant eel"),(33,16)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: 'S',(60,09)
MONSTER: 'M',(60,10)
MONSTER: 'S',(60,11)
MONSTER: 'S',(60,12)
MONSTER: 'M',(60,13)
MONSTER: 'S',(61,10)
MONSTER: 'S',(61,11)
MONSTER: 'S',(61,12)
MONSTER: 'S',(30,03)
MONSTER: 'M',(20,17)
MONSTER: 'S',(67,02)
MONSTER: 'S',(10,19)
#
# The "locate" level for the quest.
#
# Here you have to find the Entrance to the Tomb of the Toltec Kings
# to go further towards your assigned quest.
#
MAZE: "Arc-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
MAP
............................................................................
............................................................................
............................................................................
........................-------------------------------.....................
........................|....|.S......................|.....................
........................|....|.|.|+------------------.|.....................
........................|....|.|.|.|.........|......|.|.....................
........................|....|.|.|.|.........|......|.|.....................
........................|---+-.|.|.|..---....+......|.|.....................
........................|....|.|.|.---|.|....|......|.|.....................
........................|....S.|.|.+..S.|--S-----S--|.|.....................
........................|....|.|.|.---|.|....|......+.|.....................
........................|---+-.|.|.|..---....|.------.|.....................
........................|....|.|.|.|.........|.|....+.|.....................
........................|....|.|.|.|.........|+|....|-|.....................
........................|....|.|.|------------+------.S.....................
........................|....|.S......................|.....................
........................-------------------------------.....................
............................................................................
............................................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(25,04,28,07),lit,"temple"
REGION:(25,09,28,11),unlit,"temple"
REGION:(25,13,28,16),lit,"temple"
REGION:(30,04,30,16),lit,"ordinary"
REGION:(32,04,32,16),unlit,"ordinary"
REGION:(33,04,53,04),unlit,"ordinary",unfilled,irregular
REGION:(36,10,37,10),unlit,"ordinary"
REGION:(39,09,39,11),unlit,"ordinary"
REGION:(36,06,42,08),unlit,"ordinary",unfilled,irregular
REGION:(36,12,42,14),unlit,"ordinary",unfilled,irregular
REGION:(46,06,51,09),unlit,"ordinary"
REGION:(46,11,49,11),unlit,"ordinary",unfilled,irregular
REGION:(48,13,51,14),unlit,"ordinary"
# Doors
DOOR:closed,(31,04)
DOOR:closed,(28,08)
DOOR:locked,(29,10)
DOOR:closed,(28,12)
DOOR:closed,(31,16)
DOOR:locked,(34,05)
DOOR:locked,(35,10)
DOOR:locked,(38,10)
DOOR:closed,(43,10)
DOOR:closed,(45,08)
DOOR:locked,(46,14)
DOOR:locked,(46,15)
DOOR:locked,(49,10)
DOOR:locked,(52,11)
DOOR:closed,(52,13)
DOOR:closed,(54,15)
# Stairs
STAIR:(03,17),up
STAIR:(39,10),down
# Altars - three types. All are unattended.
ALTAR:(26,05),align[0],altar
ALTAR:(26,10),align[1],altar
ALTAR:(26,15),align[2],altar
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Treasure?
ENGRAVING:random,engrave,"X marks the spot."
ENGRAVING:random,engrave,"X marks the spot."
ENGRAVING:random,engrave,"X marks the spot."
ENGRAVING:random,engrave,"X marks the spot."
# Random traps
TRAP:"spiked pit",(24,02)
TRAP:"spiked pit",(37,00)
TRAP:"spiked pit",(23,05)
TRAP:"spiked pit",(26,19)
TRAP:"spiked pit",(55,10)
TRAP:"spiked pit",(55,08)
TRAP:"pit",(51,01)
TRAP:"pit",(23,18)
TRAP:"pit",(31,18)
TRAP:"pit",(48,19)
TRAP:"pit",(55,15)
TRAP:"magic",(60,04)
TRAP:"statue",(72,07)
TRAP:"statue",random
TRAP:"statue",random
TRAP:"anti magic",(64,12)
TRAP:"sleep gas",random
TRAP:"sleep gas",random
TRAP:"dart",random
TRAP:"dart",random
TRAP:"dart",random
TRAP:"rolling boulder",(32,10)
TRAP:"rolling boulder",(40,16)
# Random monsters.
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'M',random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:'M',random
#
# The "goal" level for the quest.
#
# Here you meet Minion of Huhetotl your nemesis monster. You have to
# defeat Minion of Huhetotl in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Arc-goal", ' '
GEOMETRY:center,center
MAP
---------
|..|.|..|
-----------|..S.S..|-----------
|.|........|+-|.|-+|........|.|
|.S........S..|.|..S........S.|
|.|........|..|.|..|........|.|
------------------+------------------
|..|..........|.......|..........|..|
|..|..........+.......|..........S..|
|..S..........|.......+..........|..|
|..|..........|.......|..........|..|
------------------+------------------
|.|........|..|.|..|........|.|
|.S........S..|.|..S........S.|
|.|........|+-|.|-+|........|.|
-----------|..S.S..|-----------
|..|.|..|
---------
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(35,02,36,03),unlit,"ordinary"
REGION:(40,02,41,03),unlit,"ordinary"
REGION:(24,04,24,06),unlit,"ordinary"
REGION:(26,04,33,06),lit,"ordinary"
REGION:(38,02,38,06),unlit,"ordinary"
REGION:(43,04,50,06),lit,"ordinary"
REGION:(52,04,52,06),unlit,"ordinary"
REGION:(35,05,36,06),unlit,"ordinary"
REGION:(40,05,41,06),unlit,"ordinary"
REGION:(21,08,22,11),unlit,"ordinary"
REGION:(24,08,33,11),lit,"ordinary"
REGION:(35,08,41,11),unlit,"ordinary"
REGION:(43,08,52,11),lit,"ordinary"
REGION:(54,08,55,11),unlit,"ordinary"
REGION:(24,13,24,15),unlit,"ordinary"
REGION:(26,13,33,15),unlit,"ordinary"
REGION:(35,13,36,14),unlit,"ordinary"
REGION:(35,16,36,17),unlit,"ordinary"
REGION:(38,13,38,17),unlit,"ordinary"
REGION:(40,13,41,14),unlit,"ordinary"
REGION:(40,16,41,17),unlit,"ordinary"
REGION:(43,13,50,15),unlit,"temple"
REGION:(52,13,52,15),unlit,"ordinary"
# Stairs
STAIR:(38,10),up
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# The altar of Huhetotl. Unattended.
ALTAR:(50,14),chaos,altar
# Objects
OBJECT:('(',"crystal ball"),(50,14),blessed,5,name:"The Orb of Detection"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:"rolling boulder",(46,14)
# Random monsters.
MONSTER:('&',"Minion of Huhetotl"),(50,14)
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:'S',random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:('M',"human mummy"),random
MONSTER:'M',random
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
LEVEL: "Arc-fila"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: 'S', random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: 'S', random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: 'S', random
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
MONSTER: 'S', random
MONSTER: ('M', "human mummy"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: 'S', random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
MONSTER: 'S', random
}
RANDOM_CORRIDORS
LEVEL: "Arc-filb"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: 'M', random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: 'M', random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: 'M', random
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
MONSTER: 'S', random
MONSTER: ('M', "human mummy"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: 'S', random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
MONSTER: 'S', random
}
RANDOM_CORRIDORS

33
dat/Bar-fila.lua Normal file
View File

@@ -0,0 +1,33 @@
-- NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg=".", smoothed=true, joined=true, lit=0, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ class = "O", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })

44
dat/Bar-filb.lua Normal file
View File

@@ -0,0 +1,44 @@
-- NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg=" ", smoothed=true, joined=true, lit=0, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ class = "O", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ class = "T", peaceful=0 })

95
dat/Bar-goal.lua Normal file
View File

@@ -0,0 +1,95 @@
-- NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
.............
..................
.... ......................... ....
....... .......................... .......
...... ........................ .......
.. ...................................... ..
.. ..................... ..
.. .................. ..
.. ..S...S.............. ................
.. ........ ...
......... ..
...... .. ... ....
.. ... .. ...... ........
.... .. .................. ........ ......
...... ...................... ...... ..
.... .................. ...........
..............
...........
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "unlit")
-- Secret doors
des.door("locked",22,09)
des.door("locked",26,09)
-- Stairs
des.stair("up", 36,05)
-- The altar. Unattended.
des.altar({ x=63,y=04,align="noncoaligned", type="altar" })
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object({ id = "luckstone", x=63, y=04,buc="blessed",spe=0,name="The Heart of Ahriman" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "Thoth Amon", x=63, y=04, peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ class = "O", peaceful=0 })
des.monster({ class = "O", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ class = "T", peaceful=0 })
des.wallify()

107
dat/Bar-loca.lua Normal file
View File

@@ -0,0 +1,107 @@
-- NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
des.map([[
..........PPP.........................................
...........PP.......................................... .......
..........PP...........-----..........------------------ ..........
...........PP..........+...|..........|....S...........|.. ............
..........PPP..........|...|..........|-----...........|... .............
...........PPP.........-----..........+....+...........|... .............
..........PPPPPPPPP...................+....+...........S.................
........PPPPPPPPPPPPP.........-----...|-----...........|................
......PPPPPPPPPPPPPP..P.......+...|...|....S...........| ...
.....PPPPPPP......P..PPPP.....|...|...------------------.. ...
....PPPPPPP.........PPPPPP....-----........................ ........
...PPPPPPP..........PPPPPPP.................................. ..........
....PPPPPPP........PPPPPPP.................................... ..........
.....PPPPP........PPPPPPP.........-----........................ ........
......PPP..PPPPPPPPPPPP...........+...|......................... .....
..........PPPPPPPPPPP.............|...|......................... ....
..........PPPPPPPPP...............-----......................... .
..............PPP.................................................
...............PP....................................................
................PPP...................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region(selection.area(24,03,26,04), "unlit")
des.region(selection.area(31,08,33,09), "unlit")
des.region(selection.area(35,14,37,15), "unlit")
des.region(selection.area(39,03,54,08), "lit")
des.region(selection.area(56,00,75,08), "unlit")
des.region(selection.area(64,09,75,16), "unlit")
-- Doors
des.door("open",23,03)
des.door("open",30,08)
des.door("open",34,14)
des.door("locked",38,05)
des.door("locked",38,06)
des.door("closed",43,03)
des.door("closed",43,05)
des.door("closed",43,06)
des.door("closed",43,08)
des.door("locked",55,06)
-- Stairs
des.stair("up", 05,02)
des.stair("down", 70,13)
-- Objects
des.object({ x = 42, y = 03 })
des.object({ x = 42, y = 03 })
des.object({ x = 42, y = 03 })
des.object({ x = 41, y = 03 })
des.object({ x = 41, y = 03 })
des.object({ x = 41, y = 03 })
des.object({ x = 41, y = 03 })
des.object({ x = 41, y = 08 })
des.object({ x = 41, y = 08 })
des.object({ x = 42, y = 08 })
des.object({ x = 42, y = 08 })
des.object({ x = 42, y = 08 })
des.object({ x = 71, y = 13 })
des.object({ x = 71, y = 13 })
des.object({ x = 71, y = 13 })
-- Random traps
des.trap("spiked pit",10,13)
des.trap("spiked pit",21,07)
des.trap("spiked pit",67,08)
des.trap("spiked pit",68,09)
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "ogre", x=12, y=09, peaceful=0 })
des.monster({ id = "ogre", x=18, y=11, peaceful=0 })
des.monster({ id = "ogre", x=45, y=05, peaceful=0 })
des.monster({ id = "ogre", x=45, y=06, peaceful=0 })
des.monster({ id = "ogre", x=47, y=05, peaceful=0 })
des.monster({ id = "ogre", x=46, y=05, peaceful=0 })
des.monster({ id = "ogre", x=56, y=03, peaceful=0 })
des.monster({ id = "ogre", x=56, y=04, peaceful=0 })
des.monster({ id = "ogre", x=56, y=05, peaceful=0 })
des.monster({ id = "ogre", x=56, y=06, peaceful=0 })
des.monster({ id = "ogre", x=57, y=03, peaceful=0 })
des.monster({ id = "ogre", x=57, y=04, peaceful=0 })
des.monster({ id = "ogre", x=57, y=05, peaceful=0 })
des.monster({ id = "ogre", x=57, y=06, peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ id = "ogre", peaceful=0 })
des.monster({ class = "O", peaceful=0 })
des.monster({ class = "T", peaceful=0 })
des.monster({ id = "rock troll", x=46, y=06, peaceful=0 })
des.monster({ id = "rock troll", x=47, y=06, peaceful=0 })
des.monster({ id = "rock troll", x=56, y=07, peaceful=0 })
des.monster({ id = "rock troll", x=57, y=07, peaceful=0 })
des.monster({ id = "rock troll", x=70, y=13, peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ id = "rock troll", peaceful=0 })
des.monster({ class = "T", peaceful=0 })

103
dat/Bar-strt.lua Normal file
View File

@@ -0,0 +1,103 @@
-- NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Pelias,
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
..................................PP........................................
...................................PP.......................................
...................................PP.......................................
....................................PP......................................
........--------------......-----....PPP....................................
........|...S........|......+...|...PPP.....................................
........|----........|......|...|....PP.....................................
........|.\..........+......-----...........................................
........|----........|...............PP.....................................
........|...S........|...-----.......PPP....................................
........--------------...+...|......PPPPP...................................
.........................|...|.......PPP....................................
...-----......-----......-----........PP....................................
...|...+......|...+..--+--.............PP...................................
...|...|......|...|..|...|..............PP..................................
...-----......-----..|...|.............PPPP.................................
.....................-----............PP..PP................................
.....................................PP...PP................................
....................................PP...PP.................................
....................................PP....PP................................
]]);
-- the forest beyond the river
des.replace_terrain({ region={37,00, 59,19}, fromterrain=".", toterrain="T", chance=5 })
des.replace_terrain({ region={60,00, 64,19}, fromterrain=".", toterrain="T", chance=10 })
des.replace_terrain({ region={65,00, 75,19}, fromterrain=".", toterrain="T", chance=20 })
-- guarantee a path and free spot for the portal
des.terrain(selection.randline(selection.new(), 37,7, 62,02, 7), ".")
des.terrain({62,02}, ".")
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region(selection.area(09,05,11,05), "unlit")
des.region(selection.area(09,07,11,07), "lit")
des.region(selection.area(09,09,11,09), "unlit")
des.region(selection.area(13,05,20,09), "lit")
des.region(selection.area(29,05,31,06), "lit")
des.region(selection.area(26,10,28,11), "lit")
des.region(selection.area(04,13,06,14), "lit")
des.region(selection.area(15,13,17,14), "lit")
des.region(selection.area(22,14,24,15), "lit")
-- Stairs
des.stair("down", 09,09)
-- Portal arrival point
des.levregion({ region = {62,02,62,02}, type="branch" })
-- Doors
des.door("locked",12,05)
des.door("locked",12,09)
des.door("closed",21,07)
des.door("open",07,13)
des.door("open",18,13)
des.door("open",23,13)
des.door("open",25,10)
des.door("open",28,05)
-- Elder
des.monster("Pelias", 10, 07)
-- The treasure of Pelias
des.object("chest", 09, 05)
-- chieftain guards for the audience chamber
des.monster("chieftain", 10, 05)
des.monster("chieftain", 10, 09)
des.monster("chieftain", 11, 05)
des.monster("chieftain", 11, 09)
des.monster("chieftain", 14, 05)
des.monster("chieftain", 14, 09)
des.monster("chieftain", 16, 05)
des.monster("chieftain", 16, 09)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- One trap to keep the ogres at bay.
des.trap("spiked pit",37,07)
-- Eels in the river
des.monster("giant eel", 36, 01)
des.monster("giant eel", 37, 09)
des.monster("giant eel", 39, 15)
-- Monsters on siege duty.
des.monster({ id = "ogre", x=40, y=08, peaceful=0 })
des.monster({ id = "ogre", x=41, y=06, peaceful=0 })
des.monster({ id = "ogre", x=41, y=07, peaceful=0 })
des.monster({ id = "ogre", x=41, y=08, peaceful=0 })
des.monster({ id = "ogre", x=41, y=09, peaceful=0 })
des.monster({ id = "ogre", x=41, y=10, peaceful=0 })
des.monster({ id = "ogre", x=42, y=06, peaceful=0 })
des.monster({ id = "ogre", x=42, y=07, peaceful=0 })
des.monster({ id = "ogre", x=42, y=08, peaceful=0 })
des.monster({ id = "ogre", x=42, y=09, peaceful=0 })
des.monster({ id = "ogre", x=42, y=10, peaceful=0 })

View File

@@ -1,377 +0,0 @@
# NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Pelias,
# and receive your quest assignment.
#
MAZE: "Bar-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
..................................PP........................................
...................................PP.......................................
...................................PP.......................................
....................................PP......................................
........--------------......-----....PPP....................................
........|...S........|......+...|...PPP.....................................
........|----........|......|...|....PP.....................................
........|.\..........+......-----...........................................
........|----........|...............PP.....................................
........|...S........|...-----.......PPP....................................
........--------------...+...|......PPPPP...................................
.........................|...|.......PPP....................................
...-----......-----......-----........PP....................................
...|...+......|...+..--+--.............PP...................................
...|...|......|...|..|...|..............PP..................................
...-----......-----..|...|.............PPPP.................................
.....................-----............PP..PP................................
.....................................PP...PP................................
....................................PP...PP.................................
....................................PP....PP................................
ENDMAP
# the forest beyond the river
REPLACE_TERRAIN:(37,0,59,19),'.','T', 5%
REPLACE_TERRAIN:(60,0,64,19),'.','T', 10%
REPLACE_TERRAIN:(65,0,75,19),'.','T', 20%
# guarantee a path and free spot for the portal
TERRAIN:(randline (37,7),(62,02),7), '.'
TERRAIN:(62,02),'.'
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(09,05,11,05),unlit,"ordinary"
REGION:(09,07,11,07),lit,"ordinary"
REGION:(09,09,11,09),unlit,"ordinary"
REGION:(13,05,20,09),lit,"ordinary"
REGION:(29,05,31,06),lit,"ordinary"
REGION:(26,10,28,11),lit,"ordinary"
REGION:(04,13,06,14),lit,"ordinary"
REGION:(15,13,17,14),lit,"ordinary"
REGION:(22,14,24,15),lit,"ordinary"
# Stairs
STAIR:(09,09),down
# Portal arrival point
BRANCH:(62,02,62,02),(0,0,0,0)
# Doors
DOOR:locked,(12,05)
DOOR:locked,(12,09)
DOOR:closed,(21,07)
DOOR:open,(07,13)
DOOR:open,(18,13)
DOOR:open,(23,13)
DOOR:open,(25,10)
DOOR:open,(28,05)
# Elder
MONSTER:('@',"Pelias"),(10,07)
# The treasure of Pelias
OBJECT:('(',"chest"),(09,05)
# chieftain guards for the audience chamber
MONSTER:('@',"chieftain"),(10,05)
MONSTER:('@',"chieftain"),(10,09)
MONSTER:('@',"chieftain"),(11,05)
MONSTER:('@',"chieftain"),(11,09)
MONSTER:('@',"chieftain"),(14,05)
MONSTER:('@',"chieftain"),(14,09)
MONSTER:('@',"chieftain"),(16,05)
MONSTER:('@',"chieftain"),(16,09)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# One trap to keep the ogres at bay.
TRAP:"spiked pit",(37,07)
# Eels in the river
MONSTER:(';',"giant eel"),(36,01)
MONSTER:(';',"giant eel"),(37,09)
MONSTER:(';',"giant eel"),(39,15)
# Monsters on siege duty.
MONSTER:('O',"ogre"),(40,08),hostile
MONSTER:('O',"ogre"),(41,06),hostile
MONSTER:('O',"ogre"),(41,07),hostile
MONSTER:('O',"ogre"),(41,08),hostile
MONSTER:('O',"ogre"),(41,09),hostile
MONSTER:('O',"ogre"),(41,10),hostile
MONSTER:('O',"ogre"),(42,06),hostile
MONSTER:('O',"ogre"),(42,07),hostile
MONSTER:('O',"ogre"),(42,08),hostile
MONSTER:('O',"ogre"),(42,09),hostile
MONSTER:('O',"ogre"),(42,10),hostile
#
# The "locate" level for the quest.
#
# Here you have to infiltrate the Duali Oasis to go
# further towards your assigned quest.
#
MAZE: "Bar-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
MAP
..........PPP.........................................
...........PP.......................................... .......
..........PP...........-----..........------------------ ..........
...........PP..........+...|..........|....S...........|.. ............
..........PPP..........|...|..........|-----...........|... .............
...........PPP.........-----..........+....+...........|... .............
..........PPPPPPPPP...................+....+...........S.................
........PPPPPPPPPPPPP.........-----...|-----...........|................
......PPPPPPPPPPPPPP..P.......+...|...|....S...........| ...
.....PPPPPPP......P..PPPP.....|...|...------------------.. ...
....PPPPPPP.........PPPPPP....-----........................ ........
...PPPPPPP..........PPPPPPP.................................. ..........
....PPPPPPP........PPPPPPP.................................... ..........
.....PPPPP........PPPPPPP.........-----........................ ........
......PPP..PPPPPPPPPPPP...........+...|......................... .....
..........PPPPPPPPPPP.............|...|......................... ....
..........PPPPPPPPP...............-----......................... .
..............PPP.................................................
...............PP....................................................
................PPP...................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(24,03,26,04),unlit,"ordinary"
REGION:(31,08,33,09),unlit,"ordinary"
REGION:(35,14,37,15),unlit,"ordinary"
REGION:(39,03,54,08),lit,"ordinary"
REGION:(56,00,75,08),unlit,"ordinary"
REGION:(64,09,75,16),unlit,"ordinary"
# Doors
DOOR:open,(23,03)
DOOR:open,(30,08)
DOOR:open,(34,14)
DOOR:locked,(38,05)
DOOR:locked,(38,06)
DOOR:closed,(43,03)
DOOR:closed,(43,05)
DOOR:closed,(43,06)
DOOR:closed,(43,08)
DOOR:locked,(55,06)
# Stairs
STAIR:(05,02),up
STAIR:(70,13),down
# Objects
OBJECT:random,(42,03)
OBJECT:random,(42,03)
OBJECT:random,(42,03)
OBJECT:random,(41,03)
OBJECT:random,(41,03)
OBJECT:random,(41,03)
OBJECT:random,(41,03)
OBJECT:random,(41,08)
OBJECT:random,(41,08)
OBJECT:random,(42,08)
OBJECT:random,(42,08)
OBJECT:random,(42,08)
OBJECT:random,(71,13)
OBJECT:random,(71,13)
OBJECT:random,(71,13)
# Random traps
TRAP:"spiked pit",(10,13)
TRAP:"spiked pit",(21,07)
TRAP:"spiked pit",(67,08)
TRAP:"spiked pit",(68,09)
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('O',"ogre"),(12,09),hostile
MONSTER:('O',"ogre"),(18,11),hostile
MONSTER:('O',"ogre"),(45,05),hostile
MONSTER:('O',"ogre"),(45,06),hostile
MONSTER:('O',"ogre"),(47,05),hostile
MONSTER:('O',"ogre"),(46,05),hostile
MONSTER:('O',"ogre"),(56,03),hostile
MONSTER:('O',"ogre"),(56,04),hostile
MONSTER:('O',"ogre"),(56,05),hostile
MONSTER:('O',"ogre"),(56,06),hostile
MONSTER:('O',"ogre"),(57,03),hostile
MONSTER:('O',"ogre"),(57,04),hostile
MONSTER:('O',"ogre"),(57,05),hostile
MONSTER:('O',"ogre"),(57,06),hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:'O',random,hostile
MONSTER:'T',random,hostile
MONSTER:('T',"rock troll"),(46,06),hostile
MONSTER:('T',"rock troll"),(47,06),hostile
MONSTER:('T',"rock troll"),(56,07),hostile
MONSTER:('T',"rock troll"),(57,07),hostile
MONSTER:('T',"rock troll"),(70,13),hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:'T',random,hostile
#
# The "goal" level for the quest.
#
# Here you meet Thoth Amon, your nemesis monster. You have to
# defeat Thoth Amon in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Bar-goal", ' '
GEOMETRY:center,center
MAP
.............
..................
.... ......................... ....
....... .......................... .......
...... ........................ .......
.. ...................................... ..
.. ..................... ..
.. .................. ..
.. ..S...S.............. ................
.. ........ ...
......... ..
...... .. ... ....
.. ... .. ...... ........
.... .. .................. ........ ......
...... ...................... ...... ..
.... .................. ...........
..............
...........
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),unlit,"ordinary"
# Secret doors
DOOR:locked,(22,09)
DOOR:locked,(26,09)
# Stairs
STAIR:(36,05),up
# The altar. Unattended.
ALTAR:(63,04),noncoaligned,altar
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:('*',"luckstone"),(63,04),blessed,0,name:"The Heart of Ahriman"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"Thoth Amon"),(63,04),hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:('O',"ogre"),random,hostile
MONSTER:'O',random,hostile
MONSTER:'O',random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:('T',"rock troll"),random,hostile
MONSTER:'T',random,hostile
WALLIFY
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
MAZE: "Bar-fila" , ' '
INIT_MAP: mines, '.' , '.' , true , true , unlit , false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: 'O', random, hostile
MONSTER: ('T', "rock troll"), random, hostile
MAZE: "Bar-filb" , ' '
INIT_MAP: mines, '.' , ' ' , true , true , unlit , true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: ('O', "ogre"), random, hostile
MONSTER: 'O' , random, hostile
MONSTER: ('T', "rock troll"), random, hostile
MONSTER: ('T', "rock troll"), random, hostile
MONSTER: ('T', "rock troll"), random, hostile
MONSTER: 'T' , random, hostile

35
dat/Cav-fila.lua Normal file
View File

@@ -0,0 +1,35 @@
-- NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style = "mines", fg = ".", bg = " ", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ class = "h", peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })

41
dat/Cav-filb.lua Normal file
View File

@@ -0,0 +1,41 @@
-- NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style = "mines", fg = ".", bg = " ", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ class = "h", peaceful=0 })
des.monster({ class = "h", peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })

59
dat/Cav-goal.lua Normal file
View File

@@ -0,0 +1,59 @@
-- NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
.....................
.......................
.........................
...........................
.............................
...............................
.................................
...................................
.....................................
.......................................
.....................................
...................................
.................................
...............................
.............................
...........................
.........................
.......................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
-- Stairs
des.stair("up")
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object({ id = "mace", x=23, y=10, buc="blessed", spe=0, name="The Sceptre of Might" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- monsters.
des.monster({ id = "Chromatic Dragon", x=23, y=10, asleep=1 })
des.monster("shrieker", 26, 13)
des.monster("shrieker", 25, 8)
des.monster("shrieker", 45, 11)
des.wallify()

101
dat/Cav-loca.lua Normal file
View File

@@ -0,0 +1,101 @@
-- NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
des.map([[
............. ...........
............... .............
............. ............... ..........
........... ............. ...............
... ... ..................
... .......... ... ..................
... ............ BBB...................
... .......... ......................
..... .. .....B........................
.... ............... . ........B..........................
...... .. .............S.............. ..................
.... .. ........... ...............
.. ... ....................
.... BB...................
.. .. .. ...............
.. ....... .... ..... .... .. ....... S
............ ....... .. ....... ..... ... ....
....... ..... ...... .......
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "unlit")
des.region({ region={52,06, 73,15}, lit=1, type="ordinary", prefilled=0, irregular=1 })
-- Doors
des.door("locked",28,11)
-- Stairs
des.stair("up", 04,03)
des.stair("down", 73,10)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "bugbear", x=02, y=10, peaceful=0 })
des.monster({ id = "bugbear", x=03, y=11, peaceful=0 })
des.monster({ id = "bugbear", x=04, y=12, peaceful=0 })
des.monster({ id = "bugbear", x=02, y=11, peaceful=0 })
des.monster({ id = "bugbear", x=16, y=16, peaceful=0 })
des.monster({ id = "bugbear", x=17, y=17, peaceful=0 })
des.monster({ id = "bugbear", x=18, y=18, peaceful=0 })
des.monster({ id = "bugbear", x=19, y=16, peaceful=0 })
des.monster({ id = "bugbear", x=30, y=06, peaceful=0 })
des.monster({ id = "bugbear", x=31, y=07, peaceful=0 })
des.monster({ id = "bugbear", x=32, y=08, peaceful=0 })
des.monster({ id = "bugbear", x=33, y=06, peaceful=0 })
des.monster({ id = "bugbear", x=34, y=07, peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ id = "bugbear", peaceful=0 })
des.monster({ class = "h", peaceful=0 })
des.monster({ class = "H", peaceful=0 })
des.monster({ id = "hill giant", x=03, y=12, peaceful=0 })
des.monster({ id = "hill giant", x=20, y=17, peaceful=0 })
des.monster({ id = "hill giant", x=35, y=08, peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })
des.monster({ id = "hill giant", peaceful=0 })
des.monster({ class = "H", peaceful=0 })
des.wallify()
--
-- The "goal" level for the quest.
--
-- Here you meet Tiamat your nemesis monster. You have to
-- defeat Tiamat in combat to gain the artifact you have
-- been assigned to retrieve.
--

91
dat/Cav-strt.lua Normal file
View File

@@ -0,0 +1,91 @@
-- NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Shaman Karnov
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
...... .......................... ... .... ......
...... .......................... ........ .... .....
..BB ............................. ......... .... ..
.. ...................... ....... .. .... ..
.. .................... .. ....... .. ...
.. S BB ..... ....... .... ....
.. ... . .. ........ .. .. .. ...
.. ...... .. ............ .. ...
. .... .. ........ .. ...........
... .. .. ............. ...................
..... ..... ............................... ...........
.....B................ ... ...
..... . .......... .... . ... .......... ...
... .. ............. .. ................... ....
BB .. ......... BB ... .......... .. ... ...
...... ..... B ........ .. .. .... ...
.......... .......... ..... ... ..... ........
.. ... . ..... .... .. ... ..
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "unlit")
des.region({ region={13,01, 40,05}, lit=1, type="temple", prefilled=0, irregular=1 })
-- The occupied rooms.
des.region({ region={02,01, 08,03}, lit=1, type="ordinary", prefilled=0, irregular=1 })
des.region({ region={01,11, 06,14}, lit=1, type="ordinary", prefilled=0, irregular=1 })
des.region({ region={13,08, 18,10}, lit=1, type="ordinary", prefilled=0, irregular=1 })
des.region({ region={05,17, 14,18}, lit=1, type="ordinary", prefilled=0, irregular=1 })
des.region({ region={17,16, 23,18}, lit=1, type="ordinary", prefilled=0, irregular=1 })
des.region({ region={35,16, 44,18}, lit=1, type="ordinary", prefilled=0, irregular=1 })
-- Stairs
des.stair("down", 02,03)
-- Portal arrival point
des.levregion({ region = {71,09,71,09}, type="branch" })
-- Doors
des.door("locked",19,06)
-- The temple altar (this will force a priest(ess) to be created)
des.altar({ x=36,y=02, align="coaligned", type="shrine" })
-- Shaman Karnov
des.monster("Shaman Karnov", 35, 02)
-- The treasure of Shaman Karnov
des.object("chest", 34, 02)
-- neanderthal guards for the audience chamber
des.monster("neanderthal", 20, 03)
des.monster("neanderthal", 20, 02)
des.monster("neanderthal", 20, 01)
des.monster("neanderthal", 21, 03)
des.monster("neanderthal", 21, 02)
des.monster("neanderthal", 21, 01)
des.monster("neanderthal", 22, 01)
des.monster("neanderthal", 26, 09)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Random traps
des.trap("pit",47,11)
des.trap("pit",57,10)
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty (in the outer caves).
des.monster({ id ="bugbear", x=47, y=02, peaceful=0 })
des.monster({ id ="bugbear", x=48, y=03, peaceful=0 })
des.monster({ id ="bugbear", x=49, y=04, peaceful=0 })
des.monster({ id ="bugbear", x=67, y=03, peaceful=0 })
des.monster({ id ="bugbear", x=69, y=04, peaceful=0 })
des.monster({ id ="bugbear", x=51, y=13, peaceful=0 })
des.monster({ id ="bugbear", x=53, y=14, peaceful=0 })
des.monster({ id ="bugbear", x=55, y=15, peaceful=0 })
des.monster({ id ="bugbear", x=63, y=10, peaceful=0 })
des.monster({ id ="bugbear", x=65, y=09, peaceful=0 })
des.monster({ id ="bugbear", x=67, y=10, peaceful=0 })
des.monster({ id ="bugbear", x=69, y=11, peaceful=0 })
des.wallify()

View File

@@ -1,316 +0,0 @@
# NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Shaman Karnov
# and receive your quest assignment.
#
MAZE: "Cav-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
...... .......................... ... .... ......
...... .......................... ........ .... .....
..BB ............................. ......... .... ..
.. ...................... ....... .. .... ..
.. .................... .. ....... .. ...
.. S BB ..... ....... .... ....
.. ... . .. ........ .. .. .. ...
.. ...... .. ............ .. ...
. .... .. ........ .. ...........
... .. .. ............. ...................
..... ..... ............................... ...........
.....B................ ... ...
..... . .......... .... . ... .......... ...
... .. ............. .. ................... ....
BB .. ......... BB ... .......... .. ... ...
...... ..... B ........ .. .. .... ...
.......... .......... ..... ... ..... ........
.. ... . ..... .... .. ... ..
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),unlit,"ordinary"
REGION:(13,01,40,05),lit,"temple",unfilled,irregular
# The occupied rooms.
REGION:(02,01,08,03),lit,"ordinary",unfilled,irregular
REGION:(01,11,06,14),lit,"ordinary",unfilled,irregular
REGION:(13,08,18,10),lit,"ordinary",unfilled,irregular
REGION:(05,17,14,18),lit,"ordinary",unfilled,irregular
REGION:(17,16,23,18),lit,"ordinary",unfilled,irregular
REGION:(35,16,44,18),lit,"ordinary",unfilled,irregular
# Stairs
STAIR:(02,03),down
# Portal arrival point
BRANCH:(71,09,71,09),(0,0,0,0)
# Doors
DOOR:locked,(19,06)
# The temple altar (this will force a priest(ess) to be created)
ALTAR:(36,02),coaligned,shrine
# Shaman Karnov
MONSTER:('@',"Shaman Karnov"),(35,02)
# The treasure of Shaman Karnov
OBJECT:('(',"chest"),(34,02)
# neanderthal guards for the audience chamber
MONSTER:('@',"neanderthal"),(20,03)
MONSTER:('@',"neanderthal"),(20,02)
MONSTER:('@',"neanderthal"),(20,01)
MONSTER:('@',"neanderthal"),(21,03)
MONSTER:('@',"neanderthal"),(21,02)
MONSTER:('@',"neanderthal"),(21,01)
MONSTER:('@',"neanderthal"),(22,01)
MONSTER:('@',"neanderthal"),(26,09)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Random traps
TRAP:"pit",(47,11)
TRAP:"pit",(57,10)
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty (in the outer caves).
MONSTER: ('h',"bugbear"),(47,02),hostile
MONSTER: ('h',"bugbear"),(48,03),hostile
MONSTER: ('h',"bugbear"),(49,04),hostile
MONSTER: ('h',"bugbear"),(67,03),hostile
MONSTER: ('h',"bugbear"),(69,04),hostile
MONSTER: ('h',"bugbear"),(51,13),hostile
MONSTER: ('h',"bugbear"),(53,14),hostile
MONSTER: ('h',"bugbear"),(55,15),hostile
MONSTER: ('h',"bugbear"),(63,10),hostile
MONSTER: ('h',"bugbear"),(65,09),hostile
MONSTER: ('h',"bugbear"),(67,10),hostile
MONSTER: ('h',"bugbear"),(69,11),hostile
WALLIFY
#
# The "locate" level for the quest.
#
# Here you have to find the lair of Tiamat to go
# further towards your assigned quest.
#
MAZE: "Cav-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
MAP
............. ...........
............... .............
............. ............... ..........
........... ............. ...............
... ... ..................
... .......... ... ..................
... ............ BBB...................
... .......... ......................
..... .. .....B........................
.... ............... . ........B..........................
...... .. .............S.............. ..................
.... .. ........... ...............
.. ... ....................
.... BB...................
.. .. .. ...............
.. ....... .... ..... .... .. ....... S
............ ....... .. ....... ..... ... ....
....... ..... ...... .......
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),unlit,"ordinary"
REGION:(52,06,73,15),lit,"ordinary",unfilled,irregular
# Doors
DOOR:locked,(28,11)
# Stairs
STAIR:(04,03),up
STAIR:(73,10),down
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('h',"bugbear"),(02,10),hostile
MONSTER:('h',"bugbear"),(03,11),hostile
MONSTER:('h',"bugbear"),(04,12),hostile
MONSTER:('h',"bugbear"),(02,11),hostile
MONSTER:('h',"bugbear"),(16,16),hostile
MONSTER:('h',"bugbear"),(17,17),hostile
MONSTER:('h',"bugbear"),(18,18),hostile
MONSTER:('h',"bugbear"),(19,16),hostile
MONSTER:('h',"bugbear"),(30,06),hostile
MONSTER:('h',"bugbear"),(31,07),hostile
MONSTER:('h',"bugbear"),(32,08),hostile
MONSTER:('h',"bugbear"),(33,06),hostile
MONSTER:('h',"bugbear"),(34,07),hostile
MONSTER:('h',"bugbear"),random,hostile
MONSTER:('h',"bugbear"),random,hostile
MONSTER:('h',"bugbear"),random,hostile
MONSTER:('h',"bugbear"),random,hostile
MONSTER:'h',random,hostile
MONSTER:'H',random,hostile
MONSTER:('H',"hill giant"),(03,12),hostile
MONSTER:('H',"hill giant"),(20,17),hostile
MONSTER:('H',"hill giant"),(35,08),hostile
MONSTER:('H',"hill giant"),random,hostile
MONSTER:('H',"hill giant"),random,hostile
MONSTER:('H',"hill giant"),random,hostile
MONSTER:('H',"hill giant"),random,hostile
MONSTER:'H',random,hostile
WALLIFY
#
# The "goal" level for the quest.
#
# Here you meet Tiamat your nemesis monster. You have to
# defeat Tiamat in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Cav-goal", ' '
GEOMETRY:center,center
MAP
.....................
.......................
.........................
...........................
.............................
...............................
.................................
...................................
.....................................
.......................................
.....................................
...................................
.................................
...............................
.............................
...........................
.........................
.......................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
# Stairs
STAIR:random,up
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:(')',"mace"),(23,10),blessed,0,name:"The Sceptre of Might"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# monsters.
MONSTER:('D',"Chromatic Dragon"),(23,10),asleep
MONSTER:('F',"shrieker"),(26,13)
MONSTER:('F',"shrieker"),(25,8)
MONSTER:('F',"shrieker"),(45,11)
WALLIFY
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
MAZE: "Cav-fila" , ' '
INIT_MAP: mines, '.' , ' ' , true , true , random , true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: 'h', random, hostile
MONSTER: ('H', "hill giant"), random, hostile
MAZE: "Cav-filb" , ' '
INIT_MAP: mines, '.' , ' ' , true , true , random , true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: ('h', "bugbear"), random, hostile
MONSTER: 'h', random, hostile
MONSTER: 'h', random, hostile
MONSTER: ('H', "hill giant"), random, hostile
MONSTER: ('H', "hill giant"), random, hostile

42
dat/Hea-fila.lua Normal file
View File

@@ -0,0 +1,42 @@
-- NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "P" });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg="P", smoothed=false, joined=true, lit=1, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster("rabid rat")
des.monster({ class = "r", peaceful=0 })
des.monster({ class = "r", peaceful=0 })
des.monster("giant eel")
des.monster("giant eel")
des.monster("electric eel")
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
--
des.trap()
des.trap()
des.trap()
des.trap()

50
dat/Hea-filb.lua Normal file
View File

@@ -0,0 +1,50 @@
-- NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "P" });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg="P", smoothed=false, joined=true, lit=1, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster("rabid rat")
des.monster("rabid rat")
des.monster({ class = "r", peaceful=0 })
des.monster({ class = "r", peaceful=0 })
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("electric eel")
des.monster("electric eel")
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
--
des.trap()
des.trap()
des.trap()
des.trap()

90
dat/Hea-goal.lua Normal file
View File

@@ -0,0 +1,90 @@
-- NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "P" });
des.level_flags("mazelevel");
--
des.level_init({ style="mines", fg=".", bg="P", smoothed=false, joined=true, lit=1, walled=false })
des.map([[
.P....................................PP.
PP.......PPPPPPP....PPPPPPP....PPPP...PP.
...PPPPPPP....PPPPPPP.....PPPPPP..PPP...P
...PP..............................PPP...
..PP..............................PP.....
..PP..............................PPP....
..PPP..............................PP....
.PPP..............................PPPP...
...PP............................PPP...PP
..PPPP...PPPPP..PPPP...PPPPP.....PP...PP.
P....PPPPP...PPPP..PPPPP...PPPPPPP...PP..
PPP..................................PPP.
]]);
-- Dungeon Description
des.region(selection.area(00,00,40,11), "lit")
-- Stairs
des.stair("up", 39,10)
-- Non diggable walls
des.non_diggable(selection.area(00,00,40,11))
-- Objects
des.object({ id = "quarterstaff", x=20, y=06, buc="blessed", spe=0, name="The Staff of Aesculapius" })
des.object("lightning", 20, 06)
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "Cyclops", x=20, y=06, peaceful=0 })
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster({ class = "r", peaceful=0 })
des.monster({ class = "r", peaceful=0 })
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("electric eel")
des.monster("electric eel")
des.monster("shark")
des.monster("shark")
des.monster({ class = ";", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })

97
dat/Hea-loca.lua Normal file
View File

@@ -0,0 +1,97 @@
-- NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor");
--
des.level_init({ style="mines", fg=".", bg="P", smoothed=true ,joined=true, lit=1, walled=false })
des.map([[
PPPPPPPPPPPPP.......PPPPPPPPPPP
PPPPPPPP...............PPPPPPPP
PPPP.....-------------...PPPPPP
PPPPP....|.S.........|....PPPPP
PPP......+.|.........|...PPPPPP
PPP......+.|.........|..PPPPPPP
PPPP.....|.S.........|..PPPPPPP
PPPPP....-------------....PPPPP
PPPPPPPP...............PPPPPPPP
PPPPPPPPPPP........PPPPPPPPPPPP
]]);
-- Dungeon Description
des.region(selection.area(00,00,30,09), "lit")
des.region({ region={12,03, 20,06}, lit=1, type="temple" })
-- Doors
des.door("closed",09,04)
des.door("closed",09,05)
des.door("locked",11,03)
des.door("locked",11,06)
-- Stairs
des.stair("up", 04,04)
des.stair("down", 20,06)
-- Non diggable walls
des.non_diggable(selection.area(11,02,21,07))
-- Altar in the temple.
des.altar({ x=13,y=05, align="chaos", type="shrine" })
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster({ class = "r", peaceful=0 })
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("giant eel")
des.monster("electric eel")
des.monster("electric eel")
des.monster("kraken")
des.monster("shark")
des.monster("shark")
des.monster({ class = ";", peaceful=0 })
des.monster({ class = ";", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })

107
dat/Hea-strt.lua Normal file
View File

@@ -0,0 +1,107 @@
-- NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Hippocrates
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
PPPP........PPPP.....PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP.P..PPPPP......PPPPPPPP
PPP..........PPPP...PPPPP.........................PPPP..PPPPP........PPPPPPP
PP............PPPPPPPP..............................PPP...PPPP......PPPPPPPP
P.....PPPPPPPPPPPPPPP................................PPPPPPPPPPPPPPPPPPPPPPP
PPPP....PPPPPPPPPPPP...................................PPPPP.PPPPPPPPPPPPPPP
PPPP........PPPPP.........-----------------------........PP...PPPPPPP.....PP
PPP............PPPPP....--|.|......S..........S.|--.....PPPP.PPPPPPP.......P
PPPP..........PPPPP.....|.S.|......-----------|S|.|......PPPPPP.PPP.......PP
PPPPPP......PPPPPP......|.|.|......|...|......|.|.|.....PPPPPP...PP.......PP
PPPPPPPPPPPPPPPPPPP.....+.|.|......S.\.S......|.|.+......PPPPPP.PPPP.......P
PPP...PPPPP...PPPP......|.|.|......|...|......|.|.|.......PPPPPPPPPPP.....PP
PP.....PPP.....PPP......|.|S|-----------......|.S.|......PPPPPPPPPPPPPPPPPPP
PPP..PPPPP...PPPP.......--|.S..........S......|.|--.....PPPPPPPPP....PPPPPPP
PPPPPPPPPPPPPPPP..........-----------------------..........PPPPP..........PP
PPPPPPPPPPPPPPPPP........................................PPPPPP............P
PPP.............PPPP...................................PPP..PPPP..........PP
PP...............PPPPP................................PPPP...PPPP........PPP
PPP.............PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP....PPPPPP
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
]]);
des.replace_terrain({ region={01,01, 74,18}, fromterrain="P", toterrain=".", chance=10 })
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
-- Stairs
des.stair("down", 37,9)
-- Portal arrival point
des.levregion({ region = {04,12,04,12}, type="branch" })
-- altar for the Temple
des.altar({ x=32,y=09,align="neutral",type="altar" })
-- Doors
des.door("locked",24,10)
des.door("closed",26,08)
des.door("closed",27,12)
des.door("locked",28,13)
des.door("closed",35,07)
des.door("locked",35,10)
des.door("locked",39,10)
des.door("closed",39,13)
des.door("locked",46,07)
des.door("closed",47,08)
des.door("closed",48,12)
des.door("locked",50,10)
-- Hippocrates
des.monster("Hippocrates", 37, 10)
-- The treasure of Hippocrates
des.object("chest", 37, 10)
-- intern guards for the audience chamber
des.monster("attendant", 29, 08)
des.monster("attendant", 29, 09)
des.monster("attendant", 29, 10)
des.monster("attendant", 29, 11)
des.monster("attendant", 40, 09)
des.monster("attendant", 40, 10)
des.monster("attendant", 40, 11)
des.monster("attendant", 40, 13)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("rabid rat")
des.monster("giant eel")
des.monster("shark")
des.monster(";")
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })
des.monster({ class = "S", peaceful=0 })

View File

@@ -1,380 +0,0 @@
# NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Hippocrates
# and receive your quest assignment.
#
MAZE: "Hea-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
PPPP........PPPP.....PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP.P..PPPPP......PPPPPPPP
PPP..........PPPP...PPPPP.........................PPPP..PPPPP........PPPPPPP
PP............PPPPPPPP..............................PPP...PPPP......PPPPPPPP
P.....PPPPPPPPPPPPPPP................................PPPPPPPPPPPPPPPPPPPPPPP
PPPP....PPPPPPPPPPPP...................................PPPPP.PPPPPPPPPPPPPPP
PPPP........PPPPP.........-----------------------........PP...PPPPPPP.....PP
PPP............PPPPP....--|.|......S..........S.|--.....PPPP.PPPPPPP.......P
PPPP..........PPPPP.....|.S.|......-----------|S|.|......PPPPPP.PPP.......PP
PPPPPP......PPPPPP......|.|.|......|...|......|.|.|.....PPPPPP...PP.......PP
PPPPPPPPPPPPPPPPPPP.....+.|.|......S.\.S......|.|.+......PPPPPP.PPPP.......P
PPP...PPPPP...PPPP......|.|.|......|...|......|.|.|.......PPPPPPPPPPP.....PP
PP.....PPP.....PPP......|.|S|-----------......|.S.|......PPPPPPPPPPPPPPPPPPP
PPP..PPPPP...PPPP.......--|.S..........S......|.|--.....PPPPPPPPP....PPPPPPP
PPPPPPPPPPPPPPPP..........-----------------------..........PPPPP..........PP
PPPPPPPPPPPPPPPPP........................................PPPPPP............P
PPP.............PPPP...................................PPP..PPPP..........PP
PP...............PPPPP................................PPPP...PPPP........PPP
PPP.............PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP....PPPPPP
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
ENDMAP
REPLACE_TERRAIN:(01,01,74,18), 'P', '.', 10%
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
# Stairs
STAIR:(37,9),down
# Portal arrival point
BRANCH:(04,12,04,12),(0,0,0,0)
# altar for the Temple
ALTAR:(32,09),neutral,altar
# Doors
DOOR:locked,(24,10)
DOOR:closed,(26,08)
DOOR:closed,(27,12)
DOOR:locked,(28,13)
DOOR:closed,(35,07)
DOOR:locked,(35,10)
DOOR:locked,(39,10)
DOOR:closed,(39,13)
DOOR:locked,(46,07)
DOOR:closed,(47,08)
DOOR:closed,(48,12)
DOOR:locked,(50,10)
# Hippocrates
MONSTER:('@',"Hippocrates"),(37,10)
# The treasure of Hippocrates
OBJECT:('(',"chest"),(37,10)
# intern guards for the audience chamber
MONSTER:('@',"attendant"),(29,08)
MONSTER:('@',"attendant"),(29,09)
MONSTER:('@',"attendant"),(29,10)
MONSTER:('@',"attendant"),(29,11)
MONSTER:('@',"attendant"),(40,09)
MONSTER:('@',"attendant"),(40,10)
MONSTER:('@',"attendant"),(40,11)
MONSTER:('@',"attendant"),(40,13)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: ('r',"rabid rat"),random
MONSTER: (';',"giant eel"),random
MONSTER: (';',"shark"),random
MONSTER: ';', random
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
#
# The "locate" level for the quest.
#
# Here you have to find the Temple of Coeus to go
# further towards your assigned quest.
#
MAZE: "Hea-loca",' '
FLAGS: hardfloor
#
INIT_MAP: mines, '.' , 'P', true , true , lit , false
GEOMETRY:center,center
MAP
PPPPPPPPPPPPP.......PPPPPPPPPPP
PPPPPPPP...............PPPPPPPP
PPPP.....-------------...PPPPPP
PPPPP....|.S.........|....PPPPP
PPP......+.|.........|...PPPPPP
PPP......+.|.........|..PPPPPPP
PPPP.....|.S.........|..PPPPPPP
PPPPP....-------------....PPPPP
PPPPPPPP...............PPPPPPPP
PPPPPPPPPPP........PPPPPPPPPPPP
ENDMAP
# Dungeon Description
REGION:(00,00,30,09),lit,"ordinary"
REGION:(12,03,20,06),lit,"temple"
# Doors
DOOR:closed,(09,04)
DOOR:closed,(09,05)
DOOR:locked,(11,03)
DOOR:locked,(11,06)
# Stairs
STAIR:(04,04),up
STAIR:(20,06),down
# Non diggable walls
NON_DIGGABLE:(11,02,21,07)
# Altar in the temple.
ALTAR:(13,05), chaos, shrine
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:'r',random,hostile
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"shark"),random
MONSTER:(';',"shark"),random
MONSTER:';', random,hostile
MONSTER:';', random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
#
# The "goal" level for the quest.
#
# Here you meet Cyclops your nemesis monster. You have to
# defeat Cyclops in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Hea-goal", 'P'
#
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
GEOMETRY:center,center
MAP
.P....................................PP.
PP.......PPPPPPP....PPPPPPP....PPPP...PP.
...PPPPPPP....PPPPPPP.....PPPPPP..PPP...P
...PP..............................PPP...
..PP..............................PP.....
..PP..............................PPP....
..PPP..............................PP....
.PPP..............................PPPP...
...PP............................PPP...PP
..PPPP...PPPPP..PPPP...PPPPP.....PP...PP.
P....PPPPP...PPPP..PPPPP...PPPPPPP...PP..
PPP..................................PPP.
ENDMAP
# Dungeon Description
REGION:(00,00,40,11),lit,"ordinary"
# Stairs
STAIR:(39,10),up
# Non diggable walls
NON_DIGGABLE:(00,00,40,11)
# Objects
OBJECT:(')',"quarterstaff"),(20,06),blessed,0,name:"The Staff of Aesculapius"
OBJECT:('/',"lightning"),(20,06)
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('H',"Cyclops"),(20,06),hostile
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:('r',"rabid rat"),random
MONSTER:'r',random,hostile
MONSTER:'r',random,hostile
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"shark"),random
MONSTER:(';',"shark"),random
MONSTER:';',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
MAZE: "Hea-fila" , 'P'
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: ('r', "rabid rat"), random
MONSTER: 'r', random,hostile
MONSTER: 'r', random,hostile
MONSTER: (';', "giant eel"), random
MONSTER: (';', "giant eel"), random
MONSTER: (';', "electric eel"), random
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
MAZE: "Hea-filb" , 'P'
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: ('r', "rabid rat"), random
MONSTER: ('r', "rabid rat"), random
MONSTER: 'r', random,hostile
MONSTER: 'r', random,hostile
MONSTER: (';', "giant eel"), random
MONSTER: (';', "giant eel"), random
MONSTER: (';', "giant eel"), random
MONSTER: (';', "giant eel"), random
MONSTER: (';', "giant eel"), random
MONSTER: (';', "electric eel"), random
MONSTER: (';', "electric eel"), random
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'D',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
MONSTER: 'S',random,hostile
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random

35
dat/Kni-fila.lua Normal file
View File

@@ -0,0 +1,35 @@
-- NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "." });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg="P", smoothed=false, joined=true, lit=1, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ class = "i", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
--
des.trap()
des.trap()
des.trap()
des.trap()

40
dat/Kni-filb.lua Normal file
View File

@@ -0,0 +1,40 @@
-- NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "." });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg="P", smoothed=false, joined=true, lit=1, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ class = "i", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
--
des.trap()
des.trap()
des.trap()
des.trap()

99
dat/Kni-goal.lua Normal file
View File

@@ -0,0 +1,99 @@
-- NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
....PPPP..PPP..
.PPPPP...PP.. .......... .................................
..PPPPP...P.. ........... ...................................
..PPP....... ........... ......................................
...PPP....... ......... ............... .....................
........... ............ ............ ......................
............ ............. ....... .....................
.............................. .........................
............................... ..................................
............................. ....................................
......... ......................................................
.....PP... .....................................................
.....PPP.... ....................................................
......PPP.... .............. ....................................
.......PPP.... ............. .....................................
........PP... ............ ......................................
...PPP........ .......... ..................................
..PPPPP........ .......... ..............................
....PPPPP...... ......... ..........................
.......PPPP...
]]);
-- Dungeon Description
des.region(selection.area(00,00,14,19), "lit")
des.region(selection.area(15,00,75,19), "unlit")
-- Stairs
des.stair("up", 03,08)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object({ id = "mirror", x=50,y=06, buc="blessed", spe=0, name="The Magic Mirror of Merlin" })
des.object({ coord = { 33, 01 } })
des.object({ coord = { 33, 02 } })
des.object({ coord = { 33, 03 } })
des.object({ coord = { 33, 04 } })
des.object({ coord = { 33, 05 } })
des.object({ coord = { 34, 01 } })
des.object({ coord = { 34, 02 } })
des.object({ coord = { 34, 03 } })
des.object({ coord = { 34, 04 } })
des.object({ coord = { 34, 05 } })
des.object({ coord = { 35, 01 } })
des.object({ coord = { 35, 02 } })
des.object({ coord = { 35, 03 } })
des.object({ coord = { 35, 04 } })
des.object({ coord = { 35, 05 } })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap("spiked pit",13,07)
des.trap("spiked pit",12,08)
des.trap("spiked pit",12,09)
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "Ixoth", x=50, y=06, peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ class = "i", peaceful=0 })
des.monster({ class = "i", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ class = "j", peaceful=0 })

137
dat/Kni-loca.lua Normal file
View File

@@ -0,0 +1,137 @@
-- NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
des.level_init({ style="mines", fg=".", bg="P", smoothed=false, joined=true, lit=1, walled=false })
des.map([[
xxxxxxxxx......xxxx...........xxxxxxxxxx
xxxxxxx.........xxx.............xxxxxxxx
xxxx..............................xxxxxx
xx.................................xxxxx
....................................xxxx
.......................................x
........................................
xx...................................xxx
xxxx..............................xxxxxx
xxxxxx..........................xxxxxxxx
xxxxxxxx.........xx..........xxxxxxxxxxx
xxxxxxxxx.......xxxxxx.....xxxxxxxxxxxxx
]]);
-- Dungeon Description
-- The Isle of Glass is a Tor rising out of the swamps surrounding it.
des.region(selection.area(00,00,39,11), "lit")
-- The top area of the Tor is a holy site.
des.region({ region={09,02, 27,09}, lit=1, type="temple" })
-- Stairs
des.stair("up", 38,0)
des.stair("down", 18,05)
-- The altar atop the Tor and its attendant (creating altar makes the priest).
des.altar({ x=17, y=05, align="neutral", type="shrine" })
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
-- All of the avenues are guarded by magic except for the East.
-- South
des.trap("magic",08,11)
des.trap("magic",09,11)
des.trap("magic",10,11)
des.trap("magic",11,11)
des.trap("magic",12,11)
des.trap("magic",13,11)
des.trap("magic",14,11)
des.trap("magic",15,11)
des.trap("magic",16,11)
des.trap("magic",20,11)
des.trap("magic",21,11)
des.trap("magic",22,11)
des.trap("magic",23,11)
des.trap("magic",24,11)
des.trap("magic",25,11)
des.trap("magic",26,11)
des.trap("magic",27,11)
des.trap("magic",28,11)
-- West
des.trap("magic",00,03)
des.trap("magic",00,04)
des.trap("magic",00,05)
des.trap("magic",00,06)
-- North
des.trap("magic",06,00)
des.trap("magic",07,00)
des.trap("magic",08,00)
des.trap("magic",09,00)
des.trap("magic",10,00)
des.trap("magic",11,00)
des.trap("magic",12,00)
des.trap("magic",13,00)
des.trap("magic",14,00)
des.trap("magic",19,00)
des.trap("magic",20,00)
des.trap("magic",21,00)
des.trap("magic",22,00)
des.trap("magic",23,00)
des.trap("magic",24,00)
des.trap("magic",25,00)
des.trap("magic",26,00)
des.trap("magic",27,00)
des.trap("magic",28,00)
des.trap("magic",29,00)
des.trap("magic",30,00)
des.trap("magic",31,00)
des.trap("magic",32,00)
-- Even so, there are magic "sinkholes" around.
des.trap("anti magic")
des.trap("anti magic")
des.trap("anti magic")
des.trap("anti magic")
des.trap("anti magic")
des.trap("anti magic")
des.trap("anti magic")
-- Random monsters.
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ id = "quasit", peaceful=0 })
des.monster({ class = "i", peaceful=0 })
des.monster({ class = "j", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ id = "ochre jelly", peaceful=0 })
des.monster({ class = "j", peaceful=0 })

102
dat/Kni-strt.lua Normal file
View File

@@ -0,0 +1,102 @@
-- NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, King Arthur
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = "." });
des.level_flags("mazelevel", "noteleport", "hardfloor")
-- This is a kludge to init the level as a lit field.
des.level_init({ style="mines", fg=".", bg=".", smoothed=false, joined=false, lit=1, walled=false })
des.map([[
..................................................
.-----......................................-----.
.|...|......................................|...|.
.--|+-------------------++-------------------+|--.
...|...................+..+...................|...
...|.|-----------------|++|-----------------|.|...
...|.|.................|..|.........|.......|.|...
...|.|...\.............+..+.........|.......|.|...
...|.|.................+..+.........+.......|.|...
...|.|.................|..|.........|.......|.|...
...|.|--------------------------------------|.|...
...|..........................................|...
.--|+----------------------------------------+|--.
.|...|......................................|...|.
.-----......................................-----.
..................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,49,15), "lit")
des.region(selection.area(04,04,45,11), "unlit")
des.region({ region={06,06,22,09}, lit=1, type="throne", prefilled=1 })
des.region(selection.area(27,06,43,09), "lit")
-- Portal arrival point
des.levregion({ region = {20,14,20,14}, type="branch" })
-- Stairs
des.stair("down", 40,7)
-- Doors
-- Outside Doors
des.door("locked",24,03)
des.door("locked",25,03)
-- Inside Doors
des.door("closed",23,04)
des.door("closed",26,04)
des.door("locked",24,05)
des.door("locked",25,05)
des.door("closed",23,07)
des.door("closed",26,07)
des.door("closed",23,08)
des.door("closed",26,08)
des.door("closed",36,08)
-- Watchroom Doors
des.door("closed",04,03)
des.door("closed",45,03)
des.door("closed",04,12)
des.door("closed",45,12)
-- King Arthur
des.monster("King Arthur", 09, 07)
-- The treasure of King Arthur
des.object("chest", 09, 07)
-- knight guards for the watchrooms
des.monster({ id = "knight", x=04, y=02, peaceful = 1 })
des.monster({ id = "knight", x=04, y=13, peaceful = 1 })
des.monster({ id = "knight", x=45, y=02, peaceful = 1 })
des.monster({ id = "knight", x=45, y=13, peaceful = 1 })
-- page guards for the audience chamber
des.monster("page", 16, 06)
des.monster("page", 18, 06)
des.monster("page", 20, 06)
des.monster("page", 16, 09)
des.monster("page", 18, 09)
des.monster("page", 20, 09)
-- Non diggable walls
des.non_diggable(selection.area(00,00,49,15))
-- Random traps
des.trap("sleep gas",24,04)
des.trap("sleep gas",25,04)
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster({ id = "quasit", x=14, y=00, peaceful=0 })
des.monster({ id = "quasit", x=16, y=00, peaceful=0 })
des.monster({ id = "quasit", x=18, y=00, peaceful=0 })
des.monster({ id = "quasit", x=20, y=00, peaceful=0 })
des.monster({ id = "quasit", x=22, y=00, peaceful=0 })
des.monster({ id = "quasit", x=24, y=00, peaceful=0 })
des.monster({ id = "quasit", x=26, y=00, peaceful=0 })
des.monster({ id = "quasit", x=28, y=00, peaceful=0 })
des.monster({ id = "quasit", x=30, y=00, peaceful=0 })
des.monster({ id = "quasit", x=32, y=00, peaceful=0 })
des.monster({ id = "quasit", x=34, y=00, peaceful=0 })
des.monster({ id = "quasit", x=36, y=00, peaceful=0 })

View File

@@ -1,408 +0,0 @@
# NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991,92 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, King Arthur
# and receive your quest assignment.
#
MAZE: "Kni-strt",'.'
FLAGS: noteleport,hardfloor
# This is a kludge to init the level as a lit field.
INIT_MAP: mines, '.' , '.' , false , false , lit , false
GEOMETRY:center,center
MAP
..................................................
.-----......................................-----.
.|...|......................................|...|.
.--|+-------------------++-------------------+|--.
...|...................+..+...................|...
...|.|-----------------|++|-----------------|.|...
...|.|.................|..|.........|.......|.|...
...|.|...\.............+..+.........|.......|.|...
...|.|.................+..+.........+.......|.|...
...|.|.................|..|.........|.......|.|...
...|.|--------------------------------------|.|...
...|..........................................|...
.--|+----------------------------------------+|--.
.|...|......................................|...|.
.-----......................................-----.
..................................................
ENDMAP
# Dungeon Description
REGION:(00,00,49,15),lit,"ordinary"
REGION:(04,04,45,11),unlit,"ordinary"
REGION:(06,06,22,09),lit,"throne" , unfilled
REGION:(27,06,43,09),lit,"ordinary"
# Portal arrival point
BRANCH:(20,14,20,14),(0,0,0,0)
# Stairs
STAIR:(40,7),down
# Doors
# Outside Doors
DOOR:locked,(24,03)
DOOR:locked,(25,03)
# Inside Doors
DOOR:closed,(23,04)
DOOR:closed,(26,04)
DOOR:locked,(24,05)
DOOR:locked,(25,05)
DOOR:closed,(23,07)
DOOR:closed,(26,07)
DOOR:closed,(23,08)
DOOR:closed,(26,08)
DOOR:closed,(36,08)
# Watchroom Doors
DOOR:closed,(04,03)
DOOR:closed,(45,03)
DOOR:closed,(04,12)
DOOR:closed,(45,12)
# King Arthur
MONSTER:('@',"King Arthur"),(09,07)
# The treasure of King Arthur
OBJECT:('(',"chest"),(09,07)
# knight guards for the watchrooms
MONSTER:('@',"knight"),(04,02),peaceful
MONSTER:('@',"knight"),(04,13),peaceful
MONSTER:('@',"knight"),(45,02),peaceful
MONSTER:('@',"knight"),(45,13),peaceful
# page guards for the audience chamber
MONSTER:('@',"page"),(16,06)
MONSTER:('@',"page"),(18,06)
MONSTER:('@',"page"),(20,06)
MONSTER:('@',"page"),(16,09)
MONSTER:('@',"page"),(18,09)
MONSTER:('@',"page"),(20,09)
# Non diggable walls
NON_DIGGABLE:(00,00,49,15)
# Random traps
TRAP:"sleep gas",(24,04)
TRAP:"sleep gas",(25,04)
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: ('i',"quasit"),(14,00),hostile
MONSTER: ('i',"quasit"),(16,00),hostile
MONSTER: ('i',"quasit"),(18,00),hostile
MONSTER: ('i',"quasit"),(20,00),hostile
MONSTER: ('i',"quasit"),(22,00),hostile
MONSTER: ('i',"quasit"),(24,00),hostile
MONSTER: ('i',"quasit"),(26,00),hostile
MONSTER: ('i',"quasit"),(28,00),hostile
MONSTER: ('i',"quasit"),(30,00),hostile
MONSTER: ('i',"quasit"),(32,00),hostile
MONSTER: ('i',"quasit"),(34,00),hostile
MONSTER: ('i',"quasit"),(36,00),hostile
#
# The "locate" level for the quest.
#
# Here you have to find your way to the Isle of Glass to go
# further towards your assigned quest.
#
MAZE: "Kni-loca",' '
FLAGS: hardfloor
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
GEOMETRY:center,center
MAP
xxxxxxxxx......xxxx...........xxxxxxxxxx
xxxxxxx.........xxx.............xxxxxxxx
xxxx..............................xxxxxx
xx.................................xxxxx
....................................xxxx
.......................................x
........................................
xx...................................xxx
xxxx..............................xxxxxx
xxxxxx..........................xxxxxxxx
xxxxxxxx.........xx..........xxxxxxxxxxx
xxxxxxxxx.......xxxxxx.....xxxxxxxxxxxxx
ENDMAP
# Dungeon Description
# The Isle of Glass is a Tor rising out of the swamps surrounding it.
REGION:(00,00,39,11),lit,"ordinary"
# The top area of the Tor is a holy site.
REGION:(09,02,27,09),lit,"temple"
# Stairs
STAIR:(38,0),up
STAIR:(18,05),down
# The altar atop the Tor and its attendant (creating altar makes the priest).
ALTAR:(17,05),neutral,shrine
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
# All of the avenues are guarded by magic except for the East.
# South
TRAP:"magic",(08,11)
TRAP:"magic",(09,11)
TRAP:"magic",(10,11)
TRAP:"magic",(11,11)
TRAP:"magic",(12,11)
TRAP:"magic",(13,11)
TRAP:"magic",(14,11)
TRAP:"magic",(15,11)
TRAP:"magic",(16,11)
TRAP:"magic",(20,11)
TRAP:"magic",(21,11)
TRAP:"magic",(22,11)
TRAP:"magic",(23,11)
TRAP:"magic",(24,11)
TRAP:"magic",(25,11)
TRAP:"magic",(26,11)
TRAP:"magic",(27,11)
TRAP:"magic",(28,11)
# West
TRAP:"magic",(00,03)
TRAP:"magic",(00,04)
TRAP:"magic",(00,05)
TRAP:"magic",(00,06)
# North
TRAP:"magic",(06,00)
TRAP:"magic",(07,00)
TRAP:"magic",(08,00)
TRAP:"magic",(09,00)
TRAP:"magic",(10,00)
TRAP:"magic",(11,00)
TRAP:"magic",(12,00)
TRAP:"magic",(13,00)
TRAP:"magic",(14,00)
TRAP:"magic",(19,00)
TRAP:"magic",(20,00)
TRAP:"magic",(21,00)
TRAP:"magic",(22,00)
TRAP:"magic",(23,00)
TRAP:"magic",(24,00)
TRAP:"magic",(25,00)
TRAP:"magic",(26,00)
TRAP:"magic",(27,00)
TRAP:"magic",(28,00)
TRAP:"magic",(29,00)
TRAP:"magic",(30,00)
TRAP:"magic",(31,00)
TRAP:"magic",(32,00)
# Even so, there are magic "sinkholes" around.
TRAP:"anti magic",random
TRAP:"anti magic",random
TRAP:"anti magic",random
TRAP:"anti magic",random
TRAP:"anti magic",random
TRAP:"anti magic",random
TRAP:"anti magic",random
# Random monsters.
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:'i',random,hostile
MONSTER:'j',random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:'j',random,hostile
#
# The "goal" level for the quest.
#
# Here you meet Ixoth your nemesis monster. You have to
# defeat Ixoth in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Kni-goal", ' '
GEOMETRY:center,center
MAP
....PPPP..PPP..
.PPPPP...PP.. .......... .................................
..PPPPP...P.. ........... ...................................
..PPP....... ........... ......................................
...PPP....... ......... ............... .....................
........... ............ ............ ......................
............ ............. ....... .....................
.............................. .........................
............................... ..................................
............................. ....................................
......... ......................................................
.....PP... .....................................................
.....PPP.... ....................................................
......PPP.... .............. ....................................
.......PPP.... ............. .....................................
........PP... ............ ......................................
...PPP........ .......... ..................................
..PPPPP........ .......... ..............................
....PPPPP...... ......... ..........................
.......PPPP...
ENDMAP
# Dungeon Description
REGION:(00,00,14,19),lit,"ordinary"
REGION:(15,00,75,19),unlit,"ordinary"
# Stairs
STAIR:(03,08),up
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:('(',"mirror"),(50,06),blessed,0,name:"The Magic Mirror of Merlin"
OBJECT:random,(33,01)
OBJECT:random,(33,02)
OBJECT:random,(33,03)
OBJECT:random,(33,04)
OBJECT:random,(33,05)
OBJECT:random,(34,01)
OBJECT:random,(34,02)
OBJECT:random,(34,03)
OBJECT:random,(34,04)
OBJECT:random,(34,05)
OBJECT:random,(35,01)
OBJECT:random,(35,02)
OBJECT:random,(35,03)
OBJECT:random,(35,04)
OBJECT:random,(35,05)
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:"spiked pit",(13,07)
TRAP:"spiked pit",(12,08)
TRAP:"spiked pit",(12,09)
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('D',"Ixoth"),(50,06),hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:('i',"quasit"),random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:('j',"ochre jelly"),random,hostile
MONSTER:'j',random,hostile
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
MAZE: "Kni-fila" , '.'
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: ('i', "quasit"), random, hostile
MONSTER: ('i', "quasit"), random, hostile
MONSTER: ('i', "quasit"), random, hostile
MONSTER: ('i', "quasit"), random, hostile
MONSTER: 'i', random, hostile
MONSTER: ('j', "ochre jelly"), random, hostile
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
MAZE: "Kni-filb" , '.'
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: ('i', "quasit"), random, hostile
MONSTER: ('i', "quasit"), random, hostile
MONSTER: ('i', "quasit"), random, hostile
MONSTER: ('i', "quasit"), random, hostile
MONSTER: 'i', random, hostile
MONSTER: ('j', "ochre jelly"), random, hostile
MONSTER: ('j', "ochre jelly"), random, hostile
MONSTER: ('j', "ochre jelly"), random, hostile
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random

61
dat/Mon-fila.lua Normal file
View File

@@ -0,0 +1,61 @@
-- NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster({ class = "E", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster({ class = "E", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster("xorn")
des.monster("earth elemental")
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.monster({ class = "E", peaceful=0 })
des.monster("earth elemental")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster({ class = "X", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.monster("earth elemental")
end
})
des.random_corridors()

60
dat/Mon-filb.lua Normal file
View File

@@ -0,0 +1,60 @@
-- NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster({ class = "X", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster({ class = "X", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster({ class = "E", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.monster({ class = "E", peaceful=0 })
des.monster("earth elemental")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster({ class = "X", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.monster("earth elemental")
end
})
des.random_corridors()

75
dat/Mon-goal.lua Normal file
View File

@@ -0,0 +1,75 @@
-- NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
-- des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg="L", bg=".", smoothed=false, joined=false, lit=0, walled=false })
des.map([[
xxxxxx..xxxxxx...xxxxxxxxx
xxxx......xx......xxxxxxxx
xx.xx.............xxxxxxxx
x....................xxxxx
......................xxxx
......................xxxx
xx........................
xxx......................x
xxx................xxxxxxx
xxxx.....x.xx.......xxxxxx
xxxxx...xxxxxx....xxxxxxxx
]]);
-- Dungeon Description
local place = { {14,04},{13,07} }
local placeidx = math.random(1, #place);
des.region(selection.area(00,00,25,10), "unlit")
-- Stairs
des.stair("up", 20,05)
-- Objects
des.object({ id = "lenses", coord = place[placeidx], buc="blessed", spe=0, name="The Eyes of the Overworld" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap()
des.trap()
-- Random monsters.
des.monster("Master Kaen",place[placeidx])
des.altar({ coord = place[placeidx], align="noalign", type="altar" })
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")

90
dat/Mon-loca.lua Normal file
View File

@@ -0,0 +1,90 @@
-- NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
-- 1 2 3 4 5 6 7
--123456789012345678901234567890123456789012345678901234567890123456789012345
des.map([[
---------------------------------------------------- --------
---.................................................- --.....|
---...--------........------........................--- ---...|
---.....- --.......- ----..................---- --.--
---.....---- --------- --..................-- --..|
---...----- ----.----.....----.....--- --..||
----..---- -----..--- |...--- |.......--- --...|
|...--- ----....--- |.--- |.........-- --...||
|...- ----.....--- ---- |..........---....|
|...---- ----......--- | |...|.......-....||
|......----- ---.........- | -----...|............|
|..........----- ----...........--- -------......||...........||
|..............-----................--- |............|||..........|
|-S----...............................--- |...........|| |.........||
|.....|..............------.............-----..........|| ||........|
|.....|.............-- ---.........................|| |.......||
|.....|.............- ---.....................--| ||......|
|---S--------.......---- --.................---- |.....||
|...........|..........--------..............----- ||....|
|...........|............................----- |....|
------------------------------------------ ------
]]);
-- Random Monsters
-- Dungeon Description
des.region(selection.area(00,00,75,20), "lit")
-- Stairs
des.stair("up")
des.stair("down")
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,20))
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("earth elemental")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")
des.monster("xorn")

104
dat/Mon-strt.lua Normal file
View File

@@ -0,0 +1,104 @@
-- NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, the Grand Master
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
............................................................................
............................................................................
............................................................................
....................------------------------------------....................
....................|................|.....|.....|.....|....................
....................|..------------..|--+-----+-----+--|....................
....................|..|..........|..|.................|....................
....................|..|..........|..|+---+---+-----+--|....................
..................---..|..........|......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................---..|..........|......|...|...|.....|....................
....................|..|..........|..|+-----+---+---+--|....................
....................|..|..........|..|.................|....................
....................|..------------..|--+-----+-----+--|....................
....................|................|.....|.....|.....|....................
....................------------------------------------....................
............................................................................
............................................................................
............................................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region({ region={24,06, 33,13}, lit=1, type="temple" })
des.replace_terrain({ region={00,00, 10,19}, fromterrain=".", toterrain="T", chance=10 })
des.replace_terrain({ region={65,00, 75,19}, fromterrain=".", toterrain="T", chance=10 })
-- Portal arrival point
des.terrain({05,04}, ".")
des.levregion({ region = {05,04,05,04}, type="branch" })
-- Stairs
des.stair("down", 52,09)
-- Doors
des.door("locked",18,09)
des.door("locked",18,10)
des.door("closed",34,09)
des.door("closed",34,10)
des.door("closed",40,05)
des.door("closed",46,05)
des.door("closed",52,05)
des.door("locked",38,07)
des.door("closed",42,07)
des.door("closed",46,07)
des.door("closed",52,07)
des.door("locked",38,12)
des.door("closed",44,12)
des.door("closed",48,12)
des.door("closed",52,12)
des.door("closed",40,14)
des.door("closed",46,14)
des.door("closed",52,14)
-- Unattended Altar - unaligned due to conflict - player must align it.
des.altar({ x=28,y=09, align="noalign", type="altar" })
-- The Grand Master
des.monster("Grand Master", 28, 10)
-- No treasure chest!
-- guards for the audience chamber
des.monster("abbot", 32, 07)
des.monster("abbot", 32, 08)
des.monster("abbot", 32, 11)
des.monster("abbot", 32, 12)
des.monster("abbot", 33, 07)
des.monster("abbot", 33, 08)
des.monster("abbot", 33, 11)
des.monster("abbot", 33, 12)
-- Non diggable walls
des.non_diggable(selection.area(18,03,55,16))
-- Random traps
des.trap("dart",20,09)
des.trap("dart",20,10)
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster("earth elemental", 37, 01)
des.monster("earth elemental", 37, 18)
des.monster("earth elemental", 03, 03)
des.monster("earth elemental", 65, 04)
des.monster("earth elemental", 12, 11)
des.monster("earth elemental", 60, 12)
des.monster("earth elemental", 14, 08)
des.monster("earth elemental", 55, 00)
des.monster("xorn", 18, 18)
des.monster("xorn", 59, 10)
des.monster("xorn", 13, 09)
des.monster("xorn", 01, 17)

View File

@@ -1,378 +0,0 @@
# NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991-2 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, the Grand Master
# and receive your quest assignment.
#
MAZE: "Mon-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
............................................................................
............................................................................
............................................................................
....................------------------------------------....................
....................|................|.....|.....|.....|....................
....................|..------------..|--+-----+-----+--|....................
....................|..|..........|..|.................|....................
....................|..|..........|..|+---+---+-----+--|....................
..................---..|..........|......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................---..|..........|......|...|...|.....|....................
....................|..|..........|..|+-----+---+---+--|....................
....................|..|..........|..|.................|....................
....................|..------------..|--+-----+-----+--|....................
....................|................|.....|.....|.....|....................
....................------------------------------------....................
............................................................................
............................................................................
............................................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(24,06,33,13),lit,"temple"
REPLACE_TERRAIN:(0,0,10,19),'.','T',10%
REPLACE_TERRAIN:(65,0,75,19),'.','T',10%
# Portal arrival point
TERRAIN:(05,04),'.'
BRANCH:(05,04,05,04),(0,0,0,0)
# Stairs
STAIR:(52,09),down
# Doors
DOOR:locked,(18,09)
DOOR:locked,(18,10)
DOOR:closed,(34,09)
DOOR:closed,(34,10)
DOOR:closed,(40,05)
DOOR:closed,(46,05)
DOOR:closed,(52,05)
DOOR:locked,(38,07)
DOOR:closed,(42,07)
DOOR:closed,(46,07)
DOOR:closed,(52,07)
DOOR:locked,(38,12)
DOOR:closed,(44,12)
DOOR:closed,(48,12)
DOOR:closed,(52,12)
DOOR:closed,(40,14)
DOOR:closed,(46,14)
DOOR:closed,(52,14)
# Unattended Altar - unaligned due to conflict - player must align it.
ALTAR:(28,09),noalign,altar
# The Grand Master
MONSTER:('@',"Grand Master"),(28,10)
# No treasure chest!
# guards for the audience chamber
MONSTER:('@',"abbot"),(32,07)
MONSTER:('@',"abbot"),(32,08)
MONSTER:('@',"abbot"),(32,11)
MONSTER:('@',"abbot"),(32,12)
MONSTER:('@',"abbot"),(33,07)
MONSTER:('@',"abbot"),(33,08)
MONSTER:('@',"abbot"),(33,11)
MONSTER:('@',"abbot"),(33,12)
# Non diggable walls
NON_DIGGABLE:(18,03,55,16)
# Random traps
TRAP:"dart",(20,09)
TRAP:"dart",(20,10)
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: ('E',"earth elemental"),(37,01)
MONSTER: ('E',"earth elemental"),(37,18)
MONSTER: ('E',"earth elemental"),(03,03)
MONSTER: ('E',"earth elemental"),(65,04)
MONSTER: ('E',"earth elemental"),(12,11)
MONSTER: ('E',"earth elemental"),(60,12)
MONSTER: ('E',"earth elemental"),(14,08)
MONSTER: ('E',"earth elemental"),(55,00)
MONSTER: ('X',"xorn"),(18,18)
MONSTER: ('X',"xorn"),(59,10)
MONSTER: ('X',"xorn"),(13,09)
MONSTER: ('X',"xorn"),(01,17)
#
# The "locate" level for the quest.
#
# Here you have to locate the Monastery of the Earth-Lord to
# go further towards your assigned quest.
#
MAZE: "Mon-loca",' '
GEOMETRY:center,center
# 1 2 3 4 5 6 7
#123456789012345678901234567890123456789012345678901234567890123456789012345
MAP
---------------------------------------------------- --------
---.................................................- --.....|
---...--------........------........................--- ---...|
---.....- --.......- ----..................---- --.--
---.....---- --------- --..................-- --..|
---...----- ----.----.....----.....--- --..||
----..---- -----..--- |...--- |.......--- --...|
|...--- ----....--- |.--- |.........-- --...||
|...- ----.....--- ---- |..........---....|
|...---- ----......--- | |...|.......-....||
|......----- ---.........- | -----...|............|
|..........----- ----...........--- -------......||...........||
|..............-----................--- |............|||..........|
|-S----...............................--- |...........|| |.........||
|.....|..............------.............-----..........|| ||........|
|.....|.............-- ---.........................|| |.......||
|.....|.............- ---.....................--| ||......|
|---S--------.......---- --.................---- |.....||
|...........|..........--------..............----- ||....|
|...........|............................----- |....|
------------------------------------------ ------
ENDMAP
# Random Monsters
$monster = monster: { 'E', 'X' }
SHUFFLE: $monster
# Dungeon Description
REGION:(00,00,75,20),lit,"ordinary"
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,75,20)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
#
# The "goal" level for the quest.
#
# Here you meet Master Kaen, your nemesis monster. You have to
# defeat Master Kaen in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Mon-goal", ' '
INIT_MAP: mines, 'L' , '.' , false , false , unlit , false
GEOMETRY:center,center
MAP
xxxxxx..xxxxxx...xxxxxxxxx
xxxx......xx......xxxxxxxx
xx.xx.............xxxxxxxx
x....................xxxxx
......................xxxx
......................xxxx
xx........................
xxx......................x
xxx................xxxxxxx
xxxx.....x.xx.......xxxxxx
xxxxx...xxxxxx....xxxxxxxx
ENDMAP
# Dungeon Description
$place = { (14,04),(13,07) }
SHUFFLE: $place
REGION:(00,00,25,10),unlit,"ordinary"
# Stairs
STAIR:(20,05),up
# Objects
OBJECT:('(',"lenses"),$place[0],blessed,0,name:"The Eyes of the Overworld"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"Master Kaen"),$place[0]
ALTAR:$place[0],noalign,altar
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('E',"earth elemental"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
MONSTER: ('X',"xorn"),random
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "fila" is the upper filler, between the
# start and locate levels, and "filb" the lower between the locate
# and goal levels.
#
LEVEL: "Mon-fila"
# Random Monsters
$monster = monster: { 'E', 'X' }
SHUFFLE: $monster
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: 'E', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: 'E', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: ('X', "xorn"), random
MONSTER: ('E', "earth elemental"), random
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
MONSTER: 'E', random, hostile
MONSTER: ('E', "earth elemental"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: 'X', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
MONSTER: ('E', "earth elemental"), random
}
RANDOM_CORRIDORS
LEVEL: "Mon-filb"
# Random Monsters
$monster = monster: { 'E', 'X' }
SHUFFLE: $monster
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: 'X', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: 'X', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: 'E', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
MONSTER: 'E', random, hostile
MONSTER: ('E', "earth elemental"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: 'X', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
MONSTER: ('E', "earth elemental"), random
}
RANDOM_CORRIDORS

55
dat/Pri-fila.lua Normal file
View File

@@ -0,0 +1,55 @@
-- NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster("human zombie")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster("human zombie")
end
})
des.room({ type = "morgue",
contents = function()
des.stair("down")
des.object()
des.trap()
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster("wraith")
end
})
des.room({ type = "morgue",
contents = function()
des.object()
des.trap()
end
})
des.random_corridors()

62
dat/Pri-filb.lua Normal file
View File

@@ -0,0 +1,62 @@
-- NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster("human zombie")
des.monster("wraith")
end
})
des.room({ type = "morgue",
contents = function()
des.object()
des.object()
des.object()
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster("human zombie")
des.monster("wraith")
end
})
des.room({ type = "morgue",
contents = function()
des.stair("down")
des.object()
des.object()
des.trap()
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster("human zombie")
des.monster("wraith")
end
})
des.room({ type = "morgue",
contents = function()
des.object()
des.trap()
end
})
des.random_corridors()

83
dat/Pri-goal.lua Normal file
View File

@@ -0,0 +1,83 @@
-- NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg="L", bg=".", smoothed=false, joined=false, lit=0, walled=false })
des.map([[
xxxxxx..xxxxxx...xxxxxxxxx
xxxx......xx......xxxxxxxx
xx.xx.............xxxxxxxx
x....................xxxxx
......................xxxx
......................xxxx
xx........................
xxx......................x
xxx................xxxxxxx
xxxx.....x.xx.......xxxxxx
xxxxx...xxxxxx....xxxxxxxx
]]);
-- Dungeon Description
local place = { {14,04}, {13,07} }
local placeidx = math.random(1, #place);
des.region(selection.area(00,00,25,10), "unlit")
-- Stairs
des.stair("up", 20,05)
-- Objects
des.object({ id = "helm of brilliance", coord = place[placeidx], buc="blessed", spe=0, name="The Mitre of Holiness" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap()
des.trap()
-- Random monsters.
des.monster("Nalzok",place[placeidx])
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("human zombie")
des.monster("Z")
des.monster("Z")
des.monster("wraith")
des.monster("wraith")
des.monster("wraith")
des.monster("wraith")
des.monster("wraith")
des.monster("wraith")
des.monster("wraith")
des.monster("wraith")
des.monster("W")

73
dat/Pri-loca.lua Normal file
View File

@@ -0,0 +1,73 @@
-- NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
-- This is a kludge to init the level as a lit field.
des.level_init({ style="mines", fg=".", bg=".", smoothed=false, joined=false, lit=1, walled=false })
des.map([[
........................................
........................................
..........----------+----------.........
..........|........|.|........|.........
..........|........|.|........|.........
..........|----.----.----.----|.........
..........+...................+.........
..........+...................+.........
..........|----.----.----.----|.........
..........|........|.|........|.........
..........|........|.|........|.........
..........----------+----------.........
........................................
........................................
]]);
-- Dungeon Description
des.region({ region={00,00, 09,13}, lit=0, type="morgue", prefilled=0 })
des.region({ region={09,00, 30,01}, lit=0, type="morgue", prefilled=0 })
des.region({ region={09,12, 30,13}, lit=0, type="morgue", prefilled=0 })
des.region({ region={31,00, 39,13}, lit=0, type="morgue", prefilled=0 })
des.region({ region={11,03, 29,10}, lit=1, type="temple", prefilled=0, irregular=1 })
-- The altar inside the temple
des.altar({ x=20,y=07, align="noalign", type="shrine" })
des.monster({ id = "aligned priest", x=20, y=07, align="noalign", peaceful = 0 })
-- Doors
des.door("locked",10,06)
des.door("locked",10,07)
des.door("locked",20,02)
des.door("locked",20,11)
des.door("locked",30,06)
des.door("locked",30,07)
-- Stairs
-- Note: The up stairs are *intentionally* off of the map.
des.stair("up", 43,05)
des.stair("down", 20,06)
-- Non diggable walls
des.non_diggable(selection.area(10,02,30,13))
-- Objects (inside the antechambers).
des.object({ coord = { 14, 03 } })
des.object({ coord = { 15, 03 } })
des.object({ coord = { 16, 03 } })
des.object({ coord = { 14, 10 } })
des.object({ coord = { 15, 10 } })
des.object({ coord = { 16, 10 } })
des.object({ coord = { 17, 10 } })
des.object({ coord = { 24, 03 } })
des.object({ coord = { 25, 03 } })
des.object({ coord = { 26, 03 } })
des.object({ coord = { 27, 03 } })
des.object({ coord = { 24, 10 } })
des.object({ coord = { 25, 10 } })
des.object({ coord = { 26, 10 } })
des.object({ coord = { 27, 10 } })
-- Random traps
des.trap({ coord = { 15,04 } })
des.trap({ coord = { 25,04 } })
des.trap({ coord = { 15,09 } })
des.trap({ coord = { 25,09 } })
des.trap()
des.trap()
-- No random monsters - the morgue generation will put them in.

105
dat/Pri-strt.lua Normal file
View File

@@ -0,0 +1,105 @@
-- NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, High Priest
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
............................................................................
............................................................................
............................................................................
....................------------------------------------....................
....................|................|.....|.....|.....|....................
....................|..------------..|--+-----+-----+--|....................
....................|..|..........|..|.................|....................
....................|..|..........|..|+---+---+-----+--|....................
..................---..|..........|......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................---..|..........|......|...|...|.....|....................
....................|..|..........|..|+-----+---+---+--|....................
....................|..|..........|..|.................|....................
....................|..------------..|--+-----+-----+--|....................
....................|................|.....|.....|.....|....................
....................------------------------------------....................
............................................................................
............................................................................
............................................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region({ region={24,06, 33,13}, lit=1, type="temple" })
des.replace_terrain({ region={00,00, 10,19}, fromterrain=".", toterrain="T", chance=10 })
des.replace_terrain({ region={65,00, 75,19}, fromterrain=".", toterrain="T", chance=10 })
des.terrain({05,04}, ".")
-- Portal arrival point
des.levregion({ region = {05,04,05,04}, type="branch" })
-- Stairs
des.stair("down", 52,09)
-- Doors
des.door("locked",18,09)
des.door("locked",18,10)
des.door("closed",34,09)
des.door("closed",34,10)
des.door("closed",40,05)
des.door("closed",46,05)
des.door("closed",52,05)
des.door("locked",38,07)
des.door("closed",42,07)
des.door("closed",46,07)
des.door("closed",52,07)
des.door("locked",38,12)
des.door("closed",44,12)
des.door("closed",48,12)
des.door("closed",52,12)
des.door("closed",40,14)
des.door("closed",46,14)
des.door("closed",52,14)
-- Unattended Altar - unaligned due to conflict - player must align it.
des.altar({ x=28, y=09, align="noalign", type="altar" })
-- High Priest
des.monster("Arch Priest", 28, 10)
-- The treasure of High Priest
des.object("chest", 27, 10)
-- knight guards for the audience chamber
des.monster("acolyte", 32, 07)
des.monster("acolyte", 32, 08)
des.monster("acolyte", 32, 11)
des.monster("acolyte", 32, 12)
des.monster("acolyte", 33, 07)
des.monster("acolyte", 33, 08)
des.monster("acolyte", 33, 11)
des.monster("acolyte", 33, 12)
-- Non diggable walls
des.non_diggable(selection.area(18,03,55,16))
-- Random traps
des.trap("dart",20,09)
des.trap("dart",20,10)
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster("human zombie", 37, 01)
des.monster("human zombie", 37, 18)
des.monster("human zombie", 03, 03)
des.monster("human zombie", 65, 04)
des.monster("human zombie", 12, 11)
des.monster("human zombie", 60, 12)
des.monster("human zombie", 14, 08)
des.monster("human zombie", 55, 00)
des.monster("human zombie", 18, 18)
des.monster("human zombie", 59, 10)
des.monster("human zombie", 13, 09)
des.monster("human zombie", 01, 17)

View File

@@ -1,356 +0,0 @@
# NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991-2 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, High Priest
# and receive your quest assignment.
#
MAZE: "Pri-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
............................................................................
............................................................................
............................................................................
....................------------------------------------....................
....................|................|.....|.....|.....|....................
....................|..------------..|--+-----+-----+--|....................
....................|..|..........|..|.................|....................
....................|..|..........|..|+---+---+-----+--|....................
..................---..|..........|......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................+....|..........+......|...|...|.....|....................
..................---..|..........|......|...|...|.....|....................
....................|..|..........|..|+-----+---+---+--|....................
....................|..|..........|..|.................|....................
....................|..------------..|--+-----+-----+--|....................
....................|................|.....|.....|.....|....................
....................------------------------------------....................
............................................................................
............................................................................
............................................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(24,06,33,13),lit,"temple"
REPLACE_TERRAIN:(0,0,10,19),'.','T',10%
REPLACE_TERRAIN:(65,0,75,19),'.','T',10%
TERRAIN:(05,04),'.'
# Portal arrival point
BRANCH:(05,04,05,04),(0,0,0,0)
# Stairs
STAIR:(52,09),down
# Doors
DOOR:locked,(18,09)
DOOR:locked,(18,10)
DOOR:closed,(34,09)
DOOR:closed,(34,10)
DOOR:closed,(40,05)
DOOR:closed,(46,05)
DOOR:closed,(52,05)
DOOR:locked,(38,07)
DOOR:closed,(42,07)
DOOR:closed,(46,07)
DOOR:closed,(52,07)
DOOR:locked,(38,12)
DOOR:closed,(44,12)
DOOR:closed,(48,12)
DOOR:closed,(52,12)
DOOR:closed,(40,14)
DOOR:closed,(46,14)
DOOR:closed,(52,14)
# Unattended Altar - unaligned due to conflict - player must align it.
ALTAR:(28,09),noalign,altar
# High Priest
MONSTER:('@',"Arch Priest"),(28,10)
# The treasure of High Priest
OBJECT:('(',"chest"),(27,10)
# knight guards for the audience chamber
MONSTER:('@',"acolyte"),(32,07)
MONSTER:('@',"acolyte"),(32,08)
MONSTER:('@',"acolyte"),(32,11)
MONSTER:('@',"acolyte"),(32,12)
MONSTER:('@',"acolyte"),(33,07)
MONSTER:('@',"acolyte"),(33,08)
MONSTER:('@',"acolyte"),(33,11)
MONSTER:('@',"acolyte"),(33,12)
# Non diggable walls
NON_DIGGABLE:(18,03,55,16)
# Random traps
TRAP:"dart",(20,09)
TRAP:"dart",(20,10)
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: ('Z',"human zombie"),(37,01)
MONSTER: ('Z',"human zombie"),(37,18)
MONSTER: ('Z',"human zombie"),(03,03)
MONSTER: ('Z',"human zombie"),(65,04)
MONSTER: ('Z',"human zombie"),(12,11)
MONSTER: ('Z',"human zombie"),(60,12)
MONSTER: ('Z',"human zombie"),(14,08)
MONSTER: ('Z',"human zombie"),(55,00)
MONSTER: ('Z',"human zombie"),(18,18)
MONSTER: ('Z',"human zombie"),(59,10)
MONSTER: ('Z',"human zombie"),(13,09)
MONSTER: ('Z',"human zombie"),(01,17)
#
# The "locate" level for the quest.
#
# Here you have to locate the Temple of Nalzok to go
# further towards your assigned quest.
#
MAZE: "Pri-loca",' '
FLAGS: hardfloor
# This is a kludge to init the level as a lit field.
INIT_MAP: mines, '.' , '.' , false , false , lit , false
GEOMETRY:center,center
MAP
........................................
........................................
..........----------+----------.........
..........|........|.|........|.........
..........|........|.|........|.........
..........|----.----.----.----|.........
..........+...................+.........
..........+...................+.........
..........|----.----.----.----|.........
..........|........|.|........|.........
..........|........|.|........|.........
..........----------+----------.........
........................................
........................................
ENDMAP
# Dungeon Description
REGION:(00,00,09,13),unlit,"morgue"
REGION:(09,00,30,01),unlit,"morgue"
REGION:(09,12,30,13),unlit,"morgue"
REGION:(31,00,39,13),unlit,"morgue"
REGION:(11,03,29,10),lit,"temple",filled,irregular
# The altar inside the temple
ALTAR:(20,07),noalign,shrine
MONSTER:('@',"aligned priest"),(20,07),noalign,hostile
# Doors
DOOR:locked,(10,06)
DOOR:locked,(10,07)
DOOR:locked,(20,02)
DOOR:locked,(20,11)
DOOR:locked,(30,06)
DOOR:locked,(30,07)
# Stairs
# Note: The up stairs are *intentionally* off of the map.
STAIR:(43,05),up
STAIR:(20,06),down
# Non diggable walls
NON_DIGGABLE:(10,02,30,13)
# Objects (inside the antechambers).
OBJECT:random,(14,03)
OBJECT:random,(15,03)
OBJECT:random,(16,03)
OBJECT:random,(14,10)
OBJECT:random,(15,10)
OBJECT:random,(16,10)
OBJECT:random,(17,10)
OBJECT:random,(24,03)
OBJECT:random,(25,03)
OBJECT:random,(26,03)
OBJECT:random,(27,03)
OBJECT:random,(24,10)
OBJECT:random,(25,10)
OBJECT:random,(26,10)
OBJECT:random,(27,10)
# Random traps
TRAP:random,(15,04)
TRAP:random,(25,04)
TRAP:random,(15,09)
TRAP:random,(25,09)
TRAP:random,random
TRAP:random,random
# No random monsters - the morgue generation will put them in.
#
# The "goal" level for the quest.
#
# Here you meet Nalzok your nemesis monster. You have to
# defeat Nalzok in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Pri-goal", ' '
INIT_MAP: mines, 'L' , '.' , false , false , unlit , false
GEOMETRY:center,center
MAP
xxxxxx..xxxxxx...xxxxxxxxx
xxxx......xx......xxxxxxxx
xx.xx.............xxxxxxxx
x....................xxxxx
......................xxxx
......................xxxx
xx........................
xxx......................x
xxx................xxxxxxx
xxxx.....x.xx.......xxxxxx
xxxxx...xxxxxx....xxxxxxxx
ENDMAP
# Dungeon Description
$place = { (14,04),(13,07) }
SHUFFLE: $place
REGION:(00,00,25,10),unlit,"ordinary"
# Stairs
STAIR:(20,05),up
# Objects
OBJECT:('[',"helm of brilliance"),$place[0],blessed,0,name:"The Mitre of Holiness"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('&',"Nalzok"),$place[0]
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:('Z',"human zombie"),random
MONSTER:'Z',random
MONSTER:'Z',random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:('W',"wraith"),random
MONSTER:'W',random
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
LEVEL: "Pri-fila"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: ('Z', "human zombie"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: ('Z', "human zombie"), random
}
ROOM: "morgue" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: ('W', "wraith"), random
}
ROOM: "morgue" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
}
RANDOM_CORRIDORS
LEVEL: "Pri-filb"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: ('Z', "human zombie"), random
MONSTER: ('W', "wraith"), random
}
ROOM: "morgue" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
OBJECT: random,random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: ('Z', "human zombie"), random
MONSTER: ('W', "wraith"), random
}
ROOM: "morgue" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: ('Z', "human zombie"), random
MONSTER: ('W', "wraith"), random
}
ROOM: "morgue" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
}
RANDOM_CORRIDORS

35
dat/Ran-fila.lua Normal file
View File

@@ -0,0 +1,35 @@
-- NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg="T", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ class = "C", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })

39
dat/Ran-filb.lua Normal file
View File

@@ -0,0 +1,39 @@
-- NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg=" ", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ class = "C", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })

106
dat/Ran-goal.lua Normal file
View File

@@ -0,0 +1,106 @@
-- NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
... ...
..........................................................................
... + ...
. ............ ....... . ....... .
. ............................. . ........ .........S.. .
. ............ . ...... . . . ....... .. .
. ......... . .... + . ... . .. .
. S . ......... .S. .S............... .
. ... . ... . ......... . .
. ........ .....S.+.......+....\....+........+. .
. ... ... S ......... .. ..... .
. .. ......... .. ...... .
. ....... ... + .... .... .......... .
. .............. .. . ...... .. ............. .
. ............. . .......... ...... .
... + ...
..........................................................................
... ...
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
-- Stairs
des.stair("up", 19,10)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object({ id = "bow", x=37, y=10, buc="blessed", spe=0, name="The Longbow of Diana" })
des.object("chest", 37, 10)
des.object({ coord = { 36, 09 } })
des.object({ coord = { 36, 10 } })
des.object({ coord = { 36, 11 } })
des.object({ coord = { 37, 09 } })
des.object({ coord = { 37, 11 } })
des.object({ coord = { 38, 09 } })
des.object({ coord = { 38, 10 } })
des.object({ coord = { 38, 11 } })
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- doors
des.door("locked",12,08)
des.door("closed",22,10)
des.door("locked",24,10)
des.door("closed",25,11)
des.door("closed",32,10)
des.door("closed",37,03)
des.door("closed",37,07)
des.door("closed",37,13)
des.door("closed",37,16)
des.door("closed",42,10)
des.door("locked",46,08)
des.door("closed",51,10)
des.door("locked",53,08)
des.door("closed",65,05)
-- Random monsters.
des.monster({ id = "Scorpius", x=37, y=10, peaceful=0 })
des.monster({ id = "forest centaur", x=36, y=09, peaceful=0 })
des.monster({ id = "forest centaur", x=36, y=10, peaceful=0 })
des.monster({ id = "forest centaur", x=36, y=11, peaceful=0 })
des.monster({ id = "forest centaur", x=37, y=09, peaceful=0 })
des.monster({ id = "forest centaur", x=37, y=11, peaceful=0 })
des.monster({ id = "forest centaur", x=38, y=09, peaceful=0 })
des.monster({ id = "mountain centaur", x=38, y=10, peaceful=0 })
des.monster({ id = "mountain centaur", x=38, y=11, peaceful=0 })
des.monster({ id = "mountain centaur", x=02, y=02, peaceful=0 })
des.monster({ id = "mountain centaur", x=71, y=02, peaceful=0 })
des.monster({ id = "mountain centaur", x=02, y=16, peaceful=0 })
des.monster({ id = "mountain centaur", x=71, y=16, peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ class = "C", peaceful=0 })
des.monster({ class = "C", peaceful=0 })
des.monster({ id = "scorpion", x=03, y=02, peaceful=0 })
des.monster({ id = "scorpion", x=72, y=02, peaceful=0 })
des.monster({ id = "scorpion", x=03, y=17, peaceful=0 })
des.monster({ id = "scorpion", x=72, y=17, peaceful=0 })
des.monster({ id = "scorpion", x=41, y=10, peaceful=0 })
des.monster({ id = "scorpion", x=33, y=09, peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ class = "s", peaceful=0 })
des.wallify()

79
dat/Ran-loca.lua Normal file
View File

@@ -0,0 +1,79 @@
-- NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
--1234567890123456789012345678901234567890123456789012345678901234567890
des.map([[
....... ......... .......
................... ...................
.... ....... ....... ....
... ..... . ..... . ..... ...
. .......... ..... ........... ..... .......... .
. .. ..... .......... ..... .......... ..... .. .
. . . ..... . ..... . . .
. . ..... ............. ..... . .
. . ................ ....... ................ . .
. . ..... ....... ..... . .
. . . ...... ...... . . .
. . ........... ......... ........... . .
. . .......... .......... . .
. .. ..... . ..... . ..... .. .
. .......... ..... ........... ..... .......... .
. ..... .......... ..... .......... ..... .
. . ..... . ..... . .
... ....... ....... ....... ...
.............. ............. ..............
....... ....... ....... ....... .......
]]);
-- Dungeon Description
des.region(selection.area(00,00,54,19), "lit")
-- Stairs
des.stair("up", 25,05)
des.stair("down", 27,18)
-- Non diggable walls
des.non_diggable(selection.area(00,00,54,19))
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap("spiked pit")
des.trap("spiked pit")
des.trap("teleport")
des.trap("teleport")
des.trap("arrow")
des.trap("arrow")
-- Random monsters.
des.monster({ id = "wumpus", x=27, y=18, peaceful=0, asleep=1 })
des.monster({ id = "giant bat", peaceful=0 })
des.monster({ id = "giant bat", peaceful=0 })
des.monster({ id = "giant bat", peaceful=0 })
des.monster({ id = "giant bat", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "forest centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "mountain centaur", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ class = "s", peaceful=0 })
des.monster({ class = "s", peaceful=0 })

97
dat/Ran-strt.lua Normal file
View File

@@ -0,0 +1,97 @@
-- NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Orion,
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = "." });
des.level_flags("mazelevel", "noteleport", "hardfloor", "arboreal")
des.level_init({ style="mines", fg=".", bg=".", smoothed=true, joined=true, lit=1, walled=false })
des.replace_terrain({ region={00,00, 76,19}, fromterrain=".", toterrain="T", chance=5 })
--1234567890123456789012345678901234567890123456789012345678901234567890
des.map({ halign = "left", valign = "center", map = [[
xx
................................... x
.. ..
.. ...............F............... ..
. .. .F. .. .
. .. .............F............. .. .
. . .. .. . .
. . .. ....................... .. ...
. . . .. .. .
... . .. .|..................... ......
FFF . . ..S..................
... . .. .|................. .... ...
. . . .. .. . . .
. . .. ....................... .. . .
. . .. .. . .
. .. .............F............. .. .
. .. .F. .. .
.. ...............F............... ..
.. ..
................................... x
xx
]] });
-- Dungeon Description
des.region(selection.area(00,00,40,20), "lit")
-- Stairs
des.stair("down", 10,10)
-- Portal arrival point; just about anywhere on the right hand side of the map
des.levregion({ region = {51,2,77,18}, region_islev = 1, type="branch" })
-- Orion
des.monster("Orion", 20, 10)
-- The treasure of Orion
des.object("chest", 20, 10)
-- Guards for the audience chamber
des.monster("hunter", 19, 09)
des.monster("hunter", 20, 09)
des.monster("hunter", 21, 09)
des.monster("hunter", 19, 10)
des.monster("hunter", 21, 10)
des.monster("hunter", 19, 11)
des.monster("hunter", 20, 11)
des.monster("hunter", 21, 11)
-- Non diggable walls
des.non_diggable(selection.area(00,00,40,20))
-- Traps
des.trap("arrow",30,09)
des.trap("arrow",30,10)
des.trap("pit",40,09)
des.trap("spiked pit")
des.trap("bear")
des.trap("bear")
-- Monsters on siege duty.
des.monster({ id = "minotaur", x=33, y=09, peaceful=0, asleep=1 })
des.monster({ id = "forest centaur", x=19, y=03, peaceful=0 })
des.monster({ id = "forest centaur", x=19, y=04, peaceful=0 })
des.monster({ id = "forest centaur", x=19, y=05, peaceful=0 })
des.monster({ id = "forest centaur", x=21, y=03, peaceful=0 })
des.monster({ id = "forest centaur", x=21, y=04, peaceful=0 })
des.monster({ id = "forest centaur", x=21, y=05, peaceful=0 })
des.monster({ id = "forest centaur", x=01, y=09, peaceful=0 })
des.monster({ id = "forest centaur", x=02, y=09, peaceful=0 })
des.monster({ id = "forest centaur", x=03, y=09, peaceful=0 })
des.monster({ id = "forest centaur", x=01, y=11, peaceful=0 })
des.monster({ id = "forest centaur", x=02, y=11, peaceful=0 })
des.monster({ id = "forest centaur", x=03, y=11, peaceful=0 })
des.monster({ id = "forest centaur", x=19, y=15, peaceful=0 })
des.monster({ id = "forest centaur", x=19, y=16, peaceful=0 })
des.monster({ id = "forest centaur", x=19, y=17, peaceful=0 })
des.monster({ id = "forest centaur", x=21, y=15, peaceful=0 })
des.monster({ id = "forest centaur", x=21, y=16, peaceful=0 })
des.monster({ id = "forest centaur", x=21, y=17, peaceful=0 })
des.monster({ id = "plains centaur", peaceful=0 })
des.monster({ id = "plains centaur", peaceful=0 })
des.monster({ id = "plains centaur", peaceful=0 })
des.monster({ id = "plains centaur", peaceful=0 })
des.monster({ id = "plains centaur", peaceful=0 })
des.monster({ id = "plains centaur", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })
des.monster({ id = "scorpion", peaceful=0 })

View File

@@ -1,356 +0,0 @@
# NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Orion,
# and receive your quest assignment.
#
MAZE: "Ran-strt",'.'
FLAGS: noteleport,hardfloor,arboreal
INIT_MAP:mines,'.','.',true,true,lit,false
REPLACE_TERRAIN:(0,0,76,19),'.', 'T', 5%
GEOMETRY:left,center
#1234567890123456789012345678901234567890123456789012345678901234567890
MAP
xx
................................... x
.. ..
.. ...............F............... ..
. .. .F. .. .
. .. .............F............. .. .
. . .. .. . .
. . .. ....................... .. ...
. . . .. .. .
... . .. .|..................... ......
FFF . . ..S..................
... . .. .|................. .... ...
. . . .. .. . . .
. . .. ....................... .. . .
. . .. .. . .
. .. .............F............. .. .
. .. .F. .. .
.. ...............F............... ..
.. ..
................................... x
xx
ENDMAP
# Dungeon Description
REGION:(00,00,40,20),lit,"ordinary"
# Stairs
STAIR:(10,10),down
# Portal arrival point; just about anywhere on the right hand side of the map
BRANCH:levregion(51,2,77,18),(0,0,40,20)
# Orion
MONSTER:('@',"Orion"),(20,10)
# The treasure of Orion
OBJECT:('(',"chest"),(20,10)
# Guards for the audience chamber
MONSTER:('@',"hunter"),(19,09)
MONSTER:('@',"hunter"),(20,09)
MONSTER:('@',"hunter"),(21,09)
MONSTER:('@',"hunter"),(19,10)
MONSTER:('@',"hunter"),(21,10)
MONSTER:('@',"hunter"),(19,11)
MONSTER:('@',"hunter"),(20,11)
MONSTER:('@',"hunter"),(21,11)
# Non diggable walls
NON_DIGGABLE:(00,00,40,20)
# Traps
TRAP:"arrow",(30,09)
TRAP:"arrow",(30,10)
TRAP:"pit",(40,09)
TRAP:"spiked pit",random
TRAP:"bear",random
TRAP:"bear",random
# Monsters on siege duty.
MONSTER: ('H',"minotaur"),(33,09),hostile,asleep
MONSTER: ('C',"forest centaur"),(19,03),hostile
MONSTER: ('C',"forest centaur"),(19,04),hostile
MONSTER: ('C',"forest centaur"),(19,05),hostile
MONSTER: ('C',"forest centaur"),(21,03),hostile
MONSTER: ('C',"forest centaur"),(21,04),hostile
MONSTER: ('C',"forest centaur"),(21,05),hostile
MONSTER: ('C',"forest centaur"),(01,09),hostile
MONSTER: ('C',"forest centaur"),(02,09),hostile
MONSTER: ('C',"forest centaur"),(03,09),hostile
MONSTER: ('C',"forest centaur"),(01,11),hostile
MONSTER: ('C',"forest centaur"),(02,11),hostile
MONSTER: ('C',"forest centaur"),(03,11),hostile
MONSTER: ('C',"forest centaur"),(19,15),hostile
MONSTER: ('C',"forest centaur"),(19,16),hostile
MONSTER: ('C',"forest centaur"),(19,17),hostile
MONSTER: ('C',"forest centaur"),(21,15),hostile
MONSTER: ('C',"forest centaur"),(21,16),hostile
MONSTER: ('C',"forest centaur"),(21,17),hostile
MONSTER: ('C',"plains centaur"),random,hostile
MONSTER: ('C',"plains centaur"),random,hostile
MONSTER: ('C',"plains centaur"),random,hostile
MONSTER: ('C',"plains centaur"),random,hostile
MONSTER: ('C',"plains centaur"),random,hostile
MONSTER: ('C',"plains centaur"),random,hostile
MONSTER: ('s',"scorpion"),random,hostile
MONSTER: ('s',"scorpion"),random,hostile
#
# The "locate" level for the quest.
#
# Here you have to infiltrate the Cave of the Wumpus to go
# further towards your assigned quest.
#
MAZE: "Ran-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
#1234567890123456789012345678901234567890123456789012345678901234567890
MAP
....... ......... .......
................... ...................
.... ....... ....... ....
... ..... . ..... . ..... ...
. .......... ..... ........... ..... .......... .
. .. ..... .......... ..... .......... ..... .. .
. . . ..... . ..... . . .
. . ..... ............. ..... . .
. . ................ ....... ................ . .
. . ..... ....... ..... . .
. . . ...... ...... . . .
. . ........... ......... ........... . .
. . .......... .......... . .
. .. ..... . ..... . ..... .. .
. .......... ..... ........... ..... .......... .
. ..... .......... ..... .......... ..... .
. . ..... . ..... . .
... ....... ....... ....... ...
.............. ............. ..............
....... ....... ....... ....... .......
ENDMAP
# Dungeon Description
REGION:(00,00,54,19),lit,"ordinary"
# Stairs
STAIR:(25,05),up
STAIR:(27,18),down
# Non diggable walls
NON_DIGGABLE:(00,00,54,19)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:"spiked pit",random
TRAP:"spiked pit",random
TRAP:"teleport",random
TRAP:"teleport",random
TRAP:"arrow",random
TRAP:"arrow",random
# Random monsters.
MONSTER:('q',"wumpus"),(27,18),hostile,asleep
MONSTER:('B',"giant bat"),random,hostile
MONSTER:('B',"giant bat"),random,hostile
MONSTER:('B',"giant bat"),random,hostile
MONSTER:('B',"giant bat"),random,hostile
MONSTER:('C',"forest centaur"),random,hostile
MONSTER:('C',"forest centaur"),random,hostile
MONSTER:('C',"forest centaur"),random,hostile
MONSTER:('C',"forest centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('s',"scorpion"),random,hostile
MONSTER:('s',"scorpion"),random,hostile
MONSTER:('s',"scorpion"),random,hostile
MONSTER:('s',"scorpion"),random,hostile
MONSTER:'s',random,hostile
MONSTER:'s',random,hostile
#
# The "goal" level for the quest.
#
# Here you meet Scorpius, your nemesis monster. You have to
# defeat Scorpius in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Ran-goal", ' '
GEOMETRY:center,center
MAP
... ...
..........................................................................
... + ...
. ............ ....... . ....... .
. ............................. . ........ .........S.. .
. ............ . ...... . . . ....... .. .
. ......... . .... + . ... . .. .
. S . ......... .S. .S............... .
. ... . ... . ......... . .
. ........ .....S.+.......+....\....+........+. .
. ... ... S ......... .. ..... .
. .. ......... .. ...... .
. ....... ... + .... .... .......... .
. .............. .. . ...... .. ............. .
. ............. . .......... ...... .
... + ...
..........................................................................
... ...
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
# Stairs
STAIR:(19,10),up
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:(')',"bow"),(37,10),blessed,0,name:"The Longbow of Diana"
OBJECT:('(',"chest"),(37,10)
OBJECT:random,(36,09)
OBJECT:random,(36,10)
OBJECT:random,(36,11)
OBJECT:random,(37,09)
OBJECT:random,(37,11)
OBJECT:random,(38,09)
OBJECT:random,(38,10)
OBJECT:random,(38,11)
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# doors
DOOR:locked,(12,08)
DOOR:closed,(22,10)
DOOR:locked,(24,10)
DOOR:closed,(25,11)
DOOR:closed,(32,10)
DOOR:closed,(37,03)
DOOR:closed,(37,07)
DOOR:closed,(37,13)
DOOR:closed,(37,16)
DOOR:closed,(42,10)
DOOR:locked,(46,08)
DOOR:closed,(51,10)
DOOR:locked,(53,08)
DOOR:closed,(65,05)
# Random monsters.
MONSTER:('s',"Scorpius"),(37,10),hostile
MONSTER:('C',"forest centaur"),(36,09),hostile
MONSTER:('C',"forest centaur"),(36,10),hostile
MONSTER:('C',"forest centaur"),(36,11),hostile
MONSTER:('C',"forest centaur"),(37,09),hostile
MONSTER:('C',"forest centaur"),(37,11),hostile
MONSTER:('C',"forest centaur"),(38,09),hostile
MONSTER:('C',"mountain centaur"),(38,10),hostile
MONSTER:('C',"mountain centaur"),(38,11),hostile
MONSTER:('C',"mountain centaur"),(02,02),hostile
MONSTER:('C',"mountain centaur"),(71,02),hostile
MONSTER:('C',"mountain centaur"),(02,16),hostile
MONSTER:('C',"mountain centaur"),(71,16),hostile
MONSTER:('C',"forest centaur"),random,hostile
MONSTER:('C',"forest centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:('C',"mountain centaur"),random,hostile
MONSTER:'C',random,hostile
MONSTER:'C',random,hostile
MONSTER:('s',"scorpion"),(03,02),hostile
MONSTER:('s',"scorpion"),(72,02),hostile
MONSTER:('s',"scorpion"),(03,17),hostile
MONSTER:('s',"scorpion"),(72,17),hostile
MONSTER:('s',"scorpion"),(41,10),hostile
MONSTER:('s',"scorpion"),(33,09),hostile
MONSTER:('s',"scorpion"),random,hostile
MONSTER:('s',"scorpion"),random,hostile
MONSTER:'s',random,hostile
WALLIFY
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "fila" is the upper filler, between the
# start and locate levels, and "filb" the lower between the locate
# and goal levels.
#
MAZE: "Ran-fila" , ' '
INIT_MAP: mines, '.' , 'T', true, true, random, true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('C', "mountain centaur"), random, hostile
MONSTER: ('C', "mountain centaur"), random, hostile
MONSTER: ('C', "forest centaur"), random, hostile
MONSTER: ('C', "forest centaur"), random, hostile
MONSTER: ('C', "forest centaur"), random, hostile
MONSTER: 'C', random, hostile
MONSTER: ('s', "scorpion"), random, hostile
MAZE: "Ran-filb" , ' '
INIT_MAP: mines, '.' , ' ', true, true, random, true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('C', "mountain centaur"), random, hostile
MONSTER: ('C', "mountain centaur"), random, hostile
MONSTER: ('C', "mountain centaur"), random, hostile
MONSTER: ('C', "mountain centaur"), random, hostile
MONSTER: 'C', random, hostile
MONSTER: ('s', "scorpion"), random, hostile
MONSTER: ('s', "scorpion"), random, hostile

64
dat/Rog-fila.lua Normal file
View File

@@ -0,0 +1,64 @@
-- NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by Dean Luick
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster({ id = "leprechaun", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.trap()
des.object()
des.monster({ id = "water nymph", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.trap()
des.monster({ class = "l", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.trap()
des.monster({ id = "leprechaun", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.trap()
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "water nymph", peaceful=0 })
end
})
des.random_corridors()

64
dat/Rog-filb.lua Normal file
View File

@@ -0,0 +1,64 @@
-- NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by Dean Luick
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster({ id = "leprechaun", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.trap()
des.object()
des.monster({ id = "water nymph", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.trap()
des.monster({ class = "l", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.trap()
des.monster({ id = "leprechaun", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.trap()
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "water nymph", peaceful=0 })
end
})
des.random_corridors()

110
dat/Rog-goal.lua Normal file
View File

@@ -0,0 +1,110 @@
-- NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by Dean Luick
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport")
-- 1 2 3 4 5 6 7
--123456789012345678901234567890123456789012345678901234567890123456789012345
des.map([[
----- -------.......................................|-----------------|
|...| -----.....|.......................................|.................|
|...----...|.....|.......................................|....---------....|
|.---......---..--.................................------------.......|....|
|...............|..................................|..|...|...----........-|
|.....-----....--.................................|-..--..-|.....----S----|
|--S---...|....|.................................|-........-|....|........|
|.........---------.............................|-....}}....-|...|...|....|
|....|.....S......|............................|-.....}}.....-|..--.------|
|-----.....--.....|...........................|-...}}}}}}}}...-|....|.....--
|...........--....------S-----...............|-....}}}}}}}}....-|..........|
|............--........|...| |..............--.....}}.}}........----------S-
|.............|........|...| |..............|......}}}}}}}}......|...|.....|
|S-.---.---.---.---.---|...| ------------...--........}}.}}.....--..---....|
|.---.---.---.---.-S-..----- |....|.....|....|-....}}}}}}}}....---..S.|--..|
|...|.......|..........|...---....---...S.....|-...}}}}}}}}...-|.S..|...|..|
|...|..|....|..........|............|..--..----|-.....}}.....-|..----...-S--
|...|---....----.......|----- ......|...---| |-....}}....-|...|..--.--..|
-----.....---.....--.---....--...--------..| |-........-|....|.........|
|.............|..........|.............S... |S-------|.....|..-----..|
---------------------------------------- ...... ---------- ----
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,20), "lit")
-- Stairs
des.levregion({ region={01,00,15,20}, region_islev=1, exclude={01,18,04,20}, type="stair-up" });
-- Doors
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,20))
-- One trap to keep the gnomes at bay.
des.trap("spiked pit",37,07)
-- Objects
des.object({ id = "skeleton key", x=38, y=10, buc="blessed", spe=0, name="The Master Key of Thievery" })
des.object({ id = "tin", x=26, y=12, montype="chameleon" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "Master Assassin", x=38, y=10, peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ class = "l", peaceful=0 })
des.monster({ class = "l", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ class = "N", peaceful=0 })
des.monster({ class = "N", peaceful=0 })
des.monster({ class = "N", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "shark", x=51, y=14, peaceful=0 })
des.monster({ id = "shark", x=53, y=09, peaceful=0 })
des.monster({ id = "shark", x=55, y=15, peaceful=0 })
des.monster({ id = "shark", x=58, y=10, peaceful=0 })

99
dat/Rog-loca.lua Normal file
View File

@@ -0,0 +1,99 @@
-- NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by Dean Luick
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
-- 1 2 3 4 5 6 7
--123456789012345678901234567890123456789012345678901234567890123456789012345
des.map([[
---------------------------------------------------- --------
---.................................................- --.....|
---...--------........-------.......................--- ---...|
---.....- ---......- ---..................---- --.--
---.....---- -------- --..................-- --..|
---...----- ----.----.....----.....--- --..||
----..---- -----..--- |...--- |.......--- --...|
|...--- ----....--- |.--- |.........-- --...||
|...- ----.....--- ---- |..........---....|
|...---- ----......--- | |...|.......-....||
|......----- ---.........- | -----...|............|
|..........----- ----...........--- -------......||...........||
|..............-----................--- |............|||..........|
|------...............................--- |...........|| |.........||
|.....|..............------.............-----..........|| ||........|
|.....|.............-- ---.........................|| |.......||
|.....|.............- ---.....................--| ||......|
|-S----------.......---- --.................---- |.....||
|...........|..........--------..............----- ||....|
|...........|............................----- |....|
------------------------------------------ ------
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,20), "lit")
-- Doors
--DOOR:locked|closed|open,(xx,yy)
-- Stairs
des.stair("up")
des.stair("down")
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,20))
-- Objects
des.object({ id = "teleportation", x=11, y=18, buc="cursed", spe=0 })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ id = "leprechaun", peaceful=0 })
des.monster({ class = "l", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ id = "guardian naga", peaceful=0 })
des.monster({ class = "N", peaceful=0 })
des.monster({ class = "N", peaceful=0 })
des.monster({ class = "N", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })
des.monster({ id = "chameleon", peaceful=0 })

163
dat/Rog-strt.lua Normal file
View File

@@ -0,0 +1,163 @@
-- NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by Dean Luick
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Master of Thieves
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor", "nommap")
-- 1 2 3 4 5 6 7
--123456789012345678901234567890123456789012345678901234567890123456789012345
des.map([[
---------------------------------.------------------------------------------
|.....|.||..........|....|......|.|.........|.......+............---.......|
|.....|..+..........+....---....S.|...-S-----.-----.|............+.+.......|
|.....+.||........---......|....|.|...|.....|.|...|.---.....------.--------|
|-----|.-------|..|........------.-----.....|.--..|...-------..............|
|.....|........------+------..........+.....|..--S---.........------.-----..
|.....|.------...............-----.}}.--------.|....-------.---....|.+...--|
|..-+--.|....|-----.--------.|...|.....+.....|.|....|.....+.+......|.--....|
|..|....|....|....+.|......|.|...-----.|.....|.--...|.....|.|......|..|....|
|..|.-----S----...|.+....-----...|...|.----..|..|.---....--.---S-----.|----|
|..|.|........|...------.|.S.....|...|....-----.+.|......|..|.......|.|....|
|---.-------..|...|....|.|.|.....|...----.|...|.|---.....|.|-.......|.---..|
...........|..S...|....---.----S----..|...|...+.|..-------.---+-....|...--+|
|---------.---------...|......|....S..|.---...|.|..|...........----.---....|
|........|.........|...+.------....|---.---...|.--+-.----.----....|.+...--+|
|........|.---+---.|----.--........|......-----......|..|..|.--+-.|.-S-.|..|
|........|.|.....|........----------.----.......---.--..|-.|....|.-----.|..|
|----....+.|.....----+---............|..|--------.+.|...SS.|....|.......|..|
|...--+-----.....|......|.------------............---...||.------+--+----..|
|..........S.....|......|.|..........S............|.....||...|.....|....|..|
-------------------------.--------------------------------------------------
]]);
-- Dungeon Description
--REGION:(00,00,75,20),lit,"ordinary"
local streets = selection.floodfill(selection.new(), 0,12)
-- The down stairs is at one of the 4 "exits". The others are mimics,
-- mimicing stairwells.
local place = { {33,0}, {0,12}, {25,20}, {75,05} }
shuffle(place)
des.stair({ dir = "down", coord = place[1] })
des.monster({ id = "giant mimic", coord = place[2], appear_as = "ter:staircase down" })
des.monster({ id = "large mimic", coord = place[3], appear_as = "ter:staircase down" })
des.monster({ id = "small mimic", coord = place[4], appear_as = "ter:staircase down" })
-- Portal arrival point
des.levregion({ region = {19,09,19,09}, type="branch" })
-- Doors (secret)
--DOOR:locked|closed|open,(xx,yy)
des.door("locked", 32, 2)
des.door("locked", 63, 9)
des.door("locked", 27,10)
des.door("locked", 31,12)
des.door("locked", 35,13)
des.door("locked", 69,15)
des.door("locked", 56,17)
des.door("locked", 57,17)
des.door("locked", 11,19)
des.door("locked", 37,19)
des.door("locked", 39, 2)
des.door("locked", 49, 5)
des.door("locked", 10, 9)
des.door("locked", 14,12)
-- Doors (regular)
des.door("closed", 52, 1)
des.door("closed", 9, 2)
des.door("closed", 20, 2)
des.door("closed", 65, 2)
des.door("closed", 67, 2)
des.door("closed", 6, 3)
des.door("closed", 21, 5)
des.door("closed", 38, 5)
des.door("closed", 69, 6)
des.door("closed", 4, 7)
des.door("closed", 39, 7)
des.door("closed", 58, 7)
des.door("closed", 60, 7)
des.door("closed", 18, 8)
des.door("closed", 20, 9)
des.door("closed", 48,10)
des.door("closed", 46,12)
des.door("closed", 62,12)
des.door("closed", 74,12)
des.door("closed", 23,14)
des.door("closed", 23,14)
des.door("closed", 50,14)
des.door("closed", 68,14)
des.door("closed", 74,14)
des.door("closed", 14,15)
des.door("closed", 63,15)
des.door("closed", 9,17)
des.door("closed", 21,17)
des.door("closed", 50,17)
des.door("closed", 6,18)
des.door("closed", 65,18)
des.door("closed", 68,18)
-- Master of Thieves
des.monster("Master of Thieves", 36, 11)
-- The treasure of Master of Thieves
des.object("chest", 36, 11)
-- thug guards, room #1
des.monster("thug", 28, 10)
des.monster("thug", 29, 11)
des.monster("thug", 30, 09)
des.monster("thug", 31, 07)
-- thug guards, room #2
des.monster("thug", 31, 13)
des.monster("thug", 33, 14)
des.monster("thug", 30, 15)
--thug guards, room #3
des.monster("thug", 35, 09)
des.monster("thug", 36, 13)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,20))
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
--
-- Monsters to get in the way.
--
-- West exit
des.monster({ id = "leprechaun", x=01, y=12, peaceful=0 })
des.monster({ id = "water nymph", x=02, y=12, peaceful=0 })
-- North exit
des.monster({ id = "water nymph", x=33, y=01, peaceful=0 })
des.monster({ id = "leprechaun", x=33, y=02, peaceful=0 })
-- East exit
des.monster({ id = "water nymph", x=74, y=05, peaceful=0 })
des.monster({ id = "leprechaun", x=74, y=04, peaceful=0 })
-- South exit
des.monster({ id = "leprechaun", x=25, y=19, peaceful=0 })
des.monster({ id = "water nymph", x=25, y=18, peaceful=0 })
-- Wandering the streets.
for i=1,4 + math.random(1 - 1,1*3) do
des.monster({ id = "water nymph", coord = {streets:rndcoord(1)}, peaceful=0 })
des.monster({ id = "leprechaun", coord = {streets:rndcoord(1)}, peaceful=0 })
end
for i=1,7 + math.random(1 - 1,1*3) do
des.monster({ id = "chameleon", coord = {streets:rndcoord(1)}, peaceful=0 })
end

View File

@@ -1,485 +0,0 @@
# NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
# Copyright (c) 1992 by Dean Luick
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Master of Thieves
# and receive your quest assignment.
#
MAZE: "Rog-strt",' '
FLAGS: noteleport, hardfloor, nommap
GEOMETRY:center,center
# 1 2 3 4 5 6 7
#123456789012345678901234567890123456789012345678901234567890123456789012345
MAP
---------------------------------.------------------------------------------
|.....|.||..........|....|......|.|.........|.......+............---.......|
|.....|..+..........+....---....S.|...-S-----.-----.|............+.+.......|
|.....+.||........---......|....|.|...|.....|.|...|.---.....------.--------|
|-----|.-------|..|........------.-----.....|.--..|...-------..............|
|.....|........------+------..........+.....|..--S---.........------.-----..
|.....|.------...............-----.}}.--------.|....-------.---....|.+...--|
|..-+--.|....|-----.--------.|...|.....+.....|.|....|.....+.+......|.--....|
|..|....|....|....+.|......|.|...-----.|.....|.--...|.....|.|......|..|....|
|..|.-----S----...|.+....-----...|...|.----..|..|.---....--.---S-----.|----|
|..|.|........|...------.|.S.....|...|....-----.+.|......|..|.......|.|....|
|---.-------..|...|....|.|.|.....|...----.|...|.|---.....|.|-.......|.---..|
...........|..S...|....---.----S----..|...|...+.|..-------.---+-....|...--+|
|---------.---------...|......|....S..|.---...|.|..|...........----.---....|
|........|.........|...+.------....|---.---...|.--+-.----.----....|.+...--+|
|........|.---+---.|----.--........|......-----......|..|..|.--+-.|.-S-.|..|
|........|.|.....|........----------.----.......---.--..|-.|....|.-----.|..|
|----....+.|.....----+---............|..|--------.+.|...SS.|....|.......|..|
|...--+-----.....|......|.------------............---...||.------+--+----..|
|..........S.....|......|.|..........S............|.....||...|.....|....|..|
-------------------------.--------------------------------------------------
ENDMAP
# Dungeon Description
#REGION:(00,00,75,20),lit,"ordinary"
$streets = selection: floodfill(0,12)
# The down stairs is at one of the 4 "exits". The others are mimics,
# mimicing stairwells.
$place = { (33,0), (0,12), (25,20), (75,05) }
SHUFFLE: $place
STAIR:$place[0],down
MONSTER:('m',"giant mimic"), $place[1], m_feature "staircase down"
MONSTER:('m',"large mimic"), $place[2], m_feature "staircase down"
MONSTER:('m',"small mimic"), $place[3], m_feature "staircase down"
# Portal arrival point
BRANCH:(19,09,19,09),(0,0,0,0)
# Doors (secret)
#DOOR:locked|closed|open,(xx,yy)
DOOR: locked, (32, 2)
DOOR: locked, (63, 9)
DOOR: locked, (27,10)
DOOR: locked, (31,12)
DOOR: locked, (35,13)
DOOR: locked, (69,15)
DOOR: locked, (56,17)
DOOR: locked, (57,17)
DOOR: locked, (11,19)
DOOR: locked, (37,19)
DOOR: locked, (39, 2)
DOOR: locked, (49, 5)
DOOR: locked, (10, 9)
DOOR: locked, (14,12)
# Doors (regular)
DOOR: closed, (52, 1)
DOOR: closed, ( 9, 2)
DOOR: closed, (20, 2)
DOOR: closed, (65, 2)
DOOR: closed, (67, 2)
DOOR: closed, ( 6, 3)
DOOR: closed, (21, 5)
DOOR: closed, (38, 5)
DOOR: closed, (69, 6)
DOOR: closed, ( 4, 7)
DOOR: closed, (39, 7)
DOOR: closed, (58, 7)
DOOR: closed, (60, 7)
DOOR: closed, (18, 8)
DOOR: closed, (20, 9)
DOOR: closed, (48,10)
DOOR: closed, (46,12)
DOOR: closed, (62,12)
DOOR: closed, (74,12)
DOOR: closed, (23,14)
DOOR: closed, (23,14)
DOOR: closed, (50,14)
DOOR: closed, (68,14)
DOOR: closed, (74,14)
DOOR: closed, (14,15)
DOOR: closed, (63,15)
DOOR: closed, ( 9,17)
DOOR: closed, (21,17)
DOOR: closed, (50,17)
DOOR: closed, ( 6,18)
DOOR: closed, (65,18)
DOOR: closed, (68,18)
# Master of Thieves
MONSTER:('@',"Master of Thieves"),(36,11)
# The treasure of Master of Thieves
OBJECT:('(',"chest"),(36,11)
# thug guards, room #1
MONSTER:('@',"thug"),(28,10)
MONSTER:('@',"thug"),(29,11)
MONSTER:('@',"thug"),(30,09)
MONSTER:('@',"thug"),(31,07)
# thug guards, room #2
MONSTER:('@',"thug"),(31,13)
MONSTER:('@',"thug"),(33,14)
MONSTER:('@',"thug"),(30,15)
#thug guards, room #3
MONSTER:('@',"thug"),(35,09)
MONSTER:('@',"thug"),(36,13)
# Non diggable walls
NON_DIGGABLE:(00,00,75,20)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
#
# Monsters to get in the way.
#
# West exit
MONSTER: ('l',"leprechaun"),(01,12),hostile
MONSTER: ('n',"water nymph"),(02,12),hostile
# North exit
MONSTER: ('n',"water nymph"),(33,01),hostile
MONSTER: ('l',"leprechaun"),(33,02),hostile
# East exit
MONSTER: ('n',"water nymph"),(74,05),hostile
MONSTER: ('l',"leprechaun"),(74,04),hostile
# South exit
MONSTER: ('l',"leprechaun"),(25,19),hostile
MONSTER: ('n',"water nymph"),(25,18),hostile
# Wandering the streets.
LOOP [ 4 + 1d3 ] {
MONSTER: ('n',"water nymph"),rndcoord($streets),hostile
MONSTER: ('l',"leprechaun"),rndcoord($streets),hostile
}
LOOP [ 7 + 1d3 ] {
MONSTER: (':',"chameleon"),rndcoord($streets),hostile
}
#
# The "locate" level for the quest.
#
# Here you have to find the entrance to the Assassins' Guild to go
# further towards your assigned quest.
#
MAZE: "Rog-loca",' '
GEOMETRY:center,center
# 1 2 3 4 5 6 7
#123456789012345678901234567890123456789012345678901234567890123456789012345
MAP
---------------------------------------------------- --------
---.................................................- --.....|
---...--------........-------.......................--- ---...|
---.....- ---......- ---..................---- --.--
---.....---- -------- --..................-- --..|
---...----- ----.----.....----.....--- --..||
----..---- -----..--- |...--- |.......--- --...|
|...--- ----....--- |.--- |.........-- --...||
|...- ----.....--- ---- |..........---....|
|...---- ----......--- | |...|.......-....||
|......----- ---.........- | -----...|............|
|..........----- ----...........--- -------......||...........||
|..............-----................--- |............|||..........|
|------...............................--- |...........|| |.........||
|.....|..............------.............-----..........|| ||........|
|.....|.............-- ---.........................|| |.......||
|.....|.............- ---.....................--| ||......|
|-S----------.......---- --.................---- |.....||
|...........|..........--------..............----- ||....|
|...........|............................----- |....|
------------------------------------------ ------
ENDMAP
# Dungeon Description
REGION:(00,00,75,20),lit,"ordinary"
# Doors
#DOOR:locked|closed|open,(xx,yy)
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,75,20)
# Objects
OBJECT:('?',"teleportation"),(11,18),cursed,0
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:'l',random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:'N',random,hostile
MONSTER:'N',random,hostile
MONSTER:'N',random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
#
# The "goal" level for the quest. Teleportation and digging are
# disallowed.
#
# You have to reach The Master Assassin via some means other than
# simple searching or digging since there is no path between your
# arrival point and his location.
#
MAZE: "Rog-goal", ' '
FLAGS: noteleport
GEOMETRY:center,center
# 1 2 3 4 5 6 7
#123456789012345678901234567890123456789012345678901234567890123456789012345
MAP
----- -------.......................................|-----------------|
|...| -----.....|.......................................|.................|
|...----...|.....|.......................................|....---------....|
|.---......---..--.................................------------.......|....|
|...............|..................................|..|...|...----........-|
|.....-----....--.................................|-..--..-|.....----S----|
|--S---...|....|.................................|-........-|....|........|
|.........---------.............................|-....}}....-|...|...|....|
|....|.....S......|............................|-.....}}.....-|..--.------|
|-----.....--.....|...........................|-...}}}}}}}}...-|....|.....--
|...........--....------S-----...............|-....}}}}}}}}....-|..........|
|............--........|...| |..............--.....}}.}}........----------S-
|.............|........|...| |..............|......}}}}}}}}......|...|.....|
|S-.---.---.---.---.---|...| ------------...--........}}.}}.....--..---....|
|.---.---.---.---.-S-..----- |....|.....|....|-....}}}}}}}}....---..S.|--..|
|...|.......|..........|...---....---...S.....|-...}}}}}}}}...-|.S..|...|..|
|...|..|....|..........|............|..--..----|-.....}}.....-|..----...-S--
|...|---....----.......|----- ......|...---| |-....}}....-|...|..--.--..|
-----.....---.....--.---....--...--------..| |-........-|....|.........|
|.............|..........|.............S... |S-------|.....|..-----..|
---------------------------------------- ...... ---------- ----
ENDMAP
# Dungeon Description
REGION:(00,00,75,20),lit,"ordinary"
# Stairs
STAIR:levregion(01,00,15,20),(01,18,04,20),up
# Doors
# Non diggable walls
NON_DIGGABLE:(00,00,75,20)
# One trap to keep the gnomes at bay.
TRAP:"spiked pit",(37,07)
# Objects
OBJECT:('(',"skeleton key"),(38,10),blessed,0,name:"The Master Key of Thievery"
OBJECT:('%',"tin"),(26,12),montype:"chameleon"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"Master Assassin"),(38,10),hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:('l',"leprechaun"),random,hostile
MONSTER:'l',random,hostile
MONSTER:'l',random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:('N',"guardian naga"),random,hostile
MONSTER:'N',random,hostile
MONSTER:'N',random,hostile
MONSTER:'N',random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER: (':',"chameleon"),random,hostile
MONSTER:(';',"shark"),(51,14),hostile
MONSTER:(';',"shark"),(53,09),hostile
MONSTER:(';',"shark"),(55,15),hostile
MONSTER:(';',"shark"),(58,10),hostile
#
# The "fill" level for the quest.
#
# This level is used to fill out any levels not occupied by specific
# levels as defined above.
#
LEVEL: "Rog-fila"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: ('l', "leprechaun"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: ('l', "leprechaun"), random, hostile
MONSTER: ('N', "guardian naga"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: ('n', "water nymph"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
TRAP: random, random
MONSTER: 'l', random, hostile
MONSTER: ('N', "guardian naga"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
TRAP: random, random
MONSTER: ('l', "leprechaun"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
TRAP: random, random
MONSTER: ('l', "leprechaun"), random, hostile
MONSTER: ('n', "water nymph"), random, hostile
}
RANDOM_CORRIDORS
#
# currently a & b are the same.
#
LEVEL: "Rog-filb"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: ('l', "leprechaun"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: ('l', "leprechaun"), random, hostile
MONSTER: ('N', "guardian naga"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: ('n', "water nymph"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
TRAP: random, random
MONSTER: 'l', random, hostile
MONSTER: ('N', "guardian naga"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
TRAP: random, random
MONSTER: ('l', "leprechaun"), random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
TRAP: random, random
MONSTER: ('l', "leprechaun"), random, hostile
MONSTER: ('n', "water nymph"), random, hostile
}
RANDOM_CORRIDORS

37
dat/Sam-fila.lua Normal file
View File

@@ -0,0 +1,37 @@
-- NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg="P", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster("d")
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("stalker")
--
des.trap()
des.trap()
des.trap()
des.trap()

60
dat/Sam-filb.lua Normal file
View File

@@ -0,0 +1,60 @@
-- NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
------------- -------------
|...........| |...........|
|...-----...|----------------------------------|...-----...|
|...| |...|..................................|...| |...|
|...-----..........................................-----...|
|...........|--S----------------------------S--|...........|
----...--------.|..........................|.--------...----
|...|........+..........................+........|...|
|...|........+..........................+........|...|
----...--------.|..........................|.--------...----
|...........|--S----------------------------S--|...........|
|...-----..........................................-----...|
|...| |...|..................................|...| |...|
|...-----...|----------------------------------|...-----...|
|...........| |...........|
------------- -------------
]]);
des.region(selection.area(00,00,59,15), "unlit")
-- Doors
des.door("closed",16,07)
des.door("closed",16,08)
des.door("closed",43,07)
des.door("closed",43,08)
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster("d")
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
--
des.trap()
des.trap()
des.trap()
des.trap()

111
dat/Sam-goal.lua Normal file
View File

@@ -0,0 +1,111 @@
-- NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport");
des.map([[
.......................
......-------------------......
......----.................----......
....----.....-------------.....----....
....--.....----...........----.....--....
...||....---....---------....---....||...
...|....--....---.......---....--....|...
....|...||...---...--+--...---...||...|....
....|...|....|....|-...-|....|....|...|....
....|...|....|....+.....+....|....|...|....
....|...|....|....|-...-|....|....|...|....
....|...||...---...--+--...---...||...|....
...|....--....---.......---....--....|...
...||....---....---------....---....||...
....--.....----...........----.....--....
....----.....-------------.....----....
......----.................----......
......-------------------......
.......................
]]);
-- Dungeon Description
local place = { {02,11},{42,09} }
local placeidx = math.random(1, #place);
des.region(selection.area(00,00,44,19), "unlit")
-- Doors
des.door("closed",19,10)
des.door("closed",22,08)
des.door("closed",22,12)
des.door("closed",25,10)
-- Stairs
des.stair({ dir = "up", coord = place[placeidx] })
-- Holes in the concentric ring walls
local place = { {22,14},{30,10},{22, 6},{14,10} }
local placeidx = math.random(1, #place);
des.terrain(place[placeidx], ".")
local place = { {22, 4},{35,10},{22,16},{ 9,10} }
local placeidx = math.random(1, #place);
des.terrain(place[placeidx], ".")
local place = { {22, 2},{22,18} }
local placeidx = math.random(1, #place);
des.terrain(place[placeidx], ".")
-- Non diggable walls
des.non_diggable(selection.area(00,00,44,19))
-- Objects
des.object({ id = "tsurugi", x=22, y=10, buc="blessed", spe=0, name="The Tsurugi of Muramasa" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap("board",22,09)
des.trap("board",24,10)
des.trap("board",22,11)
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster("Ashikaga Takauji", 22, 10)
des.monster({ id = "samurai", peaceful=0 })
des.monster({ id = "samurai", peaceful=0 })
des.monster({ id = "samurai", peaceful=0 })
des.monster({ id = "samurai", peaceful=0 })
des.monster({ id = "samurai", peaceful=0 })
des.monster({ id = "ninja", peaceful=0 })
des.monster({ id = "ninja", peaceful=0 })
des.monster({ id = "ninja", peaceful=0 })
des.monster({ id = "ninja", peaceful=0 })
des.monster({ id = "ninja", peaceful=0 })
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("wolf")
des.monster("d")
des.monster("d")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")

141
dat/Sam-loca.lua Normal file
View File

@@ -0,0 +1,141 @@
-- NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor");
des.map([[
............................................................................
............................................................................
........-----..................................................-----........
........|...|..................................................|...|........
........|...---..}..--+------------------------------+--..}..---...|........
........|-|...|.....|...|....|....|....|....|....|.|...|.....|...|-|........
..........|...-------...|....|....|....|....|....S.|...-------...|..........
..........|-|.........------+----+-+-------+-+--------.........|-|..........
............|..--------.|}........................}|.--------..|............
............|..+........+..........................+........+..|............
............|..+........+..........................+........+..|............
............|..--------.|}........................}|.--------..|............
..........|-|.........--------+-+-------+-+----+------.........|-|..........
..........|...-------...|.S....|....|....|....|....|...-------...|..........
........|-|...|.....|...|.|....|....|....|....|....|...|.....|...|-|........
........|...---..}..--+------------------------------+--..}..---...|........
........|...|..................................................|...|........
........-----..................................................-----........
............................................................................
............................................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
-- Doors
des.door("locked",22,04)
des.door("locked",22,15)
des.door("locked",53,04)
des.door("locked",53,15)
des.door("locked",49,06)
des.door("locked",26,13)
des.door("locked",28,07)
des.door("locked",30,12)
des.door("locked",33,07)
des.door("locked",32,12)
des.door("locked",35,07)
des.door("locked",40,12)
des.door("locked",43,07)
des.door("locked",42,12)
des.door("locked",45,07)
des.door("locked",47,12)
des.door("closed",15,09)
des.door("closed",15,10)
des.door("closed",24,09)
des.door("closed",24,10)
des.door("closed",51,09)
des.door("closed",51,10)
des.door("closed",60,09)
des.door("closed",60,10)
-- Stairs
des.stair("up", 10,10)
des.stair("down", 25,14)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Objects
des.object("*", 25, 05)
des.object("*", 26, 05)
des.object("*", 27, 05)
des.object("*", 28, 05)
des.object("*", 25, 06)
des.object("*", 26, 06)
des.object("*", 27, 06)
des.object("*", 28, 06)
--
des.object("[", 40, 05)
des.object("[", 41, 05)
des.object("[", 42, 05)
des.object("[", 43, 05)
des.object("[", 40, 06)
des.object("[", 41, 06)
des.object("[", 42, 06)
des.object("[", 43, 06)
--
des.object(")", 27, 13)
des.object(")", 28, 13)
des.object(")", 29, 13)
des.object(")", 30, 13)
des.object(")", 27, 14)
des.object(")", 28, 14)
des.object(")", 29, 14)
des.object(")", 30, 14)
--
des.object("(", 37, 13)
des.object("(", 38, 13)
des.object("(", 39, 13)
des.object("(", 40, 13)
des.object("(", 37, 14)
des.object("(", 38, 14)
des.object("(", 39, 14)
des.object("(", 40, 14)
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "ninja", x=15, y=05, peaceful=0 })
des.monster({ id = "ninja", x=16, y=05, peaceful=0 })
des.monster("wolf", 17, 05)
des.monster("wolf", 18, 05)
des.monster({ id = "ninja", x=19, y=05, peaceful=0 })
des.monster("wolf", 15, 14)
des.monster("wolf", 16, 14)
des.monster({ id = "ninja", x=17, y=14, peaceful=0 })
des.monster({ id = "ninja", x=18, y=14, peaceful=0 })
des.monster("wolf", 56, 05)
des.monster({ id = "ninja", x=57, y=05, peaceful=0 })
des.monster("wolf", 58, 05)
des.monster("wolf", 59, 05)
des.monster({ id = "ninja", x=56, y=14, peaceful=0 })
des.monster("wolf", 57, 14)
des.monster({ id = "ninja", x=58, y=14, peaceful=0 })
des.monster("d", 59, 14)
des.monster("wolf", 60, 14)
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
des.monster("stalker")
-- "guards" for the central courtyard.
des.monster({ id = "samurai", x=30, y=05, peaceful=0 })
des.monster({ id = "samurai", x=31, y=05, peaceful=0 })
des.monster({ id = "samurai", x=32, y=05, peaceful=0 })
des.monster({ id = "samurai", x=32, y=14, peaceful=0 })
des.monster({ id = "samurai", x=33, y=14, peaceful=0 })
des.monster({ id = "samurai", x=34, y=14, peaceful=0 })

91
dat/Sam-strt.lua Normal file
View File

@@ -0,0 +1,91 @@
-- NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Lord Sato
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
..............................................................PP............
...............................................................PP...........
..........---------------------------------------------------...PPP.........
..........|......|.........|...|..............|...|.........|....PPPPP......
......... |......|.........S...|..............|...S.........|.....PPPP......
..........|......|.........|---|..............|---|.........|.....PPP.......
..........+......|.........+...-------++-------...+.........|......PP.......
..........+......|.........|......................|.........|......PP.......
......... |......---------------------++--------------------|........PP.....
..........|.................................................|.........PP....
..........|.................................................|...........PP..
..........----------------------------------------...-------|............PP.
..........................................|.................|.............PP
.............. ................. .........|.................|..............P
............. } ............... } ........|.................|...............
.............. ........PP....... .........|.................|...............
.....................PPP..................|.................|...............
......................PP..................-------------------...............
............................................................................
............................................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region({ region={18,03, 26,07}, lit=1, type="throne", prefilled=1 })
-- Portal arrival zone
des.levregion({ region = {62,12,70,17}, type="branch" })
-- Stairs
des.stair("down", 29,04)
-- Doors
des.door("locked",10,06)
des.door("locked",10,07)
des.door("closed",27,04)
des.door("closed",27,06)
des.door("closed",38,06)
des.door("locked",38,08)
des.door("closed",39,06)
des.door("locked",39,08)
des.door("closed",50,04)
des.door("closed",50,06)
-- Lord Sato
des.monster("Lord Sato", 20, 04)
-- The treasure of Lord Sato
des.object("chest", 20, 04)
-- roshi guards for the audience chamber
des.monster("roshi", 18, 04)
des.monster("roshi", 18, 05)
des.monster("roshi", 18, 06)
des.monster("roshi", 18, 07)
des.monster("roshi", 26, 04)
des.monster("roshi", 26, 05)
des.monster("roshi", 26, 06)
des.monster("roshi", 26, 07)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster({ id = "ninja", x=64, y=00, peaceful=0 })
des.monster("wolf", 65, 01)
des.monster({ id = "ninja", x=67, y=02, peaceful=0 })
des.monster({ id = "ninja", x=69, y=05, peaceful=0 })
des.monster({ id = "ninja", x=69, y=06, peaceful=0 })
des.monster("wolf", 69, 07)
des.monster({ id = "ninja", x=70, y=06, peaceful=0 })
des.monster({ id = "ninja", x=70, y=07, peaceful=0 })
des.monster({ id = "ninja", x=72, y=01, peaceful=0 })
des.monster("wolf", 75, 09)
des.monster({ id = "ninja", x=73, y=05, peaceful=0 })
des.monster({ id = "ninja", x=68, y=02, peaceful=0 })
des.monster("stalker")

View File

@@ -1,440 +0,0 @@
# NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991-92 by M. Stephenson, P. Winner
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Lord Sato
# and receive your quest assignment.
#
MAZE: "Sam-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
..............................................................PP............
...............................................................PP...........
..........---------------------------------------------------...PPP.........
..........|......|.........|...|..............|...|.........|....PPPPP......
......... |......|.........S...|..............|...S.........|.....PPPP......
..........|......|.........|---|..............|---|.........|.....PPP.......
..........+......|.........+...-------++-------...+.........|......PP.......
..........+......|.........|......................|.........|......PP.......
......... |......---------------------++--------------------|........PP.....
..........|.................................................|.........PP....
..........|.................................................|...........PP..
..........----------------------------------------...-------|............PP.
..........................................|.................|.............PP
.............. ................. .........|.................|..............P
............. } ............... } ........|.................|...............
.............. ........PP....... .........|.................|...............
.....................PPP..................|.................|...............
......................PP..................-------------------...............
............................................................................
............................................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(18,03,26,07),lit,"throne",unfilled
# Portal arrival zone
BRANCH:(62,12,70,17),(0,0,0,0)
# Stairs
STAIR:(29,04),down
# Doors
DOOR:locked,(10,06)
DOOR:locked,(10,07)
DOOR:closed,(27,04)
DOOR:closed,(27,06)
DOOR:closed,(38,06)
DOOR:locked,(38,08)
DOOR:closed,(39,06)
DOOR:locked,(39,08)
DOOR:closed,(50,04)
DOOR:closed,(50,06)
# Lord Sato
MONSTER:('@',"Lord Sato"),(20,04)
# The treasure of Lord Sato
OBJECT:('(',"chest"),(20,04)
# roshi guards for the audience chamber
MONSTER:('@',"roshi"),(18,04)
MONSTER:('@',"roshi"),(18,05)
MONSTER:('@',"roshi"),(18,06)
MONSTER:('@',"roshi"),(18,07)
MONSTER:('@',"roshi"),(26,04)
MONSTER:('@',"roshi"),(26,05)
MONSTER:('@',"roshi"),(26,06)
MONSTER:('@',"roshi"),(26,07)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: ('@',"ninja"),(64,00),hostile
MONSTER: ('d',"wolf"),(65,01)
MONSTER: ('@',"ninja"),(67,02),hostile
MONSTER: ('@',"ninja"),(69,05),hostile
MONSTER: ('@',"ninja"),(69,06),hostile
MONSTER: ('d',"wolf"),(69,07)
MONSTER: ('@',"ninja"),(70,06),hostile
MONSTER: ('@',"ninja"),(70,07),hostile
MONSTER: ('@',"ninja"),(72,01),hostile
MONSTER: ('d',"wolf"),(75,09)
MONSTER: ('@',"ninja"),(73,05),hostile
MONSTER: ('@',"ninja"),(68,02),hostile
MONSTER:('E',"stalker"),random
#
# The "locate" level for the quest.
#
# Here you have to invade the Shogun's Castle to go
# further towards your assigned quest.
#
MAZE: "Sam-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
MAP
............................................................................
............................................................................
........-----..................................................-----........
........|...|..................................................|...|........
........|...---..}..--+------------------------------+--..}..---...|........
........|-|...|.....|...|....|....|....|....|....|.|...|.....|...|-|........
..........|...-------...|....|....|....|....|....S.|...-------...|..........
..........|-|.........------+----+-+-------+-+--------.........|-|..........
............|..--------.|}........................}|.--------..|............
............|..+........+..........................+........+..|............
............|..+........+..........................+........+..|............
............|..--------.|}........................}|.--------..|............
..........|-|.........--------+-+-------+-+----+------.........|-|..........
..........|...-------...|.S....|....|....|....|....|...-------...|..........
........|-|...|.....|...|.|....|....|....|....|....|...|.....|...|-|........
........|...---..}..--+------------------------------+--..}..---...|........
........|...|..................................................|...|........
........-----..................................................-----........
............................................................................
............................................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
# Doors
DOOR:locked,(22,04)
DOOR:locked,(22,15)
DOOR:locked,(53,04)
DOOR:locked,(53,15)
DOOR:locked,(49,06)
DOOR:locked,(26,13)
DOOR:locked,(28,07)
DOOR:locked,(30,12)
DOOR:locked,(33,07)
DOOR:locked,(32,12)
DOOR:locked,(35,07)
DOOR:locked,(40,12)
DOOR:locked,(43,07)
DOOR:locked,(42,12)
DOOR:locked,(45,07)
DOOR:locked,(47,12)
DOOR:closed,(15,09)
DOOR:closed,(15,10)
DOOR:closed,(24,09)
DOOR:closed,(24,10)
DOOR:closed,(51,09)
DOOR:closed,(51,10)
DOOR:closed,(60,09)
DOOR:closed,(60,10)
# Stairs
STAIR:(10,10),up
STAIR:(25,14),down
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Objects
OBJECT:'*',(25,05)
OBJECT:'*',(26,05)
OBJECT:'*',(27,05)
OBJECT:'*',(28,05)
OBJECT:'*',(25,06)
OBJECT:'*',(26,06)
OBJECT:'*',(27,06)
OBJECT:'*',(28,06)
#
OBJECT:'[',(40,05)
OBJECT:'[',(41,05)
OBJECT:'[',(42,05)
OBJECT:'[',(43,05)
OBJECT:'[',(40,06)
OBJECT:'[',(41,06)
OBJECT:'[',(42,06)
OBJECT:'[',(43,06)
#
OBJECT:')',(27,13)
OBJECT:')',(28,13)
OBJECT:')',(29,13)
OBJECT:')',(30,13)
OBJECT:')',(27,14)
OBJECT:')',(28,14)
OBJECT:')',(29,14)
OBJECT:')',(30,14)
#
OBJECT:'(',(37,13)
OBJECT:'(',(38,13)
OBJECT:'(',(39,13)
OBJECT:'(',(40,13)
OBJECT:'(',(37,14)
OBJECT:'(',(38,14)
OBJECT:'(',(39,14)
OBJECT:'(',(40,14)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"ninja"),(15,05),hostile
MONSTER:('@',"ninja"),(16,05),hostile
MONSTER:('d',"wolf"),(17,05)
MONSTER:('d',"wolf"),(18,05)
MONSTER:('@',"ninja"),(19,05),hostile
MONSTER:('d',"wolf"),(15,14)
MONSTER:('d',"wolf"),(16,14)
MONSTER:('@',"ninja"),(17,14),hostile
MONSTER:('@',"ninja"),(18,14),hostile
MONSTER:('d',"wolf"),(56,05)
MONSTER:('@',"ninja"),(57,05),hostile
MONSTER:('d',"wolf"),(58,05)
MONSTER:('d',"wolf"),(59,05)
MONSTER:('@',"ninja"),(56,14),hostile
MONSTER:('d',"wolf"),(57,14)
MONSTER:('@',"ninja"),(58,14),hostile
MONSTER:'d',(59,14)
MONSTER:('d',"wolf"),(60,14)
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
# "guards" for the central courtyard.
MONSTER:('@',"samurai"),(30,05),hostile
MONSTER:('@',"samurai"),(31,05),hostile
MONSTER:('@',"samurai"),(32,05),hostile
MONSTER:('@',"samurai"),(32,14),hostile
MONSTER:('@',"samurai"),(33,14),hostile
MONSTER:('@',"samurai"),(34,14),hostile
#
# The "goal" level for the quest.
#
# Here you meet Takauji, your nemesis monster. You have to
# defeat him in combat to gain the artifact you have been
# assigned to retrieve.
#
MAZE: "Sam-goal", ' '
FLAGS: noteleport
GEOMETRY:center,center
MAP
.......................
......-------------------......
......----.................----......
....----.....-------------.....----....
....--.....----...........----.....--....
...||....---....---------....---....||...
...|....--....---.......---....--....|...
....|...||...---...--+--...---...||...|....
....|...|....|....|-...-|....|....|...|....
....|...|....|....+.....+....|....|...|....
....|...|....|....|-...-|....|....|...|....
....|...||...---...--+--...---...||...|....
...|....--....---.......---....--....|...
...||....---....---------....---....||...
....--.....----...........----.....--....
....----.....-------------.....----....
......----.................----......
......-------------------......
.......................
ENDMAP
# Dungeon Description
$place = { (02,11),(42,09) }
SHUFFLE: $place
REGION:(00,00,44,19),unlit,"ordinary"
# Doors
DOOR:closed,(19,10)
DOOR:closed,(22,08)
DOOR:closed,(22,12)
DOOR:closed,(25,10)
# Stairs
STAIR:$place[0],up
# Holes in the concentric ring walls
$place = { (22,14),(30,10),(22, 6),(14,10) }
SHUFFLE:$place
TERRAIN:$place[0],'.'
$place = { (22, 4),(35,10),(22,16),( 9,10) }
SHUFFLE:$place
TERRAIN:$place[0],'.'
$place = { (22, 2),(22,18) }
SHUFFLE:$place
TERRAIN:$place[0],'.'
# Non diggable walls
NON_DIGGABLE:(00,00,44,19)
# Objects
OBJECT:(')',"tsurugi"),(22,10),blessed,0,name:"The Tsurugi of Muramasa"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
#
TRAP:"board",(22,09)
TRAP:"board",(24,10)
TRAP:"board",(22,11)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"Ashikaga Takauji"),(22,10)
MONSTER:('@',"samurai"),random,hostile
MONSTER:('@',"samurai"),random,hostile
MONSTER:('@',"samurai"),random,hostile
MONSTER:('@',"samurai"),random,hostile
MONSTER:('@',"samurai"),random,hostile
MONSTER:('@',"ninja"),random,hostile
MONSTER:('@',"ninja"),random,hostile
MONSTER:('@',"ninja"),random,hostile
MONSTER:('@',"ninja"),random,hostile
MONSTER:('@',"ninja"),random,hostile
MONSTER:('d',"wolf"),random
MONSTER:('d',"wolf"),random
MONSTER:('d',"wolf"),random
MONSTER:('d',"wolf"),random
MONSTER:'d',random
MONSTER:'d',random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
MONSTER:('E',"stalker"),random
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
MAZE: "Sam-fila", ' '
INIT_MAP: mines, '.' , 'P', true, true, random, true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: 'd', random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('E', "stalker"), random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
MAZE: "Sam-filb", ' '
GEOMETRY:center,center
MAP
------------- -------------
|...........| |...........|
|...-----...|----------------------------------|...-----...|
|...| |...|..................................|...| |...|
|...-----..........................................-----...|
|...........|--S----------------------------S--|...........|
----...--------.|..........................|.--------...----
|...|........+..........................+........|...|
|...|........+..........................+........|...|
----...--------.|..........................|.--------...----
|...........|--S----------------------------S--|...........|
|...-----..........................................-----...|
|...| |...|..................................|...| |...|
|...-----...|----------------------------------|...-----...|
|...........| |...........|
------------- -------------
ENDMAP
REGION:(00,00,59,15),unlit,"ordinary"
# Doors
DOOR:closed,(16,07)
DOOR:closed,(16,08)
DOOR:closed,(43,07)
DOOR:closed,(43,08)
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: 'd', random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('d', "wolf"), random
MONSTER: ('E', "stalker"), random
MONSTER: ('E', "stalker"), random
MONSTER: ('E', "stalker"), random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random

35
dat/Tou-fila.lua Normal file
View File

@@ -0,0 +1,35 @@
-- NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg=" ", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "soldier", peaceful = 0 })
des.monster({ id = "soldier", peaceful = 0 })
des.monster({ id = "soldier", peaceful = 0 })
des.monster({ id = "soldier", peaceful = 0 })
des.monster({ id = "soldier", peaceful = 0 })
des.monster({ class = "H", peaceful = 0 })
des.monster({ class = "C", peaceful = 0 })

39
dat/Tou-filb.lua Normal file
View File

@@ -0,0 +1,39 @@
-- NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.level_init({ style="mines", fg=".", bg=" ", smoothed=true, joined=true, walled=true })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.trap()
des.trap()
des.trap()
des.trap()
--
des.monster({ id = "soldier", peaceful = 0 })
des.monster({ id = "captain", peaceful = 0 })
des.monster({ id = "captain", peaceful = 0 })
des.monster({ class = "H", peaceful = 0 })
des.monster({ class = "H", peaceful = 0 })
des.monster({ class = "C", peaceful = 0 })
des.monster("s")

160
dat/Tou-goal.lua Normal file
View File

@@ -0,0 +1,160 @@
-- NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
----------------------------------------------------------------------------
|.........|.........|..........|..| |.................|........|........|..|
|.........|.........|..........|..| |....--------.....|........|........|..|
|------S--|--+-----------+------..| |....|......|.....|........|........|..|
|.........|.......................| |....|......+.....--+-------------+--..|
|.........|.......................| |....|......|..........................|
|-S-----S-|......----------.......| |....|......|..........................|
|..|..|...|......|........|.......| |....-----------.........----..........|
|..+..+...|......|........|.......| |....|.........|.........|}}|..........|
|..|..|...|......+........|.......| |....|.........+.........|}}|..........|
|..|..|...|......|........|.......S.S....|.........|.........----..........|
|---..----|......|........|.......| |....|.........|.......................|
|.........+......|+F-+F-+F|.......| |....-----------.......................|
|---..----|......|..|..|..|.......| |......................--------------..|
|..|..|...|......--F-F--F--.......| |......................+............|..|
|..+..+...|.......................| |--.---...-----+-----..|............|..|
|--|..----|--+-----------+------..| |.....|...|.........|..|------------|..|
|..+..+...|.........|..........|..| |.....|...|.........|..+............|..|
|..|..|...|.........|..........|..| |.....|...|.........|..|............|..|
----------------------------------------------------------------------------
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
-- The Inn
des.region(selection.area(01,01,09,02), "lit")
des.region({ region = {01,04,09,05}, lit=1, type = "barracks" })
des.region(selection.area(01,07,02,10), "unlit")
des.region(selection.area(07,07,09,10), "unlit")
des.region(selection.area(01,14,02,15), "unlit")
des.region(selection.area(07,14,09,15), "unlit")
des.region(selection.area(01,17,02,18), "unlit")
des.region(selection.area(07,17,09,18), "unlit")
--
des.region({ region = {11,01,19,02}, lit = 0, type = "barracks" })
des.region(selection.area(21,01,30,02), "unlit")
des.region({ region = {11,17,19,18}, lit = 0, type = "barracks" })
des.region(selection.area(21,17,30,18), "unlit")
-- Police Station
des.region(selection.area(18,07,25,11), "lit")
des.region(selection.area(18,13,19,13), "unlit")
des.region(selection.area(21,13,22,13), "unlit")
des.region(selection.area(24,13,25,13), "unlit")
-- The town itself
des.region(selection.area(42,03,47,06), "unlit")
des.region(selection.area(42,08,50,11), "unlit")
des.region({ region = {37,16,41,18}, lit = 0, type = "morgue" })
des.region(selection.area(47,16,55,18), "unlit")
des.region(selection.area(55,01,62,03), "unlit")
des.region(selection.area(64,01,71,03), "unlit")
des.region({ region = {60,14,71,15}, lit = 1, type = "shop" })
des.region({ region = {60,17,71,18}, lit = 1, type = "shop" })
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Stairs
des.stair("up", 70,08)
-- Doors
des.door("locked",07,03)
des.door("locked",02,06)
des.door("locked",08,06)
des.door("closed",03,08)
des.door("closed",06,08)
des.door("open",10,12)
des.door("closed",03,15)
des.door("closed",06,15)
des.door("closed",03,17)
des.door("closed",06,17)
des.door("closed",13,03)
des.door("random",25,03)
des.door("closed",13,16)
des.door("random",25,16)
des.door("locked",17,09)
des.door("locked",18,12)
des.door("locked",21,12)
des.door("locked",24,12)
des.door("locked",34,10)
des.door("locked",36,10)
des.door("random",48,04)
des.door("random",56,04)
des.door("random",70,04)
des.door("random",51,09)
des.door("random",51,15)
des.door("open",59,14)
des.door("open",59,17)
-- Objects
des.object({ id = "credit card", x=04, y=01, buc="blessed", spe=0, name="The Platinum Yendorian Express Card" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster({ id = "Master of Thieves", x=04, y=01, peaceful = 0 })
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("s")
des.monster("s")
-- ladies of the evening
des.monster("succubus", 02, 08)
des.monster("succubus", 08, 08)
des.monster("incubus", 02, 14)
des.monster("incubus", 08, 14)
des.monster("incubus", 02, 17)
des.monster("incubus", 08, 17)
-- Police station (with drunken prisoners)
des.monster({ id = "Kop Kaptain", x=24, y=09, peaceful = 0 })
des.monster({ id = "Kop Lieutenant", x=20, y=09, peaceful = 0 })
des.monster({ id = "Kop Lieutenant", x=22, y=11, peaceful = 0 })
des.monster({ id = "Kop Lieutenant", x=22, y=07, peaceful = 0 })
des.monster({ id = "Keystone Kop", x=19, y=07, peaceful = 0 })
des.monster({ id = "Keystone Kop", x=19, y=08, peaceful = 0 })
des.monster({ id = "Keystone Kop", x=22, y=09, peaceful = 0 })
des.monster({ id = "Keystone Kop", x=24, y=11, peaceful = 0 })
des.monster({ id = "Keystone Kop", x=19, y=11, peaceful = 0 })
des.monster("prisoner", 19, 13)
des.monster("prisoner", 21, 13)
des.monster("prisoner", 24, 13)
--
des.monster({ id = "watchman", x=33, y=10, peaceful = 0 })
des.wallify()

157
dat/Tou-loca.lua Normal file
View File

@@ -0,0 +1,157 @@
-- NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
des.map([[
----------------------------------------------------------------------------
|....|......|..........|......|......|...|....|.....|......|...............|
|....|......|.|------|.|......|......|.|.|....|..}..|......|.|----------|..|
|....|--+----.|......|.|-S---+|+-----|.|.S....|.....|---+--|.|..........+..|
|....|........|......|.|...|.........|.|------|..............|..........|-+|
|....+...}}...+......|.|...|.|-----|.|..............|--+----------------|..|
|----|........|------|.|---|.|.....|......|-----+-|.|.......|...........|--|
|............................|.....|.|--+-|.......|.|.......|...........|..|
|----|.....|-------------|...|--+--|.|....|.......|.|-----------+-------|..|
|....+.....+.........S...|...........|....|-------|........................|
|....|.....|.........|...|.|---------|....|.........|-------|.|----------|.|
|....|.....|---------|---|.|......|..+....|-------|.|.......|.+......S.\.|.|
|....|.....+.........S...|.|......|..|....|.......|.|.......|.|......|...|.|
|-------|..|.........|---|.|+-------------------+-|.|.......+.|----------|.|
|.......+..|---------|.........|.........|..........|.......|.|..........|.|
|.......|..............|--+--|.|.........|.|----+-----------|.|..........|.|
|---------+-|--+-----|-|.....|.|.........|.|........|.|.....+.|..........+.|
|...........|........|.S.....|.|----+----|.|--------|.|.....|.|----------|.|
|...........|........|.|.....|........................|.....|..............|
----------------------------------------------------------------------------
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.non_diggable(selection.area(00,00,75,19))
--
des.region({ region={01,01, 04,05}, lit=0, type="morgue", prefilled = 0 })
des.region({ region={15,03, 20,05}, lit=1, type="shop", prefilled = 0 })
des.region({ region={62,03, 71,04}, lit=1, type="shop", prefilled = 0 })
des.region({ region={01,17, 11,18}, lit=1, type="barracks", prefilled = 0 })
des.region({ region={12,09, 20,10}, lit=1, type="barracks", prefilled = 0 })
des.region({ region={53,11, 59,14}, lit=1, type="zoo", prefilled = 0 })
des.region({ region={63,14, 72,16}, lit=1, type="barracks", prefilled = 0 })
des.region({ region={32,14, 40,16}, lit=1, type="temple", prefilled = 0 })
--
des.region({ region = {06,01,11,02}, type = "ordinary" })
des.region({ region = {24,01,29,02}, type = "ordinary" })
des.region({ region = {31,01,36,02}, type = "ordinary" })
des.region({ region = {42,01,45,03}, type = "ordinary" })
des.region({ region = {53,01,58,02}, type = "ordinary" })
des.region({ region = {24,04,26,05}, type = "ordinary" })
des.region({ region = {30,06,34,07}, type = "ordinary" })
des.region(selection.area(73,05,74,05), "unlit")
des.region({ region = {01,09,04,12}, type = "ordinary" })
des.region({ region = {01,14,07,15}, type = "ordinary" })
des.region({ region = {12,12,20,13}, type = "ordinary" })
des.region({ region = {13,17,20,18}, type = "ordinary" })
des.region({ region = {22,09,24,10}, type = "ordinary" })
des.region({ region = {22,12,24,12}, type = "ordinary" })
des.region({ region = {24,16,28,18}, type = "ordinary" })
des.region({ region = {28,11,33,12}, type = "ordinary" })
des.region(selection.area(35,11,36,12), "lit")
des.region({ region = {38,08,41,12}, type = "ordinary" })
des.region({ region = {43,07,49,08}, type = "ordinary" })
des.region({ region = {43,12,49,12}, type = "ordinary" })
des.region({ region = {44,16,51,16}, type = "ordinary" })
des.region({ region = {53,06,59,07}, type = "ordinary" })
des.region({ region = {61,06,71,07}, type = "ordinary" })
des.region({ region = {55,16,59,18}, type = "ordinary" })
des.region({ region = {63,11,68,12}, type = "ordinary" })
des.region({ region = {70,11,72,12}, type = "ordinary" })
-- Stairs
des.stair("up", 10,04)
des.stair("down", 73,05)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
des.door("closed",05,05)
des.door("closed",05,09)
des.door("closed",08,14)
des.door("closed",08,03)
des.door("closed",11,09)
des.door("closed",11,12)
des.door("closed",10,16)
des.door("closed",14,05)
des.door("closed",15,16)
des.door("locked",21,09)
des.door("locked",21,12)
des.door("closed",23,17)
des.door("closed",25,03)
des.door("closed",26,15)
des.door("closed",29,03)
des.door("closed",28,13)
des.door("closed",31,03)
des.door("closed",32,08)
des.door("closed",37,11)
des.door("closed",36,17)
des.door("locked",41,03)
des.door("closed",40,07)
des.door("closed",48,06)
des.door("closed",48,13)
des.door("closed",48,15)
des.door("closed",56,03)
des.door("closed",55,05)
des.door("closed",72,03)
des.door("locked",74,04)
des.door("closed",64,08)
des.door("closed",62,11)
des.door("closed",69,11)
des.door("closed",60,13)
des.door("closed",60,16)
des.door("closed",73,16)
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Toilet paper
des.object("blank paper", 71, 12)
des.object("blank paper", 71, 12)
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("s")
des.monster("s")

131
dat/Tou-strt.lua Normal file
View File

@@ -0,0 +1,131 @@
-- NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991,92 by M. Stephenson, P. Winner
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Twoflower
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
.......}}....---------..-------------------------------------------------...
........}}...|.......|..|.-------------------------------------------...|...
.........}}..|.......|..|.|......|......|.............|......|......|...|...
..........}}.|.......|..|.|......+......+.............+......+..\...|...|...
...........}}}..........|.|......|......|.............|......|......|...|...
.............}}.........|.|----S-|--S---|S----------S-|---S--|------|...|...
..............}}}.......|...............................................|...
................}}}.....----S------++--S----------S----------S-----------...
..................}}........... .. ...................................
......-------......}}}}........}}}}..}}}}..}}}}..}}}}.......................
......|.....|.......}}}}}}..}}}} .. }}}}..}}}}..}}}.....................
......|.....+...........}}}}}}........................}}}..}}}}..}}}..}}}...
......|.....|...........................................}}}}..}}}..}}}}.}}}}
......-------...............................................................
............................................................................
...-------......-------.....................................................
...|.....|......|.....|.....................................................
...|.....+......+.....|.....................................................
...|.....|......|.....|.....................................................
...-------......-------.....................................................
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region({ region={14,01, 20,03}, lit=0, type="morgue", prefilled=0 })
des.region(selection.area(07,10,11,12), "unlit")
des.region(selection.area(04,16,08,18), "unlit")
des.region(selection.area(17,16,21,18), "unlit")
des.region(selection.area(27,02,32,04), "unlit")
des.region(selection.area(34,02,39,04), "unlit")
des.region(selection.area(41,02,53,04), "unlit")
des.region(selection.area(55,02,60,04), "unlit")
des.region(selection.area(62,02,67,04), "lit")
-- Stairs
des.stair("down", 66,03)
-- Portal arrival point
des.levregion({ region = {68,14,68,14}, type="branch" })
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Doors
des.door("locked",31,05)
des.door("locked",36,05)
des.door("locked",41,05)
des.door("locked",52,05)
des.door("locked",58,05)
des.door("locked",28,07)
des.door("locked",39,07)
des.door("locked",50,07)
des.door("locked",61,07)
des.door("closed",33,03)
des.door("closed",40,03)
des.door("closed",54,03)
des.door("closed",61,03)
des.door("open",12,11)
des.door("open",09,17)
des.door("open",16,17)
des.door("locked",35,07)
des.door("locked",36,07)
-- Monsters on siege duty.
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("giant spider")
des.monster("s")
des.monster("s")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("forest centaur")
des.monster("C")
-- Twoflower
des.monster("Twoflower", 64, 03)
-- The treasure of Twoflower
des.object("chest", 64, 03)
-- guides for the audience chamber
des.monster("guide", 29, 03)
des.monster("guide", 32, 04)
des.monster("guide", 35, 02)
des.monster("guide", 38, 03)
des.monster("guide", 45, 03)
des.monster("guide", 48, 02)
des.monster("guide", 49, 04)
des.monster("guide", 51, 03)
des.monster("guide", 57, 03)
des.monster("guide", 62, 04)
des.monster("guide", 66, 04)
-- path guards
des.monster("watchman", 35, 08)
des.monster("watchman", 36, 08)
-- river monsters
des.monster("giant eel", 62, 12)
des.monster("piranha", 47, 10)
des.monster("piranha", 29, 11)
des.monster("kraken", 34, 09)
des.monster("kraken", 37, 09)
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()

View File

@@ -1,519 +0,0 @@
# NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991,92 by M. Stephenson, P. Winner
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Twoflower
# and receive your quest assignment.
#
MAZE: "Tou-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
.......}}....---------..-------------------------------------------------...
........}}...|.......|..|.-------------------------------------------...|...
.........}}..|.......|..|.|......|......|.............|......|......|...|...
..........}}.|.......|..|.|......+......+.............+......+..\...|...|...
...........}}}..........|.|......|......|.............|......|......|...|...
.............}}.........|.|----S-|--S---|S----------S-|---S--|------|...|...
..............}}}.......|...............................................|...
................}}}.....----S------++--S----------S----------S-----------...
..................}}........... .. ...................................
......-------......}}}}........}}}}..}}}}..}}}}..}}}}.......................
......|.....|.......}}}}}}..}}}} .. }}}}..}}}}..}}}.....................
......|.....+...........}}}}}}........................}}}..}}}}..}}}..}}}...
......|.....|...........................................}}}}..}}}..}}}}.}}}}
......-------...............................................................
............................................................................
...-------......-------.....................................................
...|.....|......|.....|.....................................................
...|.....+......+.....|.....................................................
...|.....|......|.....|.....................................................
...-------......-------.....................................................
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(14,01,20,03),unlit,"morgue"
REGION:(07,10,11,12),unlit,"ordinary"
REGION:(04,16,08,18),unlit,"ordinary"
REGION:(17,16,21,18),unlit,"ordinary"
REGION:(27,02,32,04),unlit,"ordinary"
REGION:(34,02,39,04),unlit,"ordinary"
REGION:(41,02,53,04),unlit,"ordinary"
REGION:(55,02,60,04),unlit,"ordinary"
REGION:(62,02,67,04),lit,"ordinary"
# Stairs
STAIR:(66,03),down
# Portal arrival point
BRANCH:(68,14,68,14),(0,0,0,0)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Doors
DOOR:locked,(31,05)
DOOR:locked,(36,05)
DOOR:locked,(41,05)
DOOR:locked,(52,05)
DOOR:locked,(58,05)
DOOR:locked,(28,07)
DOOR:locked,(39,07)
DOOR:locked,(50,07)
DOOR:locked,(61,07)
DOOR:closed,(33,03)
DOOR:closed,(40,03)
DOOR:closed,(54,03)
DOOR:closed,(61,03)
DOOR:open,(12,11)
DOOR:open,(09,17)
DOOR:open,(16,17)
DOOR:locked,(35,07)
DOOR:locked,(36,07)
# Monsters on siege duty.
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: ('s',"giant spider"),random
MONSTER: 's',random
MONSTER: 's',random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: ('C',"forest centaur"),random
MONSTER: 'C',random
# Twoflower
MONSTER:('@',"Twoflower"),(64,03)
# The treasure of Twoflower
OBJECT:('(',"chest"),(64,03)
# guides for the audience chamber
MONSTER:('@',"guide"),(29,03)
MONSTER:('@',"guide"),(32,04)
MONSTER:('@',"guide"),(35,02)
MONSTER:('@',"guide"),(38,03)
MONSTER:('@',"guide"),(45,03)
MONSTER:('@',"guide"),(48,02)
MONSTER:('@',"guide"),(49,04)
MONSTER:('@',"guide"),(51,03)
MONSTER:('@',"guide"),(57,03)
MONSTER:('@',"guide"),(62,04)
MONSTER:('@',"guide"),(66,04)
# path guards
MONSTER:('@',"watchman"),(35,08)
MONSTER:('@',"watchman"),(36,08)
# river monsters
MONSTER:(';',"giant eel"),(62,12)
MONSTER:(';',"piranha"),(47,10)
MONSTER:(';',"piranha"),(29,11)
MONSTER:(';',"kraken"),(34,09)
MONSTER:(';',"kraken"),(37,09)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
#
# The "locate" level for the quest.
#
# Here you have to find the Thieves' Guild Hall to go
# further towards your assigned quest.
#
MAZE: "Tou-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
MAP
----------------------------------------------------------------------------
|....|......|..........|......|......|...|....|.....|......|...............|
|....|......|.|------|.|......|......|.|.|....|..}..|......|.|----------|..|
|....|--+----.|......|.|-S---+|+-----|.|.S....|.....|---+--|.|..........+..|
|....|........|......|.|...|.........|.|------|..............|..........|-+|
|....+...}}...+......|.|...|.|-----|.|..............|--+----------------|..|
|----|........|------|.|---|.|.....|......|-----+-|.|.......|...........|--|
|............................|.....|.|--+-|.......|.|.......|...........|..|
|----|.....|-------------|...|--+--|.|....|.......|.|-----------+-------|..|
|....+.....+.........S...|...........|....|-------|........................|
|....|.....|.........|...|.|---------|....|.........|-------|.|----------|.|
|....|.....|---------|---|.|......|..+....|-------|.|.......|.+......S.\.|.|
|....|.....+.........S...|.|......|..|....|.......|.|.......|.|......|...|.|
|-------|..|.........|---|.|+-------------------+-|.|.......+.|----------|.|
|.......+..|---------|.........|.........|..........|.......|.|..........|.|
|.......|..............|--+--|.|.........|.|----+-----------|.|..........|.|
|---------+-|--+-----|-|.....|.|.........|.|........|.|.....+.|..........+.|
|...........|........|.S.....|.|----+----|.|--------|.|.....|.|----------|.|
|...........|........|.|.....|........................|.....|..............|
----------------------------------------------------------------------------
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
NON_DIGGABLE:(00,00,75,19)
#
REGION:(01,01,04,05),unlit,"morgue"
REGION:(15,03,20,05),lit,"shop"
REGION:(62,03,71,04),lit,"shop"
REGION:(01,17,11,18),lit,"barracks"
REGION:(12,09,20,10),lit,"barracks"
REGION:(53,11,59,14),lit,"zoo"
REGION:(63,14,72,16),lit,"barracks"
REGION:(32,14,40,16),lit,"temple"
#
REGION:(06,01,11,02),random,"ordinary"
REGION:(24,01,29,02),random,"ordinary"
REGION:(31,01,36,02),random,"ordinary"
REGION:(42,01,45,03),random,"ordinary"
REGION:(53,01,58,02),random,"ordinary"
REGION:(24,04,26,05),random,"ordinary"
REGION:(30,06,34,07),random,"ordinary"
REGION:(73,05,74,05),unlit,"ordinary"
REGION:(01,09,04,12),random,"ordinary"
REGION:(01,14,07,15),random,"ordinary"
REGION:(12,12,20,13),random,"ordinary"
REGION:(13,17,20,18),random,"ordinary"
REGION:(22,09,24,10),random,"ordinary"
REGION:(22,12,24,12),random,"ordinary"
REGION:(24,16,28,18),random,"ordinary"
REGION:(28,11,33,12),random,"ordinary"
REGION:(35,11,36,12),lit,"ordinary"
REGION:(38,08,41,12),random,"ordinary"
REGION:(43,07,49,08),random,"ordinary"
REGION:(43,12,49,12),random,"ordinary"
REGION:(44,16,51,16),random,"ordinary"
REGION:(53,06,59,07),random,"ordinary"
REGION:(61,06,71,07),random,"ordinary"
REGION:(55,16,59,18),random,"ordinary"
REGION:(63,11,68,12),random,"ordinary"
REGION:(70,11,72,12),random,"ordinary"
# Stairs
STAIR:(10,04),up
STAIR:(73,05),down
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
DOOR:closed,(05,05)
DOOR:closed,(05,09)
DOOR:closed,(08,14)
DOOR:closed,(08,03)
DOOR:closed,(11,09)
DOOR:closed,(11,12)
DOOR:closed,(10,16)
DOOR:closed,(14,05)
DOOR:closed,(15,16)
DOOR:locked,(21,09)
DOOR:locked,(21,12)
DOOR:closed,(23,17)
DOOR:closed,(25,03)
DOOR:closed,(26,15)
DOOR:closed,(29,03)
DOOR:closed,(28,13)
DOOR:closed,(31,03)
DOOR:closed,(32,08)
DOOR:closed,(37,11)
DOOR:closed,(36,17)
DOOR:locked,(41,03)
DOOR:closed,(40,07)
DOOR:closed,(48,06)
DOOR:closed,(48,13)
DOOR:closed,(48,15)
DOOR:closed,(56,03)
DOOR:closed,(55,05)
DOOR:closed,(72,03)
DOOR:locked,(74,04)
DOOR:closed,(64,08)
DOOR:closed,(62,11)
DOOR:closed,(69,11)
DOOR:closed,(60,13)
DOOR:closed,(60,16)
DOOR:closed,(73,16)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Toilet paper
OBJECT:('?',"blank paper"),(71,12)
OBJECT:('?',"blank paper"),(71,12)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:'s',random
MONSTER:'s',random
#
# The "goal" level for the quest.
#
# Here you meet the Master of Thieves your nemesis monster. You have to
# defeat the Master of Thieves in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Tou-goal", ' '
GEOMETRY:center,center
MAP
----------------------------------------------------------------------------
|.........|.........|..........|..| |.................|........|........|..|
|.........|.........|..........|..| |....--------.....|........|........|..|
|------S--|--+-----------+------..| |....|......|.....|........|........|..|
|.........|.......................| |....|......+.....--+-------------+--..|
|.........|.......................| |....|......|..........................|
|-S-----S-|......----------.......| |....|......|..........................|
|..|..|...|......|........|.......| |....-----------.........----..........|
|..+..+...|......|........|.......| |....|.........|.........|}}|..........|
|..|..|...|......+........|.......| |....|.........+.........|}}|..........|
|..|..|...|......|........|.......S.S....|.........|.........----..........|
|---..----|......|........|.......| |....|.........|.......................|
|.........+......|+F-+F-+F|.......| |....-----------.......................|
|---..----|......|..|..|..|.......| |......................--------------..|
|..|..|...|......--F-F--F--.......| |......................+............|..|
|..+..+...|.......................| |--.---...-----+-----..|............|..|
|--|..----|--+-----------+------..| |.....|...|.........|..|------------|..|
|..+..+...|.........|..........|..| |.....|...|.........|..+............|..|
|..|..|...|.........|..........|..| |.....|...|.........|..|............|..|
----------------------------------------------------------------------------
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
# The Inn
REGION:(01,01,09,02),lit,"ordinary"
REGION:(01,04,09,05),lit,"barracks"
REGION:(01,07,02,10),unlit,"ordinary"
REGION:(07,07,09,10),unlit,"ordinary"
REGION:(01,14,02,15),unlit,"ordinary"
REGION:(07,14,09,15),unlit,"ordinary"
REGION:(01,17,02,18),unlit,"ordinary"
REGION:(07,17,09,18),unlit,"ordinary"
#
REGION:(11,01,19,02),unlit,"barracks"
REGION:(21,01,30,02),unlit,"ordinary"
REGION:(11,17,19,18),unlit,"barracks"
REGION:(21,17,30,18),unlit,"ordinary"
# Police Station
REGION:(18,07,25,11),lit,"ordinary"
REGION:(18,13,19,13),unlit,"ordinary"
REGION:(21,13,22,13),unlit,"ordinary"
REGION:(24,13,25,13),unlit,"ordinary"
# The town itself
REGION:(42,03,47,06),unlit,"ordinary"
REGION:(42,08,50,11),unlit,"ordinary"
REGION:(37,16,41,18),unlit,"morgue"
REGION:(47,16,55,18),unlit,"ordinary"
REGION:(55,01,62,03),unlit,"ordinary"
REGION:(64,01,71,03),unlit,"ordinary"
REGION:(60,14,71,15),lit,"shop"
REGION:(60,17,71,18),lit,"shop"
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Stairs
STAIR:(70,08),up
# Doors
DOOR:locked,(07,03)
DOOR:locked,(02,06)
DOOR:locked,(08,06)
DOOR:closed,(03,08)
DOOR:closed,(06,08)
DOOR:open,(10,12)
DOOR:closed,(03,15)
DOOR:closed,(06,15)
DOOR:closed,(03,17)
DOOR:closed,(06,17)
DOOR:closed,(13,03)
DOOR:random,(25,03)
DOOR:closed,(13,16)
DOOR:random,(25,16)
DOOR:locked,(17,09)
DOOR:locked,(18,12)
DOOR:locked,(21,12)
DOOR:locked,(24,12)
DOOR:locked,(34,10)
DOOR:locked,(36,10)
DOOR:random,(48,04)
DOOR:random,(56,04)
DOOR:random,(70,04)
DOOR:random,(51,09)
DOOR:random,(51,15)
DOOR:open,(59,14)
DOOR:open,(59,17)
# Objects
OBJECT:('(',"credit card"),(04,01),blessed,0,name:"The Platinum Yendorian Express Card"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"Master of Thieves"),(04,01),hostile
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:('s',"giant spider"),random
MONSTER:'s',random
MONSTER:'s',random
# ladies of the evening
MONSTER:('&',"succubus"),(02,08)
MONSTER:('&',"succubus"),(08,08)
MONSTER:('&',"incubus"),(02,14)
MONSTER:('&',"incubus"),(08,14)
MONSTER:('&',"incubus"),(02,17)
MONSTER:('&',"incubus"),(08,17)
# Police station (with drunken prisoners)
MONSTER:('K',"Kop Kaptain"),(24,09),hostile
MONSTER:('K',"Kop Lieutenant"),(20,09),hostile
MONSTER:('K',"Kop Lieutenant"),(22,11),hostile
MONSTER:('K',"Kop Lieutenant"),(22,07),hostile
MONSTER:('K',"Keystone Kop"),(19,07),hostile
MONSTER:('K',"Keystone Kop"),(19,08),hostile
MONSTER:('K',"Keystone Kop"),(22,09),hostile
MONSTER:('K',"Keystone Kop"),(24,11),hostile
MONSTER:('K',"Keystone Kop"),(19,11),hostile
MONSTER:('@',"prisoner"),(19,13)
MONSTER:('@',"prisoner"),(21,13)
MONSTER:('@',"prisoner"),(24,13)
#
MONSTER:('@',"watchman"),(33,10),hostile
WALLIFY
#
# The "fill" level for the quest.
#
# This level is used to fill out any levels not occupied by specific
# levels as defined above.
#
MAZE: "Tou-fila" , ' '
INIT_MAP: mines, '.' , ' ', true, true, random, true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('@', "soldier"), random, hostile
MONSTER: ('@', "soldier"), random, hostile
MONSTER: ('@', "soldier"), random, hostile
MONSTER: ('@', "soldier"), random, hostile
MONSTER: ('@', "soldier"), random, hostile
MONSTER: 'H', random, hostile
MONSTER: 'C', random, hostile
MAZE: "Tou-filb" , ' '
INIT_MAP: mines, '.' , ' ', true, true, random, true
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
#
MONSTER: ('@', "soldier"), random, hostile
MONSTER: ('@', "captain"), random, hostile
MONSTER: ('@', "captain"), random, hostile
MONSTER: 'H', random, hostile
MONSTER: 'H', random, hostile
MONSTER: 'C', random, hostile
MONSTER: 's', random

40
dat/Val-fila.lua Normal file
View File

@@ -0,0 +1,40 @@
-- NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "I" });
des.level_flags("mazelevel", "icedpools")
des.level_init({ style="mines", fg=".", bg="I", smoothed=true, joined=true, lit=1, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("a")
des.monster({ id = "fire giant", peaceful = 0 })
--
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()

42
dat/Val-filb.lua Normal file
View File

@@ -0,0 +1,42 @@
-- NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "L" });
des.level_flags("mazelevel", "icedpools")
des.level_init({ style="mines", fg=".", bg="L", smoothed=true, joined=true, lit=1, walled=false })
--
des.stair("up")
des.stair("down")
--
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
--
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("a")
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
--
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap()
des.trap()

102
dat/Val-goal.lua Normal file
View File

@@ -0,0 +1,102 @@
-- NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = "L" });
des.level_flags("mazelevel", "icedpools")
des.level_init({ style="mines", fg=".", bg="L", smoothed=true, joined=true, lit=1, walled=false })
des.map([[
xxxxxx.....................xxxxxxxx
xxxxx.......LLLLL.LLLLL......xxxxxx
xxxx......LLLLLLLLLLLLLLL......xxxx
xxxx.....LLL|---------|LLL.....xxxx
xxxx....LL|--.........--|LL.....xxx
x......LL|-...LLLLLLL...-|LL.....xx
.......LL|...LL.....LL...|LL......x
......LL|-..LL.......LL..-|LL......
......LL|.................|LL......
......LL|-..LL.......LL..-|LL......
.......LL|...LL.....LL...|LL.......
xx.....LL|-...LLLLLLL...-|LL......x
xxx.....LL|--.........--|LL.....xxx
xxxx.....LLL|---------|LLL...xxxxxx
xxxxx.....LLLLLLLLLLLLLLL...xxxxxxx
xxxxxx......LLLLL.LLLLL.....xxxxxxx
xxxxxxxxx..................xxxxxxxx
]]);
-- Dungeon Description
des.region(selection.area(00,00,34,16), "lit")
-- Stairs
-- Note: The up stairs are *intentionally* off of the map.
des.stair("up", 45,10)
-- Non diggable walls
des.non_diggable(selection.area(00,00,34,16))
-- Drawbridges; northern one opens from the south (portcullis) to further
-- north (lowered span), southern one from the north to further south
des.drawbridge({ x=17, y=02, dir="south", state="random" })
if math.random(0, 99) < 75 then
des.drawbridge({ x=17, y=14, dir="north", state="open" })
else
des.drawbridge({ x=17, y=14, dir="north", state="random" })
end
-- Objects
des.object({ id = "crystal ball", x=17, y=08, buc="blessed", spe=5, name="The Orb of Fate" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Traps
des.trap("board",13,08)
des.trap("board",21,08)
-- Random traps
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("board")
des.trap()
des.trap()
-- Random monsters.
des.monster("Lord Surtur", 17, 08)
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("a")
des.monster("a")
des.monster({ id = "fire giant", x=10, y=06, peaceful = 0 })
des.monster({ id = "fire giant", x=10, y=07, peaceful = 0 })
des.monster({ id = "fire giant", x=10, y=08, peaceful = 0 })
des.monster({ id = "fire giant", x=10, y=09, peaceful = 0 })
des.monster({ id = "fire giant", x=10, y=10, peaceful = 0 })
des.monster({ id = "fire giant", x=24, y=06, peaceful = 0 })
des.monster({ id = "fire giant", x=24, y=07, peaceful = 0 })
des.monster({ id = "fire giant", x=24, y=08, peaceful = 0 })
des.monster({ id = "fire giant", x=24, y=09, peaceful = 0 })
des.monster({ id = "fire giant", x=24, y=10, peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ class = "H", peaceful = 0 })
--
-- The "fill" levels for the quest.
--
-- These levels are used to fill out any levels not occupied by specific
-- levels as defined above. "filla" is the upper filler, between the
-- start and locate levels, and "fillb" the lower between the locate
-- and goal levels.
--

85
dat/Val-loca.lua Normal file
View File

@@ -0,0 +1,85 @@
-- NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor", "icedpools")
des.level_init({ style="mines", fg=".", bg="I", smoothed=true, joined=false, lit=1, walled=false })
des.map([[
PPPPxxxx xxxxPPPPPx
PLPxxx xPPLLLPP
PPP ....................... PPPLLP
xx ............................ PPPP
x ............................... xxxx
................................. xx
.................................... x
...................................
x .................................. x
xx .............................. PP
xPPP .......................... PLP
xPLLP xxPLLP
xPPPPxx xxxxPPPP
]]);
-- Dungeon Description
des.region(selection.area(00,00,39,12), "lit")
-- Stairs
des.stair("up", 48,14)
des.stair("down", 20,06)
-- Non diggable walls
des.non_diggable(selection.area(00,00,39,12))
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap()
des.trap()
-- Random monsters.
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("fire ant")
des.monster("a")
des.monster({ class = "H", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ id = "fire giant", peaceful = 0 })
des.monster({ class = "H", peaceful = 0 })

98
dat/Val-strt.lua Normal file
View File

@@ -0,0 +1,98 @@
-- NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1991-2 by M. Stephenson
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, the Norn,
-- and receive your quest assignment.
--
des.level_flags("mazelevel", "noteleport", "hardfloor", "icedpools")
des.level_init({ style = "solidfill", fg = "I" })
local pools = selection.new()
-- random locations
for i = 1,13 do
pools:set();
end
-- some bigger ones
pools = pools | selection.grow(selection.set(selection.new()), "west")
pools = pools | selection.grow(selection.set(selection.new()), "north")
pools = pools | selection.grow(selection.set(selection.new()), "random")
-- Lava pools surrounded by water
des.terrain(pools:clone():grow("all"), "P")
des.terrain(pools, "L")
des.map([[
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..{..xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.....xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxx
xxxxxxxx.....xxxxxxxxxxxxx|----------------|xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx
xxxxxxx..xxx...xxxxxxxxxxx|................|xxxxxxxxxx..xxxxxxxxxxxxxxxxxxxx
xxxxxx..xxxxxx......xxxxx.|................|.xxxxxxxxx.xxxxxxxxxxxxxxxxxxxxx
xxxxx..xxxxxxxxxxxx.......+................+...xxxxxxx.xxxxxxxxxxxxxxxxxxxxx
xxxx..xxxxxxxxx.....xxxxx.|................|.x...xxxxx.xxxxxxxxxxxxxxxxxxxxx
xxx..xxxxxxxxx..xxxxxxxxxx|................|xxxx.......xxxxxxxxxxxxxxxxxxxxx
xxxx..xxxxxxx..xxxxxxxxxxx|----------------|xxxxxxxxxx...xxxxxxxxxxxxxxxxxxx
xxxxxx..xxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxx
xxxxxxx......xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxx
xxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...x......xxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.........xxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.......xxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
]]);
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region(selection.area(27,08,42,12), "lit")
-- Portal arrival point
des.levregion({ region = {66,17,66,17}, type="branch" })
-- Stairs
des.stair("down", 18,01)
des.feature("fountain", 53,02)
-- Doors
des.door("locked",26,10)
des.door("locked",43,10)
-- Norn
des.monster("Norn", 35, 10)
-- The treasure of the Norn
des.object("chest", 36, 10)
-- valkyrie guards for the audience chamber
des.monster("warrior", 27, 08)
des.monster("warrior", 27, 09)
des.monster("warrior", 27, 11)
des.monster("warrior", 27, 12)
des.monster("warrior", 42, 08)
des.monster("warrior", 42, 09)
des.monster("warrior", 42, 11)
des.monster("warrior", 42, 12)
-- Non diggable walls
des.non_diggable(selection.area(26,07,43,13))
-- Random traps
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
-- Monsters on siege duty.
des.monster("fire ant", 04, 12)
des.monster("fire ant", 08, 08)
des.monster("fire ant", 14, 04)
des.monster("fire ant", 17, 11)
des.monster("fire ant", 24, 10)
des.monster("fire ant", 45, 10)
des.monster("fire ant", 54, 02)
des.monster("fire ant", 55, 07)
des.monster("fire ant", 58, 14)
des.monster("fire ant", 63, 17)
des.monster({ id = "fire giant", x=18, y=01, peaceful = 0 })
des.monster({ id = "fire giant", x=10, y=16, peaceful = 0 })

View File

@@ -1,353 +0,0 @@
# NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991-2 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, the Norn,
# and receive your quest assignment.
#
MAZE: "Val-strt",' '
FLAGS: noteleport,hardfloor,icedpools
INIT_MAP:solidfill,'I'
$pools = selection: random & random & random & random & random &
random & random & random & random & random & random &
random & random &
grow(west, random) &
grow(north, random) &
grow(random & random)
# This works because the random coordinates in $pools are evaluated once,
# when the variable is initialized.
TERRAIN:grow($pools), 'P'
TERRAIN:$pools, 'L'
GEOMETRY:center,center
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..{..xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.....xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxx
xxxxxxxx.....xxxxxxxxxxxxx|----------------|xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx
xxxxxxx..xxx...xxxxxxxxxxx|................|xxxxxxxxxx..xxxxxxxxxxxxxxxxxxxx
xxxxxx..xxxxxx......xxxxx.|................|.xxxxxxxxx.xxxxxxxxxxxxxxxxxxxxx
xxxxx..xxxxxxxxxxxx.......+................+...xxxxxxx.xxxxxxxxxxxxxxxxxxxxx
xxxx..xxxxxxxxx.....xxxxx.|................|.x...xxxxx.xxxxxxxxxxxxxxxxxxxxx
xxx..xxxxxxxxx..xxxxxxxxxx|................|xxxx.......xxxxxxxxxxxxxxxxxxxxx
xxxx..xxxxxxx..xxxxxxxxxxx|----------------|xxxxxxxxxx...xxxxxxxxxxxxxxxxxxx
xxxxxx..xxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxx
xxxxxxx......xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxx
xxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...x......xxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.........xxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.......xxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(27,08,42,12),lit,"ordinary"
# Portal arrival point
BRANCH:(66,17,66,17),(0,0,0,0)
# Stairs
STAIR:(18,01),down
FOUNTAIN:(53,02)
# Doors
DOOR:locked,(26,10)
DOOR:locked,(43,10)
# Norn
MONSTER:('@',"Norn"),(35,10)
# The treasure of the Norn
OBJECT:('(',"chest"),(36,10)
# valkyrie guards for the audience chamber
MONSTER:('@',"warrior"),(27,08)
MONSTER:('@',"warrior"),(27,09)
MONSTER:('@',"warrior"),(27,11)
MONSTER:('@',"warrior"),(27,12)
MONSTER:('@',"warrior"),(42,08)
MONSTER:('@',"warrior"),(42,09)
MONSTER:('@',"warrior"),(42,11)
MONSTER:('@',"warrior"),(42,12)
# Non diggable walls
NON_DIGGABLE:(26,07,43,13)
# Random traps
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
# Monsters on siege duty.
MONSTER: ('a',"fire ant"),(04,12)
MONSTER: ('a',"fire ant"),(08,08)
MONSTER: ('a',"fire ant"),(14,04)
MONSTER: ('a',"fire ant"),(17,11)
MONSTER: ('a',"fire ant"),(24,10)
MONSTER: ('a',"fire ant"),(45,10)
MONSTER: ('a',"fire ant"),(54,02)
MONSTER: ('a',"fire ant"),(55,07)
MONSTER: ('a',"fire ant"),(58,14)
MONSTER: ('a',"fire ant"),(63,17)
MONSTER: ('H',"fire giant"),(18,01),hostile
MONSTER: ('H',"fire giant"),(10,16),hostile
#
# The "locate" level for the quest.
#
# Here you have to find the cave of Surtur to go
# further towards your assigned quest.
#
MAZE: "Val-loca",' '
FLAGS: hardfloor,icedpools
INIT_MAP: mines, '.', 'I', true, true, lit, false
GEOMETRY:center,center
MAP
PPPPxxxx xxxxPPPPPx
PLPxxx xPPLLLPP
PPP ....................... PPPLLP
xx ............................ PPPP
x ............................... xxxx
................................. xx
.................................... x
...................................
x .................................. x
xx .............................. PP
xPPP .......................... PLP
xPLLP xxPLLP
xPPPPxx xxxxPPPP
ENDMAP
# Dungeon Description
REGION:(00,00,39,12),lit,"ordinary"
# Stairs
STAIR:(48,14),up
STAIR:(20,06),down
# Non diggable walls
NON_DIGGABLE:(00,00,39,12)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:'a',random
MONSTER:'H',random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:'H',random,hostile
#
# The "goal" level for the quest.
#
# Here you meet Lord Surtur your nemesis monster. You have to
# defeat Lord Surtur in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Val-goal", 'L'
FLAGS: icedpools
INIT_MAP: mines, '.', 'L', true, true, lit, false
GEOMETRY:center,center
MAP
xxxxxx.....................xxxxxxxx
xxxxx.......LLLLL.LLLLL......xxxxxx
xxxx......LLLLLLLLLLLLLLL......xxxx
xxxx.....LLL|---------|LLL.....xxxx
xxxx....LL|--.........--|LL.....xxx
x......LL|-...LLLLLLL...-|LL.....xx
.......LL|...LL.....LL...|LL......x
......LL|-..LL.......LL..-|LL......
......LL|.................|LL......
......LL|-..LL.......LL..-|LL......
.......LL|...LL.....LL...|LL.......
xx.....LL|-...LLLLLLL...-|LL......x
xxx.....LL|--.........--|LL.....xxx
xxxx.....LLL|---------|LLL...xxxxxx
xxxxx.....LLLLLLLLLLLLLLL...xxxxxxx
xxxxxx......LLLLL.LLLLL.....xxxxxxx
xxxxxxxxx..................xxxxxxxx
ENDMAP
# Dungeon Description
REGION:(00,00,34,16),lit,"ordinary"
# Stairs
# Note: The up stairs are *intentionally* off of the map.
STAIR:(45,10),up
# Non diggable walls
NON_DIGGABLE:(00,00,34,16)
# Drawbridges; northern one opens from the south (portcullis) to further
# north (lowered span), southern one from the north to further south
DRAWBRIDGE:(17,02),south,random
IF [75%] {
DRAWBRIDGE:(17,14),north,open
} ELSE {
DRAWBRIDGE:(17,14),north,random
}
# Objects
OBJECT:('(',"crystal ball"),(17,08),blessed,5,name:"The Orb of Fate"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Traps
TRAP:"board",(13,08)
TRAP:"board",(21,08)
# Random traps
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"board",random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('H',"Lord Surtur"),(17,08)
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:('a',"fire ant"),random
MONSTER:'a',random
MONSTER:'a',random
MONSTER:('H',"fire giant"),(10,06),hostile
MONSTER:('H',"fire giant"),(10,07),hostile
MONSTER:('H',"fire giant"),(10,08),hostile
MONSTER:('H',"fire giant"),(10,09),hostile
MONSTER:('H',"fire giant"),(10,10),hostile
MONSTER:('H',"fire giant"),(24,06),hostile
MONSTER:('H',"fire giant"),(24,07),hostile
MONSTER:('H',"fire giant"),(24,08),hostile
MONSTER:('H',"fire giant"),(24,09),hostile
MONSTER:('H',"fire giant"),(24,10),hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:('H',"fire giant"),random,hostile
MONSTER:'H',random,hostile
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
MAZE: "Val-fila" , 'I'
FLAGS: icedpools
INIT_MAP: mines, '.', 'I', true, true, lit, false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: ('a', "fire ant"), random
MONSTER: ('a', "fire ant"), random
MONSTER: ('a', "fire ant"), random
MONSTER: ('a', "fire ant"), random
MONSTER: ('a', "fire ant"), random
MONSTER: 'a', random
MONSTER: ('H', "fire giant"), random, hostile
#
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
TRAP: random, random
MAZE: "Val-filb" , 'L'
FLAGS: icedpools
INIT_MAP: mines, '.', 'L', true, true, lit, false
NOMAP
#
STAIR: random, up
STAIR: random, down
#
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
OBJECT: random, random
#
MONSTER: ('a', "fire ant"), random
MONSTER: ('a', "fire ant"), random
MONSTER: ('a', "fire ant"), random
MONSTER: 'a', random
MONSTER: ('H', "fire giant"), random, hostile
MONSTER: ('H', "fire giant"), random, hostile
MONSTER: ('H', "fire giant"), random, hostile
#
TRAP: "fire", random
TRAP: "fire", random
TRAP: "fire", random
TRAP: "fire", random
TRAP: "fire", random
TRAP: random, random
TRAP: random, random

59
dat/Wiz-fila.lua Normal file
View File

@@ -0,0 +1,59 @@
-- NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by David Cohrs
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster({ class = "i", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster({ class = "i", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster("vampire bat")
des.monster("vampire bat")
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.monster({ class = "i", peaceful=0 })
des.monster("vampire bat")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster({ class = "i", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.monster("vampire bat")
end
})
des.random_corridors()

58
dat/Wiz-filb.lua Normal file
View File

@@ -0,0 +1,58 @@
-- NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by David Cohrs
-- NetHack may be freely redistributed. See license for details.
--
--
des.room({ type = "ordinary",
contents = function()
des.stair("up")
des.object()
des.monster({ class = "X", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.monster({ class = "i", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.object()
des.monster({ class = "X", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.stair("down")
des.object()
des.trap()
des.monster({ class = "i", peaceful=0 })
des.monster("vampire bat")
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.object()
des.trap()
des.monster({ class = "i", peaceful=0 })
end
})
des.room({ type = "ordinary",
contents = function()
des.object()
des.trap()
des.monster("vampire bat")
end
})
des.random_corridors()

132
dat/Wiz-goal.lua Normal file
View File

@@ -0,0 +1,132 @@
-- NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by David Cohrs
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
------------- -------------
|...........| |...........|
-------|...........-------------------...........|
|......S...........|..|..|..|..|..|..|...........|
|......|...........|..|..|..|..|..|..|...........|
|......|...........-F+-F+-F+-F+-F+-F+-...........|
--S----|...........S.................+...........|
|......|...........-F+-F+-F+-F+-F+-F+-...........|
|......|...........|..|..|..|..|..|..|...........|
|......|...........|..|..|..|..|..|..|...........|
-------|...........-------------------...........|
|...........| |...........|
------------- -------------
]]);
-- Dungeon Description
des.region({ region={13,10,18,12}, lit=0, type="temple" })
des.region(selection.area(13,06,18,08), "lit")
des.region(selection.area(20,04,30,14), "unlit")
des.region(selection.area(32,06,33,07), "unlit")
des.region(selection.area(35,06,36,07), "unlit")
des.region(selection.area(38,06,39,07), "unlit")
des.region(selection.area(41,06,42,07), "unlit")
des.region(selection.area(44,06,45,07), "unlit")
des.region(selection.area(47,06,48,07), "unlit")
des.region(selection.area(32,09,48,09), "unlit")
des.region(selection.area(32,11,33,12), "unlit")
des.region(selection.area(35,11,36,12), "unlit")
des.region(selection.area(38,11,39,12), "unlit")
des.region(selection.area(41,11,42,12), "unlit")
des.region(selection.area(44,11,45,12), "unlit")
des.region(selection.area(47,11,48,12), "unlit")
des.region(selection.area(50,04,60,14), "lit")
-- Doors
des.door("locked",19,06)
des.door("locked",14,09)
des.door("locked",31,09)
des.door("locked",33,08)
des.door("locked",36,08)
des.door("locked",39,08)
des.door("locked",42,08)
des.door("locked",45,08)
des.door("locked",48,08)
des.door("locked",33,10)
des.door("locked",36,10)
des.door("locked",39,10)
des.door("locked",42,10)
des.door("locked",45,10)
des.door("locked",48,10)
des.door("locked",49,09)
-- Stairs
des.stair("up", 55,05)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- The altar. This is not a shrine.
des.altar({ coord={16,11}, aligned="noncoaligned", type="altar" })
-- Objects
des.object({ id = "amulet of ESP", x=16, y=11, buc="blessed", spe=0, name="The Eye of the Aethiopica" })
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Random monsters.
des.monster("Dark One", 16, 11)
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "B",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster({ class = "i",random, peaceful = 0 })
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster({ class = "i",random, peaceful = 0 })
-- Captive Monsters in the dungeon
des.monster({ id = "rogue", x=35, y=06, peaceful=1, name="Pug" })
des.monster({ id = "owlbear", x=47, y=06, peaceful=1, asleep=1 })
des.monster({ id = "wizard", x=32, y=11, peaceful=1, asleep=1, name="Newt" })
des.monster({ id = "Grey-elf", x=44, y=11, peaceful=1 })
des.monster({ id = "hill giant", x=47, y=11, peaceful=1, asleep=1 })
des.monster({ id = "gnomish wizard", x=38, y=06, peaceful=1 })
des.monster({ id = "prisoner", x=35, y=11, peaceful=1 })
des.monster({ id = "prisoner", x=41, y=11, peaceful=1, asleep=1 })

151
dat/Wiz-loca.lua Normal file
View File

@@ -0,0 +1,151 @@
-- NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by David Cohrs
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "hardfloor")
des.map([[
............. .......................................................
.............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.......
.............. ..............}.................................}.......
.............. ..............}.-------------------------------.}.......
............... .........C....}.|.............................|.}.......
............... ..........C....}.|.---------------------------.|.}.......
............... .........CCC...}.|.|.........................|.|.}.......
................ ....C....CCC...}.|.|.-----------------------.|.|.}.......
.......C..C..... .....C....CCC...}.|.|.|......+.......+......|.|.|.}.......
.............C..CC.....C....CCC...}.|.|.|......|-------|......|.|.|.}.......
................ ....C....CCC...}.|.|.|......|.......|......|.|.|.}.......
......C..C..... ....C....CCC...}.|.|.|......|-------|......|.|.|.}.......
............C.. ...C....CCC...}.|.|.|......+.......+......|.|.|.}.......
........C...... ....C....CCC...}.|.|.-----------------------.|.|.}.......
....C......C... ........CCC...}.|.|.........................|.|.}.......
......C..C.... .........C....}.|.---------------------------.|.}.......
.............. .........C....}.|.............................|.}.......
............. ..............}.-------------------------------.}.......
............. .............}.................................}.......
............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.......
............. .......................................................
]]);
des.replace_terrain({ region = { 0, 0,30,20}, fromterrain=".", toterrain="C", chance=15 })
des.replace_terrain({ region = {68, 0,75,20}, fromterrain=".", toterrain="}", chance=25 })
des.replace_terrain({ region = {34, 1,68,19}, fromterrain="}", toterrain=".", chance=2 })
-- Dungeon Description
des.region(selection.area(00,00,75,20), "lit")
des.region({ region={37,04,65,16}, lit=0, type="ordinary", prefilled=1, irregular=1,
contents = function()
des.door({ state="secret", wall="random" })
end
})
des.region({ region={39,06,63,14}, lit=0, type="ordinary", prefilled=1, irregular=1,
contents = function()
des.door({ state="secret", wall="random" })
end
})
des.region({ region={41,08,46,12}, lit=1, type="ordinary", prefilled=1, irregular=1,
contents = function()
local walls = { "north", "south", "west" }
local widx = math.random(1, #walls)
des.door({ state="secret", wall=walls[widx] })
end
})
des.region({ region={56,08,61,12}, lit=1, type="ordinary", prefilled=1, irregular=1,
contents = function()
local walls = { "north", "south", "east" }
local widx = math.random(1, #walls)
des.door({ state="secret", wall=walls[widx] })
end
})
des.region(selection.area(48,08,54,08), "unlit")
des.region(selection.area(48,12,54,12), "unlit")
des.region({ region={48,10,54,10}, lit=0, type="ordinary", prefilled=1, irregular=1,
contents = function()
des.door({ state="secret", wall="random" })
end
})
-- Doors
des.door("locked",55,08)
des.door("locked",55,12)
des.door("locked",47,08)
des.door("locked",47,12)
-- Stairs
des.terrain({03,17}, ".")
des.stair("up", 03,17)
des.stair("down", 48,10)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,20))
-- Objects
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
des.object()
-- Random traps
des.trap("spiked pit",24,02)
des.trap("spiked pit",07,10)
des.trap("spiked pit",23,05)
des.trap("spiked pit",26,19)
des.trap("spiked pit",72,02)
des.trap("spiked pit",72,12)
des.trap("falling rock",45,16)
des.trap("falling rock",65,13)
des.trap("falling rock",55,06)
des.trap("falling rock",39,11)
des.trap("falling rock",57,09)
des.trap("magic")
des.trap("statue")
des.trap("statue")
des.trap("polymorph")
des.trap("anti magic",53,10)
des.trap("sleep gas")
des.trap("sleep gas")
des.trap("dart")
des.trap("dart")
des.trap("dart")
-- Random monsters.
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "B", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster({ class = "i", peaceful = 0 })
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster("vampire bat")
des.monster({ class = "i", peaceful = 0 })

104
dat/Wiz-strt.lua Normal file
View File

@@ -0,0 +1,104 @@
-- NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1992 by David Cohrs
-- NetHack may be freely redistributed. See license for details.
--
--
-- The "start" level for the quest.
--
-- Here you meet your (besieged) class leader, Neferet the Green
-- and receive your quest assignment.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor")
des.map([[
............................................................................
.....................C....CC.C........................C.....................
..........CCC.....................CCC.......................................
........CC........-----------.......C.C...C...C....C........................
.......C.....---------------------...C..C..C..C.............................
......C..C...------....\....------....C.....C...............................
........C...||....|.........|....||.........................................
.......C....||....|.........+....||.........................................
.......C...||---+--.........|....|||........................................
......C....||...............|--S--||........................................
...........||--+--|++----|---|..|.SS..........C......C......................
........C..||.....|..|...|...|--|.||..CC..C.....C..........C................
.......C...||.....|..|.--|.|.|....||.................C..C...................
.....C......||....|..|.....|.|.--||..C..C..........C...........}}}..........
......C.C...||....|..-----.|.....||...C.C.C..............C....}}}}}}........
.........C...------........|------....C..C.....C..CC.C......}}}}}}}}}}}.....
.........CC..---------------------...C.C..C.....CCCCC.C.......}}}}}}}}......
.........C........-----------..........C.C.......CCC.........}}}}}}}}}......
..........C.C.........................C............C...........}}}}}........
......................CCC.C.................................................
]]);
-- first do cloud everywhere
des.replace_terrain({ region={0,0, 75,19}, fromterrain=".", toterrain="C", chance=10 })
-- then replace clouds inside the tower back to floor
des.replace_terrain({ region={13,5, 33,15}, fromterrain="C", toterrain=".", chance=100 })
-- Dungeon Description
des.region(selection.area(00,00,75,19), "lit")
des.region(selection.area(35,00,49,03), "unlit")
des.region(selection.area(43,12,49,16), "unlit")
des.region({ region={19,11,33,15}, lit=0, type="ordinary", prefilled=0, irregular=1 })
des.region(selection.area(30,10,31,10), "unlit")
-- Stairs
des.stair("down", 30,10)
-- Portal arrival point
des.terrain({63,06}, ".")
des.levregion({ region = {63,06,63,06}, type="branch" })
-- Doors
des.door("closed",31,09)
des.door("closed",16,08)
des.door("closed",28,07)
des.door("locked",34,10)
des.door("locked",35,10)
des.door("closed",15,10)
des.door("locked",19,10)
des.door("locked",20,10)
-- Neferet the Green, the quest leader
des.monster("Neferet the Green", 23, 05)
-- The treasure of the quest leader
des.object("chest", 24, 05)
-- apprentice guards for the audience chamber
des.monster("apprentice", 30, 07)
des.monster("apprentice", 24, 06)
des.monster("apprentice", 15, 06)
des.monster("apprentice", 15, 12)
des.monster("apprentice", 26, 11)
des.monster("apprentice", 27, 11)
des.monster("apprentice", 19, 09)
des.monster("apprentice", 20, 09)
-- Eels in the pond
des.monster("giant eel", 62, 14)
des.monster("giant eel", 69, 15)
des.monster("giant eel", 67, 17)
-- Non diggable walls
des.non_diggable(selection.area(00,00,75,19))
-- Random traps
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
des.trap()
-- Monsters on siege duty.
des.monster({ class = "B", x=60, y=09, peaceful = 0 })
des.monster({ class = "W", x=60, y=10, peaceful = 0 })
des.monster({ class = "B", x=60, y=11, peaceful = 0 })
des.monster({ class = "B", x=60, y=12, peaceful = 0 })
des.monster({ class = "i", x=60, y=13, peaceful = 0 })
des.monster({ class = "B", x=61, y=10, peaceful = 0 })
des.monster({ class = "B", x=61, y=11, peaceful = 0 })
des.monster({ class = "B", x=61, y=12, peaceful = 0 })
des.monster({ class = "B", x=35, y=03, peaceful = 0 })
des.monster({ class = "i", x=35, y=17, peaceful = 0 })
des.monster({ class = "B", x=36, y=17, peaceful = 0 })
des.monster({ class = "B", x=34, y=16, peaceful = 0 })
des.monster({ class = "i", x=34, y=17, peaceful = 0 })
des.monster({ class = "W", x=67, y=02, peaceful = 0 })
des.monster({ class = "B", x=10, y=19, peaceful = 0 })

View File

@@ -1,472 +0,0 @@
# NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
# Copyright (c) 1992 by David Cohrs
# NetHack may be freely redistributed. See license for details.
#
# The "start" level for the quest.
#
# Here you meet your (besieged) class leader, Neferet the Green
# and receive your quest assignment.
#
MAZE: "Wiz-strt",' '
FLAGS: noteleport,hardfloor
GEOMETRY:center,center
MAP
............................................................................
.....................C....CC.C........................C.....................
..........CCC.....................CCC.......................................
........CC........-----------.......C.C...C...C....C........................
.......C.....---------------------...C..C..C..C.............................
......C..C...------....\....------....C.....C...............................
........C...||....|.........|....||.........................................
.......C....||....|.........+....||.........................................
.......C...||---+--.........|....|||........................................
......C....||...............|--S--||........................................
...........||--+--|++----|---|..|.SS..........C......C......................
........C..||.....|..|...|...|--|.||..CC..C.....C..........C................
.......C...||.....|..|.--|.|.|....||.................C..C...................
.....C......||....|..|.....|.|.--||..C..C..........C...........}}}..........
......C.C...||....|..-----.|.....||...C.C.C..............C....}}}}}}........
.........C...------........|------....C..C.....C..CC.C......}}}}}}}}}}}.....
.........CC..---------------------...C.C..C.....CCCCC.C.......}}}}}}}}......
.........C........-----------..........C.C.......CCC.........}}}}}}}}}......
..........C.C.........................C............C...........}}}}}........
......................CCC.C.................................................
ENDMAP
# first do cloud everywhere
REPLACE_TERRAIN:(0,0, 75,19), '.', 'C', 10%
# then replace clouds inside the tower back to floor
REPLACE_TERRAIN:(13,5, 33,15), 'C', '.', 100%
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(35,00,49,03),unlit,"ordinary"
REGION:(43,12,49,16),unlit,"ordinary"
REGION:(19,11,33,15),unlit,"ordinary",unfilled,irregular
REGION:(30,10,31,10),unlit,"ordinary"
# Stairs
STAIR:(30,10),down
# Portal arrival point
TERRAIN:(63,06),'.'
BRANCH:(63,06,63,06),(0,0,0,0)
# Doors
DOOR:closed,(31,09)
DOOR:closed,(16,08)
DOOR:closed,(28,07)
DOOR:locked,(34,10)
DOOR:locked,(35,10)
DOOR:closed,(15,10)
DOOR:locked,(19,10)
DOOR:locked,(20,10)
# Neferet the Green, the quest leader
MONSTER:('@',"Neferet the Green"),(23,05)
# The treasure of the quest leader
OBJECT:('(',"chest"),(24,05)
# apprentice guards for the audience chamber
MONSTER:('@',"apprentice"),(30,07)
MONSTER:('@',"apprentice"),(24,06)
MONSTER:('@',"apprentice"),(15,06)
MONSTER:('@',"apprentice"),(15,12)
MONSTER:('@',"apprentice"),(26,11)
MONSTER:('@',"apprentice"),(27,11)
MONSTER:('@',"apprentice"),(19,09)
MONSTER:('@',"apprentice"),(20,09)
# Eels in the pond
MONSTER:(';',"giant eel"),(62,14)
MONSTER:(';',"giant eel"),(69,15)
MONSTER:(';',"giant eel"),(67,17)
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Monsters on siege duty.
MONSTER: 'B',(60,09),hostile
MONSTER: 'W',(60,10),hostile
MONSTER: 'B',(60,11),hostile
MONSTER: 'B',(60,12),hostile
MONSTER: 'i',(60,13),hostile
MONSTER: 'B',(61,10),hostile
MONSTER: 'B',(61,11),hostile
MONSTER: 'B',(61,12),hostile
MONSTER: 'B',(35,03),hostile
MONSTER: 'i',(35,17),hostile
MONSTER: 'B',(36,17),hostile
MONSTER: 'B',(34,16),hostile
MONSTER: 'i',(34,17),hostile
MONSTER: 'W',(67,02),hostile
MONSTER: 'B',(10,19),hostile
#
# The "locate" level for the quest.
#
# Here you have to find the Entrance to the Tower of Darkness to go
# further towards your assigned quest.
#
MAZE: "Wiz-loca",' '
FLAGS: hardfloor
GEOMETRY:center,center
MAP
............. .......................................................
.............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.......
.............. ..............}.................................}.......
.............. ..............}.-------------------------------.}.......
............... .........C....}.|.............................|.}.......
............... ..........C....}.|.---------------------------.|.}.......
............... .........CCC...}.|.|.........................|.|.}.......
................ ....C....CCC...}.|.|.-----------------------.|.|.}.......
.......C..C..... .....C....CCC...}.|.|.|......+.......+......|.|.|.}.......
.............C..CC.....C....CCC...}.|.|.|......|-------|......|.|.|.}.......
................ ....C....CCC...}.|.|.|......|.......|......|.|.|.}.......
......C..C..... ....C....CCC...}.|.|.|......|-------|......|.|.|.}.......
............C.. ...C....CCC...}.|.|.|......+.......+......|.|.|.}.......
........C...... ....C....CCC...}.|.|.-----------------------.|.|.}.......
....C......C... ........CCC...}.|.|.........................|.|.}.......
......C..C.... .........C....}.|.---------------------------.|.}.......
.............. .........C....}.|.............................|.}.......
............. ..............}.-------------------------------.}.......
............. .............}.................................}.......
............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.......
............. .......................................................
ENDMAP
REPLACE_TERRAIN:(0,0,30,20), '.', 'C', 15%
REPLACE_TERRAIN:(68,0,75,20), '.', '}', 25%
REPLACE_TERRAIN:(34,1,68,19), '}', '.', 2%
# Dungeon Description
REGION:(00,00,75,20),lit,"ordinary"
REGION:(37,04,65,16),unlit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west|east,random
}
REGION:(39,06,63,14),unlit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west|east,random
}
REGION:(41,08,46,12),lit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west,random
}
REGION:(56,08,61,12),lit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|east,random
}
REGION:(48,08,54,08),unlit,"ordinary"
REGION:(48,12,54,12),unlit,"ordinary"
REGION:(48,10,54,10),unlit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west|east,random
}
# Doors
DOOR:locked,(55,08)
DOOR:locked,(55,12)
DOOR:locked,(47,08)
DOOR:locked,(47,12)
# Stairs
TERRAIN:(03,17),'.'
STAIR:(03,17),up
STAIR:(48,10),down
# Non diggable walls
NON_DIGGABLE:(00,00,75,20)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:"spiked pit",(24,02)
TRAP:"spiked pit",(07,10)
TRAP:"spiked pit",(23,05)
TRAP:"spiked pit",(26,19)
TRAP:"spiked pit",(72,02)
TRAP:"spiked pit",(72,12)
TRAP:"falling rock",(45,16)
TRAP:"falling rock",(65,13)
TRAP:"falling rock",(55,06)
TRAP:"falling rock",(39,11)
TRAP:"falling rock",(57,09)
TRAP:"magic",random
TRAP:"statue",random
TRAP:"statue",random
TRAP:"polymorph",random
TRAP:"anti magic",(53,10)
TRAP:"sleep gas",random
TRAP:"sleep gas",random
TRAP:"dart",random
TRAP:"dart",random
TRAP:"dart",random
# Random monsters.
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:'i',random,hostile
#
# The "goal" level for the quest.
#
# Here you meet the Dark One, your nemesis monster. You have to
# defeat the Dark One in combat to gain the artifact you have
# been assigned to retrieve.
#
MAZE: "Wiz-goal", ' '
GEOMETRY:center,center
MAP
------------- -------------
|...........| |...........|
-------|...........-------------------...........|
|......S...........|..|..|..|..|..|..|...........|
|......|...........|..|..|..|..|..|..|...........|
|......|...........-F+-F+-F+-F+-F+-F+-...........|
--S----|...........S.................+...........|
|......|...........-F+-F+-F+-F+-F+-F+-...........|
|......|...........|..|..|..|..|..|..|...........|
|......|...........|..|..|..|..|..|..|...........|
-------|...........-------------------...........|
|...........| |...........|
------------- -------------
ENDMAP
# Dungeon Description
REGION:(13,10,18,12),unlit,"temple"
REGION:(13,06,18,08),lit,"ordinary"
REGION:(20,04,30,14),unlit,"ordinary"
REGION:(32,06,33,07),unlit,"ordinary"
REGION:(35,06,36,07),unlit,"ordinary"
REGION:(38,06,39,07),unlit,"ordinary"
REGION:(41,06,42,07),unlit,"ordinary"
REGION:(44,06,45,07),unlit,"ordinary"
REGION:(47,06,48,07),unlit,"ordinary"
REGION:(32,09,48,09),unlit,"ordinary"
REGION:(32,11,33,12),unlit,"ordinary"
REGION:(35,11,36,12),unlit,"ordinary"
REGION:(38,11,39,12),unlit,"ordinary"
REGION:(41,11,42,12),unlit,"ordinary"
REGION:(44,11,45,12),unlit,"ordinary"
REGION:(47,11,48,12),unlit,"ordinary"
REGION:(50,04,60,14),lit,"ordinary"
# Doors
DOOR:locked,(19,06)
DOOR:locked,(14,09)
DOOR:locked,(31,09)
DOOR:locked,(33,08)
DOOR:locked,(36,08)
DOOR:locked,(39,08)
DOOR:locked,(42,08)
DOOR:locked,(45,08)
DOOR:locked,(48,08)
DOOR:locked,(33,10)
DOOR:locked,(36,10)
DOOR:locked,(39,10)
DOOR:locked,(42,10)
DOOR:locked,(45,10)
DOOR:locked,(48,10)
DOOR:locked,(49,09)
# Stairs
STAIR:(55,05),up
# Non diggable walls
NON_DIGGABLE:(00,00,75,19)
# The altar. This is not a shrine.
ALTAR:(16,11),noncoaligned,altar
# Objects
OBJECT:('"',"amulet of ESP"),(16,11),blessed,0,name:"The Eye of the Aethiopica"
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:('@',"Dark One"),(16,11)
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'B',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:'i',random,hostile
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:('B',"vampire bat"),random
MONSTER:'i',random,hostile
# Captive Monsters in the dungeon
MONSTER:('@',"rogue"),(35,06),peaceful,"Pug"
MONSTER:('Y',"owlbear"),(47,06),peaceful,asleep
MONSTER:('@',"wizard"),(32,11),peaceful,asleep,"Newt"
MONSTER:('@',"Grey-elf"),(44,11),peaceful
MONSTER:('H',"hill giant"),(47,11),peaceful,asleep
MONSTER:('G',"gnomish wizard"),(38,06),peaceful
MONSTER:('@',"prisoner"),(35,11),peaceful
MONSTER:('@',"prisoner"),(41,11),peaceful,asleep
#
# The "fill" levels for the quest.
#
# These levels are used to fill out any levels not occupied by specific
# levels as defined above. "filla" is the upper filler, between the
# start and locate levels, and "fillb" the lower between the locate
# and goal levels.
#
LEVEL: "Wiz-fila"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: 'i', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: 'i', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: ('B', "vampire bat"), random
MONSTER: ('B', "vampire bat"), random
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
MONSTER: 'i', random, hostile
MONSTER: ('B', "vampire bat"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: 'i', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
MONSTER: ('B', "vampire bat"), random
}
RANDOM_CORRIDORS
LEVEL: "Wiz-filb"
#
ROOM: "ordinary" , random, random, random, random {
STAIR: random, up
OBJECT: random,random
MONSTER: 'X', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random,random
MONSTER: 'i', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
OBJECT: random,random
MONSTER: 'X', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
STAIR: random, down
OBJECT: random, random
TRAP: random, random
MONSTER: 'i', random, hostile
MONSTER: ('B', "vampire bat"), random
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
OBJECT: random, random
TRAP: random, random
MONSTER: 'i', random, hostile
}
ROOM: "ordinary" , random, random, random, random {
OBJECT: random, random
TRAP: random, random
MONSTER: ('B', "vampire bat"), random
}
RANDOM_CORRIDORS

108
dat/air.lua Normal file
View File

@@ -0,0 +1,108 @@
-- NetHack 3.6 endgame.des $NHDT-Date: 1546303680 2019/01/01 00:48:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.14 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992,1993 by Izchak Miller, David Cohrs,
-- and Timo Hakulinen
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor", "shortsighted")
-- The following messages are somewhat obtuse, to make then
-- equally meaningful if the player can see or not.
des.message("What a strange feeling!")
des.message("You notice that there is no gravity here.")
-- The player lands, upon arrival, in the
-- lower-left area. The location of the
-- portal to the next level is randomly chosen.
-- This map has no visible outer boundary, and
-- is all "air".
des.map([[
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
]]);
-- Use up and down regions to partition the level into three parts;
-- teleportation can't cross from one part into another.
-- The up region is where you'll arrive after activating the portal from
-- the preceding level; the exit portal is placed inside the down region.
des.teleport_region({ region = {01,00,24,20}, region_islev = 1, exclude = {25,00,79,20}, exclude_islev=1, dir="up" })
des.teleport_region({ region = {56,00,79,20}, region_islev = 1, exclude = {01,00,55,20}, exclude_islev=1, dir="down" })
-- des.portal(levregion(57,01,78,19),(0,0,0,0),"fire")
des.levregion({ region = {57,01,78,19}, region_islev=1, type="portal", name="fire" });
des.region(selection.area(00,00,75,19),"lit")
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "air elemental", peaceful = 0 })
des.monster({ id = "floating eye", peaceful = 0 })
des.monster({ id = "floating eye", peaceful = 0 })
des.monster({ id = "floating eye", peaceful = 0 })
des.monster({ id = "yellow light", peaceful = 0 })
des.monster({ id = "yellow light", peaceful = 0 })
des.monster({ id = "yellow light", peaceful = 0 })
des.monster("couatl")
des.monster("D")
des.monster("D")
des.monster("D")
des.monster("D")
des.monster("D")
des.monster("E")
des.monster("E")
des.monster("E")
des.monster("J")
des.monster("J")
des.monster({ id = "djinni", peaceful = 0 })
des.monster({ id = "djinni", peaceful = 0 })
des.monster({ id = "djinni", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "fog cloud", peaceful = 0 })
des.monster({ id = "energy vortex", peaceful = 0 })
des.monster({ id = "energy vortex", peaceful = 0 })
des.monster({ id = "energy vortex", peaceful = 0 })
des.monster({ id = "energy vortex", peaceful = 0 })
des.monster({ id = "energy vortex", peaceful = 0 })
des.monster({ id = "steam vortex", peaceful = 0 })
des.monster({ id = "steam vortex", peaceful = 0 })
des.monster({ id = "steam vortex", peaceful = 0 })
des.monster({ id = "steam vortex", peaceful = 0 })
des.monster({ id = "steam vortex", peaceful = 0 })

88
dat/asmodeus.lua Normal file
View File

@@ -0,0 +1,88 @@
-- NetHack 3.6 gehennom.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.13 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992 by M. Stephenson and Izchak Miller
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style="mazegrid", bg ="-" });
des.level_flags("mazelevel", "noteleport")
-- First part
des.map({ halign = "half-left", valign = "center", map = [[
---------------------
|.............|.....|
|.............S.....|
|---+------------...|
|.....|.........|-+--
|..---|.........|....
|..|..S.........|....
|..|..|.........|....
|..|..|.........|-+--
|..|..-----------...|
|..S..........|.....|
---------------------
]] });
des.levregion({ region={01,00,6,20}, region_islev=1, exclude={6,1,70,16}, exclude_islev=1, type="stair-up" });
-- des.stair(levregion(01,00,6,20),levregion(6,1,70,16),up)
des.levregion({ region={01,00,6,20}, region_islev=1, exclude={6,1,70,16}, exclude_islev=1, type="branch" });
-- des.branch(levregion(01,00,6,20),levregion(6,1,70,16))
des.teleport_region({ region = {01,00,6,20}, region_islev=1, exclude={6,1,70,16}, exclude_islev=1 })
-- Doors
des.door("closed",04,03)
des.door("locked",18,04)
des.door("closed",18,08)
--
des.stair("down", 13,07)
-- Non diggable walls
des.non_diggable(selection.area(00,00,20,11))
-- Entire main area
des.region(selection.area(01,01,20,10),"unlit")
-- The fellow in residence
des.monster("Asmodeus",12,07)
-- Some random weapons and armor.
des.object("[")
des.object("[")
des.object(")")
des.object(")")
des.object("*")
des.object("!")
des.object("!")
des.object("?")
des.object("?")
des.object("?")
-- Some traps.
des.trap("spiked pit", 05,02)
des.trap("fire", 08,06)
des.trap("sleep gas")
des.trap("anti magic")
des.trap("fire")
des.trap("magic")
des.trap("magic")
-- Random monsters.
des.monster("ghost",11,07)
des.monster("horned devil",10,05)
des.monster("L")
-- Some Vampires for good measure
des.monster("V")
des.monster("V")
des.monster("V")
-- Second part
des.map({ halign = "half-right", valign = "center", map = [[
---------------------------------
................................|
................................+
................................|
---------------------------------
]] });
des.mazewalk(32,02,"east")
-- Non diggable walls
des.non_diggable(selection.area(00,00,32,04))
des.door("closed",32,02)
des.monster("&")
des.monster("&")
des.monster("&")
des.trap("anti magic")
des.trap("fire")
des.trap("magic")

187
dat/astral.lua Normal file
View File

@@ -0,0 +1,187 @@
-- NetHack 3.6 endgame.des $NHDT-Date: 1546303680 2019/01/01 00:48:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.14 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992,1993 by Izchak Miller, David Cohrs,
-- and Timo Hakulinen
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor", "nommap", "shortsighted", "solidify")
des.message("You arrive on the Astral Plane!")
des.message("Here the High Temple of %d is located.")
des.message("You sense alarm, hostility, and excitement in the air!")
des.map([[
---------------
|.............|
|..---------..|
|..|.......|..|
--------------- |..|.......|..| ---------------
|.............| |..|.......|..| |.............|
|..---------..-| |-------| |..|.......|..| |-------| |-..---------..|
|..|.......|...-| |-.......-| |..|.......|..| |-.......-| |-...|.......|..|
|..|.......|....-|-.........-||..----+----..||-.........-|-....|.......|..|
|..|.......+.....+...........||.............||...........+.....+.......|..|
|..|.......|....-|-.........-|--|.........|--|-.........-|-....|.......|..|
|..|.......|...-| |-.......-| -|---+---|- |-.......-| |-...|.......|..|
|..---------..-| |---+---| |-.......-| |---+---| |-..---------..|
|.............| |...|-----|-.........-|-----|...| |.............|
--------------- |.........|...........|.........| ---------------
-------...|-.........-|...-------
|....|-.......-|....|
---...|---+---|...---
|...............|
-----------------
]]);
-- chance to alter above map and turn the wings of the bottom-center into
-- a pair of big (5x15) rooms
for i=1,2 do
-- 3.6.[01]: 75% chance that both sides opened up, 25% that neither did;
-- 3.6.2: 60% twice == 36% chance that both sides open up, 24% left side
-- only, 24% right side only, 16% that neither side opens up
local hall = selection.new()
if math.random(0, 99) < 60 then
if i == 1 then
des.terrain(selection.area(17,14, 30,18),".")
des.wallify()
-- temporarily close off the area to be filled so that it doesn't cover
-- the entire entry area
des.terrain(33,18, "|")
hall:floodfill(30,16)
-- re-connect the opened wing with the rest of the map
des.terrain(33,18, ".")
else
des.terrain(selection.area(44,14, 57,18),".")
des.wallify()
des.terrain(41,18, "|")
hall:floodfill(44,16)
des.terrain(41,18, ".")
end
-- extra monsters; was [6 + 3d4] when both wings were opened up at once
for i=1,3 + math.random(2 - 1,2*3) do
des.monster({ id="Angel", coord = { hall:rndcoord(1) }, align="noalign", peaceful=0 })
if math.random(0,99) < 50 then
des.monster({ coord = { hall:rndcoord(1) }, peaceful=0 })
end
end
end
end
-- Rider locations
local place = selection.new();
place:set(23,9);
place:set(37,14);
place:set(51,9);
-- Where the player will land on arrival
des.teleport_region({ region = {29,15,45,15}, exclude = {30,15,44,15} })
-- Lit courts
des.region({ region={01,05,16,14},lit=1,type="ordinary",prefilled=1,irregular=1 })
des.region({ region={31,01,44,10},lit=1,type="ordinary",prefilled=1,irregular=1 })
des.region({ region={61,05,74,14},lit=1,type="ordinary",prefilled=1,irregular=1 })
-- A Sanctum for each alignment
-- The shrines' alignments are shuffled for
-- each game
des.region({ region={04,07,10,11},lit=1,type="temple" })
des.region({ region={34,03,40,07},lit=1,type="temple" })
des.region({ region={64,07,70,11},lit=1,type="temple" })
des.altar({ x=07, y=09, align=align[1],type="sanctum" })
des.altar({ x=37, y=05, align=align[2],type="sanctum" })
des.altar({ x=67, y=09, align=align[3],type="sanctum" })
-- Doors
des.door("closed",11,09)
des.door("closed",17,09)
des.door("locked",23,12)
des.door("locked",37,08)
des.door("closed",37,11)
des.door("closed",37,17)
des.door("locked",51,12)
des.door("locked",57,09)
des.door("closed",63,09)
-- Non diggable and phazeable everywhere
des.non_diggable(selection.area(00,00,74,19))
des.non_passwall(selection.area(00,00,74,19))
-- Moloch's horde
-- West round room
des.monster({ id = "aligned priest",x=18,y=09,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=19,y=08,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=19,y=09,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=19,y=10,align="noalign", peaceful=0 })
des.monster({ id = "Angel",x=20,y=09,align="noalign", peaceful=0 })
des.monster({ id = "Angel",x=20,y=10,align="noalign", peaceful=0 })
des.monster({ id = "Pestilence", coord = { place:rndcoord(1) }, peaceful=0 })
-- South-central round room
des.monster({ id = "aligned priest",x=36,y=12,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=37,y=12,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=38,y=12,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=36,y=13,align="noalign", peaceful=0 })
des.monster({ id = "Angel",x=38,y=13,align="noalign", peaceful=0 })
des.monster({ id = "Angel",x=37,y=13,align="noalign", peaceful=0 })
des.monster({ id = "Death", coord = { place:rndcoord(1) }, peaceful=0 })
-- East round room
des.monster({ id = "aligned priest",x=56,y=09,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=55,y=08,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=55,y=09,align="noalign", peaceful=0 })
des.monster({ id = "aligned priest",x=55,y=10,align="noalign", peaceful=0 })
des.monster({ id = "Angel",x=54,y=09,align="noalign", peaceful=0 })
des.monster({ id = "Angel",x=54,y=10,align="noalign", peaceful=0 })
des.monster({ id = "Famine", coord = { place:rndcoord(1) }, peaceful=0 })
--
-- The aligned horde
--
-- We do not know in advance the alignment of the
-- player. The mpeaceful bit will need resetting
-- when the level is created. The setting here is
-- but a place holder.
--
-- West court
des.monster({ id = "aligned priest",x=12,y=07,align="chaos", peaceful=0 })
des.monster({ id = "aligned priest",x=13,y=07,align="chaos",peaceful=1 })
des.monster({ id = "aligned priest",x=14,y=07,align="law", peaceful=0 })
des.monster({ id = "aligned priest",x=12,y=11,align="law",peaceful=1 })
des.monster({ id = "aligned priest",x=13,y=11,align="neutral", peaceful=0 })
des.monster({ id = "aligned priest",x=14,y=11,align="neutral",peaceful=1 })
des.monster({ id = "Angel",x=11,y=05,align="chaos", peaceful=0 })
des.monster({ id = "Angel",x=12,y=05,align="chaos",peaceful=1 })
des.monster({ id = "Angel",x=13,y=05,align="law", peaceful=0 })
des.monster({ id = "Angel",x=11,y=13,align="law",peaceful=1 })
des.monster({ id = "Angel",x=12,y=13,align="neutral", peaceful=0 })
des.monster({ id = "Angel",x=13,y=13,align="neutral",peaceful=1 })
-- Central court
des.monster({ id = "aligned priest",x=32,y=09,align="chaos", peaceful=0 })
des.monster({ id = "aligned priest",x=33,y=09,align="chaos",peaceful=1 })
des.monster({ id = "aligned priest",x=34,y=09,align="law", peaceful=0 })
des.monster({ id = "aligned priest",x=40,y=09,align="law",peaceful=1 })
des.monster({ id = "aligned priest",x=41,y=09,align="neutral", peaceful=0 })
des.monster({ id = "aligned priest",x=42,y=09,align="neutral",peaceful=1 })
des.monster({ id = "Angel",x=31,y=08,align="chaos", peaceful=0 })
des.monster({ id = "Angel",x=32,y=08,align="chaos",peaceful=1 })
des.monster({ id = "Angel",x=31,y=09,align="law", peaceful=0 })
des.monster({ id = "Angel",x=42,y=08,align="law",peaceful=1 })
des.monster({ id = "Angel",x=43,y=08,align="neutral", peaceful=0 })
des.monster({ id = "Angel",x=43,y=09,align="neutral",peaceful=1 })
-- East court
des.monster({ id = "aligned priest",x=60,y=07,align="chaos", peaceful=0 })
des.monster({ id = "aligned priest",x=61,y=07,align="chaos",peaceful=1 })
des.monster({ id = "aligned priest",x=62,y=07,align="law", peaceful=0 })
des.monster({ id = "aligned priest",x=60,y=11,align="law",peaceful=1 })
des.monster({ id = "aligned priest",x=61,y=11,align="neutral", peaceful=0 })
des.monster({ id = "aligned priest",x=62,y=11,align="neutral",peaceful=1 })
des.monster({ id = "Angel",x=61,y=05,align="chaos", peaceful=0 })
des.monster({ id = "Angel",x=62,y=05,align="chaos",peaceful=1 })
des.monster({ id = "Angel",x=63,y=05,align="law", peaceful=0 })
des.monster({ id = "Angel",x=61,y=13,align="law",peaceful=1 })
des.monster({ id = "Angel",x=62,y=13,align="neutral", peaceful=0 })
des.monster({ id = "Angel",x=63,y=13,align="neutral",peaceful=1 })
--
-- Assorted nasties
des.monster({ class = "L", peaceful=0 })
des.monster({ class = "L", peaceful=0 })
des.monster({ class = "L", peaceful=0 })
des.monster({ class = "V", peaceful=0 })
des.monster({ class = "V", peaceful=0 })
des.monster({ class = "V", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })
des.monster({ class = "D", peaceful=0 })

72
dat/baalz.lua Normal file
View File

@@ -0,0 +1,72 @@
-- NetHack 3.6 gehennom.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.13 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992 by M. Stephenson and Izchak Miller
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
-- TODO FIXME: see baalz_fixup - the legs get removed currently.
des.level_flags("mazelevel", "noteleport", "corrmaze")
-- the two pools are fakes used to mark spots which need special wall fixups
-- the two iron bars are eyes and spots to their left will be made diggable
des.map({ halign = "right", valign = "center", map = [[
-------------------------------------------------
| ---- ----
| ---- | ----------- |
| ------ | ---------|.........|--P
| F....| -------|...........--------------
---....|--|..................S............|----
+...--....S..----------------|............S...|
---....|--|..................|............|----
| F....| -------|...........-----S--------
| ------ | ---------|.........|--P
| ---- | ----------- |
| ---- ----
-------------------------------------------------
]] });
des.levregion({ region = {01,00,15,20}, region_islev=1, exclude={15,1,70,16}, exclude_islev=1, type="stair-up" })
des.levregion({ region = {01,00,15,20}, region_islev=1, exclude={15,1,70,16}, exclude_islev=1, type="branch" })
des.teleport_region({region = {01,00,15,20}, region_islev=1, exclude = {15,1,70,16}, exclude_islev=1 })
-- this actually leaves the farthest right column diggable
des.non_diggable(selection.area(00,00,47,12))
des.mazewalk(00,06,"west")
des.stair("down", 44,06)
des.door("locked",00,06)
if math.random(0, 99) < 50 then
des.terrain(34,08,'-')
des.terrain(34,04,'S')
des.terrain(29,05,'|')
des.terrain(29,07,'S')
end
-- The fellow in residence
des.monster("Baalzebub",35,06)
-- Some random weapons and armor.
des.object("[")
des.object("[")
des.object(")")
des.object(")")
des.object("*")
des.object("!")
des.object("!")
des.object("?")
des.object("?")
des.object("?")
-- Some traps.
des.trap("spiked pit")
des.trap("fire")
des.trap("sleep gas")
des.trap("anti magic")
des.trap("fire")
des.trap("magic")
des.trap("magic")
-- Random monsters.
des.monster("ghost",37,07)
des.monster("horned devil",32,05)
des.monster("barbed devil",38,07)
des.monster("L")
-- Some Vampires for good measure
des.monster("V")
des.monster("V")
des.monster("V")

72
dat/bigrm-1.lua Normal file
View File

@@ -0,0 +1,72 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
---------------------------------------------------------------------------
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
---------------------------------------------------------------------------
]]);
if math.random(0,99) < 75 then
local terrains = { "-", "F", "L", "T", "C" };
local tidx = math.random(1, #terrains);
local choice = math.random(0, 4);
if choice == 0 then
des.terrain(selection.line(10,8, 65,8), terrains[tidx]);
elseif choice == 1 then
local sel = selection.new();
sel:line(15,4, 15, 13);
sel:line(59,4, 59, 13);
des.terrain(sel, terrains[tidx]);
elseif choice == 2 then
local sel = selection.new();
sel:line(10,8, 38, 8);
sel:line(37,8, 65, 8);
sel:line(37,3, 37, 8);
sel:line(37,8, 37,14);
des.terrain(sel, terrains[tidx]);
elseif choice == 3 then
des.terrain(selection.rect(4,4, 70,13), terrains[tidx]);
local sel = selection.new();
sel:line(25,4, 50,4);
sel:line(25,13, 50,13);
des.terrain(sel, '.');
else
end
end
des.region(selection.area(01,01, 73, 16), "lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

58
dat/bigrm-10.lua Normal file
View File

@@ -0,0 +1,58 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
.......................................................................
.......................................................................
.......................................................................
.......................................................................
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
.......................................................................
.......................................................................
.......................................................................
.......................................................................
]]);
if math.random(0,99) < 40 then
-- occasionally it's not a fog maze
local terrain = { "L", "}", "T", "-", "F" };
local tidx = math.random(1, #terrain);
-- break it up a bit
des.replace_terrain({ region={0, 0, 70, 18}, fromterrain="C", toterrain=".", chance=5 });
des.replace_terrain({ region={0, 0, 70, 18}, fromterrain="C", toterrain=terrain[tidx] });
end;
des.region(selection.area(00,00,70,18), "lit");
-- when falling down on this level, never end up in the fog maze
des.teleport_region({ region = {00,00,70,18}, exclude = {02,03,68,15}, dir = "down" });
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end
des.mazewalk({ x=4, y=2, dir="south", stocked=0 });
-- Stairs up, not in the fog maze
des.levregion({ region = {00,00,70,18}, exclude = {02,03,68,15}, type="stair-up"});
des.stair("down");

57
dat/bigrm-2.lua Normal file
View File

@@ -0,0 +1,57 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
---------------------------------------------------------------------------
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
---------------------------------------------------------------------------
]]);
-- Dungeon Description
des.region(selection.area(01,01,73,16),"lit");
local choice = math.random(0, 3)
if choice == 0 then
des.region(selection.area(01,07,22,09),"unlit");
des.region(selection.area(24,01,50,05),"unlit");
des.region(selection.area(24,11,50,16),"unlit");
des.region(selection.area(52,07,73,09),"unlit");
elseif choice == 1 then
des.region(selection.area(24,01,50,16),"unlit");
elseif choice == 2 then
des.region(selection.area(01,01,22,16),"unlit");
des.region(selection.area(52,01,73,16),"unlit");
end
-- Stairs
des.stair("up");
des.stair("down");
-- Non diggable walls
des.non_diggable();
-- Objects
for i = 1,15 do
des.object();
end
-- Random traps
for i = 1,6 do
des.trap();
end
-- Random monsters.
for i = 1,28 do
des.monster();
end

71
dat/bigrm-3.lua Normal file
View File

@@ -0,0 +1,71 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
---------------------------------------------------------------------------
|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|..............---.......................................---..............|
|...............|.........................................|...............|
|.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....|
|.....|-------- --------|...................|---------- --------|.....|
|.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....|
|...............|.........................................|...............|
|..............---.......................................---..............|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|
---------------------------------------------------------------------------
]]);
-- Dungeon Description
des.region(selection.area(01,01,73,16), "lit");
-- Stairs
des.stair("up");
des.stair("down");
-- Non diggable walls
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
des.monster({ x = 01, y = 01 });
des.monster({ x = 13, y = 01 });
des.monster({ x = 25, y = 01 });
des.monster({ x = 37, y = 01 });
des.monster({ x = 49, y = 01 });
des.monster({ x = 61, y = 01 });
des.monster({ x = 73, y = 01 });
des.monster({ x = 07, y = 07 });
des.monster({ x = 13, y = 07 });
des.monster({ x = 25, y = 07 });
des.monster({ x = 37, y = 07 });
des.monster({ x = 49, y = 07 });
des.monster({ x = 61, y = 07 });
des.monster({ x = 67, y = 07 });
des.monster({ x = 07, y = 09 });
des.monster({ x = 13, y = 09 });
des.monster({ x = 25, y = 09 });
des.monster({ x = 37, y = 09 });
des.monster({ x = 49, y = 09 });
des.monster({ x = 61, y = 09 });
des.monster({ x = 67, y = 09 });
des.monster({ x = 01, y = 16 });
des.monster({ x = 13, y = 16 });
des.monster({ x = 25, y = 16 });
des.monster({ x = 37, y = 16 });
des.monster({ x = 49, y = 16 });
des.monster({ x = 61, y = 16 });
des.monster({ x = 73, y = 16 });

43
dat/bigrm-4.lua Normal file
View File

@@ -0,0 +1,43 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
----------- -----------
|.........| |.........|
|.........|-----------| |-----------|.........|
|-|...................|----------| |----------|...................|-|
-|.............................|-------|.............................|-
-|.................................................................|-
-|...............................................................|-
-|.............................................................|-
-|...........................................................|-
-|...........................................................|-
-|.............................................................|-
-|...............................................................|-
-|.................................................................|-
-|.............................|-------|.............................|-
|-|...................|----------| |----------|...................|-|
|.........|-----------| |-----------|.........|
|.........| |.........|
----------- -----------
]]);
des.region(selection.area(01,01,73,16), "lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

44
dat/bigrm-5.lua Normal file
View File

@@ -0,0 +1,44 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
------------------
---------................---------
-------................................-------
------............................................------
----......................................................----
---............................................................---
---................................................................---
---....................................................................---
|........................................................................|
|........................................................................|
|........................................................................|
---....................................................................---
---................................................................---
---............................................................---
----......................................................----
------............................................------
-------................................-------
---------................---------
------------------
]]);
des.region(selection.area(00,00,72,18), "lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

45
dat/bigrm-6.lua Normal file
View File

@@ -0,0 +1,45 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
--------- --------- --------- ---------
---.......--- ---.......--- ---.......--- ---.......---
--...........-- --...........-- --...........-- --...........--
--.............-- --.............-- --.............-- --.............--
-...............- -...............- -...............- -...............-
|-...............---...............---...............---...............--
|.................-.................-.................-.................|
|........T.................T.................T.................T........|
|.......................................................................|
|......T.{.....................................................{.T......|
|.......................................................................|
|........T.................T.................T.................T........|
|.................-.................-.................-.................|
--...............---...............---...............---...............--
-...............- -...............- -...............- -...............-
--.............-- --.............-- --.............-- --.............--
--...........-- --...........-- --...........-- --...........--
---.......--- ---.......--- ---.......--- ---.......---
--------- --------- --------- ---------
]]);
des.region(selection.area(01,01,72,17), "lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

48
dat/bigrm-7.lua Normal file
View File

@@ -0,0 +1,48 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
-----
---------...---
---------.........L...---
---------.......................---
---------.................................---
---------...........................................---
---------.....................................................---
|--------...............................................................--|
|.........................................................................|
|.L.....................................................................L.|
|.........................................................................|
|--...............................................................--------|
---.....................................................---------
---...........................................---------
---.................................---------
---.......................---------
---...L.........---------
---...---------
-----
]]);
local terrain = { "L", "T", "{", "." };
local tidx = math.random(1, #terrain);
des.replace_terrain({ region={00,00, 74,18}, fromterrain="L", toterrain=terrain[tidx] });
des.region(selection.area(01,01,73,17), "lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

50
dat/bigrm-8.lua Normal file
View File

@@ -0,0 +1,50 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
----------------------------------------------
|............................................---
--.............................................---
---......................................FF.....---
---...................................FF........---
---................................FF...........---
---.............................FF..............---
---..........................FF.................---
---.......................FF....................---
---....................FF.......................---
---.................FF..........................---
---..............FF.............................---
---...........FF................................----
---........FF...................................---
---.....FF......................................---
---.............................................--
---............................................|
----------------------------------------------
]]);
if math.random(0,99) < 40 then
local terrain = { "L", "}", "T", ".", "-", "C" };
local tidx = math.random(1, #terrain);
des.replace_terrain({ region={00,00, 74,17}, fromterrain="F", toterrain=terrain[tidx] });
end;
des.region(selection.area(01,01,73,16), "lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

48
dat/bigrm-9.lua Normal file
View File

@@ -0,0 +1,48 @@
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel");
des.map([[
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}................................}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}............................................}}}}}}}}}}}}}}}
}}}}}}}}}}......................................................}}}}}}}}}}
}}}}}}}............................................................}}}}}}}
}}}}}.......................LLLLLLLLLLLLLLLLLL.......................}}}}}
}}}....................LLLLLLLLLLLLLLLLLLLLLLLLLLL.....................}}}
}....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................}
}....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................}
}....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................}
}}}....................LLLLLLLLLLLLLLLLLLLLLLLLLLL.....................}}}
}}}}}.......................LLLLLLLLLLLLLLLLLL.......................}}}}}
}}}}}}}............................................................}}}}}}}
}}}}}}}}}}......................................................}}}}}}}}}}
}}}}}}}}}}}}}}}............................................}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}................................}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
]]);
-- Unlit, except 3 mapgrids around the "pupil"
des.region(selection.area(00,00,73,18),"unlit");
des.region(selection.area(26,04,47,14),"lit");
des.region(selection.area(21,05,51,13),"lit");
des.region(selection.area(19,06,54,12),"lit");
des.stair("up");
des.stair("down");
des.non_diggable();
for i = 1,15 do
des.object();
end
for i = 1,6 do
des.trap();
end
for i = 1,28 do
des.monster();
end

View File

@@ -1,723 +0,0 @@
# NetHack 3.6 bigroom.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1990 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
# These are the bigroom levels:
#
MAZE:"bigrm-1",' '
GEOMETRY:center,center
MAP
---------------------------------------------------------------------------
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
---------------------------------------------------------------------------
ENDMAP
$terrains = TERRAIN:{'-', 'F', 'L', 'T', 'C'}
SHUFFLE:$terrains
[50%]: SWITCH [ 4 ] {
CASE 0:
TERRAIN:line (10,8),(65, 8), $terrains[0]
BREAK
CASE 1:
TERRAIN:line (15,4),(15, 13), $terrains[0]
TERRAIN:line (59,4),(59, 13), $terrains[0]
BREAK
CASE 2:
TERRAIN:line (10,8),(38, 8), $terrains[0]
TERRAIN:line (37,8),(65, 8), $terrains[0]
TERRAIN:line (37,3),(37, 8), $terrains[0]
TERRAIN:line (37,8),(37,14), $terrains[0]
BREAK
CASE 3:
TERRAIN:rect (4,4,70,13), $terrains[0]
TERRAIN:line (25, 4),(50, 4), '.'
TERRAIN:line (25,13),(50,13), '.'
BREAK
DEFAULT:
}
# Dungeon Description
REGION:(01,01,73,16),lit,"ordinary"
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,74,17)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
# Here, just play with the lighting...
MAZE:"bigrm-2",' '
GEOMETRY:center,center
MAP
---------------------------------------------------------------------------
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
---------------------------------------------------------------------------
ENDMAP
# Dungeon Description
REGION:(01,01,73,16),lit,"ordinary"
SWITCH [ 3 ] {
CASE 0:
REGION:(01,07,22,09),unlit,"ordinary"
REGION:(24,01,50,05),unlit,"ordinary"
REGION:(24,11,50,16),unlit,"ordinary"
REGION:(52,07,73,09),unlit,"ordinary"
BREAK
CASE 1:
REGION:(24,01,50,16),unlit,"ordinary"
BREAK
CASE 2:
REGION:(01,01,22,16),unlit,"ordinary"
REGION:(52,01,73,16),unlit,"ordinary"
BREAK
}
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,74,17)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
# Now, let's get fancy...
MAZE:"bigrm-3",' '
GEOMETRY:center,center
MAP
---------------------------------------------------------------------------
|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|..............---.......................................---..............|
|...............|.........................................|...............|
|.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....|
|.....|-------- --------|...................|---------- --------|.....|
|.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....|
|...............|.........................................|...............|
|..............---.......................................---..............|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|
---------------------------------------------------------------------------
ENDMAP
# Dungeon Description
REGION:(01,01,73,16),lit,"ordinary"
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,74,17)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:random,(01,01)
MONSTER:random,(13,01)
MONSTER:random,(25,01)
MONSTER:random,(37,01)
MONSTER:random,(49,01)
MONSTER:random,(61,01)
MONSTER:random,(73,01)
MONSTER:random,(07,07)
MONSTER:random,(13,07)
MONSTER:random,(25,07)
MONSTER:random,(37,07)
MONSTER:random,(49,07)
MONSTER:random,(61,07)
MONSTER:random,(67,07)
MONSTER:random,(07,09)
MONSTER:random,(13,09)
MONSTER:random,(25,09)
MONSTER:random,(37,09)
MONSTER:random,(49,09)
MONSTER:random,(61,09)
MONSTER:random,(67,09)
MONSTER:random,(01,16)
MONSTER:random,(13,16)
MONSTER:random,(25,16)
MONSTER:random,(37,16)
MONSTER:random,(49,16)
MONSTER:random,(61,16)
MONSTER:random,(73,16)
MAZE:"bigrm-4",' '
GEOMETRY:center,center
MAP
----------- -----------
|.........| |.........|
|.........|-----------| |-----------|.........|
|-|...................|----------| |----------|...................|-|
-|.............................|-------|.............................|-
-|.................................................................|-
-|...............................................................|-
-|.............................................................|-
-|...........................................................|-
-|...........................................................|-
-|.............................................................|-
-|...............................................................|-
-|.................................................................|-
-|.............................|-------|.............................|-
|-|...................|----------| |----------|...................|-|
|.........|-----------| |-----------|.........|
|.........| |.........|
----------- -----------
ENDMAP
# Dungeon Description
REGION:(01,01,73,16),lit,"ordinary"
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,74,17)
# Fountains
FOUNTAIN:(05,02)
FOUNTAIN:(05,15)
FOUNTAIN:(69,02)
FOUNTAIN:(69,15)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
# Try an oval room...
MAZE:"bigrm-5",' '
GEOMETRY:center,center
MAP
------------------
---------................---------
-------................................-------
------............................................------
----......................................................----
---............................................................---
---................................................................---
---....................................................................---
|........................................................................|
|........................................................................|
|........................................................................|
---....................................................................---
---................................................................---
---............................................................---
----......................................................----
------............................................------
-------................................-------
---------................---------
------------------
ENDMAP
# Dungeon Description
REGION:(00,00,72,18),lit,"ordinary"
# Stairs
STAIR:random,up
STAIR:random,down
# Non diggable walls
NON_DIGGABLE:(00,00,72,18)
# Objects
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
OBJECT:random,random
# Random traps
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
TRAP:random,random
# Random monsters.
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
MONSTER:random,random
# The Four Circles
LEVEL:"bigrm-6"
FLAGS:mazelevel
INIT_MAP:solidfill,' '
GEOMETRY:center,center
MAP
--------- --------- --------- ---------
---.......--- ---.......--- ---.......--- ---.......---
--...........-- --...........-- --...........-- --...........--
--.............-- --.............-- --.............-- --.............--
-...............- -...............- -...............- -...............-
|-...............---...............---...............---...............--
|.................-.................-.................-.................|
|........T.................T.................T.................T........|
|.......................................................................|
|......T.{.....................................................{.T......|
|.......................................................................|
|........T.................T.................T.................T........|
|.................-.................-.................-.................|
--...............---...............---...............---...............--
-...............- -...............- -...............- -...............-
--.............-- --.............-- --.............-- --.............--
--...........-- --...........-- --...........-- --...........--
---.......--- ---.......--- ---.......--- ---.......---
--------- --------- --------- ---------
ENDMAP
REGION:(01,01,72,17),lit,"ordinary"
STAIR:random,up
STAIR:random,down
NON_DIGGABLE:(00,00,72,18)
LOOP [15] {
OBJECT:random,random
}
LOOP [6] {
TRAP:random,random
}
LOOP [28] {
MONSTER:random,random
}
# Let's tilt it a bit
LEVEL:"bigrm-7"
FLAGS:mazelevel
INIT_MAP:solidfill,' '
GEOMETRY:center,center
MAP
-----
---------...---
---------.........L...---
---------.......................---
---------.................................---
---------...........................................---
---------.....................................................---
|--------...............................................................--|
|.........................................................................|
|.L.....................................................................L.|
|.........................................................................|
|--...............................................................--------|
---.....................................................---------
---...........................................---------
---.................................---------
---.......................---------
---...L.........---------
---...---------
-----
ENDMAP
$terrain = terrain:{ 'L', 'T', '{', '.' }
SHUFFLE:$terrain
REPLACE_TERRAIN:(00,00,74,18),'L',$terrain[0],100%
REGION:(01,01,73,17),lit,"ordinary"
STAIR:random,up
STAIR:random,down
NON_DIGGABLE:(00,00,74,18)
LOOP [15] {
OBJECT:random,random
}
LOOP [6] {
TRAP:random,random
}
LOOP [28] {
MONSTER:random,random
}
# Slanted
LEVEL:"bigrm-8"
FLAGS:mazelevel
INIT_MAP:solidfill,' '
GEOMETRY:center,center
MAP
----------------------------------------------
|............................................---
--.............................................---
---......................................FF.....---
---...................................FF........---
---................................FF...........---
---.............................FF..............---
---..........................FF.................---
---.......................FF....................---
---....................FF.......................---
---.................FF..........................---
---..............FF.............................---
---...........FF................................----
---........FF...................................---
---.....FF......................................---
---.............................................--
---............................................|
----------------------------------------------
ENDMAP
IF [40%] {
$terrain = TERRAIN:{ 'L', '}', 'T', '.', '-', 'C' }
SHUFFLE:$terrain
REPLACE_TERRAIN:(0,0,74,17),'F', $terrain[0], 100%
}
REGION:(01,01,73,16),lit,"ordinary"
STAIR:random,up
STAIR:random,down
NON_DIGGABLE:(00,00,74,17)
LOOP [15] {
OBJECT:random,random
}
LOOP [6] {
TRAP:random,random
}
LOOP [28] {
MONSTER:random,random
}
# The Eye
LEVEL:"bigrm-9"
FLAGS:mazelevel
GEOMETRY:center,center
MAP
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}................................}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}............................................}}}}}}}}}}}}}}}
}}}}}}}}}}......................................................}}}}}}}}}}
}}}}}}}............................................................}}}}}}}
}}}}}.......................LLLLLLLLLLLLLLLLLL.......................}}}}}
}}}....................LLLLLLLLLLLLLLLLLLLLLLLLLLL.....................}}}
}....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................}
}....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................}
}....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................}
}}}....................LLLLLLLLLLLLLLLLLLLLLLLLLLL.....................}}}
}}}}}.......................LLLLLLLLLLLLLLLLLL.......................}}}}}
}}}}}}}............................................................}}}}}}}
}}}}}}}}}}......................................................}}}}}}}}}}
}}}}}}}}}}}}}}}............................................}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}................................}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
ENDMAP
# Unlit, except 3 mapgrids around the "pupil"
REGION:(00,00,73,18),unlit,"ordinary"
REGION:(26,04,47,14),lit,"ordinary"
REGION:(21,05,51,13),lit,"ordinary"
REGION:(19,06,54,12),lit,"ordinary"
STAIR:random,up
STAIR:random,down
LOOP [15] {
OBJECT:random,random
}
LOOP [6] {
TRAP:random,random
}
LOOP [28] {
MONSTER:random,random
}
# Fog Maze
LEVEL:"bigrm-10"
FLAGS:mazelevel
GEOMETRY:center,center
MAP
.......................................................................
.......................................................................
.......................................................................
.......................................................................
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...
...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C...
.......................................................................
.......................................................................
.......................................................................
.......................................................................
ENDMAP
IF [33%] {
# occasionally it's not a fog maze
$terrain = TERRAIN:{ 'L', '}', 'T', '-', 'F' }
SHUFFLE:$terrain
# break it up a bit
REPLACE_TERRAIN:(0,0,70,18),'C', '.', 5%
REPLACE_TERRAIN:(0,0,70,18),'C', $terrain[0], 100%
}
REGION:(00,00,70,18),lit,"ordinary"
# when falling down on this level, never end up in the fog maze
TELEPORT_REGION:(00,00,70,18),(02,03,68,15),down
LOOP [15] {
OBJECT:random,random
}
LOOP [6] {
TRAP:random,random
}
LOOP [28] {
MONSTER:random,random
}
MAZEWALK:(4, 2), south, false
# Stairs up, not in the fog maze
STAIR:(00,00,70,18),(02,03,68,15),up
STAIR:random,down

View File

@@ -1,249 +0,0 @@
# NetHack 3.6 castle.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
# Copyright (c) 1989 by Jean-Christophe Collet
# NetHack may be freely redistributed. See license for details.
#
# This is the stronghold level :
# there are several ways to enter it :
# - opening the drawbridge (wand of opening, knock spell, playing
# the appropriate tune)
#
# - enter via the back entry (this suppose a ring of levitation, boots
# of water walking, etc.)
#
# Note : If you don't play the right tune, you get indications like in the
# MasterMind game...
#
# To motivate the player : there are 4 storerooms (armors, weapons, food and
# gems) and a wand of wishing in one of the 4 towers...
MAZE:"castle",random
FLAGS: noteleport
GEOMETRY:center,center
MAP
}}}}}}}}}.............................................}}}}}}}}}
}-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------}
}|.....|-----------------------------------------------|.....|}
}|.....+...............................................+.....|}
}-------------------------------+-----------------------------}
}}}}}}|........|..........+...........|.......S.S.......|}}}}}}
.....}|........|..........|...........|.......|.|.......|}.....
.....}|........------------...........---------S---------}.....
.....}|...{....+..........+.........\.S.................+......
.....}|........------------...........---------S---------}.....
.....}|........|..........|...........|.......|.|.......|}.....
}}}}}}|........|..........+...........|.......S.S.......|}}}}}}
}-------------------------------+-----------------------------}
}|.....+...............................................+.....|}
}|.....|-----------------------------------------------|.....|}
}-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------}
}}}}}}}}}.............................................}}}}}}}}}
ENDMAP
# Random registers initialisation
$object = object: { '[',')','*','%' }
SHUFFLE: $object
$place = { (04,02),(58,02),(04,14),(58,14) }
SHUFFLE: $place
$monster = monster: { 'L','N','E','H','M','O','R','T','X','Z' }
SHUFFLE: $monster
TELEPORT_REGION:levregion(01,00,10,20),(1,1,61,15),down
TELEPORT_REGION:levregion(69,00,79,20),(1,1,61,15),up
STAIR:levregion(01,00,10,20),(0,0,62,16),up
FOUNTAIN:(10,08)
# Doors
DOOR:closed,(07,03)
DOOR:closed,(55,03)
DOOR:locked,(32,04)
DOOR:locked,(26,05)
DOOR:locked,(46,05)
DOOR:locked,(48,05)
DOOR:locked,(47,07)
DOOR:closed,(15,08)
DOOR:closed,(26,08)
DOOR:locked,(38,08)
DOOR:locked,(56,08)
DOOR:locked,(47,09)
DOOR:locked,(26,11)
DOOR:locked,(46,11)
DOOR:locked,(48,11)
DOOR:locked,(32,12)
DOOR:closed,(07,13)
DOOR:closed,(55,13)
# The drawbridge
DRAWBRIDGE:(05,08),east,closed
# Storeroom number 1
OBJECT:$object[0],(39,05)
OBJECT:$object[0],(40,05)
OBJECT:$object[0],(41,05)
OBJECT:$object[0],(42,05)
OBJECT:$object[0],(43,05)
OBJECT:$object[0],(44,05)
OBJECT:$object[0],(45,05)
OBJECT:$object[0],(39,06)
OBJECT:$object[0],(40,06)
OBJECT:$object[0],(41,06)
OBJECT:$object[0],(42,06)
OBJECT:$object[0],(43,06)
OBJECT:$object[0],(44,06)
OBJECT:$object[0],(45,06)
# Storeroom number 2
OBJECT:$object[1],(49,05)
OBJECT:$object[1],(50,05)
OBJECT:$object[1],(51,05)
OBJECT:$object[1],(52,05)
OBJECT:$object[1],(53,05)
OBJECT:$object[1],(54,05)
OBJECT:$object[1],(55,05)
OBJECT:$object[1],(49,06)
OBJECT:$object[1],(50,06)
OBJECT:$object[1],(51,06)
OBJECT:$object[1],(52,06)
OBJECT:$object[1],(53,06)
OBJECT:$object[1],(54,06)
OBJECT:$object[1],(55,06)
# Storeroom number 3
OBJECT:$object[2],(39,10)
OBJECT:$object[2],(40,10)
OBJECT:$object[2],(41,10)
OBJECT:$object[2],(42,10)
OBJECT:$object[2],(43,10)
OBJECT:$object[2],(44,10)
OBJECT:$object[2],(45,10)
OBJECT:$object[2],(39,11)
OBJECT:$object[2],(40,11)
OBJECT:$object[2],(41,11)
OBJECT:$object[2],(42,11)
OBJECT:$object[2],(43,11)
OBJECT:$object[2],(44,11)
OBJECT:$object[2],(45,11)
# Storeroom number 4
OBJECT:$object[3],(49,10)
OBJECT:$object[3],(50,10)
OBJECT:$object[3],(51,10)
OBJECT:$object[3],(52,10)
OBJECT:$object[3],(53,10)
OBJECT:$object[3],(54,10)
OBJECT:$object[3],(55,10)
OBJECT:$object[3],(49,11)
OBJECT:$object[3],(50,11)
OBJECT:$object[3],(51,11)
OBJECT:$object[3],(52,11)
OBJECT:$object[3],(53,11)
OBJECT:$object[3],(54,11)
OBJECT:$object[3],(55,11)
# THE WAND OF WISHING in 1 of the 4 towers
CONTAINER:('(',"chest"),not_trapped,$place[0] {
OBJECT:('/',"wishing")
}
# Prevent monsters from eating it. (@'s never eat objects)
ENGRAVING:$place[0],burn,"Elbereth"
OBJECT:('?',"scare monster"),$place[0],cursed
# The treasure of the lord
OBJECT:('(',"chest"),(37,08)
# Traps
TRAP:"trap door",(40,08)
TRAP:"trap door",(44,08)
TRAP:"trap door",(48,08)
TRAP:"trap door",(52,08)
TRAP:"trap door",(55,08)
# Soldiers guarding the entry hall
MONSTER:('@',"soldier"),(08,06)
MONSTER:('@',"soldier"),(09,05)
MONSTER:('@',"soldier"),(11,05)
MONSTER:('@',"soldier"),(12,06)
MONSTER:('@',"soldier"),(08,10)
MONSTER:('@',"soldier"),(09,11)
MONSTER:('@',"soldier"),(11,11)
MONSTER:('@',"soldier"),(12,10)
MONSTER:('@',"lieutenant"),(09,08)
# Soldiers guarding the towers
MONSTER:('@',"soldier"),(03,02)
MONSTER:('@',"soldier"),(05,02)
MONSTER:('@',"soldier"),(57,02)
MONSTER:('@',"soldier"),(59,02)
MONSTER:('@',"soldier"),(03,14)
MONSTER:('@',"soldier"),(05,14)
MONSTER:('@',"soldier"),(57,14)
MONSTER:('@',"soldier"),(59,14)
# The four dragons that are guarding the storerooms
MONSTER:'D',(47,05)
MONSTER:'D',(47,06)
MONSTER:'D',(47,10)
MONSTER:'D',(47,11)
# Sea monsters in the moat
MONSTER:(';',"giant eel"),(05,07)
MONSTER:(';',"giant eel"),(05,09)
MONSTER:(';',"giant eel"),(57,07)
MONSTER:(';',"giant eel"),(57,09)
MONSTER:(';',"shark"),(05,00)
MONSTER:(';',"shark"),(05,16)
MONSTER:(';',"shark"),(57,00)
MONSTER:(';',"shark"),(57,16)
# The throne room and the court monsters
MONSTER:$monster[0],(27,05)
MONSTER:$monster[1],(30,05)
MONSTER:$monster[2],(33,05)
MONSTER:$monster[3],(36,05)
MONSTER:$monster[4],(28,06)
MONSTER:$monster[5],(31,06)
MONSTER:$monster[6],(34,06)
MONSTER:$monster[7],(37,06)
MONSTER:$monster[8],(27,07)
MONSTER:$monster[9],(30,07)
MONSTER:$monster[0],(33,07)
MONSTER:$monster[1],(36,07)
MONSTER:$monster[2],(28,08)
MONSTER:$monster[3],(31,08)
MONSTER:$monster[4],(34,08)
MONSTER:$monster[5],(27,09)
MONSTER:$monster[6],(30,09)
MONSTER:$monster[7],(33,09)
MONSTER:$monster[8],(36,09)
MONSTER:$monster[9],(28,10)
MONSTER:$monster[0],(31,10)
MONSTER:$monster[1],(34,10)
MONSTER:$monster[2],(37,10)
MONSTER:$monster[3],(27,11)
MONSTER:$monster[4],(30,11)
MONSTER:$monster[5],(33,11)
MONSTER:$monster[6],(36,11)
# MazeWalks
MAZEWALK:(00,10),west
MAZEWALK:(62,06),east
# Non diggable walls
NON_DIGGABLE:(00,00,62,16)
# Subrooms:
# Entire castle area
REGION:(00,00,62,16),unlit,"ordinary"
# Courtyards
REGION:(00,05,05,11),lit,"ordinary"
REGION:(57,05,62,11),lit,"ordinary"
# Throne room
REGION:(27,05,37,11),lit,"throne",unfilled
# Antechamber
REGION:(07,05,14,11),lit,"ordinary"
# Storerooms
REGION:(39,05,45,06),lit,"ordinary"
REGION:(39,10,45,11),lit,"ordinary"
REGION:(49,05,55,06),lit,"ordinary"
REGION:(49,10,55,11),lit,"ordinary"
# Corners
REGION:(02,02,06,03),lit,"ordinary"
REGION:(56,02,60,03),lit,"ordinary"
REGION:(02,13,06,14),lit,"ordinary"
REGION:(56,13,60,14),lit,"ordinary"
# Barracks
REGION:(16,05,25,06),lit,"barracks"
REGION:(16,10,25,11),lit,"barracks"
# Hallways
REGION:(08,03,54,03),unlit,"ordinary"
REGION:(08,13,54,13),unlit,"ordinary"
REGION:(16,08,25,08),unlit,"ordinary"
REGION:(39,08,55,08),unlit,"ordinary"
# Storeroom alcoves
REGION:(47,05,47,06),unlit,"ordinary"
REGION:(47,10,47,11),unlit,"ordinary"

256
dat/castle.lua Normal file
View File

@@ -0,0 +1,256 @@
-- NetHack 3.6 castle.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- NetHack may be freely redistributed. See license for details.
--
--
-- This is the stronghold level :
-- there are several ways to enter it :
-- - opening the drawbridge (wand of opening, knock spell, playing
-- the appropriate tune)
--
-- - enter via the back entry (this suppose a ring of levitation, boots
-- of water walking, etc.)
--
-- Note : If you don't play the right tune, you get indications like in the
-- MasterMind game...
--
-- To motivate the player : there are 4 storerooms (armors, weapons, food and
-- gems) and a wand of wishing in one of the 4 towers...
des.level_init({ style="mazegrid", bg ="-" });
des.level_flags("mazelevel", "noteleport")
des.map([[
}}}}}}}}}.............................................}}}}}}}}}
}-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------}
}|.....|-----------------------------------------------|.....|}
}|.....+...............................................+.....|}
}-------------------------------+-----------------------------}
}}}}}}|........|..........+...........|.......S.S.......|}}}}}}
.....}|........|..........|...........|.......|.|.......|}.....
.....}|........------------...........---------S---------}.....
.....}|...{....+..........+.........\.S.................+......
.....}|........------------...........---------S---------}.....
.....}|........|..........|...........|.......|.|.......|}.....
}}}}}}|........|..........+...........|.......S.S.......|}}}}}}
}-------------------------------+-----------------------------}
}|.....+...............................................+.....|}
}|.....|-----------------------------------------------|.....|}
}-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------}
}}}}}}}}}.............................................}}}}}}}}}
]]);
-- Random registers initialisation
local object = { "[", ")", "*", "%" };
shuffle(object)
local place = selection.new();
place:set(04,02);
place:set(58,02);
place:set(04,14);
place:set(58,14);
local monster = { "L", "N", "E", "H", "M", "O", "R", "T", "X", "Z" }
shuffle(monster)
des.teleport_region({ region = {01,00,10,20}, region_islev=1, exclude={1,1,61,15}, dir="down" })
des.teleport_region({ region = {69,00,79,20}, region_islev=1, exclude={1,1,61,15}, dir="up" })
des.levregion({ region = {01,00,10,20}, region_islev=1, exclude={0,0,62,16}, type="stair-up" })
des.feature("fountain", 10,08)
-- Doors
des.door("closed",07,03)
des.door("closed",55,03)
des.door("locked",32,04)
des.door("locked",26,05)
des.door("locked",46,05)
des.door("locked",48,05)
des.door("locked",47,07)
des.door("closed",15,08)
des.door("closed",26,08)
des.door("locked",38,08)
des.door("locked",56,08)
des.door("locked",47,09)
des.door("locked",26,11)
des.door("locked",46,11)
des.door("locked",48,11)
des.door("locked",32,12)
des.door("closed",07,13)
des.door("closed",55,13)
-- The drawbridge
des.drawbridge({ dir="east", state="closed", x=05,y=08})
-- Storeroom number 1
des.object(object[1],39,05)
des.object(object[1],40,05)
des.object(object[1],41,05)
des.object(object[1],42,05)
des.object(object[1],43,05)
des.object(object[1],44,05)
des.object(object[1],45,05)
des.object(object[1],39,06)
des.object(object[1],40,06)
des.object(object[1],41,06)
des.object(object[1],42,06)
des.object(object[1],43,06)
des.object(object[1],44,06)
des.object(object[1],45,06)
-- Storeroom number 2
des.object(object[2],49,05)
des.object(object[2],50,05)
des.object(object[2],51,05)
des.object(object[2],52,05)
des.object(object[2],53,05)
des.object(object[2],54,05)
des.object(object[2],55,05)
des.object(object[2],49,06)
des.object(object[2],50,06)
des.object(object[2],51,06)
des.object(object[2],52,06)
des.object(object[2],53,06)
des.object(object[2],54,06)
des.object(object[2],55,06)
-- Storeroom number 3
des.object(object[3],39,10)
des.object(object[3],40,10)
des.object(object[3],41,10)
des.object(object[3],42,10)
des.object(object[3],43,10)
des.object(object[3],44,10)
des.object(object[3],45,10)
des.object(object[3],39,11)
des.object(object[3],40,11)
des.object(object[3],41,11)
des.object(object[3],42,11)
des.object(object[3],43,11)
des.object(object[3],44,11)
des.object(object[3],45,11)
-- Storeroom number 4
des.object(object[4],49,10)
des.object(object[4],50,10)
des.object(object[4],51,10)
des.object(object[4],52,10)
des.object(object[4],53,10)
des.object(object[4],54,10)
des.object(object[4],55,10)
des.object(object[4],49,11)
des.object(object[4],50,11)
des.object(object[4],51,11)
des.object(object[4],52,11)
des.object(object[4],53,11)
des.object(object[4],54,11)
des.object(object[4],55,11)
-- THE WAND OF WISHING in 1 of the 4 towers
local px, py = place:rndcoord(1);
des.object({ id = "chest", trapped = 0, x = px, y = py,
contents = function()
des.object("wishing");
end
});
-- Prevent monsters from eating it. (@'s never eat objects)
des.engraving({ x = px, y = py, type="burn", text="Elbereth" })
des.object({ id = "scare monster", x = px, y = py, buc="cursed" })
-- The treasure of the lord
des.object("chest",37,08)
-- Traps
des.trap("trap door",40,08)
des.trap("trap door",44,08)
des.trap("trap door",48,08)
des.trap("trap door",52,08)
des.trap("trap door",55,08)
-- Soldiers guarding the entry hall
des.monster("soldier",08,06)
des.monster("soldier",09,05)
des.monster("soldier",11,05)
des.monster("soldier",12,06)
des.monster("soldier",08,10)
des.monster("soldier",09,11)
des.monster("soldier",11,11)
des.monster("soldier",12,10)
des.monster("lieutenant",09,08)
-- Soldiers guarding the towers
des.monster("soldier",03,02)
des.monster("soldier",05,02)
des.monster("soldier",57,02)
des.monster("soldier",59,02)
des.monster("soldier",03,14)
des.monster("soldier",05,14)
des.monster("soldier",57,14)
des.monster("soldier",59,14)
-- The four dragons that are guarding the storerooms
des.monster("D",47,05)
des.monster("D",47,06)
des.monster("D",47,10)
des.monster("D",47,11)
-- Sea monsters in the moat
des.monster("giant eel",05,07)
des.monster("giant eel",05,09)
des.monster("giant eel",57,07)
des.monster("giant eel",57,09)
des.monster("shark",05,00)
des.monster("shark",05,16)
des.monster("shark",57,00)
des.monster("shark",57,16)
-- The throne room and the court monsters
des.monster(monster[10],27,05)
des.monster(monster[1],30,05)
des.monster(monster[2],33,05)
des.monster(monster[3],36,05)
des.monster(monster[4],28,06)
des.monster(monster[5],31,06)
des.monster(monster[6],34,06)
des.monster(monster[7],37,06)
des.monster(monster[8],27,07)
des.monster(monster[9],30,07)
des.monster(monster[10],33,07)
des.monster(monster[1],36,07)
des.monster(monster[2],28,08)
des.monster(monster[3],31,08)
des.monster(monster[4],34,08)
des.monster(monster[5],27,09)
des.monster(monster[6],30,09)
des.monster(monster[7],33,09)
des.monster(monster[8],36,09)
des.monster(monster[9],28,10)
des.monster(monster[10],31,10)
des.monster(monster[1],34,10)
des.monster(monster[2],37,10)
des.monster(monster[3],27,11)
des.monster(monster[4],30,11)
des.monster(monster[5],33,11)
des.monster(monster[6],36,11)
-- MazeWalks
des.mazewalk(00,10,"west")
des.mazewalk(62,06,"east")
-- Non diggable walls
des.non_diggable(selection.area(00,00,62,16))
-- Subrooms:
-- Entire castle area
des.region(selection.area(00,00,62,16),"unlit")
-- Courtyards
des.region(selection.area(00,05,05,11),"lit")
des.region(selection.area(57,05,62,11),"lit")
-- Throne room
des.region({ region={27,05, 37,11},lit=1,type="throne", prefilled=1 })
-- Antechamber
des.region(selection.area(07,05,14,11),"lit")
-- Storerooms
des.region(selection.area(39,05,45,06),"lit")
des.region(selection.area(39,10,45,11),"lit")
des.region(selection.area(49,05,55,06),"lit")
des.region(selection.area(49,10,55,11),"lit")
-- Corners
des.region(selection.area(02,02,06,03),"lit")
des.region(selection.area(56,02,60,03),"lit")
des.region(selection.area(02,13,06,14),"lit")
des.region(selection.area(56,13,60,14),"lit")
-- Barracks
des.region({ region={16,05, 25,06},lit=1,type="barracks", prefilled=0 })
des.region({ region={16,10, 25,11},lit=1,type="barracks", prefilled=0 })
-- Hallways
des.region(selection.area(08,03,54,03),"unlit")
des.region(selection.area(08,13,54,13),"unlit")
des.region(selection.area(16,08,25,08),"unlit")
des.region(selection.area(39,08,55,08),"unlit")
-- Storeroom alcoves
des.region(selection.area(47,05,47,06),"unlit")
des.region(selection.area(47,10,47,11),"unlit")

130
dat/earth.lua Normal file
View File

@@ -0,0 +1,130 @@
-- NetHack 3.6 endgame.des $NHDT-Date: 1546303680 2019/01/01 00:48:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.14 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992,1993 by Izchak Miller, David Cohrs,
-- and Timo Hakulinen
-- NetHack may be freely redistributed. See license for details.
--
--
-- These are the ENDGAME levels: earth, air, fire, water, and astral.
-- The top-most level, the Astral Level, has 3 temples and shrines.
-- Players are supposed to sacrifice the Amulet of Yendor on the appropriate
-- shrine.
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor", "shortsighted")
des.message("Well done, mortal!")
des.message("But now thou must face the final Test...")
des.message("Prove thyself worthy or perish!")
-- The player lands, upon arrival, in the
-- lower-right cavern. The location of the
-- portal to the next level is randomly chosen.
-- This map has no visible outer boundary, and
-- is mostly diggable "rock".
des.map([[
...
.... ..
..... ... ..
.... .... ...
.... ... .... ... .
.. .. ....... . ..
.. ... .
. .. . ...
.. .. . .. .
.. ... .
... ...
.. ... ..
.... ..
.. ...
.. .....
... ...
....
..
]]);
des.replace_terrain({ region={0,0, 75,19}, fromterrain=" ", toterrain=".", lit=0, chance=5 })
-- Since there are no stairs, this forces the hero's initial placement
des.teleport_region({region = {69,16,69,16} })
des.levregion({ region = {0,0,75,19}, exclude = {65,13,75,19}, type="portal", name="air" })
-- Some helpful monsters. Making sure a
-- pick axe and at least one wand of digging
-- are available.
des.monster("Elvenking", 67,16)
des.monster("minotaur", 67,14)
-- An assortment of earth-appropriate nasties
-- in each cavern.
des.monster({ id = "earth elemental", x = 52, y = 13, peaceful = 0 })
des.monster({ id = "earth elemental", x = 53, y = 13, peaceful = 0 })
des.monster("rock troll", 53,12)
des.monster("stone giant", 54,12)
--
des.monster("pit viper", 70,05)
des.monster("barbed devil", 69,06)
des.monster("stone giant", 69,08)
des.monster("stone golem", 71,08)
des.monster("pit fiend", 70,09)
des.monster({ id = "earth elemental", x = 70, y = 08, peaceful = 0 })
--
des.monster({ id = "earth elemental", x = 60, y = 03, peaceful = 0 })
des.monster("stone giant", 61,04)
des.monster({ id = "earth elemental", x = 62, y = 04, peaceful = 0 })
des.monster({ id = "earth elemental", x = 61, y = 05, peaceful = 0 })
des.monster("scorpion", 62,05)
des.monster("rock piercer", 63,05)
--
des.monster("umber hulk", 40,05)
des.monster("dust vortex", 42,05)
des.monster("rock troll", 38,06)
des.monster({ id = "earth elemental", x = 39, y = 06, peaceful = 0 })
des.monster({ id = "earth elemental", x = 41, y = 06, peaceful = 0 })
des.monster({ id = "earth elemental", x = 38, y = 07, peaceful = 0 })
des.monster("stone giant", 39,07)
des.monster({ id = "earth elemental", x = 43, y = 07, peaceful = 0 })
des.monster("stone golem", 37,08)
des.monster("pit viper", 43,08)
des.monster("pit viper", 43,09)
des.monster("rock troll", 44,10)
--
des.monster({ id = "earth elemental", x = 02, y = 01, peaceful = 0 })
des.monster({ id = "earth elemental", x = 03, y = 01, peaceful = 0 })
des.monster("stone golem", 01,02)
des.monster({ id = "earth elemental", x = 02, y = 02, peaceful = 0 })
des.monster("rock troll", 04,03)
des.monster("rock troll", 03,03)
des.monster("pit fiend", 03,04)
des.monster({ id = "earth elemental", x = 04, y = 05, peaceful = 0 })
des.monster("pit viper", 05,06)
--
des.monster({ id = "earth elemental", x = 21, y = 02, peaceful = 0 })
des.monster({ id = "earth elemental", x = 21, y = 03, peaceful = 0 })
des.monster("minotaur", 21,04)
des.monster({ id = "earth elemental", x = 21, y = 05, peaceful = 0 })
des.monster("rock troll", 22,05)
des.monster({ id = "earth elemental", x = 22, y = 06, peaceful = 0 })
des.monster({ id = "earth elemental", x = 23, y = 06, peaceful = 0 })
--
des.monster("pit viper", 14,08)
des.monster("barbed devil", 14,09)
des.monster({ id = "earth elemental", x = 13, y = 10, peaceful = 0 })
des.monster("rock troll", 12,11)
des.monster({ id = "earth elemental", x = 14, y = 12, peaceful = 0 })
des.monster({ id = "earth elemental", x = 15, y = 13, peaceful = 0 })
des.monster("stone giant", 17,13)
des.monster("stone golem", 18,13)
des.monster("pit fiend", 18,12)
des.monster({ id = "earth elemental", x = 18, y = 11, peaceful = 0 })
des.monster({ id = "earth elemental", x = 18, y = 10, peaceful = 0 })
--
des.monster("barbed devil", 02,16)
des.monster({ id = "earth elemental", x = 03, y = 16, peaceful = 0 })
des.monster("rock troll", 02,17)
des.monster({ id = "earth elemental", x = 04, y = 17, peaceful = 0 })
des.monster({ id = "earth elemental", x = 04, y = 18, peaceful = 0 })
des.object("boulder")

View File

@@ -1,655 +0,0 @@
# NetHack 3.6 endgame.des $NHDT-Date: 1546303680 2019/01/01 00:48:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.14 $
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1992,1993 by Izchak Miller, David Cohrs,
# and Timo Hakulinen
# NetHack may be freely redistributed. See license for details.
#
# These are the ENDGAME levels: earth, air, fire, water, and astral.
# The top-most level, the Astral Level, has 3 temples and shrines.
# Players are supposed to sacrifice the Amulet of Yendor on the appropriate
# shrine.
MAZE:"earth",' '
FLAGS: noteleport,hardfloor,shortsighted
MESSAGE: "Well done, mortal!"
MESSAGE: "But now thou must face the final Test..."
MESSAGE: "Prove thyself worthy or perish!"
GEOMETRY:center,center
# The player lands, upon arrival, in the
# lower-right cavern. The location of the
# portal to the next level is randomly chosen.
# This map has no visible outer boundary, and
# is mostly diggable "rock".
MAP
...
.... ..
..... ... ..
.... .... ...
.... ... .... ... .
.. .. ....... . ..
.. ... .
. .. . ...
.. .. . .. .
.. ... .
... ...
.. ... ..
.... ..
.. ...
.. .....
... ...
....
..
ENDMAP
REPLACE_TERRAIN:(0,0,75,19), ' ', ('.', unlit), 5%
# Since there are no stairs, this forces the hero's initial placement
TELEPORT_REGION:(69,16,69,16),(0,0,0,0)
PORTAL:(0,0,75,19),(65,13,75,19),"air"
# Some helpful monsters. Making sure a
# pick axe and at least one wand of digging
# are available.
MONSTER:('@',"Elvenking"),(67,16)
MONSTER:('H',"minotaur"),(67,14)
# An assortment of earth-appropriate nasties
# in each cavern.
MONSTER:('E',"earth elemental"),(52,13),hostile
MONSTER:('E',"earth elemental"),(53,13),hostile
MONSTER:('T',"rock troll"),(53,12)
MONSTER:('H',"stone giant"),(54,12)
#
MONSTER:('S',"pit viper"),(70,05)
MONSTER:('&',"barbed devil"),(69,06)
MONSTER:('H',"stone giant"),(69,08)
MONSTER:(''',"stone golem"),(71,08)
MONSTER:('&',"pit fiend"),(70,09)
MONSTER:('E',"earth elemental"),(70,08),hostile
#
MONSTER:('E',"earth elemental"),(60,03),hostile
MONSTER:('H',"stone giant"),(61,04)
MONSTER:('E',"earth elemental"),(62,04),hostile
MONSTER:('E',"earth elemental"),(61,05),hostile
MONSTER:('s',"scorpion"),(62,05)
MONSTER:('p',"rock piercer"),(63,05)
#
MONSTER:('U',"umber hulk"),(40,05)
MONSTER:('v',"dust vortex"),(42,05)
MONSTER:('T',"rock troll"),(38,06)
MONSTER:('E',"earth elemental"),(39,06),hostile
MONSTER:('E',"earth elemental"),(41,06),hostile
MONSTER:('E',"earth elemental"),(38,07),hostile
MONSTER:('H',"stone giant"),(39,07)
MONSTER:('E',"earth elemental"),(43,07),hostile
MONSTER:(''',"stone golem"),(37,08)
MONSTER:('S',"pit viper"),(43,08)
MONSTER:('S',"pit viper"),(43,09)
MONSTER:('T',"rock troll"),(44,10)
#
MONSTER:('E',"earth elemental"),(02,01),hostile
MONSTER:('E',"earth elemental"),(03,01),hostile
MONSTER:(''',"stone golem"),(01,02)
MONSTER:('E',"earth elemental"),(02,02),hostile
MONSTER:('T',"rock troll"),(04,03)
MONSTER:('T',"rock troll"),(03,03)
MONSTER:('&',"pit fiend"),(03,04)
MONSTER:('E',"earth elemental"),(04,05),hostile
MONSTER:('S',"pit viper"),(05,06)
#
MONSTER:('E',"earth elemental"),(21,02),hostile
MONSTER:('E',"earth elemental"),(21,03),hostile
MONSTER:('H',"minotaur"),(21,04)
MONSTER:('E',"earth elemental"),(21,05),hostile
MONSTER:('T',"rock troll"),(22,05)
MONSTER:('E',"earth elemental"),(22,06),hostile
MONSTER:('E',"earth elemental"),(23,06),hostile
#
MONSTER:('S',"pit viper"),(14,08)
MONSTER:('&',"barbed devil"),(14,09)
MONSTER:('E',"earth elemental"),(13,10),hostile
MONSTER:('T',"rock troll"),(12,11)
MONSTER:('E',"earth elemental"),(14,12),hostile
MONSTER:('E',"earth elemental"),(15,13),hostile
MONSTER:('H',"stone giant"),(17,13)
MONSTER:(''',"stone golem"),(18,13)
MONSTER:('&',"pit fiend"),(18,12)
MONSTER:('E',"earth elemental"),(18,11),hostile
MONSTER:('E',"earth elemental"),(18,10),hostile
#
MONSTER:('&',"barbed devil"),(02,16)
MONSTER:('E',"earth elemental"),(03,16),hostile
MONSTER:('T',"rock troll"),(02,17)
MONSTER:('E',"earth elemental"),(04,17),hostile
MONSTER:('E',"earth elemental"),(04,18),hostile
OBJECT:('`',"boulder"),random
MAZE:"air",' '
FLAGS: noteleport,hardfloor,shortsighted
# The following messages are somewhat obtuse, to make then
# equally meaningful if the player can see or not.
MESSAGE: "What a strange feeling!"
MESSAGE: "You notice that there is no gravity here."
GEOMETRY:center,center
# The player lands, upon arrival, in the
# lower-left area. The location of the
# portal to the next level is randomly chosen.
# This map has no visible outer boundary, and
# is all "air".
MAP
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ENDMAP
# Use up and down regions to partition the level into three parts;
# teleportation can't cross from one part into another.
# The up region is where you'll arrive after activating the portal from
# the preceding level; the exit portal is placed inside the down region.
TELEPORT_REGION:levregion(01,00,24,20),levregion(25,00,79,20),up
TELEPORT_REGION:levregion(56,00,79,20),levregion(01,00,55,20),down
PORTAL:levregion(57,01,78,19),(0,0,0,0),"fire"
REGION:(00,00,75,19),lit,"ordinary"
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('E',"air elemental"),random,hostile
MONSTER:('e',"floating eye"),random,hostile
MONSTER:('e',"floating eye"),random,hostile
MONSTER:('e',"floating eye"),random,hostile
MONSTER:('y',"yellow light"),random,hostile
MONSTER:('y',"yellow light"),random,hostile
MONSTER:('y',"yellow light"),random,hostile
MONSTER:('A',"couatl"),random
MONSTER:'D',random
MONSTER:'D',random
MONSTER:'D',random
MONSTER:'D',random
MONSTER:'D',random
MONSTER:'E',random
MONSTER:'E',random
MONSTER:'E',random
MONSTER:'J',random
MONSTER:'J',random
MONSTER:('&',"djinni"),random,hostile
MONSTER:('&',"djinni"),random,hostile
MONSTER:('&',"djinni"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"fog cloud"),random,hostile
MONSTER:('v',"energy vortex"),random,hostile
MONSTER:('v',"energy vortex"),random,hostile
MONSTER:('v',"energy vortex"),random,hostile
MONSTER:('v',"energy vortex"),random,hostile
MONSTER:('v',"energy vortex"),random,hostile
MONSTER:('v',"steam vortex"),random,hostile
MONSTER:('v',"steam vortex"),random,hostile
MONSTER:('v',"steam vortex"),random,hostile
MONSTER:('v',"steam vortex"),random,hostile
MONSTER:('v',"steam vortex"),random,hostile
MAZE:"fire",' '
FLAGS: noteleport,hardfloor,shortsighted
GEOMETRY:center,center
# The player lands, upon arrival, in the
# lower-right. The location of the
# portal to the next level is randomly chosen.
# This map has no visible outer boundary, and
# is mostly open area, with lava lakes and bunches of fire traps.
MAP
............................................................................
....LLLLLLLL............L.......................LLL.........................
...LL...................L......................LLLL................LL.......
...L.............LLLL...LL....LL...............LLLLL.............LLL........
.LLLL..............LL....L.....LLL..............LLLL..............LLLL......
..........LLLL...LLLL...LLL....LLL......L........LLLL....LL........LLL......
........LLLLLLL...LL.....L......L......LL.........LL......LL........LL...L..
........LL..LLL..LL......LL......LLLL..L.........LL......LLL............LL..
....L..LL....LLLLL.................LLLLLLL.......L......LL............LLLLLL
....L..L.....LL.LLLL.......L............L........LLLLL.LL......LL.........LL
....LL........L...LL......LL.............LLL.....L...LLL.......LLL.........L
.....LLLLLL........L.......LLL.............L....LL...L.LLL......LLLLLLL.....
..........LLLL............LL.L.............L....L...LL.........LLL..LLL.....
...........................LLLLL...........LL...L...L........LLLL..LLLLLL...
.....LLLL.............LL....LL.......LLL...LL.......L..LLL....LLLLLLL.......
.......LLL.........LLLLLLLLLLL......LLLLL...L...........LL...LL...LL........
.........LL.......LL.........LL.......LLL....L..LLL....LL.........LL........
..........LLLLLLLLL...........LL....LLL.......LLLLL.....LL........LL........
.................L.............LLLLLL............LL...LLLL.........LL.......
.................................LL....................LL...................
ENDMAP
TELEPORT_REGION:(69,16,69,16),(0,0,0,0)
PORTAL:(0,0,75,19),(65,13,75,19),"water"
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
TRAP:"fire",random
# An assortment of fire-appropriate nasties
MONSTER:('D',"red dragon"),random
MONSTER:('&',"balrog"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('v',"fire vortex"),random
MONSTER:('d',"hell hound"),random
#
MONSTER:('H',"fire giant"),random
MONSTER:('&',"barbed devil"),random
MONSTER:('d',"hell hound"),random
MONSTER:(''',"stone golem"),random
MONSTER:('&',"pit fiend"),random
MONSTER:('E',"fire elemental"),random,hostile
#
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('d',"hell hound"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('s',"scorpion"),random
MONSTER:('H',"fire giant"),random
#
MONSTER:('d',"hell hound"),random
MONSTER:('v',"dust vortex"),random
MONSTER:('v',"fire vortex"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('d',"hell hound"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:(''',"stone golem"),random
MONSTER:('S',"pit viper"),random
MONSTER:('S',"pit viper"),random
MONSTER:('v',"fire vortex"),random
#
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('H',"fire giant"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('v',"fire vortex"),random
MONSTER:('v',"fire vortex"),random
MONSTER:('&',"pit fiend"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('S',"pit viper"),random
#
MONSTER:(':',"salamander"),random,hostile
MONSTER:(':',"salamander"),random,hostile
MONSTER:('H',"minotaur"),random
MONSTER:(':',"salamander"),random,hostile
MONSTER:('v',"steam vortex"),random
MONSTER:(':',"salamander"),random,hostile
MONSTER:(':',"salamander"),random,hostile
#
MONSTER:('H',"fire giant"),random
MONSTER:('&',"barbed devil"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('v',"fire vortex"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('d',"hell hound"),random
MONSTER:('H',"fire giant"),random
MONSTER:('&',"pit fiend"),random
MONSTER:('E',"fire elemental"),random,hostile
MONSTER:('E',"fire elemental"),random,hostile
#
MONSTER:('&',"barbed devil"),random
MONSTER:(':',"salamander"),random,hostile
MONSTER:('v',"steam vortex"),random
MONSTER:(':',"salamander"),random,hostile
MONSTER:(':',"salamander"),random,hostile
OBJECT:('`',"boulder"),random
OBJECT:('`',"boulder"),random
OBJECT:('`',"boulder"),random
OBJECT:('`',"boulder"),random
OBJECT:('`',"boulder"),random
MAZE:"water",' '
FLAGS: noteleport,hardfloor,shortsighted
MESSAGE: "You find yourself suspended in an air bubble surrounded by water."
GEOMETRY:center,center
# The player lands upon arrival to an air bubble
# within the leftmost third of the level. The
# portal to the next level is randomly located in an air
# bubble within the rightmost third of the level.
# Bubbles are generated by special code in mkmaze.c for now.
MAP
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
ENDMAP
TELEPORT_REGION:(0,0,25,19),(0,0,0,0)
PORTAL:(51,0,75,19),(0,0,0,0),"astral"
# A fisherman's dream...
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"giant eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"electric eel"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"kraken"),random
MONSTER:(';',"shark"),random
MONSTER:(';',"shark"),random
MONSTER:(';',"shark"),random
MONSTER:(';',"shark"),random
MONSTER:(';',"piranha"),random
MONSTER:(';',"piranha"),random
MONSTER:(';',"piranha"),random
MONSTER:(';',"piranha"),random
MONSTER:(';',"jellyfish"),random
MONSTER:(';',"jellyfish"),random
MONSTER:(';',"jellyfish"),random
MONSTER:(';',"jellyfish"),random
MONSTER:';',random
MONSTER:';',random
MONSTER:';',random
MONSTER:';',random
# These guys feel like home here
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MONSTER:('E',"water elemental"),random,hostile
MAZE:"astral",' '
FLAGS: noteleport,hardfloor,nommap,shortsighted,solidify
MESSAGE: "You arrive on the Astral Plane!"
MESSAGE: "Here the High Temple of %d is located."
MESSAGE: "You sense alarm, hostility, and excitement in the air!"
GEOMETRY:center,center
MAP
---------------
|.............|
|..---------..|
|..|.......|..|
--------------- |..|.......|..| ---------------
|.............| |..|.......|..| |.............|
|..---------..-| |-------| |..|.......|..| |-------| |-..---------..|
|..|.......|...-| |-.......-| |..|.......|..| |-.......-| |-...|.......|..|
|..|.......|....-|-.........-||..----+----..||-.........-|-....|.......|..|
|..|.......+.....+...........||.............||...........+.....+.......|..|
|..|.......|....-|-.........-|--|.........|--|-.........-|-....|.......|..|
|..|.......|...-| |-.......-| -|---+---|- |-.......-| |-...|.......|..|
|..---------..-| |---+---| |-.......-| |---+---| |-..---------..|
|.............| |...|-----|-.........-|-----|...| |.............|
--------------- |.........|...........|.........| ---------------
-------...|-.........-|...-------
|....|-.......-|....|
---...|---+---|...---
|...............|
-----------------
ENDMAP
# chance to alter above map and turn the wings of the bottom-center into
# a pair of big (5x15) rooms
$loopindx = 0
LOOP [2] {
$loopindx = $loopindx + 1
# 3.6.[01]: 75% chance that both sides opened up, 25% that neither did;
# 3.6.2: 60% twice == 36% chance that both sides open up, 24% left side
# only, 24% right side only, 16% that neither side opens up
IF [60%] {
IF [$loopindx == 1] {
TERRAIN:fillrect (17,14, 30,18),'.'
WALLIFY
# temporarily close off the area to be filled so that it doesn't cover
# the entire entry area
TERRAIN:(33,18), '|'
$hall = selection:floodfill(30,16)
# re-connect the opened wing with the rest of the map
TERRAIN:(33,18), '.'
} ELSE {
TERRAIN:fillrect (44,14, 57,18),'.'
WALLIFY
TERRAIN:(41,18), '|'
$hall = selection:floodfill(44,16)
TERRAIN:(41,18), '.'
}
# extra monsters; was [6 + 3d4] when both wings were opened up at once
LOOP [3 + 2d3] {
MONSTER:('A',"Angel"),rndcoord($hall),noalign,hostile
[50%]: MONSTER:random,rndcoord($hall),hostile
}
}
}
# Rider locations
$place = { (23,9),(37,14),(51,9) }
SHUFFLE: $place
# Where the player will land on arrival
TELEPORT_REGION:(29,15,45,15),(30,15,44,15)
# Lit courts
REGION:(01,05,16,14),lit,"ordinary",filled,irregular
REGION:(31,01,44,10),lit,"ordinary",filled,irregular
REGION:(61,05,74,14),lit,"ordinary",filled,irregular
# A Sanctum for each alignment
# The shrines' alignments are shuffled for
# each game
REGION:(04,07,10,11),lit,"temple"
REGION:(34,03,40,07),lit,"temple"
REGION:(64,07,70,11),lit,"temple"
ALTAR:(07,09),align[0],sanctum
ALTAR:(37,05),align[1],sanctum
ALTAR:(67,09),align[2],sanctum
# Doors
DOOR:closed,(11,09)
DOOR:closed,(17,09)
DOOR:locked,(23,12)
DOOR:locked,(37,08)
DOOR:closed,(37,11)
DOOR:closed,(37,17)
DOOR:locked,(51,12)
DOOR:locked,(57,09)
DOOR:closed,(63,09)
# Non diggable and phazeable everywhere
NON_DIGGABLE:(00,00,74,19)
NON_PASSWALL:(00,00,74,19)
# Moloch's horde
# West round room
MONSTER:('@',"aligned priest"),(18,09),noalign,hostile
MONSTER:('@',"aligned priest"),(19,08),noalign,hostile
MONSTER:('@',"aligned priest"),(19,09),noalign,hostile
MONSTER:('@',"aligned priest"),(19,10),noalign,hostile
MONSTER:('A',"Angel"),(20,09),noalign,hostile
MONSTER:('A',"Angel"),(20,10),noalign,hostile
MONSTER:('&',"Pestilence"),$place[0],hostile
# South-central round room
MONSTER:('@',"aligned priest"),(36,12),noalign,hostile
MONSTER:('@',"aligned priest"),(37,12),noalign,hostile
MONSTER:('@',"aligned priest"),(38,12),noalign,hostile
MONSTER:('@',"aligned priest"),(36,13),noalign,hostile
MONSTER:('A',"Angel"),(38,13),noalign,hostile
MONSTER:('A',"Angel"),(37,13),noalign,hostile
MONSTER:('&',"Death"),$place[1],hostile
# East round room
MONSTER:('@',"aligned priest"),(56,09),noalign,hostile
MONSTER:('@',"aligned priest"),(55,08),noalign,hostile
MONSTER:('@',"aligned priest"),(55,09),noalign,hostile
MONSTER:('@',"aligned priest"),(55,10),noalign,hostile
MONSTER:('A',"Angel"),(54,09),noalign,hostile
MONSTER:('A',"Angel"),(54,10),noalign,hostile
MONSTER:('&',"Famine"),$place[2],hostile
#
# The aligned horde
#
# We do not know in advance the alignment of the
# player. The mpeaceful bit will need resetting
# when the level is created. The setting here is
# but a place holder.
#
# West court
MONSTER:('@',"aligned priest"),(12,07),chaos,hostile
MONSTER:('@',"aligned priest"),(13,07),chaos,peaceful
MONSTER:('@',"aligned priest"),(14,07),law,hostile
MONSTER:('@',"aligned priest"),(12,11),law,peaceful
MONSTER:('@',"aligned priest"),(13,11),neutral,hostile
MONSTER:('@',"aligned priest"),(14,11),neutral,peaceful
MONSTER:('A',"Angel"),(11,05),chaos,hostile
MONSTER:('A',"Angel"),(12,05),chaos,peaceful
MONSTER:('A',"Angel"),(13,05),law,hostile
MONSTER:('A',"Angel"),(11,13),law,peaceful
MONSTER:('A',"Angel"),(12,13),neutral,hostile
MONSTER:('A',"Angel"),(13,13),neutral,peaceful
# Central court
MONSTER:('@',"aligned priest"),(32,09),chaos,hostile
MONSTER:('@',"aligned priest"),(33,09),chaos,peaceful
MONSTER:('@',"aligned priest"),(34,09),law,hostile
MONSTER:('@',"aligned priest"),(40,09),law,peaceful
MONSTER:('@',"aligned priest"),(41,09),neutral,hostile
MONSTER:('@',"aligned priest"),(42,09),neutral,peaceful
MONSTER:('A',"Angel"),(31,08),chaos,hostile
MONSTER:('A',"Angel"),(32,08),chaos,peaceful
MONSTER:('A',"Angel"),(31,09),law,hostile
MONSTER:('A',"Angel"),(42,08),law,peaceful
MONSTER:('A',"Angel"),(43,08),neutral,hostile
MONSTER:('A',"Angel"),(43,09),neutral,peaceful
# East court
MONSTER:('@',"aligned priest"),(60,07),chaos,hostile
MONSTER:('@',"aligned priest"),(61,07),chaos,peaceful
MONSTER:('@',"aligned priest"),(62,07),law,hostile
MONSTER:('@',"aligned priest"),(60,11),law,peaceful
MONSTER:('@',"aligned priest"),(61,11),neutral,hostile
MONSTER:('@',"aligned priest"),(62,11),neutral,peaceful
MONSTER:('A',"Angel"),(61,05),chaos,hostile
MONSTER:('A',"Angel"),(62,05),chaos,peaceful
MONSTER:('A',"Angel"),(63,05),law,hostile
MONSTER:('A',"Angel"),(61,13),law,peaceful
MONSTER:('A',"Angel"),(62,13),neutral,hostile
MONSTER:('A',"Angel"),(63,13),neutral,peaceful
#
# Assorted nasties
MONSTER:'L',random,hostile
MONSTER:'L',random,hostile
MONSTER:'L',random,hostile
MONSTER:'V',random,hostile
MONSTER:'V',random,hostile
MONSTER:'V',random,hostile
MONSTER:'D',random,hostile
MONSTER:'D',random,hostile
MONSTER:'D',random,hostile

35
dat/fakewiz1.lua Normal file
View File

@@ -0,0 +1,35 @@
-- NetHack 3.6 yendor.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992 by M. Stephenson and Izchak Miller
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style="mazegrid", bg ="-" });
des.level_flags("mazelevel");
des.map([[
.........
.}}}}}}}.
.}}---}}.
.}--.--}.
.}|...|}.
.}--.--}.
.}}---}}.
.}}}}}}}.
]]);
des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,7}, type="stair-up" })
des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,7}, type="stair-down" })
des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,7}, type="branch" });
des.teleport_region({ region={01,00,79,20}, region_islev=1,exclude={2,2,6,6} })
des.levregion({ region={4,4,4,4}, type="portal", name="wizard3" })
des.mazewalk(08,05,"east")
des.region({ region={04,03,06,06},lit=0,type="ordinary",prefilled=0,irregular=1 })
des.monster("L",04,04)
des.monster("vampire lord",03,04)
des.monster("kraken",06,06)
-- And to make things a little harder.
des.trap("board",04,03)
des.trap("board",04,05)
des.trap("board",03,04)
des.trap("board",05,04)

35
dat/fakewiz2.lua Normal file
View File

@@ -0,0 +1,35 @@
-- NetHack 3.6 yendor.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992 by M. Stephenson and Izchak Miller
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style="mazegrid", bg ="-" });
des.level_flags("mazelevel");
des.map([[
.........
.}}}}}}}.
.}}---}}.
.}--.--}.
.}|...|}.
.}--.--}.
.}}---}}.
.}}}}}}}.
]]);
des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,7}, type="stair-up" })
des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,7}, type="stair-down" })
des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,7}, type="branch" });
des.teleport_region({ region={01,00,79,20}, region_islev=1,exclude={2,2,6,6} })
des.mazewalk(08,05,"east")
des.region({ region={04,03,06,06},lit=0,type="ordinary",prefilled=0,irregular=1 })
des.monster("L",04,04)
des.monster("vampire lord",03,04)
des.monster("kraken",06,06)
-- And to make things a little harder.
des.trap("board",04,03)
des.trap("board",04,05)
des.trap("board",03,04)
des.trap("board",05,04)
-- treasures
des.object("\"",04,04)

156
dat/fire.lua Normal file
View File

@@ -0,0 +1,156 @@
-- NetHack 3.6 endgame.des $NHDT-Date: 1546303680 2019/01/01 00:48:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.14 $
-- Copyright (c) 1989 by Jean-Christophe Collet
-- Copyright (c) 1992,1993 by Izchak Miller, David Cohrs,
-- and Timo Hakulinen
-- NetHack may be freely redistributed. See license for details.
--
des.level_init({ style = "solidfill", fg = " " });
des.level_flags("mazelevel", "noteleport", "hardfloor", "shortsighted")
-- The player lands, upon arrival, in the
-- lower-right. The location of the
-- portal to the next level is randomly chosen.
-- This map has no visible outer boundary, and
-- is mostly open area, with lava lakes and bunches of fire traps.
des.map([[
............................................................................
....LLLLLLLL............L.......................LLL.........................
...LL...................L......................LLLL................LL.......
...L.............LLLL...LL....LL...............LLLLL.............LLL........
.LLLL..............LL....L.....LLL..............LLLL..............LLLL......
..........LLLL...LLLL...LLL....LLL......L........LLLL....LL........LLL......
........LLLLLLL...LL.....L......L......LL.........LL......LL........LL...L..
........LL..LLL..LL......LL......LLLL..L.........LL......LLL............LL..
....L..LL....LLLLL.................LLLLLLL.......L......LL............LLLLLL
....L..L.....LL.LLLL.......L............L........LLLLL.LL......LL.........LL
....LL........L...LL......LL.............LLL.....L...LLL.......LLL.........L
.....LLLLLL........L.......LLL.............L....LL...L.LLL......LLLLLLL.....
..........LLLL............LL.L.............L....L...LL.........LLL..LLL.....
...........................LLLLL...........LL...L...L........LLLL..LLLLLL...
.....LLLL.............LL....LL.......LLL...LL.......L..LLL....LLLLLLL.......
.......LLL.........LLLLLLLLLLL......LLLLL...L...........LL...LL...LL........
.........LL.......LL.........LL.......LLL....L..LLL....LL.........LL........
..........LLLLLLLLL...........LL....LLL.......LLLLL.....LL........LL........
.................L.............LLLLLL............LL...LLLL.........LL.......
.................................LL....................LL...................
]]);
des.teleport_region({ region = {69,16,69,16} })
des.levregion({ region = {0,0,75,19}, exclude = {65,13,75,19}, type="portal", name="water" })
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
des.trap("fire")
-- An assortment of fire-appropriate nasties
des.monster("red dragon")
des.monster("balrog")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("fire vortex")
des.monster("hell hound")
--
des.monster("fire giant")
des.monster("barbed devil")
des.monster("hell hound")
des.monster("stone golem")
des.monster("pit fiend")
des.monster({ id = "fire elemental", peaceful = 0 })
--
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("hell hound")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("scorpion")
des.monster("fire giant")
--
des.monster("hell hound")
des.monster("dust vortex")
des.monster("fire vortex")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("hell hound")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("stone golem")
des.monster("pit viper")
des.monster("pit viper")
des.monster("fire vortex")
--
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("fire giant")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("fire vortex")
des.monster("fire vortex")
des.monster("pit fiend")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("pit viper")
--
des.monster({ id = "salamander", peaceful = 0 })
des.monster({ id = "salamander", peaceful = 0 })
des.monster("minotaur")
des.monster({ id = "salamander", peaceful = 0 })
des.monster("steam vortex")
des.monster({ id = "salamander", peaceful = 0 })
des.monster({ id = "salamander", peaceful = 0 })
--
des.monster("fire giant")
des.monster("barbed devil")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("fire vortex")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster("hell hound")
des.monster("fire giant")
des.monster("pit fiend")
des.monster({ id = "fire elemental", peaceful = 0 })
des.monster({ id = "fire elemental", peaceful = 0 })
--
des.monster("barbed devil")
des.monster({ id = "salamander", peaceful = 0 })
des.monster("steam vortex")
des.monster({ id = "salamander", peaceful = 0 })
des.monster({ id = "salamander", peaceful = 0 })
des.object("boulder")
des.object("boulder")
des.object("boulder")
des.object("boulder")
des.object("boulder")

Some files were not shown because too many files have changed in this diff Show More