Merge branch 'NetHack-3.7' into copperwater-hallutraps-3.7

This commit is contained in:
nhmall
2019-12-19 18:32:53 -05:00
584 changed files with 43065 additions and 64400 deletions

27
.gitignore vendored
View File

@@ -37,6 +37,7 @@ Release/
binary/
build/
ipch/
lib/
Nethack.sln
Nethack.sdf
Nethack.opensdf
@@ -54,3 +55,29 @@ Makefile.gcc-orig
.vs
# Win32-specific ignores end
.DS_Store
# ms-dos
# resulting zip
NH*DOS.ZIP
# 8.3 versions
dat/data.bas
sys/share/posixreg.c
include/patchlev.h
doc/guidebk.txt
# folders compiler, target objs, binary results
djgpp/
src/msdos_o/
msdos-binary/
dat/NHTILES.BMP
dat/msdoshlp.txt
src/host_o/
util/djgpp-linux64-gcc550.tar.bz2
util/djgpp-osx-gcc550.tar.bz2
util/djgpp-mingw-gcc550-standalone.zip
util/dlb_main
util/thintile
util/til2bin2
util/tile2bin
win/share/monthin.txt
win/share/objthin.txt
win/share/oththin.txt
# end of ms-dos

View File

@@ -4,11 +4,11 @@ matrix:
- os: linux
env: DESCR=linux-xenial-gcc HINTS=linux
compiler: gcc
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make install"
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make fetch-lua && make install"
- os: linux
env: DESCR=linux-xenial-clang HINTS=linux
compiler: clang
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make install"
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make fetch-lua && make install"
- os: linux
env: DESCR=linux-xenial-gcc-x11 HINTS=linux-x11
compiler: gcc
@@ -18,7 +18,7 @@ matrix:
- libx11-dev
- libxaw7-dev
- xfonts-utils
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make install"
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make fetch-lua && make install"
- os: linux
env: DESCR=linux-xenial-gcc-qt5 HINTS=linux-qt5
compiler: gcc
@@ -31,7 +31,7 @@ matrix:
- qtbase5-dev
- qtmultimedia5-dev
- qtbase5-dev-tools
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && QT_SELECT=5 make MOC=moc install"
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make fetch-lua && make QT_SELECT=5 MOC=moc install"
- os: linux
env: DESCR=linux-bionic-gcc-x11 HINTS=linux-x11
dist: bionic
@@ -42,7 +42,7 @@ matrix:
- libx11-dev
- libxaw7-dev
- xfonts-utils
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make install"
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make fetch-lua && make install"
- os: linux
env: DESCR=linux-xenial-gcc-minimal HINTS=linux-minimal
compiler: gcc
@@ -67,46 +67,23 @@ matrix:
sed -i '/^#define SHELL/d' include/unixconf.h
sed -i '/^#define SUSPEND/d' include/unixconf.h
sed -i 's/^#define TEXTCOLOR//' include/unixconf.h
make install
make fetch-lua && make install
cat dat/options
- os: windows
env: DESCR=windows-visualstudio
language: shell
script:
# - find /c/Program\ Files\ \(x86\) -iname 'rc.exe' -print
# - export
- export VSVER=2017
- export MSVER=14.16.27023
- export SDKVER=10.0.17763.0
- export FRAMEVER=4.0.30319
- export NETFXVER=4.6.1
- export WKITVER=10.0.17134.0
# - export TOOLSVER=Community
- export TOOLSVER=BuildTools
- export PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/Common7/IDE/VC/VCPackages:$PATH
- export PATH=/c/Program\ Files\ \(x86\)/Windows\ Kits/10/bin/$WKITVER/x64:$PATH
- export PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/VC/Tools/MSVC/$MSVER/bin/HostX64/x64:$PATH
- export PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/VC/Tools/MSVC/$MSVER/bin/HostX64/x86:$PATH
- export PATH=$PATH:/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/Common7/IDE/CommonExtensions/Microsoft/TestWindow
- export PATH=$PATH:/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/MSBuild/Current/bin/Roslyn
- export INCLUDE=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/$TOOLSVER/VC/Tools/MSVC/$MSVER/include
- export INCLUDE=$INCLUDE:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/Include/$WKITVER/ucrt
- export INCLUDE=$INCLUDE:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/$WKITVER/ucrt
- export INCLUDE=$INCLUDE:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/$WKITVER/shared
- export INCLUDE=$INCLUDE:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/$WKITVER/um
- export INCLUDE=$INCLUDE:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/$WKITVER/winrt
- export INCLUDE=$INCLUDE:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/$WKITVER/cppwinrt
- export LIB=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/VC/Tools/MSVC/$MSVER/ATLMFC/lib/x86
- export LIB=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/$VSVER/$TOOLSVER/VC/Tools/MSVC/$MSVER/lib/x86:$LIB
- export LIB=/c/Program\ Files\ \(x86\)/Windows\ Kits/10/lib/$WKITVER/ucrt/x86:$LIB
- export LIB=/c/Program\ Files\ \(x86\)/Windows\ Kits/10/lib/$WKITVER/um/x86:$LIB
# - export
- git clone --depth 1 https://github.com/wmcbrine/PDCurses.git ../pdcurses
- export ADD_CURSES=Y
- export PDCURSES_TOP=../../pdcurses
- cd src
- cp ../sys/winnt/Makefile.msc ./Makefile
- nmake install
- ./win/win32/vs2017/travisci.sh
- os: linux
env: DESCR=msdos-cross-on-linux HINTS=linux LUA_VERSION=5.3.5
compiler: gcc
script:
# - export
- cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../
- make fetch-lua
- cd lib/lua-$LUA_VERSION/src && make a && cd ../../..
- sh sys/msdos/msdos-cross-compile.sh
exclude:
- os: windows
# install: choco install mingw
env: DESCR=windows-mingw
@@ -117,7 +94,11 @@ matrix:
- cd src
- cp ../sys/winnt/Makefile.gcc ./Makefile
- mingw32-make install
exclude:
# - os: osx
# osx_image: xcode10.3
# env: DESCR=osx-xcode10.3-x11 HINTS=macosx10.14 WANT_WIN_CURSES=1 WANT_WIN_X11=1 USE_XPM=1
# compiler: clang
# script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make install"
- os: osx
osx_image: xcode10.2
env: HINTS=macosx10.14
@@ -129,3 +110,17 @@ notifications:
email:
recipients:
- devteam@nethack.org
#
deploy:
provider: releases
api_key:
secure: "U0Dt2CXrcG8Yi4taUCT/6AnM+0IJtdCv6IVG/2rGooUY3pZjNWE9XDM6X9ZeAmbI79aN6FPTppjUf3KbB/upYeJt+8mrjnxEk/ZTO1xXDDW8iL/DiqnczoFsMGmPsTM+Fkeak8bu0SifI7Qkx9i1N+zOyl2VdlaxGjchPfl/OJw2jcQs7rOGRfr23/rapZKTcFq+BFlxMiIHa0dXbCJ9vagdlyAeclOCtPjw1VoH/Cb/+0/Xlx2MFPncw4/1P+bO/fPantHyehh3/WCDVCnI4M7ftONpsTVRrQ+Hml89teUH9/1xXUOpbCeVghWr1rumLcQzMqLKNj2lP/gm9co2/DKpxiUPUzBfO/9Jvl1CNoEwPYQBRNb38kggDvAT4vKX38Oi5sZvumFEO4L0y7o4cW6SA4/CYIykfxOdkrryt8ltfWwopdy3I/DothYw31vJ9GsZOCAShFRAy3hJxYUbHhT+7SDUBadVSEkb4UqxQ+7zntAVT+Lp4DXLAfvsWxZGrQoP/IrWAgNOLRKILubpzh+YpadMH3Ygha2JRAeJAEZ3DnXf3vOOAucWnk4mNXDbW35GTDTAJDWMvddZCfsrUI/uHxgaRjFs9fLX1X5tqhGnsr27sKLWyX+zrIPVV0TPl3AzYPAf6Bc8Okeu+JEGQERvvgSasCuYcmhgYznBVJI="
file_glob: true
file:
- "$TRAVIS_TAG.x86.zip"
skip_cleanup: true
on:
tags: true
prerelease: true
name: "Pre-Release build of NetHack 3.7.0"
body: "This is an auto generated Pre-Release build of NetHack 3.7.0"

510
Cross-compiling Normal file
View File

@@ -0,0 +1,510 @@
Cross-compiling NetHack 3.7 Last edit: December 1, 2019
The NetHack 3.7 build process differs from the build process of previous
versions in some important ways that make it possible to use a cross-compiler
running on one platform (the "host" platform of the build) to produce a binary
NetHack package that can execute on an entirely different platform.
Part A Contents:
A1. Why cross-compile?
A2. Building NetHack 3.6 (before)
A3. Building NetHack 3.7 (going forward)
A4. How was the build procedure reduced to 5 steps?
A5. How can I help with the cross-compiling initiative?
Part B Contents:
B1. Two sets of compiles and procedures
B2. What needs to be built and executed on the HOST?
B3. What needs to be built for the TARGET?
B4. Case sample: msdos
--------------------------------------------------------------------------------
Part A - Cross-compiling NetHack
--------------------------------------------------------------------------------
+--------------------------+
| A1. Why cross-compile? |
+--------------------------+
By using cross-compilers on host platforms with fast processors, plenty of RAM
and storage resources, and an available cross-compiler, it may be possible to
keep or resurrect a working version of NetHack on platforms that are now too
constrained to carry out the build process natively on the platform any more.
Some of the constraints in carrying out a native build on the desired target
may include, but not necessarily be limited to, any of the following:
o Access: Somebody with a working knowledge of the NetHack build process may
not have the desired target build platform available to them. Conversly,
somebody with a keen knowledge of the target platform, and access to it,
may not be all that familiar with the NetHack build process.
o Resources: Address space limitations, insufficient RAM, low amounts of disk
storage, slow processor performance, may impede the ability to execute the
compile process on the target platform.
o Compilers: Some of the native compilers on historical platforms may only
support the particular dialect of C that was popular when the platform and
compiler were in their prime.
Another useful potential result of cross-compiling, is that it paves the way
for carrying out test and production builds of NetHack for multiple target
platforms through automated steps carried out on the host platform(s).
+-------------------------------------+
| A2. Building NetHack 3.6 (before) |
+-------------------------------------+
Very generally, the build of NetHack in past versions required the following
steps to be carried out:
1. Compile and link util/makedefs.
2. Run makedefs repeatedly with different command line options to produce
several output files that are required for:
(a) additional build steps to follow, including some header
files: pm.h, onames.h, date.h.
(b) creation of files, containing information required by,
or about the game during its execution, that are stored in a
portable, platform-independent way, that need to be inserted
into the game package.
(c) creation of files containing information required by, or about
the game during its execution, that are stored in an architecture
and/or platform and/or operating system dependent way, that need
to be inserted into the game package (the quest text format is
one example).
3. Compile and link the level compiler. This step needs to execute
work-alike tools to lex and yacc, or needs to build pre-built lex and
yacc output (.c, .h files) that are provided in the sys/share part of
the NetHack source code tree.
4. Execute the level compiler to read dat/*.des files and create
a set of binary output files that are architecture and/or operating
system dependent on the build platform, for use by the game during
its execution.
5. Compile and link the dungeon compiler. Like the level compiler, this
step needs to execute work-alike tools to lex and yacc, or needs to
build pre-built lex and yacc output (.c, .h files) that are provided
in the sys/share part of the NetHack source code tree.
6. Execute the dungeon compiler to read dat/dungeon.def and create
a set of binary output files that are architecture and/or operating
system dependent on the build platform, for use by the game during
its execution.
7. Compile and link several less critical utilities such as uudecode,
tile-generation utilities, and so forth, all of which need to execute
on the build platform during the build process to produce output files
for use during the game, that are reasonably portable (not architecture
and/or operating system dependent; only the output of the utilities
becomes part of the game package, not the executable utilities
themselves.
8. Compile and link the game itself.
9. Package the game and its required files including the output from
previous steps 2b, 2c, 4, 6, 7 and 8 above.
Steps 1, 2a, 2b, 7, and 9 above are not impediments to cross-compiling NetHack.
Steps 2c, 3, 4, 5, 6 and 8 above are impediments to cross-compiling NetHack.
That's because the files that those steps produce are very much tied to the
platform where the build of NetHack is being carried out. Variations between
platforms (such as 32-bit vs 64-bit, integer sizes, pointer sizes, processor
byte order, data alignment requirements, struct padding and the way bitfields
are stored) impact the portability of those data files between different
platforms and operating systems. If all those things happen to match, the files
might, just might, be usable across platforms, but the chances are against it,
and that certainly cannot be counted on.
+------------------------------------------+
| A3. Building NetHack 3.7 (going forward) |
+------------------------------------------+
Again, very generally, the build of NetHack in 3.7 requires the following
steps to be carried out:
1. Compile and link util/makedefs.
2. Run makedefs repeatedly with different command line options to produce
several output files that are required for:
(a) additional build steps to follow, including some header
files: pm.h, onames.h, date.h.
(b) creation of files, containing information required by,
or about the game during its execution, that are stored in a
portable, platform-independent way, that need to be inserted
into the game package.
3. Compile and link several less critical utilities such as uudecode,
tile-generation utilities, and so forth, all of which need to execute
on the build platform during the build process to produce output files
for use during the game, that are reasonably portable (not architecture
and/or operating system dependent; only the output of the utilities
becomes part of the game package, not the executable utilities
themselves.
4. Compile and link the game components for the TARGET; that includes
NetHack itself, Lua, and any optional regular-expression or window port
libraries that you plan to link into the NetHack game executable.
5. Package the game and its required files including the output from
previous steps 2b, 3 and 4 above.
Step 4 is now the only impediment to cross-compiling NetHack, and is resolved
by executing step 4 using a cross-compiler that runs on the build (host)
platform to produce a resulting binary for the target platform, instead of
executing the native compiler.
+-----------------------------------------------------+
| A4. How was the build procedure reduced to 5 steps? |
+-----------------------------------------------------+
The following are among several design changes planned in NetHack 3.7,
and these specific changes are what altered the build process to make
cross-compiling possible:
o There is no creation of platform-dependent files, such as the quest
text files, by makedefs during the build process. Instead, the quest
text files have been converted to Lua and are inserted into the game
package for processing by the embedded Lua <fixme: interpreter?>
during execution of NetHack.
o There is no build-time level compiler involved. Instead, the level
descriptions have been converted to Lua and are inserted into the game
package for processing by the embeded Lua <fixme: interpreter?>
during execution of NetHack.
o There is no build-time dungeon compiler involved. Instead, the dungeon
description has been converted to Lua and is inserted into the game
package for processing by the embeded Lua <fixme: interpreter?>
during execution of NetHack.
o Some of the build and option information that was formerly produced
during build time by makedefs, and contained information about the
build-platform specifically, is now produced at runtime within the
game under a cross-compiled build. As such, it now produces information
applicable to the target NetHack environment, not the build environment.
+------------------------------------------------------------+
| A5. How can I help with the cross-compiling initiative? |
+------------------------------------------------------------+
o If you have a favourite target platform (let's call it XX-Platform for
example purposes) that you'd like to see NetHack be able to run on, do
some research to find out if a cross-compiler exists that:
- produces output for XX-Platform.
- executes on a platform that you use and love (Linux, Windows,
Mac OS X are some examples of platforms that have cross-compilers
for other targets available)
o Then, make the community, devteam, and otheres aware that you're starting
a cross-compile of NetHack for XX-Platform. You might need to ask some
"starting out" questions initially, and as you get deeper into it, you
might need to ask some tougher questions.
o Perhaps consider forking from NetHack on GitHub, and do the
cross-compiler work there in your fork. Strive to get it to a point where
its ready to play-test on XX-Platform, or perhaps even use an emulator
of XX-Platform if one is available. We live in a time where plenty do.
Doing your work on a GitHub fork has the following advantages:
- It will make it really simple to integrate your work back into
the NetHack source tree if that's one of your goals.
- It will make it possible and straightforward to merge upstream
NetHack changes into your work for the XX-Platform cross-compile
so that it stays current with the game as it evolves.
- You may get help from others in the form of suggestions, or
pull-requests, or offers to join the development. Chances are,
you aren't the only person out there that would like to
establish/resurrect/maintain NetHack on XX-Platform.
Have fun!
-----------------------------------------------------------------------------
Part B - Cross-compiling details
-----------------------------------------------------------------------------
Part B Contents:
B1. Two sets of compiles and procedures
B2. What needs to be built and executed on the HOST?
B3. What needs to be built for the TARGET?
B4. Case sample: msdos
+-----------------------------------------+
| B1. Two sets of compiles and procedures |
+-----------------------------------------+
The HOST is the platform/place that you're running the build procedures using
the native compiler/linker, and the cross-compiler/linker that runs on the HOST
to build the game for a TARGET platform.
You have to:
1. Build mandatory utilities on the HOST.
2. Execute the mandatory utilities to generate components that will be used
during step 4 to build the game itself, or that will generate components
that will become part of the TARGET game package.
3. Build optional or enhancing utilities on the HOST, execute those
optional or enhancing utilities on the HOST to generate components that
will become part of the TARGET game package.
4. Execute a supported cross-compiler to compile the rest of the game
components like NetHack, Lua, and any optional libraries.
(the word "supported", in this sense, means a compiler that runs on your
HOST build platform, and generates output executable files for the TARGET
platform.
It should be mentioned that you can execute the cross-compile build approach
even to generate binaries for the same platform as the host, where the HOST
compilerand the TARGET compiler are actually one and the same.
+------------------------------------------------------+
| B2. What needs to be built and executed on the HOST? |
+------------------------------------------------------+
On the HOST, here are the mandatory things that have to be built.
a) Using the HOST native compiler, build HOST native utility makedefs
Compile and link the following with these compiler switches:
-DCROSSCOMPILE and -DCROSSCOMPILE_HOST
from sources: util/makedefs.c, src/mdlib.c, src/monst.c, src/objects.c
b) Execute HOST native makedefs utility, util/makedefs, as follows:
util/makedefs -v
util/makedefs -o
util/makedefs -p
util/makedefs -z
util/makedefs -d
util/makedefs -r
util/makedefs -h
util/makedefs -s
c) Using the HOST native compiler, build these additional utilities if your
target platform requires components that they produce. It is important
to note that all of the required source files need to be compiled to
native obj files for linking into the HOST-side utility. Some of the
source files (src/monst.c, src/objects.c) were likely already compiled
as native HOST-side obj files in order to build the native HOST utility
'makedefs' HOST utility above, and you don't need to compile them again
for use in linking other HOST utilities if the HOST-native obj files
produced from them are still around.
NOTE: A few other source files (src/drawing.c, src/decl.c) that need to
be compiled for native HOST utilities, also need to be compiled again
later as TARGET obj files for linking into the TARGET executable. It is
important to keep the compiled HOST-side obj files produced by the HOST
native compiler, and the TARGET-side obj files produced by the
cross-compiler separate and distinct from one another. That can be done
either by naming the differing object files a little differently
(perhaps with a suffix), or by placing the HOST-side obj files and the
TARGET-side obj files into different folders during the build process.
Whatever works best for your cross-compile.
util/dlb
from sources: src/dlb.c, src/dlb_main.c, src/alloc.c,
src/panic.c
purpose: For packaging up many files that are
required components of the TARGET game
into a single nhdat or nhdat370 combined
file
util/uudecode
from sources: sys/share/uudecode.c
purpose: convert some binary files, that are
distributed in the NetHack sources in
uuencoded format, back into their
original binary state
util/tilemap
from sources: win/share/tilemap.c
purpose: produce output file src/tile.c that is
required for building TARGET packages with
tile support
util/tile2bmp
from sources: win/share/tile2bmp.c, win/share/tiletext.c,
win/share/tilemap.c, src/drawing.c,
src/decl.c, src/monst.c, src/objects.c
purpose: <TBD>
util/gif2txt
from sources: win/share/gifread.c, win/share/tiletext.c,
win/share/tilemap.c, src/drawing.c,
src/decl.c, src/monst.c, src/objects.c,
src/alloc.c, src/panic.c
purpose: <TBD>
util/ppmwrite
from sources: win/share/ppmwrite.c, win/share/tiletext.c,
win/share/tilemap.c, src/drawing.c,
src/decl.c, src/monst.c, src/objects.c,
src/alloc.c, src/panic.c
purpose: <TBD>
+--------------------------------------------+
| B3. What needs to be built for the TARGET? |
+--------------------------------------------+
For the TARGET side, here are the mandatory things that have to be built via
the HOST-executed cross-compiler that generates code for the TARGET platform.
Using the cross-compiler, build the following targets:
a) NetHack sources (core is mandatory)
With the cross-compiler and linker for the TARGET platform,
cross-compile and link with these compiler switches:
-DCROSSCOMPILE and -DCROSSCOMPILE_TARGET
core sources (2019): src/allmain.c, src/apply.c, src/artifact.c,
src/attrib.c, src/ball.c, src/bones.c,
src/botl.c, src/cmd.c, src/dbridge.c, src/decl.c,
src/detect.c, src/dig.c, src/display.c, src/do.c,
src/do_name.c, src/do_wear.c, src/dog.c,
src/dogmove.c, src/dokick.c, src/dothrow.c,
src/drawing.c, src/dungeon.c, src/eat.c, src/end.c,
src/engrave.c, src/exper.c, src/explode.c,
src/extralev.c, src/files.c, src/fountain.c,
src/hack.c, src/hacklib.c, src/invent.c,
src/isaac64.c, src/light.c, src/lock.c, src/mail.c,
src/makemon.c, src/mapglyph.c, src/mcastu.c,
src/mdlib.c, src/mhitm.c, src/mhitu.c, src/minion.c,
src/mklev.c, src/mkmap.c, src/mkmaze.c, src/mkobj.c,
src/mkroom.c, src/mon.c, src/mondata.c, src/monmove.c,
src/monst.c, src/mplayer.c, src/mthrowu.c, src/muse.c,
src/music.c, src/nhlsel.c, src/nhlua.c, src/o_init.c,
src/objects.c, src/objnam.c, src/options.c,
src/pager.c, src/pickup.c, src/pline.c,
src/polyself.c, src/potion.c, src/pray.c,
src/priest.c, src/quest.c, src/questpgr.c,
src/random.c, src/read.c, src/rect.c, src/region.c,
src/restore.c, src/rip.c, src/rnd.c, src/role.c,
src/rumors.c, src/save.c, src/sfstruct.c,
src/shk.c, src/shknam.c, src/sit.c, src/sounds.c,
src/sp_lev.c, src/spell.c, src/steal.c, src/steed.c,
src/sys.c, src/teleport.c, src/tile.c,
src/timeout.c, src/topten.c, src/track.c,
src/trap.c, src/u_init.c, src/uhitm.c, src/vault.c,
src/version.c, src/vis_tab.c, src/vision.c,
src/weapon.c, src/were.c, src/wield.c, src/windows.c,
src/wizard.c, src/worm.c, src/worn.c, src/write.c,
src/zap.c, sys/share/cppregex.cpp
tty sources: win/tty/getline.c, win/tty/termcap.c,
win/tty/topl.c, win/tty/wintty.c
plus your platform-specific source files that contain main, typically
*main.c, and unix support in *unix.c, tty support in *tty.c, and other
system support in *sys.c as well as others sources pertaining to your
specific target platform(s).
b) Lua (mandatory in 3.7)
lib/lua-5.3.5/src
from sources: lua.c, lapi.c, lauxlib.c, lbaselib.c, lcode.c,
lcorolib.c, lctype.c, ldblib.c, ldebug.c,
ldo.c, ldump.c, lfunc.c, lgc.c, linit.c,
liolib.c, llex.c, lmathlib.c, lmem.c,
loadlib.c, lobject.c, lopcodes.c,
loslib.c, lparser.c, lstate.c, lstring.c,
lstrlib.c, ltable.c, ltablib.c, ltm.c,
lundump.c, lutf8lib.c, lvm.c, lzio.c,
lbitlib.c
purpose: links into the game executable to interpret
lua level description files, lua dungeon
description files, and a lua quest text file.
d) recover (optional if desired/required; some targets have recover
functionality built into NetHack itself)
c) Additional optional library packages/obj files as required
lib/pdcurses/...
from sources: addch.c, addchstr.c, addstr.c, attr.c, beep.c,
bkgd.c, border.c, clear.c, color.c, delch.c,
deleteln.c, getch.c, getstr.c, getyx.c,
inch.c, inchstr.c, initscr.c, inopts.c,
insch.c, insstr.c, instr.c, kernel.c,
keyname.c, mouse.c, move.c, outopts.c,
overlay.c, pad.c, panel.c, printw.c,
refresh.c, scanw.c, scr_dump.c, scroll.c,
slk.c, termattr.c, touch.c, util.c, window.c,
debug.c, pdcclip.c, pdcdisp.c, pdcgetsc.c,
pdckbd.c, pdcutil.c
purpose: underlying curses platform support for some
target platforms where inclusion of the
NetHack curses window port in win/curses is
desired
+-------------------------+
| B4. Case sample: msdos |
+-------------------------+
Cross-compiler used: Andrew Wu's djgpp cross-compiler
Cross-compiler url: https://github.com/andrewwutw/build-djgpp
Cross-compiler pre-built binary downloads:
https://github.com/andrewwutw/build-djgpp/releases/download/v2.9/
Mac OS X pre-built binary: djgpp-osx-gcc550.tar.bz2 (tested)
Linux pre-built binary : djgpp-linux64-gcc550.tar.bz2 (tested)
mingw pre-built binary : djgpp-mingw-gcc550-standalone.zip (untested)
The msdos cross-compile for NetHack 3.7 uses two phases of compiles:
Phase1 is the host-side prerequisite stuff that needs to be done first.
Phase2 is the cross-compile pieces using the djgpp cross-compiler hosted on
Linux, Mac OS X, or Windows mingw.
First, on the host platform, you need to set up for a native Unix NetHack
build in the usual way. For example, on linux:
cd sys/unix
sh setup.sh hints/linux
cd ../..
make fetch-lua
Now, you could proceed to go ahead and issue
make all
to build a native NetHack at that point if you wish, but it is not needed
for the msdos cross-compile.
Instead, a test shell script has been put together that will next accomplish
each of the following tasks when it is executed. The shell script can be
invoked by:
sh sys/msdos/msdos-cross-compile.sh
but before you do that, please read the paragraphs below.
The shell script is meant to accomplish the following things:
Prep : the script downloads the djgpp cross-compiler for the host
platform into lib/djgpp (it doesn't install anything on the
system, nor does it need to, it just downloads them into the
identified directories), it downloads a copy of the msdos
dos-extender into lib/djgpp/cwsdpmi for later packaging up with
the msdos game, and it downloads pdcurses into lib/pdcurses
for cross-compiling during the TARGET build.
Be certain to ensure the right products are at the url's
identified above *before* you execute the Case sample msdos
cross-compile script. The correct products were at those url's
at the time this was written in Dec 2019, but we don't assume
any responsibility for what is at those url's now or in the
future. You need to check before executing the script.
Phase1 : the script uses the Makefile sys/msdos/Makefile1.cross
to complete the host-side build steps using the native gcc
compiler for the host platform. During phase1 the host obj
files are put in subfolder src/host_o to keep them separated
and distinguishable from the target obj files that will be
built in phase2.
Phase2 : the script uses the Makefile sys/msdos/Makefile2.cross
to complete the target-side build steps using the
cross-compiler that was obtained during the prep step of the
script described above. During phase2 the target obj files
are put in src/msdos_o to keep them separated and
distinguishable from the host obj files
Package: the script then packages up the results that reside in
msdos-binary into a zip file which it places in lib called
nh370dos.zip.

393
Files
View File

@@ -7,7 +7,8 @@ from or not transferred to your system if you wish.
.:
(files in top directory)
.clang-format .travis.yml Files Porting README
.clang-format .travis.yml Cross-compiling Files
Porting README
DEVEL:
(files for people developing changes to NetHack)
@@ -30,29 +31,49 @@ prepare-commit-msg
dat:
(files for all versions)
Arch.des Barb.des Caveman.des GENFILES Healer.des
Knight.des Monk.des Priest.des Ranger.des Rogue.des
Samurai.des Tourist.des Valkyrie.des Wizard.des bigroom.des
bogusmon.txt castle.des cmdhelp data.base dungeon.def
endgame.des engrave.txt epitaph.txt gehennom.des help
hh history keyhelp knox.des license
medusa.des mines.des opthelp oracle.des oracles.txt
quest.txt rumors.fal rumors.tru sokoban.des symbols
tower.des tribute wizhelp yendor.des
Arc-fila.lua Arc-filb.lua Arc-goal.lua Arc-loca.lua Arc-strt.lua
Bar-fila.lua Bar-filb.lua Bar-goal.lua Bar-loca.lua Bar-strt.lua
Cav-fila.lua Cav-filb.lua Cav-goal.lua Cav-loca.lua Cav-strt.lua
GENFILES Hea-fila.lua Hea-filb.lua Hea-goal.lua Hea-loca.lua
Hea-strt.lua Kni-fila.lua Kni-filb.lua Kni-goal.lua Kni-loca.lua
Kni-strt.lua Mon-fila.lua Mon-filb.lua Mon-goal.lua Mon-loca.lua
Mon-strt.lua Pri-fila.lua Pri-filb.lua Pri-goal.lua Pri-loca.lua
Pri-strt.lua Ran-fila.lua Ran-filb.lua Ran-goal.lua Ran-loca.lua
Ran-strt.lua Rog-fila.lua Rog-filb.lua Rog-goal.lua Rog-loca.lua
Rog-strt.lua Sam-fila.lua Sam-filb.lua Sam-goal.lua Sam-loca.lua
Sam-strt.lua Tou-fila.lua Tou-filb.lua Tou-goal.lua Tou-loca.lua
Tou-strt.lua Val-fila.lua Val-filb.lua Val-goal.lua Val-loca.lua
Val-strt.lua Wiz-fila.lua Wiz-filb.lua Wiz-goal.lua Wiz-loca.lua
Wiz-strt.lua air.lua asmodeus.lua astral.lua baalz.lua
bigrm-1.lua bigrm-2.lua bigrm-3.lua bigrm-4.lua bigrm-5.lua
bigrm-6.lua bigrm-7.lua bigrm-8.lua bigrm-9.lua bigrm-10.lua
bogusmon.txt castle.lua cmdhelp data.base dungeon.lua
earth.lua engrave.txt epitaph.txt fakewiz1.lua fakewiz2.lua
fire.lua help hh history juiblex.lua
keyhelp knox.lua license medusa-1.lua medusa-2.lua
medusa-3.lua medusa-4.lua minefill.lua minend-1.lua minend-2.lua
minend-3.lua minetn-1.lua minetn-2.lua minetn-3.lua minetn-4.lua
minetn-5.lua minetn-6.lua minetn-7.lua nhlib.lua opthelp
oracle.lua oracles.txt orcus.lua quest.lua rumors.fal
rumors.tru sanctum.lua soko1-1.lua soko1-2.lua soko2-1.lua
soko2-2.lua soko3-1.lua soko3-2.lua soko4-1.lua soko4-2.lua
symbols tower1.lua tower2.lua tower3.lua tribute
valley.lua water.lua wizard1.lua wizard2.lua wizard3.lua
wizhelp
doc:
(files for all versions)
Guidebook.mn Guidebook.tex Guidebook.txt config.nh dgn_comp.6
dgn_comp.txt dlb.6 dlb.txt fixes10.0 fixes14.f
fixes22.0 fixes23.e fixes30.0 fixes30.pl01 fixes30.pl02
fixes30.pl03 fixes30.pl04 fixes30.pl05 fixes30.pl06 fixes30.pl07
fixes30.pl08 fixes30.pl09 fixes30.pl10 fixes31.1 fixes31.2
fixes31.3 fixes32.0 fixes32.1 fixes32.2 fixes32.3
fixes33.0 fixes33.1 fixes34.0 fixes34.1 fixes34.2
fixes34.3 fixes35.0 fixes36.0 fixes36.1 fixes36.2
lev_comp.6 lev_comp.txt makedefs.6 makedefs.txt mn.7
mnh.7 nethack.6 nethack.txt recover.6 recover.txt
tmac.n tmac.nh window.doc
Guidebook.mn Guidebook.tex Guidebook.txt config.nh dlb.6
dlb.txt fixes10.0 fixes14.f fixes22.0 fixes23.e
fixes30.0 fixes30.pl01 fixes30.pl02 fixes30.pl03 fixes30.pl04
fixes30.pl05 fixes30.pl06 fixes30.pl07 fixes30.pl08 fixes30.pl09
fixes30.pl10 fixes31.1 fixes31.2 fixes31.3 fixes32.0
fixes32.1 fixes32.2 fixes32.3 fixes33.0 fixes33.1
fixes34.0 fixes34.1 fixes34.2 fixes34.3 fixes35.0
fixes36.0 fixes36.1 fixes36.2 fixes36.3 fixes36.4
fixes36.5 fixes37.0 fixesXX.X makedefs.6 makedefs.txt
mn.7 mnh.7 nethack.6 nethack.txt recover.6
recover.txt tmac.n tmac.nh window.doc
include:
(files for GEM versions)
@@ -61,9 +82,6 @@ bitmfile.h gem_rsc.h load_img.h wingem.h
(file for GNOME versions)
winGnome.h
(files for Qt versions)
qt_clust.h qt_kde0.h qt_win.h qt_xpms.h qttableview.h
(files for X versions)
tile2x11.h winX.h xwindow.h xwindowp.h
@@ -73,16 +91,16 @@ beconf.h botl.h color.h config.h config1.h
context.h coord.h decl.h def_os2.h dgn_file.h
display.h dlb.h dungeon.h engrave.h extern.h
flag.h func_tab.h global.h hack.h integer.h
isaac64.h lev.h lint.h mail.h mextra.h
mfndpos.h micro.h mkroom.h monattk.h mondata.h
monflag.h monst.h monsym.h ntconf.h obj.h
objclass.h os2conf.h patchlevel.h pcconf.h permonst.h
prop.h qtext.h quest.h rect.h region.h
rm.h skills.h sp_lev.h spell.h sys.h
system.h tcap.h tileset.h timeout.h tosconf.h
tradstdc.h trampoli.h trap.h unixconf.h vision.h
vmsconf.h wceconf.h winami.h wincurs.h winprocs.h
wintype.h you.h youprop.h
isaac64.h lint.h mail.h mextra.h mfndpos.h
micro.h mkroom.h monattk.h mondata.h monflag.h
monst.h monsym.h ntconf.h obj.h objclass.h
os2conf.h patchlevel.h pcconf.h permonst.h prop.h
quest.h rect.h region.h rm.h skills.h
sp_lev.h spell.h sys.h system.h tcap.h
tileset.h timeout.h tosconf.h tradstdc.h trampoli.h
trap.h unixconf.h vision.h vmsconf.h wceconf.h
winami.h wincurs.h winprocs.h wintype.h you.h
youprop.h
(file for tty versions)
wintty.h
@@ -100,36 +118,36 @@ dog.c dogmove.c dokick.c dothrow.c drawing.c dungeon.c
eat.c end.c engrave.c exper.c explode.c extralev.c
files.c fountain.c hack.c hacklib.c invent.c isaac64.c
light.c lock.c mail.c makemon.c mapglyph.c mcastu.c
mhitm.c mhitu.c minion.c mklev.c mkmap.c mkmaze.c
mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c
mplayer.c mthrowu.c muse.c music.c o_init.c objects.c
objnam.c options.c pager.c pickup.c pline.c polyself.c
potion.c pray.c priest.c quest.c questpgr.c read.c
rect.c region.c restore.c rip.c rnd.c role.c
rumors.c save.c shk.c shknam.c sit.c sounds.c
sp_lev.c spell.c steal.c steed.c sys.c teleport.c
timeout.c topten.c track.c trap.c u_init.c uhitm.c
vault.c version.c vision.c weapon.c were.c wield.c
windows.c wizard.c worm.c worn.c write.c zap.c
mdlib.c mhitm.c mhitu.c minion.c mklev.c mkmap.c
mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c
monst.c mplayer.c mthrowu.c muse.c music.c nhlobj.c
nhlsel.c nhlua.c o_init.c objects.c objnam.c options.c
pager.c pickup.c pline.c polyself.c potion.c pray.c
priest.c quest.c questpgr.c read.c rect.c region.c
restore.c rip.c rnd.c role.c rumors.c save.c
sfstruct.c shk.c shknam.c sit.c sounds.c sp_lev.c
spell.c steal.c steed.c sys.c teleport.c timeout.c
topten.c track.c trap.c u_init.c uhitm.c vault.c
version.c vision.c weapon.c were.c wield.c windows.c
wizard.c worm.c worn.c write.c zap.c
sys/amiga:
(files for Amiga versions - untested for 3.6.2)
(files for Amiga versions - untested for 3.6.4)
Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf
amidos.c amidos.p amifont.uu amifont8.uu amigst.c
amii.hlp amimenu.c amirip.c amisnd.c amistack.c
amitty.c amiwind.c amiwind.p clipwin.c colorwin.c
cvtsnd.c grave16.xpm ifchange mkdmake txt2iff.c
winami.c winami.p winchar.c windefs.h winext.h
winfuncs.c winkey.c winmenu.c winproto.h winreq.c
winstr.c xpm2iff.c
amii.hlp amimenu.c amirip.c amistack.c amitty.c
amiwind.c amiwind.p clipwin.c colorwin.c grave16.xpm
ifchange mkdmake txt2iff.c winami.c winami.p
winchar.c windefs.h winext.h winfuncs.c winkey.c
winmenu.c winproto.h winreq.c winstr.c xpm2iff.c
sys/atari:
(files for Atari version - untested for 3.6.2)
(files for Atari version - untested for 3.6.4)
Install.tos atarifnt.uue nethack.mnu setup.g tos.c
unx2atar.sed
sys/be:
(files for BeOS version - untested for 3.6.2)
(files for BeOS version - untested for 3.6.4)
README bemain.c
sys/mac:
@@ -137,23 +155,27 @@ sys/mac:
Files.r Install.mw MacHelp NHDeflts NHrsrc.hqx
NHsound.hqx News README carbon.plist dprintf.c
maccurs.c macerrs.c macfile.c machelp.hqx macmain.c
macmenu.c macsnd.c mactopl.c mactty.c macunix.c
macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx
mttymain.c
macmenu.c mactopl.c mactty.c macunix.c macwin.c
mgetline.c mmodal.c mrecover.c mrecover.hqx mttymain.c
sys/msdos:
(files for MSDOS version - untested for 3.6.2)
Install.dos Makefile.BC Makefile.GCC Makefile.MSC SCHEMA35.MSC
moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c
pctiles.c pctiles.h pcvideo.h portio.h schema1.BC
schema2.BC schema3.MSC setup.bat sound.c tile2bin.c
vesa.h video.c vidtxt.c vidvesa.c vidvga.c
(files for MSDOS version - tested for 3.6.4 via partial cross-compile only)
Install.dos Makefile.BC Makefile.GCC
Makefile.MSC Makefile1.cross Makefile2.cross
SCHEMA35.MSC moveinit.pat msdos-cross-compile.sh
msdos.c msdoshlp.txt ovlinit.c
pckeys.c pctiles.c pctiles.h
pcvideo.h portio.h schema1.BC
schema2.BC schema3.MSC setup.bat
sysconf tile2bin.c vesa.h
video.c vidtxt.c vidvesa.c
vidvga.c
(files for running MSDOS binary under Windows)
nhico.uu nhpif.uu
sys/os2:
(files for OS/2 version - untested for 3.6.2)
(files for OS/2 version - untested for 3.6.4)
Install.os2 Makefile.os2 nhpmico.uu os2.c
sys/share:
@@ -163,10 +185,10 @@ random.c
(Berkeley uudecode file, which may be used in build process of any version)
uudecode.c
(file for MSDOS, OS/2, Amiga, and Atari versions - untested for 3.6.2)
(file for MSDOS, OS/2, Amiga, and Atari versions - untested for 3.6.4)
pcmain.c
(file for MSDOS, OS/2, and Atari versions - untested for 3.6.2)
(file for MSDOS, OS/2, and Atari versions - untested for 3.6.4)
NetHack.cnf pctty.c
(file for MSDOS, OS/2, and VMS versions)
@@ -178,18 +200,15 @@ nhlan.c
(file for VMS version)
tclib.c
(files for MSDOS and OS/2 versions - untested for 3.6.2)
(files for MSDOS and OS/2 versions - untested for 3.6.4)
Makefile.lib termcap.uu
(files for MSDOS, OS/2 and Atari versions - untested for 3.6.2)
(files for MSDOS, OS/2 and Atari versions - tested on MSDOS for 3.6.4 via partial cross-compile only)
pcsys.c pcunix.c
(files for UNIX and Be versions)
ioctl.c unixtty.c
(lex/yacc output for special level and dungeon compilers)
dgn_comp.h dgn_lex.c dgn_yacc.c lev_comp.h lev_lex.c lev_yacc.c
(posix regex for versions that include regex in their C library)
posixregex.c
@@ -199,11 +218,6 @@ cppregex.cpp
(pmatch regex for other versions)
pmatchregex.c
sys/share/sounds:
(files for Amiga and Macintosh versions)
README bell.uu bugle.uu erthdrum.uu firehorn.uu frsthorn.uu
lethdrum.uu mgcflute.uu mgcharp.uu toolhorn.uu wdnflute.uu wdnharp.uu
sys/unix:
(files for UNIX versions)
Install.unx Makefile.dat Makefile.doc Makefile.src
@@ -215,9 +229,6 @@ unixmain.c unixres.c unixunix.c
(files for replacement cpp, only needed by some ancient UNIX systems)
cpp1.shr cpp2.shr cpp3.shr
(file for sound driver for 386 UNIX)
snd86unx.shr
sys/unix/NetHack.xcodeproj:
(file for UNIX versions)
project.pbxproj
@@ -251,7 +262,7 @@ spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c
vmsmain.c vmsmisc.c vmstty.c vmsunix.c
sys/wince:
(files for Windows CE and PocketPC - untested for 3.6.2)
(files for Windows CE and PocketPC - untested for 3.6.4)
Install.ce bootstrp.mak celib.c cesetup.bat cesound.c
defaults.nh keypad.uu menubar.uu mhaskyn.c mhaskyn.h
mhcmd.c mhcmd.h mhcolor.c mhcolor.h mhdlg.c
@@ -264,7 +275,7 @@ resource.h winMS.h winhack.c winhack.rc winhcksp.rc
winmain.c
sys/wince/ceinc:
(header files for Windows CE and PocketPC - untested for 3.6.2)
(header files for Windows CE and PocketPC - untested for 3.6.4)
assert.h errno.h fcntl.h
sys/wince/ceinc/sys:
@@ -273,42 +284,46 @@ stat.h
sys/winnt:
(files for Windows 7/8.x/10 version)
Install.nt Makefile.gcc Makefile.msc console.rc
defaults.nh nethack.def nh340key.c nhdefkey.c
nhico.uu nhraykey.c nhsetup.bat ntsound.c
nttty.c porthelp stub-pdcscrn.c stubs.c
sysconf win10.c win10.h win32api.h
windmain.c winnt.c winos.h
.nethackrc.template Install.nt Makefile.gcc
Makefile.msc console.rc nethack.def
nh340key.c nhdefkey.c nhico.uu
nhraykey.c nhsetup.bat ntsound.c
nttty.c porthelp stub-pdcscrn.c
stubs.c sysconf.template win10.c
win10.h win32api.h windmain.c
winnt.c winos.h
test:
(files in top directory)
test_des.lua test_lev.lua test_obj.lua test_sel.lua test_src.lua
testwish.lua
util:
(files for all versions)
dgn_main.c dlb_main.c lev_main.c makedefs.c mdgrep.h mdgrep.pl
panic.c recover.c
(lex/yacc input for special level and dungeon compilers)
dgn_comp.l dgn_comp.y lev_comp.l lev_comp.y
dlb_main.c makedefs.c mdgrep.h mdgrep.pl panic.c recover.c
win/Qt:
(files for the Qt 4 or 5 widget library - X11, Windows, Mac OS X)
qt_bind.cpp qt_bind.h qt_click.cpp qt_click.h qt_clust.cpp
qt_clust.h qt_delay.cpp qt_delay.h qt_glyph.cpp qt_glyph.h
qt_icon.cpp qt_icon.h qt_inv.cpp qt_inv.h qt_kde0.h
qt_key.cpp qt_key.h qt_line.cpp qt_line.h qt_main.cpp
qt_main.h qt_map.cpp qt_map.h qt_menu.cpp qt_menu.h
qt_msg.cpp qt_msg.h qt_plsel.cpp qt_plsel.h qt_rip.cpp
qt_rip.h qt_set.cpp qt_set.h qt_stat.cpp qt_stat.h
qt_str.cpp qt_str.h qt_streq.cpp qt_streq.h qt_svsel.cpp
qt_svsel.h qt_win.cpp qt_win.h qt_xcmd.cpp qt_xcmd.h
qt_xpms.h qt_yndlg.cpp qt_yndlg.h
win/Qt3:
(files for the Qt 3 widget library - X11, Windows, Mac OS X, or Qtopia)
Info.plist Install.Qt knethack.lnk
knh-mini.xpm knh.xpm nhicns.uu
nhsplash.xpm qpe-nethack.control qt_clust.cpp
qt_win.cpp qttableview.cpp tileedit.cpp
knh-mini.xpm knh.xpm qpe-nethack.control
qt3_clust.cpp qt3_clust.h qt3_kde0.h
qt3_win.cpp qt3_win.h qt3_xpms.h
qt3tableview.cpp qt3tableview.h tileedit.cpp
tileedit.h
win/Qt4:
(files for the Qt 4 widget library - X11, Windows, Mac OS X)
qt4bind.cpp qt4bind.h qt4click.cpp qt4click.h qt4clust.cpp
qt4clust.h qt4delay.cpp qt4delay.h qt4glyph.cpp qt4glyph.h
qt4icon.cpp qt4icon.h qt4inv.cpp qt4inv.h qt4kde0.h
qt4key.cpp qt4key.h qt4line.cpp qt4line.h qt4main.cpp
qt4main.h qt4map.cpp qt4map.h qt4menu.cpp qt4menu.h
qt4msg.cpp qt4msg.h qt4plsel.cpp qt4plsel.h qt4rip.cpp
qt4rip.h qt4set.cpp qt4set.h qt4stat.cpp qt4stat.h
qt4str.cpp qt4str.h qt4streq.cpp qt4streq.h qt4svsel.cpp
qt4svsel.h qt4win.cpp qt4win.h qt4xcmd.cpp qt4xcmd.h
qt4yndlg.cpp qt4yndlg.h
win/X11:
(files for X versions)
Install.X11 NetHack.ad Window.c dialogs.c ibm.bdf
@@ -328,12 +343,12 @@ cursinit.h cursinvt.c cursinvt.h cursmain.c cursmesg.c cursmesg.h
cursmisc.c cursmisc.h cursstat.c cursstat.h curswins.c curswins.h
win/gem:
(files for GEM versions - untested for 3.6.2)
(files for GEM versions - untested for 3.6.4)
Install.gem bitmfile.c gem_rsc.uu gem_rso.uu gr_rect.c gr_rect.h
load_img.c tile2img.c title.uu wingem.c wingem1.c xpm2img.c
win/gnome:
(files for GNOME versions - untested for 3.6.2)
(files for GNOME versions - untested for 3.6.4)
README gn_xpms.h gnaskstr.c gnaskstr.h gnbind.c gnbind.h
gnglyph.c gnglyph.h gnmain.c gnmain.h gnmap.c gnmap.h
gnmenu.c gnmenu.h gnmesg.c gnmesg.h gnomeprv.h gnopts.c
@@ -348,10 +363,10 @@ NetHackTerm.applescript recover.pl
win/share:
(files for versions using optional tiles)
bmptiles.c gifread.c giftiles.c monsters.txt objects.txt
other.txt ppmwrite.c renumtiles.pl safeproc.c thintile.c
tile.doc tile.h tile2bmp.c tilemap.c tileset.c
tiletext.c
bmptiles.c gifread.c giftiles.c monsters.txt nhicns.uu
nhsplash.xpm objects.txt other.txt ppmwrite.c renumtiles.pl
safeproc.c thintile.c tile.doc tile.h tile2bmp.c
tilemap.c tileset.c tiletext.c
win/tty:
(files for tty versions)
@@ -359,74 +374,106 @@ getline.c termcap.c topl.c wintty.c
win/win32:
(files for Windows versions - tested up to Windows 10)
NetHackW.exe.manifest dgnstuff-mingw32.mak dgnstuff.mak
levstuff-mingw32.mak levstuff.mak mhaskyn.c
mhaskyn.h mhdlg.c mhdlg.h
mhfont.c mhfont.h mhinput.c
mhinput.h mhmain.c mhmain.h
mhmap.c mhmap.h mhmenu.c
mhmenu.h mhmsg.h mhmsgwnd.c
mhmsgwnd.h mhrip.c mhrip.h
mhsplash.c mhsplash.h mhstatus.c
mhstatus.h mhtext.c mhtext.h
mnsel.uu mnselcnt.uu mnunsel.uu
mswproc.c nethack.rc nhresource.h
petmark.uu pilemark.uu record.uu
resource.h rip.uu splash.uu
tiles-mingw32.mak tiles.mak winMS.h
winhack.c winhack.rc
NetHackW.c NetHackW.exe.manifest NetHackW.rc
mhaskyn.c mhaskyn.h mhdlg.c
mhdlg.h mhfont.c mhfont.h
mhinput.c mhinput.h mhmain.c
mhmain.h mhmap.c mhmap.h
mhmenu.c mhmenu.h mhmsg.h
mhmsgwnd.c mhmsgwnd.h mhrip.c
mhrip.h mhsplash.c mhsplash.h
mhstatus.c mhstatus.h mhtext.c
mhtext.h mnsel.uu mnselcnt.uu
mnunsel.uu mswproc.c nethack.rc
nhresource.h petmark.uu pilemark.uu
record.uu resource.h rip.uu
splash.uu tiles-mingw32.mak tiles.mak
winMS.h
win/win32/vs2017:
(files for Visual Studio 2017 Community Edition builds)
NetHack.sln NetHack.vcxproj NetHackW.vcxproj
PDCurses.vcxproj afterdgncomp.proj afterdlb.proj
afterlevcomp.proj aftermakedefs.proj afternethack.proj
afterrecover.proj aftertile2bmp.proj aftertilemap.proj
afteruudecode.proj build.bat common.props
config.props console.props default.props
default_dll.props default_lib.props dgncomp.vcxproj
dirs.props dlb.vcxproj dll.props
files.props levcomp.vcxproj makedefs.vcxproj
nh340key.def nh340key.vcxproj nhdefkey.def
nhdefkey.vcxproj nhraykey.def nhraykey.vcxproj
recover.vcxproj tile2bmp.vcxproj tilemap.vcxproj
tiles.vcxproj uudecode.vcxproj
NetHack.sln NetHack.vcxproj
NetHackPackage.appxmanifest NetHackPackage.wapproj
NetHackProperties.props NetHackW.vcxproj
PDCurses.vcxproj Package.StoreAssociation.xml
ScreenShot.PNG afterdlb.proj
aftermakedefs.proj afternethack.proj
afterrecover.proj aftertile2bmp.proj
aftertilemap.proj afteruudecode.proj
build.bat common.props
config.props console.props
default.props default_dll.props
default_lib.props dirs.props
dlb.vcxproj dll.props
files.props makedefs.vcxproj
nh340key.def nh340key.vcxproj
nhdefkey.def nhdefkey.vcxproj
nhraykey.def nhraykey.vcxproj
recover.vcxproj tile2bmp.vcxproj
tilemap.vcxproj tiles.vcxproj
travisci.sh uudecode.vcxproj
win/win32/vs2017/Images:
(files for Visual Studio 2017 Community Edition builds)
BadgeLogo.scale-100.png
BadgeLogo.scale-125.png
BadgeLogo.scale-150.png
BadgeLogo.scale-200.png
BadgeLogo.scale-400.png
LargeTile.scale-100.png
LargeTile.scale-125.png
LargeTile.scale-150.png
LargeTile.scale-200.png
LargeTile.scale-400.png
LockScreenLogo.scale-200.png
SmallTile.scale-100.png
SmallTile.scale-125.png
SmallTile.scale-150.png
SmallTile.scale-200.png
SmallTile.scale-400.png
SplashScreen.scale-100.png
SplashScreen.scale-125.png
SplashScreen.scale-150.png
SplashScreen.scale-200.png
SplashScreen.scale-400.png
Square150x150Logo.scale-100.png
Square150x150Logo.scale-125.png
Square150x150Logo.scale-150.png
Square150x150Logo.scale-200.png
Square150x150Logo.scale-400.png
Square44x44Logo.altform-unplated_targetsize-16.png
Square44x44Logo.altform-unplated_targetsize-256.png
Square44x44Logo.altform-unplated_targetsize-32.png
Square44x44Logo.altform-unplated_targetsize-48.png
Square44x44Logo.scale-100.png
Square44x44Logo.scale-125.png
Square44x44Logo.scale-150.png
Square44x44Logo.scale-200.png
Square44x44Logo.scale-400.png
Square44x44Logo.targetsize-16.png
Square44x44Logo.targetsize-24.png
Square44x44Logo.targetsize-24_altform-unplated.png
Square44x44Logo.targetsize-256.png
Square44x44Logo.targetsize-32.png
Square44x44Logo.targetsize-48.png
StoreLogo.backup.png
StoreLogo.scale-100.png
StoreLogo.scale-125.png
StoreLogo.scale-150.png
StoreLogo.scale-200.png
StoreLogo.scale-400.png
Wide310x150Logo.scale-100.png
Wide310x150Logo.scale-125.png
Wide310x150Logo.scale-150.png
Wide310x150Logo.scale-200.png
Wide310x150Logo.scale-400.png
This is a list of files produced by auxiliary programs. They can all be
regenerated from the files in the distribution.
dat:
(file generated by dgn_comp at playground creation time)
dungeon
(files generated by lev_comp at playground creation time)
Arc-fila.lev Arc-filb.lev Arc-goal.lev Arc-loca.lev Arc-strt.lev
Bar-fila.lev Bar-filb.lev Bar-goal.lev Bar-loca.lev Bar-strt.lev
Cav-fila.lev Cav-filb.lev Cav-goal.lev Cav-loca.lev Cav-strt.lev
Hea-fila.lev Hea-filb.lev Hea-goal.lev Hea-loca.lev Hea-strt.lev
Kni-fila.lev Kni-filb.lev Kni-goal.lev Kni-loca.lev Kni-strt.lev
Mon-fila.lev Mon-filb.lev Mon-goal.lev Mon-loca.lev Mon-strt.lev
Pri-fila.lev Pri-filb.lev Pri-goal.lev Pri-loca.lev Pri-strt.lev
Ran-fila.lev Ran-filb.lev Ran-goal.lev Ran-loca.lev Ran-strt.lev
Rog-fila.lev Rog-filb.lev Rog-goal.lev Rog-loca.lev Rog-strt.lev
Sam-fila.lev Sam-filb.lev Sam-goal.lev Sam-loca.lev Sam-strt.lev
Tou-fila.lev Tou-filb.lev Tou-goal.lev Tou-loca.lev Tou-strt.lev
Val-fila.lev Val-filb.lev Val-goal.lev Val-loca.lev Val-strt.lev
Wiz-fila.lev Wiz-filb.lev Wiz-goal.lev Wiz-loca.lev Wiz-strt.lev
air.lev asmodeus.lev astral.lev baalz.lev bigrm-1.lev
bigrm-2.lev bigrm-3.lev bigrm-4.lev bigrm-5.lev bigrm-6.lev
bigrm-7.lev bigrm-8.lev bigrm-9.lev bigrm-10.lev castle.lev
earth.lev fakewiz1.lev fakewiz2.lev fire.lev juiblex.lev
knox.lev medusa-1.lev medusa-2.lev medusa-3.lev medusa-4.lev
minefill.lev minend-1.lev minend-2.lev minend-3.lev minetn-1.lev
minetn-2.lev minetn-3.lev minetn-4.lev minetn-5.lev minetn-6.lev
minetn-7.lev oracle.lev orcus.lev sanctum.lev soko1-1.lev
soko1-2.lev soko2-1.lev soko2-2.lev soko3-1.lev soko3-2.lev
soko4-1.lev soko4-2.lev tower1.lev tower2.lev tower3.lev
valley.lev water.lev wizard1.lev wizard2.lev wizard3.lev
(files generated by makedefs at playground creation time)
data dungeon.pdf options oracles quest.dat rumors
data options oracles rumors
(files generated for Qt interface on Mac OS X)
Info.plist nethack.icns

116
Porting
View File

@@ -1,4 +1,4 @@
NetHack Porting Guidelines v 3.6 1999-11-29
NetHack Porting Guidelines v 3.7 2019-12-05
1.0 Introduction
@@ -6,7 +6,7 @@
This document goes through the steps required to port NetHack to a
new machine. The basic steps in porting the program are:
1. Get the code onto your machine. The parts of the current
1. Get the code onto your build machine. The parts of the current
directory setup you definitely need include src (NetHack code
shared by all systems), include (include files), util (code
for utility programs), and dat (various data files). The
@@ -14,6 +14,10 @@ new machine. The basic steps in porting the program are:
have the files in the top directory since you're reading this
one. :-)
If you will be cross-compiling for your target platform on
a different platform, you may want to read Cross-compiling
in the Top folder as well.
A full list of the distribution files and their associated
OSes may be found in the top-level file "Files".
@@ -53,7 +57,8 @@ new machine. The basic steps in porting the program are:
possibly send us some mail. We might be able to help.
6. Mail all of your fixes to us in a contextual form so that we can
easily integrate them into the code.
easily integrate them into the code, or fork the NetHack
repository on GitHub and issue a pull-request for your changes.
One general rule of thumb exists. Always add code. Don't delete
somebody else's code for yours -- it won't work on their machine if you do.
@@ -120,13 +125,6 @@ files for the game.
You may have to create an OS-specific module to handle things you want to
use, like a mouse or a ram-disk.
The utility compilers "dgn_comp" and "lev_comp" may be a better
place to start. They also require "makedefs" but are independent of
"nethack". They are usually the last programs made, but since they are
much smaller they may be more tractable when first arguing with the include
files. These programs create binary data files that "nethack" uses to
guide its dungeon creation.
3.1 Makefiles
This distribution provides makefiles for several kinds of systems.
@@ -167,11 +165,107 @@ for raw I/O, etc.
to. This file contains some OS dependencies concerning time and filename
creation.
An object of the NetHack development project is to get the game
working on as many different types of hardware and under as many different
operating systems as is practical. Any assistance will be appreciated.
Cross-compiling may allow porting of NetHack to a machine where there may
be challenges building on the platform directly, and may help maintain a
working version of NetHack on that platform. See the file Cross-compiling
for more information.
4.0 Build Process
NetHack requires the following steps to be carried out:
4.1. makedefs
Compile and link util/makedefs. Run makedefs repeatedly with different command
line options to produce several output files that are required for:
(a) additional build steps to follow, including some header
files: pm.h, onames.h, date.h.
(b) creation of files, containing information required by,
or about the game during its execution, that are stored in a
portable, platform-independent way, that need to be inserted
into the final game package.
util/makedefs -v
util/makedefs -o
util/makedefs -p
util/makedefs -z
util/makedefs -d
util/makedefs -r
util/makedefs -h
util/makedefs -s
4.2. Other utilities
Compile and link other utilities such as uudecode, tile-generation
utilities, and so forth. Those produce output files for use during the game and
need to be included in the packaging of the game.
4.3. Lua
Compile and link into a library, or obtain a prebuilt Lua library for
your platform. Place the Lua source into lib/lua-5.3.5 (or other folder
representing an appropriate Lua version); place the compiled Lua library into
lib.
4.4 Compile NetHack sources
Compile the source code of the game, including a suitable
regular-expression choice from several options available in sys/share. Pick one
that is supported by your OS or that you have obtained a 3rd party library for.
4.5 Compile optional window port components into a library
If your platform requires 3rd party sources in order to support the
window port options that you have chosen, such as curses sources for the curses
window port, you may store the sources for that library in a subfolder under
lib.
4.6. Link the game
Link the game to the Lua library, and to any window port support
libraries.
4.7 Package the game
5.0 Design Updates
The following design updates were introduced in NetHack 3.7.
5.1 Quest text files
The quest text files that were formerly converted from their source
text by makedefs during the build process, have been replaced by Lua versions
and are inserted into the game package for processing by the embedded Lua
interpreter during game execution.
5.2 Level Compiler
There is no longer a build-time level compiler. Instead, the level
descriptions have been converted to Lua and are inserted into the game package
for processing by the embeded Lua interpreter during game execution.
5.3 Dungeon Compiler
There is no longer a build-time dungeon compiler. Instead, the dungeon
description has been converted to Lua and is inserted into the game package for
processing by the embeded Lua interpreter during game execution.
5.4 Run-time Options
Some of the build and option information that was formerly produced at
build-time by makedefs, and contained information about the game platform and
options selected during the build of the game can now be produced at run-time
by code within the game itself. That was done to facilitate cross-compiling of
NetHack on one platform for game execution on another.
# NetHack 3.6 Porting $NHDT-Date: 1524689603 2018/04/25 20:53:23 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.5 $
# Copyright (c) 2005 by Michael Allison
# NetHack may be freely redistributed. See license for details.

122
README
View File

@@ -1,24 +1,65 @@
NetHack 3.6.2 -- General information
NetHack 3.7.0 work-in-progress -- General information
NetHack 3.6 is an enhancement to the dungeon exploration game NetHack,
NetHack 3.7 is an enhancement to the dungeon exploration game NetHack,
which is a distant descendent of Rogue and Hack, and a direct descendent of
NetHack 3.4 as there was no NetHack 3.5 release.
NetHack 3.6.
NetHack 3.6.2 contains a collection of about 320 bug fixes to NetHack 3.6.1
and more than 20 enhancements. The file doc/fixes36.2 in the source
distribution has a full list of them. The text in there was written for the
development team's own use and is provided "as is", so please do not ask us
to further explain the entries in that file. Some entries might be considered
"spoilers", particularly in the "new features" section.
NetHack 3.7.0 work-in-progress is not a release of NetHack. As a .0 version,
and still very early in its development cycle, there has already been changes
made, and there will continue to be many more prior to an eventual release.
The file doc/fixes37.0 in the source distribution will be updated with a list
of fixes as they are committed.
Below you will find some other general notes that were not considered
spoilers:
* Performance optimizations with tty including the ability to do per field
updating
* sys/winnt/nttty performance improvements mainly through the introduction
of a back buffer approach
* a couple of windows crash bug fixes
* adoption of the curses window port that was in use in the community
In short -- there are likely to be bugs. Don't treat NetHack-3.7 branch as
released code, and if stability is paramount, then the most recent
NetHack 3.6.4 release is safest for you.
We're making the .0 work-in-progress available so that you can observe, test
out, and contribute to its development. Constructive suggestions, GitHub pull
requests, and bug reports are all welcome and encouraged.
The file doc/fixes37.0 in the source distribution has a full list of bug-fixes
included so far, as well as brief mentions of some of the other code changes.
The text in there was written for the development team's own use and is
provided "as is", so please do not ask us to further explain the entries in
that file. Some entries might be considered "spoilers", particularly in the
"new features" section.
Along with the game improvements and bug fixes, NetHack 3.7 strives to make
some general architectural improvements to the game or to its building
process. Among them:
* Remove barriers to building NetHack on one platform and operating system,
for later execution on another (possibly quite different) platform and/or
operating system. That capability is generally known as "cross-compiling."
See the file "Cross-compiling" in the top-level folder for more information
on that.
* Replace the build-time "yacc and lex"-based level compiler, the "yacc and
lex"-based dungeon compiler, and the quest text file processing done
by NetHack's "makedefs" utility, with Lua text alternatives that are
loaded and processed by the game during play.
* Write game savefiles and bonesfiles in a more portable and consistent way
to open up the possibility of utilizing them between different platforms,
such as between your desktop computer and your hand-held device.
* Add support to make the game restartable without exit (a.k.a. "play again"
support). Toward that end, many previously scattered and separate variables
have been gathered into a central 'g' structure in decl.h/decl.c. That
will benefit the porting effort to some platforms that are under
consideration.
Here are some other general notes on the changes in NetHack 3.7 that were not
considered spoilers:
- automatic annotation "gateway to Moloch's Sanctum" for vibrating square
level once that square's location becomes known (found or magic
mapped); goes away once sanctum temple is found (entered or high altar
mapped)
- savefile: add support to deconstruct internal data structures down into
their individual fields and save those fields instead of the entire
struct
- savefile: use little-endian format for fields where that makes a difference
- - - - - - - - - - -
@@ -29,13 +70,13 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code.
call it.
2. Having unpacked, you should have a file called 'Files' in your Top
directory.
directory.
This file contains the list of all the files you now SHOULD
have in each directory. Please check the files in each directory
against this list to make sure that you have a complete set.
This file also contains a list of what files are created during
This file also contains a list of what files are created during
the build process.
The names of the directories listed should not be changed unless you
@@ -46,7 +87,11 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code.
"license" in the 'dat' subdirectory. It is expected that you comply
with the terms of that license, and we are very serious about it.
4. If everything is in order, you can now turn to trying to get the program
4. If you are attempting to build NetHack on one platform/processor, to
produce a game on a different platform/processor it may behoove you to
read the file "Cross-compiling" in your Top directory.
5. If everything is in order, you can now turn to trying to get the program
to compile and run on your particular system. It is worth mentioning
that the default configuration is SysV/Sun/Solaris2.x (simply because
the code was housed on such a system).
@@ -57,21 +102,23 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code.
for particular windowing environments. Reading them, and the man pages,
should answer most of your questions.
At the time of this release, NetHack 3.6 has been tested to run/compile
on:
Intel Pentium or better (or clone) running Linux, BSDI, or
At the time of the most recent official release, NetHack 3.6, it had
been tested to run/compile on:
Intel Pentium or better (or clone) running Linux, BSDI, or
Windows (7 through 10)
Intel 80386 or greater (or clone) boxes running Linux, or BSDI
Mac OS X 10.11 (follow the instructions in sys/unix, not sys/mac)
OpenVMS (aka VMS) V8.4 on Alpha and on Integrity/Itanium/IA64
Instructions have been provided by way of community contribution on:
msdos protected mode using djgpp
msdos protected mode using djgpp including a Linux-host djgpp
cross-compile
Previous versions of NetHack were tested and known to run on the
following systems, but it is unknown if they can still build and
execute NetHack 3.6:
Previous versions of NetHack were tested and known to run on the
following systems, but it is unknown if they can still build and
execute NetHack 3.6 or NetHack 3.7:
Apple Macintosh running MacOS 7.5 or higher, LinuxPPC, BeOS 4.0
Atari ST/TT/Falcon running TOS (or MultiTOS) with GCC
@@ -123,10 +170,9 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code.
- - - - - - - - - - -
If you have problems building the game, or you find bugs in it, we recommend
If you have problems building the game, or you find bugs in it, we recommend
filing a bug report from our "Contact Us" web page at:
https://www.nethack.org/common/contact.html or
http://www.nethack.org/common/contact.html
https://www.nethack.org/common/contact.html
Please include the version information from #version or the command line
option --version in the appropriate field.
@@ -138,12 +184,12 @@ available can be obtained via git here:
When sending correspondence, please observe the following:
o Please be sure to include your machine type, OS, and patchlevel.
o Please avoid sending us binary files (e.g. save files or bones files).
o Please avoid sending us binary files (e.g. save files or bones files).
If you have found a bug and think that your save file would aid in solving
the problem, send us a description in words of the problem, your machine
type, your operating system, and the version of NetHack. Tell us that you
the problem, send us a description in words of the problem, your machine
type, your operating system, and the version of NetHack. Tell us that you
have a save file, but do not actually send it.
You may then be contacted by a member of the development team with the
You may then be contacted by a member of the development team with the
address of a specific person to send the save file to.
o Though we make an effort to reply to each bug report, it may take some
time before you receive feedback. This is especially true during the
@@ -152,21 +198,21 @@ o We don't give hints for playing the game.
o Don't bother to ask when the next version will be out or you can expect
to receive a stock answer.
If you want to submit a patch for the NetHack source code via email directly,
If you want to submit a patch for the NetHack source code via email directly,
you can direct it to this address:
nethack-bugs (at) nethack.org
If a feature is not accepted you are free, of course, to post the patches
If a feature is not accepted you are free, of course, to post the patches
to the net yourself and let the marketplace decide their worth.
All of this amounts to the following: If you decide to apply a free-lanced
patch to your 3.6 code, you are welcome to do so, of course, but we won't
be able to provide support or receive bug reports for it.
be able to provide support or receive bug reports for it.
In our own patches, we will assume that your code is synchronized with ours.
-- Good luck, and happy Hacking --
# $NHDT-Date: 1557077369 2019/05/05 17:29:29 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.55 $
# $NHDT-Date: 1572309271 2019/10/29 00:34:31 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.57 $
# Copyright (c) 2012 by Michael Allison
# NetHack may be freely redistributed. See license for details.

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

View File

@@ -9,17 +9,17 @@
($dir = $0) =~ s!^(.*/)(.*)!$1!;
print "T (files generated by lev_comp at playground creation time)\n";
foreach $des (<$dir*.des>){
open IN, "<", $des or warn("Can't open $des: $!");
while(<IN>){
m/^(MAZE|LEVEL):\s*"(.*?)"/ && do {
print "F $2.lev\n";
};
}
close IN;
}
#print "T (files generated by lev_comp at playground creation time)\n";
#
#foreach $des (<$dir*.des>){
# open IN, "<", $des or warn("Can't open $des: $!");
# while(<IN>){
# m/^(MAZE|LEVEL):\s*"(.*?)"/ && do {
# print "F $2.lev\n";
# };
# }
# close IN;
#}
while(<DATA>){
print;
}
@@ -41,10 +41,6 @@ T (files generated for win32 gui at compile time)
F guioptions
T (files generated by makedefs at playground creation time)
F data
F dungeon.pdf
F options
F oracles
F quest.dat
F rumors
T (file generated by dgn_comp at playground creation time)
F dungeon

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

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