diff --git a/src/NetHack_3.7/.clang-format b/src/NetHack_3.7/.clang-format deleted file mode 100644 index 00cf466..0000000 --- a/src/NetHack_3.7/.clang-format +++ /dev/null @@ -1,64 +0,0 @@ ---- -Language: Cpp -# BasedOnStyle: LLVM -AccessModifierOffset: -2 -AlignAfterOpenBracket: true -AlignEscapedNewlinesLeft: true -AlignOperands: true -AlignTrailingComments: true -AllowAllParametersOfDeclarationOnNextLine: false -AllowShortBlocksOnASingleLine: false -AllowShortCaseLabelsOnASingleLine: false -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false -AllowShortFunctionsOnASingleLine: None -AlwaysBreakAfterDefinitionReturnType: true -AlwaysBreakTemplateDeclarations: false -AlwaysBreakBeforeMultilineStrings: false -BreakBeforeBinaryOperators: NonAssignment -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BinPackParameters: true -BinPackArguments: true -ColumnLimit: 78 -ConstructorInitializerAllOnOneLineOrOnePerLine: false -ConstructorInitializerIndentWidth: 4 -DerivePointerAlignment: false -ExperimentalAutoDetectBinPacking: false -IndentCaseLabels: false -IndentWrappedFunctionNames: false -IndentFunctionDeclarationAfterType: false -MaxEmptyLinesToKeep: 1 -KeepEmptyLinesAtTheStartOfBlocks: false -NamespaceIndentation: None -ObjCBlockIndentWidth: 2 -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: true -PenaltyBreakBeforeFirstCallParameter: 19 -PenaltyBreakComment: 300 -PenaltyBreakString: 1000 -PenaltyBreakFirstLessLess: 120 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 100 -PointerAlignment: Right -SpacesBeforeTrailingComments: 1 -Cpp11BracedListStyle: false -Standard: Cpp03 -IndentWidth: 4 -TabWidth: 8 -UseTab: Never -BreakBeforeBraces: Linux -SpacesInParentheses: false -SpacesInSquareBrackets: false -SpacesInAngles: false -SpaceInEmptyParentheses: false -SpacesInCStyleCastParentheses: false -SpaceAfterCStyleCast: true -SpacesInContainerLiterals: true -SpaceBeforeAssignmentOperators: true -ContinuationIndentWidth: 4 -CommentPragmas: '^ NetHack 3' -ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] -SpaceBeforeParens: ControlStatements -DisableFormat: false -... diff --git a/src/NetHack_3.7/.gitattributes b/src/NetHack_3.7/.gitattributes deleted file mode 100644 index 4abc1c9..0000000 --- a/src/NetHack_3.7/.gitattributes +++ /dev/null @@ -1,17 +0,0 @@ -*.[ch] NHSUBST -*.cpp NHSUBST -*.sh NHSUBST -*.pl NHSUBST -Porting NHSUBST -README NHSUBST -* text=auto -*.hqx -text -*.sln -text -*.vcxproj -text -*.doc !diff -*.DOC !diff -*.uu NH_header=no -*.xpm NH_header=no -.git* NH_header=no -* NH_filestag=(file%s_in_top_directory) -NetHack.dsw NH_filestag=(file%s_for_win32_that_are_moved_into_._at_compile_time) diff --git a/src/NetHack_3.7/.gitignore b/src/NetHack_3.7/.gitignore deleted file mode 100644 index 2a24910..0000000 --- a/src/NetHack_3.7/.gitignore +++ /dev/null @@ -1,93 +0,0 @@ -# CVS default ignores begin -tags -TAGS -.make.state -.nse_depinfo -*~ -\#* -.#* -,* -_$* -*$ -*.old -*.bak -*.BAK -*.orig -*.rej -.del-* -*.a -*.olb -*.o -*.obj -*.so -*.exe -*.Z -*.elc -*.ln -core -# CVS default ignores end -.*.swp - -# We generate makefiles by shell script -Makefile - -# Win32-specific ignores -Debug/ -Release/ -binary/ -build/ -ipch/ -lib/* -Nethack.sln -Nethack.sdf -Nethack.opensdf -Makefile.bcc -Makefile.gcc -Makefile-orig -Makefile.bcc-orig -Makefile.gcc-orig -*.suo -*.pdb -*.ilk -# VS2013 extension to auto-whine about questionable code generates these -*.lastcodeanalysissucceeded -# VS 2017 caches data into the hidden directory .vs -.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 - -#libnethack -targets/* -bundle/* -#test.js -#sys/lib/npm-package/build/nethack.js -#sys/lib/npm-package/build/nethack.wasm -*.user -util/*.lib -util/*.exp diff --git a/src/NetHack_3.7/.gitmodules b/src/NetHack_3.7/.gitmodules deleted file mode 100644 index 94c131f..0000000 --- a/src/NetHack_3.7/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "submodules/lua"] - path = submodules/lua - url = https://github.com/lua/lua.git -[submodule "submodules/pdcurses"] - path = submodules/pdcurses - url = https://github.com/wmcbrine/PDCurses.git -[submodule "submodules/pdcursesmod"] - path = submodules/pdcursesmod - url = https://github.com/Bill-Gray/PDCursesMod.git diff --git a/src/NetHack_3.7/Cross-compiling b/src/NetHack_3.7/Cross-compiling deleted file mode 100644 index 31db08c..0000000 --- a/src/NetHack_3.7/Cross-compiling +++ /dev/null @@ -1,696 +0,0 @@ -Cross-compiling NetHack 3.7 Last edit: February 18, 2023 - -The NetHack 3.7 build process differs from the build process of previous -versions in some important ways. Those differences 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 - B5. Case sample: amiga (started but incomplete) - B6. Case sample: Web Assembly, libnh - --------------------------------------------------------------------------------- - 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 anymore. - -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. Conversely, - 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 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 required output files that contain information required by the - game, or contain information about the game during its execution, that - are stored in a portable, platform-independent way, that need to be - inserted into the game package (makedefs -d, -o, -r, -h, -s). - 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 2, 3 and 4 above. - -Step 4 is now the only impediment to cross-compiling NetHack. That impediment -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 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 embedded Lua 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 embedded Lua 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, - macOS are some examples of platforms that have cross-compilers - for other targets available) - - o Then, make the community, devteam, and others 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 - it's 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 -to generate binaries for the same platform as the host, where the HOST -compiler and the TARGET compiler are 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 - from sources: util/makedefs.c, src/mdlib.c, src/monst.c, src/objects.c - src/date.c, src/alloc.c - - b) Execute HOST native makedefs utility, util/makedefs, as follows: - Required for complete packaging of the game, but not the C source - game compile: - 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: There are some source files that need to be compiled for linking - into utilities that are needed on the HOST side, but that are also - needed again later as TARGET obj files for linking into the TARGET - executable, and therefore must be compiled twice. - They include: src/drawing.c, src/objects.c, src/monst.c, - src/alloc.c, util/panic.c. It is important to keep the compiled - HOST-side obj files produced by the HOST native compiler distinct from - the TARGET-side obj files produced by the cross-compiler. That can be - accomplished either by naming the generated object files a little - differently (perhaps with a suffix) between the HOST-side and the - TARGET-side, or by placing the HOST-side obj files and the TARGET-side - obj files into distinct, different directories during the build process. - Use whatever method works best for your cross-compile effort and tools. - - util/dlb - - from sources: src/dlb.c, src/dlb_main.c, src/alloc.c, - util/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/monst.c, src/objects.c - purpose: Read win/share/monsters.txt, - win/share/objects.txt and win/share/other.txt - files and produce a .bmp file. - - util/gif2txt - - from sources: win/share/gifread.c, win/share/tiletext.c, - win/share/tilemap.c, src/drawing.c, - src/monst.c, src/objects.c, - src/alloc.c, util/panic.c - purpose: Read win/share/monsters.txt, - win/share/objects.txt and win/share/other.txt - files and produce a .gif file. - - util/ppmwrite - - from sources: win/share/ppmwrite.c, win/share/tiletext.c, - win/share/tilemap.c, src/drawing.c, - src/monst.c, src/objects.c, - src/alloc.c, util/panic.c - purpose: Read win/share/monsters.txt, - win/share/objects.txt and win/share/other.txt - files and produce a .ppm file. - - - +--------------------------------------------+ - | 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/alloc.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/dlb.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/insight.c, src/invent.c, src/isaac64.c, - src/light.c, src/lock.c, src/mail.c, - src/makemon.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/nhlobj.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/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/symbols.c, src/sys.c, src/teleport.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/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 - - generated (if req'd): - src/tile.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.4.6/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/... - or lib/pdcursesmod/... - - 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 - - Cross-compiler bits tested: - https://github.com/andrewwutw/build-djgpp - and the pre-built binary for your platform from: - https://github.com/andrewwutw/build-djgpp/releases - and a DOS-extender (for including in msdos packaging) from - http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip - and pdcurses from: - https://github.com/wmcbrine/PDCurses.git - or pdcursesmod from: - https://github.com/Bill-Gray/PDCursesMod.git - - - A shell script to download that djgpp cross-compiler and associated - pieces for either linux or macOS is available: - - sh sys/msdos/fetch-cross-compiler.sh - - That script won't install anything, it just does file fetches and stores - them in subfolders of lib. The linux.370 and macOS.370 hints files are - configured to find the cross-compiler there if you add - CROSS_TO_MSDOS=1 - on your make command line. - - Note: Both the fetch-cross-compiler.sh script and and the msdos - cross-compile and package procedures require unzip and zip to be available - on your host build system. - - On your linux host: - - cd sys/unix ; sh setup.sh hints/linux.370 ; cd ../.. - make fetch-lua - - On your macOS host: - - cd sys/unix ; sh setup.sh hints/macOS.370 ; cd ../.. - make fetch-lua - - The MSDOS cross-compile can then be carried out by specifying - CROSS_TO_MSDOS=1 on the make command line: - - make CROSS_TO_MSDOS=1 all - make CROSS_TO_MSDOS=1 package - - You can explicitly include tty and curses support if desired. The default - you'll end up with is a tty-only cross-compile build: - - make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_MSDOS=1 package - - Result: The "make package" target will bundle all of the necessary - components to run NetHack on msdos into a folder: - targets/msdos/pkg - and then it zips the contents of that folder into: - targets/msdos/nh370dos.zip - - Also note that building the msdos targets using the make command - above, does not preclude you from building local linux or macOS - targets as well. Just drop the CROSS_TO_MSDOS=1 from the make - command line. That's because the cross-compiler hints additions are - enclosed inside ifdef sections and won't interfere with the - non-cross-compile build in that case. - - +-------------------------+ - | B5. Case sample: amiga | - +-------------------------+ - -Disclaimer: This is a minimal recipe, just to help someone else get - started if they have a desire to get a full cross-compile of - NetHack going for the Amiga. - See CAVEATS below. - -Cross-compiler used: bebbo's amiga-gcc -Cross-compiler url: https://github.com/bebbo/amiga-gcc - - To our knowledge, a pre-built copy of the cross-compiler isn't available, - so you will likely have to obtain the cross-compiler sources via git and - build it on your system. - - The build prerequisite packages for building the compiler on Ubuntu can be - easily obtained: - - sudo apt install make wget git gcc g++ lhasa libgmp-dev \ - libmpfr-dev libmpc-dev flex bison gettext texinfo ncurses-dev \ - autoconf rsync - - The build prerequisite packages for macOS via homebrew are documented but - not tested by us any of us to date. - - brew install bash wget make lhasa gmp mpfr libmpc flex gettext \ - texinfo gcc make autoconf - - After installing the prerequite packages and the cross-compiler - it was a straightforward build: - - git clone https://github.com/bebbo/amiga-gcc.git - cd amiga-gcc - make update - - [Note that you may have to take ownership of the files in the bebbo - repo via chown before succesfully carrying out the next steps] - - make clean - make clean-prefix - date; make all -j3 >&b.log; date - - The compiler pieces are installed in /opt/amiga by default. If you prefer, - you can alter the prefix before you build if you want. The instructions - for doing so were spelled out at the time of this writing at: - - https://github.com/bebbo/amiga-gcc - - On your linux host: - - cd sys/unix ; sh setup.sh hints/linux.370 ; cd ../.. - make fetch-lua - - On your macOS host: - - cd sys/unix ; sh setup.sh hints/macOS.370 ; cd ../.. - make fetch-lua - - The Amiga cross-compile can then be carried out by specifying - CROSS_TO_AMIGA=1 on the make command line: - - make CROSS_TO_AMIGA=1 all - make CROSS_TO_AMIGA=1 package - - You can explicitly include tty and curses support if desired, otherwise - you'll end up with a tty-only cross-compile build. The SDL1 pdcurses - support has not been tested. - - make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_AMIGA=1 all - - Result: The "make package" target will bundle the (hopefully) necessary - components to run NetHack on msdos into a folder: - targets/amiga/pkg - and then it zips the contents of that folder into: - targets/amiga/nh370ami.zip - - Also note that building the amiga targets using the make command - above, does not preclude you from building local linux or macOS - targets as well. Just drop the CROSS_TO_AMIGA=1 from the make - command line. - - The cross-compiler hints additions are enclosed inside ifdef sections - and won't interfere with the non-cross-compile build in that case. - - CAVEATS: The original NetHack Amiga build steps included the source for - some utilities that were built and executed on the amiga: - txt2iff and xpm2iff - as part of the NetHack build procedure on amiga. - Those did not compile out-of-the-box on the linux host. They - will either have to be: - - ported to build and run on the linux or macOS cross-compile - host - or - - - their functionality will have to be rolled into amiga NetHack - itself and executed on the target Amiga the first time the game - is run, perhaps. - - If you make headway, or are successful getting a working copy of - NetHack going on the amiga, drop us a note at devteam@nethack.org. - - +--------------------------------+ - | B6. Case sample: Web Assembly | - +--------------------------------+ - -Credit: The initial Web Assembly cross compile was found in a pull request: - https://github.com/NetHack/NetHack/pull/385 - by apowers313. The pull request was merged with some accompanying - NetHack source tree integration changes in early October 2020. - -Cross-compiler used: emscripten -Cross-compiler url: https://emscripten.org/docs/getting_started/downloads.html - - Here's a brief guide to obtaining the cross-compiler sources via git and - building it on your system. - - For Ubuntu, the build prerequisite packages for building the compiler can - be easily obtained: - - sudo apt-get install python3 cmake default-jre - - For macOS, you will need to install Xcode, git, cmake, Python 3.5 or new - (at time of this writing). - - After installing the prerequite packages above, obtain the cross-compiler - via git and build it from the directory of your choice using steps similar - to these: - - git clone https://github.com/emscripten-core/emsdk.git - cd emsdk - git pull - ./emsdk install latest - ./emsdk activate latest - source ./emsdk_env.sh - - The steps above reflect what was outlined at this url at the time - of writing: - - https://emscripten.org/docs/getting_started/downloads.html - - That is the definitive source and trumps anything documented here. - - On your linux host, prepare to cross-compile NetHack as follows: - - cd sys/unix ; sh setup.sh hints/linux.370 ; cd ../.. - make fetch-lua - - On your macOS host, prepare to cross-compile NetHack as follows: - - cd sys/unix ; sh setup.sh hints/macOS.370 ; cd ../.. - make fetch-lua - - Then, cross-compile to targets/wasm as follows: - - make CROSS_TO_WASM=1 - - You can build src/libnh.a from pull request 385 as follows: - - make WANT_LIBNH=1 - - Do not add any additional windowport interfaces to your build - (such as WANT_WIN_TTY=1 WANT_WIN_CURSES=1 WANT_WIN_X11=1 or - WANT_WIN_QT=1) as those aren't applicable to the Web Assembly - or nethacklib builds. A "shim" pseudo-windowport is included - from pull request 385. - - Result: As mentioned, the wasm cross-compile will end up in - targets/wasm and the nethacklib.a will end up in - src. - - The cross-compiler hints additions are enclosed inside ifdef sections - and shouldn't interfere with the non-cross-compile builds using - hints/linux.370 or hints/macOS.370. - ---- - diff --git a/src/NetHack_3.7/DEVEL/.gitattributes b/src/NetHack_3.7/DEVEL/.gitattributes deleted file mode 100644 index 835917d..0000000 --- a/src/NetHack_3.7/DEVEL/.gitattributes +++ /dev/null @@ -1,7 +0,0 @@ -*.txt NHSUBST -nhgitset.pl NHSUBST -hooksdir/* NHSUBST -* text=auto -DOTGIT/TARGET NH_header=no -hooksdir/TARGET NH_header=no -* NH_filestag=(file%s_for_people_developing_changes_to_NetHack) diff --git a/src/NetHack_3.7/DEVEL/DOTGIT/TARGET b/src/NetHack_3.7/DEVEL/DOTGIT/TARGET deleted file mode 100644 index 6b8710a..0000000 --- a/src/NetHack_3.7/DEVEL/DOTGIT/TARGET +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/src/NetHack_3.7/DEVEL/Developer.txt b/src/NetHack_3.7/DEVEL/Developer.txt deleted file mode 100644 index 99846d8..0000000 --- a/src/NetHack_3.7/DEVEL/Developer.txt +++ /dev/null @@ -1,234 +0,0 @@ - ___ _ - | \ _____ _____| |___ _ __ ___ _ _ - | |) / -_) V / -_) / _ \ '_ \/ -_) '_| - |___/\___|\_/\___|_\___/ .__/\___|_| - |_| - -# NetHack 3.7 Developer.txt $NHDT-Date: 1596498265 2020/08/03 23:44:25 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.19 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -Welcome to the NetHack Infrastructure Developer's Guide. - -This is the info you need if you are developing code for NetHack. -(This information is from DevTeam. If you are working with a variant please -check for additional documentation for that variant.) - -For information on building NetHack, see README in the top level directory. -For information on playing NetHack, see the Guidebook in the doc directory. - -DANGER! WORK IN PROGRESS! Known issues marked XXX. - -CONTENTS -1. email -2. git repositories -3. bug reporting -4. git configuration -5. variable expansion -6. reserved names -7. nhadd/nhcommit -8. hooks ------------------------------------------------------------------------------- -1. email -Email to devteam@nethack.org will usually get a response, but it may take a -while. Please do not send save files, binary screen grabs, or other large -things. ------------------------------------------------------------------------------- -2. git repositories -The public NetHack git repository is available (read-only) at: - https://github.com/NetHack/NetHack - or - https://sourceforge.net/p/nethack/NetHack/ - -Branches: -NetHack-3.6.0 The 3.6.0 release code and subsequent fixes and additions. ------------------------------------------------------------------------------- -3. bug reporting -Please use the form at http://www.nethack.org/common/contact.html (or send -us an email if that's more appropriate). ------------------------------------------------------------------------------- -4. git configuration - -NOTE: These instructions assume you are on the default branch; this _is_ - where you want to be for setting things up. This may or may not be - the branch you want to use for your changes; see the appropriate - project private documentation for more information (if you are working - alone we suggest using branch names starting with "LOCAL-"). - -NOTE: The following instructions require perl. If you do not have perl on - your system, please install it before proceeding. - -A. If you have never set up git on this machine before: - (This assumes you will only be using git for NetHack. If you are going to - use it for other projects as well, think before you type.) - Tell git what name (or nickname) and email address to use for you: - git config --global user.name "MY NAME" - git config --global user.email USER@EXAMPLE.COM - You probably want to set up a credential cache. - macOS (10 - 12): - git config --global credential.helper osxkeychain - Windows: - git config --global credential.helper store -XXX linux -B. Specify the prefix for variable substitution: - (This assumes you are not a member of DevTeam or any variant's development - team. If you are, this may be wrong. Look for more specific documentation. - For example, this file uses "MINE" for the substitution prefix - this will - almost always be wrong if you are working with someone else.) - Decide where you want to put this info; it should NOT be inside the - tree you cloned from git. I use ~/nethack/GITADDDIR; for that base, - create the needed directories and edit the file: - ~/nethack/GITADDDIR/DOTGIT/PRE - Put this in it (if your OS is not Unix-like you may need to change - the first line): - #!/bin/sh - git config nethack.substprefix MINE - Now make it executable: - chmod +x ~/nethack/GITADDDIR/DOTGIT/PRE -C. Configure the repository: - - cd to the top level of the repository - - tell the repository about the directory you created above: - git config nethack.gitadddir FULL_PATH_TO_GITADDDIR - so for the example above: - git config nethack.gitadddir ~/nethack/GITADDDIR - - do the automated setup: - perl DEVEL/nhgitset.pl - If it complains, fix what it complains about. nhgitset.pl accepts - the following options: - -v verbose - -n dry run - You can re-run nhgitset.pl as often as needed; occasionally we will - update it (or something it installs) and you will need to run it again - so the changes take effect. -D. aliases - Two aliases are installed by nhgitset.pl: - nhadd - nhcommit - These two commands take the same options as the normal git add and commit - commands but perform RCS/CVS-style variable substitution. - - Note that nothing terrible will happen if you do not use the nh* versions - of the commands. - - Supported substitutions: - MINE-Date the commit time and date - Experimental substitutions: - MINE-Revision CVS style revision number - MINE-Branch the current git branch - - For direct access to the substitution mechanism, use: - nhsub - - See the section "nhadd/nhcommit" for details on those aliases. - Run "perldoc DEVEL/hooksdir/nhsub" for details on nhsub. - -That's it. If you need to do something more when setting up your repository, -keep reading. Otherwise, you are done with this section. - -1) to run your own hooks in addition to ours: - name your hook - WHEN-HOOKNAME - where WHEN is - PRE (run your code before the NetHack hook) - POST (run your code after the NetHack hook) - and HOOKNAME is the normal git name of the hook. - Make sure the hooks are executable (chmod +x ...). - Be sure to test carefully since the composition of two bits of code may or - may not do what you want. -2) to install other bits on setup: - Put additional files in the GITADDDIR tree. Use "DOTGIT" instead of - ".git". If a file called PRE, POST, or INSTEAD exists in a - subdirectory of GITADDDIR, it is run before the copy, after the copy, - or instead of the copy. No copy operation is attempted in the DOTGIT - directory; use a script and standard git commands to change the - contents as needed. -3) NB: In all namespaces, anything that matches m/^nh/i or m/^nethack/i is - reserved. ------------------------------------------------------------------------------- -5. variable expansion -A. Introduction - We have implemented an RCS/CVS/SVN style variable expansion mechanism. - References of either of the formats: - $PREFIX-VARNAME$ - $PREFIX-VARNAME: VALUE $ - will be handled (if enabled). - - The PREFIX is the value in the git config variable nethack.substprefix. - VARNAME is one of: - Date - Branch (experimental) - Revision (experimental) - other names will give a warning. - -B. Enabling variable expansion - Variable expansion is controlled by the .gitattributes file. - - To enable variable expansion: - pattern NHSUBST - To disable variable expansion: - pattern -NHSUBST - - More information: "git help gitattributes" - -C. Oddities - To trigger variable expansion, you _must_ use "git nhadd" or "git nhcommit" - instead of "git add" or "git commit." Nothing terrible will happen if you - use the wrong one, but the values will not be updated. - - Variable expansion modifies the files in the work tree - your editor or - IDE may or may not be happy with this. - -D. Using your own hooks - You can use your own hooks - put them in .git/hooks as usual BUT name them - as follows: - WHEN-HOOKNAME - where WHEN is: - PRE (execute the code before the NetHack hook) - POST (execute the code after the NetHack hook) - and HOOKNAME is the normal git name for the hook. - - Test carefully - interactions between hooks can be nasty. ------------------------------------------------------------------------------- -6. reserved names - Anything that matches m/^nh/i or m/^nethack/i is reserved in all - namespaces (environment, file names, git config, etc). ------------------------------------------------------------------------------- -7. nhadd/nhcommit - nhadd is essentially "git nhsub $*; git add $*" - nhcommit is essentially "git nhsub $*; git commit $*" - - As "git add" and "git commit" have complex arguments, nhsub attempts to - do the right thing - or at least something reasonable - for most arguments. - If nhadd/nhcommit don't do what you need, run "git nhsub" on its own then - add/commit. - - So when do I need to use what? - The object is to get nhsub run right before git takes a snapshot of each - file. So for example: - - use "git nhcommit " instead of "git commit " - - use "git nhadd " instead of "git add " - - use either "git commit" or "git nhcommit" (because the snapshot was - already taken) - - if you use "git nhsub " then you can "git add " or - "git commit " - - For more complex situations, "git nhsub" takes -v and -n flags - see - "perldoc DEVEL/hooksdir/nhsub". - ------------------------------------------------------------------------------- -8. hooks - - nhgitset.pl also installs hooks into .git/hooks. These hooks provide - a framework which allows local hook code to co-exist with hook code we - supply - see DEVEL/hooksdir/NHgithook.pm for details. - - We currently use the following hooks: - post-checkout - post-commit - post-merge - These are used to generate dat/gitinfo.txt which provides the data that - ends up available through the game command #version and the command line - option --version. - ------------------------------------------------------------------------------- - diff --git a/src/NetHack_3.7/DEVEL/code_features.txt b/src/NetHack_3.7/DEVEL/code_features.txt deleted file mode 100644 index 6c71000..0000000 --- a/src/NetHack_3.7/DEVEL/code_features.txt +++ /dev/null @@ -1,124 +0,0 @@ -# NetHack 3.7 code_features.txt $NHDT-Date: 1596498264 2020/08/03 23:44:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.6 $ -# Copyright (c) 2015 by Michael Allison -# NetHack may be freely redistributed. See license for details. - -Developer-useful info about code features, assumptions, purpose, -rationale, etc. - -============================================== -FEATURE_NOTICE Alerts for a Release - -There is a code mechanism for alerting players to a change in behavior -over prior versions of the game. - -Here's how to do it: - o Where the change in behavior needs to alert the player, - - Add an 'if statement' to invoke the alert behavior - if the condition is met, for example - if (flags.suppress_alert < FEATURE_NOTICE_VER(3.6.0)) - pline("Note: and explain the change here."); - - The example above will alert the users for a new feature - added in 3.6.0 via a one-liner via pline(), but you - could get more elaborate (just make sure it is all done - in the 'if' code block. - -Once the user finds the alert no longer useful, or becoming -annoying, they can set the "suppress_alert" option. - - The user can only set the suppress_alert to the current - version, not future versions. That restriction is done - so that the feature can be used for new things in new - releases. - - The suppression can be done interactively mid game with - the 'O' command, or via - OPTIONS=suppress_alert:3.6.0 - in the user's config file. - -============================================== -PREFIXES_IN_USE and NOCWD_ASSUMPTIONS - -Those provide a storage mechanism for holding the paths to various different -types of files. Those paths are stored in the fqn_prefix[] array. They are a -mechanism for enabling separation of the different files that NetHack needs. - -The prefixes are added to the beginning of file names by various routines in -files.c immediately prior to opening one of the types of files that the game -uses. - -They aren't about config file options (although config file options would be -one way to set non-default values for some of the paths in the fqn_prefix[] -array). Obviously the very first path needed (now sysconfdir, previously -configdir) isn't viable for setting via config file options, but the game -still needs to hunt it down "someplace." When the "someplace" is figured -out, that place (path) would be stored in fqn_prefix[SYSCONPREFIX]. How it -gets stored in fqn_prefix[SYSCONPREFIX] is up to us as developers. - -Any of the fqn_prefix[] entries can be set somehow. It could be done in port -startup code; in options processing; in config file processing; by -translating a system environment variable such as USERPROFILE; whatever -you/we want. The point is that NOCWD_ASSUMPTIONS and PREFIXES_IN_USE are -there to ensure that there is a place to store that path information. The -code to *utilize* the information is already in files.c (see fqname()). - -There is a fqn_prefix[] entry for holding the path to each of the following: - PREFIX NAME -0 HACKPREFIX hackdir -1 LEVELPREFIX leveldir location to create level files -2 SAVEPREFIX savedir location to create/read saved games -3 BONESPREFIX bonesir location to create/read bones -4 DATAPREFIX datadir location to read data.base etc. -5 SCOREPREFIX scoredir location to read/write scorefile -6 LOCKPREFIX lockdir location to create/read lock files -7 SYSCONFPREFIX sysconfdir location to read SYSCF_FILE -8 CONFIGPREFIX configdir location to read user configuration file -9 TROUBLEPREFIX troubledir location to place panic files etc. - -To recap, they are about enabling "different paths for different things", and -separation of: -- read-only stuff from read-write stuff. -- sysadmin stuff from user-writable stuff. -etc. - -============================================== -REGULAR EXPRESSIONS - -There are multiple regular expression libraries supported. Currently, one (and -only one) of the following files should be linked into a built: - sys/share/cppregex.cpp - sys/share/posixregex.c - sys/share/pmatchregex.c - -This provides a way to access different system regular expression libraries, -or fall back onto pmatch() if none is available. cppregex.cpp uses the regular -expression library in the C++11 standard, and is the default on Windows. -posixregex.c uses the POSIX regular expression library, and is the default on -POSIX. pmatchregex.c is the fallback. - -Configuration files written using either of the two true regex engines are -compatible with one another, as the regular expressions are both POSIX -extended regular expressions. Configuration files written using the fallback -engine are incompatible. - -Additional regular expression implementations can be written. The full -interface documentation is in sys/share/posixregex.c - -=========================================================== -HEADER FILE NOTES - -hack.h defines values that are available to all NetHack source files, -contains enums for use in all NetHack source files, and contains a -number of struct definitions for use in all NetHack source files. -hack.h does not contain variable declarations or variable definitions. - -decl.h and decl.c are related: decl.h contains the extern declarations -for variables that are defined in decl.c. These variables are global -and available to all NetHack source files. -decl.c variable definitions are generally laid out in much the same -order as their corresponding declarations in decl.h. - -A new header file cstd.h was added to coincide with 3.7's switch to -C99. It contains calls to some C99 standard header files. - -=================== NEXT FEATURE ========================== - - - diff --git a/src/NetHack_3.7/DEVEL/code_style.txt b/src/NetHack_3.7/DEVEL/code_style.txt deleted file mode 100644 index 0f0edce..0000000 --- a/src/NetHack_3.7/DEVEL/code_style.txt +++ /dev/null @@ -1,289 +0,0 @@ -# NetHack 3.7 code_style.txt $NHDT-Date: 1694890786 2023/09/16 18:59:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.8 $ -# Copyright (c) 2015 by Derek S. Ray -# NetHack may be freely redistributed. See license for details. - -NetHack DevTeam Coding Style -============================ - -NetHack is written in C, with a little bit of C++ to access platform -libraries. This coding style document is concerned primarily with the style -used for C source files. We do not have a defined style for C++ files, but C++ -should be styled in keeping with C. - -The code base in C files was, close to the 3.6 release, reformatted using a -version of the clang-format tool patched to support K&R-style argument -declarations. Due to some incompatibilities, the patch is not publicly -available and clang-format is not expected to be regularly used. Since then, -function declarations and definitions have been switched to ANSI. - -Developers should do their best to adhere to the coding style to promote -legible, easy-to-edit code. Legibility is paramount, so in some cases, it may -be better not to fully adhere to the style guidelines. - -Recipes for common text editors can be found at the end of this file. - -Indentation and Spacing ------------------------ - -The basic indentation is 4 spaces wide. All indentation is done using space -characters, not tabs. - -Lines should be at most 78 characters wide. If a line would be longer than the -limit, the line should be wrapped and the wrapped portion should be aligned -with the parentheses or brackets containing the wrap. If there is no set of -parentheses or brackets, the line should be indented four spaces. Wrapping -should normally occur after a comma or before a binary operator, when -possible: - - int index - = SomeExcessivelyLongExpression; - - fcall(arg1, - arg2, (cond13 - && cond2)); - -Single blank lines should be used wherever convenient to improve readability. - -Functions and Control Statements --------------------------------- - -For a function definition, the return type, declarator, and opening brace -should each appear on a line of their own. Arguments are defined in the following -parenthesis, per ANSI. There are two general styles. One with no comments, where -arguments are added one after another, with a wrap aligning to the first argument -if there is an overflow. - - void - foo(int i, char c) - { - /* function body */ - } - - void - long_function_name(int first_arg, struct long_name *second_arg, - int third_arg, int forth_arg) - { - /* function body */ - } - -Alternatively, arguments can be one per line if they are commented: - - void - long_function_name(int first_arg, /* main operation */ - struct long_name *second_arg, /* control details */ - int third_arg, /* local conditions - if - they apply */ - int forth_arg) /* remote conditions */ - { - /* function body */ - } - -If the function takes no parameters: - - int - long_function_name(void) - { - /* function body */ - } - -Opening braces of control statements appear on the same line as the control -statement: - - if (condition) { - /* body */ - } - -Else statements and the while statements of do-while blocks appear on the same -line as the closing brace of the if or do statement. Otherwise, closing braces -always get a line of their own. - - if (condition) { - /* body */ - } else if (condition) { - do { - /* body */ - } while (condition); - } else { - /* body */ - } - -If a control block has only a single statement, it can appear on a line of its -own, with an indent. If the statement is a null statement, then it should be -expressed as an empty set block, not with a semicolon, because many compilers -will warn if a null statement is used: - - if (condition) - fcall(); - - if (condition) { - } else - fcall(); - -If multiple control blocks are being used in a row, it may be more readable to -use braces even for single statements, and they should be used if they improve -readability. The following is an example of poor usage: - - if (condition) { - /* long body */ - } else if (condition) - statement; - else { - /* very long body */ - } - -Switch statements should have the case labels unindented, and the statements -should be indented normally. The default case should occur last unless there's -a compelling reason not to, and fallthroughs should be explicitly marked as -such with a comment, to avoid Yeenoghu getting the touch of death again: - - switch (condition) { - case FOO: - case BAR: - fcall(); - /* fall-through */ - case BAZ: - fcall(); - break; - - default: - statement; - } - -Variables should never be declared in a condition or a for loop -initialization, and if an assignment is used as a condition, it should be -wrapped in an additional set of parentheses for clarity: - - int *p; - if ((p = fcall())) { - /* body */ - } - - int i; - for (i = 1; i < 10; ++i) { - /* body */ - } - -Variable names to avoid ------------------------ - - near, far Some compilers and cross-compilers that target old - processors with segmented architectures may treat - those as keywords. It is safest to just avoid them. - -Spaces in Expressions ---------------------- - -Spaces should appear around binary operators, after commas, after a C-style -cast, and after the keyword in a control statement. They should not appear -between a function name and the opening parenthesis of a function call, nor -immediately inside a pair of parentheses: - - foo(i, j, l); - if ((boolean) condition) { - /* body */ - } - -Casts and sizeof ----------------- - -Casts should separate the cast operator and its expression with a space: - '(char *) str' -'sizeof (type)' requires the parentheses. 'sizeof expression' does not; -using them is not wrong but omitting them avoids some visual clutter. -Using them without the separating space gives the false impression of a -function call or macro-with-argument(s) expansion; 'sizeof' is an operator -and the parentheses required for '(type)' are to treat it like a cast. - -Comments --------- - -Some block comments are undecorated, just split into reasonable width lines: - /* this is - a comment */ -They usually don't include sentence punctuation. - -Others are more elaborate: - /* - * This is - * another comment. - */ -This style is usually used with sentence punctation, particularly if they -contain more than one sentence. - -End-of-line comments which need to span lines - somecode(); /* this comment - * is ok */ -should start every continuation line with an asterisk, otherwise clang-format -would convert them into a block comment - othercode(); /* this comment - should be avoided */ -because it would be converted into - othercode(); - /* this comment - should be avoided */ -if another bulk reformatting ever gets performed. Similarly, multiple -comments intended to read as one - morecode(); /* start of comment */ - /* more of comment */ - /* end of comment */ -are deprecated because they will end up losing the indentation of the -followup lines if reformatted. - -Many files end with - /*filename*/ -usually preceded by a blank line. This was intended as a workaround for a -comment--somewhere, possibly in Amiga or Atari code--that stated that some -compiler or other didn't always process the last line of the file. If that -last line is a comment, nothing is lost. The real issue almost certainly -was source file(s) that didn't end in newline. These days we try to force -the final newline for every file, prior to release if not always maintained -day-to-day. The name at the end can still be worthwhile when editing or -browsing multiple files. - - -Vim Configuration -================= - -For vim, the following settings are encouraged when editing NetHack code, to -ensure that indentation is done correctly: - - set shiftwidth=4 - set softtabstop=4 - set expandtab - set tabstop=4 - set shiftround - set textwidth=78 - set cindent - set filetype=c - - -Visual Studio Configuration -=========================== - -In Visual Studio under Tools->Options->Text Editor->C/C++, you can set the -following options to obtain desired behavior: - -[Tabs] -Indenting: Smart -Tab size: 4 -Indent size: 4 -Insert Spaces - -There are a number of other options under [Formatting] that should be -checked (Indentation, New Lines, Spacing, and Wrapping), but there are so -many entries that reproducing them here is impractical. Fortunately, the -options are in plain English, so walking through them with a copy of -this Guide handy and making changes as required will suffice. - -Emacs Configuration -=================== - -There are no doubt umpteen different ways to handle this in Emacs. -Putting the following in ~/.emacs.el is one - -(defun hook-c () - (setq c-set-style "k&r") - (setq c-basic-offset 4) - (setq indent-tabs-mode nil)) -(add-hook 'c-mode-common-hook 'hook-c) - diff --git a/src/NetHack_3.7/DEVEL/git_recipes.txt b/src/NetHack_3.7/DEVEL/git_recipes.txt deleted file mode 100644 index e4ca949..0000000 --- a/src/NetHack_3.7/DEVEL/git_recipes.txt +++ /dev/null @@ -1,206 +0,0 @@ -# NetHack 3.7 git_recipes.txt $NHDT-Date: 1596498266 2020/08/03 23:44:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $ -# Copyright (c) 2015 by Derek S. Ray -# NetHack may be freely redistributed. See license for details. - -Git has a messy learning curve. This file is an attempt to serve as a quick -reference for basic tasks while you get up to speed. - ------------------------- - -[*] git checkout [-f] (branch) - -Switch your local repository to be at the most recent commit of (branch). -Including -f will discard changes made in the working directory. - - -[*] git status [-uall | -uno] - -Shows all changed files in your local repository and also a list of the ones -you have staged for commit. -Including -uall will also show you all untracked files in all subdirectories. -Including -uno will show you _no_ untracked files. - - -[*] git log [-NUM] -[*] git log -[*] git log [--pretty=one] -[*] git log (branch) - -For a full explanation of all the arguments you can pass to 'log', please see -the manual; there are a lot and these are just a few of the common ones. For -our purposes, git log will show you all the commits according to criteria -you specify: - --NUM: The last NUM commits in this branch - : all commits between commit1 and commit2 --pretty=one: format output as a single line for each entry -(branch): show the commits from (branch) instead of the current one - -[*] git log --pretty=one --decorate --graph --all - -(This is best explained by executing and looking at the output.) - - -[*] git add (filename) -[*] git nhadd (filename) - -Adds the changes you've made in (filename) to the pre-commit staging area. -(also referred to as the 'index') - OR -Make a new file be tracked by git. - -"nhadd" is the preferred syntax and will automatically update the source file -headers with the latest date, branch, and version. See Developer.txt for -details. - - -[*] git commit [-a] [-m "text"] -[*] git nhcommit [-a] [-m "text"] - -Commits all staged changes (in the index) to this branch in your local repo -from your current position. -Including -a will 'git add' all eligible files before doing so. -Including -m will use "text" as the commit message instead of opening an -editor window for you to create one. - -"nhcommit" is the preferred syntax and will automatically update the source file -headers with the latest date, branch, and version. See Developer.txt for -details. - - -[*] git push [--all] [-u origin (branch)] - -Sends all your commits for the current branch to the centralized repo. -Including --all will send the commits for _all_ branches. -Specifying -u is only needed the first time you push (branch) that you -created; it establishes the connection between local and remote for that -branch. - - -[*] git reset [--hard] (filename) - -Without any parameters, unstages the changes for (filename) from the index; -does not change the working tree. This is the equivalent of the command -git reset --mixed (filename); git reset --soft (filename) has no effect. - -With --hard, unstages (filename) from the index and reverts (filename) in -the working tree to the most recent commit. - -*** WARNING *** --hard _will_ throw away your changes. - - -[DSR: I'm hesitant about including this command because you can trash stuff -with it. But at the same time, for people who are adapting to a commit not -also automatically being a send, it's nice for them to know how to undo one in -case they do something wrong. thoughts?] - -[*] git reset [--soft | --mixed | --hard] HEAD~1 - -*** WARNING *** Never, EVER do this to a commit that you have already pushed; -you will be rewriting history on other people's machines and this will -generally turn out very poorly. - -With --soft, undoes the most recent 'git commit' action, but leaves the -changes in the index and in the working directory. - -With --mixed, does everything --soft does but also unstages the changes from -the index. If you don't specify one of the three, reset will assume this. - -With --hard, does everything --mixed does but also reverts the working tree to -the prior commit. - -*** WARNING *** --hard will effectively delete a commit and "lose" the changes. -[/end area-of-concern] - - -[*] git fetch [--all] - -Retrieve commits from the remote repository to your machine. -Including --all will get commits for all branches. -Does NOT merge them into your local repository. - - -[*] git pull - -Incorporate any fetched commits for the current branch into your repository -and update your position accordingly. This will create a merge commit (noting -that you merged a branch into itself). - - -[*] git rebase [no-arguments version ONLY] - -Incorporate fetched commits for the current branch into your repository, and -replay any local commits and changes afterwards on top. - -Quality picture-pages ASCII art: - - E---F---G---H (remote changes) - / - / -(branch 'frog') A---B---C---D---E'---F' (your local changes) - -After 'git fetch' and 'git rebase', it will look like this: - - --- (remote HEAD) - | - V -(branch 'frog') A---B---C---D---E---F---G---H---E'---F' - ^ ^ - | | - -------- (to be pushed) - - -[*] git branch (branch) - -Creates a new branch from the current commit you're pointed to. -Does not automatically checkout (switch to) the branch. - - -[*] git checkout -b (branch) - -Creates a new branch from the current commit you're pointed to, and -automatically checks out that branch. - - -[*] git branch --list | [--all | -a] | [--remotes | -r] - -Lists all branches matching . -With --all instead, lists all branches (including remotely tracked ones). -With --remotes instead, lists only remote branches. - - -[*] git merge (branch) [--no-commit] - -Merges all the changes from (branch) since it last diverged from a common -ancestor into your current branch. - -With --no-commit, does not automatically create a merge entry in the log but -leaves all the merged files in your working directory; to complete the merge -you must commit them manually later (likely after you have edited them). This -more accurately mimics the merge behavior of svn [and cvs?] - - -[*] git stash [save | apply | list] - -save: Takes all changes in your working directory and 'stashes' them in a temporary -holding area. Convenient if the command you're trying to run won't go unless -you have a clean working dir; also convenient to move experimental changes -between branches without needing to commit them. - -apply: Replays the named stash onto your current working directory as though -it were a patch. Does not delete the stash from the list. - -list: Lists all of your stashed code blobs. - - -======================================= -External Links -======================================= -http://pcottle.github.io/learnGitBranching - -======================================= -Typical workflows for common activities -======================================= - -{To be added in near future: DSR 3/15} - diff --git a/src/NetHack_3.7/DEVEL/gitinfo.pl b/src/NetHack_3.7/DEVEL/gitinfo.pl deleted file mode 100644 index f348f8e..0000000 --- a/src/NetHack_3.7/DEVEL/gitinfo.pl +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 getinfo.pl $NHDT-Date: 1596498266 2020/08/03 23:44:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ -# Copyright (c) 2018 by Michael Allison -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); - - # special case for this script only: allow - # it to run from DEVEL or $TOP - if (-f "hooksdir/NHgithook.pm" || -f "DEVEL/hooksdir/NHgithook.pm"){ - push(@INC, "DEVEL/hooksdir"); - } - chdir("..") if (-f "hooksdir/NHgithook.pm"); -} -use NHgithook; - -&NHgithook::nhversioning; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/NHadd b/src/NetHack_3.7/DEVEL/hooksdir/NHadd deleted file mode 100644 index c4d6e54..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/NHadd +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 NHadd $NHDT-Date: 1596498406 2020/08/03 23:46:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -# wrapper for nhadd and nhcommit aliases - -%ok = map { $_ => 1 } ('add', 'commit'); - -die "Bad subcommand '$ARGV[0]'" unless $ok{$ARGV[0]}; - -# we won't fail on a failure, so just system() -$rv = system('.git/hooks/nhsub',"--$ARGV[0]",@ARGV[1..$#ARGV]); -if($rv){ - print "warning: nhsub failed: $rv $!\n"; -} - -if(length $ENV{GIT_PREFIX}){ - chdir($ENV{GIT_PREFIX}) or die "Can't chdir $ENV{GIT_PREFIX}: $!"; -} - -exec "git", @ARGV or die "Can't exec git: $!"; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/NHgithook.pm b/src/NetHack_3.7/DEVEL/hooksdir/NHgithook.pm deleted file mode 100644 index c7c3456..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/NHgithook.pm +++ /dev/null @@ -1,252 +0,0 @@ -# -# NetHack 3.7 NHgithook.pm $NHDT-Date: 1596498406 2020/08/03 23:46:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.7 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -# NetHack Git Hook Module - -package NHgithook; -use Cwd; - -### -### CONFIG -### -my $trace = 0; -my $tracefile = "/tmp/nhgitt.$$"; - -# OS hackery -my $DS = quotemeta('/'); -if ($^O eq "MSWin32") -{ - $DS = quotemeta('\\'); -} - -our %saved_env; -our @saved_argv; -our $saved_input; - -sub saveSTDIN { - @saved_input = ; - - if($trace){ - print TRACE "STDIN:\n"; - print TRACE $saved_input; - print TRACE "ENDSTDIN\n"; - } - - tie *STDIN, 'NHIO::STDIN', @saved_input; -} - -# XXX this needs a re-write (don't tie and untie, just set NEXT=0) -# (the sensitive thing is @foo = ) -sub resetSTDIN{ - my $x = tied(*STDIN); - my %x = %$x; - my $data = @$x{DATA}; - untie *STDIN; - tie *STDIN, 'NHIO::STDIN', $data; -} - -# don't need this now -#sub restore { -# open STDIN, "<", \$saved_input or die "reopen STDIN: $!"; -# @ARGV = @saved_argv; -# %ENV = %saved_env; -#} - -sub PRE { - &do_hook("PRE"); -} - -sub POST { - &do_hook("POST"); -} - -### -### store githash and gitbranch in dat/gitinfo.txt -### - -sub nhversioning { - use strict; - use warnings; - - my $git_sha = `git rev-parse HEAD`; - $git_sha =~ s/\s+//g; - my $git_branch = `git rev-parse --abbrev-ref HEAD`; - $git_branch =~ s/\s+//g; - die "git rev-parse failed" unless(length $git_sha and length $git_branch); - my $exists = 0; - - if (open my $fh, '<', 'dat/gitinfo.txt') { - $exists = 1; - my $hashok = 0; - my $branchok = 0; - while (my $line = <$fh>) { - if ((index $line, $git_sha) >= 0) { - $hashok++; - } - if ((index $line, $git_branch) >= 0) { - $branchok++; - } - } - close $fh; - if ($hashok && $branchok) { - print "dat/gitinfo.txt unchanged, githash=".$git_sha."\n"; - return; - } - } else { - print "WARNING: Can't find dat directory\n" unless(-d "dat"); - } - if (open my $fh, '>', 'dat/gitinfo.txt') { - my $how = ($exists ? "updated" : "created"); - print $fh 'githash='.$git_sha."\n"; - print $fh 'gitbranch='.$git_branch."\n"; - print "dat/gitinfo.txt ".$how.", githash=".$git_sha."\n"; - } else { - print "WARNING: Unable to open dat/gitinfo.txt: $!\n"; - } -} - -# PRIVATE -sub do_hook { - my($p) = @_; - my $hname = $0; - $hname =~ s!^((.*$DS)|())(.*)!$1$p-$4!; - if(-x $hname){ - print TRACE "START $p: $hname\n" if($trace); - - open TOHOOK, "|-", $hname or die "open $hname: $!"; - print TOHOOK ; - close TOHOOK or die "close $hname: $! $?"; - - print TRACE "END $p\n" if($trace); - } -} - -sub trace_start { - return unless($trace); - my $self = shift; - open TRACE, ">>", $tracefile; - print TRACE "START CLIENT PID:$$ ARGV:\n"; - print TRACE "CWD: " . cwd() . "\n"; - print TRACE "[0] $0\n"; - my $x1; - for(my $x=0;$x $ENV{$k}\n"; - } -} - -BEGIN { - %saved_env = %ENV; - @saved_argv = @ARGV; - &trace_start; -} - -### -### ugly mess so we can re-read STDIN -### -package NHIO::STDIN; -sub TIEHANDLE { - my $class = shift; - my %fh; - # XXX yuck - if(ref @_[0]){ - $fh{DATA} = @_[0]; - } else { - $fh{DATA} = \@_; - } - $fh{NEXT} = 0; - return bless \%fh, $class; -} - -sub READLINE { - my $self = shift; - return undef if($self->{EOF}); - if(wantarray){ - my $lim = $#{$self->{DATA}}; - my @ary = @{$self->{DATA}}[$self->{NEXT}..$lim]; - my @rv = @ary[$self->{NEXT}..$#ary]; - $self->{EOF} = 1; - return @rv; - } else{ - my $rv = $self->{DATA}[$self->{NEXT}]; - if(length $rv){ - $self->{NEXT}++; - return $rv; - } else { - $self->{EOF} = 1; - return undef; - } - } -} - -sub EOF { - $self = shift; - return $self->{EOF}; -} - -1; -__END__ - -=head1 NAME - -NHgithook - common code for NetHack git hooks (and other git bits) - -=head1 SYNOPSIS - - BEGIN { - my $DS = quotemeta('/'); - my $PDS = '/'; - if ($^O eq "MSWin32") - { - $DS = quotemeta('\\'); - $PDS = '\\'; - } - - push(@INC, $ENV{GIT_DIR}.$PDS."hooks"); # for most hooks - push(@INC, ($0 =~ m!^(.*)$DS!)[0]); # when the above doesn't work - - $gitdir = `git rev-parse --git-dir`; # and when the above really doesn't work - $gitdir =~ s/[\r\n]*$/; - push(@INC, $gitdir.$PDS."hooks"); - } - use NHgithook; - - &NHgithook::saveSTDIN; - &NHgithook::PRE; - (core hook code) - &NHgithook::POST; - -=head1 DESCRIPTION - -Buffers call information so multiple independent actions may be coded for -Git hooks and similar Git callouts. - -=head1 SETUP - -Changing the C<$trace> and C<$tracefile> variables requires editing the -module source. Setting C<$trace> enables tracing, logs basic information, -and leaves the C filehandle open for additional output; output to this -filehandle must be guarded by C<$NHgithook::trace>. Setting -C<$tracefile> specifies the file used for trace output. Note that C<$$> -may be useful since multiple processes may be live at the same time. - -=head1 FUNCTIONS - - NHgithook::saveSTDIN reads STDIN until EOF and saves it - NHgithook::PRE runs the PRE hook, if it exists - NHgithook::POST runs the POST hook, if it exists - -=head1 BUGS - -Some features not well tested, especially under Windows. - -=head1 AUTHOR - -Kenneth Lorber (keni@his.com) diff --git a/src/NetHack_3.7/DEVEL/hooksdir/NHsubst b/src/NetHack_3.7/DEVEL/hooksdir/NHsubst deleted file mode 100644 index 99621fc..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/NHsubst +++ /dev/null @@ -1,398 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 NHsubst $NHDT-Date: 1596498407 2020/08/03 23:46:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.5 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -# git merge driver for substitutions (like RCS/CVS) -# driver line: .... %O %A %B %L -use strict; - -my $debug = 0; -my $rawin = 0; # feed diff to stdin for testing (do NOT set $debug=1) - -# We want TRACE open so we don't need to test $debug everywhere, but we skip -# this first block because it's expensive and dumpfile() hangs with $rawin. -my $sink = ($^O eq "MSWin32") ? "NUL" : "/dev/null"; -my $dbgfile = ($^O eq "MSWin32") ? "$ENV{TEMP}.$$" : "/tmp/trace.$$"; -open TRACE, ">>", $rawin?"/dev/tty":(($debug==0)? $sink : $dbgfile); -print TRACE "TEST TRACE\n"; -if($debug){ - print TRACE "START CLIENT ARGV:\n"; - print TRACE "[0] $0\n"; - my $x1; - for(my $x=0;$x $ENV{$k}\n"; - } - print TRACE "CWD: " . `pwd`; - &dumpfile($ARGV[0], "[0O]"); - &dumpfile($ARGV[1], "[1A]"); - &dumpfile($ARGV[2], "[2B]"); - print TRACE "L=$ARGV[3]\n"; - print TRACE "END\n"; -} - -my $mark_len = $ARGV[3]; -$mark_len = 3 if($mark_len==0 && $rawin); - -my $mark_start = '<' x $mark_len; -my $mark_middle = '=' x $mark_len; -my $mark_end = '>' x $mark_len; - -my $PREFIX; -# pick up the prefix for substitutions in this repo -if($rawin){ - $PREFIX = "TEST"; -} else { - $PREFIX = `git config --local --get nethack.substprefix`; - chomp($PREFIX); -} - -my @out; -my $cntout; -if($rawin){ - @out = ; -} else { - #system "git merge-file -p .... > temp - my $tags = "-L CURRENT -L ANCESTOR -L OTHER"; # XXX should "CURRENT" be "MINE"? - @out = `git merge-file -p $tags $ARGV[1] $ARGV[0] $ARGV[2]`; - #NB: we don't check the exit value because it's useless - print TRACE "MERGE-FILE START\n".join("",@out)."MERGE-FILE END\n"; -} - -($cntout,@out) = &edit_merge(@out); - -if($rawin){ - print "COUNT: $cntout\n"; - print @out; -} else { - # spit @out to $ARGV[1] (careful: what about EOL character?) - open OUT, ">$ARGV[1]" or die "Can't open $ARGV[1]"; - print OUT @out; - close OUT; - - print TRACE "WRITING START ($ARGV[1])\n".join("",@out)."WRITING END\n"; - &dumpfile($ARGV[1], "READBACK"); -} -print TRACE "COUNT: $cntout\n"; - -exit( ($cntout>0) ? 1 : 0); - -#git merge-file [-L [-L [-L ]]] -# [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=] -# [--[no-]diff3] -#The `merge.*.driver` variable's value is used to construct a command to run to merge ancestor's -# version (%O), current version (%A) and the other branches' version (%B). These three tokens are -# replaced with the names of temporary files that hold the contents of these versions when the -# command line is built. Additionally, %L will be replaced with the conflict marker size (see -# below). - -# keep failing so we don't need to keep changing the setup while building this script - -sub dumpfile { - my($file, $tag) = @_; - print TRACE "FILE $tag START\n"; - print TRACE `hexdump -C $file`; - print TRACE "FILE END\n"; -} - -sub edit_merge { - my(@input) = @_; - # $::count is a bit ugly XXX - local $::count = 0; # we need the number of conflicts for exit() - my @out; - - local $_; - while($_ = shift @input){ - if(m/^$mark_start /){ - print TRACE "FOUND A CONFLICT\n"; - my @conflict; - push(@conflict, $_); - while($_ = shift @input){ - push(@conflict, $_); - if(m/^$mark_end /){ - last; - } - } - push(@out, &edit_conflict(@conflict)); - } else { - push(@out, $_); - } - } - print TRACE "RETURN count=$::count\n"; - return($::count, @out); -} - -sub edit_conflict { - my(@in) = @_; - - print TRACE "EDIT START: " . scalar(@in)."\n"; - if($debug){ - foreach my $x (@in){ my $xx = $x; chomp($xx); print TRACE "-$xx-\n"; } - } - print TRACE "EDIT END INPUT\n"; - - # one-line change - use as base case to develop the code - # ours ARGV[1] top-of-diff - # theirs ARGV[2] bottom-of-diff - # simple conflict: - # [0] <<<<<<< d1 - # [1] $$PREFIX-Date: 1 ... - # [2] ======= - # [3] $$PREFIX-Date: 3 ... - # [4] >>>>>>> d3 - if(scalar(@in) == 5 && $in[2] =~ m/^$mark_middle/){ - my $back = &merge_one_line_maybe($in[1],$in[3]); # (ours, theirs) - if(!defined $back){ - $::count++; # leave the conflict - return @in; - } else { - return ($back); - } - # NOTREACHED - } else { -# XXX LATER -# Start at the top of both sections and work downwards. As long as the lines can be merged, -# push them out and keep going. If there are lines left, we will still have a conflict but -# we can try to make it smaller. Push out the start-conflict marker. Start at the -# bottom of both section and work upwards. As long as the lines can be merged, reverse push out -# the merged line and keep going. (We know there will be lines left at some point.) Push out -# remaining (middle) lines from OURS. Push out mark_middle. Push out remaining middle lines -# from THEIRS. Push out end-conflict marker. $::count++; return (@a,$b,@c,$d,@e,$f,@g) -# @a -# $b = <<< -# @c -# $d = === -# @e -# $f = >>> -# @g - } - # not matched - return the unchanged conflict - $::count++; - return @in; -} - -# XXX This is expensive. Add a quick check for "anything that looks like a subst var" and just -# declare the lines unmergeable if it fails. -sub merge_one_line_maybe { - my($ours, $theirs) = @_; - - my $more = 1; - my $fail = 0; - my $out = ''; - # TYPES: - # 0 no match - # 1 unexpanded var - # 2 expanded var - # 3 non-var text - my($ourstype, $theirtype); - my($oursvar, $theirvar); - my($oursval, $theirval); - - while($more){ - ($ourstype, $theirtype) = (0,0); - ($oursvar, $theirvar) = (undef, undef); - ($oursvar, $theirvar) = (undef, undef); - # unexpanded var - if($ours =~ m/\G\$$PREFIX-([A-Z][a-z]+)\$/gc){ - $ourstype = 1; - $oursvar = $1; - } - if($theirs =~ m/\G\$$PREFIX-([A-Z][a-z]+)\$/gc){ - $theirtype = 1; - $theirvar = $1; - } - # expanded var - unless($ourstype){ - if($ours =~ m/\G\$$PREFIX-([A-Za-z]+):\s+(.*?)\s\$/gc){ - $ourstype = 2; - $oursvar = $1; - $oursval = $2; - } - } - unless($theirtype){ - if($theirs =~ m/\G\$$PREFIX-([A-Za-z]+):\s+(.*?)\s\$/gc){ - $theirtype = 2; - $theirvar = $1; - $theirval = $2; - } - } - # non-var text - unless($ourstype){ - if($ours =~ m/\G(\$?[^\x24]*)/gc){ - $ourstype = 3; - $oursval = $1; - } - } - unless($theirtype){ - if($theirs =~ m/\G(\$?[^\x24]*)/gc){ - $theirtype = 3; - $theirval = $1; - } - } -print TRACE "MID: $ourstype/$oursval $theirtype/$theirval\n"; - # are we done? - if(pos($ours)==length $ours && pos($theirs) == length $theirs){ - $more = 0; - } - if($ourstype == 0 && $theirtype == 0){ - die "NHsubst MERGE FAILED - aborted infinite loop\n"; - } - - # now see if ours and their match or can be resolved - # text - if($ourstype == 3 && $theirtype == 3){ -#mismatch is \s vs \s\s - where is this coming from? - # HACK - hopefully temporary - if($oursval =~ m/^\s+$/ && $theirval =~ m/^\s+$/){ - $out .= $oursval; - next; - } - if($oursval eq $theirval){ - $out .= $oursval; - next; - } - return undef; - } - if($ourstype == 3 || $theirtype == 3){ - return undef; - } -# XXX we could do better: on failure of one field, return 2 lines with the fields we _can_ fix -# substituted into those lines, leaving only the fail-to-match bits for the user to -# deal with. Later. - # vars (all 4 cases) - if($oursvar ne $theirvar){ - return undef; - } - my $m = merge_one_var_maybe($oursvar, $oursval, $theirval); - if(! defined $m){ - return undef; - } - $out .= $m; - } - return $out; -} - -# return undef if we can't merge the values; $NAME: VALUE $ or $NAME$ (as appropriate) if we can. -sub merge_one_var_maybe { - my($varname, $oursval, $theirval) = @_; -print TRACE "MVM: -$varname-$oursval-$theirval-\n"; - my $resolvedas; - { - no strict; - my $fn = "PREFIX::$varname"; - if(defined &$fn){ - $resolvedas = &$fn($PREFIX,$varname,$oursval, $theirval); - } else { - $resolvedas = undef; # can't resolve - } - } - - if(!defined $resolvedas){ - $::count++; # we have an externally visible conflict - return undef; - } else { - return $resolvedas; - } - # NOTREACHED -} - -package PREFIX; -# Resolve the conflict of a single var's 2 values. Return undef to leave the conflict. -sub Date { - my($PREFIX, $varname, $mine, $theirs) = @_; - my $m = ($mine =~ m/(\d+)/)[0]; - my $t = ($theirs =~ m/(\d+)/)[0]; - return undef unless ($m>0) && ($t>0); - - return "\$$PREFIX-$varname: " . (($m>$t)?$mine:$theirs) .' $'; -} - -#sub Header { -#sub Author { - -sub Branch { - my($PREFIX, $varname, $mine, $theirs) = @_; - $mine =~ s/^\s+//; $mine =~ s/\s+$//; - $theirs =~ s/^\s+//; $theirs =~ s/\s+$//; - return "\$$PREFIX-$varname: $mine \$" if(length $mine); - return "\$$PREFIX-$varname: $theirs \$" if(length $theirs); - return "\$$PREFIX-$varname\$" if(length $theirs); -} - -sub Revision { - my($PREFIX, $varname, $mine, $theirs) = @_; - my($m) = ($mine =~ m/1.(\d+)/); - my($t) = ($theirs =~ m/1.(\d+)/); - if($m > 0 && $t > 0){ - my $q = ($m > $t) ? $m : $t; - return "\$$PREFIX-$varname: 1.$q \$"; - } - if($m > 0){ - return "\$$PREFIX-$varname: 1.$m \$"; - } - if($t > 0){ - return "\$$PREFIX-$varname: 1.$t \$"; - } - return "\$$PREFIX-$varname\$"; -} -__END__ - -TEST 1: -<<< d1 -$TEST-Date: 1 $ -=== -$TEST-Date: 3 $ ->>> d3 - -TEST 2: -nothing -at all - -TEST 3: -<<< d1 -a line -=== -one line -two lines ->>> d3 - -TEST 4: -<<< d1 -$TEST-Date: 1 $ yes -=== -$TEST-Date: 1 $ no ->>> d3 - -TEST 5: -<<< d1 -$TEST-Date: 3 $ yes -=== -$TEST-Date: 1 $ yes ->>> d3 - -TEST 6: -<<< d1 -$TEST-Date: 3 $ yes$TEST-Date: 4 $ -=== -$TEST-Date: 1 $ yes$TEST-Date: 5 $ ->>> d3 - -TEST 7: -<<< d1 -$TEST-Branch: mine $ -=== -$TEST-Branch: theirs $ ->>> d3 - -TEST 8: -<<< d1 -/* NetHack 3.7 objnam.c $TEST-Date$ $TEST-Branch$:$TEST-Revision$ */ -=== -/* NetHack 3.7 objnam.c $TEST-Date: 1426977394 2015/03/21 22:36:34 $ $TEST-Branch: master $:$TEST-Revision: 1.108 $ */ ->>> d3 diff --git a/src/NetHack_3.7/DEVEL/hooksdir/NHtext b/src/NetHack_3.7/DEVEL/hooksdir/NHtext deleted file mode 100644 index 8e0d9a9..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/NHtext +++ /dev/null @@ -1,161 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 NHtext $NHDT-Date: 1596498408 2020/08/03 23:46:48 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.9 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -# clean/smudge filter for handling substitutions -use strict; - -#my $debug = 0; # save trace to file -#my $debug2 = 0; # annotate output when running from command line - -#my $sink = ($^O eq "MSWin32")? "NUL" :"/dev/null"; -#my $dbgfile = ($^O eq "MSWin32") ? "$ENV{TEMP}.$$" : "/tmp/trace.$$"; -#open TRACE, ">>", ($debug==0)? $sink : $dbgfile; - -sub git_config { - my($section, $var) = @_; - local($_); - # Sigh. Without GIT_DIR we have to do it the slow way, and sometimes we don't - # have GIT_DIR. - if(0 == length($ENV{GIT_DIR})){ - my $raw = `git config --local --get $section.$var`; - chomp($raw); - return $raw - } - open(CONFIG, "<", "$ENV{GIT_DIR}/config") or die "Missing .git/config: $!"; - while(){ - m/^\[$section]/ && do { - while(){ - m/^\s+$var\s+=\s+(.*)/ && do { - return $1; - }; - } - }; - } - die "Missing config var: [$section] $var\n"; -} -# pick up the prefix for substitutions in this repo -my $PREFIX = &git_config('nethack','substprefix'); - -my $submode = 0; # ok to make non-cleaning changes to file -my $mode; - -if($ARGV[0] eq "--clean"){ - $mode = "c"; - if(0 == 0+$ENV{NHMODE}){ - $submode = 1; # do NOT add extra changes to the file -# print TRACE "SKIPPING\n"; - } -} elsif($ARGV[0] eq "--smudge"){ - $mode = "s"; -} else { - warn "Unknown mode '$ARGV[0]'\n"; - exit 1; -} - -# XXX for now, there isn't any - if we get called, we subst. No options for now. -# get relevent config info -#XXX -#git check-attr -a $ARGV[1] - -# Process stdin to stdout. -# For speed we read in the entire file then do the substitutions. - -local($_) = ''; -my $len; -while(1){ - # On at least some systems we only get 64K. - my $len = sysread(STDIN, $_, 999999, length($_)); - last if($len == 0); - die "read failed: $!" unless defined($len); -} - -# $1 - var and value (including trailing space but not $) -# $2 - var -# $4 - value or undef -# s/\$$PREFIX-(([A-Za-z][A-Za-z0-9_]*)(: ([^\N{DOLLAR SIGN}]+))?)\$/&handlevar($2,$4)/eg; -s/\$$PREFIX-(([A-Za-z][A-Za-z0-9_]*)(: ([^\x24]+))?)\$/&handlevar($2,$4)/ego; - -die "write failed: $!" unless defined syswrite(STDOUT, $_); -exit 0; - -sub handlevar { - my($var, $val) = @_; -# print "HIT '$var' '$val'\n" if($debug2); - - my $subname = "PREFIX::$var"; - if(defined &$subname){ - no strict; - $val =~ s/\s+$//; - $val = &$subname($val,$mode,$submode); - } else { - warn "No handler for \$$PREFIX-$var\n"; - } - - if(length $val){ - return "\$$PREFIX-$var: $val \$"; - } else { - return "\$$PREFIX-$var\$"; - } -} - -package PREFIX; -use POSIX qw(strftime); - -# On push, put in the current date because we changed the file. -# On pull, keep the current value so we can see the last change date. -sub Date { - my($val, $mode, $submode) = @_; - if($mode eq "c"){ - if($submode==0){ - # we add this to make merge easier for now XXX - my $now = time; # not %s below - may not be portable - # YYYY/MM/DD HH:MM:SS - $val = "$now " . strftime("%Y/%m/%d %H:%M:%S", gmtime($now)); - } - } -# if($mode eq "s"){ -# } - return $val; -} - -#sub Header { -#} -#sub Author { -#} - -# NB: the standard-ish Revision line isn't enough - you need Branch:Revision - -# but we split it into 2 so we can use the standard processing code on Revision -# and just slip Branch in. -sub Branch { - my($val, $mode, $submode) = @_; - if($mode eq "c"){ - if($submode==0){ - $val = `git symbolic-ref -q --short HEAD`; - $val =~ s/[\n\r]*$//; - $val =~ s/^\*\s*//; - $val = "(unknown)" unless($val =~ m/^[[:print:]]+$/); - } - } -# if($mode eq "s"){ -# } - return $val; -} - -sub Revision { - my($val, $mode, $submode) = @_; - if($mode eq "c"){ - if($submode==0){ - my $file = $ARGV[1]; - my @val = `git log --follow --oneline $file`; - my $ver = 0+$#val; - $ver = 0 if($ver < 0); - $val = "1.$ver"; - } - } -# if($mode eq "s"){ -# } - return $val; -} - diff --git a/src/NetHack_3.7/DEVEL/hooksdir/TARGET b/src/NetHack_3.7/DEVEL/hooksdir/TARGET deleted file mode 100644 index f321e28..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/TARGET +++ /dev/null @@ -1 +0,0 @@ -.git/hooks diff --git a/src/NetHack_3.7/DEVEL/hooksdir/applypatch-msg b/src/NetHack_3.7/DEVEL/hooksdir/applypatch-msg deleted file mode 100644 index 2318186..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/applypatch-msg +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 applypatch-msg $NHDT-Date: 1596498405 2020/08/03 23:46:45 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/commit-msg b/src/NetHack_3.7/DEVEL/hooksdir/commit-msg deleted file mode 100644 index e4befa0..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/commit-msg +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 commit-msg $NHDT-Date: 1596498405 2020/08/03 23:46:45 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/nhsub b/src/NetHack_3.7/DEVEL/hooksdir/nhsub deleted file mode 100644 index 7e5fdbd..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/nhsub +++ /dev/null @@ -1,521 +0,0 @@ -#!/usr/bin/perl -# $NHDT-Date: 1524689646 2018/04/25 20:54:06 $ Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.7 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -# Note: was originally called nhdate; the rename is not reflected in the code. - -use strict; -our %opt; #cmd v n f F m (other single char, but we don't care) -my $mode; # a c d f (add, commit, date, date -f) - -if(length $ENV{GIT_PREFIX}){ - chdir($ENV{GIT_PREFIX}) or die "Can't chdir $ENV{GIT_PREFIX}: $!"; -} - -#SO how do we know if a file has changed? -#(git status: git status --porcelain --ignored -- FILES. -#maybe + -z but it's a question of rename operations - probably doesn't -# matter, but need to experiment. - -# key: [dacf] first character of opt{cmd} (f if nhsub -f or add -f) -# first 2 chars of "git status --porcelain --ignored" -# (see "git help status" for table) -# No default. Undef means something unexpected happened. -my %codes = ( - 'f M'=>1, 'f D'=>1, # [MD] not updated - 'a M'=>0, 'a D'=>0, - 'd M'=>0, 'd D'=>0, - 'c M'=>0, 'c D'=>0, - - 'dM '=>0, 'dMM'=>1, 'dMD'=>0, - 'aM '=>0, 'aMM'=>1, 'aMD'=>0, - 'cM '=>0, 'cMM'=>1, 'cMD'=>0, - 'fM '=>0, 'fMM'=>1, 'fMD'=>0, - # M [ MD] updated in index - - 'dA '=>1, 'dAM'=>1, 'dAD'=>1, - 'aA '=>1, 'aAM'=>1, 'aAD'=>1, - 'cA '=>1, 'cAM'=>1, 'cAD'=>1, - 'fA '=>1, 'fAM'=>1, 'fAD'=>1, - # A [ MD] added to index - - 'dD '=>0, 'dDM'=>0, - 'aD '=>1, 'aDM'=>1, - 'cD '=>0, 'cDM'=>0, - 'fD '=>1, 'fDM'=>1, - # D [ M] deleted from index - - 'dR '=>0, 'dRM'=>1, 'dRD'=>0, - 'aR '=>0, 'aRM'=>1, 'aRD'=>0, - 'cR '=>0, 'cRM'=>1, 'cRD'=>0, - 'fR '=>0, 'fRM'=>1, 'fRD'=>0, - # R [ MD] renamed in index - - 'dC '=>0, 'dCM'=>1, 'dCD'=>0, - 'aC '=>0, 'aCM'=>1, 'aCD'=>0, - 'cC '=>0, 'cCM'=>1, 'cCD'=>0, - 'fC '=>0, 'fCM'=>1, 'fCD'=>0, - # C [ MD] copied in index - - 'aM '=>1, 'aA '=>1, 'aR '=>1, 'aC '=>1, - 'fM '=>1, 'fA '=>1, 'fR '=>1, 'fC '=>1, - # [MARC] index and work tree matches - - 'd M'=>1, 'dMM'=>1, 'dAM'=>1, 'dRM'=>1, 'dCM'=>1, - 'a M'=>1, 'aMM'=>1, 'aAM'=>1, 'aRM'=>1, 'aCM'=>1, - 'c M'=>1, 'cMM'=>1, 'cAM'=>1, 'cRM'=>1, 'cCM'=>1, - 'f M'=>1, 'fMM'=>1, 'fAM'=>1, 'fRM'=>1, 'fCM'=>1, - # [ MARC] M work tree changed since index - - 'd D'=>0, 'dMD'=>0, 'dAD'=>0, 'dRD'=>0, 'dCD'=>0, - 'a D'=>0, 'aMD'=>0, 'aAD'=>0, 'aRD'=>0, 'aCD'=>0, - 'c D'=>0, 'cMD'=>0, 'cAD'=>0, 'cRD'=>0, 'cCD'=>0, - 'f D'=>0, 'fMD'=>0, 'fAD'=>0, 'fRD'=>0, 'fCD'=>0, - # [ MARC] D deleted in work tree - - # ------------------------------------------------- - # DD unmerged, both deleted - # AU unmerged, added by us - # UD unmerged, deleted by them - # UA unmerged, added by them - # DU unmerged, deleted by us - # AA unmerged, both added - # UU unmerged, both modified - # ------------------------------------------------- - 'a??'=>1, 'f??'=>1, # ?? untracked - 'd??'=>0, 'c??'=>0, - - 'f!!'=>1, # !! ignored - 'a!!'=>0, 'd!!'=>0, 'c!!'=>0, - - 'f@@'=>1, # @@ internal ignored - 'a@@'=>0, 'd@@'=>0, 'c@@'=>0 -); - -# OS hackery -my $PDS = '/'; -if ($^O eq "MSWin32") -{ - $PDS = '\\'; -} - -# various command line options to consider and what the code actually does: -#DONE nhcommit with no files should exit(0) -#DONE nhadd with no files should exit(0) -#DONE commit -a? -# add root dir -#DONE commit -a + files -> exit(0) -#nothing: commit --interactive/--patch -#nothing: add -i/--interactive --patch/-p? -#nothing: add -u/--update?????? -A/--all/--no-ignore-removal??? -#nothing (not quite right): add --no-all --ignore-removal??? -#DONE add --refresh -#nothing: add -N/--intent-to-add -#DONE add -n - exit(0) -#DONE add --dry-run - exit 0 -#DONE commit --dry-run - exit 0 -#DONE?: add foo/\*/x (letting git expand the filenames) - -my @rawlist0 = &cmdparse(@ARGV); - -# Use git ls-files to expand command line filepaths with wildcards. -# Let's try this for all commands. -my @rawlist; -foreach my $e (@rawlist0){ - if($e =~ m/[?*[\\]/){ - my @rv = &lsfiles(undef, $e); - push(@rawlist, @rv) if(@rv); - if($opt{f}){ - my @rv = &lsfiles('-i', $e); - push(@rawlist, @rv) if(@rv); - } - } else { - push(@rawlist, $e); - } -} - -push(@rawlist,'.') if($#rawlist == -1); - -# pick up the prefix for substitutions in this repo -#TEST my $PREFIX = &git_config('nethack','substprefix'); -my $PREFIX = "NHDT"; -print "PREFIX: '$PREFIX'\n" if($opt{v}); - -while(@rawlist){ - my $raw = shift @rawlist; - if(-f $raw){ - &schedule_work($raw); - next; - } - if(-d $raw){ - if($raw =~ m!$PDS.git$!o){ - print "SKIP $raw\n" if($opt{v}>=2); - next; - } - opendir RDIR,$raw or die "Can't opendir: $raw"; - local($_); # needed until perl 5.11.2 - while($_ = readdir RDIR){ - next if(m/^\.\.?$/); - if(m/^\./ && $opt{f}){ - print " IGNORE-f: $raw$PDS$_\n" if($opt{v}>=2); - next; - } - push(@rawlist, $raw.$PDS.$_); - } - closedir RDIR; - } - # ignore other file types - if(! -e $raw){ - print "warning: missing file $raw\n"; - } -} - -# XXX could batch things up - later - -sub schedule_work { - my($file) = @_; - print "CHECK: '$file'\n" if($opt{v}>=2); - local($_) = `git status --porcelain --ignored -- $file`; - my $key = $mode . join('',(m/^(.)(.)/)); - if(length $key == 1){ - # Hack. An unmodified, tracked file produces no output from - # git status. Treat as another version of 'ignored'. - $key .= '@@'; - } - $key =~ s/-/ /g; # for Keni's locally mod'ed git - if(!exists $codes{$key}){ - die "I'm lost.\nK='$key' F=$file\nST=$_"; - } - if($codes{$key}==0){ - if($opt{v}>=2){ - print " IGNORE: $_" if(length); - print " IGNORE: !! $file\n" if(!length); - } - return; - } - if($opt{F}){ - my $ign = `git check-ignore $file`; - if($ign !~ m/^\s*$/){ - print " IGNORE-F: $ign" if($opt{v}>=2); - return; - } - } -# FALLTHROUGH and continue -#print "ACCEPT TEST\n"; # XXXXXXXXXX TEST -#return; - - my $attr = `git check-attr NHSUBST -- $file`; - if($attr =~ m/NHSUBST:\s+(.*)/){ -# XXX this is a bug in git. What if the value of an attribute is the -# string "unset"? Sigh. - if(! $opt{F}){ - if($1 eq "unset" || $1 eq "unspecified"){ - print " NOATTR: $attr" if($opt{v}>=2); - return; - } - } - &process_file($file); - return; - } - die "Can't parse check-attr return: $attr\n"; -} - -sub process_file { - my($file) = @_; - print "DOFIL: $file\n" if($opt{v}>=1); - - # For speed we read in the entire file then do the substitutions. - local($_) = ''; - my $len; - open INFILE, "<", $file or die "Can't open $file: $!"; - while(1){ - # On at least some systems we only get 64K. - my $len = sysread(INFILE, $_, 999999, length($_)); - last if($len == 0); - die "read failed: $!" unless defined($len); - } - close INFILE; - - local $::current_file = $file; # used under handlevar - # $1 - var and value (including trailing space but not $) - # $2 - var - # $4 - value or undef -#s/\$$PREFIX-(([A-Za-z][A-Za-z0-9_]*)(: ([^\N{DOLLAR SIGN}]+))?)\$/&handlevar($2,$4)/eg; -my $count = s/\$$PREFIX-(([A-Za-z][A-Za-z0-9_]*)(: ([^\x24]+))?)\$/&handlevar($2,$4)/eg; -# XXX had o modifier, why? - return unless($count>0); - return if($opt{n}); - my $mode = 0777 & (stat($file))[2]; - - my $ofile = $file . ".nht"; - open(TOUT, ">", $ofile) or die "Can't open $ofile"; - -# die "write failed: $!" unless defined syswrite(TOUT, $_); - my $offset = 0; - my $sent; -#print STDERR "L=",length,"\n"; - while($offset < length){ - $sent = syswrite(TOUT, $_, (length($_) - $offset), $offset); - die "write failed: $!" unless defined($sent); -#print STDERR "rv=$sent\n"; - last if($sent == (length($_) - $offset)); - $offset += $sent; -#print STDERR "loop: O=$offset\n"; - } - - close TOUT or die "Can't close $ofile"; - # Do the right thing for *nix and hope for the best elsewhere: - chmod($mode, $ofile)==1 or warn "Can't set filemode on $ofile"; - rename $ofile, $file or die "Can't rename $ofile to $file"; -} - -# XXX docs for --fixup and --squash are wrong in git's synopsis. --file missing -# --message --template -t -sub cmdparse { - my(@in) = @_; - - # What are we doing? - $opt{cmd} = 'date'; # really nhsub - if($in[0] eq '--add'){ - $opt{cmd} = 'add'; - shift @in; - } - if($in[0] eq '--commit'){ - $opt{cmd} = 'commit'; - shift @in; - } - -# add: -n -v -# commit: --dry-run -v -# nhsub: -n -v - while($in[0] =~ m/^-/){ - local($_) = $in[0]; - if($_ eq '--'){ - shift @in; - last; - } - if(m/^--/){ - if($opt{cmd} eq 'add' && $_ eq '--dry-run'){ - exit 0; - } - if($opt{cmd} eq 'commit' && $_ eq '--dry-run'){ - exit 0; - } - if($opt{cmd} eq 'add' && $_ eq '--refresh'){ - exit 0; - } - shift @in; - next; - } -# XXX this is messy - time for a rewrite? - if(m/^-(.*)/){ - foreach my $single ( split(//,$1) ){ - # don't do -v here from add/commit - if($single ne 'v'){ - # don't use -m from add/commit - if($opt{cmd} eq 'date' || $single ne 'm'){ - $opt{$single}++; - } - } elsif($opt{cmd} eq 'date'){ - $opt{$single}++; - } - - if($opt{cmd} eq 'add' && $single eq 'n'){ - exit 0; - } -#need to deal with options that eat a following element (-m, -F etc etc) -#add: nothing? -#commit: -c -C -F -m -# -u mode is optional -# -S keyid is optional - if($opt{cmd} eq 'commit'){ - if($single =~ m/[uS]/){ - last; - } - if($single =~ m/[cCFm]/){ -#XXX this will be a mess if the argument is wrong, but can we tell? No. - shift @in; - last; - } - } - } - } - shift @in; - } - - ($mode) = ($opt{cmd} =~ m/^(.)/); - $mode = 'f' if($opt{cmd} eq 'date' && ($opt{f}||$opt{F})); - $mode = 'f' if($opt{cmd} eq 'add' && $opt{f}); - - if($opt{cmd} eq 'add' && $#in == -1){ - exit 0; - } - if($opt{cmd} eq 'commit' && $#in == -1){ - exit 0; - } - if($opt{cmd} eq 'add' && $opt{a} && $#in != -1){ - exit 0; - } - if($opt{cmd} eq 'add' && $opt{a}){ - my $x = `git rev-parse --show-toplevel`; - $x =~ s/[\n\r]+$//; - push(@in, $x); - } - return @in; # this is our file list -} - -sub git_config { - my($section, $var) = @_; - my $raw = `git config --local --get $section.$var`; - $raw =~ s/[\r\n]*$//g; - return $raw if(length $raw); - die "Missing config var: [$section] $var\n"; -} - -sub handlevar { - my($var, $val) = @_; -# print "HIT '$var' '$val'\n" if($debug2); - - my $subname = "PREFIX::$var"; - if(defined &$subname){ - no strict; - print " SUBIN: $var '$val'\n" if($opt{v}>=3); - $val =~ s/\s+$//; - $val = &$subname($val); - print " SUBOT: $var '$val'\n" if($opt{v}>=3); - } else { - warn "No handler for \$$PREFIX-$var\n"; - } - - if(length $val){ - return "\$$PREFIX-$var: $val \$"; - } else { - return "\$$PREFIX-$var\$"; - } -} - -sub lsfiles { - my ($flags, $ps) = @_; - open RV, "-|", "git ls-files $flags '$ps'" or die "Can't ls-files"; - my @rv = ; - map { s/[\r\n]+$// } @rv; - if(!close RV){ - return undef if($! == 0); - die "close ls-files failed: $!"; - } - return undef if($#rv == -1); - return @rv; -} - -package PREFIX; -use POSIX qw(strftime); - -# On push, put in the current date because we changed the file. -# On pull, keep the current value so we can see the last change date. -sub Date { - my($val) = @_; - my $now; - if($opt{m}){ - my $hash = `git log -1 '--format=format:%H' $::current_file`; - #author keni 1429884677 -0400 - chomp($now = `git cat-file -p $hash | awk '/author/{print \$4}'`); - } else { - $now = time; - } - # YYYY/MM/DD HH:MM:SS - $val = "$now " . strftime("%Y/%m/%d %H:%M:%S", gmtime($now)); - return $val; -} - -#sub Header { -#} -#sub Author { -#} - -# NB: the standard-ish Revision line isn't enough - you need Branch:Revision - -# but we split it into 2 so we can use the standard processing code on Revision -# and just slip Branch in. -sub Branch { - my($val) = @_; - $val = `git symbolic-ref -q --short HEAD`; - $val =~ s/[\n\r]*$//; - $val =~ s/^\*\s*//; - $val = "(unknown)" unless($val =~ m/^[[:print:]]+$/); - return $val; -} - -sub Revision { - my($val) = @_; - my @val = `git log --follow --oneline $::current_file`; - my $ver = 0+$#val; - $ver = 0 if($ver < 0); - $val = "1.$ver"; - return $val; -} -__END__ - -=head1 NAME - -C - NetHack git command for substitution variables - -=head1 SYNOPSIS - -C - -=head1 DESCRIPTION - -C rewrites the specified files by doing variable substitution for -variables starting with the prefix specified in the repository's -C configuration variable. C is also invoked -internally from the implementation of the C and C -commands. - -The program re-writes those files listed on the command line; if the file -is actually a directory, the program recurses into that directory tree. -Not all files found are re-written; some are ignored and those with no -substitution variables are not re-written. Unless changed by the options, -files that have not changed are not affected. - -If no files are listed on the command line, the current directory is -checked as if specified as C<.>. -Files listed directly on the command line are always checked. -The C<.git> directory is never processed. - -The following command line options are available: - -=over - -=item C<-v[v[v]]> - -Verbose output; may be (usefully) specified up to 3 times. Not available -when invoked as part of C or C. - -=item C<-n> - -Do not write any files. - -=item C<-f> - -Force, version 1: -Perform substitution even if the file has not changed, -except no dot files are processed unless listed directly on the command line. -This prevents accidents with editor temporary files while recursing. Note -that this overloads the C<-f> option of C and C. - -=item C<-F> - -Force, version 2: -Perform substitution even if the file has not changed, -even if the NHSUBST attribute is not set for the -file, and only if the file is not ignored by git. Not available -when invoked as part of C or C. - -=item C<-m> - -Use metadata (C and C) to find the last change date to -substitute. Often used with C<-f>. This is useful for cleaning up dates in files that were not -updated when last changed. (Do not use C/C after C -or the changes will be overwritten with the current date.) - -=back diff --git a/src/NetHack_3.7/DEVEL/hooksdir/post-applypatch b/src/NetHack_3.7/DEVEL/hooksdir/post-applypatch deleted file mode 100644 index ec6af70..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/post-applypatch +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# $NHDT-Date: 1524689631 2018/04/25 20:53:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.1 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/post-checkout b/src/NetHack_3.7/DEVEL/hooksdir/post-checkout deleted file mode 100644 index d7e6c57..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/post-checkout +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 post-checkout $NHDT-Date: 1596498409 2020/08/03 23:46:49 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::nhversioning; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/post-commit b/src/NetHack_3.7/DEVEL/hooksdir/post-commit deleted file mode 100644 index cb37b38..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/post-commit +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 post-commit $NHDT-Date: 1596498409 2020/08/03 23:46:49 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::nhversioning; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/post-merge b/src/NetHack_3.7/DEVEL/hooksdir/post-merge deleted file mode 100644 index a634f51..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/post-merge +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 post-merge $NHDT-Date: 1596498410 2020/08/03 23:46:50 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} - -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::nhversioning; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/post-rewrite b/src/NetHack_3.7/DEVEL/hooksdir/post-rewrite deleted file mode 100644 index 655c1a0..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/post-rewrite +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 post-rewrite $NHDT-Date: 1596498411 2020/08/03 23:46:51 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::saveSTDIN; -&NHgithook::PRE; -&NHgithook::resetSTDIN; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/pre-applypatch b/src/NetHack_3.7/DEVEL/hooksdir/pre-applypatch deleted file mode 100644 index 3b57a6f..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/pre-applypatch +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 pre-applypatch $NHDT-Date: 1596498411 2020/08/03 23:46:51 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/pre-auto-gc b/src/NetHack_3.7/DEVEL/hooksdir/pre-auto-gc deleted file mode 100644 index d1ab9b0..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/pre-auto-gc +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 pre-auto-gc $NHDT-Date: 1596498412 2020/08/03 23:46:52 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/pre-commit b/src/NetHack_3.7/DEVEL/hooksdir/pre-commit deleted file mode 100644 index bb5dbfe..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/pre-commit +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 pre-commit $NHDT-Date: 1596498413 2020/08/03 23:46:53 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/pre-push b/src/NetHack_3.7/DEVEL/hooksdir/pre-push deleted file mode 100644 index c2639fa..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/pre-push +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 pre-push $NHDT-Date: 1596498413 2020/08/03 23:46:53 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::saveSTDIN; -&NHgithook::PRE; -&NHgithook::resetSTDIN; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/pre-rebase b/src/NetHack_3.7/DEVEL/hooksdir/pre-rebase deleted file mode 100644 index 7f447a0..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/pre-rebase +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 pre-rebase $NHDT-Date: 1596498414 2020/08/03 23:46:54 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/hooksdir/prepare-commit-msg b/src/NetHack_3.7/DEVEL/hooksdir/prepare-commit-msg deleted file mode 100644 index b681385..0000000 --- a/src/NetHack_3.7/DEVEL/hooksdir/prepare-commit-msg +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -# $NHDT-Date: 1524689633 2018/04/25 20:53:53 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.1 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -#STARTUP-START -BEGIN { - # OS hackery has to be duplicated in each of the hooks :/ - # first the directory separator - my $DS = quotemeta('/'); - my $PDS = '/'; - # msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). - # temporarily removed because inconsistent behavior - # if ($^O eq "msys") - # { - # $/ = "\r\n"; - # $\ = "\r\n"; - # } - if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $PDS = '\\'; - } - $gitdir = `git rev-parse --git-dir`; - chomp $gitdir; - push(@INC, $gitdir.$PDS."hooks"); -} -use NHgithook; -#STARTUP-END - -&NHgithook::PRE; -&NHgithook::POST; -exit 0; diff --git a/src/NetHack_3.7/DEVEL/nhgitset.pl b/src/NetHack_3.7/DEVEL/nhgitset.pl deleted file mode 100644 index 03bb63f..0000000 --- a/src/NetHack_3.7/DEVEL/nhgitset.pl +++ /dev/null @@ -1,341 +0,0 @@ -#!/usr/bin/perl -# $NHDT-Date: 1693357449 2023/08/30 01:04:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ -# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland -# NetHack may be freely redistributed. See license for details. - -# value of nethack.setupversion we will end up with when this is done -# version 1 is reserved for repos checked out before versioning was added -my $version_new = 3; -my $version_old = 0; # current version, if any (0 is no entry ergo new repo) - -use Cwd; -use Getopt::Std; - -# Activestate Perl doesn't include File::Spec. Grr. -BEGIN { - eval "require File::Spec::Functions"; - if($@){ - die <import; -} - -exit 1 unless(getopts('nvf')); # TODO: this can probably have better output - -# OS hackery -my $DS = quotemeta('/'); # Directory Separator (for regex) -my $DSP = '/'; # ... for printing -# Temporarily disabled; there's something weird about msys -# msys: POSIXish over a Windows filesystem (so / not \ but \r\n not \n). -#if($^O eq "msys"){ -# $/ = "\r\n"; -# $\ = "\r\n"; -# # NB: We don't need to do anything about File::Spec. It doesn't know -# # about msys but it defaults to Unix, so we'll be ok. -#} -if($^O eq "MSWin32"){ - $DS = quotemeta('\\'); - $DSP = '\\'; -} - -# make sure we're at the top level of a repo -if(! -d ".git"){ - die "This is not the top level of a git repository.\n"; -} - -my $vtemp = `git config --local --get nethack.setupversion`; -chomp($vtemp); -if($vtemp > 0){ - $version_old = 0+$vtemp; - if($version_old != $version_new){ - print STDERR "Migrating from setup version $version_old to $version_new\n" if($opt_v); - } -} -# legacy check: -if(length $vtemp == 0){ - if(`git config --get merge.NHsubst.name` =~ m/^Net/){ - $version_old = 1; - print STDERR "Migrating to setup version 1\n" if($opt_v); - } -} - -my $gitadddir = `git config --get nethack.gitadddir`; -chomp($gitadddir); -if(length $gitadddir){ - if(! -d $gitadddir){ - die "nethack.gitadddir has invalid value '$gitadddir'\n"; - } -} -print STDERR "nethack.gitadddir=$gitadddir\n" if($opt_v); - -# This is (relatively) safe because we know we're at R in R/DEVEL/nhgitset.pl -my $srcdir = ($0 =~ m!^(.*)$DS!)[0]; - -if(! -f catfile($srcdir, 'nhgitset.pl')){ - die "I can't find myself in '$srcdir'\n"; -} - -print STDERR "Copying from: $srcdir\n" if($opt_v); - -if($opt_f || $version_old==0){ - print STDERR "Configuring line endings\n" if($opt_v); - unlink catfile('.git','index') unless($opt_n); - system("git reset") unless($opt_n); - system("git config --local core.safecrlf true") unless($opt_n); - system("git config --local core.autocrlf false") unless($opt_n); -} elsif($version_old <2){ - my $xx = `git config --get --local core.safecrlf`; - if($xx !~ m/true/){ - print STDERR "\nNeed to 'rm .git${DSP}index;git reset'.\n"; - print STDERR " When ready to proceed, re-run with -f flag.\n"; - exit 2; - } -} - - - -print STDERR "Installing aliases\n" if($opt_v); -$addpath = catfile(curdir(),'.git','hooks','NHadd'); -&add_alias('nhadd', "!$addpath add"); -&add_alias('nhcommit', "!$addpath commit"); -my $nhsub = catfile(curdir(),'.git','hooks','nhsub'); -&add_alias('nhsub', "!$nhsub"); - -print STDERR "Installing filter/merge\n" if($opt_v); - -# XXXX need it in NHadd to find nhsub??? -# removed at version 3 -#if($^O eq "MSWin32"){ -# $cmd = '.git\\\\hooks\\\\NHtext'; -#} else { -# $cmd = catfile(curdir(),'.git','hooks','NHtext'); -#} -#&add_config('filter.NHtext.clean', "$cmd --clean %f"); -#&add_config('filter.NHtext.smudge', "$cmd --smudge %f"); -if($version_old == 1 or $version_old == 2){ - print STDERR "Removing filter.NHtext\n" if($opt_v); - system('git','config','--unset','filter.NHtext.clean') unless($opt_n); - system('git','config','--unset','filter.NHtext.smudge') unless($opt_n); - system('git','config','--remove-section','filter.NHtext') unless($opt_n); - - print STDERR "Removing NHtext\n" if($opt_v); - unlink catfile(curdir(),'.git','hooks','NHtext') unless($opt_n); -} - -$cmd = catfile(curdir(),'.git','hooks','NHsubst'); -&add_config('merge.NHsubst.name', 'NetHack Keyword Substitution'); -&add_config('merge.NHsubst.driver', "$cmd %O %A %B %L"); - -print STDERR "Running directories\n" if($opt_v); - -foreach my $dir ( glob("$srcdir$DS*") ){ - next unless(-d $dir); - - my $target = catfile($dir, 'TARGET'); - next unless(-f $target); - - open TARGET, '<', $target or die "$target: $!"; - my $targetpath = ; - # still have to eat all these line endings under msys, so instead of chomp use this: - $targetpath =~ s![\r\n]!!g; - close TARGET; - print STDERR "Directory $dir -> $targetpath\n" if($opt_v); - - my $enddir = $dir; - $enddir =~ s!.*$DS!!; - if(! &process_override($enddir, "INSTEAD")){ - &process_override($enddir, "PRE"); - my $fnname = "do_dir_$enddir"; - if(defined &$fnname){ - &$fnname($dir, $targetpath); - } - &process_override($enddir, "POST"); - } -} - -&check_prefix; # for variable substitution - -if($version_old != $version_new){ - print STDERR "Setting version to $version_new\n" if($opt_v); - if(! $opt_n){ - system("git config nethack.setupversion $version_new"); - if($?){ - die "Can't set nethack.setupversion $version_new: $?,$!\n"; - } - } -} - -exit 0; - -sub process_override { - my($srcdir, $plname) = @_; - return 0 unless(length $gitadddir); - - my $plpath = catfile($gitadddir, $srcdir, $plname); -#print STDERR " ",catfile($srcdir, $plname),"\n"; # save this for updating docs - list of overrides - return 0 unless(-x $plpath); - - print STDERR "Running $plpath\n" if($opt_v); - # current directory is top of target repo - - unless($opt_n){ - system("$plpath $opt_v") and die "Callout $plpath failed: $?\n"; - } - return 1; -} - -sub add_alias { - my($name, $def) = @_; - &add_config("alias.$name",$def); -} - -sub add_config { - my($name, $val) = @_; - system('git', 'config', '--local', $name, $val) unless($opt_n); -} - -sub check_prefix { - my $lcl = `git config --local --get nethack.substprefix`; - chomp($lcl); - if(0==length $lcl){ - my $other = `git config --get nethack.substprefix`; - chomp($other); - if(0==length $other){ - print STDERR "ERROR: nethack.substprefix is not set anywhere. Set it and re-run.\n"; - exit 2; - } else { - &add_config('nethack.substprefix', $other); - print STDERR "Copying prefix '$other' to local repository.\n" if($opt_v); - } - $lcl = $other; # for display below - } - print "\n\nUsing prefix '$lcl' - PLEASE MAKE SURE THIS IS CORRECT\n\n"; -} - -sub do_dir_DOTGIT { -if(1){ - # We are NOT going to mess with config now. - return; -} else { - my($srcdir, $targetdir) = @_; -#warn "do_dir_DOTGIT($srcdir, $targetdir)\n"; - my $cname = "$srcdir/config"; - if(-e $cname){ - print STDERR "Appending to .git/config\n" if($opt_v); - open CONFIG, ">>.git/config" or die "open .git/config: $!"; - open IN, "<", $cname or die "open $cname: $!"; - my @data = ; - print CONFIG @data; - close IN; - close CONFIG; - } else { - print STDERR " Nothing to add to .git/config\n" if($opt_v); - } -# XXX are there other files in .git that we might want to handle? -# So just in case: - for my $file ( glob("$srcdir/*") ){ - next if( $file =~ m!.*/TARGET$! ); - next if( $file =~ m!.*/config$! ); - die "ERROR: no handler for $file\n"; - } -} -} - -sub do_dir_hooksdir { - my($srcdir, $targetdir) = @_; - - unless (-d $targetdir){ - # Older versions of git, when cloning a repo and - # the expected source templates directory does not - # exist, does not create .git/hooks. So do it here. - mkdir $targetdir; - print STDERR "WARNING: .git/hooks had to be created.\n"; - print STDERR " You may want to update git.\n"; - } - - for my $path ( glob("$srcdir$DS*") ){ - - next if( $path =~ m!.*${DS}TARGET$! ); - - my $file = $path; - - $file =~ s!.*$DS!!; - - $file = catfile($targetdir, $file); - - next if($opt_n); - - open IN, "<", $path or die "Can't open $path: $!"; - open OUT, ">", "$file" or die "Can't open $file: $!"; - while(){ - print OUT; - } - close OUT; - close IN; - - if(! -x $file){ - chmod 0755 ,$file; - } - } -} - -__END__ -(can we change the .gitattributes syntax to include a comment character?) -maybe [comment] attr.c:parse_attr_line -grr - looks like # is the comment character - - - -=head1 NAME - -nhgitset.pl - Setup program for NetHack git repositories - -=head1 SYNOPSIS - - cd THE_REPO - [git config nethack.gitadddir GITADDDIR] - perl SOME_PATH/DEVEL/nhgitset.pl [-v][-n][-f] - -=head1 DESCRIPTION - -nhgitset.pl installs NetHack-specific setup after a C (or after -changes to the desired configuration, which are installed by re-running -nhgitset.pl). - -The follwing options are available: - -B<-f> Force. Do not use this unless the program requests it. - -B<-n> Make no changes. - -B<-v> Verbose output. - -=head1 CONFIG - -nhgitset.pl uses the following non-standard C variables: - -nethack.gitadddir - - DOTGIT/INSTEAD - DOTGIT/PRE - DOTGIT/POST - hooksdir/INSTEAD - hooksdir/PRE - hooksdir/POST - -nethack.setupversion - -nethack.substprefix - - -=head1 EXIT STATUS - -0 Success. - -1 Fail. - -2 Intervention required. diff --git a/src/NetHack_3.7/Files b/src/NetHack_3.7/Files deleted file mode 100644 index e0da484..0000000 --- a/src/NetHack_3.7/Files +++ /dev/null @@ -1,677 +0,0 @@ -This is a listing of all files in a full NetHack 3.7 distribution, organized -in their standard manner on a UNIX system. It indicates which files are -necessary for which versions, so that you can tell which files may be deleted -from or not transferred to your system if you wish. - -(Note: we ignore various dot files related to git.) - -.: -(files in top directory) -.clang-format Cross-compiling Files -Porting README azure-pipelines.yml - -DEVEL: -(files for people developing changes to NetHack) -Developer.txt code_features.txt code_style.txt git_recipes.txt -gitinfo.pl nhgitset.pl - -DEVEL/DOTGIT: -(file for people developing changes to NetHack) -TARGET - -DEVEL/hooksdir: -(files for people developing changes to NetHack) -NHadd NHgithook.pm NHsubst -NHtext TARGET applypatch-msg -commit-msg nhsub post-applypatch -post-checkout post-commit post-merge -post-rewrite pre-applypatch pre-auto-gc -pre-commit pre-push pre-rebase -prepare-commit-msg - -dat: -(files for all versions) -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 -bigrm-11.lua bogusmon.txt castle.lua cmdhelp data.base -dungeon.lua earth.lua engrave.txt epitaph.txt fakewiz1.lua -fakewiz2.lua fire.lua hellfill.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 -nhcore.lua nhlib.lua opthelp optmenu 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 -themerms.lua tower1.lua tower2.lua tower3.lua tribute -usagehlp valley.lua water.lua wizard1.lua wizard2.lua -wizard3.lua wizhelp - -doc: -(files for all versions) -Gbk-1pg-pfx.mn Gbk-1pg-sfx.mn Guidebook.mn Guidebook.tex -Guidebook.txt config.nh dlb.6 dlb.txt -fixes1-0.txt fixes1-4-f.txt fixes2-2.txt fixes2-3-e.txt -fixes3-0.txt fixes3-0-pl01.txt fixes3-0-pl02.txt fixes3-0-pl03.txt -fixes3-0-pl04.txt fixes3-0-pl05.txt fixes3-0-pl06.txt fixes3-0-pl07.txt -fixes3-0-pl08.txt fixes3-0-pl09.txt fixes3-0-pl10.txt fixes3-1-1.txt -fixes3-1-2.txt fixes3-1-3.txt fixes3-2-0.txt fixes3-2-1.txt -fixes3-2-2.txt fixes3-2-3.txt fixes3-3-0.txt fixes3-3-1.txt -fixes3-4-0.txt fixes3-4-1.txt fixes3-4-2.txt fixes3-4-3.txt -fixes3-5-0.txt fixes3-6-0.txt fixes3-6-1.txt fixes3-6-2.txt -fixes3-6-3.txt fixes3-6-4.txt fixes3-6-5.txt fixes3-6-6.txt -fixes3-6-7.txt fixes3-7-0.txt fixesX-X-X.txt lua.adoc -makedefs.6 makedefs.txt mn.7 mn.txt -mnh.7 mnh.txt nethack.6 nethack.txt -options.txt recover.6 recover.txt sound.txt -tmac.n tmac.nh window.txt - -include: -(files for X versions) -tile2x11.h winX.h xwindow.h xwindowp.h - -(files for all versions) -align.h artifact.h artilist.h attrib.h botl.h -color.h config.h config1.h context.h coord.h -cstd.h decl.h defsym.h dgn_file.h display.h -dlb.h dungeon.h engrave.h extern.h flag.h -fnamesiz.h func_tab.h global.h hack.h integer.h -isaac64.h lint.h mail.h mextra.h mfndpos.h -micro.h mkroom.h monattk.h mondata.h monflag.h -monst.h monsters.h obj.h objclass.h objects.h -optlist.h patchlevel.h pcconf.h permonst.h prop.h -quest.h rect.h region.h rm.h seffects.h -skills.h sndprocs.h sp_lev.h spell.h sym.h -sys.h tcap.h tileset.h timeout.h tradstdc.h -trap.h unixconf.h vision.h vmsconf.h warnings.h -winami.h wincurs.h windconf.h winprocs.h wintype.h -you.h youprop.h - -(file for tty versions) -wintty.h - -outdated: -(files that are no longer maintained for current game code) -.travis.yml - -outdated/dat: -(files that are no longer maintained for current game code) -symbols - -outdated/include: -(files for GEM versions) -bitmfile.h gem_rsc.h load_img.h wingem.h - -(file for GNOME versions) -winGnome.h - -(files for all versions) -amiconf.h beconf.h def_os2.h os2conf.h system.h tosconf.h -trampoli.h wceconf.h - -(files for various Macintosh versions) -mac-carbon.h mac-qt.h mac-term.h macconf.h macpopup.h -mactty.h macwin.h mttypriv.h - -outdated/sys/amiga: -(files for Amiga versions - untested for 3.7) -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 amistack.c amitty.c -amiwind.c amiwind.p clipwin.c colorwin.c grave16.xpm -ifchange mkdmake txt2iff.c winamenu.c winami.c -winami.p winchar.c windefs.h winext.h winfuncs.c -winkey.c winproto.h winreq.c winstr.c xpm2iff.c - -outdated/sys/atari: -(files for Atari version - untested for 3.7) -Install.tos atarifnt.uue nethack.mnu setup.g tos.c -unx2atar.sed - -outdated/sys/be: -(files for BeOS version - untested for 3.7) -README bemain.c - -outdated/sys/mac: -(files for 68K Macintosh versions) -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 mactopl.c mactty.c macunix.c macwin.c -mgetline.c mmodal.c mrecover.c mrecover.hqx mttymain.c - -outdated/sys/msdos: -(files for deprecated real mode msdos version) -Makefile.BC Makefile.MSC SCHEMA35.MSC moveinit.pat ovlinit.c -schema1.BC schema2.BC schema3.MSC - -outdated/sys/os2: -(files for OS/2 version - untested for 3.7) -Install.os2 Makefile.os2 nhpmico.uu os2.c - -outdated/sys/unix: -(files that are no longer maintained for current game code) -README.linux cross-amiga.sh - -outdated/sys/unix/hints: -(files that are no longer maintained for current game code) -cross-amiga linux linux-chroot linux-qt4 -linux-qt5 linux-x11 macosx macosx10.5 -macosx10.7 macosx10.8 macosx10.10 macosx10.10-qt -macosx10.14 - -outdated/sys/unix/hints/include: -(files that are no longer maintained for current game code) -cross-amiga-post cross-amiga-pre - -outdated/sys/vms: -(files that are no longer maintained for current game code) -lev_lex.h - -outdated/sys/wince: -(files for Windows CE and PocketPC - untested for 3.7) -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 -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 mhstatus.c mhstatus.h mhtext.c mhtext.h -mhtxtbuf.c mhtxtbuf.h mswproc.c newres.h nhico.uu -resource.h winMS.h winhack.c winhack.rc winhcksp.rc -winmain.c - -outdated/sys/wince/ceinc: -(header files for Windows CE and PocketPC - untested for 3.7) -assert.h errno.h fcntl.h - -outdated/sys/wince/ceinc/sys: -(sys/stat.h for Windows CE and PocketPC - untested for 3.6.2) -stat.h - -outdated/sys/windows: -(files that are no longer maintained for current game code) -travis-gcc.sh - -outdated/sys/windows/vs: -(files that are no longer maintained for current game code) -travisci.sh - -outdated/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 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 - -outdated/win/gem: -(files for GEM versions - untested for 3.7) -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 - -outdated/win/gnome: -(files for GNOME versions - untested for 3.7) -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 -gnopts.h gnplayer.c gnplayer.h gnsignal.c gnsignal.h gnstatus.c -gnstatus.h gntext.c gntext.h gnworn.c gnworn.h gnyesno.c -gnyesno.h mapbg.xpm - -sound/fmod: -(file in top directory) -fmod.c - -sound/macsound: -(file in top directory) -macsound.m - -sound/qtsound: -(file in top directory) -README.md - -sound/wav: -(files in top directory) -README attributions.txt -sa2_xpleveldown.uu sa2_xplevelup.uu -se_squeak_A.uu se_squeak_B.uu -se_squeak_B_flat.uu se_squeak_C.uu -se_squeak_D.uu se_squeak_D_flat.uu -se_squeak_E.uu se_squeak_E_flat.uu -se_squeak_F.uu se_squeak_F_sharp.uu -se_squeak_G.uu se_squeak_G_sharp.uu -sound_Bell.uu sound_Bugle_A.uu -sound_Bugle_B.uu sound_Bugle_C.uu -sound_Bugle_D.uu sound_Bugle_E.uu -sound_Bugle_F.uu sound_Bugle_G.uu -sound_Drum_Of_Earthquake.uu sound_Fire_Horn.uu -sound_Frost_Horn.uu sound_Leather_Drum.uu -sound_Magic_Flute_A.uu sound_Magic_Flute_B.uu -sound_Magic_Flute_C.uu sound_Magic_Flute_D.uu -sound_Magic_Flute_E.uu sound_Magic_Flute_F.uu -sound_Magic_Flute_G.uu sound_Magic_Harp_A.uu -sound_Magic_Harp_B.uu sound_Magic_Harp_C.uu -sound_Magic_Harp_D.uu sound_Magic_Harp_E.uu -sound_Magic_Harp_F.uu sound_Magic_Harp_G.uu -sound_Tooled_Horn_A.uu sound_Tooled_Horn_B.uu -sound_Tooled_Horn_C.uu sound_Tooled_Horn_D.uu -sound_Tooled_Horn_E.uu sound_Tooled_Horn_F.uu -sound_Tooled_Horn_G.uu sound_Wooden_Flute_A.uu -sound_Wooden_Flute_B.uu sound_Wooden_Flute_C.uu -sound_Wooden_Flute_D.uu sound_Wooden_Flute_E.uu -sound_Wooden_Flute_F.uu sound_Wooden_Flute_G.uu -sound_Wooden_Harp_A.uu sound_Wooden_Harp_B.uu -sound_Wooden_Harp_C.uu sound_Wooden_Harp_D.uu -sound_Wooden_Harp_E.uu sound_Wooden_Harp_F.uu -sound_Wooden_Harp_G.uu uu2wav.cmd -uu2wav.sh - -sound/windsound: -(file in top directory) -windsound.c - -src: -(files for all versions) -allmain.c alloc.c apply.c artifact.c attrib.c ball.c -bones.c botl.c cmd.c date.c dbridge.c decl.c -detect.c dig.c display.c dlb.c do.c do_name.c -do_wear.c 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 insight.c -invent.c isaac64.c light.c lock.c mail.c makemon.c -mcastu.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 symbols.c sys.c -teleport.c timeout.c topten.c track.c trap.c u_init.c -uhitm.c utf8map.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 - -submodules: -(files in top directory) -lua pdcurses pdcursesmod - -sys/libnh: -(files in top directory) -README.md libnhmain.c sysconf - -sys/libnh/test: -(files in top directory) -README.md libtest.c run.sh - -sys/msdos: -(files for MSDOS version) -Install.dos Makefile.GCC exceptn.S.patch -fetch-cross-compiler.sh font.c font.h -msdos.c msdoshlp.txt nhlua.h -pckeys.c pctiles.c pctiles.h -pcvideo.h portio.h 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/msdos/fonts: -(files for MSDOS version) -README.txt makefont.lua nh-u16b.bdf nh-u16v.bdf nh-u18b.bdf -nh-u20b.bdf nh-u22b.bdf nh-u24b.bdf nh-u28b.bdf nh-u32b.bdf - -sys/share: -(Berkeley random number file, which may be included in any version) -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 - only MSDOS tested for 3.7) -pcmain.c - -(file for MSDOS, OS/2, and Atari versions - only MSDOS tested for 3.7) -NetHack.cnf pctty.c - -(file for MSDOS, OS/2, and VMS versions) -termcap - -(file for VMS version) -tclib.c - -(files for MSDOS, OS/2 and Atari versions - only MSDOS tested for 3.7) -pcsys.c pcunix.c - -(files for OS/2 version - untested for 3.7) -Makefile.lib termcap.uu - -(files for UNIX and Be versions) -ioctl.c unixtty.c - -(posix regex for versions that include regex in their C library) -posixregex.c - -(c++ regex code for versions that can build a C++ module and link it in) -cppregex.cpp - -(pmatch regex for other versions) -pmatchregex.c - -sys/unix: -(files for UNIX versions) -Install.unx Makefile.dat Makefile.doc Makefile.src -Makefile.top Makefile.utl NewInstall.unx README.xcode -XCode.xcconfig depend.awk gitinfo.sh mkmkfile.sh -nethack.sh setup.sh sysconf unixmain.c -unixres.c unixunix.c - -sys/unix/NetHack.xcodeproj: -(file for macOS Xcode) -project.pbxproj - -sys/unix/NetHack.xcodeproj/project.xcworkspace: -(file for macOS Xcode) -contents.xcworkspacedata - -sys/unix/NetHack.xcodeproj/project.xcworkspace/xcshareddata: -(files for macOS Xcode) -IDEWorkspaceChecks.plist WorkspaceSettings.xcsettings - -sys/unix/NetHack.xcodeproj/xcshareddata/xcschemes: -(files for macOS Xcode) -NetHack.xcscheme makedefs.xcscheme recover.xcscheme - -sys/unix/hints: -(files for configuring UNIX NetHack versions) -linux-minimal linux.370 macOS.370 -macosx.sh solaris solaris-playground -unix - -sys/unix/hints/include: -(files for configuring UNIX NetHack versions) -compiler.370 cross-post.370 cross-pre.370 gbdates-post.370 -gbdates-pre.370 multisnd-post.370 multisnd1-pre.370 multisnd2-pre.370 -multiw-1.370 multiw-2.370 multiw-3.370 - -sys/vms: -(files for VMS version) -Install.vms Makefile.dat Makefile.doc Makefile.src Makefile.top -Makefile.utl install.com nethack.com oldcrtl.c spec_lev.com -sysconf vmsbuild.com vmsfiles.c vmsmail.c vmsmain.c -vmsmisc.c vmstty.c vmsunix.c - -sys/windows: -(files for Windows 7/8.x/10/11 version) -.nethackrc.template Install.windows Makefile.mingw32 -Makefile.mingw32.depend Makefile.nmake console.rc -consoletty.c guitty.c nethack.def -nhico.uu nhsetup.bat porthelp -sysconf.template win10.c win10.h -win32api.h windmain.c windsys.c -winos.h - -sys/windows/vs: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -NetHack.sln NetHackPackage.appxmanifest -NetHackPackage.wapproj NetHackProperties.props -Package.StoreAssociation.xml ScreenShot.PNG -build.bat common.props -config.props console.props -cpp.hint default.props -default_dll.props default_lib.props -dirs.props dll.props -files.props - -sys/windows/vs/Images: -(files for Visual Studio 2017 or 2019 or 2022 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 - -sys/windows/vs/NetHack: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -NetHack.vcxproj afternethack.proj - -sys/windows/vs/NetHackW: -(file for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -NetHackW.vcxproj - -sys/windows/vs/PDCurses: -(file for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -PDCurses.vcxproj - -sys/windows/vs/PDCursesGui: -(file for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -pdcursesgui.vcxproj - -sys/windows/vs/dlb: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -afterdlb.proj dlb.vcxproj - -sys/windows/vs/makedefs: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -aftermakedefs.proj makedefs.vcxproj - -sys/windows/vs/recover: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -afterrecover.proj recover.vcxproj - -sys/windows/vs/tile2bmp: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -aftertile2bmp.proj tile2bmp.vcxproj - -sys/windows/vs/tilemap: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -aftertilemap.proj tilemap.vcxproj - -sys/windows/vs/tiles: -(file for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -tiles.vcxproj - -sys/windows/vs/uudecode: -(files for Visual Studio 2017 or 2019 or 2022 Community Edition builds) -afteruudecode.proj uudecode.vcxproj - -test: -(files for testing) -test_cnf.lua test_des.lua test_lev.lua test_obj.lua test_sel.lua -test_shk.lua test_src.lua testmove.lua testwish.lua - -util: -(files for all versions) -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-issues.txt 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_post.h qt_pre.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/X11: -(files for X versions) -Install.X11 NetHack.ad Window.c X11-issues.txt -dialogs.c ibm.bdf nethack.rc nh10.bdf -nh32icon nh56icon nh72icon nh_icon.xpm -pet_mark.xbm pilemark.xbm rip.xpm tile2x11.c -winX.c winmap.c winmenu.c winmesg.c -winmisc.c winstat.c wintext.c winval.c - -win/chain: -(files for stacking window systems) -wc_chainin.c wc_chainout.c wc_trace.c - -win/curses: -(files in top directory) -Bugs.txt Readme.txt Todo.txt cursdial.c cursdial.h cursinit.c -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/macosx: -(files for macosx versions) -NetHackGuidebook.applescript NetHackRecover.applescript -NetHackTerm.applescript recover.pl - -win/share: -(files for versions using optional tiles) -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 tiletxt.c - -win/shim: -(file in top directory) -winshim.c - -win/tty: -(files for tty versions) -getline.c termcap.c topl.c wintty.c - -win/win32: -(files for Windows versions - tested up to Windows 11) -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 - -This is a list of files produced by auxiliary programs. They can all be -regenerated from the files in the distribution. - -dat: -(files generated by makedefs at playground creation time) -data options oracles rumors - -(files generated for Qt interface on macOS) -Info.plist nethack.icns - -(files generated for windows at compile time) -dlb.lst porthelp - -(files generated for windows gui at compile time) -guioptions - -(files generated for windows tty at compile time) -ttyoptions - -(tile files optionally generated for X ports at playground creation time) -pet_mark.xbm rip.xpm x11tiles - -src: -(files for win32 that are moved into src at compile time) -Makefile Makefile.mingw32 - -(files generated by 'moc' for Qt interface at compile time) -qt_kde0.moc qt_main.moc qt_map.moc qt_menu.moc qt_msg.moc -qt_plsel.moc qt_set.moc qt_stat.moc qt_xcmd.moc qt_yndlg.moc - -(file generated by makedefs -m but unused in 3.7) -monstr.c - -(file optionally generated by tilemap at compile time) -tile.c - -sys/windows: -(file generated by uudecode at compile time) -nethack.ico - -util: -(file generated for unix at compile time if various tiles utilities are built) -tiletxt.c - -(file generated for windows at compile time) -uudecode.exe - -NOTE: If your binaries were compiled with the data librarian (DLB) option, - your playground will not contain all of the files listed here. All - of the files listed as being required for the playground must still - have been built by your compiler, but the DLB code will roll them up - into another file (or files). - diff --git a/src/NetHack_3.7/Porting b/src/NetHack_3.7/Porting deleted file mode 100644 index 7260159..0000000 --- a/src/NetHack_3.7/Porting +++ /dev/null @@ -1,265 +0,0 @@ - NetHack Porting Guidelines v 3.7 2023-04-23 - - - 1.0 Introduction - - This document goes through the steps required to port NetHack to a -new machine, with the intention of compiling natively on that machine. If -you are cross-compiling for one platform on another, it is suggested that -you read Cross-compiling. - -The basic steps in porting the program using a native compiler are: - - 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 - documentation in doc is strongly recommended. You already - 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". - - If your machine uses an OS already supported, you need the sys - subdirectory for that OS and possibly sys/share. Otherwise, - get the closest match (say sys/msdos for single-tasking OSes - and sys/unix for multi-user OSes, along with sys/share, if - nothing else comes to mind). You may want others for - comparison. - - If your machine uses a windowing system already supported, - you need the win subdirectory for that system (or the - appropriate sys subdirectory if the windowing system was - previously considered restricted to one OS) and possibly - win/share. - - 2. Modify the appropriate include files to customize NetHack to - your system. You may need to add a new OS-specific "*conf.h" - file (see unixconf.h, windconf.h, pcconf.h, etc. as examples). - - 3. If your machine uses a new OS instead of a variant of existing - OSes, add a new sys subdirectory. Add, if required, a OS- - specific copy of "main.c", "tty.c" and "unix.c". Possibly - add an OS-specific library (see "msdos.c" and "tos.c" as - examples) to provide functions NetHack wants and your OS lacks. - - 4. If your machine uses a new windowing system, follow doc/window.txt - carefully. Put files implementing these routines in a win or - sys subdirectory as appropriate. - - 5. If your compilation environment isn't close to one already - supported, try starting from the UNIX makefiles. Modify the - top level makefile and the src makefile as required. Then run - an initial compile. You are bound to get some errors. You - should be able to fix them in a fairly simple fashion. If - things seem to be getting too complex, take a step back, and - 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, 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. -Always add your OS specific code inside #ifdef / #else / #endif constructs -so that it will be able to be folded back into the original code easily. - - - 2.0 Include Files - - 2.1 config.h - - The file "config.h" is a master configuration file that determines -the basic features of the game, as well as many of the security options. -It is intended that end users configure the game by editing "config.h" and -an appropriate "*conf.h" file, so any #defines for individual preferences -should be added to those files. OS-specific #defines that are not intended -to be changed should also go in "*conf.h"; try to find the most appropriate -place for other #defines. - - The following sections may require modification: - - - Section 1: OS and window system selection. - You may have to put a #define for your OS here. - If your OS is yet another UNIX variant, put the - #define in unixconf.h instead. - An unfortunately large amount of stuff shares - this section because the #definitions have to - be seen before *conf.h is reached. Don't add - to this unless necessary. - - - Section 2: Global parameters and filenames. - These will have to be customized to your system. - - - Section 3: Type definitions and other compiler behavior. - These will have to be matched to your compiler. - - 2.2 global.h - - This file defines things specific to NetHack that should not -require modification by an end user. For a new port, you may have to add -automatic inclusion of another auxiliary config file (*conf.h) which you -wrote for your system. - - 2.3 extern.h - - If you create any new source modules or new functions in old modules, -you must enter the names of the new external references (the functions defined -there for external use) in this file. - - - 3.0 Source files - - The first step in getting the game up is to get the "makedefs" -program running. This program is used to create configuration-specific -files for the game. - - Once "makedefs" has been built, the rest of the game can be compiled. -You may have to create an OS-specific module to handle things you want to -use, like a mouse or a ram-disk. - - 3.1 Makefiles - - This distribution provides makefiles for several kinds of systems. -There are joint makefiles for the various varieties of UNIX, makefiles for -MSDOS, a makefile for NT, and so on. You may have to create a new -makefile for your specific machine. You may even have to translate some -makefiles into a form more congenial to your system. If possible, however, -add to one of those provided. - - 3.2 termcap.c - - If your system wants to use tty windowing and it doesn't run off -of a termcap or terminfo database, you may have to put the appropriate -terminal control strings into termcap.c. You can also consider using the -termcap code from sys/share/tclib.c or sys/share/termcap.uu, especially if -your system supports multiple kinds of terminals. Alternatively, you can -define NO_TERMS and provide alternative screen handling in a -platform-specific module. That has already been done for MSDOS and for -the Windows console, and those mods can be used as an example. - - 3.4 tty.c - - You may need to create a new "tty.c" module. If you do, call it -[OS]tty.c where the [OS] is replaced with the name of the OS you are porting -to. This file contains the routines that configure the terminal/console -for raw I/O, etc. - - 3.5 unix.c - - You may need to create a new "unix.c" module. If you do, call it -[OS]unix.c where the [OS] is replaced with the name of the OS you are porting -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) 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. - - Required for complete packaging of the game, but not the C source - game compile: - util/makedefs -d - util/makedefs -r - util/makedefs -h - util/makedefs -s - - For reference purposes, but no longer a required prerequisite for the - game compile process: - util/makedefs -v - util/makedefs -o - util/makedefs -p - - 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.4.6 (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.7 Porting $NHDT-Date: 1643491454 2022/01/29 21:24:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.17 $ -# Copyright (c) 2005 by Michael Allison -# NetHack may be freely redistributed. See license for details. diff --git a/src/NetHack_3.7/README b/src/NetHack_3.7/README deleted file mode 100644 index 7863dd0..0000000 --- a/src/NetHack_3.7/README +++ /dev/null @@ -1,216 +0,0 @@ - NetHack 3.7.0 work-in-progress -- General information - -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.6. - -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/fixes3-7-0.txt in the source distribution will be updated with -a list of fixes as they are committed. - -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.7 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/fixes3-7-0.txt 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 central 'ga' through 'gz' structures in - decl.h/decl.c. That central ability to reinitialize the variables will - benefit the porting effort to some platforms that are under consideration - where "play again" is typical. - -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 - - - - - - - - - - - - - - -Please read items (1), (2) and (3) BEFORE doing anything with your new code. - -1. Unpack the code in a dedicated new directory. We will refer to that - directory as the 'Top' directory. It makes no difference what you - call it. - -2. Having unpacked, you should have a file called 'Files' in your Top - 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 - the build process. - - The names of the directories listed should not be changed unless you - are ready to go through the makefiles and the makedefs program and change - all the directory references in them. - -3. Before you do anything else, please read carefully the file called - "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 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). - - The files sys/*/Install.* were written to guide you in configuring the - program for your operating system. The files win/*/Install.* are - available, where necessary, to help you in configuring the program - for particular windowing environments. Reading them, and the man pages, - should answer most of your questions. - - - At the time of the most recent official release, NetHack 3.6, it had - been tested to run/compile on: - - Intel Pentium or better running Linux, BSDI - Intel Pentium or better running Windows 10 or 11 - Intel-based, or Apple M1 or M2 Macs running macOS 10.11 (El Capitan) to - 13 (Ventura) (follow the instructions in sys/unix/NewInstall.unx) - Intel 80386 or greater running MS-DOS with DPMI - built via djgpp compiler (native or Linux-hosted cross-compiler) - OpenVMS (aka VMS) V8.4 on Alpha and on Integrity/Itanium/IA64 - - 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 - AT&T 3B1 running System V (3.51) - AT&T 3B2/600 & 3B2/622 running System V R3.2.1 - AT&T 3B2/1000 Model 80 running System V R3.2.2 - AT&T 3B4000 running System V - AT&T 6386 running System V R3.2 - Commodore Amiga running AmigaDOS 3.0 or higher with SAS/C 6.x - (but see Makefile.ami about DICE and Manx) - Data General AViiON systems running DG/UX - DEC Alpha/VMS (aka OpenVMS AXP), running V1.x through V7.1 - DEC VAX/VMS, running V4.6 through V7.1 - DEC vaxen running BSD, Ultrix - Decstations running Ultrix 3.1, 4.x - Encore Multimax running UMAX 4.2 - Gould NP1 running UTX 3/2 - HP 9000s300 running HP-UX - HP 9000s700 running HP-UX 9.x, 10.x, 11.x - H/PC Pro devices running Windows CE 2.11 and higher. - IBM PC/RT and RS/6000 running AIX 3.x - IBM PS/2 and AT compatibles running OS/2 - 2.0 and up with GCC emx - IBM PS/2 and AT compatibles running OS/2 1.1 - 2.0 (and probably - Warp) with Microsoft 6.0, and OS/2 2.0 and up with IBM CSet++ 2.0. - Intel 80386 or greater (or clone) running 386BSD - Intel x86 running a version of Windows 7 or 8 or prior to XP. - Mips M2000 running RiscOS 4.1 - NeXT running Mach (using BSD configuration) - Palm Size PC 1.1 devices running Windows CE 2.11 - Pocket PC devices running Windows CE 3.0 and higher - Pyramid 9820x running OSx 4.4c - SGI Iris running IRIX - Stardent Vistra 800 running SysV R4.0 - Stride 460 running UniStride 2.1 - Sun-3s, -4s, and -386is running SunOS 3.x - Sun-3s and -386is running SunOS 4.x - "Sun SPARC"-based machine running SunOS 4.x, Solaris 2.x, or Solaris 7 - Valid Logic Systems SCALD-System - - Previous versions, using a cross-compiler hosted on another platform, - such as win32, could also build the following from source: - Pocket PC devices running Windows CE 3.0 and higher - H/PC Pro devices running Windows CE 2.11 and higher - Palm Size PC 1.1 devices running Windows CE 2.11 - - Unless otherwise mentioned, the compiler used was the OS-vendor's - C compiler. - - - - - - - - - - - - - - -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 -Please include the version information from #version or the command line -option --version in the appropriate field. - -A public repository of the latest NetHack code that we've made -available can be obtained via git here: - https://github.com/NetHack/NetHack - or - https://sourceforge.net/p/nethack/NetHack/ - -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). - 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 - have a save file, but do not actually send it. - 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 - period immediately after a new release, when we get the most bug reports. -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, -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 -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. - -In our own patches, we will assume that your code is synchronized with ours. - - -- Good luck, and happy Hacking -- - -# $NHDT-Date: 1652133501 2022/05/09 21:58:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.97 $ -# Copyright (c) 2012 by Michael Allison -# NetHack may be freely redistributed. See license for details. diff --git a/src/NetHack_3.7/azure-pipelines.yml b/src/NetHack_3.7/azure-pipelines.yml deleted file mode 100644 index ad29099..0000000 --- a/src/NetHack_3.7/azure-pipelines.yml +++ /dev/null @@ -1,254 +0,0 @@ -strategy: - matrix: - linux_latest_gcc9_minimal: - imageName: 'ubuntu-latest' - toolchainName: gcc9 - buildTargetName: minimal - linux_jammy_clang_all: - imageName: 'ubuntu-22.04' - toolchainName: clang - buildTargetName: all - linux_jammy_gcc9_all: - imageName: 'ubuntu-22.04' - toolchainName: gcc9 - buildTargetName: all - linux_jammy_gcc12_all: - imageName: 'ubuntu-22.04' - toolchainName: gcc12 - buildTargetName: all - macOS_latest_clang_all: - imageName: 'macOS-latest' - toolchainName: clang - buildTargetName: all - macOS_Ventura_clang13_all: - imageName: 'macOS-13' - toolchainName: clang - buildTargetName: all - windows-visualstudio: - imageName: 'windows-latest' - toolchainName: vs - buildTargetName: all - windows-mingw: - imageName: 'windows-2019' - toolchainName: mingw - buildTargetName: all - linux_focal_cross_msdos: - imageName: 'ubuntu-20.04' - toolchainName: cross - buildTargetName: msdos - linux_jammy_docs: - imageName: 'ubuntu-22.04' - toolchainName: docs - buildTargetName: all - continueOnError: true - -pool: - vmImage: $(imageName) - -# resources: -# repositories: -# - repository: pdcursesrepo -# type: github -# name: wmcbrine/PDCurses -# ref: refs/heads/master -# endpoint: github.com_barthouse - -variables: - toolchain: $(toolchainName) - buildTarget: $(buildTargetName) - netHackPath: s/NetHack - -steps: -- bash: | - if [ "$(toolchain)" == "gcc7" ] - then - echo "##vso[task.setvariable variable=CC]gcc-7" - echo "##vso[task.setvariable variable=CXX]g++-7" - fi - if [ "$(toolchain)" == "gcc9" ] - then - echo "##vso[task.setvariable variable=CC]gcc-9" - echo "##vso[task.setvariable variable=CXX]g++-9" - fi - if [ "$(toolchain)" == "gcc10" ] - then - echo "##vso[task.setvariable variable=CC]gcc-10" - echo "##vso[task.setvariable variable=CXX]g++-10" - fi - if [ "$(toolchain)" == "gcc11" ] - then - echo "##vso[task.setvariable variable=CC]gcc-11" - echo "##vso[task.setvariable variable=CXX]g++-11" - fi - if [ "$(toolchain)" == "gcc12" ] - then - echo "##vso[task.setvariable variable=CC]gcc-12" - echo "##vso[task.setvariable variable=CXX]g++-12" - fi - if [ "$(toolchain)" == "clang" ] - then - echo "##vso[task.setvariable variable=CC]clang" - echo "##vso[task.setvariable variable=CXX]clang++" - fi - if [ "$(toolchain)" == "cross" ] - then - echo "##vso[task.setvariable variable=CC]gcc-9" - echo "##vso[task.setvariable variable=CXX]g++-9" - fi - displayName: 'Setting variables' - -- bash: | - echo "toolchain: $(toolchain)" - echo "buildTarget: $(buildTarget)" - echo "netHackPath: $NETHACKPATH" - echo "CC: $CC" - echo "CXX: $CXX" - displayName: 'Echoing variables' - -- checkout: git://NetHack/NetHack@NetHack-3.7 - submodules: true - path: $(netHackPath) # $(Agent.BuildDirectory)/$(netHackPath) - -- task: DownloadSecureFile@1 - name: storeKey - inputs: - secureFile: 'NetHackPackage_StoreKey.pfx' - condition: eq( variables.toolchain, 'vs' ) - displayName: 'Store Key Download' - -- task: CopyFiles@2 - inputs: - contents: NetHackPackage_StoreKey.pfx - SourceFolder: $(Agent.TempDirectory) - TargetFolder: $(Agent.BuildDirectory)/$(netHackPath)/sys/windows/vs - condition: eq( variables.toolchain, 'vs' ) - displayName: 'Copying store key' - -- task: MSBuild@1 - inputs: - solution: $(Agent.BuildDirectory)/$(netHackPath)/sys/windows/vs/NetHack.sln - platform: Win32 - configuration: Debug - condition: eq( variables.toolchain, 'vs' ) - displayName: 'Visual Studio Build' - -- bash: | - export ADD_LUA=Y - export WANT_LUAC=N - export LUATOP=../submodules/lua - export LUASRC=../submodules/lua - export ADD_CURSES=Y - export PDCURSES_TOP=../submodules/pdcursesmod - export LUA_VERSION=5.4.6 - # - # 64-bit - #export CURLSRC=https://github.com/brechtsanders/winlibs_mingw/releases/download/11.2.0-9.0.0-ucrt-r5/winlibs-x86_64-posix-seh-gcc-11.2.0-mingw-w64ucrt-9.0.0-r5.zip - #export CURLDST=mingw-x64.zip - #export MINGWBIN=mingw64 - #export MSYSTEM=MINGW64 - # - # 32-bit - export CURLSRC=https://github.com/brechtsanders/winlibs_mingw/releases/download/11.2.0-9.0.0-ucrt-r5/winlibs-i686-posix-dwarf-gcc-11.2.0-mingw-w64ucrt-9.0.0-r5.zip - export CURLDST=mingw-x86.zip - export MINGWBIN=mingw32 - export MSYSTEM=MINGW32 - # all - mkdir -p ../lib - cd ../lib - mkdir -p mingw - curl -L $CURLSRC -o $CURLDST - #tar -C mingw -xvf $CURLDST - #/c/Windows/System32/tar -C mingw -xvf $CURLDST - powershell -command "Expand-Archive -Force $CURLDST mingw" - export PATH=../lib/mingw/$MINGWBIN/bin:$PATH - export - cd ../src - pwd - cp ../sys/windows/Makefile.mingw32* . - mingw32-make -f Makefile.mingw32 CI_COMPILER=1 GIT=1 MSYSTEM=$MSYSTEM LUA_VERSION=$LUA_VERSION clean - mingw32-make -f Makefile.mingw32 CI_COMPILER=1 GIT=1 MSYSTEM=$MSYSTEM LUA_VERSION=$LUA_VERSION depend - mingw32-make -f Makefile.mingw32 CI_COMPILER=1 GIT=1 MSYSTEM=$MSYSTEM LUA_VERSION=$LUA_VERSION - condition: eq( variables.toolchain, 'mingw' ) - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)/src - displayName: 'MinGW Build' - -- bash: | - sudo apt-get -qq -y update - sudo apt-get -qq -y install libncurses5-dev - sudo apt-get -qq -y install libx11-dev libxaw7-dev xfonts-utils qtbase5-dev qtmultimedia5-dev qtbase5-dev-tools - condition: eq( variables['Agent.OS'], 'Linux' ) - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath) - displayName: 'Getting linux build dependencies' - -- bash: | - cd sys/unix - sh setup.sh hints/linux.370 - cd ../.. - make fetch-lua - make WANT_WIN_ALL=1 QT_SELECT=5 MOC=moc all - condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.buildTarget, 'all')) - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath) - displayName: 'Building linux full build' - -- bash: | - cd sys/unix - sh setup.sh hints/linux-minimal - cd ../.. - sed -i '/^#define CLIPPING/d' include/config.h - sed -i '/^#define COMPRESS/d' include/config.h - #sed -i '/^#define DOAGAIN/d' include/config.h - sed -i '/^#define DUMPLOG/d' include/config.h - #sed -i '/^#define GDBPATH/d' include/config.h - #sed -i '/^#define GREPPATH/d' include/config.h - sed -i '/^#define INSURANCE/d' include/config.h - sed -i '/^#define ENHANCED_SYMBOLS/d' include/config.h - sed -i '/^#define LOGFILE/d' include/config.h - sed -i '/^#define NEWS/d' include/config.h - sed -i '/^#define PANICLOG/d' include/config.h - #sed -i '/^#define STATUS_HILITES/d' include/config.h - sed -i '/^#define SYSCF/d' include/config.h - sed -i '/^#define USER_SOUNDS/d' include/config.h - sed -i '/^#define XLOGFILE/d' include/config.h - sed -i '/^#define HANGUPHANDLING/d' include/global.h - sed -i '/^#define MAIL/d' include/unixconf.h - 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 fetch-lua - make WANT_WIN_ALL=1 all - condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.buildTarget, 'minimal')) - displayName: 'Building linux minimal build' - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath) - -- bash: | - cd sys/unix - sh setup.sh hints/macos.370 - cd ../.. - make fetch-lua - make WANT_MACSOUND=1 all - condition: eq( variables['Agent.OS'], 'Darwin' ) - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath) - displayName: 'Building mac full build' - -- bash: | - export GCCVER=gcc1220 - cd sys/unix - sh setup.sh hints/linux.370 - cd ../.. - make fetch-lua - sh sys/msdos/fetch-cross-compiler.sh - retVal=$? - if [ $retVal -eq 0 ]; then - make LUA_VERSION=5.4.6 WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_MSDOS=1 package - fi - condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.toolchain, 'cross')) - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath) - displayName: 'Building MSDOS build' -- bash: | - sudo apt-get install texlive - make Guidebook - make Guidebook.txt - make Guidebook.pdf - condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.toolchain, 'docs')) - workingDirectory: $(Agent.BuildDirectory)/$(netHackPath) - displayName: 'Building NetHack documentation' diff --git a/src/NetHack_3.7/dat/.gitattributes b/src/NetHack_3.7/dat/.gitattributes deleted file mode 100644 index cf71f96..0000000 --- a/src/NetHack_3.7/dat/.gitattributes +++ /dev/null @@ -1,10 +0,0 @@ -*.def NHSUBST -*.des NHSUBST -*.txt NHSUBST -*.lua NHSUBST -data.base NHSUBST -symbols NHSUBST -tribute NHSUBST -GENFILES NHSUBST -* NH_filestag=(file%s_for_all_versions) -..files NH_filegenprog diff --git a/src/NetHack_3.7/dat/.gitignore b/src/NetHack_3.7/dat/.gitignore deleted file mode 100644 index 748a8ff..0000000 --- a/src/NetHack_3.7/dat/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -options -oracles -data -rip.xpm -pet_mark.xbm -pilemark.xbm -quest.dat -rumors -bogusmon -engrave -epitaph -x11tiles -nhtiles.bmp -*.lev -spec_levs -quest_levs -dungeon.pdf -dungeon -nethack.png -nhsplash.xpm -nhdat -dlb.lst -guioptions -porthelp -NetHack.ad -gitinfo.txt - diff --git a/src/NetHack_3.7/dat/Arc-fila.lua b/src/NetHack_3.7/dat/Arc-fila.lua deleted file mode 100644 index 1a869dd..0000000 --- a/src/NetHack_3.7/dat/Arc-fila.lua +++ /dev/null @@ -1,59 +0,0 @@ --- NetHack Archeologist Arc-fila.lua $NHDT-Date: 1652195998 2022/05/10 15:19:58 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Arc-filb.lua b/src/NetHack_3.7/dat/Arc-filb.lua deleted file mode 100644 index a533487..0000000 --- a/src/NetHack_3.7/dat/Arc-filb.lua +++ /dev/null @@ -1,59 +0,0 @@ --- NetHack Archeologist Arc-filb.lua $NHDT-Date: 1652195998 2022/05/10 15:19:58 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Arc-goal.lua b/src/NetHack_3.7/dat/Arc-goal.lua deleted file mode 100644 index 0561d1a..0000000 --- a/src/NetHack_3.7/dat/Arc-goal.lua +++ /dev/null @@ -1,115 +0,0 @@ --- NetHack Archeologist Arc-goal.lua $NHDT-Date: 1652195998 2022/05/10 15:19:58 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", filled=2 }) -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") diff --git a/src/NetHack_3.7/dat/Arc-loca.lua b/src/NetHack_3.7/dat/Arc-loca.lua deleted file mode 100644 index ec08e98..0000000 --- a/src/NetHack_3.7/dat/Arc-loca.lua +++ /dev/null @@ -1,145 +0,0 @@ --- NetHack Archeologist Arc-loca.lua $NHDT-Date: 1652195999 2022/05/10 15:19:59 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", filled=2 }) -des.region({ region={25,09, 28,11}, lit=0, type="temple", filled=2 }) -des.region({ region={25,13, 28,16}, lit=1, type="temple", filled=2 }) -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", 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", irregular=1 }) -des.region({ region={36,12, 42,14}, lit=0, type="ordinary", irregular=1 }) -des.region(selection.area(46,06,51,09), "unlit") -des.region({ region={46,11, 49,11}, lit=0, type="ordinary", 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") diff --git a/src/NetHack_3.7/dat/Arc-strt.lua b/src/NetHack_3.7/dat/Arc-strt.lua deleted file mode 100644 index cad4037..0000000 --- a/src/NetHack_3.7/dat/Arc-strt.lua +++ /dev/null @@ -1,116 +0,0 @@ --- NetHack Archeologist Arc-strt.lua $NHDT-Date: 1652195999 2022/05/10 15:19:59 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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({ id = "Lord Carnarvon", coord = {25, 10}, inventory = function() - des.object({ id = "fedora", spe = 5 }); - des.object({ id = "bullwhip", spe = 4 }); -end }) --- 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) diff --git a/src/NetHack_3.7/dat/Bar-fila.lua b/src/NetHack_3.7/dat/Bar-fila.lua deleted file mode 100644 index 64ea97e..0000000 --- a/src/NetHack_3.7/dat/Bar-fila.lua +++ /dev/null @@ -1,33 +0,0 @@ --- NetHack Barbarian Bar-fila.lua $NHDT-Date: 1652195999 2022/05/10 15:19:59 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Bar-filb.lua b/src/NetHack_3.7/dat/Bar-filb.lua deleted file mode 100644 index 9764c31..0000000 --- a/src/NetHack_3.7/dat/Bar-filb.lua +++ /dev/null @@ -1,44 +0,0 @@ --- NetHack Barbarian Bar-filb.lua $NHDT-Date: 1652196000 2022/05/10 15:20:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Bar-goal.lua b/src/NetHack_3.7/dat/Bar-goal.lua deleted file mode 100644 index 760f36a..0000000 --- a/src/NetHack_3.7/dat/Bar-goal.lua +++ /dev/null @@ -1,95 +0,0 @@ --- NetHack Barbarian Bar-goal.lua $NHDT-Date: 1652196000 2022/05/10 15:20:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() - diff --git a/src/NetHack_3.7/dat/Bar-loca.lua b/src/NetHack_3.7/dat/Bar-loca.lua deleted file mode 100644 index a11a896..0000000 --- a/src/NetHack_3.7/dat/Bar-loca.lua +++ /dev/null @@ -1,107 +0,0 @@ --- NetHack Barbarian Bar-loca.lua $NHDT-Date: 1652196000 2022/05/10 15:20:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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 }) - diff --git a/src/NetHack_3.7/dat/Bar-strt.lua b/src/NetHack_3.7/dat/Bar-strt.lua deleted file mode 100644 index 28cacf0..0000000 --- a/src/NetHack_3.7/dat/Bar-strt.lua +++ /dev/null @@ -1,99 +0,0 @@ --- NetHack Barbarian Bar-strt.lua $NHDT-Date: 1652196001 2022/05/10 15:20:01 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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({ id = "Pelias", coord = {10, 07}, inventory = function() - des.object({ id = "runesword", spe = 5 }); - des.object({ id = "chain mail", spe = 5 }); -end }) --- 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. -local ogrelocs = selection.floodfill(37,7) & selection.area(40,03, 45,20) -for i = 0, 11 do - des.monster({ id = "ogre", coord = ogrelocs:rndcoord(1), peaceful = 0 }) -end diff --git a/src/NetHack_3.7/dat/Cav-fila.lua b/src/NetHack_3.7/dat/Cav-fila.lua deleted file mode 100644 index d1b0b20..0000000 --- a/src/NetHack_3.7/dat/Cav-fila.lua +++ /dev/null @@ -1,35 +0,0 @@ --- NetHack Caveman Cav-fila.lua $NHDT-Date: 1652196001 2022/05/10 15:20:01 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Cav-filb.lua b/src/NetHack_3.7/dat/Cav-filb.lua deleted file mode 100644 index a18fed7..0000000 --- a/src/NetHack_3.7/dat/Cav-filb.lua +++ /dev/null @@ -1,41 +0,0 @@ --- NetHack Caveman Cav-filb.lua $NHDT-Date: 1652196001 2022/05/10 15:20:01 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Cav-goal.lua b/src/NetHack_3.7/dat/Cav-goal.lua deleted file mode 100644 index 871579f..0000000 --- a/src/NetHack_3.7/dat/Cav-goal.lua +++ /dev/null @@ -1,59 +0,0 @@ --- NetHack Caveman Cav-goal.lua $NHDT-Date: 1652196002 2022/05/10 15:20:02 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Cav-loca.lua b/src/NetHack_3.7/dat/Cav-loca.lua deleted file mode 100644 index d779d60..0000000 --- a/src/NetHack_3.7/dat/Cav-loca.lua +++ /dev/null @@ -1,101 +0,0 @@ --- NetHack Caveman Cav-loca.lua $NHDT-Date: 1652196002 2022/05/10 15:20:02 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", 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. --- diff --git a/src/NetHack_3.7/dat/Cav-strt.lua b/src/NetHack_3.7/dat/Cav-strt.lua deleted file mode 100644 index 224ed74..0000000 --- a/src/NetHack_3.7/dat/Cav-strt.lua +++ /dev/null @@ -1,94 +0,0 @@ --- NetHack Caveman Cav-strt.lua $NHDT-Date: 1652196002 2022/05/10 15:20:02 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ --- 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", filled=1, irregular=1 }) --- The occupied rooms. -des.region({ region={02,01, 08,03}, lit=1, type="ordinary", irregular=1 }) -des.region({ region={01,11, 06,14}, lit=1, type="ordinary", irregular=1 }) -des.region({ region={13,08, 18,10}, lit=1, type="ordinary", irregular=1 }) -des.region({ region={05,17, 14,18}, lit=1, type="ordinary", irregular=1 }) -des.region({ region={17,16, 23,18}, lit=1, type="ordinary", irregular=1 }) -des.region({ region={35,16, 44,18}, lit=1, type="ordinary", 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({ id = "Shaman Karnov", coord = {35, 02}, inventory = function() - des.object({ id = "leather armor", spe = 5 }); - des.object({ id = "club", spe = 5 }); -end }) --- 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() diff --git a/src/NetHack_3.7/dat/GENFILES b/src/NetHack_3.7/dat/GENFILES deleted file mode 100644 index 2613ad9..0000000 --- a/src/NetHack_3.7/dat/GENFILES +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/perl -# NetHack 3.7 GENFILES $NHDT-Date: 1596498242 2020/08/03 23:44:02 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ -# Copyright (c) 2018 by Kenneth Lorber -# NetHack may be freely redistributed. See license for details. - -# 2 sections: -# *.lev entries are generated by reading *.des -# hardcoded entries are in __DATA__ - -($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(){ -# m/^(MAZE|LEVEL):\s*"(.*?)"/ && do { -# print "F $2.lev\n"; -# }; -# } -# close IN; -#} -while(){ - print; -} - -__DATA__ -T (tile files optionally generated for X ports at playground creation time) -F pet_mark.xbm -F rip.xpm -F x11tiles -T (files generated for Qt interface on macOS) -F nethack.icns -F Info.plist -T (files generated for windows at compile time) -F porthelp -F dlb.lst -T (files generated for windows tty at compile time) -F ttyoptions -T (files generated for windows gui at compile time) -F guioptions -T (files generated by makedefs at playground creation time) -F data -F options -F oracles -F rumors diff --git a/src/NetHack_3.7/dat/Hea-fila.lua b/src/NetHack_3.7/dat/Hea-fila.lua deleted file mode 100644 index 7fa038d..0000000 --- a/src/NetHack_3.7/dat/Hea-fila.lua +++ /dev/null @@ -1,42 +0,0 @@ --- NetHack Healer Hea-fila.lua $NHDT-Date: 1652196003 2022/05/10 15:20:03 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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() diff --git a/src/NetHack_3.7/dat/Hea-filb.lua b/src/NetHack_3.7/dat/Hea-filb.lua deleted file mode 100644 index 7784023..0000000 --- a/src/NetHack_3.7/dat/Hea-filb.lua +++ /dev/null @@ -1,50 +0,0 @@ --- NetHack Healer Hea-filb.lua $NHDT-Date: 1652196003 2022/05/10 15:20:03 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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() diff --git a/src/NetHack_3.7/dat/Hea-goal.lua b/src/NetHack_3.7/dat/Hea-goal.lua deleted file mode 100644 index 0499a12..0000000 --- a/src/NetHack_3.7/dat/Hea-goal.lua +++ /dev/null @@ -1,90 +0,0 @@ --- NetHack Healer Hea-goal.lua $NHDT-Date: 1652196003 2022/05/10 15:20:03 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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("wand of 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 }) - diff --git a/src/NetHack_3.7/dat/Hea-loca.lua b/src/NetHack_3.7/dat/Hea-loca.lua deleted file mode 100644 index a05020f..0000000 --- a/src/NetHack_3.7/dat/Hea-loca.lua +++ /dev/null @@ -1,97 +0,0 @@ --- NetHack Healer Hea-loca.lua $NHDT-Date: 1652196004 2022/05/10 15:20:04 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", filled=1 }) --- 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 }) diff --git a/src/NetHack_3.7/dat/Hea-strt.lua b/src/NetHack_3.7/dat/Hea-strt.lua deleted file mode 100644 index 9e9e352..0000000 --- a/src/NetHack_3.7/dat/Hea-strt.lua +++ /dev/null @@ -1,109 +0,0 @@ --- NetHack Healer Hea-strt.lua $NHDT-Date: 1652196004 2022/05/10 15:20:04 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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({ id = "Hippocrates", coord = {37, 10}, inventory = function() - des.object({ id = "silver dagger", spe = 5 }); -end }) --- 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 }) diff --git a/src/NetHack_3.7/dat/Kni-fila.lua b/src/NetHack_3.7/dat/Kni-fila.lua deleted file mode 100644 index 362d067..0000000 --- a/src/NetHack_3.7/dat/Kni-fila.lua +++ /dev/null @@ -1,35 +0,0 @@ --- NetHack Knight Kni-fila.lua $NHDT-Date: 1652196004 2022/05/10 15:20:04 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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() diff --git a/src/NetHack_3.7/dat/Kni-filb.lua b/src/NetHack_3.7/dat/Kni-filb.lua deleted file mode 100644 index 14a414f..0000000 --- a/src/NetHack_3.7/dat/Kni-filb.lua +++ /dev/null @@ -1,40 +0,0 @@ --- NetHack Knight Kni-filb.lua $NHDT-Date: 1652196005 2022/05/10 15:20:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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() diff --git a/src/NetHack_3.7/dat/Kni-goal.lua b/src/NetHack_3.7/dat/Kni-goal.lua deleted file mode 100644 index 08a8dff..0000000 --- a/src/NetHack_3.7/dat/Kni-goal.lua +++ /dev/null @@ -1,99 +0,0 @@ --- NetHack Knight Kni-goal.lua $NHDT-Date: 1652196005 2022/05/10 15:20:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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 }) diff --git a/src/NetHack_3.7/dat/Kni-loca.lua b/src/NetHack_3.7/dat/Kni-loca.lua deleted file mode 100644 index 91d557a..0000000 --- a/src/NetHack_3.7/dat/Kni-loca.lua +++ /dev/null @@ -1,137 +0,0 @@ --- NetHack Knight Kni-loca.lua $NHDT-Date: 1652196005 2022/05/10 15:20:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", filled=2 }) --- 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 }) diff --git a/src/NetHack_3.7/dat/Kni-strt.lua b/src/NetHack_3.7/dat/Kni-strt.lua deleted file mode 100644 index 9873fb4..0000000 --- a/src/NetHack_3.7/dat/Kni-strt.lua +++ /dev/null @@ -1,109 +0,0 @@ --- NetHack Knight Kni-strt.lua $NHDT-Date: 1652196006 2022/05/10 15:20:06 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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", filled=2 }) -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({ id = "King Arthur", coord = {09, 07}, inventory = function() - des.object({ id = "long sword", spe = 4, buc = "blessed", name = "Excalibur" }); - des.object({ id = "plate mail", spe = 4 }); -end }) --- 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 }) - --- Some warhorses -for i = 1, 2 + nh.rn2(3) do - des.monster({ id = "warhorse", peaceful = 1, inventory = function() if percent(50) then des.object("saddle"); end end }); -end diff --git a/src/NetHack_3.7/dat/Mon-fila.lua b/src/NetHack_3.7/dat/Mon-fila.lua deleted file mode 100644 index c62801a..0000000 --- a/src/NetHack_3.7/dat/Mon-fila.lua +++ /dev/null @@ -1,61 +0,0 @@ --- NetHack Monk Mon-fila.lua $NHDT-Date: 1652196006 2022/05/10 15:20:06 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Mon-filb.lua b/src/NetHack_3.7/dat/Mon-filb.lua deleted file mode 100644 index 98e98f1..0000000 --- a/src/NetHack_3.7/dat/Mon-filb.lua +++ /dev/null @@ -1,60 +0,0 @@ --- NetHack Monk Mon-filb.lua $NHDT-Date: 1652196006 2022/05/10 15:20:06 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Mon-goal.lua b/src/NetHack_3.7/dat/Mon-goal.lua deleted file mode 100644 index c19bfef..0000000 --- a/src/NetHack_3.7/dat/Mon-goal.lua +++ /dev/null @@ -1,75 +0,0 @@ --- NetHack Monk Mon-goal.lua $NHDT-Date: 1652196007 2022/05/10 15:20:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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") diff --git a/src/NetHack_3.7/dat/Mon-loca.lua b/src/NetHack_3.7/dat/Mon-loca.lua deleted file mode 100644 index 598b364..0000000 --- a/src/NetHack_3.7/dat/Mon-loca.lua +++ /dev/null @@ -1,98 +0,0 @@ --- NetHack Monk Mon-loca.lua $NHDT-Date: 1652196007 2022/05/10 15:20:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() --- since vegetarian monks shouldn't eat giant corpses, give a chance for --- Str boost that isn't throttled by exercise restrictions; --- make a modest effort (Elbereth only) to prevent xorns from eating the tins -local tinplace = selection.negate():filter_mapchar('.') -local tinloc = tinplace:rndcoord(0) -des.object({ id="tin", coord=tinloc, quantity=2, buc="blessed", - montype="spinach" }) -des.engraving({ coord=tinloc, type="burn", text="Elbereth" }) --- 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") diff --git a/src/NetHack_3.7/dat/Mon-strt.lua b/src/NetHack_3.7/dat/Mon-strt.lua deleted file mode 100644 index ffbfec4..0000000 --- a/src/NetHack_3.7/dat/Mon-strt.lua +++ /dev/null @@ -1,106 +0,0 @@ --- NetHack Monk Mon-strt.lua $NHDT-Date: 1652196007 2022/05/10 15:20:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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 }) - -local spacelocs = selection.floodfill(05,04); - --- 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({ id = "Grand Master", coord = {28, 10}, inventory = function() - des.object({ id = "robe", spe = 6 }); -end }) --- 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 -for i = 1, 2 do - des.trap("dart", spacelocs:rndcoord(1)) -end -des.trap() -des.trap() -des.trap() -des.trap() --- Monsters on siege duty. -for i = 1, 8 do - des.monster("earth elemental", spacelocs:rndcoord(1)) -end -for i = 1, 4 do - des.monster("xorn", spacelocs:rndcoord(1)) -end --- next to leader, so possibly tricky to pick up if not ready for quest yet; --- there's no protection against a xorn eating these tins; BUC state is random -des.object({ id="tin", coord = {29, 9}, quantity=2, montype="spinach" }) diff --git a/src/NetHack_3.7/dat/Pri-fila.lua b/src/NetHack_3.7/dat/Pri-fila.lua deleted file mode 100644 index c65683c..0000000 --- a/src/NetHack_3.7/dat/Pri-fila.lua +++ /dev/null @@ -1,55 +0,0 @@ --- NetHack Priest Pri-fila.lua $NHDT-Date: 1652196008 2022/05/10 15:20:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Pri-filb.lua b/src/NetHack_3.7/dat/Pri-filb.lua deleted file mode 100644 index ad0a84e..0000000 --- a/src/NetHack_3.7/dat/Pri-filb.lua +++ /dev/null @@ -1,62 +0,0 @@ --- NetHack Priest Pri-filb.lua $NHDT-Date: 1652196008 2022/05/10 15:20:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Pri-goal.lua b/src/NetHack_3.7/dat/Pri-goal.lua deleted file mode 100644 index 1e29d97..0000000 --- a/src/NetHack_3.7/dat/Pri-goal.lua +++ /dev/null @@ -1,84 +0,0 @@ --- NetHack Priest Pri-goal.lua $NHDT-Date: 1687033651 2023/06/17 20:27:31 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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 [note: eroded=-1 => obj->oerodeproof=1] -des.object({ id = "helm of brilliance", coord = place[placeidx], - buc="blessed", spe=0, eroded=-1, 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") diff --git a/src/NetHack_3.7/dat/Pri-loca.lua b/src/NetHack_3.7/dat/Pri-loca.lua deleted file mode 100644 index 6c89097..0000000 --- a/src/NetHack_3.7/dat/Pri-loca.lua +++ /dev/null @@ -1,73 +0,0 @@ --- NetHack Priest Pri-loca.lua $NHDT-Date: 1652196009 2022/05/10 15:20:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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", "noflip") --- 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", filled=1 }) -des.region({ region={09,00, 30,01}, lit=0, type="morgue", filled=1 }) -des.region({ region={09,12, 30,13}, lit=0, type="morgue", filled=1 }) -des.region({ region={31,00, 39,13}, lit=0, type="morgue", filled=1 }) -des.region({ region={11,03, 29,10}, lit=1, type="temple", filled=1, irregular=1 }) --- The altar inside the temple -des.altar({ x=20,y=07, align="noalign", type="shrine" }) -des.monster({ id = "aligned cleric", 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. diff --git a/src/NetHack_3.7/dat/Pri-strt.lua b/src/NetHack_3.7/dat/Pri-strt.lua deleted file mode 100644 index 29edb6d..0000000 --- a/src/NetHack_3.7/dat/Pri-strt.lua +++ /dev/null @@ -1,102 +0,0 @@ --- NetHack Priest Pri-strt.lua $NHDT-Date: 1652196009 2022/05/10 15:20:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.5 $ --- 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", filled=2 }) - -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}, ".") - -local spacelocs = selection.floodfill(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({ id = "Arch Priest", coord = {28, 10}, inventory = function() - des.object({ id = "robe", spe = 4 }); - des.object({ id = "mace", spe = 4 }); -end }) --- 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 -for i = 1, 2 do - des.trap("dart", spacelocs:rndcoord(1)) -end -des.trap() -des.trap() -des.trap() -des.trap() --- Monsters on siege duty. -for i = 1, 12 do - des.monster("human zombie", spacelocs:rndcoord(1)); -end diff --git a/src/NetHack_3.7/dat/Ran-fila.lua b/src/NetHack_3.7/dat/Ran-fila.lua deleted file mode 100644 index c9c02cf..0000000 --- a/src/NetHack_3.7/dat/Ran-fila.lua +++ /dev/null @@ -1,35 +0,0 @@ --- NetHack Ranger Ran-fila.lua $NHDT-Date: 1652196009 2022/05/10 15:20:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Ran-filb.lua b/src/NetHack_3.7/dat/Ran-filb.lua deleted file mode 100644 index 48275fa..0000000 --- a/src/NetHack_3.7/dat/Ran-filb.lua +++ /dev/null @@ -1,39 +0,0 @@ --- NetHack Ranger Ran-filb.lua $NHDT-Date: 1652196010 2022/05/10 15:20:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Ran-goal.lua b/src/NetHack_3.7/dat/Ran-goal.lua deleted file mode 100644 index a28b0c1..0000000 --- a/src/NetHack_3.7/dat/Ran-goal.lua +++ /dev/null @@ -1,106 +0,0 @@ --- NetHack Ranger Ran-goal.lua $NHDT-Date: 1652196010 2022/05/10 15:20:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Ran-loca.lua b/src/NetHack_3.7/dat/Ran-loca.lua deleted file mode 100644 index 386c3e7..0000000 --- a/src/NetHack_3.7/dat/Ran-loca.lua +++ /dev/null @@ -1,79 +0,0 @@ --- NetHack Ranger Ran-loca.lua $NHDT-Date: 1652196010 2022/05/10 15:20:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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 }) - diff --git a/src/NetHack_3.7/dat/Ran-strt.lua b/src/NetHack_3.7/dat/Ran-strt.lua deleted file mode 100644 index 2540b62..0000000 --- a/src/NetHack_3.7/dat/Ran-strt.lua +++ /dev/null @@ -1,101 +0,0 @@ --- NetHack Ranger Ran-strt.lua $NHDT-Date: 1652196011 2022/05/10 15:20:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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({ id = "Orion", coord = {20, 10}, inventory = function() - des.object({ id = "leather armor", spe = 4 }); - des.object({ id = "yumi", spe = 4 }); - des.object({ id = "arrow", spe = 4, quantity = 50 }); -end }) --- 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 }) diff --git a/src/NetHack_3.7/dat/Rog-fila.lua b/src/NetHack_3.7/dat/Rog-fila.lua deleted file mode 100644 index 6b4a80f..0000000 --- a/src/NetHack_3.7/dat/Rog-fila.lua +++ /dev/null @@ -1,64 +0,0 @@ --- NetHack Rogue Rog-fila.lua $NHDT-Date: 1652196011 2022/05/10 15:20:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Rog-filb.lua b/src/NetHack_3.7/dat/Rog-filb.lua deleted file mode 100644 index 83b5969..0000000 --- a/src/NetHack_3.7/dat/Rog-filb.lua +++ /dev/null @@ -1,64 +0,0 @@ --- NetHack Rogue Rog-filb.lua $NHDT-Date: 1652196011 2022/05/10 15:20:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Rog-goal.lua b/src/NetHack_3.7/dat/Rog-goal.lua deleted file mode 100644 index 4eb58f3..0000000 --- a/src/NetHack_3.7/dat/Rog-goal.lua +++ /dev/null @@ -1,110 +0,0 @@ --- NetHack Rogue Rog-goal.lua $NHDT-Date: 1652196012 2022/05/10 15:20:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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 }) diff --git a/src/NetHack_3.7/dat/Rog-loca.lua b/src/NetHack_3.7/dat/Rog-loca.lua deleted file mode 100644 index 3a88e11..0000000 --- a/src/NetHack_3.7/dat/Rog-loca.lua +++ /dev/null @@ -1,99 +0,0 @@ --- NetHack Rogue Rog-loca.lua $NHDT-Date: 1652196012 2022/05/10 15:20:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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 = "scroll of 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 }) diff --git a/src/NetHack_3.7/dat/Rog-strt.lua b/src/NetHack_3.7/dat/Rog-strt.lua deleted file mode 100644 index c7c1117..0000000 --- a/src/NetHack_3.7/dat/Rog-strt.lua +++ /dev/null @@ -1,166 +0,0 @@ --- NetHack Rogue Rog-strt.lua $NHDT-Date: 1652196012 2022/05/10 15:20:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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(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({ id = "Master of Thieves", coord = {36, 11}, inventory = function() - des.object({ id = "leather armor", spe = 5 }); - des.object({ id = "silver dagger", spe = 4 }); - des.object({ id = "dagger", spe = 2, quantity = d(2,4), buc = "not-cursed" }); -end }) --- 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 diff --git a/src/NetHack_3.7/dat/Sam-fila.lua b/src/NetHack_3.7/dat/Sam-fila.lua deleted file mode 100644 index 53d23d5..0000000 --- a/src/NetHack_3.7/dat/Sam-fila.lua +++ /dev/null @@ -1,37 +0,0 @@ --- NetHack Samurai Sam-fila.lua $NHDT-Date: 1652196013 2022/05/10 15:20:13 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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() diff --git a/src/NetHack_3.7/dat/Sam-filb.lua b/src/NetHack_3.7/dat/Sam-filb.lua deleted file mode 100644 index 69e6103..0000000 --- a/src/NetHack_3.7/dat/Sam-filb.lua +++ /dev/null @@ -1,60 +0,0 @@ --- NetHack Samurai Sam-filb.lua $NHDT-Date: 1652196013 2022/05/10 15:20:13 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Sam-goal.lua b/src/NetHack_3.7/dat/Sam-goal.lua deleted file mode 100644 index eb3f956..0000000 --- a/src/NetHack_3.7/dat/Sam-goal.lua +++ /dev/null @@ -1,111 +0,0 @@ --- NetHack Samurai Sam-goal.lua $NHDT-Date: 1652196013 2022/05/10 15:20:13 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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") diff --git a/src/NetHack_3.7/dat/Sam-loca.lua b/src/NetHack_3.7/dat/Sam-loca.lua deleted file mode 100644 index 95bf247..0000000 --- a/src/NetHack_3.7/dat/Sam-loca.lua +++ /dev/null @@ -1,141 +0,0 @@ --- NetHack Samurai Sam-loca.lua $NHDT-Date: 1652196014 2022/05/10 15:20:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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 }) diff --git a/src/NetHack_3.7/dat/Sam-strt.lua b/src/NetHack_3.7/dat/Sam-strt.lua deleted file mode 100644 index e6cac09..0000000 --- a/src/NetHack_3.7/dat/Sam-strt.lua +++ /dev/null @@ -1,98 +0,0 @@ --- NetHack Samurai Sam-strt.lua $NHDT-Date: 1695932714 2023/09/28 20:25:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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. --- --- The throne room designation produces random atmospheric --- messages (until the room is entered) but this one doesn't --- actually contain any throne. --- -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", filled=2 }) --- 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({ id = "Lord Sato", coord = {20, 04}, inventory = function() - des.object({ id = "splint mail", spe = 5, eroded=-1, buc="not-cursed" }); - des.object({ id = "katana", spe = 4, eroded=-1, buc="not-cursed" }); -end }) --- 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") diff --git a/src/NetHack_3.7/dat/Tou-fila.lua b/src/NetHack_3.7/dat/Tou-fila.lua deleted file mode 100644 index 6465b5d..0000000 --- a/src/NetHack_3.7/dat/Tou-fila.lua +++ /dev/null @@ -1,35 +0,0 @@ --- NetHack Tourist Tou-fila.lua $NHDT-Date: 1652196014 2022/05/10 15:20:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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 }) diff --git a/src/NetHack_3.7/dat/Tou-filb.lua b/src/NetHack_3.7/dat/Tou-filb.lua deleted file mode 100644 index 5485501..0000000 --- a/src/NetHack_3.7/dat/Tou-filb.lua +++ /dev/null @@ -1,39 +0,0 @@ --- NetHack Tourist Tou-filb.lua $NHDT-Date: 1652196015 2022/05/10 15:20:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip"); - -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") diff --git a/src/NetHack_3.7/dat/Tou-goal.lua b/src/NetHack_3.7/dat/Tou-goal.lua deleted file mode 100644 index f0f3ca8..0000000 --- a/src/NetHack_3.7/dat/Tou-goal.lua +++ /dev/null @@ -1,159 +0,0 @@ --- NetHack Tourist Tou-goal.lua $NHDT-Date: 1652196015 2022/05/10 15:20:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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", filled = 1 }) -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", filled = 1 }) -des.region(selection.area(21,01,30,02), "unlit") -des.region({ region = {11,17,19,18}, lit = 0, type = "barracks", filled = 1 }) -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", filled = 1 }) -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", filled = 1 }) -des.region({ region = {60,17,71,18}, lit = 1, type = "shop", filled = 1 }) --- 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 - must avoid the 2 shops -local validtraps = selection.area(00,00,75,19):filter_mapchar('.') -validtraps = validtraps - selection.area(60,14,71,18) -for i=1,6 do - des.trap(validtraps:rndcoord(1)) -end --- 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() diff --git a/src/NetHack_3.7/dat/Tou-loca.lua b/src/NetHack_3.7/dat/Tou-loca.lua deleted file mode 100644 index 68885a9..0000000 --- a/src/NetHack_3.7/dat/Tou-loca.lua +++ /dev/null @@ -1,153 +0,0 @@ --- NetHack Tourist Tou-loca.lua $NHDT-Date: 1652196015 2022/05/10 15:20:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", filled=1 }) -des.region({ region={15,03, 20,05}, lit=1, type="shop", filled=1 }) -des.region({ region={62,03, 71,04}, lit=1, type="shop", filled=1 }) -des.region({ region={01,17, 11,18}, lit=1, type="barracks", filled=1 }) -des.region({ region={12,09, 20,10}, lit=1, type="barracks", filled=1 }) -des.region({ region={53,11, 59,14}, lit=1, type="zoo", filled=1 }) -des.region({ region={63,14, 72,16}, lit=1, type="barracks", filled=1 }) -des.region({ region={32,14, 40,16}, lit=1, type="temple", filled=1 }) --- -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 - must avoid the 2 shops -local validtraps = selection.area(00,00,75,19):filter_mapchar('.') -validtraps = validtraps - (selection.area(15,03,20,05) + selection.area(62,03,71,04)) -for i = 1,9 do - des.trap(validtraps:rndcoord(1)) -end --- 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") diff --git a/src/NetHack_3.7/dat/Tou-strt.lua b/src/NetHack_3.7/dat/Tou-strt.lua deleted file mode 100644 index 5c3a0bc..0000000 --- a/src/NetHack_3.7/dat/Tou-strt.lua +++ /dev/null @@ -1,134 +0,0 @@ --- NetHack Tourist Tou-strt.lua $NHDT-Date: 1652196016 2022/05/10 15:20:16 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ --- 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", filled=1 }) -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({ id = "Twoflower", coord = {64, 03}, inventory = function() - des.object({ id = "walking shoes", spe = 3 }); - des.object({ id = "hawaiian shirt", spe = 3 }); -end }) --- 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() diff --git a/src/NetHack_3.7/dat/Val-fila.lua b/src/NetHack_3.7/dat/Val-fila.lua deleted file mode 100644 index 8047f79..0000000 --- a/src/NetHack_3.7/dat/Val-fila.lua +++ /dev/null @@ -1,40 +0,0 @@ --- NetHack Valkyrie Val-fila.lua $NHDT-Date: 1652196016 2022/05/10 15:20:16 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip") - -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() diff --git a/src/NetHack_3.7/dat/Val-filb.lua b/src/NetHack_3.7/dat/Val-filb.lua deleted file mode 100644 index ede6f1e..0000000 --- a/src/NetHack_3.7/dat/Val-filb.lua +++ /dev/null @@ -1,42 +0,0 @@ --- NetHack Valkyrie Val-filb.lua $NHDT-Date: 1652196016 2022/05/10 15:20:16 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip") - -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() diff --git a/src/NetHack_3.7/dat/Val-goal.lua b/src/NetHack_3.7/dat/Val-goal.lua deleted file mode 100644 index 43179a3..0000000 --- a/src/NetHack_3.7/dat/Val-goal.lua +++ /dev/null @@ -1,104 +0,0 @@ --- NetHack Valkyrie Val-goal.lua $NHDT-Date: 1652196017 2022/05/10 15:20:17 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.5 $ --- 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. --- if the stairs are surrounded by lava, maybe give some room -des.replace_terrain({ region = {44,09, 46,11}, fromterrain='L', toterrain='.', chance=50 }); -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 percent(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. --- diff --git a/src/NetHack_3.7/dat/Val-loca.lua b/src/NetHack_3.7/dat/Val-loca.lua deleted file mode 100644 index a287583..0000000 --- a/src/NetHack_3.7/dat/Val-loca.lua +++ /dev/null @@ -1,85 +0,0 @@ --- NetHack Valkyrie Val-loca.lua $NHDT-Date: 1652196017 2022/05/10 15:20:17 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", "noflip") - -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 }) - diff --git a/src/NetHack_3.7/dat/Val-strt.lua b/src/NetHack_3.7/dat/Val-strt.lua deleted file mode 100644 index 906500f..0000000 --- a/src/NetHack_3.7/dat/Val-strt.lua +++ /dev/null @@ -1,100 +0,0 @@ --- NetHack Valkyrie Val-strt.lua $NHDT-Date: 1652196017 2022/05/10 15:20:17 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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") --- 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({ id = "Norn", coord = {35, 10}, inventory = function() - des.object({ id = "banded mail", spe = 5 }); - des.object({ id = "long sword", spe = 4 }); -end }) --- 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 }) - diff --git a/src/NetHack_3.7/dat/Wiz-fila.lua b/src/NetHack_3.7/dat/Wiz-fila.lua deleted file mode 100644 index 401067e..0000000 --- a/src/NetHack_3.7/dat/Wiz-fila.lua +++ /dev/null @@ -1,59 +0,0 @@ --- NetHack Wizard Wiz-fila.lua $NHDT-Date: 1652196018 2022/05/10 15:20:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Wiz-filb.lua b/src/NetHack_3.7/dat/Wiz-filb.lua deleted file mode 100644 index 28dc5e3..0000000 --- a/src/NetHack_3.7/dat/Wiz-filb.lua +++ /dev/null @@ -1,58 +0,0 @@ --- NetHack Wizard Wiz-filb.lua $NHDT-Date: 1652196018 2022/05/10 15:20:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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() diff --git a/src/NetHack_3.7/dat/Wiz-goal.lua b/src/NetHack_3.7/dat/Wiz-goal.lua deleted file mode 100644 index 8bf8662..0000000 --- a/src/NetHack_3.7/dat/Wiz-goal.lua +++ /dev/null @@ -1,132 +0,0 @@ --- NetHack Wizard Wiz-goal.lua $NHDT-Date: 1652196018 2022/05/10 15:20:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", filled=2 }) -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 }) diff --git a/src/NetHack_3.7/dat/Wiz-loca.lua b/src/NetHack_3.7/dat/Wiz-loca.lua deleted file mode 100644 index 4522d61..0000000 --- a/src/NetHack_3.7/dat/Wiz-loca.lua +++ /dev/null @@ -1,151 +0,0 @@ --- NetHack Wizard Wiz-loca.lua $NHDT-Date: 1652196019 2022/05/10 15:20:19 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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", irregular=1, - contents = function() - des.door({ state="secret", wall="random" }) - end -}) -des.region({ region={39,06,63,14}, lit=0, type="ordinary", irregular=1, - contents = function() - des.door({ state="secret", wall="random" }) - end -}) - -des.region({ region={41,08,46,12}, lit=1, type="ordinary", 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", 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", 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 }) diff --git a/src/NetHack_3.7/dat/Wiz-strt.lua b/src/NetHack_3.7/dat/Wiz-strt.lua deleted file mode 100644 index 96a04ba..0000000 --- a/src/NetHack_3.7/dat/Wiz-strt.lua +++ /dev/null @@ -1,107 +0,0 @@ --- NetHack Wizard Wiz-strt.lua $NHDT-Date: 1652196019 2022/05/10 15:20:19 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ --- 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", 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({ id = "Neferet the Green", coord = {23, 05}, inventory = function() - des.object({ id = "elven cloak", spe = 5 }); - des.object({ id = "quarterstaff", spe = 5 }); -end }) --- 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 }) diff --git a/src/NetHack_3.7/dat/air.lua b/src/NetHack_3.7/dat/air.lua deleted file mode 100644 index af27b86..0000000 --- a/src/NetHack_3.7/dat/air.lua +++ /dev/null @@ -1,108 +0,0 @@ --- NetHack endgame air.lua $NHDT-Date: 1652196019 2022/05/10 15:20:19 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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", "stormy") --- 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 }) - diff --git a/src/NetHack_3.7/dat/asmodeus.lua b/src/NetHack_3.7/dat/asmodeus.lua deleted file mode 100644 index c860e3c..0000000 --- a/src/NetHack_3.7/dat/asmodeus.lua +++ /dev/null @@ -1,96 +0,0 @@ --- NetHack gehennom asmodeus.lua $NHDT-Date: 1652196020 2022/05/10 15:20:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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") - -local tmpbounds = selection.match("-"); -local bnds = tmpbounds:bounds(); -local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1); - --- First part -local asmo1 = des.map({ halign = "half-left", valign = "center", map = [[ ---------------------- -|.............|.....| -|.............S.....| -|---+------------...| -|.....|.........|-+-- -|..---|.........|.... -|..|..S.........|.... -|..|..|.........|.... -|..|..|.........|-+-- -|..|..-----------...| -|..S..........|.....| ---------------------- -]], contents = function(rm) - -- 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") -end }); - -des.levregion({ region={01,00,6,20}, region_islev=1, exclude={6,1,70,16}, exclude_islev=1, type="stair-up" }); - -des.levregion({ region={01,00,6,20}, region_islev=1, exclude={6,1,70,16}, exclude_islev=1, type="branch" }); -des.teleport_region({ region = {01,00,6,20}, region_islev=1, exclude={6,1,70,16}, exclude_islev=1 }) - --- Second part -local asmo2 = des.map({ halign = "half-right", valign = "center", map = [[ ---------------------------------- -................................| -................................+ -................................| ---------------------------------- -]], contents = function(rm) - 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") -end }); - -local protected = bounds2:negate() | asmo1 | asmo2; -hell_tweaks(protected); diff --git a/src/NetHack_3.7/dat/astral.lua b/src/NetHack_3.7/dat/astral.lua deleted file mode 100644 index f0ba895..0000000 --- a/src/NetHack_3.7/dat/astral.lua +++ /dev/null @@ -1,187 +0,0 @@ --- NetHack endgame astral.lua $NHDT-Date: 1652196020 2022/05/10 15:20:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.7 $ --- 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; - if percent(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 = selection.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 = selection.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 percent(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",irregular=1 }) -des.region({ region={31,01,44,10},lit=1,type="ordinary",irregular=1 }) -des.region({ region={61,05,74,14},lit=1,type="ordinary",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",filled=2 }) -des.region({ region={34,03,40,07},lit=1,type="temple",filled=2 }) -des.region({ region={64,07,70,11},lit=1,type="temple",filled=2 }) - -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 cleric",x=18,y=09,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",x=19,y=08,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",x=19,y=09,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",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 cleric",x=36,y=12,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",x=37,y=12,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",x=38,y=12,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",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 cleric",x=56,y=09,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",x=55,y=08,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",x=55,y=09,align="noalign", peaceful=0 }) -des.monster({ id = "aligned cleric",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 cleric",x=12,y=07,align="chaos", peaceful=0 }) -des.monster({ id = "aligned cleric",x=13,y=07,align="chaos",peaceful=1 }) -des.monster({ id = "aligned cleric",x=14,y=07,align="law", peaceful=0 }) -des.monster({ id = "aligned cleric",x=12,y=11,align="law",peaceful=1 }) -des.monster({ id = "aligned cleric",x=13,y=11,align="neutral", peaceful=0 }) -des.monster({ id = "aligned cleric",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 cleric",x=32,y=09,align="chaos", peaceful=0 }) -des.monster({ id = "aligned cleric",x=33,y=09,align="chaos",peaceful=1 }) -des.monster({ id = "aligned cleric",x=34,y=09,align="law", peaceful=0 }) -des.monster({ id = "aligned cleric",x=40,y=09,align="law",peaceful=1 }) -des.monster({ id = "aligned cleric",x=41,y=09,align="neutral", peaceful=0 }) -des.monster({ id = "aligned cleric",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 cleric",x=60,y=07,align="chaos", peaceful=0 }) -des.monster({ id = "aligned cleric",x=61,y=07,align="chaos",peaceful=1 }) -des.monster({ id = "aligned cleric",x=62,y=07,align="law", peaceful=0 }) -des.monster({ id = "aligned cleric",x=60,y=11,align="law",peaceful=1 }) -des.monster({ id = "aligned cleric",x=61,y=11,align="neutral", peaceful=0 }) -des.monster({ id = "aligned cleric",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 }) diff --git a/src/NetHack_3.7/dat/baalz.lua b/src/NetHack_3.7/dat/baalz.lua deleted file mode 100644 index 233c26c..0000000 --- a/src/NetHack_3.7/dat/baalz.lua +++ /dev/null @@ -1,66 +0,0 @@ --- NetHack gehennom baalz.lua $NHDT-Date: 1652196020 2022/05/10 15:20:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- 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 = " ", lit = 0 }); - --- TODO FIXME: see baalz_fixup - the legs get removed currently. - -des.level_flags("mazelevel", "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) --- 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") - diff --git a/src/NetHack_3.7/dat/bigrm-1.lua b/src/NetHack_3.7/dat/bigrm-1.lua deleted file mode 100644 index a4003aa..0000000 --- a/src/NetHack_3.7/dat/bigrm-1.lua +++ /dev/null @@ -1,73 +0,0 @@ --- NetHack bigroom bigrm-1.lua $NHDT-Date: 1652196021 2022/05/10 15:20:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -des.map([[ ---------------------------------------------------------------------------- -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| ---------------------------------------------------------------------------- -]]); - - -if percent(75) then - local terrains = { "-", "F", "L", "T", "C" }; - local tidx = math.random(1, #terrains); - local choice = math.random(0, 4); - if choice == 0 then - -- one horizontal line - des.terrain(selection.line(10,8, 65,8), terrains[tidx]); - elseif choice == 1 then - -- two vertical lines - local sel = selection.line(15,4, 15, 13) | selection.line(59,4, 59, 13); - des.terrain(sel, terrains[tidx]); - elseif choice == 2 then - -- plus sign - local sel = selection.line(10,8, 64, 8) | selection.line(37,3, 37, 14); - des.terrain(sel, terrains[tidx]); - elseif choice == 3 then - -- brackets: [ ] - des.terrain(selection.rect(4,4, 70,13), terrains[tidx]); - local sel = selection.line(25,4, 50,4) | selection.line(25,13, 50,13); - des.terrain(sel, '.'); - else - -- nothing - 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 diff --git a/src/NetHack_3.7/dat/bigrm-10.lua b/src/NetHack_3.7/dat/bigrm-10.lua deleted file mode 100644 index dc51c1e..0000000 --- a/src/NetHack_3.7/dat/bigrm-10.lua +++ /dev/null @@ -1,61 +0,0 @@ --- NetHack bigroom bigrm-10.lua $NHDT-Date: 1652196024 2022/05/10 15:20:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -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 percent(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"); diff --git a/src/NetHack_3.7/dat/bigrm-11.lua b/src/NetHack_3.7/dat/bigrm-11.lua deleted file mode 100644 index db9bcdc..0000000 --- a/src/NetHack_3.7/dat/bigrm-11.lua +++ /dev/null @@ -1,39 +0,0 @@ --- NetHack bigroom bigrm-11.lua $NHDT-Date: 1652196024 2022/05/10 15:20:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.0 $ --- Copyright (c) 2021 by Pasi Kallinen --- NetHack may be freely redistributed. See license for details. --- --- Boulder "maze" with wide corridors - -function t_or_f() return percent(50) and true or false; end - -des.level_flags("mazelevel", "noflip"); -des.level_init({ style = "maze", corrwid = 3 + nh.rn2(3), wallthick = 1, deadends=t_or_f() }); - -des.region(selection.area(00,00,75,18), "lit"); -des.non_diggable(); - -function replace_wall_boulder(x,y) - des.terrain(x, y, "."); - des.object("boulder", x, y); -end - --- replace horizontal and vertical walls -local sel = selection.match([[.w.]]) | selection.match(".\nw\n."); -sel:iterate(replace_wall_boulder); --- replace the leftover corner walls -local sel = selection.match([[.w.]]); -sel:iterate(replace_wall_boulder); - -des.stair("up"); -des.stair("down"); - -for i = 1,15 do - des.object(); -end -for i = 1,6 do - des.trap("rolling boulder"); -end -for i = 1,28 do - des.monster(); -end - diff --git a/src/NetHack_3.7/dat/bigrm-2.lua b/src/NetHack_3.7/dat/bigrm-2.lua deleted file mode 100644 index 53c3e10..0000000 --- a/src/NetHack_3.7/dat/bigrm-2.lua +++ /dev/null @@ -1,71 +0,0 @@ --- NetHack bigroom bigrm-2.lua $NHDT-Date: 1652196021 2022/05/10 15:20:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -des.map([[ ---------------------------------------------------------------------------- -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| ---------------------------------------------------------------------------- -]]); --- Dungeon Description -des.region(selection.area(01,01,73,16),"lit"); - -local darkness; - -local choice = math.random(0, 3) -if choice == 0 then - darkness = selection.area(01,07,22,09) - | selection.area(24,01,50,05) - | selection.area(24,11,50,16) - | selection.area(52,07,73,09); -elseif choice == 1 then - darkness = selection.area(24,01,50,16); -elseif choice == 2 then - darkness = selection.area(01,01,22,16) - | selection.area(52,01,73,16); -end - -if darkness ~= nil then - des.region(darkness,"unlit"); - if percent(25) then - des.replace_terrain({ selection = darkness:grow(), - fromterrain = ".", toterrain = "I" }); - end -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 diff --git a/src/NetHack_3.7/dat/bigrm-3.lua b/src/NetHack_3.7/dat/bigrm-3.lua deleted file mode 100644 index ee7e0f3..0000000 --- a/src/NetHack_3.7/dat/bigrm-3.lua +++ /dev/null @@ -1,83 +0,0 @@ --- NetHack bigroom bigrm-3.lua $NHDT-Date: 1652196021 2022/05/10 15:20:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -des.map([[ ---------------------------------------------------------------------------- -|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|..............---.......................................---..............| -|...............|.........................................|...............| -|.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....| -|.....|-------- --------|...................|---------- --------|.....| -|.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....| -|...............|.........................................|...............| -|..............---.......................................---..............| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.........................................................................| -|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.| ---------------------------------------------------------------------------- -]]); - --- Dungeon Description -des.region(selection.area(01,01,73,16), "lit"); - --- replace some walls -if percent(66) then - local sel = selection.match("[.w.]"); - local terrains = { "F", "T", "W", "Z" }; - local choice = terrains[math.random(1, #terrains)]; - des.terrain(sel, choice); -end - --- 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 }); diff --git a/src/NetHack_3.7/dat/bigrm-4.lua b/src/NetHack_3.7/dat/bigrm-4.lua deleted file mode 100644 index 777eeb3..0000000 --- a/src/NetHack_3.7/dat/bigrm-4.lua +++ /dev/null @@ -1,59 +0,0 @@ --- NetHack bigroom bigrm-4.lua $NHDT-Date: 1652196022 2022/05/10 15:20:22 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -des.map([[ ------------ ----------- -|.........| |.........| -|.........|-----------| |-----------|.........| -|-|...................|----------| |----------|...................|-| - -|.............................|-------|.............................|- - -|.................................................................|- - -|...............................................................|- - -|......LLLLL.......................................LLLLL......|- - -|.....LLLLL.......................................LLLLL.....|- - -|.....LLLLL.......................................LLLLL.....|- - -|......LLLLL.......................................LLLLL......|- - -|...............................................................|- - -|.................................................................|- - -|.............................|-------|.............................|- -|-|...................|----------| |----------|...................|-| -|.........|-----------| |-----------|.........| -|.........| |.........| ------------ ----------- -]]); - -local terrains = { ".", ".", ".", ".", "P", "L", "-", "T", "W", "Z" }; -local tidx = math.random(1, #terrains); -local toterr = terrains[tidx]; -if (toterr ~= "L") then - des.replace_terrain({ fromterrain = "L", toterrain = toterr }); -end - -des.feature("fountain", 05,02); -des.feature("fountain", 05,15); -des.feature("fountain", 69,02); -des.feature("fountain", 69,15); - -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 diff --git a/src/NetHack_3.7/dat/bigrm-5.lua b/src/NetHack_3.7/dat/bigrm-5.lua deleted file mode 100644 index 3e40812..0000000 --- a/src/NetHack_3.7/dat/bigrm-5.lua +++ /dev/null @@ -1,54 +0,0 @@ --- NetHack bigroom bigrm-5.lua $NHDT-Date: 1652196022 2022/05/10 15:20:22 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -des.map([[ - ------------------ - ---------................--------- - -------................................------- - ------............................................------ - ----......................................................---- - ---............................................................--- - ---................................................................--- ----....................................................................--- -|........................................................................| -|........................................................................| -|........................................................................| ----....................................................................--- - ---................................................................--- - ---............................................................--- - ----......................................................---- - ------............................................------ - -------................................------- - ---------................--------- - ------------------ -]]); - - -if percent(25) then - local sel = selection.match("."):percentage(2):grow(); - des.replace_terrain({ selection=sel, fromterrain=".", toterrain=percent(50) and "I" or "C" }); -end - -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 diff --git a/src/NetHack_3.7/dat/bigrm-6.lua b/src/NetHack_3.7/dat/bigrm-6.lua deleted file mode 100644 index f67cc16..0000000 --- a/src/NetHack_3.7/dat/bigrm-6.lua +++ /dev/null @@ -1,48 +0,0 @@ --- NetHack bigroom bigrm-6.lua $NHDT-Date: 1652196022 2022/05/10 15:20:22 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -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 diff --git a/src/NetHack_3.7/dat/bigrm-7.lua b/src/NetHack_3.7/dat/bigrm-7.lua deleted file mode 100644 index 6dc828c..0000000 --- a/src/NetHack_3.7/dat/bigrm-7.lua +++ /dev/null @@ -1,52 +0,0 @@ --- NetHack bigroom bigrm-7.lua $NHDT-Date: 1652196023 2022/05/10 15:20:23 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.0 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -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 diff --git a/src/NetHack_3.7/dat/bigrm-8.lua b/src/NetHack_3.7/dat/bigrm-8.lua deleted file mode 100644 index f851411..0000000 --- a/src/NetHack_3.7/dat/bigrm-8.lua +++ /dev/null @@ -1,53 +0,0 @@ --- NetHack bigroom bigrm-8.lua $NHDT-Date: 1652196023 2022/05/10 15:20:23 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -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 percent(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 diff --git a/src/NetHack_3.7/dat/bigrm-9.lua b/src/NetHack_3.7/dat/bigrm-9.lua deleted file mode 100644 index e465436..0000000 --- a/src/NetHack_3.7/dat/bigrm-9.lua +++ /dev/null @@ -1,52 +0,0 @@ --- NetHack bigroom bigrm-9.lua $NHDT-Date: 1652196023 2022/05/10 15:20:23 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1990 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- -des.level_init({ style = "solidfill", fg = " " }); -des.level_flags("mazelevel", "noflip"); - -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 diff --git a/src/NetHack_3.7/dat/bogusmon.txt b/src/NetHack_3.7/dat/bogusmon.txt deleted file mode 100644 index 8b53352..0000000 --- a/src/NetHack_3.7/dat/bogusmon.txt +++ /dev/null @@ -1,548 +0,0 @@ -# NetHack 3.7 bogusmon.txt $NHDT-Date: 1596498237 2020/08/03 23:43:57 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.10 $ -# Copyright (c) 2016 by Pasi Kallinen -# NetHack may be freely redistributed. See license for details. -# -# Hallucinatory monsters -# -# -# prefix codes: -# dash - female, personal name -# underscore _ female, general name -# plus + male, personal name -# vertical bar | male, general name -# equals = gender not specified, personal name - -# misc. -jumbo shrimp -giant pigmy -gnu -killer penguin -giant cockroach -giant slug -maggot -pterodactyl -tyrannosaurus rex -basilisk -beholder -nightmare -efreeti -marid -rot grub -bookworm -master lichen -shadow -hologram -jester -attorney -sleazoid -killer tomato -amazon -robot -battlemech -rhinovirus -harpy -lion-dog -rat-ant -Y2K bug -angry mariachi -arch-pedant -bluebird of happiness -cardboard golem -duct tape golem -diagonally moving grid bug -evil overlord -newsgroup troll -ninja pirate zombie robot -octarine dragon -plaid unicorn -gonzo journalist -lag monster -loan shark -possessed waffle iron -poultrygeist -stuffed raccoon puppet -viking -wee green blobbie -wereplatypus -hag of bolding -blancmange -raging nerd -spelling bee -land octopus -frog prince -pigasus -_Semigorgon -conventioneer -large microbat -small megabat -uberhulk -tofurkey -+Dudley -shrinking violet -shallow one -spherical cow -electric giraffe -steam dragon -omnibus -slinky -maxotaur -millitaur -octahedron -dungeon core -quale -holloway -chiasmus -giant tetrapod -voussoir -barking spider -frog cloud -toothsayer - -# Quendor (Zork, &c.) -grue -Christmas-tree monster -luck sucker -paskald -brogmoid -dornbeast - -# Moria -Ancient Multi-Hued Dragon -+Evil Iggy - -# Rogue V5 http://rogue.rogueforge.net/vade-mecum/ -rattlesnake -ice monster -phantom -quagga -aquator -griffin -emu -kestrel -xeroc -venus flytrap - -# Wizardry -creeping coins - -# Greek legend -hydra -siren - -# Monty Python -killer bunny - -# The Princess Bride -rodent of unusual size - -# Wallace & Gromit -were-rabbit - -# "Only you can prevent forest fires! -+Smokey Bear - -# Discworld -Luggage -vampiric watermelon - -# Lord of the Rings -Ent - -# Xanth -tangle tree -nickelpede -wiggle - -# Lewis Carroll -white rabbit -snark - -# Dr. Dolittle -pushmi-pullyu - -# The Smurfs -smurf - -# Star Trek -tribble -Klingon -Borg - -# Star Wars -Ewok - -# Tonari no Totoro -Totoro - -# Nausicaa -ohmu - -# Sailor Moon -youma - -# Pokemon (Meowth) -nyaasu - -# monster movies --Godzilla -+King Kong - -# old L of SH -earthquake beast - -# Robotech -Invid - -# The Terminator -Terminator - -# Bubblegum Crisis -boomer - -# Dr. Who ("Exterminate!") -Dalek - -# HGttG -microscopic space fleet -Ravenous Bugblatter Beast of Traal - -# The Tough Guide to Fantasyland -leathery-winged avian - -# TMNT -teenage mutant ninja turtle - -# Usagi Yojimbo -samurai rabbit - -# Cerebus -aardvark - -# Little Shop of Horrors -=Audrey II - -# 50's rock 'n' roll -witch doctor -one-eyed one-horned flying purple people eater - -# saccharine kiddy TV -+Barney the dinosaur - -# Angband -+Morgoth - -# Babylon 5 -Vorlon - -# King Arthur -questing beast - -# Movie -Predator - -# Harry Potter -dementor - -# common pest -mother-in-law - -# Actual creatures -praying mantis -beluga whale -chicken -coelacanth -star-nosed mole -lungfish -slow loris -sea cucumber -tapeworm -liger -velociraptor -corpulent porpoise -quokka -potoo -lemming -dhole - -# european cryptids -wolpertinger -elwedritsche -skvader -+Nessie -tatzelwurm -dahu - -# fictitious beasts -dropbear -wild haggis -jackalope -flying monkey -flying pig -hippocampus -hippogriff -kelpie -catoblepas -phoenix -amphisbaena - -# Unusually animate body parts -bouncing eye -floating nose -wandering eye - -# Computerese -buffer overflow -dangling pointer -walking disk drive -floating point -regex engine -netsplit -wiki -peer -COBOL -wire shark - -# bugs -bohrbug -mandelbug -schroedinbug -heisenbug - -# DooM -cacodemon -scrag - -# MST3K -+Crow T. Robot - -# Items and stuff -chess pawn -chocolate pudding -ooblecks -terracotta warrior -hearse -roomba -miniature blimp -dust speck - -# DnD monster -gazebo - -# SciFi elements -gray goo -magnetic monopole -first category perpetual motion device -big dumb object - -# Ultima -+Lord British - -# They Might Be Giants -particle man - -# Robot Finds Kitten -kitten prospecting robot - -# Typography -guillemet -solidus -obelus -dingbat -bold face -boustrophedon -ligature -rebus -dinkus - -# Their actual character -apostrophe golem -voluptuous ampersand - -# Web comics and animation -+Bob the angry flower -+Strong Bad -+Magical Trevor - -# Girl Genius -smakken -mimmoth - -# KoL -one-winged dewinged stab-bat - -# deities -Invisible Pink Unicorn -Flying Spaghetti Monster - -# Monkey Island -three-headed monkey -+El Pollo Diablo - -# modern folklore -little green man - -# Portal -weighted Companion Cube - -# /b/ -/b/tard - -# South Park -manbearpig - -# internet memes -bonsai-kitten -tie-thulu -+Domo-kun -looooooooooooong cat -nyan cat - -# the Internet is made for cat pix -ceiling cat -basement cat -monorail cat - -# POWDER -tridude - -# Radomir Dopieralski -orcus cosmicus - -# Angband -yeek -quylthulg -Greater Hell Beast - -# Souljazz -+Vendor of Yizard - -# Dungeon Crawl Stone Soup -+Sigmund -lernaean hydra --Ijyb -=Gloorx Vloq -+Blork the orc - -# Wil Wheaton, John Scalzi -unicorn pegasus kitten - -# Minecraft -enderman - -# Pun -wight supremacist - -# Starcraft 2 -zergling - -# Feelings -existential angst -figment of your imagination -flash of insight - -# Fish -ghoti - -# Roald Dahl -vermicious knid - -# Carcassonne -meeple - -# The Wombles -womble - -# Fraggle Rock -fraggle - -# Harry Harrison -stainless steel rat - -# The Culture -antagonistic undecagonstring - -# Spoonerism -mock role - -# Truly scary things -clown -mime -peddler -haggler - -# soundex and typos of monsters -gloating eye -flush golem -martyr orc -mortar orc -acid blog -acute blob -aria elemental -aliasing priest -aligned parasite -aligned parquet -aligned proctor -baby balky dragon -baby blues dragon -baby caricature -baby crochet -baby grainy dragon -baby bong worm -baby long word -baby parable worm -barfed devil -beer wight -boor wight -brawny mold -rave spider -clue golem -bust vortex -errata elemental -elastic eel -electrocardiogram eel -fir elemental -tire elemental -flamingo sphere -fallacy golem -frizzed centaur -forest centerfold -fierceness sphere -frosted giant -geriatric snake -gnat ant -giant bath -grant beetle -greater snake -grind bug -giant mango -glossy golem -gnome laureate -gnome dummy -gooier ooze -green slide -guardian nacho -hell hound pun -high purist -hairnet devil -ice trowel -killer beet -feather golem -lounge worm -mountain lymph -pager golem -pie fiend -prophylactic worm -sock mole -rogue piercer -seesawing sphere -simile mimic -moldier ant -stain vortex -scone giant -umbrella hulk -vampire mace -verbal jabberwock -water lemon -water melon -winged grizzly -yellow wight diff --git a/src/NetHack_3.7/dat/castle.lua b/src/NetHack_3.7/dat/castle.lua deleted file mode 100644 index 83eaeca..0000000 --- a/src/NetHack_3.7/dat/castle.lua +++ /dev/null @@ -1,256 +0,0 @@ --- NetHack castle castle.lua $NHDT-Date: 1652196024 2022/05/10 15:20:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.7 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- NetHack may be freely redistributed. See license for details. --- --- --- This is the stronghold level : --- there are several ways to enter it : --- - opening the drawbridge (wand of opening, knock spell, playing --- the appropriate tune) --- --- - enter via the back entry (this suppose a ring of levitation, boots --- of water walking, etc.) --- --- Note : If you don't play the right tune, you get indications like in the --- MasterMind game... --- --- To motivate the player : there are 4 storerooms (armors, weapons, food and --- gems) and a wand of wishing in one of the 4 towers... - -des.level_init({ style="mazegrid", bg ="-" }); - -des.level_flags("mazelevel", "noteleport", "noflipy") - -des.map([[ -}}}}}}}}}.............................................}}}}}}}}} -}-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------} -}|.....|-----------------------------------------------|.....|} -}|.....+...............................................+.....|} -}-------------------------------+-----------------------------} -}}}}}}|........|..........+...........|.......S.S.......|}}}}}} -.....}|........|..........|...........|.......|.|.......|}..... -.....}|........------------...........---------S---------}..... -.....}|...{....+..........+.........\.S.................+...... -.....}|........------------...........---------S---------}..... -.....}|........|..........|...........|.......|.|.......|}..... -}}}}}}|........|..........+...........|.......S.S.......|}}}}}} -}-------------------------------+-----------------------------} -}|.....+...............................................+.....|} -}|.....|-----------------------------------------------|.....|} -}-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------} -}}}}}}}}}.............................................}}}}}}}}} -]]); - --- Random registers initialisation -local object = { "[", ")", "*", "%" }; -shuffle(object) - -local place = selection.new(); -place:set(04,02); -place:set(58,02); -place:set(04,14); -place:set(58,14); - -local monster = { "L", "N", "E", "H", "M", "O", "R", "T", "X", "Z" } -shuffle(monster) - -des.teleport_region({ region = {01,00,10,20}, region_islev=1, exclude={1,1,61,15}, dir="down" }) -des.teleport_region({ region = {69,00,79,20}, region_islev=1, exclude={1,1,61,15}, dir="up" }) -des.levregion({ region = {01,00,10,20}, region_islev=1, exclude={0,0,62,16}, type="stair-up" }) -des.feature("fountain", 10,08) --- Doors -des.door("closed",07,03) -des.door("closed",55,03) -des.door("locked",32,04) -des.door("locked",26,05) -des.door("locked",46,05) -des.door("locked",48,05) -des.door("locked",47,07) -des.door("closed",15,08) -des.door("closed",26,08) -des.door("locked",38,08) -des.door("locked",56,08) -des.door("locked",47,09) -des.door("locked",26,11) -des.door("locked",46,11) -des.door("locked",48,11) -des.door("locked",32,12) -des.door("closed",07,13) -des.door("closed",55,13) --- The drawbridge -des.drawbridge({ dir="east", state="closed", x=05,y=08}) --- Storeroom number 1 -des.object(object[1],39,05) -des.object(object[1],40,05) -des.object(object[1],41,05) -des.object(object[1],42,05) -des.object(object[1],43,05) -des.object(object[1],44,05) -des.object(object[1],45,05) -des.object(object[1],39,06) -des.object(object[1],40,06) -des.object(object[1],41,06) -des.object(object[1],42,06) -des.object(object[1],43,06) -des.object(object[1],44,06) -des.object(object[1],45,06) --- Storeroom number 2 -des.object(object[2],49,05) -des.object(object[2],50,05) -des.object(object[2],51,05) -des.object(object[2],52,05) -des.object(object[2],53,05) -des.object(object[2],54,05) -des.object(object[2],55,05) -des.object(object[2],49,06) -des.object(object[2],50,06) -des.object(object[2],51,06) -des.object(object[2],52,06) -des.object(object[2],53,06) -des.object(object[2],54,06) -des.object(object[2],55,06) --- Storeroom number 3 -des.object(object[3],39,10) -des.object(object[3],40,10) -des.object(object[3],41,10) -des.object(object[3],42,10) -des.object(object[3],43,10) -des.object(object[3],44,10) -des.object(object[3],45,10) -des.object(object[3],39,11) -des.object(object[3],40,11) -des.object(object[3],41,11) -des.object(object[3],42,11) -des.object(object[3],43,11) -des.object(object[3],44,11) -des.object(object[3],45,11) --- Storeroom number 4 -des.object(object[4],49,10) -des.object(object[4],50,10) -des.object(object[4],51,10) -des.object(object[4],52,10) -des.object(object[4],53,10) -des.object(object[4],54,10) -des.object(object[4],55,10) -des.object(object[4],49,11) -des.object(object[4],50,11) -des.object(object[4],51,11) -des.object(object[4],52,11) -des.object(object[4],53,11) -des.object(object[4],54,11) -des.object(object[4],55,11) --- THE WAND OF WISHING in 1 of the 4 towers -local loc = place:rndcoord(1); -des.object({ id = "chest", trapped = 0, locked = 1, coord = loc , - contents = function() - des.object("wishing"); - end -}); --- Prevent monsters from eating it. (@'s never eat objects) -des.engraving({ coord = loc, type="burn", text="Elbereth" }) -des.object({ id = "scroll of scare monster", coord = loc, buc="cursed" }) --- The treasure of the lord -des.object("chest",37,08) --- Traps -des.trap("trap door",40,08) -des.trap("trap door",44,08) -des.trap("trap door",48,08) -des.trap("trap door",52,08) -des.trap("trap door",55,08) --- Soldiers guarding the entry hall -des.monster("soldier",08,06) -des.monster("soldier",09,05) -des.monster("soldier",11,05) -des.monster("soldier",12,06) -des.monster("soldier",08,10) -des.monster("soldier",09,11) -des.monster("soldier",11,11) -des.monster("soldier",12,10) -des.monster("lieutenant",09,08) --- Soldiers guarding the towers -des.monster("soldier",03,02) -des.monster("soldier",05,02) -des.monster("soldier",57,02) -des.monster("soldier",59,02) -des.monster("soldier",03,14) -des.monster("soldier",05,14) -des.monster("soldier",57,14) -des.monster("soldier",59,14) --- The four dragons that are guarding the storerooms -des.monster("D",47,05) -des.monster("D",47,06) -des.monster("D",47,10) -des.monster("D",47,11) --- Sea monsters in the moat -des.monster("giant eel",05,07) -des.monster("giant eel",05,09) -des.monster("giant eel",57,07) -des.monster("giant eel",57,09) -des.monster("shark",05,00) -des.monster("shark",05,16) -des.monster("shark",57,00) -des.monster("shark",57,16) --- The throne room and the court monsters -des.monster(monster[10],27,05) -des.monster(monster[1],30,05) -des.monster(monster[2],33,05) -des.monster(monster[3],36,05) -des.monster(monster[4],28,06) -des.monster(monster[5],31,06) -des.monster(monster[6],34,06) -des.monster(monster[7],37,06) -des.monster(monster[8],27,07) -des.monster(monster[9],30,07) -des.monster(monster[10],33,07) -des.monster(monster[1],36,07) -des.monster(monster[2],28,08) -des.monster(monster[3],31,08) -des.monster(monster[4],34,08) -des.monster(monster[5],27,09) -des.monster(monster[6],30,09) -des.monster(monster[7],33,09) -des.monster(monster[8],36,09) -des.monster(monster[9],28,10) -des.monster(monster[10],31,10) -des.monster(monster[1],34,10) -des.monster(monster[2],37,10) -des.monster(monster[3],27,11) -des.monster(monster[4],30,11) -des.monster(monster[5],33,11) -des.monster(monster[6],36,11) --- MazeWalks -des.mazewalk(00,10,"west") -des.mazewalk(62,06,"east") --- Non diggable walls -des.non_diggable(selection.area(00,00,62,16)) --- Subrooms: --- Entire castle area -des.region(selection.area(00,00,62,16),"unlit") --- Courtyards -des.region(selection.area(00,05,05,11),"lit") -des.region(selection.area(57,05,62,11),"lit") --- Throne room -des.region({ region={27,05, 37,11},lit=1,type="throne", filled=2 }) --- Antechamber -des.region(selection.area(07,05,14,11),"lit") --- Storerooms -des.region(selection.area(39,05,45,06),"lit") -des.region(selection.area(39,10,45,11),"lit") -des.region(selection.area(49,05,55,06),"lit") -des.region(selection.area(49,10,55,11),"lit") --- Corners -des.region(selection.area(02,02,06,03),"lit") -des.region(selection.area(56,02,60,03),"lit") -des.region(selection.area(02,13,06,14),"lit") -des.region(selection.area(56,13,60,14),"lit") --- Barracks -des.region({ region={16,05, 25,06},lit=1,type="barracks", filled=1 }) -des.region({ region={16,10, 25,11},lit=1,type="barracks", filled=1 }) --- Hallways -des.region(selection.area(08,03,54,03),"unlit") -des.region(selection.area(08,13,54,13),"unlit") -des.region(selection.area(16,08,25,08),"unlit") -des.region(selection.area(39,08,55,08),"unlit") --- Storeroom alcoves -des.region(selection.area(47,05,47,06),"unlit") -des.region(selection.area(47,10,47,11),"unlit") diff --git a/src/NetHack_3.7/dat/cmdhelp b/src/NetHack_3.7/dat/cmdhelp deleted file mode 100644 index 134866d..0000000 --- a/src/NetHack_3.7/dat/cmdhelp +++ /dev/null @@ -1,226 +0,0 @@ -&# cmdhelp - became obsolete when 'BINDINGS=key:command' got added -& Tell what command a keystroke invokes -^ Show the type of an adjacent trap -^[ Cancel command (same as ESCape key) -&? debug -^E Search for nearby traps, secret doors, and unseen monsters -^F Map level; reveals traps and secret corridors but not secret doors -^G Create a monster by name or class -^I View inventory with all items identified -^O List special level locations -^V Teleport between levels -^W Wish for something -&: #!debug -^E unavailable debugging command -^F unavailable debugging command -^G unavailable debugging command -^I unavailable debugging command -^O Shortcut for '#overview': list interesting levels you have visited -^V unavailable debugging command -^W unavailable debugging command -&. #?debug -&? number_pad=0,-1 -b Go southwest 1 space -B Go southwest until you are on top of something -h Go west 1 space -H Go west until you are on top of something -j Go south 1 space -J Go south until you are on top of something -k Go north 1 space -K Go north until you are on top of something -l Go east 1 space -L Go east until you are on top of something -n Go southeast 1 space -N Go southeast until you are on something -u Go northeast 1 space -U Go northeast until you are on top of something -&# y,Y handled below -&: #number_pad=1,2,3,4 -h Help: synonym for '?' -j Jump: shortcut for '#jump' -k Kick: synonym for '^D' -l Loot: shortcut for '#loot' -n Start a count; continue with digit(s) -N Name: shortcut for '#name' -u Untrap: shortcut for '#untrap' -&. #0,-1 vs 1,2,3,4 -a Apply (use) a tool or break a wand -A Remove all armor and/or all accessories and/or unwield weapons -^A Redo the previous command -^B Go southwest until you are near something -c Close a door -C Call (name) a monster, an individual object, or a type of object -^C Interrupt: quit the game -d Drop an item -D Drop specific item types -^D Kick something (usually a door, chest, or box) -e Eat something -E Engrave writing on the floor -f Fire ammunition from quiver -F Followed by direction, fight a monster (even if you don't sense it) -g Followed by direction, move until you are near something -G Followed by direction, same as control-direction -^H Go west until you are near something -i Show your inventory -I Inventory specific item types -^J Go south until you are near something -^K Go north until you are near something -^L Go east until you are near something -m Followed by direction, move without picking anything up or fighting -M Followed by direction, move a distance without picking anything up -^N Go southeast until you are near something -o Open a door -O Show option settings, possibly change them -p Pay your shopping bill -P Put on an accessory (ring, amulet, etc; will work for armor too) -^P Toggle through previously displayed game messages -q Quaff (drink) something (potion, water, etc) -Q Select ammunition for quiver (use '#quit' to quit) -r Read a scroll or spellbook -R Remove an accessory (ring, amulet, etc; will work for armor too) -^R Redraw screen -s Search all immediately adjacent locations for traps and secret doors -S Save the game (and exit; there is no "save and keep going") -t Throw something (choose an item, then a direction--not a target) -T Take off one piece of armor (will work for accessories too) -^T Teleport around level -^U Go northeast until you are near something -v Show version ('#version' shows more information) -V Show history of game's development -w Wield a weapon (for dual weapons: 'w' secondary, 'x', 'w' primary, 'X') -W Wear a piece of armor (will work for accessories too) -x Swap wielded and secondary weapons -X Toggle two-weapon combat -^X Show your attributes (shows more in debug or explore mode) -&? number_pad=0,1,2,3,4 -&? number_pad=0 -y Go northwest 1 space -Y Go northwest until you are on top of something -&. -^Y Go northwest until you are near something -z Zap a wand -Z Zap (cast) a spell -&? suspend -^Z Suspend game; 'fg' (foreground) to resume -&: -^Z unavailable command: suspend -&. -&: number_pad=-1 -y Zap a wand -Y Zap (cast) a spell -&? suspend -^Y Suspend game; 'fg' (foreground) to resume -&: -^Y unavailable command: suspend -&. -z Go northwest 1 space -Z Go northwest until you are on top of something -^Z Go northwest until you are near something -&. #0,1..4 vs -1 -< Go up a staircase -> Go down a staircase -/ Show what type of thing a symbol corresponds to -? Give a help message -&? shell -! Do a shell escape; 'exit' shell to come back -&: -! unavailable command: shell -&. -\ Show what object types have been discovered -` Show discovered types for one class of objects -_ Travel via a shortest-path algorithm to a point on the map -. Rest one move while doing nothing -&? rest_on_space - Rest one move while doing nothing -&. -: Look at what is on the floor -; Show what type of thing a map symbol on the level corresponds to -, Pick up things at the current location -@ Toggle the pickup option on/off -) Show the weapon(s) currently wielded or readied -[ Show the armor currently worn -= Show the ring(s) currently worn -" Show the amulet currently worn -( Show the tools currently in use -* Show all equipment in use (combination of the ),[,=,",( commands) -$ Count your gold -+ List known spells -Del Display map without monsters or objects obstructing the view. -# Perform an extended command (use '#?' to list choices) -&# number_pad: -&# -1 = numpad off, swap y with z (including Y with Z, ^Y with ^Z, M-y &c) -&# 0 = numpad off (default) -&# 1 = numpad on, normal keypad layout, '5'->'g' -&# 2 = numpad on, normal keypad layout, '5'->'G' -&# 3 = numpad on, phone keypad layout, '5'->'g' -&# 4 = numpad on, phone keypad layout, '5'->'G' -&? number_pad = 1,2,3,4 -0 Show inventory -4 Move west -6 Move east -- 'F' prefix; force fight -&: #-1,0 -0 Continue a count -4 Start or continue a count -6 Start or continue a count -&. #1,2,3,4 vs -1,0 -&? number_pad=1,2 -7 Move northwest -8 Move north -9 Move northeast -1 Move southwest -2 Move south -3 Move southeast -&: number_pad=3,4 -1 Move northwest -2 Move north -3 Move northeast -7 Move southwest -8 Move south -9 Move southeast -&: #-1,0 -1 Start or continue a count -2 Start or continue a count -3 Start or continue a count -7 Start or continue a count -8 Start or continue a count -9 Start or continue a count -&. #1,2 vs 3,4 vs -1,0 -&? number_pad=1,3 -5 'g' movement prefix -M-5 'G' movement prefix -&: number_pad=2,4 -5 'G' movement prefix -M-5 'g' movement prefix -M-0 Inventory specific item types -&: #-1,0 -5 Start or continue a count -M-2 Toggle two-weapon combat -&. #1,3 vs 2,4 vs -1,0 -M-? Display extended command help (if the platform allows this) -M-a Adjust inventory letters -M-A Annotate: supply a name for the current dungeon level -M-c Chat: talk to an adjacent creature -M-C Conduct: list voluntary challenges you have maintained -M-d Dip an object into something -M-e Enhance: check weapons skills, advance them if eligible -M-f Force a lock -M-i Invoke an object's special powers -M-j Jump to a nearby location -M-l Loot a box on the floor -M-m When polymorphed, use a monster's special ability -M-n Name a monster, an individual object, or a type of object -M-N Name a monster, an individual object, or a type of object -M-o Offer a sacrifice to the gods -M-O Overview: show a summary of the explored dungeon -M-p Pray to the gods for help -M-q Quit (exit without saving) -M-r Rub a lamp or a touchstone -M-R Ride: mount or dismount a saddled steed -M-s Sit down -M-t Turn undead -M-T Tip: empty a container -M-u Untrap something (trap, door, or chest) -M-v Print compile time options for this version of NetHack -M-w Wipe off your face -M-X Switch from normal play to explore mode diff --git a/src/NetHack_3.7/dat/data.base b/src/NetHack_3.7/dat/data.base deleted file mode 100644 index 0103cdf..0000000 --- a/src/NetHack_3.7/dat/data.base +++ /dev/null @@ -1,6450 +0,0 @@ -# NetHack 3.7 data.base -# $NHDT-Date: 1684001509 2023/05/13 18:11:49 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.106 $ -# Copyright (c) 1994, 1995, 1996 by the NetHack Development Team -# Copyright (c) 1994 by Boudewijn Wayers -# NetHack may be freely redistributed. See license for details. -# -# This is the source file for the "data" file generated by `makedefs -d'. -# A line starting with a # is a comment and is ignored by makedefs. -# Any other line not starting with whitespace is a lookup key, usually -# a creature or an item. Key wildcard matching only supports '?' for -# single character, '*' for zero or more characters, and leading '~' as -# described below. -# -# Each entry should be comprised of: -# the thing/person being described on a line by itself, in lowercase; -# on each succeeding line a description. -# -# If the first character of a key field is "~", then anything which matches -# the rest of that key will be treated as if it did not match any of the -# following keys for that entry. For instance, `~orc ??m*' preceding `orc*' -# prevents "orc mummy" and "orc zombie" from matching. -# -# A citation of "[]" indicates arbitrary text written by developers or -# contributers. Falling off the end of an entry without any citation -# implies "[]". -# -# Some entries include blank lines to separate paragraphs but many don't. -# -abbot - For it had been long apparent to Count Landulf that nothing - could be done with his seventh son Thomas, except to make him - an Abbot or something of that kind. Born in 1226, he had from - childhood a mysterious objection to becoming a predatory eagle, - or even to taking an ordinary interest in falconry or tilting - or any other gentlemanly pursuits. He was a large and heavy and - quiet boy, and phenomenally silent, scarcely opening his mouth - except to say suddenly to his schoolmaster in an explosive - manner, "What is God?" The answer is not recorded but it is - probable that the asker went on worrying out answers for himself. - [ The Runaway Abbot, by G.K. Chesterton ] -# takes "suit or piece of armor" when specifying '[' -# FIXME: "dragon scales, dragon scale mail" needs its own entry -# FIXME too: "ac, armor class" also merits its own distinct entry -ac -armor* -armour* -*leather armor -suit or piece of armor -~*dragon*scale* -~scroll of mail -*mail - "The last spot on the school jousting team came down to another - boy and me. He was poor, and his only armor was a blanket his - mother had made him from her hair. I, on the other hand, had - a brand new suit of chain mail. Just before our joust, I asked - him what he'd do if he made the team. (I was hoping to be more - popular with the ladies.) He said he would be able to save the - town from dragons and be able to afford some water for his 20 - brothers and sisters. - - Well, a sense of compassion came over me. I insisted we swap - armor. He was forced to accept, as it would have been an - insult not to do so. - - On the battlefield, we charged at each other and we both connected - with our lances. - - Lying there on the mud mortally wounded, I learned what true armor - class was that day." - [ When Help Collides, by J.D. Berry ] -aclys -aklys -thonged club - A short studded or spiked club attached to a cord allowing - it to be drawn back to the wielder after having been thrown. - It should not be confused with the atlatl, which is a device - used to throw spears for longer distances. -~agate ring -agate* - Translucent, cryptocrystalline variety of quartz and a subvariety - of chalcedony. Agates are identical in chemical structure to - jasper, flint, chert, petrified wood, and tiger's-eye, and are - often found in association with opal. The colorful, banded rocks - are used as a semiprecious gemstone and in the manufacture of - grinding equipment. An agate's banding forms as silica from - solution is slowly deposited into cavities and veins in older - rock. - [ The Columbia Encyclopedia, Sixth Edition ] -alchemy - By and large, the only skill the alchemists of Ankh-Morpork had - discovered so far was the ability to turn gold into less gold. - [ Moving Pictures, by Terry Pratchett ] -aleax - Said to be a doppelganger sent to inflict divine punishment - for alignment violations. -*altar -offer* -sacrific* - Altars are of three types: - 1. In Temples. These are for Sacrifices [...]. The stone - top will have grooves for blood, and the whole will be covered - with _dry brown stains of a troubling kind_ from former - Sacrifices. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] - - To every man upon this earth - Death cometh soon or late; - And how can man die better - Than facing fearful odds - For the ashes of his fathers - And the temples of his gods? - [ Lays of Ancient Rome, by Thomas B. Macaulay ] -amaterasu omikami - The Shinto sun goddess, Amaterasu Omikami is the central - figure of Shintoism and the ancestral deity of the imperial - house. One of the daughters of the primordial god Izanagi - and said to be his favourite offspring, she was born from - his left eye. - [ Encyclopedia of Gods, by Michael Jordan ] -amber* - "Tree sap," Wu explained, "often flows over insects and traps - them. The insects are then perfectly preserved within the - fossil. One finds all kinds of insects in amber - including - biting insects that have sucked blood from larger animals." - [ Jurassic Park, by Michael Crichton ] -*amnesia -maud - Get thee hence, nor come again, - Mix not memory with doubt, - Pass, thou deathlike type of pain, - Pass and cease to move about! - 'Tis the blot upon the brain - That will show itself without. - ... - For, Maud, so tender and true, - As long as my life endures - I feel I shall owe you a debt, - That I never can hope to pay; - And if ever I should forget - That I owe this debt to you - And for your sweet sake to yours; - O then, what then shall I say? - - If ever I should forget, - May God make me more wretched - Than ever I have been yet! - [ Maud, And Other Poems, by Alfred, Lord Tennyson ] -~amulet of yendor -~amulet of restful sleep -*amulet -amulet of * -amulet versus * - "The complete Amulet can keep off all the things that make - people unhappy -- jealousy, bad temper, pride, disagreeableness, - greediness, selfishness, laziness. Evil spirits, people called - them when the Amulet was made. Don't you think it would be nice - to have it?" - "Very," said the children, quite without enthusiasm. - "And it can give you strength and courage." - "That's better," said Cyril. - "And virtue." - "I suppose it's nice to have that," said Jane, but not with much - interest. - "And it can give you your heart's desire." - "Now you're talking," said Robert. - [ The Story of the Amulet, by Edith Nesbit ] -amulet of yendor - This mysterious talisman is the object of your quest. It is - said to possess powers which mere mortals can scarcely - comprehend, let alone utilize. The gods will grant the gift of - immortality to the adventurer who can deliver it from the - depths of Moloch's Sanctum and offer it on the appropriate high - altar on the Astral Plane. -angel* - He answered and said unto them, he that soweth the good seed - is the Son of man; the field is the world, and the good seed - are the children of the kingdom; but the weeds are the - children of the wicked one; the enemy that sowed them is the - devil; the harvest is the end of the world; and the reapers - are the angels. As therefore the weeds are gathered and - burned in the fire; so shall it be in the end of this world. - [...] So shall it be at the end of the world; the angels - shall come forth, and sever the wicked from among the just, - and shall cast them into the furnace of fire; there shall be - wailing and gnashing of teeth. - [ The Gospel According to Matthew, 13:37-42, 49-50 ] -angry god* - Cold wind blows. - The gods look down in anger on this poor child. - - Why so unforgiving? - And why so cold? - [ Bridge of Sighs, by Robin Trower ] -anhur - An Egyptian god of war and a great hunter, few gods can match - his fury. Unlike many gods of war, he is a force for good. - The wrath of Anhur is slow to come, but it is inescapable - once earned. Anhur is a mighty figure with four arms. He - is often seen with a powerful lance that requires both of - his right arms to wield and which is tipped with a fragment - of the sun. He is married to Mehut, a lion-headed goddess. -ankh-morpork - The twin city of Ankh-Morpork, foremost of all the cities - bounding the Circle Sea, was as a matter of course the home - of a large number of gangs, thieves' guilds, syndicates and - similar organisations. This was one of the reasons for its - wealth. Most of the humbler folk on the widdershin side of - the river, in Morpork's mazy alleys, supplemented their - meagre incomes by filling some small role for one or other - of the competing gangs. - [ The Colour of Magic, by Terry Pratchett ] -anshar - A primordial Babylonian-Akkadian deity, Anshar is mentioned - in the Babylonian creation epic _Enuma Elish_ as one of a - pair of offspring (with Kishar) of Lahmu and Lahamu. Anshar - is linked with heaven while Kishar is identified with earth. - [ Encyclopedia of Gods, by Michael Jordan ] -ant -* ant - This giant variety of the ordinary ant will fight just as - fiercely as its small, distant cousin. Various varieties - exist, and they are known and feared for their relentless - persecution of their victims. -anu - Anu was the Babylonian god of the heavens, the monarch of - the north star. He was the oldest of the Babylonian gods, - the father of all gods, and the ruler of heaven and destiny. - Anu features strongly in the _atiku_ festival in - Babylon, Uruk and other cities. -# takes "apelike creature" when specifying 'Y' -ape -apelike creature -* ape - The most highly evolved of all the primates, as shown by - all their anatomical characters and particularly the - development of the brain. Both arboreal and terrestrial, - the apes have the forelimbs much better developed than - the hind limbs. Tail entirely absent. Growth is slow - and sexual maturity reached at quite an advanced age. - [ A Field Guide to the Larger Mammals of Africa, by Dorst ] - - Aldo the gorilla had a plan. It was a good plan. It was - right. He knew it. He smacked his lips in anticipation as - he thought of it. Yes. Apes should be strong. Apes should - be masters. Apes should be proud. Apes should make the - Earth shake when they walked. Apes should _rule_ the Earth. - [ Battle for the Planet of the Apes, by David Gerrold ] -apple - NEWTONIAN, adj. Pertaining to a philosophy of the universe - invented by Newton, who discovered that an apple will fall - to the ground, but was unable to say why. His successors - and disciples have advanced so far as to be able to say - when. - [ The Devil's Dictionary, by Ambrose Bierce ] -archeolog* -* archeologist - Archeology is the search for fact, not truth. [...] - So forget any ideas you've got about lost cities, exotic travel, - and digging up the world. We do not follow maps to buried - treasure, and X never, ever, marks the spot. - [ Indiana Jones and the Last Crusade ] - - "I cannot be having with archeological excavations, myself," - I said. "The fellows who dig them only ever find tiny walls - and a few bits of broken pottery, and then they get all - excited and swear that they have just made the most - important discovery of the century, the ruins of a mile-high - gold-covered temple to Frogmore the God of Bike-Saddle - Fixtures or some such." - "I think you will find," said Mr Rune, "that they do this - in order to secure further government funding for their - diggings and so remain in employment." - "That is a rather cynical view," I said. - [ the brightonomicon, by Robert Rankin ] -# [title & author: same situation as with "bad luck" entry] -archon - Archons are the predominant inhabitants of the heavens. - However unusual their appearance, they are not generally - evil. They are beings at peace with themselves and their - surroundings. -arioch - Arioch, the patron demon of Elric's ancestors; one of the most - powerful of all the Dukes of Hell, who was called Knight of - the Swords, Lord of the Seven Darks, Lord of the Higher Hell - and many more names besides. - [ Elric of Melnibone, by Michael Moorcock ] -*arrow - I shot an arrow into the air, - It fell to earth, I knew not where; - For, so swiftly it flew, the sight - Could not follow it in its flight. - - I breathed a song into the air, - It fell to earth, I knew not where; - For who has sight so keen and strong - That it can follow the flight of song? - - Long, long afterward, in an oak - I found the arrow still unbroke; - And the song, from beginning to end, - I found again in the heart of a friend. - [ The Arrow and the Song, by Henry Wadsworth Longfellow ] -ashikaga takauji - Ashikaga Takauji was a daimyo of the Minamoto clan who - joined forces with the Go-Daigo to defeat the Hojo armies. - Later when Go-Daigo attempted to reduce the powers of the - samurai clans he rebelled against him. He defeated Go- - Daigo and established the emperor Komyo on the throne. - Go-Daigo eventually escaped and established another - government in the town of Yoshino. This period of dual - governments was known as the Nambokucho. - [ Samurai - The Story of a Warrior Tradition, by Cook ] -asmodeus - It is said that Asmodeus is the overlord over all of hell. - His appearance, unlike many other demons and devils, is - human apart from his horns and tail. He can freeze flesh - with a touch. - [] - - The evil demon who appears in the Apocryphal book of _Tobit_ - and is derived from the Persian _Aeshma_. In _Tobit_ Asmodeus - falls in love with Sara, daughter of Raguel, and causes the - death of seven husbands in succession, each on his bridal night. - He was finally driven from Egypt through a charm made by Tobias - of the heart and liver of a fish burned on perfumed ashes, as - described by Milton in _Paradise Lost_ (IV, 167-71). Hence - Asmodeus often figures as the spirit of matrimonial jealousy - or unhappiness. - [ Brewer's Concise Dictionary of Phrase and Fable ] -athame - The consecrated ritual knife of a Wiccan initiate (one of four - basic tools, together with the wand, chalice and pentacle). - Traditionally, the athame is a double-edged, black-handled, - cross-hilted dagger of between six and eighteen inches length. - [] - - A belt made from a twisted braid of silken threads of gold wound - around her waist, and a dark-handled knife rested on a slant at - her hip through a loop in the belt. - [...] - She arched her brows. "You should know better, dear godchild. - You know I cannot speak what is untrue. During our last - encounter I returned to Faerie with great power and upset vital - balances. Those balances had to be redressed, and your debt was - the mechanism that the Queen chose to employ." - I frowned at her for a minute. "Returned with great power." My - eyes fell to the knife at her waist. "That thing the vampires - gave you?" - She rested her fingers lightly on the knife's hilt. "Don't - cheapen it. This athame was no creation of theirs. And it was - less a gift than a trade." - "Amoracchius and that thing are in the same league?" Gulp. My - faerie godmother was dangerous enough without a big-time - artifact of magic. - [ Summer Knight, by Jim Butcher ] -athen* - Athene was the offspring of Zeus, and without a mother. She - sprang forth from his head completely armed. Her favourite - bird was the owl, and the plant sacred to her is the olive. - [ Bulfinch's Mythology, by Thomas Bulfinch ] -axe -battle?axe -double?headed?axe - "For ev'ry silver ringing blow, - Cities and palaces shall grow!" - - "Bite deep and wide, O Axe, the tree, - Tell wider prophecies to me." - - "When rust hath gnaw'd me deep and red, - A nation strong shall lift his head. - - "His crown the very Heav'ns shall smite, - Aeons shall build him in his might." - - "Bite deep and wide, O Axe, the tree; - Bright Seer, help on thy prophecy!" - [ Malcolm's Katie, by Isabella Valancey Crawford ] -axolotl - A mundane salamander, harmless. -bag -bag of * -sack - "Now, this third handkerchief," Mein Herr proceeded, "has also - four edges, which you can trace continuously round and round: - all you need do is to join its four edges to the four edges of - the opening. The Purse is then complete, and its outer - surface--" - "I see!" Lady Muriel eagerly interrupted. "Its outer surface - will be continuous with its inner surface! But it will take - time. I'll sew it up after tea." She laid aside the bag, and - resumed her cup of tea. "But why do you call it Fortunatus's - Purse, Mein Herr?" - The dear old man beamed upon her, with a jolly smile, looking - more exactly like the Professor than ever. "Don't you see, - my child--I should say Miladi? Whatever is inside that Purse, - is outside it; and whatever is outside it, is inside it. So - you have all the wealth of the world in that leetle Purse!" - [ Sylvie and Bruno Concluded, by Lewis Carroll ] -b*lzebub - The "lord of the flies" is a translation of the Hebrew - Ba'alzevuv (Beelzebub in Greek). It has been suggested that - it was a mistranslation of a mistransliterated word which - gave us this pungent and suggestive name of the Devil, a - devil whose name suggests that he is devoted to decay, - destruction, demoralization, hysteria and panic... - [ Notes on _Lord of the Flies_, by E.L. Epstein ] -balrog - ... It came to the edge of the fire and the light faded as - if a cloud had bent over it. Then with a rush it leaped - the fissure. The flames roared up to greet it, and wreathed - about it; and a black smoke swirled in the air. Its streaming - mane kindled, and blazed behind it. In its right hand - was a blade like a stabbing tongue of fire; in its left it - held a whip of many thongs. - 'Ai, ai!' wailed Legolas. 'A Balrog! A Balrog is come!' - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -baluchitherium -titanothere - Extinct rhinos include a variety of forms, the most - spectacular being _Baluchitherium_ from the Oligocene of - Asia, which is the largest known land mammal. Its body, 18 - feet high at the shoulder and carried on massive limbs, - allowed the 4-foot-long head to browse on the higher branches - of trees. Though not as enormous, the titanotheres of the - early Tertiary were also large perissodactyls, _Brontotherium_ - of the Oligocene being 8 feet high at the shoulder. - [ Prehistoric Animals, by Barry Cox ] -banana - He took another step and she cocked her right wrist in - viciously. She heard the spring click. Weight slapped into - her hand. - "Here!" she shrieked hysterically, and brought her arm up in - a hard sweep, meaning to gut him, leaving him to blunder - around the room with his intestines hanging out in steaming - loops. Instead he roared laughter, hands on his hips, - flaming face cocked back, squeezing and contorting with great - good humor. - "Oh, my dear!" he cried, and went off into another gale of - laughter. - She looked stupidly down at her hand. It held a firm yellow - banana with a blue and white Chiquita sticker on it. She - dropped it, horrified, to the carpet, where it became a - sickly yellow grin, miming Flagg's own. - "You'll tell," he whispered. "Oh yes indeed you will." - And Dayna knew he was right. - [ The Stand, by Stephen King ] -banshee - In Irish folklore and that of the Western Highlands of Scotland, - a female fairy who announces her presence by shrieking and - wailing under the windows of a house when one of its occupants - is awaiting death. The word is a phonetic spelling of the - Irish _beansidhe_, a woman of the fairies. - [ Brewer's Concise Dictionary of Phrase and Fable ] -barbarian -* barbarian - They dressed alike -- in buckskin boots, leathern breeks and - deerskin shirts, with broad girdles that held axes and short - swords; and they were all gaunt and scarred and hard-eyed; - sinewy and taciturn. - They were wild men, of a sort, yet there was still a wide - gulf between them and the Cimmerian. They were sons of - civilization, reverted to a semi-barbarism. He was a - barbarian of a thousand generations of barbarians. They had - acquired stealth and craft, but he had been born to these - things. He excelled them even in lithe economy of motion. - They were wolves, but he was a tiger. - [ Conan - The Warrior, by Robert E. Howard ] -# takes "bat or bird" when specifying 'B' -~*combat -~*wombat -*bat -bat or bird - A bat, flitting in the darkness outside, took the wrong turn - as it made its nightly rounds and came in through the window - which had been left healthfully open. It then proceeded to - circle the room in the aimless fat-headed fashion habitual - with bats, who are notoriously among the less intellectually - gifted of God's creatures. Show me a bat, says the old - proverb, and I will show you something that ought to be in - some kind of a home. - [ A Pelican at Blandings, by P.G. Wodehouse ] -bear*trap - Probably most commonly associated with trapping, the leghold - trap is a rather simple mechanical trap. It is made up of two - jaws, a spring of some sort, and a trigger in the middle. When - the animal steps on the trigger the trap closes around the leg, - holding the animal in place. Usually some kind of lure is used - to position the animal, or the trap is set on an animal trail. - Traditionally, leghold traps had tightly closing "teeth" to make - sure the animal stayed in place. The teeth also made sure the - animal could not move the leg in the trap and ruin their fur. - However, this resulted in many animals gnawing off legs in order - to escape. More modern traps have a gap called an "offset jaw" - and work more like a handcuff. They grip above the paw, making - sure the animal cannot pull out but does not destroy the leg. - This also allows the trapper to release unwanted catches. - [ Wikipedia, the free encyclopedia ] -*bee - This giant variety of its useful normal cousin normally - appears in small groups, looking for raw material to produce - the royal jelly needed to feed their queen. On rare - occasions, one may stumble upon a bee-hive, in which the - queen bee is being well provided for, and guarded against - intruders. -*beetle - [ The Creator ] has an inordinate fondness for beetles. - [ attributed to biologist J.B.S. Haldane ] - - The common name for the insects with wings shaped like - shields (_Coleoptera_), one of the ten sub-species into - which the insects are divided. They are characterized by - the shields (the front pair of wings) under which the back - wings are folded. - [ Van Dale's Groot Woordenboek der Nederlandse Taal ] -bell of opening - "A bell, book and candle job." - The Bursar sighed. "We tried that, Archchancellor." - The Archchancellor leaned towards him. - "Eh?" he said. - "I _said_, we tried that Archchancellor," said the Bursar loudly, - directing his voice at the old man's ear. "After dinner, you - remember? We used Humptemper's _Names of the Ants_ and rang Old - Tom."* - "Did we, indeed. Worked, did it?" - "_No_, Archchancellor." - - * Old Tom was the single cracked bronze bell in the University - bell tower. - [ Eric, by Terry Pratchett ] -*bell* - Hear the sledges with the bells -- - Silver bells! - What a world of merriment their melody foretells! - How they tinkle, tinkle, tinkle, - In the icy air of night! - While the stars that oversprinkle - All the heavens, seem to twinkle - With a crystalline delight; - Keeping time, time, time, - In a sort of Runic rhyme, - To the tintinabulation that so musically wells - From the bells, bells, bells, bells, - Bells, bells, bells -- - From the jingling and the tinkling of the bells. - [ The Bells, by Edgar Allan Poe ] -blindfold - The blindfolding was performed by binding a piece of the - yellowish linen whereof those of the Amahagger who condescended - to wear anything in particular made their dresses tightly round - the eyes. This linen I afterwards discovered was taken from the - tombs, and was not, as I had first supposed, of native - manufacture. The bandage was then knotted at the back of the - head, and finally brought down again and the ends bound under - the chin to prevent its slipping. Ustane was, by the way, also - blindfolded, I do not know why, unless it was from fear that she - should impart the secrets of the route to us. - [ She, by H. Rider Haggard ] -blind io - On this particular day Blind Io, by dint of constant vigilance - the chief of the gods, sat with his chin on his hand - and looked at the gaming board on the red marble table in - front of him. Blind Io had got his name because, where his - eye sockets should have been, there were nothing but two - areas of blank skin. His eyes, of which he had an impressively - large number, led a semi-independent life of their - own. Several were currently hovering above the table. - [ The Colour of Magic, by Terry Pratchett ] -* blob -ooze -* ooze -*pudding -* slime - These giant amoeboid creatures look like nothing more than - puddles of slime, but they both live and move, feeding on - metal or wood as well as the occasional dungeon explorer to - supplement their diet. - - But we were not on a station platform. We were on the track ahead - as the nightmare, plastic column of fetid black iridescence oozed - tightly onward through its fifteen-foot sinus, gathering unholy - speed and driving before it a spiral, re-thickening cloud of the - pallid abyss vapor. It was a terrible, indescribable thing vaster - than any subway train -- a shapeless congeries of protoplasmic - bubbles, faintly self-luminous, and with myriads of temporary eyes - forming and unforming as pustules of greenish light all over the - tunnel-filling front that bore down upon us, crushing the frantic - penguins and slithering over the glistening floor that it and its - kind had swept so evilly free of all litter. - [ At the Mountains of Madness, by H.P. Lovecraft ] -blue jelly -ochre jelly -spotted jelly - I'd planned how to prevent the lock from sealing behind me; it - required a temporary sacrifice, not cleverness. I used the door - itself to help me cut off a portion of my body, after shunting all - memory from the piece to be abandoned. The piece, looking - inexpressibly dear and forlorn for a bit of blue jelly, would - force open the outer door until I returned and rejoined it. - [ Beholder's Eye, by Julie E. Czerneda ] -bone devil - Bone devils attack with weapons and with a great hooked tail - which causes a loss of strength to those they sting. -book of the dead -candelabrum* -*candle - Faustus: Come on Mephistopheles. What shall we do? - Mephistopheles: Nay, I know not. We shall be cursed with bell, - book, and candle. - Faustus: How? Bell, book, and candle, candle, book, and bell, - Forward and backward, to curse Faustus to hell. - Anon you shall hear a hog grunt, a calf bleat, and an ass bray, - Because it is Saint Peter's holy day. - (Enter all the Friars to sing the dirge) - [ Doctor Faustus and Other Plays, by Christopher Marlowe ] -boomerang -#: this one is commented out because two from the same source feels a -#: bit excessive; if uncommented, it should be first since the punchline -#: is about coming back while the other one is disdainful about that, so -#: if this one came second, its joke would be weakened -# "It's a boomerang," said Vimes. "You find something like this -# all over the world. You have to wave it carefully and suddenly -# your opponent gets it in the back. I've heard that there's a lad -# in Fourecks who can throw a boomerang with such precision that it -# can get the morning paper and come back with it." -# [ Raising Steam, by Terry Pratchett ] -# - Rincewind pulled himself up and thought about reaching for his - stick. And then he thought again. The man had a couple of spears - stuck in the ground, and people here were good at spears, because - if you didn't get efficient at hitting the things that moved fast - you had to eat the things that moved slowly. He was also holding - a boomerang, and it wasn't one of those toy ones that came back. - This was one of the big, heavy, gently curved sort that didn't - come back because it was sticking in something's ribcage. You - could laugh at the idea of wooden weapons until you saw the kind - of wood that grew here. - [ The Last Continent, by Terry Pratchett ] -~*jack*boot* -*boot* -*shoes - In Fantasyland these are remarkable in that they seldom or - never wear out and are suitable for riding or walking in - without the need of Socks. Boots never pinch, rub, or get - stones in them; nor do nails stick upwards into the feet from - the soles. They are customarily mid-calf length or knee-high, - slip on and off easily and never smell of feet. Unfortunately, - the formula for making this splendid footwear is a closely - guarded secret, possibly derived from nonhumans (see Dwarfs, - Elves, and Gnomes). - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -*booze -potion of sleeping - On waking, he found himself on the green knoll whence he had - first seen the old man of the glen. He rubbed his eyes -- it - was a bright sunny morning. The birds were hopping and - twittering among the bushes, and the eagle was wheeling aloft, - and breasting the pure mountain breeze. "Surely," thought Rip, - "I have not slept here all night." He recalled the occurrences - before he fell asleep. The strange man with a keg of liquor -- - the mountain ravine -- the wild retreat among the rocks -- the - woe-begone party at ninepins -- the flagon -- "Oh! that flagon! - that wicked flagon!" thought Rip -- "what excuse shall I make - to Dame Van Winkle!" - [ Rip Van Winkle, a Posthumous Writing - of Diedrich Knickerbocker, by Washington Irving ] -boulder - I worked the lever well under, and stretched my back; the end - of the stone rose up, and I kicked the fulcrum under. Then, - when I was going to bear down, I remembered there was - something to get out from below; when I let go of the lever, - the stone would fall again. I sat down to think, on the root - of the oak tree; and, seeing it stand about the ground, I saw - my way. It was lucky I had brought a longer lever. It would - just reach to wedge under the oak root. - Bearing it down so far would have been easy for a heavy man, - but was a hard fight for me. But this time I meant to do it - if it killed me, because I knew it could be done. Twice I - got it nearly there, and twice the weight bore it up again; - but when I flung myself on it the third time, I heard in my - ears the sea-sound of Poseidon. Then I knew this time I - would do it; and so I did. - [ The King Must Die, by Mary Renault ] -~*longbow of diana -bow -* bow - "Stand to it, my hearts of gold," said the old bowman as he - passed from knot to knot. "By my hilt! we are in luck this - journey. Bear in mind the old saying of the Company." - "What is that, Aylward?" cried several, leaning on their bows - and laughing at him. - "'Tis the master-bowyer's rede: 'Every bow well bent. Every - shaft well sent. Every stave well nocked. Every string well - locked.' There, with that jingle in his head, a bracer on - his left hand, a shooting glove on his right, and a - farthing's-worth of wax in his girdle, what more doth a - bowman need?" - "It would not be amiss," said Hordle John, "if under his - girdle he had four farthings'-worth of wine." - [ The White Company, by Sir Arthur Conan Doyle ] -brigit - Brigit (Brigid, Bride, Banfile), which means the Exalted One, - was the Celtic (continental European and Irish) fertility - goddess. She was originally celebrated on February first in - the festival of Imbolc, which coincided with the beginning - of lactation in ewes and was regarded in Scotland as the date - on which Brigit deposed the blue-faced hag of winter. The - Christian calendar adopted the same date for the Feast of St. - Brigit. There is no record that a Christian saint ever - actually existed, but in Irish mythology she became the - midwife to the Virgin Mary. - [ Encyclopedia of Gods, by Michael Jordan ] -~stormbringer -*broadsword - Bring me my broadsword - And clear understanding. - Bring me my cross of gold, - As a talisman. - [ "Broadsword" (refrain), by Ian Anderson ] -bugbear - Bugbears are relatives of goblins, although they tend to be - larger and more hairy. They are aggressive carnivores and - sometimes kill just for the treasure their victims may be - carrying. -bugle - 'I read you by your bugle horn - And by your palfrey good, - I read you for a Ranger sworn - To keep the King's green-wood.' - 'A Ranger, Lady, winds his horn, - And 'tis at peep of light; - His blast is heard at merry morn, - And mine at dead of night.' - [ Brignall Banks, by Sir Walter Scott ] -bullwhip - "Good," he said and, unbelievably, smiled at me, a smirk like - a round of rotted cheese. "What did your keeper use on you? - A bullwhip?" - [ Melusine, by Sarah Monette ] -*camaxtli - A classical Mesoamerican Aztec god, also known as Mixcoatl- - Camaxtli (the Cloud Serpent), Camaxtli is the god of war. He - is also a deity of hunting and fire who received human - sacrifice of captured prisoners. According to tradition, the - sun god Tezcatlipoca transformed himself into Mixcoatl-Camaxtli - to make fire by twirling the sacred fire sticks. - [ Encyclopedia of Gods, by Michael Jordan ] -camelot* - The seat of Arthur's power in medieval romance. The name is - of unknown origin and refers to the castle but also includes - the surrounding town. ... Camelot appears, most significantly, - as a personal capital as opposed to a permanent or national - one. It is Arthur's and Arthur's alone. There are no previous - lords and Arthur's successor, Constantine, does not take up - residence there. Camelot is actually said to have been - demolished after Arthur and Lancelot were gone by Mark. Fazio - degli Uberti, the Italian poet, claims to have seen the ruins - in the 14th century. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -candy bar - Only once a year, on his birthday, did Charlie Bucket ever - get to taste a bit of chocolate. The whole family saved up - their money for that special occasion, and when the great - day arrived, Charlie was always presented with one small - chocolate bar to eat all by himself. And each time he - received it, on those marvelous birthday mornings, he would - place it carefully in a small wooden box that he owned, and - treasure it as though it were a bar of solid gold; and for - the next few days, he would allow himself only to look at it, - but never to touch it. Then at last, when he could stand it - no longer, he would peel back a tiny bit of the paper - wrapping at one corner to expose a tiny bit of chocolate, and - then he would take a tiny nibble - just enough to allow the - lovely sweet taste to spread out slowly over his tongue. The - next day, he would take another tiny nibble, and so on, and - so on. And in this way, Charlie would make his ten-cent bar - of birthday chocolate last him for more than a month. - [ Charlie and the Chocolate Factory, by Roald Dahl ] -carrot - In World War II, Britain's air ministry spread the word that - a diet of these vegetables helped pilots see Nazi bombers - attacking at night. That was a lie intended to cover the real - matter of what was underpinning the Royal Air Force's successes: - Airborne Interception Radar, also known as AI. ... British - Intelligence didn't want the Germans to find out about the - superior new technology helping protect the nation, so they - created a rumor to afford a somewhat plausible-sounding - explanation for the sudden increase in bombers being shot down. - ... The disinformation was so persuasive that the English public - took to eating carrots to help them find their way during the - blackouts. - [ Urban Legends Reference Pages ] -s*d*g*r* cat - Imagine a sealed container, so perfectly constructed that no - physical influence can pass either inwards or outwards across its - walls. Imagine that inside the container is a cat, and also a - device that can be triggered by some quantum event. If that event - takes place, then the device smashes a phial containing cyanide and - the cat is killed. If the event does not take place, the cat lives - on. In Schroedinger's original version, the quantum event was the - decay of a radioactive atom. ... To the outside observer, the cat - is indeed in a linear combination of being alive and dead, and only - when the container is finally opened would the cat's state vector - collapse into one or the other. On the other hand, to a (suitably - protected) observer inside the container, the cat's state-vector - would have collapsed much earlier, and the outside observer's - linear combination has no relevance. - [ The Emperor's New Mind, by Roger Penrose ] -# takes "cat or other feline" when specifying 'f' -*cat -*feline -kitten - Well-known quadruped domestic animal from the family of - predatory felines (_Felis ochreata domestica_), with a thick, - soft pelt; often kept as a pet. Various folklores have the - cat associated with magic and the gods of ancient Egypt. - [] - - So Ulthar went to sleep in vain anger; and when the people - awakened at dawn - behold! Every cat was back at his - accustomed hearth! Large and small, black, grey, striped, - yellow and white, none was missing. Very sleek and fat did - the cats appear, and sonorous with purring content. - [ The Cats of Ulthar, by H.P. Lovecraft ] -# this one doesn't work very well for dwarven and gnomish cavemen -cave dweller -cave*man -human cave*man - Now it was light enough to leave. Moon-Watcher picked up - the shriveled corpse and dragged it after him as he bent - under the low overhang of the cave. Once outside, he - threw the body over his shoulder and stood upright - the - only animal in all this world able to do so. - Among his kind, Moon-Watcher was almost a giant. He was - nearly five feet high, and though badly undernourished - weighed over a hundred pounds. His hairy, muscular body - was halfway between ape and man, but his head was already - much nearer to man than ape. The forehead was low, and - there were ridges over the eye sockets, yet he unmistakably - held in his genes the promise of humanity. - [ 2001: A Space Odyssey, by Arthur C. Clarke ] -dwar* cave*man -gnom* cave*man - 'Twas in a land unkempt of life's red dawn; - Where in his sanded cave he dwelt alone; - Sleeping by day, or sometimes worked upon - His flint-head arrows and his knives of stone; - By night stole forth and slew the savage boar, - So that he loomed a hunter of loud fame, - And many a skin of wolf and wild-cat wore, - And counted many a flint-head to his name; - Wherefore he walked the envy of the band, - Hated and feared, but matchless in his skill. - Till lo! one night deep in that shaggy land, - He tracked a yearling bear and made his kill; - Then over-worn he rested by a stream, - And sank into a sleep too deep for dream. - [ The Dreamer, by Robert Service ] -*centaur - Of all the monsters put together by the Greek imagination - the Centaurs (Kentauroi) constituted a class in themselves. - Despite a strong streak of sensuality, in their make-up, - their normal behaviour was moral, and they took a kindly - thought of man's welfare. The attempted outrage of Nessos on - Deianeira, and that of the whole tribe of Centaurs on the - Lapith women, are more than offset by the hospitality of - Pholos and by the wisdom of Cheiron, physician, prophet, - lyrist, and the instructor of Achilles. Further, the - Centaurs were peculiar in that their nature, which united the - body of a horse with the trunk and head of a man, involved - an unthinkable duplication of vital organs and important - members. So grotesque a combination seems almost un-Greek. - These strange creatures were said to live in the caves and - clefts of the mountains, myths associating them especially - with the hills of Thessaly and the range of Erymanthos. - [ Mythology of all races, Vol. 1, pp. 270-271 ] -# [ capitalization of the title seems to be all over the place, -# including all lower case and conventional mixed case; -# it appears that Volume 1 (of 13) was written by -# William Sherwood Fox and edited by Louis Herbert Gray ] -centipede - I observed here, what I had often seen before, that certain - districts abound in centipedes. Here they have light - reddish bodies and blue legs; great myriapedes are seen - crawling every where. Although they do no harm, they excite - in man a feeling of loathing. Perhaps our appearance - produces a similar feeling in the elephant and other large - animals. Where they have been much disturbed, they - certainly look upon us with great distrust, as the horrid - biped that ruins their peace. - [ Travels and Researches in South Africa, - by Dr. David Livingstone ] -cerberus -kerberos - Cerberus, (or Kerberos in Greek), was the three-headed dog - that guarded the Gates of Hell. He allowed any dead to enter, - and likewise prevented them all from ever leaving. He was - bested only twice: once when Orpheus put him to sleep by - playing bewitching music on his lyre, and the other time when - Hercules confronted him and took him to the world of the - living (as his twelfth and last labor). -chameleon - A small lizard perched on a brown stone. Feeling threatened by - the approach of human beings along the path, it metamorphosed - into a stingray beetle, then into a stench-puffer, then into a - fiery salamander. - Bink smiled. These conversions weren't real. It had assumed - the forms of obnoxious little monsters, but not their essence. - It could not sting, stink or burn. It was a chameleon, using - its magic to mimic creatures of genuine threat. - Yet as it shifted into the form of a basilisk it glared at him - with such ferocity that Bink's mirth abated. If its malice - could strike him, he would be horribly dead. - [ A Spell for Chameleon, by Piers Anthony ] -charo*n - When an ancient Greek died, his soul went to the nether world: - the Hades. To reach the nether world, the souls had to cross - the river Styx, the river that separated the living from the - dead. The Styx could be crossed by ferry, whose shabby ferry- - man, advanced in age, was called Charon. The deceased's next- - of-kin would place a coin under his tongue, to pay the ferry- - man. -chest -large box - Dantes rapidly cleared away the earth around the chest. Soon - the center lock appeared, then the handles at each end, all - delicately wrought in the manner of that period when art made - precious even the basest of metals. He took the chest by the - two handles and tried to lift it, but it was impossible. He - tried to open it; it was locked. He inserted the sharp end - of his pickaxe between the chest and the lid and pushed down - on the handle. The lid creaked, then flew open. - Dantes was seized with a sort of giddy fever. He cocked his - gun and placed it beside him. Then he closed his eyes like - a child, opened them and stood dumbfounded. - The chest was divided into three compartments. In the first - were shining gold coins. In the second, unpolished gold - ingots packed in orderly stacks. From the third compartment, - which was half full, Dantes picked up handfuls of diamonds, - pearls and rubies. As they fell through his fingers in a - glittering cascade, they gave forth the sound of hail beating - against the windowpanes. - [ The Count of Monte Cristo, by Alexandre Dumas ] -chih*sung*tzu - A character in Chinese mythology noted for bringing about the - end of a terrible drought which threatened the survival of - the people. He achieved this by means of sprinkling the - earth with water from a bowl, using the branch of a tree to - do so. He became the heavenly controller of the rain, and - lived with other celestial beings in their paradise on Mount - Kunlun. - [ The Illustrated Who's Who In Mythology, by Michael Senior ] -chromatic dragon -tiamat - Tiamat is said to be the mother of evil dragonkind. She is - extremely vain. -citrine* - A pale yellow variety of crystalline quartz resembling topaz. -clay golem - It was a warm spring night when a fist knocked at the door so - hard that the hinges bent. - A man opened it and peered out into the street. There was - mist coming off the river and it was a cloudy night. He might - as well have tried to see through white velvet. - But he thought afterwards that there had been shapes out - there, just beyond the light spilling out into the road. A - lot of shapes, watching him carefully. He thought maybe - there'd been very faint points of light... - There was no mistaking the shape right in front of him, - though. It was big and dark red and looked like a child's - clay model of a man. Its eyes were two embers. - [ Feet of Clay, by Terry Pratchett ] -cleaver - Hither came Conan, the Cimmerian, black-haired, sullen-eyed, - sword in hand, a thief, a reaver, a slayer, with gigantic - melancholies and gigantic mirth, to tread the jeweled - thrones of the Earth under his sandalled feet. - [ The Phoenix on the Sword, by Robert E. Howard ] -~elven cloak -~oilskin cloak -*cloak* - Cloaks are the universal outer garb of everyone who is not a - Barbarian. It is hard to see why. They are open in front - and require you at most times to use one hand to hold them - shut. On horseback they leave the shirt-sleeved arms and - most of the torso exposed to wind and Weather. The OMTs - [ Official Management Terms ] for Cloaks well express their - difficulties. They are constantly _swirling and dripping_ - and becoming _heavy with water_ in rainy Weather, _entangling - with trees_ or _swords_, or needing to be _pulled close - around her/his shivering body_. This seems to suggest they - are less than practical for anyone on an arduous Tour. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -cloud* - I wandered lonely as a cloud - That floats on high o'er vales and hills, - When all at once I saw a crowd, - A host, of golden daffodils; - Beside the lake, beneath the trees, - Fluttering and dancing in the breeze. - [ I Wandered Lonely as a Cloud, by William Wordsworth ] -cobra - Darzee and his wife only cowered down in the nest without - answering, for from the thick grass at the foot of the bush - there came a low hiss -- a horrid cold sound that made - Rikki-tikki jump back two clear feet. Then inch by inch out of - the grass rose up the head and spread hood of Nag, the big - black cobra, and he was five feet long from tongue to tail. - When he had lifted one-third of himself clear of the ground, - he stayed balancing to and fro exactly as a dandelion-tuft - balances in the wind, and he looked at Rikki-tikki with the - wicked snake's eyes that never change their expression, - whatever the snake may be thinking of. - 'Who is Nag?' said he. '_I_ am Nag. The great God Brahm put - his mark upon all our people, when the first cobra spread his - hood to keep the sun off Brahm as he slept. Look, and be - afraid!' - [ Rikki-tikki-tavi, by Rudyard Kipling ] -c*ckatrice - Once in a great while, when the positions of the stars are - just right, a seven-year-old rooster will lay an egg. Then, - along will come a snake, to coil around the egg, or a toad, - to squat upon the egg, keeping it warm and helping it to - hatch. When it hatches, out comes a creature called basilisk, - or cockatrice, the most deadly of all creatures. A single - glance from its yellow, piercing toad's eyes will kill both - man and beast. Its power of destruction is said to be so - great that sometimes simply to hear its hiss can prove fatal. - Its breath is so venomous that it causes all vegetation - to wither. - - There is, however, one creature which can withstand the - basilisk's deadly gaze, and this is the weasel. No one knows - why this is so, but although the fierce weasel can slay the - basilisk, it will itself be killed in the struggle. Perhaps - the weasel knows the basilisk's fatal weakness: if it ever - sees its own reflection in a mirror it will perish instantly. - But even a dead basilisk is dangerous, for it is said that - merely touching its lifeless body can cause a person to - sicken and die. - [ Mythical Beasts, by Deirdre Headon (The Leprechaun Library) - and other sources ] -*coin -~creeping coins -*coins -zorkmid* - The coin bears the likeness of Belwit the Flat, along with the - inscriptions, "One Zorkmid," and "699 GUE [ Great Underground - Empire ]." On the other side, the coin depicts Egreth Castle, - and says "In Frobs We Trust" in several languages. - [ Zork Zero, by Infocom ] -combat -fight -fracas -melee -spat -squabble -tiff - [Scene: Mr. Moon and Gilbert enter tavern and discover many - corpses strewn about the place; Blind Pew is sole survivor.] - Blind Pew: Evening. Sounded as though there has been a bit - of a squabble. - Mr. Moon: Squabble? They're all dead. - Blind Pew: Oh. Must have been more of a tiff then. - [ Yellowbeard, directed by Mel Damski, screenplay - by Graham Chapman, Peter Cook, Bernard McKenna ] -conical hat - You couldn't escape the pointy hat, though. There was nothing magical - about a pointy hat except that it said that the woman underneath it - was a witch. People paid attention to a pointy hat. - [ Wintersmith, by Terry Pratchett ] -# not "*cope" because that would match "stethoscope" -cope -* cope - The cope is a liturgical vestment which may be worn by any - rank of the clergy. Copes are made in all liturgical colours, - and are like a very long mantle or cloak, fastened at the breast - by a clasp. - [ Wikipedia, the free encyclopedia ] -# the word "cornuthaum" was coined by devteam member jwalz and adopted in -# 3.2.0, after searching for an actual name for pointy hat came up empty -cornuthaum - He was dressed in a flowing gown with fur tippets which had - the signs of the zodiac embroidered over it, with various - cabalistic signs, such as triangles with eyes in them, queer - crosses, leaves of trees, bones of birds and animals, and a - planetarium whose stars shone like bits of looking-glass with - the sun on them. He had a pointed hat like a dunce's cap, or - like the headgear worn by ladies of that time, except that - the ladies were accustomed to have a bit of veil floating - from the top of it. - [ The Once and Future King, by T.H. White ] - - "A wizard!" Dooley exclaimed, astounded. - "At your service, sirs," said the wizard. "How - perceptive of you to notice. I suppose my hat rather gives me - away. Something of a beacon, I don't doubt." His hat was - pretty much that, tall and cone-shaped with stars and crescent - moons all over it. All in all, it couldn't have been more - wizardish. - [ The Elfin Ship, James P. Blaylock ] -couatl - A mythical feathered serpent. The couatl are very rare. -coyote - This carnivore is known for its voracious appetite and - inflated view of its own intelligence. -cram* - If you want to know what cram is, I can only say that I don't - know the recipe; but it is biscuitish, keeps good indefinitely, - is supposed to be sustaining, and is certainly not entertaining, - being in fact very uninteresting except as a chewing - exercise. It was made by the Lake-men for long journeys. - [ The Hobbit, by J.R.R. Tolkien ] -cream pie - Gregor stared at the pastry tray, and sighed. "I suppose - it would disturb the guards if I tried to shove a cream torte up - your nose." - "Deeply. You should have done it when we were eight and - twelve, you could have gotten away with it then. The cream pie - of justice flies one way," Miles snickered. - [ The Vor Game, by Lois McMaster Bujold ] -credit card -charge card - "We are not worried about the expiration date," repeated the - barman, satisfied that he now had Ford Prefect's full attention; - "we are worried about the entire piece of plastic." - "What?" said Ford. He seemed a little taken aback. - "This," said the barman, holding out the card as if it were a - small fish whose soul had three weeks earlier winged its way to - the Land Where Fish Are Eternally Blessed. "We don't accept it." - [...] - "But you don't understand," said Ford, his expression slowly - ripening from a little taken abackness into rank incredulity, - "this is the American Express card. It is the finest way of - settling bills known to man. Haven't you read their junk mail?" - [ So Long, and Thanks For All The Fish, by Douglas Adams ] -*crocodile - A big animal with the appearance of a lizard, constituting - an order of the reptiles (_Loricata_ or _Crocodylia_), the - crocodile is a large, dangerous predator native to tropical - and subtropical climes. It spends most of its time in large - bodies of water. - [] - - How doth the little crocodile - Improve his shining tail, - And pour the waters of the Nile - On every golden scale! - - How cheerfully he seems to grin - How neatly spreads his claws, - And welcomes little fishes in, - With gently smiling jaws! - [ How Doth The Little Crocodile, by Lewis Carroll ] -# Creosote is the Discworld analogue of Croesus -croesus -kroisos -creosote - Croesus (in Greek: Kroisos), the wealthy last king of Lydia; - his empire was destroyed when he attacked Cyrus in 549 BC, - after the Oracle of Delphi (q.v.) had told him: "if you attack - the Persians, you will destroy a mighty empire". Herodotus - relates of his legendary conversation with Solon of Athens, - who impressed upon him that being rich does not imply being - happy and that no one should be considered fortunate before - his death. -crom - Warily Conan scanned his surroundings, all of his senses alert - for signs of possible danger. Off in the distance, he could - see the familiar shapes of the Camp of the Duali tribe. - Suddenly, the hairs on his neck stand on end as he detects the - aura of evil magic in the air. Without thought, he readies - his weapon, and mutters under his breath: - "By Crom, there will be blood spilt today." - [ Conan the Avenger, by Robert E. Howard, Bjorn Nyberg, - and L. Sprague de Camp ] -crossbow* - "God save thee, ancient Mariner! - From the fiends, that plague thee thus! - - Why look'st thou so?" - With my cross-bow - I shot the Albatross. - [ The Rime of the Ancient Mariner, by Samuel Taylor Coleridge ] -crystal ball - You look into one of these and see _vapours swirling like - clouds_. These shortly clear away to show a sort of video - without sound of something that is going to happen to you - soon. It is seldom good news. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -curse* - Curses are longstanding ill-wishings which, in Fantasyland, - often manifest as semisentient. They have to be broken or - dispelled. The method varies according to the type and - origin of the Curse: - [...] - 4. Curses on Rings and Swords. You have problems. Rings - have to be returned whence they came, preferably at over a - thousand degrees Fahrenheit, and the Curse means you won't - want to do this. Swords usually resist all attempts to - raise their Curses. Your best source is to hide the Sword - or give it to someone you dislike. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -cwn*n - A pack of snow-white, red-eared spectral hounds which - sometimes took part in the kidnappings and raids the - inhabitants of the underworld sometimes make on this world - (the Wild Hunt). They are associated in Wales with the sounds - of migrating wild geese, and are said to be leading the souls - of the damned to hell. The phantom chase is usually heard or - seen in midwinter and is accompanied by a howling wind. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -cyclops - And after he had milked his cattle swiftly, - he again took hold of two of my men - and had them as his supper. - Then I went, with a tub of red wine, - to stand before the Cyclops, saying: - "A drop of wine after all this human meat, - so you can taste the delicious wine - that is stored in our ship, Cyclops." - He took the tub and emptied it. - He appreciated the priceless wine that much - that he promptly asked me for a second tub. - "Give it", he said, "and give me your name as well". - ... - Thrice I filled the tub, - and after the wine had clouded his mind, - I said to him, in a tone as sweet as honey: - "You have asked my name, Cyclops? Well, - my name is very well known. I'll give it to you, - if you give me the gift you promised me as a guest. - My name is Nobody. All call me thus: - my father and my mother and my friends." - Ruthlessly he answered to this: - "Nobody, I will eat you last of all; - your host of friends will completely precede you. - That will be my present to you, my friend." - And after these words he fell down backwards, - restrained by the all-restrainer Hupnos. - His monstrous neck slid into the dust; - the red wine squirted from his throat; - the drunk vomited lumps of human flesh. - [ The Odyssey, (chapter Epsilon), by Homer ] -~sting -*dagger - Is this a dagger which I see before me, - The handle toward my hand? Come, let me clutch thee. - I have thee not, and yet I see thee still. - Art thou not, fatal vision, sensible - To feeling as to sight? or art thou but - A dagger of the mind, a false creation, - Proceeding from the heat-oppressed brain? - I see thee yet, in form as palpable - As this which now I draw. - [ Macbeth, by William Shakespeare ] -dark one - ... But he ruled rather by force and fear, if they might - avail; and those who perceived his shadow spreading over the - world called him the Dark Lord and named him the Enemy; and - he gathered again under his government all the evil things of - the days of Morgoth that remained on earth or beneath it, - and the Orcs were at his command and multiplied like flies. - Thus the Black Years began ... - [ The Silmarillion, by J.R.R. Tolkien ] -# includes "dart trap" -dart* - Darts are missile weapons, designed to fly such that a sharp, - often weighted point will strike first. They can be - distinguished from javelins by fletching (i.e., feathers on - the tail) and a shaft that is shorter and/or more flexible, - and from arrows by the fact that they are not of the right - length to use with a normal bow. - [ Wikipedia, the free encyclopedia ] - - Against my foe I hurled a murderous dart. - He caught it in his hand -- I heard him laugh -- - I saw the thing that should have pierced his heart - Turn to a golden staff. - [ Gifts, by Mary Coleridge ] -demogorgon - A terrible deity, whose very name was capable of producing the - most horrible effects. He is first mentioned by the 4th-century - Christian writer, Lactantius, who in doing so broke with the - superstition that the very reference to Demogorgon by name - brought death and disaster. - [ Brewer's Concise Dictionary of Phrase and Fable ] - - Demogorgon, the prince of demons, wallows in filth and can - spread a quickly fatal illness to his victims while rending - them. He is a mighty spellcaster, and he can drain the life - of mortals with a touch of his tail. -# takes "major demon" when specifying '&' -demon -major demon - It is often very hard to discover what any given Demon looks - like, apart from a general impression of large size, huge - fangs, staring eyes, many limbs, and an odd color; but all - accounts agree that Demons are very powerful, very Magic (in - a nonhuman manner), and made of some substance that can squeeze - through a keyhole yet not be pierced with a Sword. This makes - them difficult to deal with, even on the rare occasions when - they are friendly. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -demonbane - Do not be deceived, Wormwood. Our cause is never more in danger - than when a human, no longer desiring, but still intending, to do - our Enemy's will, looks round upon a universe from which every - trace of Him seems to have vanished, and asks why he has been - forsaken, and still obeys. - [ The Screwtape Letters, by C.S. Lewis ] -dented pot - Here was a sight to beat all: a man in the prime of life rambling - barefoot down the wilderness road, dressed in raggedy pantaloons - sewn out of two meal sacks, a shirt so tattered and scrappish - that its owner had a proud choice of holes to stick his arms - through, and -- the crowning glory -- a hat in the exact - likeness of a tin mush pot, somewhat dented, but snugly fitted, - with the handle turned to one side, as if it were the very - latest and smartest of fashions. - [ Johnny Appleseed, by James Howard Kunstler ] -diamond - The hardest known mineral (with a hardness of 10 on Mohs' scale). - It is an allotropic form of pure carbon that has crystallized in - the cubic system, usually as octahedra or cubes, under great - pressure. - [ A Concise Dictionary of Physics ] - - The diamond, _adamas_ or _dyamas_, is a transparent stone, like - crystal, but having the colour of polished iron, but it cannot - be destroyed by iron, fire or any other means, unless it is - placed in the hot blood of a goat; with sharp pieces of diamond - other stones are engraved and polished. It is no greater than - a small nut. There are six kinds, however Adamant attracts - metal; it expels venom; it produces amber (and is efficacious - against empty fears and for those resisting spells). It is - found in India, in Greece and in Cyprus, where magicians make - use of it. It gives you courage; it averts apparitions; it - removes anger and quarrels; it heals the mad; it defends you - from your enemies. It should be set in gold or silver and worn - on the left arm. It is likewise found in Arabia. - [ The Aberdeen Bestiary, translated by Colin McLaren ] -dilithium* - The most famous and the first to be named of the imaginary - "minerals" of Star Trek is dilithium. ... Because of this - mineral's central role in the storyline, a whole mythology - surrounds it. It is, however, a naturally occurring substance - within the mythology, as there are various episodes that - make reference to the mining of dilithium deposits. ... - This name itself is imaginary and gives no real information on - the structure or make-up of this substance other than that this - version of the name implies a lithium and iron-bearing - aluminosilicate of some sort. That said, the real mineral that - most closely matches the descriptive elements of this name is - ferroholmquistite which is a dilithium triferrodiallosilicate. - If one goes on the premise that nature follows certain general - norms, then one could extrapolate that dilithium might have a - similar number of silicon atoms in its structure. - Keeping seven (i.e. hepto) ferrous irons and balancing the - oxygens would give a theoretical formula of Li2Fe7Al2Si8O27. - A mineral with this composition could theoretically exist, - although it is doubtful that it would possess the more fantastic - properties ascribed to dilithium. - [ The Mineralogy of Star Trek, by Jeffrey de Fourestier ] -dingo - A wolflike wild dog, Canis dingo, of Australia, having a - reddish- or yellowish-brown coat, believed to have been - introduced by the aborigines. - [ Webster's Encyclopedic Unabridged Dictionary - of the English Language ] -disenchanter - Ask not, what your magic can do to it. Ask what it can do - to your magic. -dispater - The Roman ruler of the underworld and fortune, similar to the - Greek Hades. Every hundred years, the Ludi Tarentini were - celebrated in his honor. The Gauls regarded Dis Pater as - their ancestor. The name is a contraction of the Latin Dives, - "the wealthy", Dives Pater, "the wealthy father", or "Fater - Wealth". It refers to the wealth of precious stone below the - earth. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -# 3.7; monster adapted from slash'em based on an AD&D Monster Manual entry; -# slash'em lacked a description so this entry has been created from scratch; -# the puma comparison is how the AD&D monster is described (except that -# that creature has six legs and two tentacles!) but the actual monster's -# behavior is substantially different -displacer beast - This strange creature appears to be mutant form of puma (aka - cougar or mountain lion) which lives in underground settings - rather than outdoor wilderness. It is capable of exchanging - positions with people or creatures in its path and is not - fooled by displaced images of others. -djinn* - The djinn are genies from the elemental plane of Air. There, - among their kind, they have their own societies. They are - sometimes encountered on earth and may even be summoned here - to perform some service for powerful wizards. The wizards - often leave them about for later service, safely tucked away - in a flask or lamp. Once in a while, such a tool is found by - a lucky rogue, and some djinn are known to be so grateful - when released that they might grant their rescuer a wish. -# takes "dog or other canine" when specifying 'd' -~hachi -~slasher -~sirius -*dog -pup* -*canine - A domestic animal, the _tame dog_ (_Canis familiaris_), of - which numerous breeds exist. The male is called a dog, - while the female is called a bitch. Because of its known - loyalty to man and gentleness with children, it is the - world's most popular domestic animal. It can easily be - trained to perform various tasks. -# typing "spellbook or a closed door" shouldn't yield this entry -~trap*door -~*spellbook* -*door -doorway - Through me you pass into the city of woe: - Through me you pass into eternal pain: - Through me among the people lost for aye. - Justice the founder of my fabric mov'd: - To rear me was the task of power divine, - Supremest wisdom, and primeval love. - Before me things create were none, save things - Eternal, and eternal I endure. - All hope abandon ye who enter here. - [ The Inferno, from The Divine Comedy of Dante Alighieri, - translated by H.F. Cary ] -doppelganger - "Then we can only give thanks that this is Antarctica, where - there is not one, single, solitary, living thing for it to - imitate, except these animals in camp." - - "Us," Blair giggled. "It can imitate us. Dogs can't make four - hundred miles to the sea; there's no food. There aren't any - skua gulls to imitate at this season. There aren't any - penguins this far inland. There's nothing that can reach the - sea from this point - except us. We've got brains. We can do - it. Don't you see - it's got to imitate us - it's got to be one - of us - that's the only way it can fly an airplane - fly a plane - for two hours, and rule - be - all Earth's inhabitants. A world - for the taking - if it imitates us! - [ Who Goes There?, by John W. Campbell ] - - Xander: Let go! I have to kill the demon bot! - Xander Double (grabbing the gun): Anya, get out of the way. - Buffy: Xander! - Xander Double: That's all right, Buffy. I have him. - Xander: No, Buffy, I'm me. Help me! - Anya: My gun, he's got my gun. - Riley: You own a gun? - Buffy: Xander, gun holding Xander, give it to me. - Anya: Buffy, which one's real? - Xander: I am. - Xander Double: No, _I_ am. - [ Buffy the Vampire Slayer, Episode 5.03, "The Replacement" ] -*dragon -*xoth - In the West the dragon was the natural enemy of man. Although - preferring to live in bleak and desolate regions, whenever it - was seen among men it left in its wake a trail of destruction - and disease. Yet any attempt to slay this beast was a perilous - undertaking. For the dragon's assailant had to contend - not only with clouds of sulphurous fumes pouring from its fire - breathing nostrils, but also with the thrashings of its tail, - the most deadly part of its serpent-like body. - [ Mythical Beasts, by Deirdre Headon (The Leprechaun Library) ] - - "One whom the dragons will speak with," he said, "that is a - dragonlord, or at least that is the center of the matter. It's - not a trick of mastering the dragons, as most people think. - Dragons have no masters. The question is always the same, with - a dragon: will he talk to you or will he eat you? If you can - count upon his doing the former, and not doing the latter, why - then you're a dragonlord." - [ The Tombs of Atuan, by Ursula K. Le Guin ] -*dragon*scale* - Stephen had argued, and the expert armorer had grudgingly - admitted, that dragonscale shield or armor, provided it proved - feasible to make at all, ought to offer some real, practical - advantages over any metal breastplate or shield -- gram for - gram of weight, such a defense would probably be a lot - tougher and more protective than any human smiths could - make of steel. - [ The Last Book of Swords: Shieldbreaker's Story, - by Fred Saberhagen ] -dragonbane - And now the youth - was to enter the line of battle with his lord, - his first time to be tested as a fighter. - His spirit did not break and the ancestral blade - would keep its edge, as the dragon discovered - as soon as they came together in combat. - [ Beowulf, translated by Seamus Heaney ] -*drum* - Many travelers have seen the drums of the great apes, and - some have heard the sounds of their beating and the noise of - the wild, weird revelry of these first lords of the jungle, - but Tarzan, Lord Greystoke, is, doubtless, the only human - being who ever joined in the fierce, mad, intoxicating revel - of the Dum-Dum. - [ Tarzan of the Apes, by Edgar Rice Burroughs ] -dunce* - A dunce cap, also variously known as a dunce hat, dunce's - cap, or dunce's hat, is a tall conical hat. In popular - culture, it is typically made of paper and often marked with - a D, and given to schoolchildren to wear as punishment for - being stupid or lazy. While this is now a rare practice, - it is frequently depicted in popular culture such as - children's cartoons. - [ Wikipedia, the free encyclopedia ] -dungeon* - At once as far as Angels kenn he views - The dismal Situation waste and wilde, - A Dungeon horrible, on all sides round - As one great Furnace flam'd, yet from those flames - No light, but rather darkness visible - Serv'd only to discover sights of woe, - Regions of sorrow, doleful shades, where peace - And rest can never dwell, hope never comes - That comes to all; but torture without end - Still urges, and a fiery Deluge, fed - With ever-burning Sulphur unconsum'd: - Such place Eternal Justice had prepar'd - For those rebellious, here their Prison ordain'd - In utter darkness, and their portion set - As far remov'd from God and light of Heav'n - As from the Center thrice to th' utmost Pole. - [ Paradise Lost, by John Milton ] -~dwarf ??m* -~dwar* cloak -#~dwar* cave*man -dwarf* - Dwarfs have faces like men (ugly men, with wrinkled, leathery - skins), but are generally either flat-footed, duck-footed, or - have feet pointing backwards. They are of the earth, earthy, - living in the darkest of caverns and venturing forth only - with the cloaks by which they can make themselves invisible, - and others disguised as toads. Miners often come across them, - and sometimes establish reasonably close relations with them. - ... The miners of Cornwall were always delighted to hear a - bucca busily mining away, for all dwarfs have an infallible - nose for precious metals. - Among other things, dwarfs are rightly valued for their skill - as blacksmiths and jewellers: they made Odin his famous spear - Gungnir, and Thor his hammer; for Freya they designed a - magnificent necklace, and for Frey a golden boar. And in their - spare time they are excellent bakers. Ironically, despite - their odd feet, they are particularly fond of dancing. They - can also see into the future, and consequently are excellent - meteorologists. They can be free with presents to people - they like, and a dwarvish gift is likely to turn to gold in - the hand. But on the whole they are a snappish lot. - [ The Immortals, by Derek and Julia Parker ] -# accept "dwarfish" and "dwarvish" -dwar* cloak -hooded cloak - That's how they all came to start, jogging off from the inn one - fine morning just before May, on laden ponies; and Bilbo was - wearing a dark-green hood (a little weather-stained) and a - dark-green cloak borrowed from Dwalin. They were too large for - him, and he looked rather comic. - [ The Hobbit, by J.R.R. Tolkien ] -earendil -elwing - In after days, when because of the triumph of Morgoth Elves and - Men became estranged, as he most wished, those of the Elven-race - that lived still in Middle-earth waned and faded, and Men usurped - the sunlight. Then the Quendi wandered in the lonely places of the - great lands and the isles, and took to the moonlight and the - starlight, and to the woods and the caves, becoming as shadows - and memories, save those who ever and anon set sail into the West - and vanished from Middle-earth. But in the dawn of years Elves - and Men were allies and held themselves akin, and there were some - among Men that learned the wisdom of the Eldar, and became great - and valiant among the captains of the Noldor. And in the glory - and beauty of the Elves, and in their fate, full share had the - offspring of elf and mortal, Earendil, and Elwing, and Elrond - their child. - [ The Silmarillion, by J.R.R. Tolkien ] -eel -giant eel - The behaviour of eels in fresh water extends the air of - mystery surrounding them. They move freely into muddy, silty - bottoms of lakes, lying buried in the daylight hours in summer. - [...] Eels are voracious carnivores, feeding mainly at - night and consuming a wide variety of fishes and invertebrate - creatures. Contrary to earlier thinking, eels seek living - rather than dead creatures and are not habitual eaters of - carrion. - [ Freshwater Fishes of Canada, by Scott and Crossman ] -egg - But I asked why not keep it and let the hen sit on it till it - hatched, and then we could see what would come out of it. - "Nothing good, I'm certain of that," Mom said. "It would - probably be something horrible. But just remember, if it's a - crocodile or a dragon or something like that, I won't have it - in my house for one minute." - [ The Enormous Egg, by Oliver Butterworth ] -elbereth - ... Even as they stepped over the threshold a single clear - voice rose in song. - - A Elbereth Gilthoniel, - silivren penna miriel - o menel aglar elenath! - Na-chaered palan-diriel - o galadhremmin ennorath, - Fanuilos, le linnathon - nef aear, si nef aearon! - - Frodo halted for a moment, looking back. Elrond was in his - chair and the fire was on his face like summer-light upon the - trees. Near him sat the Lady Arwen. [...] - He stood still enchanted, while the sweet syllables of the - elvish song fell like clear jewels of blended word and melody. - "It is a song to Elbereth," said Bilbo. "They will sing that, - and other songs of the Blessed Realm, many times tonight. - Come on!" - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -electric eel - South-American fish (_Gymnotus electricus_), living in fresh - water. Shaped like a serpent, it can grow up to 2 metres. - This eel is known for its electrical organ which enables it - to paralyse creatures up to the size of a horse. - [ Van Dale's Groot Woordenboek der Nederlandse Taal ] -*elemental - Elementals are manifestations of the basic nature of the - universe. There are four known forms of elementals: air, fire, - water, and earth. Some mystics have postulated the necessity - for a fifth type, the spirit elemental, but none have ever - been encountered, at least on this plane of existence. -~human or elf* -~elf ??m* -*elf* -elvenking -elvenqueen -elven monarch - The Elves sat round the fire upon the grass or upon the sawn - rings of old trunks. Some went to and fro bearing cups and - pouring drinks; others brought food on heaped plates and - dishes. - - "This is poor fare," they said to the hobbits; "for we are - lodging in the greenwood far from our halls. If ever you are - our guests at home, we will treat you better." - "It seems to me good enough for a birthday-party," said Frodo. - Pippin afterwards recalled little of either food or drink, for - his mind was filled with the light upon the elf-faces, and the - sound of voices so various and so beautiful that he felt in a - waking dream. [...] - - Sam could never describe in words, nor picture clearly to - himself, what he felt or thought that night, though it remained - in his memory as one of the chief events of his life. The - nearest he ever got was to say: "Well, sir, if I could grow - apples like that, I would call myself a gardener. But it was - the singing that went to my heart, if you know what I mean." - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -elven cloak - The Elves next unwrapped and gave to each of the Company the - clothes they had brought. For each they had provided a hood - and cloak, made according to his size, of the light but warm - silken stuff that the Galadrim wove. It was hard to say of - what colour they were: grey with the hue of twilight under - the trees they seemed to be; and yet if they were moved, or - set in another light, they were green as shadowed leaves, or - brown as fallow fields by night, dusk-silver as water under - the stars. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -emerald - 'Put off that mask of burning gold - With emerald eyes.' - 'O no, my dear, you make so bold - To find if hearts be wild and wise, - And yet not cold.' - - 'I would but find what's there to find, - Love or deceit.' - 'It was the mask engaged your mind, - And after set your heart to beat, - Not what's behind.' - - 'But lest you are my enemy, - I must enquire.' - 'O no, my dear, let all that be; - What matter, so there is but fire - In you, in me?' - [ The Mask, by W.B. Yeats ] -engrav* -A.S* - Presently we reached a place where the beach narrowed; the sea - almost came up to the foot of the cliffs, leaving a passage no - wider than a couple of yards. Between two projecting rocks we - caught sight of the entrance to a dark tunnel. - There, on a slab of granite, appeared two mysterious letters, - half eaten away by time -- the two initials of the bold, - adventurous traveller: - - A.S. - - 'A.S.,' cried my uncle. 'Arne Saknussemm! Arne Saknussemm again!' - - [...] at the sight of those two letters, carved there three - hundred years before, I stood in utter stupefaction. Not - only was the signature of the learned alchemist legible on - the rock, but I held in my hand the dagger which had traced it. - Without showing the most appalling bad faith, I could no longer - doubt the existence of the traveller and the reality of his - journey. - [ Journey to the Centre of the Earth, by Jules Verne, - translated by Robert Baldick ] -*epidaurus - The asclepieion at Epidaurus was the most celebrated healing - center of the Classical world, the place where ill people went - in the hope of being cured. To find out the right cure for - their ailments, they spent a night in the enkoimitiria, a big - sleeping hall. In their dreams, the god himself (Asclepius) - would advise them what they had to do to regain their health. - There are also mineral springs in the vicinity which may have - been used in healing. - [ Wikipedia, the free encyclopedia ] -erinys -erinyes - These female-seeming devils named after the Furies of mythology - attack hand to hand and poison their unwary victims as well. -ettin - The two-headed giant, or ettin, is a vicious and unpredictable - hunter that stalks by night and eats any meat it can catch. -excalibur - At first only its tip was visible, but then it rose, straight, - proud, all that was noble and great and wondrous. The tip of - the blade pointed toward the moon, as if it would cleave it - in two. The blade itself gleamed like a beacon in the night. - There was no light source for the sword to be reflecting - from, for the moon had darted behind a cloud in fear. The - sword was glowing from the intensity of its strength and - power and knowledge that it was justice incarnate, and that - after a slumber of uncounted years its time had again come. - After the blade broke the surface, the hilt was visible, and - holding the sword was a single strong, yet feminine hand, - wearing several rings that bore jewels sparkling with the - blue-green color of the ocean. - [ Knight Life, by Peter David ] -expensive camera - There was a time when Rincewind had quite liked the iconoscope. - He believed, against all experience, that the world was - fundamentally understandable, and that if he could only equip - himself with the right mental toolbox he could take the back off - and see how it worked. He was, of course, dead wrong. The - iconoscope didn't take pictures by letting light fall onto - specially treated paper, as he had surmised, but by the far - simpler method of imprisoning a small demon with a good eye for - colour and a speedy hand with a paintbrush. He had been very - upset to find that out. - [ The Light Fantastic, by Terry Pratchett ] -eye of the aethiopica - This is a powerful amulet of ESP. In addition to its standard - powers, it regenerates the energy of anyone who carries - it, allowing them to cast spells more often. It also reduces - any spell damage to the person who carries it by half, and - protects from magic missiles. Finally, when invoked it has - the power to instantly open a portal to any other area of the - dungeon, allowing its invoker to travel quickly between - areas. -# note: The Eyes of the Overworld is the title of Jack Vance's sequel -# to The Dying Earth and in it the 'Eyes' were separate "cusps" that -# needed to be worn like contact lenses, one on each eyeball. Wearing -# just one and attempting to look with both eyes caused instant stun. -# And when wearing two you couldn't see normal world, only a projection -# of it that had similar topology but where everything was "better". -# NetHack simplifies things: a pair of lenses is a single item like -# spectacles (eyeglasses), and the effect of wearing these lenses has -# been changed to be useful to game play (Xray vision). [The quote is -# not derived from the book.] -eyes of the overworld - The Eyes of the Overworld is a rather obscure artifact. - These magical lenses push the wearer's view sense into the - "overworld" -- another name for a segment of the Astral Plane. - Usually, there is nothing to be seen. However, the wearer - is also able to look back and see the area around herself, - much like looking on a map. Why anyone would want to ... -fedora - Some hats can only be worn if you're willing to be jaunty, to set - them at an angle and to walk beneath them with a spring in your - stride as if you're only a step away from dancing. They demand a - lot of you. - [ Anansi Boys, by Neil Gaiman ] -figurine* - Then it appeared in Paris at just about the time that Paris - was full of Carlists who had to get out of Spain. One of - them must have brought it with him, but, whoever he was, it's - likely he knew nothing about its real value. It had been -- - no doubt as a precaution during the Carlist trouble in Spain - -- painted or enameled over to look like nothing more than a - fairly interesting black statuette. And in that disguise, - sir, it was, you might say, kicked around Paris for seventy - years by private owners and dealers too stupid to see what - it was under the skin. - [ The Maltese Falcon, by Dashiell Hammett ] -fire trap - 'Let him be for a while,' said Cohen. 'I reckon the fish - disagreed with him.' - 'Don't see why,' said Truckle. 'I pulled him out before it'd - hardly chewed him. And he must've dried out nicely in that - corridor. You know, the one where the flames shot up out of - the floor unexpectedly.' - 'I reckon our bard wasn't expecting flames to shoot out of - the floor unexpectedly,' said Cohen. - Truckle shrugged theatrically. '_Well_, if you're not going - to expect unexpected flames, what's the point of going - _anywhere_?' - [ The Last Hero, by Terry Pratchett ] -f* brand - Some say the world will end in fire, - Some say in ice. - From what I've tasted of desire - I hold with those who favor fire. - But if it had to perish twice, - I think I know enough of hate - To say that for destruction ice - Is also great - And would suffice. - [ Fire and Ice, by Robert Frost ] -flesh golem - With an anxiety that almost amounted to agony, I collected - the instruments of life around me, that I might infuse a spark - of being into the lifeless thing that lay at my feet. It was - already one in the morning; the rain pattered dismally against - the panes, and my candle was nearly burnt out, when, by the - glimmer of the half-extinguished light, I saw the dull yellow - eye of the creature open; it breathed hard, and a convulsive - motion agitated its limbs. - - How can I describe my emotions at this catastrophe, or how - delineate the wretch whom with such infinite pains and care I - had endeavoured to form? His limbs were in proportion, and I - had selected his features as beautiful. Beautiful!--Great God! - His yellow skin scarcely covered the work of muscles and - arteries beneath; his hair was of a lustrous black, and - flowing; his teeth of a pearly whiteness; but these luxuriances - only formed a more horrid contrast with his watery eyes, that - seemed almost of the same colour as the dun white sockets in - which they were set, his shrivelled complexion and straight - black lips. - [ Frankenstein, by Mary Wollstonecraft Shelley ] -flint* - An emerald is as green as grass; - A ruby red as blood; - A sapphire shines as blue as heaven; - A flint lies in the mud. - - A diamond is a brilliant stone, - To catch the world's desire; - An opal holds a fiery spark; - But a flint holds fire. - [ Precious Stones, by Christina Giorgina Rossetti ] -floating eye - Floating eyes, not surprisingly, are large, floating eyeballs - which drift about the dungeon. Though not dangerous in and - of themselves, their power to paralyse those who gaze at - their large eye in combat is widely feared. Many are the - tales of those who struck a floating eye, were paralysed by - its mystic powers, and then nibbled to death by some other - creature that lurked around nearby. -*flute - With this thou canst do mighty deeds - And change men's passions for thy needs: - A man's despair with joy allay, - Turn bachelors old to lovers gay. - [ The Magic Flute, by Wolfgang Amadeus Mozart ] -# also takes fog/vapor cloud -fog* cloud - The fog comes - on little cat feet. - - It sits looking - over harbor and city - on silent haunches - and then moves on. - [ Fog, by Carl Sandburg ] -# includes "food detection" and "detect food", which might not be the best -*food* - The little girl stood on tip-toe and picked one of the nicest - and biggest lunch-boxes, and then she sat down upon the ground - and eagerly opened it. Inside she found, nicely wrapped in - white papers, a ham sandwich, a piece of sponge-cake, a pickle, - a slice of new cheese and an apple. Each thing had a separate - stem, and so had to be picked off the side of the box; but - Dorothy found them all to be delicious, and she ate every bit - of luncheon in the box before she had finished. - [ Ozma of Oz, by L. Frank Baum ] -fortune cookie - Nemesis cracked another cookie and wrinkled her nose. "_You will - have great fortune when you least expect it,_" she read. "That's - exactly the sort of nonsense I hate. Someone opens a cookie, and - suddenly they have a prophecy that they'll be rich! I blame that - tramp Tyche. Always dispensing good luck to people who don't - deserve it!" - Leo looked at the mound of broken cookies. "Uh ... you know those - aren't real prophecies, right? They're just stuffed into the - cookies at some factory--" - "Don't try to excuse it!" Nemesis snapped. "It's just like Tyche - to get people's hopes up. No, no. I _must_ counter her." Nemesis - flicked a finger over the slip of paper, and the letters changed - to red. "_You will die painfully when you most expect it._ - There! Much better." - [ The Mark of Athena, by Rick Riordan ] -fountain - Rest! This little Fountain runs - Thus for aye: -- It never stays - For the look of summer suns, - Nor the cold of winter days. - Whose'er shall wander near, - When the Syrian heat is worst, - Let him hither come, nor fear - Lest he may not slake his thirst: - He will find this little river - Running still, as bright as ever. - Let him drink, and onward hie, - Bearing but in thought, that I, - Erotas, bade the Naiad fall, - And thank the great god Pan for all! - [ For a Fountain, by Bryan Waller Procter ] -fox - One hot summer's day a Fox was strolling through an orchard - till he came to a bunch of Grapes just ripening on a vine - which had been trained over a lofty branch. "Just the thing - to quench my thirst," quoth he. Drawing back a few paces, he - took a run and a jump, and just missed the bunch. Turning - round again with a One, Two, Three, he jumped up, but with - no greater success. Again and again he tried after the - tempting morsel, but at last had to give it up, and walked - away with his nose in the air, saying: "I am sure they are - sour." - [ Aesop's Fables ] -fruit -fruitname - They say this is edible. Some adventurers have strange tastes. -*fung* - Fungi, division of simple plants that lack chlorophyll, true - stems, roots, and leaves. Unlike algae, fungi cannot - photosynthesize, and live as parasites or saprophytes. The - division comprises the slime molds and true fungi. True - fungi are multicellular (with the exception of yeasts); the - body of most true fungi consists of slender cottony - filaments, or hyphae. All fungi are capable of asexual - reproduction by cell division, budding, fragmentation, or - spores. Those that reproduce sexually alternate a sexual - generation (gametophyte) with a spore-producing one. The - four classes of true fungi are the algaelike fungi (e.g., - black bread mold and downy mildew), sac fungi (e.g., yeasts, - powdery mildews, truffles, and blue and green molds such as - Penicillium), basidium fungi (e.g., mushrooms and puffballs) - and imperfect fungi (e.g., species that cause athlete's foot - and ringworm). Fungi help decompose organic matter (important - in soil renewal); are valuable as a source of antibiotics, - vitamins, and various chemicals; and for their role in - fermentation, e.g., in bread and alcoholic beverage - production. - [ The Concise Columbia Encyclopedia ] -*gargoyle - And so it came to pass that while Man ruled on Earth, the - gargoyles waited, lurking, hidden from the light. Reborn - every 600 years in Man's reckoning of time, the gargoyles - joined battle against Man to gain dominion over the Earth. - - In each coming, the gargoyles were nearly destroyed by Men - who flourished in greater numbers. Now it has been so many - hundreds of years that it seems the ancient statues and - paintings of gargoyles are just products of Man's - imagination. In this year, with Man's thoughts turned toward - the many ills he has brought among himself, Man has forgotten - his most ancient adversary, the gargoyles. - [ Excerpt from the opening narration to the movie - _Gargoyles_, written by Stephen and Elinor Karpf ] -*garlic - 1 November - All day long we have travelled, and at a good - speed. The horses seem to know that they are being kindly - treated, for they go willingly their full stage at best - speed. We have now had so many changes and find the same - thing so constantly that we are encouraged to think that the - journey will be an easy one. Dr. Van Helsing is laconic, he - tells the farmers that he is hurrying to Bistritz, and pays - them well to make the exchange of horses. We get hot soup, - or coffee, or tea, and off we go. It is a lovely country. - Full of beauties of all imaginable kinds, and the people are - brave, and strong, and simple, and seem full of nice - qualities. They are very, very superstitious. In the first - house where we stopped, when the woman who served us saw the - scar on my forehead, she crossed herself and put out two - fingers towards me, to keep off the evil eye. I believe they - went to the trouble of putting an extra amount of garlic into - our food, and I can't abide garlic. Ever since then I have - taken care not to take off my hat or veil, and so have - escaped their suspicions. - [ Dracula, by Bram Stoker ] -# gas spore -- see *spore -gehenn* -*h?nnom -hell - "Place of Torment." The Valley of Hinnom, south-west of - Jerusalem, where Solomon, king of Israel, built "a high place", - or place of worship, for the gods Chemosh and Moloch. The - valley came to be regarded as a place of abomination because - some of the Israelites sacrificed their children to Moloch - there. In a later period it was made a refuse dump and - perpetual fires were maintained there to prevent pestilence. - Thus, in the New Testament, Gehenna became synonymous with hell. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -gelatinous cube - Despite its popularity (or perhaps because of it), the - gelatinous cube is also widely known as one of the sillier - role-playing monsters. It is something of a commentary on the - ubiquity of treasure-laden dungeons in the Dungeons & Dragons - universe, as the cube is a creature specifically adapted to a - dungeon ecosystem. 10 feet to the side, it travels through - standard 10-foot by 10-foot dungeon corridors, cleaning up - debris and redistributing treasure by excreting indigestible - metal items. - [ Wikipedia, the free encyclopedia ] -*gem -gem or rock - The difference between false memories and true ones is the - same as for jewels: it is always the false ones that look the - most real, the most brilliant. - [ Salvador Dali ] -# 3.7; monster derived from slash'em which lacked a description so this -# entry has been created from scratch -genetic engineer - These very odd people have mastered the ability to insert gene - sequences from one organism into another, usually triggering - immediate mutations in the subject. Far from needing an - elaborate laboratory to accomplish such abominations, a mere - touch seems to be all that is necessary. -geryon - Forthwith that image vile of fraud appear'd, - His head and upper part expos'd on land, - But laid not on the shore his bestial train. - His face the semblance of a just man's wore, - So kind and gracious was its outward cheer; - The rest was serpent all: two shaggy claws - Reach'd to the armpits, and the back and breast, - And either side, were painted o'er with nodes - And orbits. Colours variegated more - Nor Turks nor Tartars e'er on cloth of state - With interchangeable embroidery wove, - Nor spread Arachne o'er her curious loom. - As ofttimes a light skiff, moor'd to the shore, - Stands part in water, part upon the land; - Or, as where dwells the greedy German boor, - The beaver settles watching for his prey; - So on the rim, that fenc'd the sand with rock, - Sat perch'd the fiend of evil. In the void - Glancing, his tail upturn'd its venomous fork, - With sting like scorpion's arm'd. Then thus my guide: - "Now need our way must turn few steps apart, - Far as to that ill beast, who couches there." - [ The Inferno, from The Divine Comedy of Dante Alighieri, - translated by H.F. Cary ] -*ghost -valley of *dea* - And now the souls of the dead who had gone below came swarming - up from Erebus -- fresh brides, unmarried youths, old men - with life's long suffering behind them, tender young girls - still nursing this first anguish in their hearts, and a great - throng of warriors killed in battle, their spear-wounds gaping - yet and all their armour stained with blood. From this - multitude of souls, as they fluttered to and fro by the - trench, there came a moaning that was horrible to hear. - Panic drained the blood from my cheeks. - [ The Odyssey, (chapter Lambda), by Homer ] -ghoul - The forces of the gloom know each other, and are strangely - balanced by each other. Teeth and claws fear what they cannot - grasp. Blood-drinking bestiality, voracious appetites, hunger - in search of prey, the armed instincts of nails and jaws which - have for source and aim the belly, glare and smell out - uneasily the impassive spectral forms straying beneath a - shroud, erect in its vague and shuddering robe, and which seem - to them to live with a dead and terrible life. These - brutalities, which are only matter, entertain a confused fear - of having to deal with the immense obscurity condensed into an - unknown being. A black figure barring the way stops the wild - beast short. That which emerges from the cemetery intimidates - and disconcerts that which emerges from the cave; the - ferocious fear the sinister; wolves recoil when they encounter - a ghoul. - [ Les Miserables, by Victor Hugo ] -*giant -giant humanoid - Giants have always walked the earth, though they are rare in - these times. They range in size from little over nine feet - to a towering twenty feet or more. The larger ones use huge - boulders as weapons, hurling them over large distances. All - types of giants share a love for men - roasted, boiled, or - fried. Their table manners are legendary. -*gloves -gauntlets* - And her old Uncle William used to say a lady is known by her - shoes and her gloves. - [ Mrs. Dalloway, by Virginia Woolf ] -# note: "gnomish wizard" is a monster -~gnome ??m* -#~gnom* cave*man -gnome* -gnomish wizard - ... And then a gnome came by, carrying a bundle, an old - fellow three times as large as an imp and wearing clothes of - a sort, especially a hat. And he was clearly just as frightened - as the imps though he could not go so fast. Ramon Alonzo - saw that there must be some great trouble that was vexing - magical things; and, since gnomes speak the language of men, and - will answer if spoken to gently, he raised his hat, and asked - of the gnome his name. The gnome did not stop his hasty - shuffle a moment as he answered 'Alaraba' and grabbed the rim - of his hat but forgot to doff it. - 'What is the trouble, Alaraba?' said Ramon Alonzo. - 'White magic. Run!' said the gnome .. - [ The Charwoman's Shadow, by Lord Dunsany ] - - "Muggles have garden gnomes, too, you know," Harry told Ron as - they crossed the lawn. - "Yeah, I've seen those things they think are gnomes," said Ron, - bent double with his head in a peony bush, "like fat little - Santa Clauses with fishing rods..." - There was a violent scuffling noise, the peony bush shuddered, - and Ron straightened up. "This is a gnome," he said grimly. - "Geroff me! Gerroff me!" squealed the gnome. - It was certainly nothing like Santa Claus. It was small and - leathery looking, with a large, knobby, bald head exactly like - a potato. Ron held it at arm's length as it kicked out at him - with its horny little feet; he grasped it around the ankles - and turned it upside down. - [ Harry Potter and the Chamber of Secrets, by J.K. Rowling ] -goblin - Now goblins are cruel, wicked, and bad-hearted. They make - no beautiful things, but they make many clever ones. They - can tunnel and mine as well as any but the most skilled - dwarves, when they take the trouble, though they are usually - untidy and dirty. Hammers, axes, swords, daggers, pickaxes, - tongs, and also instruments of torture, they make very well, - or get other people to make to their design, prisoners and - slaves that have to work till they die for want of air and - light. - [ The Hobbit, by J.R.R. Tolkien ] -god -goddess - Goddesses and Gods operate in ones, threesomes, or whole - pantheons of nine or more (see Religion). Most of them claim - to have made the world, and this is indeed a likely claim in - the case of threesomes or pantheons: Fantasyland does have - the air of having been made by a committee. But all Goddesses - and Gods, whether they say they made the world or not, have - very detailed short-term plans for it which they are determined - to carry out. Consequently they tend to push people into the - required actions by the use of coincidence or Prophecy, or just - by narrowing down your available choices of what to do next: - if a deity is pushing you, things will go miserably badly until - there is only one choice left to you. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -gold -gold piece - A metal of characteristic yellow colour, the most precious - metal used as a common commercial medium of exchange. Symbol, - Au; at. no. 79; at. wt. 197.2. It is the most malleable - and ductile of all metals, and very heavy (sp. gr., 19.3). - It is quite unalterable by heat, moisture, and most - corrosive agents, and therefore well suited for its use in - coin and jewelry. - [ Webster's New International Dictionary - of the English Language, Second Edition ] -gold golem - The bellows he set away from the fire, and gathered all the tools - wherewith he wrought into a silver chest; and with a sponge wiped - he his face and his two hands withal, and his mighty neck and - shaggy breast, and put upon him a tunic, and grasped a stout staff, - and went forth halting; but there moved swiftly to support their - lord handmaidens wrought of gold in the semblance of living maids. - In them is understanding in their hearts, and in them speech and - strength, and they know cunning handiwork by gift of the immortal - gods. - [ The Iliad, by Homer ] -~flesh golem -~gold golem -~straw golem -~wood golem -~clay golem -*golem - "The original story harks back, so they say, to the sixteenth - century. Using long-lost formulas from the Kabbala, a rabbi is - said to have made an artificial man -- the so-called Golem -- to - help ring the bells in the Synagogue and for all kinds of other - menial work. - "But he hadn't made a full man, and it was animated by some sort - of vegetable half-life. What life it had, too, so the story - runs, was only derived from the magic charm placed behind its - teeth each day, that drew down to itself what was known as the - `free sidereal strength of the universe.' - "One evening, before evening prayers, the rabbi forgot to take - the charm out of the Golem's mouth, and it fell into a frenzy. - It raged through the dark streets, smashing everything in its - path, until the rabbi caught up with it, removed the charm, and - destroyed it. Then the Golem collapsed, lifeless. All that was - left of it was a small clay image, which you can still see in - the Old Synagogue." ... - [ The Golem, by Gustav Meyrink ] -grave - "Who'd care to dig 'em," said the old, old man, - "Those six feet marked in chalk? - Much I talk, more I walk; - Time I were buried," said the old, old man. - [ Three Songs to the Same Tune, by W.B. Yeats ] -grayswandir - Why had I been wearing Grayswandir? Would another weapon have - affected a Logrus-ghost as strongly? Had it really been my - father, then, who had brought me here? And had he felt I might - need the extra edge his weapon could provide? I wanted to - think so, to believe that he had been more than a Pattern-ghost. - [ Knight of Shadows, by Roger Zelazny ] -*grease - ANOINT, v.t. To grease a king or other great functionary - already sufficiently slippery. - [ The Devil's Dictionary, by Ambrose Bierce ] -gremlin - The gremlin is a highly intelligent and completely evil - creature. It lives to torment other creatures and will go - to great lengths to inflict pain or cause injury. - [] - - Suddenly, Wilson thought about war, about the newspaper - stories which recounted the alleged existence of creatures in - the sky who plagued the Allied pilots in their duties. They - called them gremlins, he remembered. Were there, actually, - such beings? Did they, truly, exist up here, never falling, - riding on the wind, apparently of bulk and weight, yet - impervious to gravity? - He was thinking that when the man appeared again. - [ Nightmare at 20,000 Feet, by Richard Matheson ] -grid bug - These electronically based creatures are not native to this - universe. They appear to come from a world whose laws of - motion are radically different from ours. - [] - - Tron looked to his mate and pilot. "I'm going to check on - the beam connection, Yori. You two can keep a watch out for - grid bugs." Tron paced forward along the slender catwalk - that still seemed awfully insubstantial to Flynn, though he - knew it to be amazingly sturdy. He gazed after Tron, asking - himself what in the world a grid bug was, and hoping that the - beam connection -- to which he'd given no thought whatsoever - until this moment -- was healthy and sound." - [ Tron, novel by Brian Daley, story by Steven Lisberger ] -gunyoki - The samurai's last meal before battle. It was usually made - up of cooked chestnuts, dried seaweed, and sake. -hachi - Hachi was a dog that went with his master, a professor, to - the Shibuya train station every morning. In the afternoon, - when his master was to return from work Hachi would be there - waiting. One day his master died at the office, and did not - return. For over ten years Hachi returned to the station - every afternoon to wait for his master. When Hachi died a - statue was erected on the station platform in his honor. It - is said to bring you luck if you touch his statue. -hallucinat* -potion of hallucination - All at once, and without further warning, my reason forsook me - altogether, and I started from Fr. Moffitt's house to go to my - boarding place. The sidewalks were to me one mass of living, - moving, howling, and ferocious animals. Bears, lions, tigers, - wolves, jaguars, leopards, pumas -- all wild beasts of all climes - -- were frothing at the mouth around me and striving to get to me. - Recollect that while all this was hallucination, it was just as - real as if it had been an undeniable and awful reality. - [ Fifteen Years in Hell, by Luther Benson ] -*harp - A triangular stringed instrument, often Magic. Even when not - Magic, a Harp is surprisingly portable and tough and can be - carried everywhere on the back of the Bard or Harper in all - weathers. A Harp seldom goes out of tune and never warps. - Its strings break only in very rare instances, usually - because the Harper is sulking or crossed in love. This is - just as well as no one seems to make or sell spare strings. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] - - After breakfast was over, the ogre called out: "Wife, wife, - bring me my golden harp." So she brought it and put it on - the table before him. Then he said: "Sing!" and the golden - harp sang most beautifully. And it went on singing till the - ogre fell asleep, and commenced to snore like thunder. - Then Jack lifted up the copper-lid very quietly and got down - like a mouse and crept on hands and knees till he came to the - table, when up he crawled, caught hold of the golden harp and - dashed with it towards the door. But the harp called out - quite loud: "Master! Master!" and the ogre woke up just in - time to see Jack running off with his harp. - [ Jack and the Beanstalk, from English Fairy Tales, - by Joseph Jacobs ] -hawaiian*shirt - 'One of the things he can't do, he can't ride a horse,' he - said. Then he stiffened as if sandbagged by a sudden - recollection, gave a small yelp of terror and dashed into - the gloom. When he returned, the being called Twoflower was - hanging limply over his shoulder. It was small and skinny, - and dressed very oddly in a pair of knee-length britches and - a shirt in such a violent and vivid conflict of colours that - the Weasel's fastidious eye was offended even in the half-light. - [ The Colour of Magic, by Terry Pratchett ] -healer -* healer -attendant -doctor -physician - I swear by Apollo the physician, and Aesculapius, and Health, - and All-heal, and all the gods and goddesses, that, according - to my ability and judgment, I will keep this Oath and this - stipulation -- to reckon him who taught me this Art equally dear - to me as my parents, to share my substance with him, and relieve - his necessities if required; to look upon his offspring in the - same footing as my own brothers, and to teach them this art, if - they shall wish to learn it, without fee or stipulation; and - that by precept, lecture, and every other mode of instruction, - I will impart a knowledge of the Art to my own sons, and those - of my teachers, and to disciples bound by a stipulation and oath - according to the law of medicine, but to none others. I will - follow that system of regimen which, according to my ability and - judgment, I consider for the benefit of my patients, and abstain - from whatever is deleterious and mischievous. [...] - [ Hippocrates' Oath, translated by Francis Adams ] - - PHYSICIAN, n. One upon whom we set our hopes when ill and our - dogs when well. - [ The Devil's Dictionary, by Ambrose Bierce ] -heart of ahriman - The other three drew in their breath sharply, and the dark, - powerful man who stood at the head of the sarcophagus whispered: - "The Heart of Ahriman!" The other lifted a quick hand - for silence. Somewhere a dog began howling dolefully, and a - stealthy step padded outside the barred and bolted door. ... - But none looked aside from the mummy case over which the man - in the ermine-trimmed robe was now moving the great flaming - jewel, while he muttered an incantation that was old when - Atlantis sank. The glare of the gem dazzled their eyes, so - that they could not be sure what they saw; but with a - splintering crash, the carven lid of the sarcophagus burst - outward as if from some irresistible pressure applied from - within and the four men, bending eagerly forward, saw the - occupant -- a huddled, withered, wizened shape, with dried - brown limbs like dead wood showing through moldering bandages. - "Bring that thing back?" muttered the small dark man who - stood on the right, with a short, sardonic laugh. "It is - ready to crumble at a touch. We are fools ---" - [ Conan the Conqueror, by Robert E. Howard ] -hell hound* - But suddenly they started forward in a rigid, fixed stare, - and his lips parted in amazement. At the same instant Lestrade - gave a yell of terror and threw himself face downward upon the - ground. I sprang to my feet, my inert hand grasping my pistol, - my mind paralyzed by the dreadful shape which had sprung out - upon us from the shadows of the fog. A hound it was, an - enormous coal-black hound, but not such a hound as mortal eyes - have ever seen. Fire burst from its open mouth, its eyes - glowed with a smouldering glare, its muzzle and hackles and - dewlap were outlined in flickering flame. Never in the - delirious dream of a disordered brain could anything more - savage, more appalling, more hellish be conceived than that - dark form and savage face which broke upon us out of the wall - of fog. - [ The Hound of the Baskervilles, by Sir Arthur Conan Doyle ] -# note: nethack's helm of brilliance got changed to crystal -helm of brilliance - A helm he set on his head, high of steel; thereon was many - gemstone, all encompassed with gold; it was Uther's, the noble - king's; it was named Goswhit, each other unlike. - [ Layamon's Brut, translated by Sir Frederic Madden, K.H. ] -hermes - Messenger and herald of the Olympians. Being required to do - a great deal of travelling and speaking in public, he became - the god of eloquence, travellers, merchants, and thieves. He - was one of the most energetic of the Greek gods, a - Machiavellian character full of trickery and sexual vigour. - Like other Greek gods, he is endowed with not-inconsiderable - sexual prowess which he directs towards countryside nymphs. - He is a god of boundaries, guardian of graves and patron deity - of shepherds. He is usually depicted as a handsome young - man wearing winged golden sandals and holding a magical - herald's staff consisting of intertwined serpents, the - kerykeion. He is reputedly the only being able to find his way - to the underworld ferry of Charon and back again. He is said - to have invented, among other things, the lyre, Pan's Pipes, - numbers, the alphabet, weights and measures, and sacrificing. -hezrou - "Hezrou" is the common name for the type II demon. It is - among the weaker of demons, but still quite formidable, - mostly due to the stench. -hippocrates - Greek physician, recognized as the father of medicine. He - is believed to have been born on the island of Cos, to have - studied under his father, a physician, to have traveled for - some time, perhaps studying in Athens, and to have then - returned to practice, teach, and write at Cos. The - Hippocratic or Coan school that formed around him was of - enormous importance in separating medicine from superstition - and philosophic speculation, placing it on a strictly - scientific plane based on objective observation and critical - deductive reasoning. - [ The Columbia Encyclopedia, Sixth Edition ] -hobbit - Hobbits are an unobtrusive but very ancient people, more - numerous formerly than they are today; for they love peace - and quiet and good tilled earth: a well-ordered and well- - farmed countryside was their favourite haunt. They do not - and did not understand or like machines more complicated - than a forge-bellows, a water-mill, or a handloom, although - they were skillful with tools. Even in ancient days they - were, as a rule, shy of "the Big Folk", as they call us, and - now they avoid us with dismay and are becoming hard to find. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -hobgoblin - Hobgoblin. Used by the Puritans and in later times for - wicked goblin spirits, as in Bunyan's "Hobgoblin nor foul - friend", but its more correct use is for the friendly spirits - of the brownie type. In "A midsummer night's dream" a - fairy says to Shakespeare's Puck: - Those that Hobgoblin call you, and sweet Puck, - You do their work, and they shall have good luck: - Are you not he? - and obviously Puck would not wish to be called a hobgoblin - if that was an ill-omened word. - Hobgoblins are on the whole, good-humoured and ready to be - helpful, but fond of practical joking, and like most of the - fairies rather nasty people to annoy. Boggarts hover on the - verge of hobgoblindom. Bogles are just over the edge. - One Hob mentioned by Henderson, was Hob Headless who haunted - the road between Hurworth and Neasham, but could not cross - the little river Kent, which flowed into the Tess. He was - exorcised and laid under a large stone by the roadside for - ninety-nine years and a day. If anyone was so unwary as to - sit on that stone, he would be unable to quit it for ever. - The ninety-nine years is nearly up, so trouble may soon be - heard of on the road between Hurworth and Neasham. - [ A Dictionary of Fairies, by Katharine Briggs ] -holy water - "We want a word with you," said Ligur (in a tone of voice - intended to imply that "word" was synonymous with "horrifically - painful eternity"), and the squat demon pushed open the office - door. - The bucket teetered, then fell neatly on Ligur's head. - Drop a lump of sodium in water. Watch it flame and burn and - spin around crazily, flaring and sputtering. This was like - that, just nastier. - The demon peeled and flared and flickered. Oily brown smoke - oozed from it, and it screamed and it screamed and it screamed. - Then it crumpled, folded in on itself, and what was left lay - glistening on the burnt and blackened circle of carpet, looking - like a handful of mashed slugs. - "Hi," said Crowley to Hastur, who had been walking behind Ligur, - and had unfortunately not been so much as splashed. - There are some things that are unthinkable; there are some - depths that not even demons would believe other demons would - stoop to. - ". . . Holy water. You bastard," said Hastur. "You complete - _bastard_. He hadn't never done nothing to _you_." - "Yet," corrected Crowley. - [ Good Omens, by Neil Gaiman and Terry Pratchett ] -hom*nculus - A homunculus is a creature summoned by a mage to perform some - particular task. They are particularly good at spying. They - are smallish creatures, but very agile. They can put their - victims to sleep with a venomous bite, but due to their size, - the effect does not last long on humans. - - "Tothapis cut him off. 'Be still and hearken. You will travel - aboard the sacred wingboat. Of it you may not have heard; but - it will bear you thither in a night and a day and a night. - With you will go a homunculus that can relay your words to me, - and mine to you, across the leagues between at the speed of - thought.'" - [ Conan the Rebel, by Poul Anderson ] -# also gets 'pruning hook' aka guisarme -*hook - But as for Queequeg -- why, Queequeg sat there among them -- - at the head of the table, too, it so chanced; as cool as an - icicle. To be sure I cannot say much for his breeding. His - greatest admirer could not have cordially justified his - bringing his harpoon into breakfast with him, and using it - there without ceremony; reaching over the table with it, to - the imminent jeopardy of many heads, and grappling the - beefsteaks towards him. - [ Moby Dick, by Herman Melville ] -~unicorn horn -*horn - Roland hath set the Olifant to his mouth, - He grasps it well, and with great virtue sounds. - High are those peaks, afar it rings and loud, - Thirty great leagues they hear its echoes mount. - So Charles heard, and all his comrades round; - Then said that King: "Battle they do, our counts!" - And Guenelun answered, contrarious: - "That were a lie, in any other mouth." - [ The Song of Roland ] -horn of plenty -cornucopia - The infant Zeus was fed with goat's milk by Amalthea, - daughter of Melisseus, King of Crete. Zeus, in gratitude, - broke off one of the goat's horns, and gave it to Amalthea, - promising that the possessor should always have in abundance - everything desired. - [ Brewer's Concise Dictionary of Phrase and Fable ] - - When Amalthea's horn - O'er hill and dale the rose-crowned flora pours, - And scatters corn and wine, and fruits and flowers. - [ Os Lusiadas, by Luis Vaz de Camoes ] -horned devil -barbed devil - These devils lack any real special abilities, though they - are quite difficult to kill. -~horsem* -*horse - King Richard III: A horse! a horse! my kingdom for a horse! - Catesby: Withdraw, my lord; I'll help you to a horse. - King Richard III: Slave, I have set my life upon a cast, - And I will stand the hazard of the die: - I think there be six Richmonds in the field; - Five have I slain to-day instead of him. - A horse! a horse! my kingdom for a horse! - [ King Richard III, by William Shakespeare ] -*horsem* -rider* -death -famine -pestilence -war -hunger - [Pestilence:] And I saw when the Lamb opened one of the seals, - and I heard, as it were the noise of thunder, one of the four - beasts saying, Come and see. And I saw, and behold a white - horse: and he that sat on him had a bow; and a crown was given - unto him: and he went forth conquering, and to conquer. - - [War:] And when he had opened the second seal, I heard the - second beast say, Come and see. And there went out another - horse that was red: and power was given to him that sat thereon - to take peace from the earth, and that they should kill one - another: and there was given unto him a great sword. - - [Famine:] And when he had opened the third seal, I heard the - third beast say, Come and see. And I beheld, and lo a black - horse; and he that sat on him had a pair of balances in his - hand. And I heard a voice in the midst of the four beasts say, - A measure of wheat for a penny, and three measures of barley - for a penny; and see thou hurt not the oil and the wine. - - [Death:] And when he had opened the fourth seal, I heard the - voice of the fourth beast say, Come and see. And I looked, and - behold a pale horse: and his name that sat on him was Death, - and Hell followed with him. And power was given unto them over - the fourth part of the earth, to kill with sword, and with - hunger, and with death, and with the beasts of the earth. - [ Revelations of John, 6:1-8 ] -huan*ti - The first of five mythical Chinese emperors, Huan Ti is known - as the yellow emperor. He rules the _moving_ heavens, as - opposed to the _dark_ heavens. He is an inventor, said to - have given mankind among other things, the wheel, armour, and - the compass. He is the god of fortune telling and war. -# citation used to be [ after the Encyclopedia of Gods... ] -- not sure what -# that was intended to mean -hu*h*eto*l -minion of huhetotl - Huehuetotl, or Huhetotl, which means Old God, was the Aztec - (classical Mesoamerican) god of fire. He is generally - associated with paternalism and one of the group classed - as the Xiuhtecuhtli complex. He is known to send his - minions to wreak havoc upon ordinary humans. - [ Encyclopedia of Gods, by Michael Jordan ] -humanoid - Humanoids are all approximately the size of a human, and may - be mistaken for one at a distance. They are usually of a - tribal nature, and will fiercely defend their lairs. Usually - hostile, they may even band together to raid and pillage - human settlements. -# takes "human or elf or you" when specifying '@' as a dwarf, gnome, or orc -human -chieftain -guard -ninja -nurse -ronin -student -warrior -*watch* -human or elf* - These strange creatures live mostly on the surface of the - earth, gathering together in societies of various forms, but - occasionally a stray will descend into the depths and commit - mayhem among the dungeon residents who, naturally, often - resent the intrusion of such beasts. They are capable of - using weapons and magic, and it is even rumored that the - Wizard of Yendor is a member of this species. -hunter - What of the hunting, hunter bold? - Brother, the watch was long and cold. - What of the quarry ye went to kill? - Brother, he crops in the jungle still. - Where is the power that made your pride? - Brother, it ebbs from my flank and side. - Where is the haste that ye hurry by? - Brother, I go to my lair to die. - [ The Jungle Book, by Rudyard Kipling ] -# note: this might need to be reformatted; it's much wider than other entries -# but should be able to fit within a normal-width screen once nethack strips -# off the leading . -ice box - Ice, white ice, like a winding-sheet, sheathing each smoke-grimed wall; - Ice on the stove-pipe, ice on the bed, ice gleaming over all; - Sparkling ice on the dead man’s chest, glittering ice in his hair, - Ice on his fingers, ice in his heart, ice in his glassy stare; - Hard as a log and trussed like a frog, with his arms and legs outspread. - I gazed at the coffin I'd brought for him, and I gazed at the gruesome dead, - And at last I spoke: "Bill liked his joke; but still, goldarn his eyes, - A man had ought to consider his mates in the way he goes and dies." - [ The Ballad of Blasphemous Bill, by Robert W. Service ] -ice devil - Ice devils are large semi-insectoid creatures, who are - equally at home in the fires of Hell and the cold of Limbo, - and who can cause the traveller to feel the latter with just - a touch of their tail. -idefix - Another clever translation [of the _Asterix_ character names] - is that of Idefix. An _idee fixe_ is a "fixed idea", i.e. - an obsession, a dogma. The translation, Dogmatix, manages to - conserve the "fixed idea" meaning and also include the syllable - dog -- perfect, given that the character is a dog who has very - strong views on the environment (he howls whenever he sees an - uprooted tree). - [ Wikipedia, the free encyclopedia ] -# takes "imp or minor demon" when specifying 'i' -imp -imp or minor demon - ... imps ... little creatures of two feet high that could - gambol and jump prodigiously; ... - [ The Charwoman's Shadow, by Lord Dunsany ] - - An 'imp' is an off-shoot or cutting. Thus an 'ymp tree' was - a grafted tree, or one grown from a cutting, not from seed. - 'Imp' properly means a small devil, an off-shoot of Satan, - but the distinction between goblins or bogles and imps from - hell is hard to make, and many in the Celtic countries as - well as the English Puritans regarded all fairies as devils. - The fairies of tradition often hover uneasily between the - ghostly and the diabolic state. - [ A Dictionary of Fairies, by Katharine Briggs ] -# "amorous demon" is a placeholder until something better comes along -incubus -succubus -amorous demon - The incubus and succubus are male and female versions of the - same demon, one who lies with a human for its own purposes, - usually to the detriment of the mortals who are unwise in - their dealings with them. -*insect -*insects - A minute invertebrate animal; one of the class _Insecta_. - The true insects or hexapods have the body divided into a - head, a thorax of 3 segments, each of which bears a pair of - legs, and an abdomen of 7 to 11 segments, and in development - usually pass through a metamorphosis. There are usually 2 - pairs of wings, sometimes one pair or none. - [ Webster's Comprehensive International Dictionary - of the English Language ] - - Else, if thou refuse to let my people go, behold, to morrow - will I bring the locusts into thy coast: - And they shall cover the face of the earth, that one cannot - be able to see the earth: and they shall eat the residue of - that which is escaped, which remaineth unto you from the hail, - and shall eat every tree which groweth for you out of the field: - And they shall fill thy houses, and the houses of all thy - servants, and the houses of all the Egyptians; which neither - thy fathers, nor thy fathers' fathers have seen, since the day - that they were upon the earth unto this day. And he turned - himself, and went out from Pharaoh. - [ Exodus, 10:4-6 ] -*iron ball -*iron chain - "You are fettered, " said Scrooge, trembling. "Tell me why?" - "I wear the chain I forged in life," replied the Ghost. "I - made it link by link, and yard by yard; I girded it on of my - own free will, and of my own free will I wore it. Is its - pattern strange to you?" - Scrooge trembled more and more. - "Or would you know," pursued the Ghost, "the weight and - length of the strong coil you bear yourself? It was full as - heavy and as long as this, seven Christmas Eves ago. You - have laboured on it, since. It is a ponderous chain!" - [ A Christmas Carol, by Charles Dickens ] -iron bars - Stone walls do not a prison make, - Nor iron bars a cage; - Minds innocent and quiet take - That for an hermitage; - If I have freedom in my love, - And in my soul am free, - Angels alone that soar above - Enjoy such liberty. - [ To Althea from Prison, by Richard Lovelace ] -ishtar - Ishtar (the star of heaven) is the Mesopotamian goddess of - fertility and war. She is usually depicted with wings and - weapon cases at her shoulders, carrying a ceremonial double- - headed mace-scimitar embellished with lion heads, frequently - being accompanied by a lion. She is symbolized by an eight- - pointed star. - [ Encyclopedia of Gods, by Michael Jordan ] -issek - Now Issek of the Jug, whom Fafhrd chose to serve, was once - of the most lowly and unsuccessful of the gods, godlets - rather, in Lankhmar. He had dwelt there for about thirteen - years, during which time he had traveled only two squares up - the Street of the Gods and was now back again, ready for - oblivion. He is not to be confused with Issek the Armless, - Issek of the Burnt Legs, Flayed Issek, or any other of the - numerous and colorfully mutilated divinities of that name. - Indeed, his unpopularity may have been due in part to the - fact that the manner of his death -- racking -- was not - deemed particularly spectacular. ... However, after Fafhrd - became his acolyte, things somehow began to change. - [ Swords In The Mist, by Fritz Leiber ] -izchak - The shopkeeper of the lighting shop in the town level of the - gnomish mines is a tribute to Izchak Miller, a founding member - of the NetHack development team and a personal friend of a large - number of us. Izchak contributed greatly to the game, coding a - large amount of the shopkeep logic (hence the nature of the tribute) - as well as a good part of the alignment system, the prayer code and - the rewrite of "hell" in the 3.1 release. Izchak was a professor - of Philosophy, who taught at many respected institutions, including - MIT and Stanford, and who also worked, for a period of time, at - Xerox PARC. Izchak was the first "librarian" of the NetHack project, - and was a founding member of the DevTeam, joining in 1986 while he - was working at the University of Pennsylvania (hence our former - mailing list address). Until the 3.1.3 release, Izchak carefully - kept all of the code synchronized and arbitrated disputes between - members of the development teams. Izchak Miller passed away at the - age of 58, in the early morning hours of April 1, 1994 from - complications due to cancer. We then dedicated NetHack 3.2 in his - memory. - [ Mike Stephenson, for the NetHack DevTeam ] -jabberwock -vorpal* - "Beware the Jabberwock, my son! - The jaws that bite, the claws that catch! - Beware the Jubjub bird, and shun - The frumious Bandersnatch!" - - He took his vorpal sword in hand; - Long time the manxome foe he sought -- - So rested he by the Tumtum tree, - And stood awhile in thought. - - And, as in uffish thought he stood, - The Jabberwock, with eyes of flame, - Came whiffling through the tulgey wood, - And burbled as it came! - - One, two! One, two! And through and through - The vorpal blade went snicker-snack! - He left it dead, and with its head - He went galumphing back. - [ Jabberwocky, by Lewis Carroll ] -jacinth* - Sweet in the rough weather - The voice of the turtle-dove - 'Beautiful altogether - Is my Love. - His Hands are open spread for love - And full of jacinth stones - As the apple-tree among trees of the grove - Is He among the sons.' - [ The Beloved, by May Probyn ] -jackal - In Asiatic folktale, jackal provides for the lion; he scares - up game, which the lion kills and eats, and receives what is - left as reward. In stories from northern India he is - sometimes termed "minister to the king," i.e. to the lion. - From the legend that he does not kill his own food has arisen - the legend of his cowardice. Jackal's heart must never be - eaten, for instance, in the belief of peoples indigenous to - the regions where the jackal abounds. ... In Hausa Negro - folktale Jackal plays the role of sagacious judge and is - called "O Learned One of the Forest." The Bushmen say that - Jackal goes around behaving the way he does "because he is - Jackal". - [ Funk & Wagnalls Standard Dictionary of Folklore ] -*jack*boot* - A large boot extending over the knee, acting as protective - armour for the leg, worn by troopers in the 17th and 18th - centuries and later. It is still the type of boot worn by - the Household Cavalry and was adopted by fishermen and others - before the advent of gum boots. Figuratively, _to be under the - jack-boot_ is to be controlled by a brutal military regime. - [ Brewer's Concise Dictionary of Phrase and Fable ] -jade* - Nothing grew among the ruins of the city. The streets were - broken and the walls of the houses had fallen, but there were - no weeds flowering in the cracks and it seemed that the city - had but recently been brought down by an earthquake. Only - one thing still stood intact, towering over the ruins. It - was a gigantic statue of white, gray and green jade - the - statue of a naked youth with a face of almost feminine beauty - that turned sightless eyes toward the north. - "The eyes!" Duke Avan Astran said. "They're gone!" - [ The Jade Man's Eyes, by Michael Moorcock ] -jaguar - Large, flesh-eating animal of the cat family, of Central and - South America. This feline predator (_Panthera onca_) is - sometimes incorrectly called a panther. - [ Van Dale's Groot Woordenboek der Nederlandse Taal ] -jellyfish - I do not care to share the seas - With jellyfishes such as these; - Particularly Portuguese. - [ Lines on Meeting a Portuguese Man-o'-war while Bathing, - by Michael Flanders ] -juiblex -jubilex - Little is known about the Faceless Lord, even the correct - spelling of his name. He does not have a physical form as - we know it, and those who have peered into his realm claim - he is a slime-like creature who swallows other creatures - alive, spits acidic secretions, and causes disease in his - victims which can be almost instantly fatal. -# historically (according to wikipedia...), C-ration was heavier but -# provided more nutrition, and required some form of tin opener; -# in nethack they weigh the same and K-ration provides more nutrition? -k?ration -c?ration - The C ration was a predecessor of the K ration. - [] - The K ration was the [ Quartermaster Subsistence Research - and Development Laboratory's ] answer to the demand for an - individual, easy-to-carry ration that could be used in - assault and combat operations. It was noted for compactness - and superior packaging and was acknowledged as the ration - that provided the greatest variety of nutritionally balanced - components within the smallest space. - [ Special Rations for the Armed Forces, 1946-53, - by Franz A. Koehler ] -kabuto - The kabuto is the helmet worn by the samurai. It was - characterized by a prominent beaked front which jutted out over - the brow to protect the wearer's face; a feature that gives - rise to their modern Japanese name of 'shokaku tsuki kabuto' - (battering-ram helmet). Their main constructional element - was an oval plate, the shokaku bo, slightly domed for the - head with a narrow prolongation in front that curved forwards - and downwards where it developed a pronounced central - fold. Two horizontal strips encircling the head were riveted - to this frontal strip: the lower one, the koshimaki (hip - wrap), formed the lower edge of the helmet bowl; the other, - the do maki (body wrap), was set at about the level of the - temples. Filling the gaps between these strips and the shokaku - bo were small plates, sometimes triangular but more commonly - rectangular in shape. Because the front projected so - far from the head, the triangular gap beneath was filled by - a small plate, the shoshaku tei ita, whose rear edge bent - downwards into a flange that rested against the forehead. - [ Arms & Armour of the Samurai, by Bottomley & Hopson ] -katana - The katana is a long, single-edged samurai sword with a - slightly curved blade. Its long handle is designed to allow - it to be wielded with either one or two hands. -kelp* -*frond - I noticed that all the plants were attached to the soil by - an almost imperceptible bond. Devoid of roots, they seemed - not to require any nourishment from sand, soil, or pebble. - All they required was a point of support -- nothing else. - These plants are self-propagated, and their existence depends - entirely on the water that supports and nourishes them. - Most of them do not sprout leaves, but sprout blades of - various whimsical shapes, and their colors are limited to - pink, carmine, green, olive, fawn, and brown. I had the - opportunity to observe once more -- not the dried specimens - I had studied on the _Nautilus_ -- but the fresh, living - specimens in their native setting. - [ 20,000 Leagues Under the Sea, by Jules Verne ] -ki-rin - The ki-rin is a strange-looking wingless flying creature. - It has scales, a mane like a lion, a tail, four legs with - hooves, and a horn like a unicorn's. It is brightly colored, - and can usually be found flying in the sky looking for good - deeds to reward. -king arthur -*arthur - Ector took both his sons to the church before which the - anvil had been placed. There, standing before the anvil, he - commanded Kay: "Put the sword back into the steel if you - really think the throne is yours!" But the sword glanced - off the steel. "Now it is your turn", Ector said facing - Arthur. - The young man lifted the sword and thrust with both arms; the - blade whizzed through the air with a flash and drilled the - metal as if it were mere butter. Ector and Kay dropped to - their knees before Arthur. - "Why, father and brother, do you bow before me?", Arthur asked - with wonder in his voice. - "Because now I know for sure that you are the king, not only - by birth but also by law", Ector said. "You are no son of - mine nor are you Kay's brother. Immediately after your birth, - Merlin the Wise brought you to me to be raised safely. And - though it was me that named you Arthur when you were baptized, - you are really the son of brave king Uther Pendragon and queen - Igraine..." - And after these words, the lord rose and went to see the arch- - bishop to impart to him what had passed. - [ Van Gouden Tijden Zingen de Harpen, by Vladimir Hulpach, - Emanuel Frynta, and Vackav Cibula ] -knife -stiletto - Possibly perceiving an expression of dubiosity on their - faces, the globetrotter went on adhering to his adventures. - - -- And I seen a man killed in Trieste by an Italian chap. - Knife in his back. Knife like that. - - Whilst speaking he produced a dangerous looking clasp knife, - quite in keeping with his character, and held it in the - striking position. - - -- In a knockingshop it was count of a tryon between two - smugglers. Fellow hid behind a door, come up behind him. - Like that. Prepare to meet your God, says he. Chuck! It - went into his back up to the butt. - [ Ulysses, by James Joyce ] -knight -* knight - Here lies the noble fearless knight, - Whose valour rose to such a height; - When Death at last had struck him down, - His was the victory and renown. - He reck'd the world of little prize, - And was a bugbear in men's eyes; - But had the fortune in his age - To live a fool and die a sage. - [ Don Quixote of La Mancha, by Miquel de Cervantes Saavedra ] -~kobold ??m* -*kobold* - The race of kobolds are reputed to be an artificial creation - of a master wizard (demi-god?). They are about 3' tall with - a vaguely dog-like face. They bear a violent dislike of the - Elven race, and will go out of their way to cause trouble - for Elves at any time. -*kop* -rubber hose - The Kops are a brilliant concept. To take a gaggle of inept - policemen and display them over and over again in a series of - riotously funny physical punishments plays equally well to the - peanut gallery and the expensive box seats. People hate cops. - Even people who have never had anything to do with cops hate - them. Of course, we count on them to keep order and to protect - us when we need protecting, and we love them on television shows - in which they have nerves of steel and hearts of gold, but in - the abstract, as a nation, collectively we hate them. They are - too much like high school principals. We're very happy to see - their pants fall down, and they look good to us with pie on - their faces. The Keystone Kops turn up--and they get punished - for it, as they crash into each other, fall down, and suffer - indignity after indignity. Here is pure movie satisfaction. - - The Kops are very skillfully presented. The comic originality - and timing in one of their chase scenes requires imagination - to think up, talent to execute, understanding of the medium, - and, of course, raw courage to perform. The Kops are madmen - presented as incompetents, and they're madmen rushing around - in modern machines. What's more, the machines they were operating - in their routines were newly invented and not yet experienced - by the average moviegoer. (In the early days of automobiles, - it was reported that there were only two cars registered in all - of Kansas City, and they ran into each other. There is both - poetry and philosophy in this fact, but most of all, there is - humor. Sennett got the humor.) - [ Silent Stars, by Jeanine Basinger ] -kos - "I am not a coward!" he cried. "I'll dare Thieves' House - and fetch you Krovas' head and toss it with blood a-drip at - Vlana's feet. I swear that, witness me, Kos the god of - dooms, by the brown bones of Nalgron my father and by his - sword Graywand here at my side!" - [ Swords and Deviltry, by Fritz Leiber ] -koto - A Japanese harp. -kraken - Out from the water a long sinuous tentacle had crawled; it - was pale-green and luminous and wet. Its fingered end had - hold of Frodo's foot, and was dragging him into the water. - Sam on his knees was now slashing at it with a knife. The - arm let go of Frodo, and Sam pulled him away, crying out - for help. Twenty other arms came rippling out. The dark - water boiled, and there was a hideous stench. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -the lady -lady -lady luck -offler - Blind Io took up the dice-box, which was a skull whose various - orifices had been stoppered with rubies, and with several of - his eyes on the Lady he rolled three fives. She smiled. This - was the nature of the Lady's eyes: they were bright green, - lacking iris or pupil, and they glowed from within. - - The room was silent as she scrabbled in her box of pieces and, - from the very bottom, produced a couple that she set down on - the board with two decisive clicks. The rest of the players, - as one God, craned forward to peer at them. - - "A wenegade wiffard and fome fort of clerk," said Offler the - Crocodile God, hindered as usual by his tusks. "Well, - weally!" With one claw he pushed a pile of bone-white tokens - into the centre of the table. - - The Lady nodded slightly. She picked up the dice-cup and held - it as steady as a rock, yet all the Gods could hear the three - cubes rattling about inside. And then she sent them bouncing - across the table. - - A six. A three. A five. - - Something was happening to the five, however. Battered by the - chance collision of several billion molecules, the die flipped - onto a point, spun gently and came down a seven. Blind Io - picked up the cube and counted the sides. - - "Come _on_," he said wearily, "Play fair." - [ The Colour of Magic, by Terry Pratchett ] -*lamp - When he came to himself he told his mother what had passed, - and showed her the lamp and the fruits he had gathered in the - garden, which were in reality precious stones. He then asked - for some food. - - "Alas! child," she said, "I have nothing in the house, but I - have spun a little cotton and will go and sell it." - - Aladdin bade her keep her cotton, for he would sell the lamp - instead. As it was very dirty she began to rub it, that it - might fetch a higher price. Instantly a hideous genie - appeared, and asked what she would have. She fainted away, - but Aladdin, snatching the lamp, said boldly: - "Fetch me something to eat!" - [ Aladdin, from The Arabian Nights, by Andrew Lang ] -lance - With this the wind increased, and the mill sails began to turn - about; which Don Quixote espying, said, 'Although thou movest - more arms than the giant Briareus thou shalt stoop to me.' - And, after saying this, and commending himself most devoutly - to his Lady Dulcinea, desiring her to succor him in that trance, - covering himself well with his buckler, and setting his lance - on his rest, he spurred on Rozinante, and encountered with the - first mill that was before him, and, striking his lance into - the sail, the wind swung it about with such fury, that it broke - his lance into shivers, carrying him and his horse after it, - and finally tumbled him a good way off from it on the field in - evil plight. - [ Don Quixote of La Mancha, by Miquel de Cervantes Saavedra ] -land mine - Your heart is intact, your brain is not badly damaged, but the rest - of your injuries are comparable to stepping on a land mine. You'd - never walk again, and you'd be in great pain. You would come to - wish you had not survived. - [ Steel Beach, by John Varley ] -*lantern - While pretending to be a fancy safety lamp, it is in fact - battery powered. A discreet little switch is marked "on/off" - in elaborate lettering. - [ Adventure 770, by Mike Arnautov ] -# citation is a descriptive passage from the original text adventure game -lava -* lava - You are on the edge of a breath-taking view. Far below you - is an active volcano, from which great gouts of molten lava - come surging out, cascading back down into the depths. The - glowing rock fills the farthest reaches of the cavern with a - blood-red glare, giving everything an eerie, macabre appearance. - The air is filled with flickering sparks of ash and a heavy - smell of brimstone. The walls are hot to the touch, and the - thundering of the volcano drowns out all other sounds. - Embedded in the jagged roof far overhead are myriad twisted - formations composed of pure white alabaster, which scatter the - murky light into sinister apparitions upon the walls. To one - side is a deep gorge, filled with a bizarre chaos of tortured - rock which seems to have been crafted by the devil himself. - An immense river of fire crashes out from the depths of the - volcano, burns its way through the gorge, and plummets into a - bottomless pit far off to your left. To the right, an immense - geyser of blistering steam erupts continuously from a barren - island in the center of a sulfurous lake, which bubbles - ominously. The far right wall is aflame with an incandescence - of its own, which lends an additional infernal splendor to the - already hellish scene. A dark, forboding passage exits to the - south. - [ Adventure, by Will Crowther and Don Woods ] -leash - They had splendid heads, fine shoulders, strong legs, and - straight tails. The spots on their bodies were jet-black and - mostly the size of a two-shilling piece; they had smaller - spots on their heads, legs, and tails. Their noses and eye- - rims were black. Missis had a most winning expression. - Pongo, though a dog born to command, had a twinkle in his - eye. They walked side by side with great dignity, only - putting the Dearlys on the leash to lead them over crossings. - [ The Hundred and One Dalmatians, by Dodie Smith ] -lembas* - In the morning, as they were beginning to pack their slender - goods, Elves that could speak their tongue came to them and - brought them many gifts of food and clothing for their - journey. The food was mostly in the form of very thin cakes, - made of a meal that was baked a light brown on the outside, - and inside was the colour of cream. Gimli took up one of the - cakes and looked at it with a doubtful eye. - 'Cram,' he said under his breath, as he broke off a crisp - corner and nibbled at it. His expression quickly changed, - and he ate all the rest of the cake with relish. - 'No more, no more!' cried the Elves laughing. 'You have - eaten enough already for a long day's march.' - 'I thought it was only a kind of cram, such as the Dalemen - make for journeys in the wild,' said the Dwarf. - 'So it is,' they answered. 'But we call it lembas or - waybread, and it is more strengthening than any foods made by - Men, and it is more pleasant than cram, by all accounts.' - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -lemure -larvae - The Larvae (Lemures) are Roman spirits of deceased family - members. These malignant spirits dwell throughout the house - and frighten the inhabitants. People tried to reconcile or - avert the Larvae with strange ceremonies which took place on - May 9, 11, and 13; this was called the "Feast of the Lemures". - The master of the house usually performed these ceremonies, - either by offering black beans to the spirits or chasing them - away by making a lot of noise. Their counterparts are the - Lares, friendly and beneficent house spirits. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -leocrotta -leu*otta - ... the leucrocotta, a wild beast of extraordinary swiftness, - the size of the wild ass, with the legs of a Stag, the neck, - tail, and breast of a lion, the head of a badger, a cloven - hoof, the mouth slit up as far as the ears, and one continuous - bone instead of teeth; it is said, too, that this animal can - imitate the human voice. - [ Curious Creatures in Zoology, by John Ashton ] -leprechaun - The Irish Leprechaun is the Faeries' shoemaker and is known - under various names in different parts of Ireland: - Cluricaune in Cork, Lurican in Kerry, Lurikeen in Kildare - and Lurigadaun in Tipperary. Although he works for the - Faeries, the Leprechaun is not of the same species. He is - small, has dark skin and wears strange clothes. His nature - has something of the manic-depressive about it: first he - is quite happy, whistling merrily as he nails a sole on to a - shoe; a few minutes later, he is sullen and morose, drunk - on his home-made heather ale. The Leprechaun's two great - loves are tobacco and whiskey, and he is a first-rate con-man, - impossible to out-fox. No one, no matter how clever, has ever - managed to cheat him out of his hidden pot of gold or his - magic shilling. At the last minute he always thinks of some - way to divert his captor's attention and vanishes in the - twinkling of an eye. - [ A Field Guide to the Little People - by Nancy Arrowsmith & George Moorse ] -*lich - But on its heels ere the sunset faded, there came a second - apparition, striding with incredible strides and halting when - it loomed almost upon me in the red twilight-the monstrous mummy - of some ancient king still crowned with untarnished gold but - turning to my gaze a visage that more than time or the worm had - wasted. Broken swathings flapped about the skeleton legs, and - above the crown that was set with sapphires and orange rubies, a - black something swayed and nodded horribly; but, for an instant, - I did not dream what it was. Then, in its middle, two oblique - and scarlet eyes opened and glowed like hellish coals, and two - ophidian fangs glittered in an ape-like mouth. A squat, furless, - shapeless head on a neck of disproportionate extent leaned - unspeakably down and whispered in the mummy's ear. Then, with - one stride, the titanic lich took half the distance between us, - and from out the folds of the tattered sere-cloth a gaunt arm - arose, and fleshless, taloned fingers laden with glowering gems, - reached out and fumbled for my throat . . . - [ The Abominations of Yondo, by Clark Ashton Smith ] -lichen - The chamber was of unhewn rock, round, as near as might - be, eighteen or twenty feet across, and gay with rich - variety of fern and moss and lichen. The fern was in - its winter still, or coiling for the spring-tide; but - moss was in abundant life, some feathering, and some - gobleted, and some with fringe of red to it. - [ Lorna Doone, by R.D. Blackmore ] -# takes "light" when specifying 'y' -~* of light -* light -light - Strange creatures formed from energy rather than matter, - lights are given to self-destructive behavior when battling - foes. -gecko -iguana -lizard - Lizards, snakes and the burrowing amphisbaenids make up the - order Squamata, meaning the scaly ones. The elongate, slim, - long-tailed bodies of lizards have become modified to enable - them to live in a wide range of habitats. Lizards can be - expert burrowers, runners, swimmers and climbers, and a few - can manage crude, short-distance gliding on rib-supported - "wings". Most are carnivores, feeding on invertebrate and - small vertebrate prey, but others feed on vegetation. - [ Macmillan Illustrated Animal Encyclopedia ] -loki - Loki, or Lopt, is described in Snorri's _Edda_ as being - "pleasing and handsome in appearance, evil in character, and - very capricious in behaviour". He is the son of the giant - Farbauti and of Laufey. - Loki is the Norse god of cunning, evil, thieves, and fire. - He hated the other gods and wanted to ruin them and overthrow - the universe. He committed many murders. As a thief, he - stole Freyja's necklace, Thor's belt and gauntlets of power, - and the apples of youth. Able to shapechange at will, he is - said to have impersonated at various times a mare, flea, fly, - falcon, seal, and an old crone. As a mare he gave birth to - Odin's horse Sleipnir. He also allegedly sired the serpent - Midgard, the mistress of the netherworld, Hel, and the wolf - Fenrir, who will devour the sun at Ragnarok. -*longbow of diana - This legendary bow grants ESP when carried and can reflect magical - attacks when wielded. When invoked it provides a supply of arrows. -# long worm -- see "worm" -looking glass -mirror - But as Snow White grew, she became more and more beautiful, - and by the time she was seven years old she was as beautiful - as the day and more beautiful than the queen herself. One - day when the queen said to her mirror: - - "Mirror, Mirror, here I stand. - Who is the fairest in the land?" - - - the mirror replied: - - "You, O Queen, are the fairest here, - But Snow White is a thousand times more fair." - [ Snow White, by Jakob and Wilhelm Grimm ] -lord carnarvon - Lord Carnarvon was a personality who could have been produced - nowhere but in England, a mixture of sportsman and collector, - gentleman and world traveler, a realist in action and a - romantic in feeling. ... In 1903 he went for the first time - to Egypt in search of a mild climate and while there visited - the excavation sites of several archaeological expeditions. - ... In 1906 he began his own excavations. - [ Gods, Graves, and Scholars, by C.W. Ceram ] -lord sato - Lord Sato was the family head of the Taro Clan, and a mighty - daimyo. He is a loyal servant of the Emperor, and will do - everything in his power to further the imperial cause. -lord surt* - Yet first was the world in the southern region, which was - named Muspell; it is light and hot; that region is glowing - and burning, and impassable to such as are outlanders and - have not their holdings there. He who sits there at the - land's-end, to defend the land, is called Surtr; he brandishes - a flaming sword, and at the end of the world he shall go forth - and harry, and overcome all the gods, and burn all the - world with fire. - [ The Prose Edda, by Snorri Sturluson ] -# if a quote for good luck gets added, make this one exclusively bad luck -luck -bad luck - "[...] We'll succeed and you'll get all the fortune you came - seeking." - Jack shook his head dismally. "You'll be better off without - me," he said. "I'm nothing but bad luck. It's because I'm - cursed. A farmer I met on the way to the city cursed me. He - said, 'I curse you Jack. May you never know wealth. May all - that you wish for be denied you.'" - "What a horrid man," said Eddie. "Why did he curse you like - that?" - Jack shrugged [...]. "Bad grace, I suppose. Just because I - shot off his ear and made him jump into a pit full of spikes." - [ the hollow chocolate bunnies of the apocalypse, - by Robert Rankin ] -# [no relation... both cover and title page list this -# book's title in all lower case; however, its sequel, -# "the toyminator", refers to it using conventional -# capitalization in a couple of early footnotes] -lug* - Lugh, or Lug, was the sun god of the Irish Celts. One of his - weapons was a rod-sling which worshippers sometimes saw in - the sky as a rainbow. As a tribal god, he was particularly - skilled in the use of his massive, invincible spear, which - fought on its own accord. One of his epithets is _lamfhada_ - (of the long arm). He was a young and apparently more - attractive deity than Dagda, the father of the gods. Being - able to shapeshift, his name translates as lynx. -lurker* - These dungeon scavengers are very adept at blending into the - surrounding walls and ceilings of the dungeon due to the - stone-like coloring of their skin. -lycanthrope -were* -human were* -*were - In 1573, the Parliament of Dole published a decree, permitting - the inhabitants of the Franche-Comte to pursue and kill a - were-wolf or loup-garou, which infested that province, - "notwithstanding the existing laws concerning the chase." - The people were empowered to "assemble with javelins, - halberds, pikes, arquebuses and clubs, to hunt and pursue the - said were-wolf in all places where they could find it, and to - take, burn, and kill it, without incurring any fine or other - penalty." The hunt seems to have been successful, if we may - judge from the fact that the same tribunal in the following - year condemned to be burned a man named Giles Garnier, who - ran on all fours in the forest and fields and devoured little - children, "even on Friday." The poor lycanthrope, it appears, - had as slight respect for ecclesiastical feasts as the French - pig, which was not restrained by any feeling of piety from - eating infants on a fast day. - [ The History of Vampires, by Dudley Wright ] -lynx - To dream of seeing a lynx, enemies are undermining your - business and disrupting your home affairs. For a woman, - this dream indicates that she has a wary woman rivaling her - in the affections of her lover. If she kills the lynx, she - will overcome her rival. - [ 10,000 Dreams Interpreted, by Gustavus Hindman Miller ] -~*sceptre of might -mace -sceptre - Originally a club armed with iron, and used in war; now a staff - of office pertaining to certain dignitaries, as the Speaker of - the House of Commons, Lord Mayors, Mayors etc. Both sword and - mace are symbols of dignity, suited to the times when men went - about in armour, and sovereigns needed champions to vindicate - their rights. - [ Brewer's Concise Dictionary of Phrase and Fable ] -magic marker - The pen is mightier than the sword. - [ Richelieu, by Edward Bulwer-Lytton ] -magic mirror of merlin - [...] In Dehenbarth (that now South Wales is hight, - What time King Ryence reigned, and dealed right) - The great magician Merlin had devised, - By his deep science, and hell-dreaded might, - A looking-glass, right wondrously aguised, - Whose virtues through the wide world soon were solemnized. - - It virtue had to show in perfect sight - Whatever thing was in the world contained, - Betwixt the lowest earth and heaven's height, - So that it to the looker appertained; - Whatever foe had wrought, or friend had fained, - Therein discovered was, nor aught might pass, - Nor aught in secret from the same remained; -# we'll leave out the part about it being a crystal ball... -# For-thy it round and hollow shaped was, -# Like the world itself, and seemed a world of glass. - [ The Faerie Queene, by Edmund Spencer ] -magicbane - A highly enchanted athame said to hold the power to channel - and direct magical energy. -mail d*emon - It is rumoured that these strange creatures can be harmed by - domesticated canines only. -ma*annan* - Normally called Manannan, Ler's son was the patron of - merchants and sailors. Manannan had a sword which never - failed to slay, a boat which propelled itself wherever its - owner wished, a horse which was swifter than the wind, and - magic armour which no sword could pierce. He later became - god of the sea, beneath which he lived in Tir na nOc, the - underworld. -manes - Manes or Di Manes ("good ones") is the euphemistic description - of the souls of the deceased, worshipped as divinities. The - formula D.M. (= Dis Manibus; "dedicated to the Manes-gods") - can often be found on tombstones. Manes also means - metaphorically 'underworld' or 'realm of death'. Festivals - in honor of the dead were the Parentalia and the Feralia, - celebrated in February. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] - - The gnats of the dungeon, these swarming monsters are rarely - seen alone. -marduk - First insisting on recognition as supreme commander, Marduk - defeated the Dragon, cut her body in two, and from it created - heaven and earth, peopling the world with human beings who not - unnaturally showed intense gratitude for their lives. The - gods were also properly grateful, invested him with many - titles, and eventually permitted themselves to be embodied in - him, so that he became supreme god, plotting the whole course - of known life from the paths of the planets to the daily - events in the lives of men. - [ The Immortals, by Derek and Julia Parker ] -marilith - The marilith has a torso shaped like that of a human female, - and the lower body of a great snake. It has multiple arms, - and can freely attack with all of them. Since it is - intelligent enough to use weapons, this means it can cause - great damage. -mars - The god of war, and one of the most prominent and worshipped - gods. In early Roman history he was a god of spring, growth in - nature, and fertility, and the protector of cattle. Mars is - also mentioned as a chthonic god (earth-god) and this could - explain why he became a god of death and finally a god of war. - He is the son of Jupiter and Juno. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -martial arts -unarmed combat -bare*handed combat - "What else can we do? None of this is fast enough." "It will have - to be." He stood up, a tall, broad wall of a man. "Why don't you - ask around, see if anyone in the neighborhoods knows anything - about martial arts. You need more than a book or two to learn - good dependable unarmed combat." - [ Parable of the Sower, by Octavia Butler ] -master assassin - He strolled down the stairs, followed by a number of assassins. - When he was directly in front of Ymor he said: "I've come for - the tourist." ... - "One step more and you'll leave here with fewer eyeballs than - you came with," said the thiefmaster. "So sit down and have - a drink, Zlorf, and let's talk about this sensibly. _I_ - thought we had an agreement. You don't rob -- I don't kill. - Not for payment, that is," he added after a pause. - Zlorf took the proffered beer. - "So?" he said. "I'll kill him. Then you rob him. Is he that - funny looking one over there?" - "Yes." - Zlorf stared at Twoflower, who grinned at him. He shrugged. - He seldom wasted time wondering why people wanted other people - dead. It was just a living. - "Who is your client, may I ask?" said Ymor. - Zlorf held up a hand. "Please!" he protested. "Professional - etiquette." - [ The Colour of Magic, by Terry Pratchett ] -master key of thievery - This skeleton key was fashioned in ages past and imbued with - a powerful magic which allows it to open any lock. When - carried, it grants its owner warning, teleport control, and - reduces all physical damage by half. Finally, when invoked, - it has the ability to disarm any trapped lock. -master of thieves - There was a flutter of wings at the window. Ymor shifted his - bulk out of the chair and crossed the room, coming back with - a large raven. After he'd unfastened the message capsule from - its leg it flew up to join its fellows lurking among the - rafters. Withel regarded it without love. Ymor's ravens were - notoriously loyal to their master, to the extent that Withel's - one attempt to promote himself to the rank of greatest thief - in Ankh-Morpork had cost their master's right hand man his - left eye. But not his life, however. Ymor never grudged a - man his ambitions. - [ The Colour of Magic, by Terry Pratchett ] -mastodon - Any large, elephantlike mammal of the genera Mammut, Mastodon, - etc., from the Oligocene and Pleistocene epochs, having - conical projections on the molar teeth. - [ Webster's Encyclopedic Unabridged Dictionary - of the English Language ] -*mattock - A mattock is an agricultural tool similar to a mining pick. - It is distinguished by the head terminating in a broader blade - rather than a narrow spike, which makes it particularly suitable - for breaking up moderately hard ground. ... During the Middle - Ages of Europe, the mattock served as an improvised shafted - weapon for the poorer classes. - [ Wikipedia, the free encyclopedia ] -meat* -huge chunk of meat - Some hae meat and canna eat, - And some would eat that want it; - But we hae meat, and we can eat, - Sae let the Lord be thankit. - [ Grace Before Meat, by Robert Burns ] -# nethack's Medusa doesn't match the myth very closely, particularly in -# how reflection is involved, but that's par for the course -# -# this used to begin "Medusa, one of the three Gorgons or Graeae" as -# if Graeae and Gorgons where the same thing, but Bulfinch's Mythology -# indicates that they are quite different; since the first paragraph is -# a made-up introduction to an excerpt from that work, the contradictory -# mention of Graeae has been removed -medusa -perseus -shield of reflection - Medusa, one of the three Gorgons, is the only one of her - sisters to have assumed mortal form and inhabited the dungeon - world. - [] - - When Perseus was grown up Polydectes sent him to attempt the - conquest of Medusa, a terrible monster who had laid waste the - country. She was once a beautiful maiden whose hair was her - chief glory, but as she dared to vie in beauty with Minerva, - the goddess deprived her of her charms and changed her - beautiful ringlets into hissing serpents. She became a cruel - monster of so frightful an aspect that no living thing could - behold her without being turned into stone. All around the - cavern where she dwelt might be seen the stony figures of men - and animals which had chanced to catch a glimpse of her and - had been petrified with the sight. Perseus, favoured by - Minerva and Mercury, the former of whom lent him her shield - and the latter his winged shoes, approached Medusa while she - slept and taking care not to look directly at her, but guided - by her image reflected in the bright shield which he bore, he - cut off her head and gave it to Minerva, who fixed it in the - middle of her Aegis. - [ Bulfinch's Mythology, by Thomas Bulfinch ] -melon - "What is it, Umbopa, son of a fool?" I shouted in Zulu. - "It is food and water, Macumazahn," and again he waved the - green thing. - Then I saw what he had got. It was a melon. We had hit upon - a patch of wild melons, thousands of them, and dead ripe. - "Melons!" I yelled to Good, who was next me; and in another - second he had his false teeth fixed in one. - I think we ate about six each before we had done, and, poor - fruit as they were, I doubt if I ever thought anything nicer. - [ King Solomon's Mines, by H. Rider Haggard ] -mercury - Roman god of commerce, trade and travellers. He is commonly - depicted carrying a caduceus (a staff with two snakes - intertwining around it) and a purse. -*mimic - The ancestors of the modern day chameleon, these creatures can - assume the form of anything in their surroundings. They may - assume the shape of objects or dungeon features. Unlike the - chameleon though, which assumes the shape of another creature - and goes in hunt of food, the mimic waits patiently for its - meals to come in search of it. -*mind flayer - This creature has a humanoid body, tentacles around its - covered mouth, and three long fingers on each hand. Mind - flayers are telepathic, and love to devour intelligent beings, - especially humans. If they hit their victim with a tentacle, - the mind flayer will slowly drain it of all intelligence, - eventually killing its victim. -mine* -gnomish mines - Made by Dwarfs. The Rule here is that the Mine is either long - deserted or at most is inhabited by a few survivors who will - make confused claims to have been driven out/decimated by humans/ - other Dwarfs/Minions of the Dark Lord. Inhabited or not, this - Mine will be very complex, with many levels of galleries, - beautifully carved and engineered. What was being mined here - is not always evident, but at least some of the time it will - appear to have been Jewels, since it is customary to find - unwanted emeralds, etc., still embedded in the rock of the - walls. Metal will also be present, but only when made up into - armor and weapons (_wondrous_). - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -minotaur - The Minotaur was a monster, half bull, half human, the - offspring of Minos' wife Pasiphae and a wonderfully beautiful - bull. ... When the Minotaur was born Minos did not kill him. - He had Daedalus, a great architect and inventor, construct a - place of confinement for him from which escape was impossible. - Daedalus built the Labyrinth, famous throughout the world. - Once inside, one would go endlessly along its twisting paths - without ever finding the exit. - [ Mythology, by Edith Hamilton ] -mit*ra* - Originating in India (Mitra), Mithra is a god of light who - was translated into the attendant of the god Ahura Mazda in - the light religion of Persia; from this he was adopted as - the Roman deity Mithras. He is not generally regarded as a - sky god but a personification of the fertilizing power of - warm, light air. According to the _Avesta_, he possesses - 10,000 eyes and ears and rides in a chariot drawn by white - horses. Mithra, according to Zarathustra, is concerned with - the endless battle between light and dark forces: he - represents truth. He is responsible for the keeping of oaths - and contracts. He is attributed with the creation of both - plants and animals. His chief adversary is Ahriman, the - power of darkness. - [ The Encyclopaedia of Myths and Legends of All Nations, - by Herbert Spencer Robinson and Knox Wilson ] -*mithril* - _Mithril_! All folk desired it. It could be beaten like - copper, and polished like glass; and the Dwarves could make - of it a metal, light and yet harder than tempered steel. - Its beauty was like to that of common silver, but the beauty - of _mithril_ did not tarnish or grow dim. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -*mitre of holiness - This helm of brilliance performs all of the normal functions - of a helm of brilliance, but also has the ability to protect - anyone who carries it from fire. When invoked, it boosts - the energy of the invoker, allowing them to cast more spells. -mjollnir - Forged by the dwarves Eitri and Brokk, in response to Loki's - challenge, Mjollnir is an indestructible war hammer. It has - two magical properties: when thrown it always returned to - Thor's hand; and it could be made to shrink in size until it - could fit inside Thor's shirt. Its only flaw is that it has - a short handle. The other gods judged Mjollnir the winner of - the contest because, of all the treasures created, it alone had - the power to protect them from the giants. As the legends - surrounding Mjollnir grew, it began to take on the quality of - "vigja", or consecration. Thor used it to consecrate births, - weddings, and even to raise his goats from the dead. In the - Norse mythologies Mjollnir is considered to represent Thor's - governance over the entire cycle of life - fertility, birth, - destruction, and resurrection. -mog - Mog is known as the Spider God. Mog resembles a four-limbed - spider with a handsome, if not entirely human, face. -~slime mold -*mold - Mold, multicellular organism of the division Fungi, typified - by plant bodies composed of a network of cottony filaments. - The colors of molds are due to spores borne on the filaments. - Most molds are saprophytes. Some species (e.g., penicillium) - are used in making cheese and antibiotics. - [ The Concise Columbia Encyclopedia ] -mol?ch - And the Lord spake unto Moses, saying, - Again, thou shalt say to the children of Israel, Whosoever - he be of the children of Israel, or of the strangers that - sojourn in Israel, that giveth any of his seed unto Molech; - he shall surely be put to death: the people of the land shall - stone him with stones. - And I will set my face against that man, and will cut him off - from among his people; because he hath given of his seed unto - Molech, to defile my sanctuary, and to profane my holy name. - And if the people of the land do any ways hide their eyes - from the man, when he giveth of his seed unto Molech, and kill - him not: - Then I will set my face against that man, and against his - family, and will cut him off, and all that go a whoring after - him, to commit whoredom with Molech, from among their people. - [ Leviticus 20:1-5 ] -monk -* monk -grand master -master kaen - One day, an army general invited the Buddhist monk I-Hsiu - (literally, "One Rest") to his military head office for a - dinner. I-Hsiu was not accustomed to wearing luxurious - clothings and so he just put on an old ordinary casual - robe to go to the military base. To him, "form is void". - - As he approached the base, two soldiers appeared before him - and shouted, "Where does this beggar came from? Identify - yourself! You do not have permission to be around here!" - - "My name is I-Hsiu Dharma Master. I am invited by your - general for a supper." - - The two soldiers examined the monk closely and said, "You - liar. How come my general invites such a shabby monk to - dinner? He invites the very solemn venerable I-Hsiu to our - base for a great ceremony today, not you. Now, get out!" - - I-Hsiu was unable to convince the soldiers that he was - indeed the invited guest, so he returned to the temple - and changed to a very formal solemn ceremonial robe for - the dinner. And as he returned to the military base, the - soldiers observed that he was such a great Buddhist monk, - let him in with honour. - - At the dinner, I-Hsiu sat in front of the table full of - food but, instead of putting the food into his mouth, he - picked up the food with his chopsticks and put it into - his sleeves. The general was curious, and whispered to - him, "This is very embarrassing. Do you want to take - some food back to the temple? I will order the cook to - prepare some take out orders for you." "No" replied the - monk. "When I came here, I was not allowed into the - base by your soldiers until I wear this ceremonial robe. - You do not invite me for a dinner. You invite my robe. - Therefore, my robe is eating the food, not me." - [ Dining with a General - a Zen Buddhism Koan, - translation by Yiu-man Chan ] -monkey - "Listen, man-cub," said the Bear, and his voice rumbled like - thunder on a hot night. "I have taught thee all the Law of - the Jungle for all the peoples of the jungle--except the - Monkey-Folk who live in the trees. They have no law. They - are outcasts. They have no speech of their own, but use the - stolen words which they overhear when they listen, and peep, - and wait up above in the branches. Their way is not our way. - They are without leaders. They have no remembrance. They - boast and chatter and pretend that they are a great people - about to do great affairs in the jungle, but the falling of - a nut turns their minds to laughter and all is forgotten. - We of the jungle have no dealings with them. We do not drink - where the monkeys drink; we do not go where the monkeys go; - we do not hunt where they hunt; we do not die where they die...." - [ The Jungle Book, by Rudyard Kipling ] -morning star - The morning star was a medieval weapon resembling a mace, but - with a large spike on the end and smaller spikes around the - circumference. It was also known as the goedendag (from the - Dutch word for "good day") and the holy water sprinkler (from - its resemblance to the aspergillum sometimes used in the - Catholic Mass). It was used by both cavalry and infantry; - the horseman's weapon typically had a shorter haft than the - footman's, which might be up to six feet long. It came into - use in the beginning of the 14th century. - - The name "morning star" is often erroneously applied to the - military flail (also known as the therscol), a similar weapon, - but with the head attached by a short chain. - [ Dictionary of Medieval Knighthood and Chivalry, - by Bradford Broughton ] -mumak* - ... the Mumak of Harad was indeed a beast of vast bulk, and - the like of him does not walk now in Middle-Earth; his kin - that live still in latter days are but memories of his girth - and majesty. On he came, ... his great legs like trees, - enormous sail-like ears spread out, long snout upraised like - a huge serpent about to strike, his small red eyes raging. - His upturned hornlike tusks ... dripped with blood. - [ The Two Towers, by J.R.R. Tolkien ] -*mummy - But for an account of the manner in which the body was - bandaged, and a list of the unguents and other materials - employed in the process, and the words of power which were - spoken as each bandage was laid in its place, we must have - recourse to a very interesting papyrus which has been edited - and translated by M. Maspero under the title of Le Rituel de - l'Embaumement. ... - Everything that could be done to preserve the body was now - done, and every member of it was, by means of the words of - power which changed perishable substances into imperishable, - protected to all eternity; when the final covering of purple - or white linen had been fastened upon it, the body was ready - for the tomb. - [ Egyptian Magic, by E.A. Wallis Budge ] -mummy wrapping - He held a white cloth -- it was a serviette he had brought - with him -- over the lower part of his face, so that his - mouth and jaws were completely hidden, and that was the - reason for his muffled voice. But it was not that which - startled Mrs. Hall. It was the fact that all his forehead - above his blue glasses was covered by a white bandage, and - that another covered his ears, leaving not a scrap of his - face exposed excepting only his pink, peaked nose. It was - bright, pink, and shiny just as it had been at first. He - wore a dark-brown velvet jacket with a high, black, linen- - lined collar turned up about his neck. The thick black - hair, escaping as it could below and between the cross - bandages, project in curious tails and horns, giving him - the strangest appearance conceivable. - [ The Invisible Man, by H.G. Wells ] -*naga* -*naja* - The naga is a mystical creature with the body of a snake and - the head of a man or woman. They will fiercely protect the - territory they consider their own. Some nagas can be forced - to serve as guardians by a spellcaster of great power. -naginata - A Japanese pole-arm, fitted with a curved single-edged blade. - The blades ranged in length from two to four feet, mounted on - shafts about four to five feet long. The naginata were cut - with a series of short grooves near to the tang, above which - the back edge was thinned, but not sharpened, so that the - greater part of the blade was a flattened diamond shape in - section. Seen in profile, the curve is slight or non- - existent near the tang, becoming more pronounced towards the - point. - [] - - "With his naginata he killed five, but with the sixth it - snapped asunder in the midst and, flinging it away, he drew - his sword, wielding it in the zigzag style, the interlacing, - cross, reversed dragonfly, waterwheel, and eight-sides-at- - once styles of fencing and cutting down eight men; but as he - brought down the ninth with a mighty blow on the helmet, the - blade snapped at the hilt." - [ Story of Tsutsui no Jomio Meishu from Tales of Heike ] -nalfeshnee - Not only do these demons do physical damage with their claws - and bite, but they are capable of using magic as well. -nalzok - Nalzok is Moloch's cunning and unfailingly loyal battle - lieutenant, to whom he trusts the command of warfare when he - does not wish to exercise it himself. Nalzok is a major - demon, known to command the undead. He is hungry for power, - and secretly covets Moloch's position. Moloch doesn't trust - him, but, trusting his own power enough, chooses to allow - Nalzok his position because he is useful. -neanderthal* - 1. Valley between Duesseldorf and Elberfeld in Germany, - where an ancient skull of a prehistoric ancestor to modern - man was found. 2. Human(oid) of the race mentioned above. -neferet -neferet the green - Neferet the Green holds office in her hidden tower, only - reachable by magical means, where she teaches her apprentices - the enigmatic skills of occultism. Despite her many years, she - continues to investigate new spells, especially those involving - translocation. It is further rumored that when she was an - apprentice herself, she accidentally turned her skin green, and - has kept it that way ever since. -newt - (kinds of) small animal, like a lizard, which spends most of - its time in the water. - [ Oxford's Student's Dictionary of Current English ] - - "Fillet of a fenny snake, - In the cauldron boil and bake; - Eye of newt and toe of frog, - Wool of bat and tongue of dog, - Adder's fork and blind-worm's sting, - Lizard's leg and howlet's wing, - For a charm of powerful trouble, - Like a hell-broth boil and bubble." - [ Macbeth, by William Shakespeare ] -ninja-to - A Japanese broadsword. -*norn - The Norns were the three Norse Fates, or the goddesses of fate. - Female giants, they brought the wonderful Golden Age to an end. - They cast lots over the cradle of every child that was born, - and placed gifts in the cradle. Their names were Urda, - Verdandi, and Skuld, representing the past, the present, and - the future. Urda and Verdandi were kindly disposed, but Skuld - was cruel and savage. Their tasks were to sew the web of - fate, to water the sacred ash, Yggdrasil, and to keep it in - good condition by placing fresh earth around it daily. In her - fury, Skuld often spoiled the work of her sisters by tearing - the web to shreds. - [ The Encyclopaedia of Myths and Legends of All Nations, - by Herbert Spencer Robinson and Knox Wilson ] -nunchaku - A nunchaku is two sections of wood (or metal in modern - incarnations) connected by a cord or chain. There is much - controversy over its origins; some say it was originally a - Chinese weapon, others say it evolved from a threshing flail; - one theory purports that it was developed from a horse's bit. - Chinese nunchaku tend to be rounded, whereas Japanese are - octagonal, and they were originally linked by horse hair. - There are many variations on the nunchaku, ranging from the - three sectional staff (san-setsu-kon nunchaku), to smaller - multi-section nunchaku. The nunchaku was popularized by - Bruce Lee in a number of films, made in both Hollywood and - Hong Kong. - [ Wikipedia, the free encyclopedia ] -*nymph -naiad - A female creature from Roman and Greek mythology, the nymph - occupied rivers, forests, ponds, etc. A nymph's beauty is - beyond words: an ever-young woman with sleek figure and - long, thick hair, radiant skin and perfect teeth, full lips - and gentle eyes. A nymph's scent is delightful, and her - long robe glows, hemmed with golden threads and embroidered - with rainbow hues of unearthly magnificence. A nymph's - demeanour is graceful and charming, her mind quick and witty. - [] - - Theseus felt her voice pulling him down into fathoms of - sleep. The song was the skeleton of his dream, and the dream - was full of terror. Demon girls were after him, and a bull- - man was goring him. Everywhere there was blood. There was - pain. There was fear. But his head was in the nymph's lap - and her musk was about him, her voice weaving the dream. He - knew then that she had been sent to tell him of something - dreadful that was to happen to him later. Her song was a - warning. But she had brought him a new kind of joy, one that - made him see everything differently. The boy, who was to - become a hero, suddenly knew then what most heroes learn - later -- and some too late -- that joy blots suffering and - that the road to nymphs is beset by monsters. - [ The Minotaur, by Bernard Evslin ] -obsidian* - A volcanic glass, homogeneous in texture and having a low water - content, with a vitreous luster and a conchoidal fracture. The - color is commonly black, but may be some shade of red or brown, - and cut sections sometimes appear to be green. Like other - volcanic glasses, obsidian is a lava that has cooled too quickly - for the contained minerals to crystallize. In chemical - composition it is rich in silica and similar to granite. It is - favored by primitive peoples for knives, arrowheads, spearheads, - and other weapons and tools. - [ The Columbia Encyclopedia, Sixth Edition ] -odin - Also called Sigtyr (god of Victory), Val-father (father of - the slain), One-Eyed, Hanga-god (god of the hanged), Farma- - god (god of cargoes), Hapta-god (god of prisoners), and - Othin. He is the prime god of the Norsemen: god of war and - victory, wisdom and prophecy, poetry, the dead, air and wind, - hospitality, and magic. - As the god of war and victory, Odin is ruler of the Valkyries, - warrior-maidens who lived in the halls of Valhalla in Asgard, - the hall of dead heroes where he held his court. - These chosen ones will defend the realm of the gods against - the Frost Giants on the final day of reckoning, Ragnarok. - As god of the wind, Odin rides through the air on his eight- - footed horse, Sleipnir, wielding Gungner, his spear, normally - accompanied by his ravens, Hugin and Munin, who he would also - use as his spies. - As a god of hospitality, he enjoys visiting the earth in - disguise to see how people were behaving and to see how they - would treat him, not knowing who he was. - Odin is usually represented as a one-eyed wise old man with a - long white beard and a wide-brimmed hat (he gave one of his - eyes to Mimir, the guardian of the well of wisdom in Hel, in - exchange for a draught of knowledge). -ogre* - Anyone who has met a gluttonous, nude, angry ogre, will not - easily forget this encounter -- if he survives it at all. - Both male and female ogres can easily grow as tall as three - metres. Build and facial expressions would remind one of a - Neanderthal. Its small, pointy, keen teeth are striking. - Since ogres avoid direct sunlight, their ragged, unfurry - skin is as white as a sheet. They enjoy coating their body - with lard and usually wear nothing but a loin-cloth. An elf - would smell its rancid stench at ten metres distance. - Ogres are solitary creatures: very rarely one may encounter - a female with two or three young. They are the only real - carnivores among the humanoids, and its favourite meal is -- - not surprisingly -- human flesh. They sometimes ally with - orcs or goblins, but only when they anticipate a good meaty - meal. - [ het Boek van de Regels; Het Oog des Meesters ] -oilskin cloak - During our watches below we overhauled our clothes, and made - and mended everything for bad weather. Each of us had made - for himself a suit of oil-cloth or tarpaulin, and these we - got out, and gave thorough coatings of oil or tar, and hung - upon the stays to dry. Our stout boots, too, we covered - over with a thick mixture of melted grease and tar. Thus we - took advantage of the warm sun and fine weather of the - Pacific to prepare for its other face. - [ Two Years Before the Mast, by Richard Henry Dana ] -oilskin sack - Summer passed all too quickly. On the last day of camp, Mr. - Brickle called his counselors together and paid them what he - owed them. Louis received one hundred dollars - the first - money he had ever earned. He had no wallet and no pockets, - so Mr. Brickle placed the money in a waterproof bag that had - a drawstring. He hung this moneybag around Louis' neck, - along with the trumpet, the slate, the chalk pencil, and the - lifesaving medal. - [ The Trumpet of the Swan, by E.B. White ] -olog-hai - But at the end of the Third Age a troll-race not before seen - appeared in southern Mirkwood and in the mountain borders of - Mordor. Olog-hai they were called in the Black Speech. That - Sauron bred them none doubted, though from what stock was not - known. Some held that they were not Trolls but giant Orcs; - but the Olog-hai were in fashion of body and mind quite unlike - even the largest of Orc-kind, whom they far surpassed in size - and power. Trolls they were, but filled with the evil will - of their master: a fell race, strong, agile, fierce and - cunning, but harder than stone. Unlike the older race of the - Twilight they could endure the Sun.... They spoke little, - and the only tongue they knew was the Black Speech of Barad-dur. - [ The Return of the King, by J.R.R. Tolkien ] -oracle -delphi -p*thia - Delphi under towering Parnassus, where Apollo's oracle was, - plays an important part in mythology. Castalia was its - sacred spring; Cephissus its river. It was held to be the - center of the world, so many pilgrims came to it, from - foreign countries as well as Greece. No other shrine rivaled - it. The answers to the questions asked by the anxious - seekers for Truth were delivered by a priestess who went into - a trance before she spoke. - [ Mythology, by Edith Hamilton ] -orange -pear - What was the fruit like? Unfortunately, no one can describe - a taste. All I can say is that, compared with those fruits, - the freshest grapefruit you've ever eaten was dull, and the - juiciest orange was dry, and the most melting pear was hard - and woody, and the sweetest wild strawberry was sour. And - there were no seeds or stones, and no wasps. If you had once - eaten that fruit, all the nicest things in this world would - taste like medicines after it. But I can't describe it. You - can't find out what it is like unless you can get to that - country and taste it for yourself. - [ The Last Battle, by C.S. Lewis ] -*orb of detection - This Orb is a crystal ball of exceptional powers. When - carried, it grants ESP, limits damage done by spells, and - protects the carrier from magic missiles. When invoked it - allows the carrier to become invisible. -*orb of fate - Some say that Odin himself created this ancient crystal ball, - although others argue that Loki created it and forged Odin's - signature on the bottom. In any case, it is a powerful - artifact. Anyone who carries it is granted the gift of - warning, and damage, both spell and physical, is partially - absorbed by the orb itself. When invoked it has the power - to teleport the invoker between levels. -goblin king -orcrist - The Great Goblin gave a truly awful howl of rage when he - looked at it, and all his soldiers gnashed their teeth, - clashed their shields, and stamped. They knew the sword at - once. It had killed hundreds of goblins in its time, when - the fair elves of Gondolin hunted them in the hills or did - battle before their walls. They had called it Orcrist, - Goblin-cleaver, but the goblins called it simply Biter. - They hated it and hated worse any one that carried it. - [ The Hobbit, by J.R.R. Tolkien ] -orcus - Orcus, Prince of the Undead, has a ram's head and a poison - stinger. He is most feared, though, for his powerful magic - abilities. His wand causes death to those he chooses. -~orc ??m* -~orcish barbarian -~orcish ranger -~orcish rogue -~orcish wizard -orc* -* orc -uruk*hai - Orcs, bipeds with a humanoid appearance, are related to the - goblins, but much bigger and more dangerous. The average orc - is only moderately intelligent, has broad, muscled shoulders, - a short neck, a sloping forehead and a thick, dark fur. - Their lower eye-teeth are pointing forward, like a boar's. - Female orcs are more lightly built and bare-chested. Not - needing any clothing, they do like to dress in variegated - apparels. Suspicious by nature, orcs live in tribes or - hordes. They tend to live underground as well as above - ground (but they dislike sunlight). Orcs can use all weapons, - tools and armours that are used by men. Since they don't have - the talent to fashion these themselves, they are constantly - hunting for them. There is nothing a horde of orcs cannot - use. - [ het Boek van de Regels; Het Oog des Meesters ] -orion -sirius - Orion was the son of Neptune. He was a handsome giant and a - mighty hunter. His father gave him the power of wading - through the depths of the sea, or, as others say, of - walking on its surface. - - He dwelt as a hunter with Diana (Artemis), with whom he - was a favourite, and it is even said she was about to marry - him. Her brother was highly displeased and often chid her, - but to no purpose. One day, observing Orion wading through - the sea with his head just above the water, Apollo pointed - it out to his sister and maintained that she could not hit - that black thing on the sea. The archer-goddess discharged - a shaft with fatal aim. The waves rolled the dead body of - Orion to the land, and bewailing her fatal error with many - tears, Diana placed him among the stars, where he appears - as a giant, with a girdle, sword, lion's skin, and - club. Sirius, his dog, follows him, and the Pleiads fly - before him. - [ Bulfinch's Mythology, by Thomas Bulfinch ] -osaku - The osaku is a small tool for picking locks. -owlbear - Owlbears are probably the crossbreed creation of a demented - wizard; given the lethal nature of this creation, it is quite - likely the wizard who created them is no longer alive. As - the name might already suggest, owlbears are a cross between - a giant owl and a bear. They are covered with fur and - feathers. -page - A male servant or attendant; specifically, in chivalry, - a lad or young man in training for knighthood, or a youth - of gentle parentage attending a royal or princely personage. - [ Webster's Comprehensive International Dictionary - of the English Language ] -*pall - _Pallium._ The Roman name for a square woollen cloak worn - by men in ancient Greece, especially by philosophers and - courtesans, corresponding to the Roman toga. Hence the - Greeks called themselves _gens palliata,_ and the Romans - called themselves _gens togata._ - [ Brewer's Concise Dictionary of Phrase and Fable ] -panther - And lo! almost where the ascent began, - A panther light and swift exceedingly, - Which with a spotted skin was covered o'er! - - And never moved she from before my face, - Nay, rather did impede so much my way, - That many times I to return had turned. - [ Dante's Inferno, as translated - by Henry Wadsworth Longfellow ] -*paper - Some players, who unconsciously perceive Paper as weak or a - sign of surrender, will shy away from using it entirely or - drop it from their game when they are falling behind. On the - other hand, Paper also connects with a player's perceptions - about writing. There is a quiet power in the printed word. - It has the ability to lay off thousands of employees, declare - war against nations, spread scandal or confess love. Paper, - in short, has power over masses. The fate of the entire world - is determined by print. As such, some players perceive Paper - as a subtle attack, the victory of modern culture over barbarism. - Such players may use Paper to assert their superiority and dignity. - [ The Official Rock Paper Scissors Strategy Guide, - by Douglas and Graham Walker ] -pelias - Conan cried out sharply and recoiled, thrusting his companion - back. Before them rose the great shimmering white form of Satha, - an ageless hate in its eyes. Conan tensed himself for one mad - berserker onslaught -- to thrust the glowing faggot into that - fiendish countenance and throw his life into the ripping sword- - stroke. But the snake was not looking at him. It was glaring - over his shoulder at the man called Pelias, who stood with his - arms folded, smiling. And in the great, cold, yellow eyes - slowly the hate died out in a glitter of pure fear -- the only - time Conan ever saw such an expression in a reptile's eyes. - With a swirling rush like the sweep of a strong wind, the great - snake was gone. - "What did he see to frighten him?" asked Conan, eyeing his - companion uneasily. - "The scaled people see what escapes the mortal eye," answered - Pelias cryptically. "You see my fleshy guise, he saw my naked - soul." - [ Conan the Usurper, by Robert E. Howard and L. Sprague de Camp ] -pick*ax* -broad pick - The mine is full of holes; - With the wound of pickaxes. - But look at the goldsmith's store. - There, there is gold everywhere. - [ Divan-i Kebir Meter 2, by Mevlana Celaleddin Rumi ] -*piercer - Ye Piercer doth look like unto a stalactyte, and hangeth - from the roofs of caves and caverns. Unto the height of a - man, and thicker than a man's thigh do they grow, and in - groups do they hang. If a creature doth pass beneath them, - they will by its heat and noise perceive it, and fall upon - it to kill and devour it, though in any other way they move - but exceeding slow. - [ the Bestiary of Xygag ] -piranha - They live in "schools." Many times they will wait for prey - to come to the shallow water of the river. Then the large - group of piranhas will attack. These large groups are able - to kill large animals... Their lower teeth fit perfectly - into the spaces of their upper teeth, creating a tremendous - vice-like bite... Piranhas are attracted to any disturbance - in the water. - [ http://www.animalsoftherainforest.com ] -pit -spiked pit - Amid the thought of the fiery destruction that impended, the - idea of the coolness of the well came over my soul like balm. - I rushed to its deadly brink. I threw my straining vision - below. The glare from the enkindled roof illumined its inmost - recesses. Yet, for a wild moment, did my spirit refuse to - comprehend the meaning of what I saw. At length it forced -- - it wrestled its way into my soul -- it burned itself in upon my - shuddering reason. Oh! for a voice to speak! -- oh! horror! -- - oh! any horror but this! - [ The Pit and the Pendulum, by Edgar Allan Poe ] -pit fiend - Pit fiends are among the more powerful of devils, capable of - attacking twice with weapons as well as grabbing and crushing - the life out of those unwary enough to enter their - domains. -platinum yendorian express card - This is an ancient artifact made of an unknown material. It - is rectangular in shape, very thin, and inscribed with - unreadable ancient runes. When carried, it grants the one - who carries it ESP, and reduces all spell induced damage done to - the carrier by half. It also protects from magic missile - attacks. Finally, its power is such that when invoked, it - can charge other objects. -# playing style, rather vague topic but these quotes are too apt to pass up -player -play* style -user - Be bold, - be bold, - but not too bold. - Or else your life's blood, - shall run cold. - [ The White Road, by Neil Gaiman ] - - People think I'm crazy to worry all the time; - If you paid attention, you'd be worried too. - You better pay attention, or this world we love so much - Might just kill you. - [ It's a Jungle Out There, by Randy Newman ] -# [ theme song from "Monk" ] -poison -poisoned -potion of sickness -*venom - Fate intervened. Some of us, that day, she led inexorably - through the gates of death. Some of us, innocent and unsuspecting, - took, unwillingly, that one last step to oblivion. Some of us took - very little sugar. - [ We Have Always Lived in the Castle, - by Shirley Jackson ] -polearm -* polearm -partisan -ranseur -spetum -glaive -halberd -bardiche -angled poleaxe -long poleaxe -voulge -pole cleaver -fauchard -pole sickle -guisarme -bill-guisarme -lucern hammer -bec de corbin - Many of the weapons of the Middle Ages were poled or long-shafted - arms. Unlike the ancient spear or javelin, however, they were not - intended to be thrown. Some were devices with simple single- or - double-edged blades and nothing more, while others combined - the pick, spear, and hammer or axe all in one weapon. - [ Heraldry and Armor of the Middle Ages, by Marvin H. Pakula ] -polymorph trap - One morning, as Gregor Samsa was waking up from anxious dreams, - he discovered that in bed he had been changed into a monstrous - verminous bug. He lay on his armour-hard back and saw, as he - lifted his head up a little, his brown, arched abdomen divided - up into rigid bow-like sections. From this height the blanket, - just about ready to slide off completely, could hardly stay in - place. His numerous legs, pitifully thin in comparison to the - rest of his circumference, flickered helplessly before his eyes. - [ The Metamorphosis, by Franz Kafka, - translated by Ian Johnston ] -pony - Hey! now! Come hoy now! Whither do you wander? - Up, down, near or far, here, there or yonder? - Sharp-ears, Wise-nose, Swish-tail and Bumpkin, - White-socks my little lad, and old Fatty Lumpkin! - - [...] - Tom called them one by one and they climbed over the brow and - stood in a line. Then Tom bowed to the hobbits. - - "Here are your ponies, now!" he said. "They've more sense (in some - ways) than you wandering hobbits have -- more sense in their noses. - For they sniff danger ahead which you walk right into; and if they - run to save themselves, then they run the right way." - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -*portal - Portals can be Mirrors, Pictures, Standing Stones, Stone - Circles, Windows, and special gates set up for the purpose. - You will travel through them both to distant parts of the - continent and to and from our own world. The precise manner - of their working is a Management secret. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -trident -poseido*n - Poseido(o)n, lord of the seas and father of rivers and - fountains, was the son of Chronos and Rhea, brother of Zeus, - Hades, Hera, Hestia and Demeter. His rank of ruler of the - waves he received by lot at the Council Meeting of the Gods, - at which Zeus took the upper world for himself and gave - dominion over the lower world to Hades. - - Poseidon is associated in many ways with horses and thus is - the god of horses. He taught men how to ride and manage the - animal he invented and is looked upon as the originator and - guardian deity of horse races. - - His symbol is the familiar trident or three-pronged spear - with which he can split rocks, cause or quell storms, and - shake the earth, a power which makes him the god of - earthquakes as well. Physically, he is shown as a strong and - powerful ruler, every inch a king. - [ The Encyclopaedia of Myths and Legends of All Nations, - by Herbert Spencer Robinson and Knox Wilson ] -~*sleeping -~*booze -*potion* - POTABLE, n. Suitable for drinking. Water is said to be - potable; indeed, some declare it our natural beverage, - although even they find it palatable only when suffering - from the recurrent disorder known as thirst, for which it - is a medicine. Upon nothing has so great and diligent - ingenuity been brought to bear in all ages and in all - countries, except the most uncivilized, as upon the - invention of substitutes for water. To hold that this - general aversion to that liquid has no basis in the - preservative instinct of the race is to be unscientific -- - and without science we are as the snakes and toads. - [ The Devil's Dictionary, by Ambrose Bierce ] - - Jack Burton: What's in the flask, Egg? Magic potion? - Egg Shen: Yeah. - Jack: I thought so, good. What do we do? Drink it? - Egg: Yeah. - Jack: Good, I thought so. - [later] - Jack: This does what again, exactly? - Egg: Huge buzz! [drinks] Oh good! See things no - one else can see, do things no one else can do. - [ Big Trouble in Little China, directed by - John Carpenter, written by Gary Goldman & - David Z. Weinstein, adaptation by W.D. Richter ] -pray* - Whatever a man prays for, he prays for a miracle. Every - prayer reduces itself to this: Great God, grant that twice - two be not four. - [ Fathers and Sons, by Ivan Turgenev ] -priest* -* priest* -cleric -* cleric -acolyte - [...] For the two priests were talking exactly like priests, - piously, with learning and leisure, about the most aerial - enigmas of theology. The little Essex priest spoke the more - simply, with his round face turned to the strengthening stars; - the other talked with his head bowed, as if he were not even - worthy to look at them. But no more innocently clerical - conversation could have been heard in any white Italian cloister - or black Spanish cathedral. The first he heard was the tail of - one of Father Brown's sentences, which ended: "... what they - really meant in the Middle Ages by the heavens being - incorruptible." The taller priest nodded his bowed head and - said: "Ah, yes, these modern infidels appeal to their reason; - but who can look at those millions of worlds and not feel that - there may well be wonderful universes above us where reason is - utterly unreasonable?" - [ The Innocence of Father Brown, by G.K. Chesterton ] -paddle cactus - Opuntia, commonly called prickly pear, is a genus in the cactus - family, Cactaceae. Prickly pears are also known as tuna (fruit), - sabra, nopal (paddle, plural nopales) from the Nahuatl word - nopalli for the pads, or nostle, from the Nahuatl word nochtli - for the fruit; or paddle cactus. - [ Wikipedia, the free encyclopedia ] -prisoner - Where am I? - In the Village. - What do you want? - Information. - Whose side are you on? - That would be telling. We want information ... - information ... - You won't get it. - By hook or by crook, we will. - Who are you? - The new Number 2. - Who is Number 1? - You are Number 6. - I am not a number! I am a free man! - [ The Prisoner, by Patrick McGoohan ] -ptah - Known under various names (Nu, Neph, Cenubis, Amen-Kneph, - Khery-Bakef), Ptah is the creator god and god of craftsmen. - He is usually depicted as wearing a closely fitting robe - with only his hands free. His most distinctive features are - the invariable skull-cap exposing only his face and ears, - and the _was_ or rod of domination which he holds, - consisting of a staff surmounted by the _ankh_ symbol of - life. He is otherwise symbolized by his sacred animal, the - bull. -*purple worm - A gargantuan version of the harmless rain-worm, the purple - worm poses a huge threat to the ordinary adventurer. It is - known to swallow whole and digest its victims within only a - few minutes. These worms are always on guard, sensitive - to the most minute vibrations in the earth, but may also - be awakened by a remote shriek. -pyrolisk - At first glance around the corner, I thought it was another - cockatrice. I had encountered the wretched creatures two or - three times since leaving the open area. I quickly ducked my - head back and considered what to do next. My heart had begun - to thump audibly as I patted my pack to make sure I still had - the dead lizards at close reach. A check of my attire showed - no obvious holes or damage. I had to keep moving. One deep - breath, and a count of three, two, one, and around the corner - I bolted. But it was no cockatrice! I felt a sudden intense - searing of the skin around my face, and flames began to leap - from my pack. I tossed it to the ground, and quickly retreated - back, around that corner, desperately striving to get out of - its sight. -python - A monstrous serpent in Greek mythology, and the child of Gaia, - the goddess earth. It was produced from the slime and mud - that was left on the earth by the great flood of Deucalion. - It lived in a cave and guarded the oracle of Delphi on mount - Parnassus. - - No man dared to approach the beast and the people asked Apollo - for help. He came down from Mount Olympus with his silver bow - and golden arrows. With using only one arrow he killed the - serpent and claimed the oracle for himself. ... The old name of - Delphi, Pytho, refers to the serpent. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -quadruped - The woodlands and other regions are inhabited by multitudes - of four-legged creatures which cannot be simply classified. - They might not have fiery breath or deadly stings, but - adventurers have nevertheless met their end numerous times - due to the claws, hooves, or bites of such animals. -quantum mechanic - These creatures are not native to this universe; they seem - to have strangely derived powers, and unknown motives. - [] - - _Uncertainty Principle_ The principle that it is not possible - to know with unlimited accuracy both the position and momentum - of a particle. ... An explanation of the uncertainty is that - in order to locate a particle exactly, an observer must be - able to bounce off it a photon of radiation; this act of - location itself alters the position of the particle - in an unpredictable way. To locate the position accurately, - photons of short wavelength would have to be used. The high - momentum of such photons would cause a large effect on the - position. On the other hand, using photons of lower momenta - would have less effect on the particle's position, but would - be less accurate because of the lower wavelength. - [ A Concise Dictionary of Physics ] -quasit - Quasits are small, evil creatures, related to imps. Their - talons release a very toxic poison when used in an attack. -*quest - Many, possibly most, Tours are organized as a Quest. This - is like a large-scale treasure hunt, with clues scattered - all over the continent, a few false leads, Mystical Masters - as game-show hosts, and the Dark Lord and the Terrain to - make the Quest interestingly difficult. [...] - In order to be assured of your future custom, the Management - has a further Rule: Tourists, far from being rewarded for - achieving their Quest Object, must then go on to conquer - the Dark Lord or set about Saving the World, or both. And - why not? By then you will have had a lot of practice in - that sort of thing and, besides, the Quest Object is usually - designed to help you do it. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -quetzalcoatl - One of the principal Aztec-Toltec gods was the great and wise - Quetzalcoatl, who was called Kukumatz in Guatemala, and - Kukulcan in Yucatan. His image, the plumed serpent, is found - on both the oldest and the most recent Indian edifices. ... - The legend tells how the Indian deity Quetzalcoatl came from - the "Land of the Rising Sun". He wore a long white robe and - had a beard; he taught the people crafts and customs and laid - down wise laws. He created an empire in which the ears of - corn were as long as men are tall, and caused bolls of colored - cotton to grow on cotton plants. But for some reason or other - he had to leave his empire. ... But all the legends of - Quetzalcoatl unanimously agree that he promised to come again. - [ Gods, Graves, and Scholars, by C.W. Ceram ] -quit* - Maltar: [...] I remembered a little saying I learned my - first day at the academy. - Natalie: Yeah, yeah, I know. Winners never quit and quitters - never win. - Maltar: What? No! Winners never quit and quitters should - be cast into the Flaming Pit of Death. - [ Snow Day, directed by Chris Koch, - written by Will McRobb and Chris Viscardi ] -raijin -raiden - The Japanese god of thunder (rai) and lightning (den). He - prevented the Mongols from invading Japan in 1274. Sitting on - a cloud he sent forth a shower of lightning arrows upon the - invading fleet. Only three men escaped. Raiden is portrayed - as a red demon with sharp claws, carrying a large drum. He is - fond of eating human navels. The only protection against him - is to hide under a mosquito net. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -ranger -* ranger - "Lonely men are we, Rangers of the wild, hunters -- but hunters - ever of the servants of the Enemy; for they are found in many - places, not in Mordor only. - If Gondor, Boromir, has been a stalwart tower, we have played - another part. Many evil things there are that your strong walls - and bright swords do not stay. You know little of the lands - beyond your bounds. Peace and freedom, do you say? The North - would have known them little but for us. Fear would have - destroyed them. But when dark things come from the houseless - hills, or creep from sunless woods, they fly from us. What - roads would any dare to tread, what safety would there be in - quiet lands, or in the homes of simple men at night, if the - Dunedain were asleep, or were all gone into the grave?" - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -rat -* rat - Rats are long-tailed rodents. They are aggressive, - omnivorous, and adaptable, often carrying diseases. - [] - - "The rat," said O'Brien, still addressing his invisible - audience, "although a rodent, is carnivorous. You are aware - of that. You will have heard of the things that happen in - the poor quarters of this town. In some streets a woman dare - not leave her baby alone in the house, even for five minutes. - The rats are certain to attack it. Within quite a small time - they will strip it to the bones. They also attack sick or - dying people. They show astonishing intelligence in knowing - when a human being is helpless." - [ 1984, by George Orwell ] -raven - But the raven, sitting lonely on the placid bust, spoke only - That one word, as if his soul in that one word he did outpour. - Nothing further then he uttered -- not a feather then he fluttered-- - Till I scarcely more than muttered, 'other friends have flown before-- - On the morrow *he* will leave me, as my hopes have flown before.' - Then the bird said, 'Nevermore.' - [ The Raven, by Edgar Allan Poe ] -~*invisibility -ring -* ring -ring of * - Three Rings for the Elven-kings under the sky, - Seven for the Dwarf-lords in their halls of stone, - Nine for Mortal Men doomed to die, - One for the Dark Lord on his dark throne, - In the Land of Mordor where the Shadows lie. - One Ring to rule them all, One Ring to find them, - One Ring to bring them all and in the darkness bind them - In the Land of Mordor where the Shadows lie. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -ring of invisibility - "When time came for the shepherds to hold their customary - assembly in order to prepare their monthly report to the king - about the state of the flocks, he came too, wearing this ring. - While he was sitting with the others, it chanced that he moved - the collet of the ring around toward himself into the inside of - his hand; having done this, he disappeared from the sight of - those who were sitting beside him, and they discussed of him as - of someone who had left. And he wondered and once again feeling - for the ring, he turned the collet outwards and, by turning it, - reappeared. Reflecting upon this, he put the ring to the test - to see if it indeed had such power, and he came to this - conclusion that, by turning the collet inwards, he became - invisible, outwards, visible. Having perceived this, he at - once managed for himself to become one of the envoys to the - king; upon arrival, having seduced his wife, with her help, - he laid a hand on the king, murdered him and took hold of the - leadership." - [ The Republic, by Plato, translated by James Adam ] -robe - Robes are the only garments, apart from Shirts, ever to have - sleeves. They have three uses: - 1. As the official uniform of Priests, Priestesses, Monks, - Nuns (see Nunnery), and Wizards. The OMT [ Official Management - Term ] prescribed for the Robes of Priests and Nuns is that - they _fall in severe folds_; of Priestesses that they _float_; - and of Wizards that they _swirl_. You can thus see who you - are dealing with. - 2. For Kings. The OMT here is _falling in stately folds_. - 3. As the garb of Desert Nomads. [...] - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -rock -large rock - Bilbo saw that the moment had come when he must do something. - He could not get up at the brutes and he had nothing to shoot - with; but looking about he saw that in this place there were - many stones lying in what appeared to be a now dry little - watercourse. Bilbo was a pretty fair shot with a stone, and - it did not take him long to find a nice smooth egg-shaped one - that fitted his hand cosily. As a boy he used to practise - throwing stones at things, until rabbits and squirrels, and - even birds, got out of his way as quick as lightning if they - saw him stoop; and even grownup he had still spent a deal of - his time at quoits, dart-throwing, shooting at the wand, - bowls, ninepins and other quiet games of the aiming and - throwing sort - indeed he could do lots of things, besides - blowing smoke-rings, asking riddles and cooking, that I - haven't time to tell you about. There is no time now. While - he was picking up stones, the spider had reached Bombur, and - soon he would have been dead. At that moment Bilbo threw. - The stone struck the spider plunk on the head, and it dropped - senseless off the tree, flop to the ground, with all its legs - curled up. - [ The Hobbit, by J.R.R. Tolkien ] -rock mole - A rock mole is a member of the rodent family. They get their - name from their ability to tunnel through rock in the same - fashion that a mole tunnels through earth. They are known to - eat anything they come across in their diggings, although it - is still unknown how they convert some of these things into - something of nutritional value. -rodent* - A gnawing mammal (order _Rodentia_) having in each jaw two - (rarely four) incisors, growing continually from persistent - pulps, and no canine teeth, as a squirrel, beaver, or rat. - [ Webster's Comprehensive International Dictionary - of the English Language ] -rogue -* rogue - I understand the business, I hear it: to have an open ear, a - quick eye, and a nimble hand, is necessary for a cut-purse; a - good nose is requisite also, to smell out work for the other - senses. I see this is the time that the unjust man doth - thrive. ... The prince himself is about a piece of iniquity, - stealing away from his father with his clog at his heels: if - I thought it were a piece of honesty to acquaint the king - withal, I would not do't: I hold it the more knavery to - conceal it; and therein am I constant to my profession. - [ Autolycus the Rogue, from The Winter's Tale by - William Shakespeare ] -root -dwarven root - But when they were cooked these roots proved good to eat, - somewhat like bread; and the outlaws were glad of them, for - they had long lacked bread save when they could steal it. - "Wild Elves know them not; Grey-elves have not found them; - the proud ones from over the Sea are too proud to delve," - said Mim. - - "What is their name?" said Turin. Mim looked at him sidelong. - "They have no name, save in the Dwarf-tongue, which we do not - teach," he said. "And we not teach Men to find them, for Men - are greedy and thriftless, and would not spare till all the - plants had perished; whereas now they pass them by as they go - blundering in the wild. No more will you learn of me; but you - may have enough of my bounty, as long as you speak fair and - do not spy or steal." Then again he laughed in his throat. - - "They are of great worth." he said. "More than gold in the - hungry winter, for they may be hoarded like the nuts of a - squirrel, and already we were building our store from the - first that are ripe." - [ Unfinished Tales, Part 1, by J.R.R. Tolkien ] -roshi - Roshi is a Japanese word, common in Zen Buddhism, meaning "old" - (ro) and "teacher" (shi). Roshi can be used as a term of - respect, as in the Rinzai school; as a simple reference to - actual age, as in the Soto school; or it can mean a teacher who - has transmitted knowledge to, and thus "given birth" to, a new - teacher. - [ Wikipedia, the free encyclopedia ] -rothe - The rothe (pronounced roth-AY) is a musk ox-like creature with - an aversion to light. It prefers to live underground near - lichen and moss. -*royal jelly - "'Royal Jelly,'" he read aloud, "'must be a substance of - tremendous nourishing power, for on this diet alone, the - honey-bee larva increases in weight fifteen hundred times in - five days!'" - - "How much?" - - "Fifteen hundred times, Mabel. And you know what that means - if you put it in terms of a human being? It means," he said, - lowering his voice, leaning forward, fixing her with those - small pale eyes, "it means that in five days a baby weighing - seven and a half pounds to start off with would increase in - weight to five tons!" - [ Royal Jelly, by Roald Dahl ] -ruby -sapphire - _Corundum._ Mineral, aluminum oxide, Al2O3. The clear - varieties are used as gems and the opaque as abrasive materials. - Corundum occurs in crystals of the hexagonal system and in - masses. It is transparent to opaque and has a vitreous to - adamantine luster. ... The chief corundum gems are the ruby - (red) and the sapphire (blue). - [ The Columbia Encyclopedia, Sixth Edition ] -rust monster - These strange creatures live on a diet of metals. They can - turn a suit of armour into so much useless rusted scrap in no - time at all. -# takes "rust monster or disenchanter" when specifying 'R' -rust monster or disenchanter - These ground-dwelling monsters are known to make short - work out of degrading adventurers' combat equipment. -*saber -*sabre - Flashed all their sabres bare, - Flashed as they turned in air, - Sab'ring the gunners there, - Charging an army, while - All the world wondered: - Plunged in the battery smoke, - Right through the line they broke; - Cossack and Russian - Reeled from the sabre-stroke - Shattered and sundered. - Then they rode back, but not-- - Not the six hundred. - [ The Charge of the Light Brigade, - by Alfred, Lord Tennyson ] -saddle - The horseman serves the horse, - The neat-herd serves the neat, - The merchant serves the purse, - The eater serves his meat; - 'Tis the day of the chattel, - Web to weave, and corn to grind, - Things are in the saddle, - And ride mankind. - [ Ode, by Ralph Waldo Emerson ] -sake - Japanese rice wine. -salamander - For hundreds of years, many people believed that salamanders - were magical. In England in the Middle Ages, people thought - that fire created salamanders. When they set fire to damp - logs, dozens of the slimy creatures scurried out. The word - salamander, in fact, comes from a Greek word meaning "fire - animal". - [ Salamanders, by Cherie Winner ] -samurai -* samurai - By that time, Narahara had already slipped his arm from the - sleeve of his outer robe, drew out his two-and-a-half-foot - Fujiwara Tadahiro sword, and, brandishing it over his head, - began barreling toward the foreigners. In less than a minute, - he had charged upon them and cut one of them through the torso. - The man fled, clutching his bulging guts, finally to fall from - his horse at the foot of a pine tree about a thousand yards - away. Kaeda Takeji finished him off. The other two Englishmen - were severely wounded as they tried to flee. Only the woman - managed to escape virtually unscathed. - [ The Fox-horse, from Drunk as a Lord, by Ryotaro Shiba ] -sandestin - Ildefonse left the terrace and almost immediately sounds - of contention came from the direction of the work-room. - Ildefonse presently returned to the terrace, followed by - Osherl and a second sandestin using the guise of a gaunt blue - bird-like creature, some six feet in height. - - Ildefonse spoke in scathing tones: "Behold these two - creatures! They can roam the chronoplex as easily as you - or I can walk around the table; yet neither has the wit to - announce his presence upon arrival. I found Osherl asleep - in his fulgurite and Sarsem perched in the rafters." - [...] - "No matter," said Rhialto. "He has brought Sarsem, and this - was his requirement. In the main, Osherl, you have done well!" - - "And my indenture point?" - - "Much depends upon Sarsem's testimony. Sarsem, will you sit?" - - "In this guise, I find it more convenient to stand." - - "Then why not alter to human form and join us in comfort at - the table?" - - "That is a good idea." Sarsem became a naked young epicene - in an integument of lavender scales with puffs of purple hair - like pom-poms growing down his back. He seated himself at - the table but declined refreshment. "This human semblance, - though typical, is after all, only a guise. If I were to put - such things inside myself, I might well become uneasy." - [ Rhialto the Marvellous, by Jack Vance ] -sasquatch - The name _Sasquatch_ doesn't really become important in Canada - until the 1930s, when it appeared in the works of J. W. Burns, - a British Columbian writer who used a great deal of Indian - lore in his stories. Burn's Sasquatch was a giant Indian who - lived in the wilderness. He was hairy only in the sense that - he had long hair on his head, and while this Sasquatch lived a - wild and primitive life, he was fully human. - Burns's character proved to be quite popular. There was a - Sasquatch Inn near the town of Harrison, British Columbia, and - Harrison even had a local celebration called "Sasquatch Days." - The celebration which had been dormant for years was revived - as part of British Columbia's centennial, and one of the - events was to be a Sasquatch hunt. The hunt never took place, - perhaps it was never supposed to, but the publicity about it - did bring out a number of people who said they had encountered - a Sasquatch -- not Burns's giant Indian, but the hairy apelike - creature that we have all come to know. - [ The Encyclopedia of Monsters, by Daniel Cohen ] -scalpel - A scalpel is a very sharp knife used for surgery ... Merely - touching a medical scalpel with bare hands to test it will - cut through the skin. ... Medical scalpel blades are gradually - curved for greater precision when cutting through tissue. - [ Wikipedia, the free encyclopedia ] -*sceptre of might - This mace was created aeons ago in some unknown cave, - and has been passed down from generation to generation of - cave dwellers. It is a very mighty mace indeed, and in - addition will protect anyone who wields it from magic - missile attacks. When invoked, it causes conflict in the - area around it. -scimitar - Oh, how handsome, how noble was the Vizier Ali Tebelin, - my father, as he stood there in the midst of the shot, his - scimitar in his hand, his face black with powder! How his - enemies fled before him! - [ The Count of Monte Cristo, by Alexandre Dumas ] -scorpio* - A sub-species of the spider (_Scorpionidae_), the scorpion - distinguishes itself from them by having a lower body that - ends in a long, jointed tail tapering to a poisonous stinger. - They have eight legs and pincers. - [ Van Dale's Groot Woordenboek der Nederlandse Taal ] -scorpius - Since early times, the Scorpion has represented death, darkness, - and evil. Scorpius is the reputed slayer of Orion the Hunter. - [...] The gods put both scorpion and hunter among the stars, but - on opposite sides of the sky so they would never fight again. - As Scorpius rises in the east, Orion sets in the west. - [ 365 Starry Nights, by Chet Raymo ] -scroll of punishment -punish* - It matters not how strait the gate, - How charged with punishments the scroll, - I am the master of my fate; - I am the captain of my soul. - [ Invictus, by William Ernest Henley ] -*scroll -scroll * - And I was gazing on the surges prone, - With many a scalding tear and many a groan, - When at my feet emerg'd an old man's hand, - Grasping this scroll, and this same slender wand. - I knelt with pain--reached out my hand--had grasp'd - Those treasures--touch'd the knuckles--they unclasp'd-- - I caught a finger: but the downward weight - O'erpowered me--it sank. Then 'gan abate - The storm, and through chill aguish gloom outburst - The comfortable sun. I was athirst - To search the book, and in the warming air - Parted its dripping leaves with eager care. - Strange matters did it treat of, and drew on - My soul page after page, till well-nigh won - Into forgetfulness; when, stupefied, - I read these words, and read again, and tried - My eyes against the heavens, and read again. - [ Endymion, by John Keats ] -set -seth - The ancient Egyptian god of chaos (Set), the embodiment of - hostility and even of outright evil. He is also a god of war, - deserts, storms, and foreign lands. ... In the Book of the - Dead, Seth is called "Lord of the Northern Sky" and is held - responsible for storms and cloudy weather. ... Seth was - portrayed as a man with the head of undeterminable origin, - although some see in it the head of an aardvark. He had a - curved snout, erect square-tipped ears and a long forked tail. - He was sometimes entirely in animal form with the body similar - to that of a greyhound. Animals sacred to this god were the - dog, the jackal, the gazelle, the donkey, the crocodile, the - hippopotamus, and the pig. - [ Encyclopedia Mythica, ed. M.F. Lindemans ] -shad* - For the shades--figures of jet black streaking across the - white-knobbed ground--were upon her. Strength was meaningless - against shades. They had no real substance. Only two things - mattered: moving quickly and not letting yourself be - frightened. Shades were dangerous, but so long as you had silver, - you could fight. [...] - - Her knife passed through the shade with a slight tugging feeling, - creating a shower of bright white sparks that sprayed out of the - shade. The shade pulled back, its black tendrils writhing about - one another. - - Silence spun on the other. The pitch sky let her see only the - thing's eyes, a horrid green, as it reached for her. She lunged. - - Its spectral hands were upon her, the icy cold of its fingers - gripping her arm below the elbow. She could feel it. Shade - fingers had substance; they could grab you, hold you back. Only - silver warded them away. Only with silver could you fight. - [ Shadows for Silence in the Forests of Hell, - by Brandon Sanderson ] -shaman karnov - Making his quarters in the Caves of the Ancestors, Shaman - Karnov unceasingly tries to shield his neanderthal people - from Tiamat's minions' harassments. -shan*lai*ching - The Chinese god of Mountains and Seas, also the name of an - old book (also Shan Hai Tjing), the book of mountains and - seas - which deals with the monster Kung Kung trying to - seize power from Yao, the fourth emperor. - [ Spectrum Atlas van de Mythologie ] -shark - As the shark moved, its dark top reflected virtually no - light. The denticles on its skin muted the whoosh of its - movements as the shark rose, driven by the power of the - great tail sweeping from side to side, like a scythe. - The fish exploded upward. - Charles Bruder felt a slight vacuum tug in the motion of - the sea, noted it as a passing current, the pull of a wave, - the tickle of undertow. He could not have heard the faint - sucking rush of water not far beneath him. He couldn't - have seen or heard what was hurtling from the murk at - astonishing speed, jaws unhinging, widening, for the - enormous first bite. It was the classic attack - that no other creature in nature could make -- a bomb from - the depths. - [ Close to Shore, by Michael Capuzzo ] -~uruk* -~white* -*shield - In his hands he took his shield, all glittering: no one ever - broke it with a blow or crushed it. And a wonder it was to see; - for its whole orb shimmered with enamel and white ivory and - electrum, and it glowed with shining gold; and there were zones - of cyanus drawn upon it. In the center was Fear worked in adamant, - unspeakable, staring backwards with eyes that glowed with fire. - His mouth was full of teeth in a white row, fearful and daunting, - and upon his grim brow hovered frightful Strife who arrays the - throng of men: pitiless she, for she took away the mind and senses - of poor wretches who made war against the son of Zeus. Their souls - passed beneath the earth and went down into the house of Hades; - but their bones, when the skin is rotted about them, crumble away - on the dark earth under parching Sirius. - [ Hesiod, The Homeric Hymns and Homerica, - translation by Hugh G. Evelyn-White ] -shito - A Japanese stabbing knife. -shopkeeper - There have been three general theories put forward to explain - the phenomenon of the wandering shops or, as they are - generically known, _tabernae vagantes._ - The first postulates that many thousands of years ago there - evolved somewhere in the multiverse a race whose single talent - was to buy cheap and sell dear. Soon they controlled a vast - galactic empire or, as they put it, Emporium, and the more - advanced members of the species found a way to equip their very - shops with unique propulsion units that could break the dark - walls of space itself and open up vast new markets. And long - after the worlds of the Emporium perished in the heat death of - their particular universe, after one last defiant fire sale, - the wandering starshops still ply their trade, eating their way - through the pages of spacetime like a worm through a three- - volume novel. - The second is that they are the creation of a sympathetic Fate, - charged with the role of supplying exactly the right thing - at the right time. - The third is that they are simply a very clever way of getting - around the various Sunday Closing acts. - All these theories, diverse as they are, have two things in - common. They explain the observed facts, and they are - completely and utterly wrong. - [ The Light Fantastic, by Terry Pratchett ] -shrieker - With a single, savage thrust of her spear, the warrior-woman - impaled the fungus, silencing it. However, it was too late: - the alarm had been raised[...] - Suddenly, a large, dark shape rose from the abyss before them, - its fetid bulk looming overhead... The monster was some kind of - great dark worm, but that was about all they were sure of. - [ The Adventurers, Epic IV, by Thomas A. Miller ] -throwing star -shuriken - You know, that's what I hate most about fighting against magic: - you never know what they're trying to do to you until it hits. - The sorceress knew what hit her, however. Two of the shuriken - got past whatever defenses she had. One caught her just below - the throat, the other in the middle of her chest. It wouldn't - kill her, but she wouldn't be fighting anyone for a while. - [ Jhereg, by Steven Brust ] -skeleton - A skeleton is a magically animated undead creature. Unlike - shades, only a humanoid creature can be used to create a - skeleton. No one knows why this is true, but it has become - an accepted fact amongst the practitioners of the black arts. -slasher - "That dog belonged to a settler who tried to build his cabin - on the bank of the river a few miles south of the fort," - grunted Conan. ... "We took him to the fort and dressed his - wounds, but after he recovered he took to the woods and turned - wild. -- What now, Slasher, are you hunting the men who - killed your master?" ... "Let him come," muttered Conan. - "He can smell the devils before we can see them." ... - Slasher cleared the timbers with a bound and leaped into the - bushes. They were violently shaken and then the dog slunk - back to Balthus' side, his jaws crimson. ... "He was a man," - said Conan. "I drink to his shade, and to the shade of the - dog, who knew no fear." He quaffed part of the wine, then - emptied the rest upon the floor, with a curious heathen - gesture, and smashed the goblet. "The heads of ten Picts - shall pay for this, and seven heads for the dog, who was a - better warrior than many a man." - [ Conan The Warrior, by Robert E Howard ] -*sleep - Sleep is a death; oh, make me try - By sleeping, what it is to die, - And as gently lay my head - On my grave, as now my bed. - [ Religio Medici, by Sir Thomas Browne ] -slime mold - Science fiction did not invent the slime molds, but it has - borrowed from them in using the idea of sheets of liquid, flowing - cytoplasm engulfing and dissolving every living thing they touch. - What fiction can only imagine, nature has produced, and only their - small size and dependence on coolness, moisture, and darkness has - kept the slime molds from ordinary observation, for they are common - enough. - [ Encyclopaedia Britannica, 1977 ] -sling - And it came to pass, when the Philistine arose, and came and - drew nigh to meet David, that David hasted, and ran toward - the army to meet the Philistine. - And David put his hand in his bag, and took thence a stone, - and slang it, and smote the Philistine in his forehead, that - the stone sunk into his forehead; and he fell upon his face - to the earth. - So David prevailed over the Philistine with a sling and with - a stone, and smote the Philistine, and slew him; but there - was no sword in the hand of David. - [ 1 Samuel 17:48-50 ] -*snake -serpent -water moccasin -pit viper - Now the serpent was more subtle than any beast of the field - which the Lord God had made. And he said unto the woman, Yea, - hath God said, Ye shall not eat of every tree of the garden? - And the woman said unto the serpent, We may eat of the fruit of - the trees of the garden: but of the fruit of the tree which is - in the midst of the garden, God hath said, Ye shall not eat of - it, neither shall ye touch it, lest ye die. And the serpent - said unto the woman, Ye shall not surely die: for God doth - know that in the day ye eat thereof, then your eyes shall be - opened, and ye shall be as gods, knowing good and evil. And - when the woman saw that the tree was good for food, and that it - was pleasant to the eyes, and a tree to be desired to make one - wise, she took of the fruit thereof, and did eat, and gave also - unto her husband with her; and he did eat. - - And the Lord God said unto the woman, What is this that thou - hast done? And the woman said, The serpent beguiled me, and I - did eat. And the Lord God said unto the serpent, Because thou - hast done this, thou art cursed above all cattle, and above - every beast of the field; upon thy belly shalt thou go, and - dust shalt thou eat all the days of thy life: And I will put - enmity between thee and the woman, and between thy seed and her - seed; it shall bruise thy head, and thou shalt bruise his heel. - [ Genesis 3:1-6,13-15 ] -snickersnee - Ah, never shall I forget the cry, - or the shriek that shrieked he, - As I gnashed my teeth, and from my sheath - I drew my Snickersnee! - --Koko, Lord high executioner of Titipu - [ The Mikado, by Sir W.S. Gilbert ] -sokoban - Sokoban (Japanese for "warehouse keeper") is a transport puzzle - in which the player pushes boxes around a maze, viewed from - above, and tries to put them in designated locations. Only one - box may be pushed at a time, not two, and boxes cannot be pulled. - As the puzzle would be extremely difficult to create physically, - it is usually implemented as a video game. - - Sokoban was created in 1982 by Hiroyuki Imabayashi, and was - published by Thinking Rabbit, a software house based in - Takarazuka, Japan. Thinking Rabbit also released three sequels: - Boxxle, Sokoban Perfect and Sokoban Revenge. - [ Wikipedia, the free encyclopedia ] -*soldier -sergeant -lieutenant -captain - The soldiers of Yendor are well-trained in the art of war, - many trained by the Wizard himself. Some say the soldiers - are explorers who were unfortunate enough to be captured, - and put under the Wizard's spell. Those who have survived - encounters with soldiers say they travel together in platoons, - and are fierce fighters. Because of the load of their combat - gear, however, one can usually run away from them, and doing - so is considered a wise thing. -*spear -javelin - - they come together with great random, and a spear is brast, - and one party brake his shield and the other one goes down, - horse and man, over his horse-tail and brake his neck, and - then the next candidate comes randoming in, and brast his - spear, and the other man brast his shield, and down he goes, - horse and man, over his horse-tail, and brake his neck, and - then there's another elected, and another and another and - still another, till the material is all used up; and when you - come to figure up results, you can't tell one fight from - another, nor who whipped; and as a picture of living, raging, - roaring battle, sho! why it's pale and noiseless - just - ghosts scuffling in a fog. Dear me, what would this barren - vocabulary get out of the mightiest spectacle? - the burning - of Rome in Nero's time, for instance? Why, it would merely - say 'Town burned down; no insurance; boy brast a window, - fireman brake his neck!' Why, that ain't a picture! - [ A Connecticut Yankee in King Arthur's Court, - by Mark Twain ] -*spellbook* - The Book of Three lay closed on the table. Taran had never - been allowed to read the volume for himself; now he was sure - it held more than Dallben chose to tell him. In the sun- - filled room, with Dallben still meditating and showing no - sign of stopping, Taran rose and moved through the shimmering - beams. From the forest came the monotonous tick of a beetle. - His hands reached for the cover. Taran gasped in pain and - snatched them away. They smarted as if each of his fingers - had been stung by hornets. He jumped back, stumbled against - the bench, and dropped to the floor, where he put his fingers - woefully into his mouth. - Dallben's eyes blinked open. He peered at Taran and yawned - slowly. "You had better see Coll about a lotion for those - hands," he advised. "Otherwise, I shouldn't be surprised if - they blistered." - [ The Book of Three, by Lloyd Alexander ] -*spider - Eight legged creature capable of spinning webs to trap prey. - [] - - "You mean you eat flies?" gasped Wilbur. - "Certainly. Flies, bugs, grasshoppers, choice beetles, - moths, butterflies, tasty cockroaches, gnats, midges, daddy - longlegs, centipedes, mosquitoes, crickets - anything that is - careless enough to get caught in my web. I have to live, - don't I?" - "Why, yes, of course," said Wilbur. - [ Charlotte's Web, by E.B. White ] -*spore -*sphere - The attack by those who want to die -- this is the attack - against which you cannot prepare a perfect defense. - --Human aphorism - [ The Dosadi Experiment, by Frank Herbert ] -squeaky board - A floorboard creaked. Galder had spent many hours tuning them, - always a wise precaution with an ambitious assistant who walked - like a cat. - D flat. That meant he was just to the right of the door. - "Ah, Trymon," he said, without turning, and noted with some - satisfaction the faint indrawing of breath behind him. "Good - of you to come. Shut the door, will you?" - [ The Light Fantastic, by Terry Pratchett ] -~*aesculapius -*staff - So they stood, each in his place, neither moving a finger's - breadth back, for one good hour, and many blows were given - and received by each in that time, till here and there were - sore bones and bumps, yet neither thought of crying "Enough," - or seemed likely to fall from off the bridge. Now and then - they stopped to rest, and each thought that he never had seen - in all his life before such a hand at quarterstaff. At last - Robin gave the stranger a blow upon the ribs that made his - jacket smoke like a damp straw thatch in the sun. So shrewd - was the stroke that the stranger came within a hair's breadth - of falling off the bridge; but he regained himself right - quickly, and, by a dexterous blow, gave Robin a crack on the - crown that caused the blood to flow. Then Robin grew mad - with anger, and smote with all his might at the other; but - the stranger warded the blow, and once again thwacked Robin, - and this time so fairly that he fell heels over head into the - water, as the queen pin falls in a game of bowls. - [ The Merry Adventures of Robin Hood, by Howard Pyle ] -*staff of aesculapius - This staff is considered sacred to all healers, as it truly - holds the powers of life and death. When wielded, it - protects its user from all life draining attacks, and - additionally gives the wielder the power of regeneration. - When invoked it performs healing magic. -stair* - Up he went -- very quickly at first -- then more slowly -- then - in a little while even more slowly than that -- and finally, - after many minutes of climbing up the endless stairway, one - weary foot was barely able to follow the other. Milo suddenly - realized that with all his effort he was no closer to the top - than when he began, and not a great deal further from the - bottom. But he struggled on for a while longer, until at last, - completely exhausted, he collapsed onto one of the steps. - "I should have known it," he mumbled, resting his tired legs - and filling his lungs with air. "This is just like the line - that goes on forever, and I'll never get there." - "You wouldn't like it much anyway," someone replied gently. - "Infinity is a dreadfully poor place. They can never manage to - make ends meet." - [ The Phantom Tollbooth, by Norton Juster ] - - Dr. Ray Stantz: Hey, where do those stairs go? - Dr. Peter Venkman: They go up. - [ Ghostbusters, directed by Ivan Reitman, - written by Dan Ackroyd and Harold Ramis ] -*stalker - "You don't understand," he said, "who I am or what I am. I'll show - you. By Heaven! I'll show you." Then he put his open palm over - his face and withdrew it. The centre of his face became a black - cavity. "Here," he said. He stepped forward and handed Mrs. Hall - something which she, staring at his metamorphosed face, accepted - automatically. Then, when she saw what it was, she screamed - loudly, dropped it, and staggered back. The nose--it was the - stranger's nose! pink and shining--rolled on the floor. - - Then he removed his spectacles, and everyone in the bar gasped. He - took off his hat, and with a violent gesture tore at his whiskers - and bandages. For a moment they resisted him. A flash of horrible - anticipation passed through the bar. "Oh, my Gard!" said some one. - Then off they came. - - It was worse than anything. Mrs. Hall, standing open-mouthed and - horror-struck, shrieked at what she saw, and made for the door of - the house. Everyone began to move. They were prepared for scars, - disfigurements, tangible horrors, but nothing! The bandages and - false hair flew across the passage into the bar, making a - hobbledehoy jump to avoid them. Everyone tumbled on everyone else - down the steps. For the man who stood there shouting some - incoherent explanation, was a solid gesticulating figure up to the - coat-collar of him, and then--nothingness, no visible thing at all! - [ The Invisible Man, by H.G. Wells ] -~statue trap -statue* - Then at last he began to wonder why the lion was standing so - still - for it hadn't moved one inch since he first set eyes - on it. Edmund now ventured a little nearer, still keeping in - the shadow of the arch as much as he could. He now saw from - the way the lion was standing that it couldn't have been - looking at him at all. ("But supposing it turns its head?" - thought Edmund.) In fact it was staring at something else - - namely a little dwarf who stood with his back to it about - four feet away. "Aha!" thought Edmund. "When it springs at - the dwarf then will be my chance to escape." But still the - lion never moved, nor did the dwarf. And now at last Edmund - remembered what the others had said about the White Witch - turning people into stone. Perhaps this was only a stone - lion. And as soon as he had thought of that he noticed that - the lion's back and the top of its head were covered with - snow. Of course it must be only a statue! - [ The Lion, the Witch and the Wardrobe, by C.S. Lewis ] -# the original stethoscope was a fixed tube open at both ends; subsequent -# early ones were adaptations of an 'earhorn' used by the hard of hearing, -# but players are unlikely to picture anything like that when they find one -stethoscope - Tool used to listen closely to adjacent sound, typically by - a medical practioner to listen to a patient's heart, lungs, - or pulse. -# joke suggested by stethoscope; a zillion things could be added but these -# ought to suffice -microscope -telescope -telephone -television -#tricorder -#phaser - Not invented yet. -sting - There was the usual dim grey light of the forest-day about - him when he came to his senses. The spider lay dead beside - him, and his sword-blade was stained black. Somehow the - killing of the giant spider, all alone and by himself in the - dark without the help of the wizard or the dwarves or of - anyone else, made a great difference to Mr. Baggins. He felt - a different person, and much fiercer and bolder in spite of - an empty stomach, as he wiped his sword on the grass and put - it back into its sheath. - - "I will give you a name," he said to it, "and I shall call - you Sting." - [ The Hobbit, by J.R.R. Tolkien ] -stormbringer - There were sounds in the distance, incongruent with the - sounds of even this nameless, timeless sea: thin sounds, - agonized and terrible, for all that they remained remote - - yet the ship followed them, as if drawn by them; they grew - louder - pain and despair were there, but terror was - predominant. - - Elric had heard such sounds echoing from his cousin Yyrkoon's - sardonically named 'Pleasure Chambers' in the days before he - had fled the responsibilities of ruling all that remained of - the old Melnibonean Empire. These were the voices of men - whose very souls were under siege; men to whom death meant - not mere extinction, but a continuation of existence, forever - in thrall to some cruel and supernatural master. He had - heard men cry so when his salvation and his nemesis, his - great black battle-blade Stormbringer, drank their souls. - [ The Lands Beyond the World, by Michael Moorcock ] -*strange object -strange -glorkum* - He walked for some time through a long narrow corridor - without finding any one and was just going to call out, - when suddenly in a dark corner between an old cupboard - and the door he caught sight of a strange object which - seemed to be alive. - [ Crime and Punishment, by Fyodor Dostoevsky ] -straw golem - Dorothy leaned her chin upon her hand and gazed thoughtfully - at the Scarecrow. Its head was a small sack stuffed with - straw, with eyes, nose, and mouth painted on it to represent - a face. An old, pointed blue hat, that had belonged to some - Munchkin, was perched on his head, and the rest of the figure - was a blue suit of clothes, worn and faded, which had also - been stuffed with straw. On the feet were some old boots with - blue tops, such as every man wore in this country, and the - figure was raised above the stalks of corn by means of the - pole stuck up its back. - [ The Wonderful Wizard of Oz, by L. Frank Baum ] -sunsword - What you seek is a blade of light, - a weapon for vengeance. - [ Expedition to Castle Ravenloft, - by Bruce Cordell and James Wyatt ] -susano*o - The Shinto chthonic and weather god and brother of the sun - goddess Amaterasu, he was born from the nose of the - primordial creator god Izanagi and represents the physical, - material world. He has been expelled from heaven and taken - up residence on earth. - [ Encyclopedia of Gods, by Michael Jordan ] -tanko - Samurai plate armor of the Yamato period (AD 300 - 710). -tengu - The tengu was the most troublesome creature of Japanese - legend. Part bird and part man, with red beak for a nose - and flashing eyes, the tengu was notorious for stirring up - feuds and prolonging enmity between families. Indeed, the - belligerent tengu were supposed to have been man's first - instructors in the use of arms. - [ Mythical Beasts, by Deirdre Headon (The Leprechaun Library) ] -thoth - The Egyptian god of the moon and wisdom, Thoth is the patron - deity of scribes and of knowledge, including scientific, - medical and mathematical writing, and is said to have given - mankind the art of hieroglyphic writing. He is important as - a mediator and counsellor amongst the gods and is the scribe - of the Heliopolis Ennead pantheon. According to mythology, - he was born from the head of the god Seth. He may be - depicted in human form with the head of an ibis, wholly as an - ibis, or as a seated baboon sometimes with its torso covered - in feathers. His attributes include a crown which consists - of a crescent moon surmounted by a moon disc. - Thoth is generally regarded as a benign deity. He is also - scrupulously fair and is responsible not only for entering - in the record the souls who pass to afterlife, but of - adjudicating in the Hall of the Two Truths. The Pyramid - Texts reveal a violent side of his nature by which he - decapitates the adversaries of truth and wrenches out their - hearts. - [ Encyclopedia of Gods, by Michael Jordan ] -thoth*amon - Men say that he [Thutothmes] has opposed Thoth-Amon, who is - master of all priests of Set, and dwells in Luxor, and that - Thutothmes seeks hidden power [The Heart of Ahriman] to - overthrow the Great One. - [ Conan the Conqueror, by Robert E. Howard ] -*throne - Methought I saw the footsteps of a throne - Which mists and vapours from mine eyes did shroud-- - Nor view of who might sit thereon allowed; - But all the steps and ground about were strown - With sights the ruefullest that flesh and bone - Ever put on; a miserable crowd, - Sick, hale, old, young, who cried before that cloud, - "Thou art our king, - O Death! to thee we groan." - Those steps I clomb; the mists before me gave - Smooth way; and I beheld the face of one - Sleeping alone within a mossy cave, - With her face up to heaven; that seemed to have - Pleasing remembrance of a thought foregone; - A lovely Beauty in a summer grave! - [ Sonnet, by William Wordsworth ] -thug - A worshipper of Kali, who practised _thuggee_, the strangling - of human victims in the name of the religion. Robbery of the - victim provided the means of livelihood. They were also - called _Phansigars_ (Noose operators) from the method employed. - Vigorous suppression was begun by Lord William Bentinck in - 1828, but the fraternity did not become completely extinct - for another 50 years or so. - In common parlance the word is used for any violent "tough". - [ Brewer's Concise Dictionary of Phrase and Fable ] -tiger - 1. A well-known tropical predator (_Felis tigris_): a - feline. It has a yellowish skin with darker spots or - stripes. 2. Figurative: _a paper tiger_, something that is - meant to scare, but has no really scaring effect whatsoever, - (after a statement by Mao Ze Dong, August 1946). - [ Van Dale's Groot Woordenboek der Nederlandse Taal ] - - Tyger! Tyger! burning bright - In the forests of the night, - What immortal hand or eye - Could frame thy fearful symmetry? - [ The Tyger, by William Blake ] -tin -tin of * -tinning kit - "You know salmon, Sarge," said Nobby. - "It is a fish of which I am aware, yes." - "You know they sell kind of slices of it in tins..." - "So I am given to understand, yes." - "Weell...how come all the tins are the same size? Salmon - gets thinner at both ends." - "Interesting point, Nobby. I think-" - [ Soul Music, by Terry Pratchett ] -tin opener - Less than thirty Cat tribes now survived, roaming the cargo - decks on their hind legs in a desperate search for food. - But the food had gone. - The supplies were finished. - Weak and ailing, they prayed at the supply hold's silver - mountains: huge towering acres of metal rocks which, in their - pagan way, the mutant Cats believed watched over them. - Amid the wailing and the screeching one Cat stood up and held - aloft the sacred icon. The icon which had been passed down - as holy, and one day would make its use known. - It was a piece of V-shaped metal with a revolving handle on - its head. - He took down a silver rock from the silver mountain, while - the other Cats cowered and screamed at the blasphemy. - He placed the icon on the rim of the rock, and turned the - handle. - And the handle turned. - And the rock opened. - And inside the rock was Alphabetti spaghetti in tomato sauce. - [ Red Dwarf, by Rob Grant and Doug Naylor ] -titan - Gaea, mother earth, arose from the Chaos and gave birth to - Uranus, heaven, who became her consort. Uranus hated all - their children, because he feared they might challenge his - own authority. Those children, the Titans, the Gigantes, - and the Cyclops, were banished to the nether world. Their - enraged mother eventually released the youngest titan, - Chronos (time), and encouraged him to castrate his father and - rule in his place. Later, he too was challenged by his own - son, Zeus, and he and his fellow titans were ousted from - Mount Olympus. - [ Greek Mythology, by Richard Patrick ] -topaz - Aluminum silicate mineral with either hydroxyl radicals or - fluorine, Al2SiO4(F,OH)2, used as a gem. It is commonly - colorless or some shade of pale yellow to wine-yellow; - ... The stone is transparent with a vitreous luster. It has - perfect cleavage on the basal pinacoid, but it is nevertheless - hard and durable. The brilliant cut is commonly used. Topaz - crystals, which are of the orthorhombic system, occur in highly - acid igneous rocks, e.g., granites and rhyolites, and in - metamorphic rocks, e.g., gneisses and schists. - [ The Columbia Encyclopedia, Sixth Edition ] -touch*stone - "Gold is tried by a touchstone, men by gold." - [ Chilon (c. 560 BC) ] -tourist -* tourist - The road from Ankh-Morpork to Chrim is high, white and - winding, a thirty-league stretch of potholes and half-buried - rocks that spirals around mountains and dips into cool green - valleys of citrus trees, crosses liana-webbed gorges on - creaking rope bridges and is generally more picturesque than - useful. - Picturesque. That was a new word to Rincewind the wizard - (BMgc, Unseen University [failed]). It was one of a number - he had picked up since leaving the charred ruins of - Ankh-Morpork. Quaint was another one. Picturesque meant -- - he decided after careful observation of the scenery that - inspired Twoflower to use the word -- that the landscape was - horribly precipitous. Quaint, when used to describe the - occasional village through which they passed, meant fever- - ridden and tumbledown. - Twoflower was a tourist, the first ever seen on the discworld. - Tourist, Rincewind had decided, meant "idiot". - [ The Colour of Magic, by Terry Pratchett ] -towel -wet towel -moist towel - The Hitchhiker's Guide to the Galaxy has a few things to say - on the subject of towels. - A towel, it says, is about the most massively useful thing - an interstellar hitchhiker can have. Partly it has great - practical value. You can wrap it around you for warmth as - you bound across the cold moons of Jaglan Beta; you can lie - on it on the brilliant marble-sanded beaches of Santraginus - V, inhaling the heady sea vapors; you can sleep under it - beneath the stars which shine so redly on the desert world - of Kakrafoon; use it to sail a miniraft down the slow heavy - River Moth; wet it for use in hand-to-hand combat; wrap it - round your head to ward off noxious fumes or avoid the gaze - of the Ravenous Bugblatter Beast of Traal (a mind-bogglingly - stupid animal, it assumes that if you can't see it, it can't - see you - daft as a brush, but very very ravenous); you can - wave your towel in emergencies as a distress signal, and of - course dry yourself off with it if it still seems to be clean - enough. - [ The Hitchhiker's Guide to the Galaxy, by Douglas Adams ] -*tower -*tower of darkness - Towers (_brooding_, _dark_) stand alone in Waste Areas and - almost always belong to Wizards. All are several stories high, - round, doorless, virtually windowless, and composed of smooth - blocks of masonry that make them very hard to climb. [...] - You will have to go to a Tower and then break into it at some - point towards the end of your Tour. - [ The Tough Guide to Fantasyland, by Diana Wynne Jones ] -trap*door - I knew my Erik too well to feel at all comfortable on jumping - into his house. I knew what he had made of a certain palace at - Mazenderan. From being the most honest building conceivable, he - soon turned it into a house of the very devil, where you could - not utter a word but it was overheard or repeated by an echo. - With his trap-doors the monster was responsible for endless - tragedies of all kinds. - [ The Phantom of the Opera, by Gaston Leroux ] -# takes "trapper or lurker above" when specifying 't' -trapper -trapper or lurker above - The trapper is a creature which has evolved a chameleon-like - ability to blend into the dungeon surroundings. It captures - its prey by remaining very still and blending into the - surrounding dungeon features, until an unsuspecting creature - passes by. It wraps itself around its prey and digests it. -tree - I think that I shall never see - A poem lovely as a tree. - A tree whose hungry mouth is prest - Against the earth's sweet flowing breast; - A tree that looks at God all day, - And lifts her leafy arms to pray; - A tree that may in Summer wear - A nest of robins in her hair; - Upon whose bosom snow has lain; - Who intimately lives with rain. - Poems are made by fools like me, - But only God can make a tree. - [ Trees, by Joyce Kilmer ] -tripe -tripe ration - If you start from scratch, cooking tripe is a long-drawn-out - affair. Fresh whole tripe calls for a minimum of 12 hours of - cooking, some time-honored recipes demanding as much as 24. - To prepare fresh tripe, trim if necessary. Wash it thoroughly, - soaking overnight, and blanch, for 1/2 hour in salted water. - Wash well again, drain and cut for cooking. When cooked, the - texture of tripe should be like that of soft gristle. More - often, alas, because the heat has not been kept low enough, - it has the consistency of wet shoe leather. - [ Joy of Cooking, by I Rombauer and M Becker ] -~water troll -*troll - The troll shambled closer. He was perhaps eight feet tall, - perhaps more. His forward stoop, with arms dangling past - thick claw-footed legs to the ground, made it hard to tell. - The hairless green skin moved upon his body. His head was a - gash of a mouth, a yard-long nose, and two eyes which drank - the feeble torchlight and never gave back a gleam. - [...] - Like a huge green spider, the troll's severed hand ran on its - fingers. Across the mounded floor, up onto a log with one - taloned forefinger to hook it over the bark, down again it - scrambled, until it found the cut wrist. And there it grew - fast. The troll's smashed head seethed and knit together. - He clambered back on his feet and grinned at them. The - waning faggot cast red light over his fangs. - [ Three Hearts and Three Lions, by Poul Anderson ] -*tsurugi of muramasa - This most ancient of swords has been passed down through the - leadership of the Samurai legions for hundreds of years. It - is said to grant luck to its wielder, but its main power is - terrible to behold. It has the capability to cut in half any - creature it is wielded against, instantly killing them. -~*muramasa -tsurugi - The tsurugi, also known as the long samurai sword, is an - extremely sharp, two-handed blade favored by the samurai. - It is made of hardened steel, and is manufactured using a - special process, causing it to never rust. The tsurugi is - rumored to be so sharp that it can occasionally cut - opponents in half! -~*spellbook -turquoise* - TUBAL: There came divers of Antonio's creditors in my company - to Venice that swear he cannot choose but break. - SHYLOCK: I am very glad of it; I'll plague him, I'll torture - him; I am glad of it. - TUBAL: One of them showed me a ring that he had of your - daughter for a monkey. - SHYLOCK: Out upon her! Thou torturest me, Tubal. It was my - turquoise; I had it of Leah when I was a bachelor; I would - not have given it for a wilderness of monkeys. - [ The Merchant of Venice, by William Shakespeare ] -twoflower -guide - "Rincewind!" - Twoflower sprang off the bed. The wizard jumped back, - wrenching his features into a smile. - "My dear chap, right on time! We'll just have lunch, and - then I'm sure you've got a wonderful programme lined up for - this afternoon!" - "Er --" - "That's great!" - Rincewind took a deep breath. "Look," he said desperately, - "let's eat somewhere else. There's been a bit of a fight - down below." - "A tavern brawl? Why didn't you wake me up?" - "Well, you see, I - _what_?" - "I thought I made myself clear this morning, Rincewind. I - want to see genuine Morporkian life - the slave market, the - Whore Pits, the Temple of Small Gods, the Beggar's Guild... - and a genuine tavern brawl." A faint note of suspicion - entered Twoflower's voice. "You _do_ have them, don't you? - You know, people swinging on chandeliers, swordfights over - the table, the sort of thing Hrun the Barbarian and the - Weasel are always getting involved in. You know -- - _excitement_." - [ The Colour of Magic, by Terry Pratchett ] -tyr - Yet remains that one of the Aesir who is called Tyr: - he is most daring, and best in stoutness of heart, and he - has much authority over victory in battle; it is good for - men of valor to invoke him. It is a proverb, that he is - Tyr-valiant, who surpasses other men and does not waver. - He is wise, so that it is also said, that he that is wisest - is Tyr-prudent. This is one token of his daring: when the - Aesir enticed Fenris-Wolf to take upon him the fetter Gleipnir, - the wolf did not believe them, that they would loose him, - until they laid Tyr's hand into his mouth as a pledge. But - when the Aesir would not loose him, then he bit off the hand - at the place now called 'the wolf's joint;' and Tyr is one- - handed, and is not called a reconciler of men. - [ The Prose Edda, by Snorri Sturluson ] -*hulk - Umber hulks are powerful subterranean predators whose - iron-like claws allow them to burrow through solid stone in - search of prey. They are tremendously strong; muscles bulge - beneath their thick, scaly hides and their powerful arms and - legs all end in great claws. -*unicorn -unicorn horn - Men have always sought the elusive unicorn, for the single - twisted horn which projected from its forehead was thought to - be a powerful talisman. It was said that the unicorn had - simply to dip the tip of its horn in a muddy pool for the water - to become pure. Men also believed that to drink from this horn - was a protection against all sickness, and that if the horn was - ground to a powder it would act as an antidote to all poisons. - Less than 200 years ago in France, the horn of a unicorn was - used in a ceremony to test the royal food for poison. - - Although only the size of a small horse, the unicorn is a very - fierce beast, capable of killing an elephant with a single - thrust from its horn. Its fleetness of foot also makes this - solitary creature difficult to capture. However, it can be - tamed and captured by a maiden. Made gentle by the sight of a - virgin, the unicorn can be lured to lay its head in her lap, and - in this docile mood, the maiden may secure it with a golden rope. - [ Mythical Beasts, by Deirdre Headon (The Leprechaun Library) ] - - Martin took a small sip of beer. "Almost ready," he said. - "You hold your beer awfully well." - Tlingel laughed. "A unicorn's horn is a detoxicant. Its - possession is a universal remedy. I wait until I reach the - warm glow stage, then I use my horn to burn off any excess and - keep me right there." - [ Unicorn Variations, by Roger Zelazny ] -unreconnoitered - Area of map which is beyond limited perception range when - underwater or engulfed by a monster. -uruk*hai shield -white-handed shield - They were armed with short broad-bladed swords, not with the - curved scimitars usual with Orcs: and they had bows of yew, - in length and shape like the bows of Men. Upon their shields - they bore a strange device: a small white hand in the centre - of a black field; on the front of their iron helms was set an - S-rune, wrought of some white metal. - [ The Two Towers, by J.R.R. Tolkien ] -valkyrie -* valkyrie - The Valkyries were the thirteen choosers of the slain, the - beautiful warrior-maids of Odin who rode through the air and - over the sea. They watched the progress of the battle and - selected the heroes who were to fall fighting. After they - were dead, the maidens rewarded the heroes by kissing them - and then led their souls to Valhalla, where the warriors - lived happily in an ideal existence, drinking and eating - without restraint and fighting over again the battles in - which they died and in which they had won their deathless - fame. - [ The Encyclopaedia of Myths and Legends of All Nations, - by Herbert Spencer Robinson and Knox Wilson ] -vampire -~vampire bat -vampire l* - He can transform himself to wolf, as we gather from the ship - arrival in Whitby, when he tear open the dog; he can be as - bat, as Madam Mina saw him on the window at Whitby, and as - friend John saw him fly from this so near house, and as my - friend Quincey saw him at the window of Miss Lucy. He can come - in mist which he create--that noble ship's captain proved him - of this; but, from what we know, the distance he can make this - mist is limited, and it can only be round himself. He come on - moonlight rays as elemental dust--as again Jonathan saw those - sisters in the castle of Dracula. He become so small--we - ourselves saw Miss Lucy, ere she was at peace, slip through a - hairbreadth space at the tomb door. - [ Dracula, by Bram Stoker ] - - The Oxford English Dictionary is quite unequivocal: - _vampire_ - "a preternatural being of a malignant nature (in - the original and usual form of the belief, a reanimated - corpse), supposed to seek nourishment, or do harm, by sucking - the blood of sleeping persons. ..." - [] -venus - Venus, the goddess of love and beauty, was the daughter of - Jupiter and Dione. Others say that Venus sprang from the - foam of the sea. The zephyr wafted her along the waves to - the Isle of Cyprus, where she was received and attired by - the Seasons, and then led to the assembly of the gods. All - were charmed with her beauty, and each one demanded her - for his wife. Jupiter gave her to Vulcan, in gratitude for - the service he had rendered in forging thunderbolts. So - the most beautiful of the goddesses became the wife of the - most ill-favoured of gods. - [ Bulfinch's Mythology, by Thomas Bulfinch ] -vlad* - Vlad Dracula the Impaler was a 15th-Century monarch of the - Birgau region of the Carpathian Mountains, in what is now - Romania. In Romanian history he is best known for two things. - One was his skilled handling of the Ottoman Turks, which kept - them from making further inroads into Christian Europe. The - other was the ruthless manner in which he ran his fiefdom. - He dealt with perceived challengers to his rule by impaling - them upright on wooden stakes. Visiting dignitaries who - failed to doff their hats had them nailed to their head. -*vortex -vortices - Swirling clouds of pure elemental energies, the vortices are - thought to be related to the larger elementals. They are - noted for being able to envelop unwary travellers. The - hapless fool thus swallowed by a vortex will soon perish from - exposure to the element the vortex is composed of. -vrock - The vrock is one of the weaker forms of demon. It resembles - a cross between a human being and a vulture and does physical - damage by biting and by using the claws on both its arms and - feet. It can also release a cloud of noxious gas to hide in. -wakizashi - A wakizashi was used as a samurai's weapon when the katana - was unavailable. When entering a building, a samurai would - leave his katana on a rack near the entrance. However, the - wakizashi would be worn at all times, and therefore, it made - a sidearm for the samurai (similar to a soldier's use of a - pistol). The samurai would have worn it from the time they - awoke to the time they went to sleep. In earlier periods, - and especially during times of civil wars, a tanto was worn - in place of a wakizashi. - [ Wikipedia, the free encyclopedia ] -# takes "wand or a wall" when specifying '/' -~*sleep -wand * -*wand - 'Saruman!' he cried, and his voice grew in power and authority. - 'Behold, I am not Gandalf the Grey, whom you betrayed. I am - Gandalf the White, who has returned from death. You have no - colour now, and I cast you from the order and from the Council.' - He raised his hand, and spoke slowly in a clear cold voice. - 'Saruman, your staff is broken.' There was a crack, and the - staff split asunder in Saruman's hand, and the head of it - fell down at Gandalf's feet. 'Go!' said Gandalf. With a cry - Saruman fell back and crawled away. - [ The Two Towers, by J.R.R. Tolkien ] -warg - Suddenly Aragorn leapt to his feet. "How the wind howls!" - he cried. "It is howling with wolf-voices. The Wargs have - come west of the Mountains!" - "Need we wait until morning then?" said Gandalf. "It is as I - said. The hunt is up! Even if we live to see the dawn, who - now will wish to journey south by night with the wild wolves - on his trail?" - "How far is Moria?" asked Boromir. - "There was a door south-west of Caradhras, some fifteen miles - as the crow flies, and maybe twenty as the wolf runs," - answered Gandalf grimly. - "Then let us start as soon as it is light tomorrow, if we can," - said Boromir. "The wolf that one hears is worse than the orc - that one fears." - "True!" said Aragorn, loosening his sword in its sheath. "But - where the warg howls, there also the orc prowls." - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -~mjollnir -war*hammer - They had come together at the ford of the Trident while the - battle crashed around them, Robert with his warhammer and his - great antlered helm, the Targaryen prince armored all in - black. On his breastplate was the three-headed dragon of his - House, wrought all in rubies that flashed like fire in the - sunlight. The waters of the Trident ran red around the - hooves of their destriers as they circled and clashed, again - and again, until at last a crushing blow from Robert's hammer - stove in the dragon and the chest behind it. When Ned had - finally come on the scene, Rhaegar lay dead in the stream, - while men of both armies scrambled in the swirling waters for - rubies knocked free of his armor. - [ A Game of Thrones, by George R.R. Martin ] -water - Day after day, day after day, - We stuck, nor breath nor motion; - As idle as a painted ship - Upon a painted ocean. - - Water, water, everywhere, - And all the boards did shrink; - Water, water, everywhere - Nor any drop to drink. - [ The Rime of the Ancient Mariner, by Samuel Taylor Coleridge ] -water demon - [ The monkey king ] walked along the bank, around the pond. - He examined the footprints of the animals that had gone into - the water, and saw that none came out again! So he realized - this pond must be possessed by a water demon. He said to the - 80,000 monkeys, "This pond is possessed by a water demon. Do - not let anybody go into it." - - After a little while, the water demon saw that none of the - monkeys went into the water to drink. So he rose out of the - middle of the pond, taking the shape of a frightening monster. - He had a big blue belly, a white face with bulging green eyes, - and red claws and feet. He said, "Why are you just sitting - around? Come into the pond and drink at once!" - - The monkey king said to the horrible monster, "Are you the - water demon who owns this pond?" "Yes, I am," said he. "Do - you eat whoever goes into the water?" asked the king. "Yes, - I do," he answered, "including even birds. I eat them all. - And when you are forced by your thirst to come into the pond - and drink, I will enjoy eating you, the biggest monkey, most - of all!" He grinned, and saliva dripped down his hairy chin. - [ Buddhist Tales for Young and Old, Vol. 1 ] -water troll - It wasn't that the troll was _horrifying_. Instead of the - rotting, betentacled monstrosity he had been expecting - Rincewind found himself looking at a rather squat but not - particularly ugly old man who would quite easily have passed - for normal on any city street, always provided that other - people on the street were used to seeing old men who were - apparently composed of water and very little else. It was as - if the ocean had decided to create life without going through - all that tedious business of evolution, and had simply formed - a part of itself into a biped and sent it walking squishily up - the beach. The troll was a pleasant translucent blue color. - As Rincewind stared a small shoal of silver fish flashed - across its chest. - [ The Colour of Magic, by Terry Pratchett ] -# axe and morning star and the umpteen polearms have their own entries; -# exclusion keys for broadsword and sunsword aren't really necessarily -# because their entries precede this one -weapon -club -flail -~*broadsword -~sunsword -*sword - A weapon is a device for making your enemy change his mind. - [ The Vor Game, by Lois McMaster Bujold ] -web - Oh what a tangled web we weave, - When first we practise to deceive! - [ Marmion, by Sir Walter Scott ] -# magic whistle deserves its own entry -*whistle - There were legends both on the front and on the back of the - whistle. The one read thus: - - FLA FUR BIS FLE The other: QUIS EST ISTE QUI VENIT - 'I ought to be able to make it out,' he thought; - 'but I suppose I am a little rusty in my Latin. - When I come to think of it, I don't believe I even - know the word for a whistle. The long one does seem - simple enough. It ought to mean, "Who is this who is coming?" - - Well, the best way to find out is evidently to whistle - for him.' - [Ghost Stories of an Antiquary, by Montague Rhodes James - 'Oh, Whistle, and I'll Come to You My Lad'] -# werecritter -- see "lycanthrope" -*wight - When he came to himself again, for a moment he could recall - nothing except a sense of dread. Then suddenly he knew that - he was imprisoned, caught hopelessly; he was in a barrow. A - Barrow-wight had taken him, and he was probably already under - the dreadful spells of the Barrow-wights about which whispered - tales spoke. He dared not move, but lay as he found himself: - flat on his back upon a cold stone with his hands on his - breast. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -win -winner -winning - ... the rules of Brockian Ultra Cricket, as played in the higher - dimensions. A full set of rules is so massively complicated ... - A brief summary, however, follows: - ... - /Rule Six/: The winning team shall be the first team that wins. - [ Life, the Universe and Everything, by Douglas Adams ] -# note: need to convert player character "gnomish wizard" into just "wizard" -# in the lookup code to avoid conflict with the monster of that same name -~gnomish wizard -wizard -* wizard -apprentice - Ebenezum walked before me along the closest thing we could - find to a path in these overgrown woods. Every few paces he - would pause, so that I, burdened with a pack stuffed with - arcane and heavy paraphernalia, could catch up with his - wizardly strides. He, as usual, carried nothing, preferring, - as he often said, to keep his hands free for quick conjuring - and his mind free for the thoughts of a mage. - [ A Dealing with Demons, by Craig Shaw Gardner ] -wizard of yendor - No one knows how old this mighty wizard is, or from whence he - came. It is known that, having lived a span far greater than - any normal man's, he grew weary of lesser mortals; and so, - spurning all human company, he forsook the dwellings of men - and went to live in the depths of the Earth. He took with - him a dreadful artifact, the Book of the Dead, which is said - to hold great power indeed. Many have sought to find the - wizard and his treasure, but none have found him and lived to - tell the tale. Woe be to the incautious adventurer who - disturbs this mighty sorcerer! -wolf -*wolf -*wolf cub - The ancestors of the modern day domestic dog, wolves are - powerful muscular animals with bushy tails. Intelligent, - social animals, wolves live in family groups or packs made - up of multiple family units. These packs cooperate in hunting - down prey. -*wolfsbane - 1. Any of various, usually poisonous perennial herbs of the - genus Aconitum, having tuberous roots, palmately lobed leaves, - blue or white flowers with large hoodlike upper sepals, and an - aggregate of follicles. 2. The dried leaves and roots of - some of these plants, which yield a poisonous alkaloid that - was formerly used medicinally. In both senses also called - monkshood. - [ The American Heritage Dictionary of - the English Language, Fourth Edition. ] -wood golem - Come, old broomstick, you are needed, - Take these rags and wrap them round you! - Long my orders you have heeded, - By my wishes now I've bound you. - Have two legs and stand, - And a head for you. - Run, and in your hand - Hold a bucket too. - ... - See him, toward the shore he's racing - There, he's at the stream already, - Back like lightning he is chasing, - Pouring water fast and steady. - Once again he hastens! - How the water spills, - How the water basins - Brimming full he fills! - [ The Sorcerer's Apprentice, by Johann Wolfgang von Goethe, - translation by Edwin Zeydel ] -woodchuck - The Usenet Oracle requires an answer to this question! - - > How much wood could a woodchuck chuck if a woodchuck could - > chuck wood? - - "Oh, heck! I'll handle *this* one!" The Oracle spun the terminal - back toward himself, unlocked the ZOT-guard lock, and slid the - glass guard away from the ZOT key. "Ummmm....could you turn around - for a minute? ZOTs are too graphic for the uninitiated. Even *I* - get a little squeamish sometimes..." The neophyte turned around, - and heard the Oracle slam his finger on a computer key, followed - by a loud ZZZZOTTTTT and the smell of ozone. - [ Excerpted from Internet Oracularity 576.6 ] -*worm -long worm tail -worm tooth -crysknife - [The crysknife] is manufactured in two forms from teeth taken - from dead sandworms. The two forms are "fixed" and "unfixed". - An unfixed knife requires proximity to a human body's - electrical field to prevent disintegration. Fixed knives - are treated for storage. All are about 20 centimeters long. - [ Dune, by Frank Herbert ] -wraith -nazgul - Immediately, though everything else remained as before, dim - and dark, the shapes became terribly clear. He was able to - see beneath their black wrappings. There were five tall - figures: two standing on the lip of the dell, three advancing. - In their white faces burned keen and merciless eyes; under - their mantles were long grey robes; upon their grey hairs - were helms of silver; in their haggard hands were swords of - steel. Their eyes fell on him and pierced him, as they - rushed towards him. Desperate, he drew his own sword, and - it seemed to him that it flickered red, as if it was a - firebrand. Two of the figures halted. The third was taller - than the others: his hair was long and gleaming and on his - helm was a crown. In one hand he held a long sword, and in - the other a knife; both the knife and the hand that held it - glowed with a pale light. He sprang forward and bore down - on Frodo. - [ The Fellowship of the Ring, by J.R.R. Tolkien ] -*wumpus - The Wumpus, by the way, is not bothered by the hazards since - he has sucker feet and is too big for a bat to lift. If you - try to shoot him and miss, there's also a chance that he'll - up and move himself into another cave, though by nature the - Wumpus is a sedentary creature. - [ wump (6) -- "Hunt the Wumpus" ] - - _Wumpus yobgregorii_, in the flesh... - Later, all you will be able to remember are its eyes. They - are rich mud-brown, and they hold your own without effort. - [ Hunter, In Darkness, by Andrew Plotkin ] -xan - They sent their friend the mosquito [xan] ahead of them to - find out what lay ahead. "Since you are the one who sucks - the blood of men walking along paths," they told the mosquito, - "go and sting the men of Xibalba." The mosquito flew - down the dark road to the Underworld. Entering the house of - the Lords of Death, he stung the first person that he saw... - - The mosquito stung this man as well, and when he yelled, the - man next to him asked, "Gathered Blood, what's wrong?" So - he flew along the row stinging all the seated men until he - knew the names of all twelve. - [ Popul Vuh, as translated by Ralph Nelson ] -xorn - A distant cousin of the earth elemental, the xorn has the - ability to shift the cells of its body around in such a way - that it becomes porous to inert material. This gives it the - ability to pass through any obstacle that might be between it - and its next meal. -ya - The arrow of choice of the samurai, ya are made of very - straight bamboo, and are tipped with hardened steel. -yeenoghu - Yeenoghu, the demon lord of gnolls, still exists although - all his followers have been wiped off the face of the earth. - He casts magic projectiles at those close to him, and a mere - gaze into his piercing eyes may hopelessly confuse the - battle-weary adventurer. -yeti - The Abominable Snowman, or yeti, is one of the truly great - unknown animals of the twentieth century. It is a large hairy - biped that lives in the Himalayan region of Asia ... The story - of the Abominable Snowman is filled with mysteries great and - small, and one of the most difficult of all is how it got that - awful name. The creature is neither particularly abominable, - nor does it necessarily live in the snows. _Yeti_ is a Tibetan - word which may apply either to a real, but unknown animal of - the Himalayas, or to a mountain spirit or demon -- no one is - quite sure which. And after nearly half a century in which - Westerners have trampled around looking for the yeti, and - asking all sorts of questions, the original native traditions - concerning the creature have become even more muddled and - confused. - [ The Encyclopedia of Monsters, by Daniel Cohen ] -*yugake - Japanese leather archery gloves. Gloves made for use while - practicing had thumbs reinforced with horn. Those worn into - battle had thumbs reinforced with a double layer of leather. -yumi - The samurai is highly trained with a special type of bow, - the yumi. Like the ya, the yumi is made of bamboo. With - the yumi-ya, the bow and arrow, the samurai is an extremely - accurate and deadly warrior. -*zombi* - The zombi... is a soulless human corpse, still dead, but - taken from the grave and endowed by sorcery with a - mechanical semblance of life, -- it is a dead body which is - made to walk and act and move as if it were alive. - [ W.B. Seabrook ] -zruty - The zruty are wild and gigantic beings, living in the - wildernesses of the Tatra mountains. -## -# Rank titles for the various roles. Some of these keys won't reach here -# because they'll have matched entries above. The usual three letter role -# designation plus " ranks" should always find the set for that role. -# -arc* ranks -archeologist -digger -field worker -investigator -exhumer -excavator -spelunker -speleologist -collector -curator - Archeologist ranks - title level - Digger 1 to 2 - Field Worker 3 to 5 - Investigator 6 to 9 - Exhumer 10 to 13 - Excavator 14 to 17 - Spelunker 18 to 21 - Speleologist 22 to 25 - Collector 26 to 29 - Curator 30 -bar* ranks -barbarian -plunder?* -pillager -bandit -brigand -raider -reaver -slayer -chieftain* -conquer* - Barbarian ranks - title level - Plunderer, - Plunderess 1 to 2 - Pillager 3 to 5 - Bandit 6 to 9 - Brigand 10 to 13 - Raider 14 to 17 - Reaver 18 to 21 - Slayer 22 to 25 - Chieftain, - Chieftainess 26 to 29 - Conqueror, - Conqueress 30 -cav* ranks -caveman -cavewoman -cave dweller -troglodyte -aborigine -wanderer -vagrant -wayfarer -roamer -nomad -rover -pioneer - Caveman/Cavewoman/Cave Dweller ranks - title level - Troglodyte 1 to 2 - Aborigine 3 to 5 - Wanderer 6 to 9 - Vagrant 10 to 13 - Wayfarer 14 to 17 - Roamer 18 to 21 - Nomad 22 to 25 - Rover 26 to 29 - Pioneer 30 -hea* ranks -healer -rhizotomist -empiric -embalmer -dresser -medic* ossium -herbalist -magister -magistra -physician -chirurgeon - Healer ranks - title level - Rhizotomist 1 to 2 - Empiric 3 to 5 - Embalmer 6 to 9 - Dresser 10 to 13 - Medicus ossium, - Medica ossium 14 to 17 - Herbalist 18 to 21 - Magister, - Magistra 22 to 25 - Physician 26 to 29 - Chirurgeon 30 -kni* ranks -knight -gallant -esquire -bachelor -sergeant -knight -banneret -chevalier* -seignieur -dame -paladin - Knight ranks - title level - Gallant 1 to 2 - Esquire 3 to 5 - Bachelor 6 to 9 - Sergeant 10 to 13 - Knight 14 to 17 - Banneret 18 to 21 - Chevalier, - Chevaliere 22 to 25 - Seignieur, - Dame 26 to 29 - Paladin 30 -mon* ranks -monk -candidate -novice -initiate -student of stones -student of waters -student of metals -student of winds -student of fire -master - Monk ranks - title level - Candidate 1 to 2 - Novice 3 to 5 - Initiate 6 to 9 - Student - of Stones 10 to 13 - of Waters 14 to 17 - of Metals 18 to 21 - of Winds 22 to 25 - of Fire 26 to 29 - Master 30 -pri* ranks -priest* -aspirant -acolyte -adept -#priest* -curate -canon* -lama -?atriarch -high priest* - Priest/Priestess/Cleric ranks - title level - Aspirant 1 to 2 - Acolyte 3 to 5 - Adept 6 to 9 - Priest, - Priestess 10 to 13 - Curate 14 to 17 - Canon, - Canoness 18 to 21 - Lama 22 to 25 - Patriarch, - Matriarch 26 to 29 - High Priest, - High Priestess 30 -ran* ranks -ranger -tenderfoot -lookout -trailblazer -reconnoiter* -scout -arbalester -archer -sharpshooter -marks*man - Ranger ranks - title level - Tenderfoot 1 to 2 - Lookout 3 to 5 - Trailblazer 6 to 9 - Reconnoiterer, - Reconnoiteress 10 to 13 - Scout 14 to 17 - Arbalester 18 to 21 - Archer 22 to 25 - Sharpshooter 26 to 29 - Marksman, - Markswoman 30 -rog* ranks -rogue -footpad -cutpurse -rogue -pilferer -robber -burglar -filcher -mags*man -thief - Rogue ranks - title level - Footpad 1 to 2 - Cutpurse 3 to 5 - Rogue 6 to 9 - Pilferer 10 to 13 - Robber 14 to 17 - Burglar 18 to 21 - Filcher 22 to 25 - Magsman, - Magswoman 26 to 29 - Thief 30 -sam* ranks -samurai -hatamoto -ronin -ninja -kunoichi -joshu -ryoshu -kokushu -daimyo -kuge -shogun - Samurai ranks - title level - Hatamoto 1 to 2 - Ronin 3 to 5 - Ninja, - Kunoichi 6 to 9 - Joshu 10 to 13 - Ryoshu 14 to 17 - Kokushu 18 to 21 - Daimyo 22 to 25 - Kuge 26 to 29 - Shogun 30 -tou* ranks -tourist -rambler -sightseer -excursionist -peregrinat* -traveler -journeyer -voyager -explorer -adventurer - Tourist ranks - title level - Rambler 1 to 2 - Sightseer 3 to 5 - Excursionist 6 to 9 - Peregrinator, - Peregrinatrix 10 to 13 - Traveler 14 to 17 - Journeyer 18 to 21 - Voyager 22 to 25 - Explorer 26 to 29 - Adventurer 30 -val* ranks -valkyrie -stripling -skirmisher -fighter -*man-at-arms -warrior -swashbuckler -hero -heroine -champion -lord -lady - Valkyrie ranks - title level - Stripling 1 to 2 - Skirmisher 3 to 5 - Fighter 6 to 9 - Man-at-arms, - Woman-at-arms 10 to 13 - Warrior 14 to 17 - Swashbuckler 18 to 21 - Hero, - Heroine 22 to 25 - Champion 26 to 29 - Lord, - Lady 30 -wiz* ranks -wizard -evoker -conjurer -thaumaturge -magician -enchanter -enchantress -sorcerer -sorceress -necromancer -mage - Wizard ranks - title level - Evoker 1 to 2 - Conjurer 3 to 5 - Thaumaturge 6 to 9 - Magician 10 to 13 - Enchanter, - Enchantress 14 to 17 - Sorcerer, - Sorceress 18 to 21 - Necromancer 22 to 25 - Wizard 26 to 29 - Mage 30 -## -# list the titles for all the Discworld novels (3.6 tribute); -# the extra leading spaces are intentional--tty displays the whole list -# full screen flush-left (at least for 80 columns) and without them to -# give some indentation it doesn't look very good -# -novel -paperback book -discworld novel* - Discworld novel titles - by Sir Terry Pratchett - The Colour of Magic - The Light Fantastic - Equal Rites - Mort - Sourcery - Wyrd Sisters - Pyramids - Guards! Guards! - Eric - Moving Pictures - Reaper Man - Witches Abroad - Small Gods - Lords and Ladies - Men at Arms - Soul Music - Interesting Times - Maskerade - Feet of Clay - Hogfather - Jingo - The Last Continent - Carpe Jugulum - The Fifth Elephant - The Truth - Thief of Time - The Last Hero - The Amazing Maurice and His Educated Rodents - Night Watch - The Wee Free Men - Monstrous Regiment - A Hat Full of Sky - Going Postal - Thud! - Wintersmith - Making Money - Unseen Academicals - I Shall Wear Midnight - Snuff - Raising Steam - The Shepherd's Crown -# diff --git a/src/NetHack_3.7/dat/dungeon.lua b/src/NetHack_3.7/dat/dungeon.lua deleted file mode 100644 index ff9e913..0000000 --- a/src/NetHack_3.7/dat/dungeon.lua +++ /dev/null @@ -1,333 +0,0 @@ --- NetHack 3.6 dungeon dungeon.lua $NHDT-Date: 1652196135 2022/05/10 15:22:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ --- Copyright (c) 1990-95 by M. Stephenson --- NetHack may be freely redistributed. See license for details. --- --- The dungeon description file. -dungeon = { - { - name = "The Dungeons of Doom", - bonetag = "D", - base = 25, - range = 5, - alignment = "unaligned", - themerooms = "themerms.lua", - branches = { - { - name = "The Gnomish Mines", - base = 2, - range = 3 - }, - { - name = "Sokoban", - chainlevel = "oracle", - base = 1, - direction = "up" - }, - { - name = "The Quest", - chainlevel = "oracle", - base = 6, - range = 2, - branchtype = "portal" - }, - { - name = "Fort Ludios", - base = 18, - range = 4, - branchtype = "portal" - }, - { - name = "Gehennom", - chainlevel = "castle", - base = 0, - branchtype = "no_down" - }, - { - name = "The Elemental Planes", - base = 1, - branchtype = "no_down", - direction = "up" - } - }, - levels = { - { - name = "rogue", - bonetag = "R", - base = 15, - range = 4, - flags = "roguelike", - }, - { - name = "oracle", - bonetag = "O", - base = 5, - range = 5, - alignment = "neutral" - }, - { - name = "bigrm", - bonetag = "B", - base = 10, - range = 3, - chance = 40, - nlevels = 11 - }, - { - name = "medusa", - base = -5, - range = 4, - nlevels = 4, - alignment = "chaotic" - }, - { - name = "castle", - base = -1 - } - } - }, - { - name = "Gehennom", - bonetag = "G", - base = 20, - range = 5, - flags = { "mazelike", "hellish" }, - lvlfill = "hellfill", - alignment = "noalign", - branches = { - { - name = "Vlad's Tower", - base = 9, - range = 5, - direction = "up" - } - }, - levels = { - { - name = "valley", - bonetag = "V", - base = 1 - }, - { - name = "sanctum", - base = -1 - }, - { - name = "juiblex", - bonetag = "J", - base = 4, - range = 4 - }, - { - name = "baalz", - bonetag = "B", - base = 6, - range = 4 - }, - { - name = "asmodeus", - bonetag = "A", - base = 2, - range = 6 - }, - { - name = "wizard1", - base = 11, - range = 6 - }, - { - name = "wizard2", - bonetag = "X", - chainlevel = "wizard1", - base = 1 - }, - { - name = "wizard3", - bonetag = "Y", - chainlevel = "wizard1", - base = 2 - }, - { - name = "orcus", - bonetag = "O", - base = 10, - range = 6 - }, - { - name = "fakewiz1", - bonetag = "F", - base = -6, - range = 4 - }, - { - name = "fakewiz2", - bonetag = "G", - base = -6, - range = 4 - }, - } - }, - { - name = "The Gnomish Mines", - bonetag = "M", - base = 8, - range = 2, - alignment = "lawful", - flags = { "mazelike" }, - lvlfill = "minefill", - levels = { - { - name = "minetn", - bonetag = "T", - base = 3, - range = 2, - nlevels = 7, - flags = "town" - }, - { - name = "minend", --- 3.7.0: minend changed to no-bones to simplify achievement tracking --- bonetag = "E" - base = -1, - nlevels = 3 - }, - } - }, - { - name = "The Quest", - bonetag = "Q", - base = 5, - range = 2, - levels = { - { - name = "x-strt", - base = 1, - range = 1 - }, - { - name = "x-loca", - bonetag = "L", - base = 3, - range = 1 - }, - { - name = "x-goal", - base = -1 - }, - } - }, - { - name = "Sokoban", - base = 4, - alignment = "neutral", - flags = { "mazelike" }, - entry = -1, - levels = { - { - name = "soko1", - base = 1, - nlevels = 2 - }, - { - name = "soko2", - base = 2, - nlevels = 2 - }, - { - name = "soko3", - base = 3, - nlevels = 2 - }, - { - name = "soko4", - base = 4, - nlevels = 2 - }, - } - }, - { - name = "Fort Ludios", - base = 1, - bonetag = "K", - flags = { "mazelike" }, - alignment = "unaligned", - levels = { - { - name = "knox", - bonetag = "K", - base = -1 - } - } - }, - { - name = "Vlad's Tower", - base = 3, - bonetag = "T", - protofile = "tower", - alignment = "chaotic", - flags = { "mazelike" }, - entry = -1, - levels = { - { - name = "tower1", - base = 1 - }, - { - name = "tower2", - base = 2 - }, - { - name = "tower3", - base = 3 - }, - } - }, - { - name = "The Elemental Planes", - bonetag = "E", - base = 6, - alignment = "unaligned", - flags = { "mazelike" }, - entry = -2, - levels = { - { - name = "astral", - base = 1 - }, - { - name = "water", - base = 2 - }, - { - name = "fire", - base = 3 - }, - { - name = "air", - base = 4 - }, - { - name = "earth", - base = 5 - }, - { - name = "dummy", - base = 6 - }, - } - }, - { - name = "The Tutorial", - base = 2, - flags = { "mazelike", "unconnected" }, - levels = { - { - name = "tut-1", - base = 1, - }, - { - name = "tut-2", - base = 2, - }, - } - }, -} diff --git a/src/NetHack_3.7/dat/earth.lua b/src/NetHack_3.7/dat/earth.lua deleted file mode 100644 index 4d7527e..0000000 --- a/src/NetHack_3.7/dat/earth.lua +++ /dev/null @@ -1,130 +0,0 @@ --- NetHack endgame earth.lua $NHDT-Date: 1652196025 2022/05/10 15:20:25 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- Copyright (c) 1989 by Jean-Christophe Collet --- Copyright (c) 1992,1993 by Izchak Miller, David Cohrs, --- and Timo Hakulinen --- NetHack may be freely redistributed. See license for details. --- --- --- These are the ENDGAME levels: earth, air, fire, water, and astral. --- The top-most level, the Astral Level, has 3 temples and shrines. --- Players are supposed to sacrifice the Amulet of Yendor on the appropriate --- shrine. - -des.level_init({ style = "solidfill", fg = " " }); - -des.level_flags("mazelevel", "noteleport", "hardfloor", "shortsighted") - -des.message("Well done, mortal!") -des.message("But now thou must face the final Test...") -des.message("Prove thyself worthy or perish!") - --- The player lands, upon arrival, in the --- lower-right cavern. The location of the --- portal to the next level is randomly chosen. --- This map has no visible outer boundary, and --- is mostly diggable "rock". -des.map([[ - - ... - .... .. - ..... ... .. - .... .... ... - .... ... .... ... . - .. .. ....... . .. - .. ... . - . .. . ... - .. .. . .. . - .. ... . - ... ... - .. ... .. - .... .. - .. ... - .. ..... - ... ... - .... - .. - -]]); - -des.replace_terrain({ region={0,0, 75,19}, fromterrain=" ", toterrain=".", lit=0, chance=5 }) - --- Since there are no stairs, this forces the hero's initial placement -des.teleport_region({region = {69,16,69,16} }) -des.levregion({ region = {0,0,75,19}, exclude = {65,13,75,19}, type="portal", name="air" }) --- Some helpful monsters. Making sure a --- pick axe and at least one wand of digging --- are available. -des.monster("Elvenking", 67,16) -des.monster("minotaur", 67,14) --- An assortment of earth-appropriate nasties --- in each cavern. -des.monster({ id = "earth elemental", x = 52, y = 13, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 53, y = 13, peaceful = 0 }) -des.monster("rock troll", 53,12) -des.monster("stone giant", 54,12) --- -des.monster("pit viper", 70,05) -des.monster("barbed devil", 69,06) -des.monster("stone giant", 69,08) -des.monster("stone golem", 71,08) -des.monster("pit fiend", 70,09) -des.monster({ id = "earth elemental", x = 70, y = 08, peaceful = 0 }) --- -des.monster({ id = "earth elemental", x = 60, y = 03, peaceful = 0 }) -des.monster("stone giant", 61,04) -des.monster({ id = "earth elemental", x = 62, y = 04, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 61, y = 05, peaceful = 0 }) -des.monster("scorpion", 62,05) -des.monster("rock piercer", 63,05) --- -des.monster("umber hulk", 40,05) -des.monster("dust vortex", 42,05) -des.monster("rock troll", 38,06) -des.monster({ id = "earth elemental", x = 39, y = 06, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 41, y = 06, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 38, y = 07, peaceful = 0 }) -des.monster("stone giant", 39,07) -des.monster({ id = "earth elemental", x = 43, y = 07, peaceful = 0 }) -des.monster("stone golem", 37,08) -des.monster("pit viper", 43,08) -des.monster("pit viper", 43,09) -des.monster("rock troll", 44,10) --- -des.monster({ id = "earth elemental", x = 02, y = 01, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 03, y = 01, peaceful = 0 }) -des.monster("stone golem", 01,02) -des.monster({ id = "earth elemental", x = 02, y = 02, peaceful = 0 }) -des.monster("rock troll", 04,03) -des.monster("rock troll", 03,03) -des.monster("pit fiend", 03,04) -des.monster({ id = "earth elemental", x = 04, y = 05, peaceful = 0 }) -des.monster("pit viper", 05,06) --- -des.monster({ id = "earth elemental", x = 21, y = 02, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 21, y = 03, peaceful = 0 }) -des.monster("minotaur", 21,04) -des.monster({ id = "earth elemental", x = 21, y = 05, peaceful = 0 }) -des.monster("rock troll", 22,05) -des.monster({ id = "earth elemental", x = 22, y = 06, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 23, y = 06, peaceful = 0 }) --- -des.monster("pit viper", 14,08) -des.monster("barbed devil", 14,09) -des.monster({ id = "earth elemental", x = 13, y = 10, peaceful = 0 }) -des.monster("rock troll", 12,11) -des.monster({ id = "earth elemental", x = 14, y = 12, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 15, y = 13, peaceful = 0 }) -des.monster("stone giant", 17,13) -des.monster("stone golem", 18,13) -des.monster("pit fiend", 18,12) -des.monster({ id = "earth elemental", x = 18, y = 11, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 18, y = 10, peaceful = 0 }) --- -des.monster("barbed devil", 02,16) -des.monster({ id = "earth elemental", x = 03, y = 16, peaceful = 0 }) -des.monster("rock troll", 02,17) -des.monster({ id = "earth elemental", x = 04, y = 17, peaceful = 0 }) -des.monster({ id = "earth elemental", x = 04, y = 18, peaceful = 0 }) - -des.object("boulder") - diff --git a/src/NetHack_3.7/dat/engrave.txt b/src/NetHack_3.7/dat/engrave.txt deleted file mode 100644 index ff473b6..0000000 --- a/src/NetHack_3.7/dat/engrave.txt +++ /dev/null @@ -1,93 +0,0 @@ -# NetHack 3.7 engrave.txt $NHDT-Date: 1596498240 2020/08/03 23:44:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.5 $ -# Copyright (c) 2015 by Pasi Kallinen -# NetHack may be freely redistributed. See license for details. -# Random engravings on the floor -# -Elbereth -# trap engravings -Vlad was here -ad aerarium - -# take-offs and other famous engravings -Owlbreath -Galadriel -Kilroy was here -Frodo lives - -# Journey to the Center of the Earth -A.S. -> -<- A.S. -# Adventure -You won't get it up the steps -# Inferno -Lasciate ogni speranza o voi ch'entrate. -# Prisoner -Well Come -# God's Final Message to His Creation (from "So Long, and Thanks for All -# the Fish" by Douglas Adams): -We apologize for the inconvenience. -# Thriller -See you next Wednesday -# Smokey Stover -notary sojak - -For a good time call 8?7-5309 -# Various zoos around the world -Please don't feed the animals. -# A palindrome -Madam, in Eden, I'm Adam. -# Siskel & Ebert -Two thumbs up! -# The First C Program -Hello, World! -^?MAIL -# AOL -You've got mail! -^. -# Clueless -As if! -# 200x incarnation of Dr.Who -BAD WOLF - -# Gang tag -Arooo! Werewolves of Yendor! - -# Strategy and pun -Dig for Victory here - -# Pompeii -Gaius Julius Primigenius was here. Why are you late? - -# Helpful guiding -Don't go this way -Go left ---> -<--- Go right -X marks the spot -X <--- You are here. -Here be dragons -Save now, and do your homework! -There was a hole here. It's gone now. -The Vibrating Square -This is a pit! -This is not the dungeon you are looking for. -Watch out, there's a gnome with a wand of death behind that door! - -# Misc fun -This square deliberately left blank. - -# Viking graffiti -Haermund Hardaxe carved these runes - -# Advertising -Need a light? Come visit the Minetown branch of Izchak's Lighting Store! -Snakes on the Astral Plane - Soon in a dungeon near you -You are the one millionth visitor to this place! Please wait 200 turns for your wand of wishing. - -# DnD -Warning, Exploding runes! - -# "Whispers Underground" Ben Aaronovitch -If you can read these words then you are not only a nerd but probably dead. - -# Portal -The cake is a lie diff --git a/src/NetHack_3.7/dat/epitaph.txt b/src/NetHack_3.7/dat/epitaph.txt deleted file mode 100644 index a8fbb32..0000000 --- a/src/NetHack_3.7/dat/epitaph.txt +++ /dev/null @@ -1,399 +0,0 @@ -# NetHack 3.7 epitaph.txt $NHDT-Date: 1596498241 2020/08/03 23:44:01 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $ -# Copyright (c) 2015 by Pasi Kallinen -# NetHack may be freely redistributed. See license for details. -# Epitaphs for random headstones -# -# -Rest in peace -R.I.P. -Rest In Pieces -Note -- there are NO valuable items in this grave -1994-1995. The Longest-Lived Hacker Ever -The Grave of the Unknown Hacker -We weren't sure who this was, but we buried him here anyway -Sparky -- he was a very good dog -Beware of Electric Third Rail -Made in Taiwan -Og friend. Og good dude. Og died. Og now food. -Beetlejuice Beetlejuice Beetlejuice -Look out below! -Please don't dig me up. I'm perfectly happy down here. -- Resident -Postman, please note forwarding address: Gehennom, Asmodeus's Fortress, fifth lemure on the left -Mary had a little lamb/Its fleece was white as snow/When Mary was in trouble/The lamb was first to go -Be careful, or this could happen to you! -Soon you'll join this fellow in hell! -- the Wizard of Yendor -Caution! This grave contains toxic waste -Sum quod eris -Here lies an Atheist, all dressed up and no place to go -Here lies Ezekiel, age 102. The good die young. -Here lies my wife: Here let her lie! Now she's at rest and so am I. -Here lies Johnny Yeast. Pardon me for not rising. -He always lied while on the earth and now he's lying in it -I made an ash of myself -Soon ripe. Soon rotten. Soon gone. But not forgotten. -Here lies the body of Jonathan Blake. Stepped on the gas instead of the brake. -Go away! -Alas fair Death, 'twas missed in life - some peace and quiet from my wife -Applaud, my friends, the comedy is finished. -At last... a nice long sleep. -Audi Partem Alteram -Basil, assaulted by bears -Burninated -Confusion will be my epitaph -Do not open until Christmas -Don't be daft, they couldn't hit an elephant at this dist- -Don't forget to stop and smell the roses -Don't let this happen to you! -Dulce et decorum est pro patria mori -Et in Arcadia ego -Fatty and skinny went to bed. Fatty rolled over and skinny was dead. Skinny Smith 1983-2000. -Finally I am becoming stupider no more -Follow me to hell -...for famous men have the whole earth as their memorial -Game over, man. Game over. -Go away! I'm trying to take a nap in here! Bloody adventurers... -Gone fishin' -Good night, sweet prince: And flights of angels sing thee to thy rest! -Go Team Ant! -He farmed his way here -Here lies a programmer. Killed by a fatal error. -Here lies Bob - decided to try an acid blob -Here lies Dudley, killed by another %&#@#& newt. -Here lies Gregg, choked on an egg -Here lies Lies. It's True. -Here lies The Lady's maid, died of a Vorpal Blade -Here lies the left foot of Jack, killed by a land mine. Let us know if you find any more of him -He waited too long -I'd rather be sailing -If a man's deeds do not outlive him, of what value is a mark in stone? -I'm gonna make it! -I took both pills! -I will survive! -Killed by a black dragon -- This grave is empty -Let me out of here! -Lookin' good, Medusa. -Mrs. Smith, choked on an apple. She left behind grieving husband, daughter, and granddaughter. -Nobody believed her when she said her feet were killing her -No! I don't want to see my damn conduct! -One corpse, sans head -On the whole, I'd rather be in Minetown -On vacation -Oops. -Out to Lunch -SOLD -Someone set us up the bomb! -Take my stuff, I don't need it anymore -Taking a year dead for tax reasons -The reports of my demise are completely accurate -(This space for sale) -This was actually just a pit, but since there was a corpse, we filled it -This way to the crypt -Tu quoque, Brute? -VACANCY -Welcome! -Wish you were here! -Yea, it got me too -You should see the other guy -...and they made me engrave my own headstone too! -...but the blood has stopped pumping and I am left to decay... - -A masochist is never satisfied. -Ach, 'twas a wee monster in the loch -Adapt. Enjoy. Survive. -Adventure, hah! Excitement, hah! -After all, what are friends for... -After this, nothing will shock me -After three days, fish and guests stink -Age and treachery will always overcome youth and skill -Ageing is not so bad. The real killer is when you stop. -Ain't I a stinker? -Algernon -All else failed... -All hail RNG -All right, we'll call it a draw! -All's well that ends well -Alone at last! -Always attack a floating eye from behind! -Am I having fun yet? -And I can still crawl, I'm not dead yet! -And all I wanted was a free lunch -And all of the signs were right there on your face -And don't give me that innocent look either! -And everyone died. Boo hoo hoo. -And here I go again... -And nobody cares until somebody famous dies... -And so it ends? -And so... it begins. -And sometimes the bear eats you. -And then 'e nailed me 'ead to the floor! -And they said it couldn't be done! -And what do I look like? The living? -And yes, it was ALL his fault! -And you said it was pretty here... -Another lost soul -Any day above ground is a good day! -Any more of this and I'll die of a stroke before I'm 30. -Anybody seen my head? -Anyone for deathmatch? -Anything for a change. -Anything that kills you makes you ... well, dead -Anything worth doing is worth overdoing. -Are unicorns supposedly peaceful if you're a virgin? Hah! -Are we all being disintegrated, or is it just me? -At least I'm good at something -Attempted suicide -Auri sacra fames -Auribus teneo lupum -Be prepared -Beauty survives -Been Here. Now Gone. Had a Good Time. -Been through Hell, eh? What did you bring me? -Beg your pardon, didn't recognize you, I've changed a lot. -Being dead builds character -Beloved daughter, a treasure, buried here. -Best friends come and go.... Mine just die. -Better be dead than a fat slave -Better luck next time -Beware of Discordians bearing answers -Beware the ... -Bloody Hell... -Bloody barbarians! -Blown upward out of sight: He sought the leak by candlelight -Brains... Brains... Fresh human brains... -Buried the cat. Took an hour. Damn thing kept fighting. -But I disarmed the trap! -CONNECT 1964 - NO CARRIER 1994 -Call me if you need my phone number! -Can YOU fly? -Can you believe that thing is STILL moving? -Can you come up with some better ending for this? -Can you feel anything when I do this? -Can you give me mouth to mouth, you just took my breath away. -Can't I just have a LITTLE peril? -Can't eat, can't sleep, had to bury the husband here. -Can't you hit me?! -Chaos, panic and disorder. My work here is done. -Check enclosed. -Check this out! It's my brain! -Chivalry is only reasonably dead -Coffin for sale. Lifetime guarantee. -Come Monday, I'll be all right. -Come and see the violence inherent in the system -Come back here! I'll bite your bloody knees off! -Commodore Business Machines, Inc. Died for our sins. -Complain to one who can help you -Confess my sins to god? Which one? -Confusion will be my epitaph -Cooties? Ain't no cooties on me! -Could somebody get this noose off me? -Could you check again? My name MUST be there. -Could you please take a breath mint? -Couldn't I be sedated for this? -Courage is looking at your setbacks with serenity -Cover me, I'm going in! -Crash course in brain surgery -Cross my fingers for me. -Curse god and die -Cut to fit -De'Ath -Dead Again? Pardon me for not getting it right the first time! -Dead and loving every moment! -Dear wife of mine. Died of a broken heart, after I took it out of her. -Don't tread on me! -Dragon? What dragon? -Drawn and quartered -Either I'm dead or my watch has stopped. -Eliza -- Was I really alive, or did I just think I was? -Elvis -Enter not into the path of the wicked -Eris? I don't need Eris -Eternal Damnation, Come and stay a long while! -Even The Dead pay taxes (and they aren't Grateful). -Even a tomb stone will say good things when you're down! -Ever notice that live is evil backwards? -Every day is starting to look like Monday -Every day, in every way, I am getting better and better. -Every survival kit should include a sense of humor -Evil I did dwell; lewd did I live -Ex post fucto -Excellent day to have a rotten day. -Excuse me for not standing up. -Experience isn't everything. First, you've got to survive. -First shalt thou pull out the Holy Pin -For a Breath, I Tarry... -For recreational use only. -For sale: One soul, slightly used. Asking for 3 wishes. -For some moments in life, there are no words. -Forget Disney World, I'm going to Hell! -Forget about the dog, Beware of my wife. -Funeral - Real fun. -Gawd, it's depressing in here, isn't it? -Genuine Exploding Gravestone. (c)Acme Gravestones Inc. -Get back here! I'm not finished yet... -Go ahead, I dare you to! -Go ahead, it's either you or him. -Goldilocks -- This casket is just right -Gone But Not Forgotten -Gone Underground For Good -Gone away owin' more than he could pay. -Gone, but not forgiven -Got a life. Didn't know what to do with it. -Grave? But I was cremated! -Greetings from Hell - Wish you were here. -HELP! It's dark in here.... Oh, my eyes are closed - sorry -Ha! I NEVER pay income tax! -Have you come to raise the dead? -Having a good time can be deadly. -Having a great time. Where am I exactly?? -He died of the flux. -He died today.... May we rest in peace! -He got the upside, I got the downside. -He lost his face when he was beheaded. -He missed me first. -He's not dead, he just smells that way. -Help! I've fallen and I can't get up! -Help, I can't wake up! -Here lies Pinocchio -Here lies the body of John Round. Lost at sea and never found. -Here there be dragons -Hey, I didn't write this stuff! -Hodie mihi, cras tibi -Hold my calls -Home Sweet Hell -Humpty Dumpty, a Bad Egg. He was pushed off the wall. -I KNEW this would happen if I lived long enough. -I TOLD you I was sick! -I ain't broke but I am badly bent. -I ain't old. I'm chronologically advantaged. -I am NOT a vampire. I just like to bite..nibble, really! -I am here. Wish you were fine. -I am not dead yet, but watch for further reports. -I believe them bones are me. -I broke his brain. -I can feel it. My mind. It's going. I can feel it. -I can't go to Hell. They're afraid I'm gonna take over! -I can't go to hell, they don't want me. -I didn't believe in reincarnation the last time, either. -I didn't mean it when I said 'Bite me' -I died laughing -I disbelieved in reincarnation in my last life, too. -I hacked myself to death -I have all the time in the world -I knew I'd find a use for this gravestone! -I know my mind. And it's around here someplace. -I lied! I'll never be alright! -I like it better in the dark. -I like to be here when I can. -I may rise but I refuse to shine. -I never get any either. -I said hit HIM with the fireball, not me! -I told you I would never say goodbye. -I used to be amusing. Now I'm just disgusting. -I used up all my sick days, so now I'm calling in dead. -I was killed by -I was somebody. Who, is no business of yours. -I will not go quietly. -I'd give you a piece of my mind... but I can't find it. -I'd rather be breathing -I'll be back! -I'll be mellow when I'm dead. For now, let's PARTY! -I'm doing this only for tax purposes. -I'm not afraid of Death! What's he gonna do? Kill me? -I'm not getting enough money, so I'm not going to engrave anything useful here. -I'm not saying anything. -I'm weeth stupeed ---> -If you thought you had problems... -Ignorance kills daily. -Ignore me... I'm just here for my looks! -Ilene Toofar -- Fell off a cliff -Is that all? -Is there life before Death? -Is this a joke, or a grave matter? -It happens sometimes. People just explode. -It must be Thursday. I never could get the hang of Thursdays. -It wasn't a fair fight -It wasn't so easy. -It's Loot, Pillage and THEN Burn... -Just doing my job here -Killed by diarrhea of mouth and constipation of brain. -Let her RIP -Let it be; I am dead. -Let's play Hide the Corpse -Life is NOT a dream -Madge Ination -- It wasn't all in my head -Meet me in Heaven -Move on, there's nothing to see here. -Mr. Flintstone -- Yabba-dabba-done -My heart is not in this -No one ever died from it -No, you want room 12A, next door. -Nope. No trap on that chest. I swear. -Not again! -Not every soil can bear all things -Now I have a life -Now I lay thee down to sleep... wanna join me? -OK, here is a question: Where ARE your tanlines? -Obesa Cantavit -Oh! An untimely death. -Oh, by the way, how was my funeral? -"Oh, honey... I missed you!" she said, and fired again. -Ok, so the light does go off. Now let me out of here. -One stone brain -Ooh! Somebody STOP me! -Oops! -Out for the night. Leave a message. -Ow! Do that again! -Pardon my dust. -Part of me still works. -Please, not in front of those orcs! -Prepare to meet me in Heaven -R2D2 -- Rest, Tin Piece -Relax. Nothing ever happens on the first level. -Res omnia mea culpa est -Rest In Pieces -Rest, rest, perturbed spirit. -Rip Torn -She always said her feet were killing her but nobody believed her. -She died of a chest cold. -So let it be written, so let it be done! -So then I says, How do I know you're the real angel of death? -Some patients insist on dying. -Some people have it dead easy, don't they? -Some things are better left buried. -Sure, trust me, I'm a lawyer... -Thank God I wore my corset, because I think my sides have split. -That is all -The Gods DO have a sense of humor: I'm living proof! -The frog's dead. He Kermitted suicide. -This dungeon is a pushover -This elevator doesn't go to Heaven -This gravestone is shareware. To register, please send me 10 zorkmids -This gravestone provided by The Yendorian Grave Services Inc. -This is not an important part of my life. -This one's on me. -This side up -Tim Burr -- Smashed by a tree -Tone it down a bit, I'm trying to get some rest here. -Virtually Alive -We Will Meet Again. -Weep not, he is at rest -Welcome to Dante's. What level please? -Well, at least they listened to my sermon... -Went to be an angel. -What are you doing over there? -What are you smiling at? -What can you say, Death's got appeal...! -What health care? -What pit? -When the gods want to punish you, they answer your prayers. -Where e'er you be let your wind go free. Keeping it in was the death of me! -Where's my refund? -Will let you know for sure in a day or two... -Wizards are wimps -Worms at work, do not disturb! -Would you mind moving a bit? I'm short of breath down here. -Would you quit being evil over my shoulder? -Ya really had me going baby, but now I'm gone. -Yes Dear, just a few more minutes... -You said it wasn't poisonous! -You set my heart aflame. You gave me heartburn. diff --git a/src/NetHack_3.7/dat/fakewiz1.lua b/src/NetHack_3.7/dat/fakewiz1.lua deleted file mode 100644 index abee299..0000000 --- a/src/NetHack_3.7/dat/fakewiz1.lua +++ /dev/null @@ -1,44 +0,0 @@ --- NetHack yendor fakewiz1.lua $NHDT-Date: 1652196025 2022/05/10 15:20:25 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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"); - -local tmpbounds = selection.match("-"); -local bnds = tmpbounds:bounds(); -local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1); - -local fakewiz1 = des.map({ halign = "center", valign = "center", map = [[ -......... -.}}}}}}}. -.}}---}}. -.}--.--}. -.}|...|}. -.}--.--}. -.}}---}}. -.}}}}}}}. -......... -]], contents = function(rm) - des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,8}, type="stair-up" }) - des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,8}, type="stair-down" }) - des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,8}, type="branch" }); - des.teleport_region({ region={01,00,79,20}, region_islev=1,exclude={2,2,6,6} }) - des.levregion({ region={4,4,4,4}, type="portal", name="wizard3" }) - des.mazewalk(08,05,"east") - des.region({ region={04,03,06,06},lit=0,type="ordinary",irregular=1,arrival_room=true }) - des.monster("L",04,04) - des.monster("vampire lord",03,04) - des.monster("kraken",06,06) - -- And to make things a little harder. - des.trap("board",04,03) - des.trap("board",04,05) - des.trap("board",03,04) - des.trap("board",05,04) -end -}); - -local protected = bounds2:negate() | fakewiz1; -hell_tweaks(protected); diff --git a/src/NetHack_3.7/dat/fakewiz2.lua b/src/NetHack_3.7/dat/fakewiz2.lua deleted file mode 100644 index 4b81ae3..0000000 --- a/src/NetHack_3.7/dat/fakewiz2.lua +++ /dev/null @@ -1,44 +0,0 @@ --- NetHack yendor fakewiz2.lua $NHDT-Date: 1652196026 2022/05/10 15:20:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $ --- 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"); - -local tmpbounds = selection.match("-"); -local bnds = tmpbounds:bounds(); -local bounds2 = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1); - -local fakewiz2 = des.map({ halign = "center", valign = "center", map = [[ -......... -.}}}}}}}. -.}}---}}. -.}--.--}. -.}|...|}. -.}--.--}. -.}}---}}. -.}}}}}}}. -......... -]], contents = function(rm) - des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,8}, type="stair-up" }) - des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,8}, type="stair-down" }) - des.levregion({ region={01,00,79,20}, region_islev=1, exclude={0,0,8,8}, type="branch" }); - des.teleport_region({ region={01,00,79,20}, region_islev=1,exclude={2,2,6,6} }) - des.mazewalk(08,05,"east") - des.monster("L",04,04) - des.monster("vampire lord",03,04) - des.monster("kraken",06,06) - -- And to make things a little harder. - des.trap("board",04,03) - des.trap("board",04,05) - des.trap("board",03,04) - des.trap("board",05,04) - -- treasures - des.object("\"",04,04) -end -}); - -local protected = bounds2:negate() | fakewiz2; -hell_tweaks(protected); diff --git a/src/NetHack_3.7/dat/fire.lua b/src/NetHack_3.7/dat/fire.lua deleted file mode 100644 index c97973c..0000000 --- a/src/NetHack_3.7/dat/fire.lua +++ /dev/null @@ -1,156 +0,0 @@ --- NetHack endgame fire.lua $NHDT-Date: 1652196026 2022/05/10 15:20:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ --- 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", "hot", "fumaroles") --- The player lands, upon arrival, in the --- lower-right. The location of the --- portal to the next level is randomly chosen. --- This map has no visible outer boundary, and --- is mostly open area, with lava lakes and bunches of fire traps. -des.map([[ -............................................................................ -....LLLLLLLL............L.......................LLL......................... -...LL...................L......................LLLL................LL....... -...L.............LLLL...LL....LL...............LLLLL.............LLL........ -.LLLL..............LL....L.....LLL..............LLLL..............LLLL...... -..........LLLL...LLLL...LLL....LLL......L........LLLL....LL........LLL...... -........LLLLLLL...LL.....L......L......LL.........LL......LL........LL...L.. -........LL..LLL..LL......LL......LLLL..L.........LL......LLL............LL.. -....L..LL....LLLLL.................LLLLLLL.......L......LL............LLLLLL -....L..L.....LL.LLLL.......L............L........LLLLL.LL......LL.........LL -....LL........L...LL......LL.............LLL.....L...LLL.......LLL.........L -.....LLLLLL........L.......LLL.............L....LL...L.LLL......LLLLLLL..... -..........LLLL............LL.L.............L....L...LL.........LLL..LLL..... -...........................LLLLL...........LL...L...L........LLLL..LLLLLL... -.....LLLL.............LL....LL.......LLL...LL.......L..LLL....LLLLLLL....... -.......LLL.........LLLLLLLLLLL......LLLLL...L...........LL...LL...LL........ -.........LL.......LL.........LL.......LLL....L..LLL....LL.........LL........ -..........LLLLLLLLL...........LL....LLL.......LLLLL.....LL........LL........ -.................L.............LLLLLL............LL...LLLL.........LL....... -.................................LL....................LL................... -]]); -des.teleport_region({ region = {69,16,69,16} }) -des.levregion({ region = {0,0,75,19}, exclude = {65,13,75,19}, type="portal", name="water" }) - -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") -des.trap("fire") --- An assortment of fire-appropriate nasties -des.monster("red dragon") -des.monster("balrog") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("fire vortex") -des.monster("hell hound") --- -des.monster("fire giant") -des.monster("barbed devil") -des.monster("hell hound") -des.monster("stone golem") -des.monster("pit fiend") -des.monster({ id = "fire elemental", peaceful = 0 }) --- -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("hell hound") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("scorpion") -des.monster("fire giant") --- -des.monster("hell hound") -des.monster("dust vortex") -des.monster("fire vortex") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("hell hound") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("stone golem") -des.monster("pit viper") -des.monster("pit viper") -des.monster("fire vortex") --- -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("fire giant") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("fire vortex") -des.monster("fire vortex") -des.monster("pit fiend") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("pit viper") --- -des.monster({ id = "salamander", peaceful = 0 }) -des.monster({ id = "salamander", peaceful = 0 }) -des.monster("minotaur") -des.monster({ id = "salamander", peaceful = 0 }) -des.monster("steam vortex") -des.monster({ id = "salamander", peaceful = 0 }) -des.monster({ id = "salamander", peaceful = 0 }) --- -des.monster("fire giant") -des.monster("barbed devil") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("fire vortex") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster("hell hound") -des.monster("fire giant") -des.monster("pit fiend") -des.monster({ id = "fire elemental", peaceful = 0 }) -des.monster({ id = "fire elemental", peaceful = 0 }) --- -des.monster("barbed devil") -des.monster({ id = "salamander", peaceful = 0 }) -des.monster("steam vortex") -des.monster({ id = "salamander", peaceful = 0 }) -des.monster({ id = "salamander", peaceful = 0 }) - -des.object("boulder") -des.object("boulder") -des.object("boulder") -des.object("boulder") -des.object("boulder") - diff --git a/src/NetHack_3.7/dat/hellfill.lua b/src/NetHack_3.7/dat/hellfill.lua deleted file mode 100644 index 45f1f73..0000000 --- a/src/NetHack_3.7/dat/hellfill.lua +++ /dev/null @@ -1,422 +0,0 @@ --- NetHack 3.7 hellfill.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.25 $ --- Copyright (c) 2022 by Pasi Kallinen --- NetHack may be freely redistributed. See license for details. --- --- - --- The "fill" level for gehennom. --- --- This level is used to fill out any levels not occupied by --- specific levels. --- - -function hellobjects() - local objclass = { "(", "/", "=", "+", ")", "[", "?", "*", "%" }; - shuffle(objclass); - - des.object(objclass[1]); - des.object(objclass[1]); - des.object(objclass[2]); - des.object(objclass[3]); - des.object(objclass[4]); - des.object(objclass[5]); - des.object() - des.object() -end - --- - -function hellmonsters() - local monclass = { "V", "D", " ", "&", "Z" }; - shuffle(monclass); - - des.monster({ class = monclass[1], peaceful = 0 }); - des.monster({ class = monclass[1], peaceful = 0 }); - des.monster({ class = monclass[2], peaceful = 0 }); - des.monster({ class = monclass[2], peaceful = 0 }); - des.monster({ class = monclass[3], peaceful = 0 }); - des.monster({ class = monclass[4], peaceful = 0 }); - des.monster({ peaceful = 0 }); - des.monster({ class = "H", peaceful = 0 }); -end - --- - -function helltraps() - for i = 1, 12 do - des.trap() - end -end - --- - -function populatemaze() - for i = 1, math.random(8) + 11 do - if (percent(50)) then - des.object("*"); - else - des.object(); - end - end - - for i = 1, math.random(10) + 2 do - des.object("`"); - end - - for i = 1, math.random(3) do - des.monster({ id = "minotaur", peaceful = 0 }); - end - - for i = 1, math.random(5) + 7 do - des.monster({ peaceful = 0 }); - end - - for i = 1, math.random(6) + 7 do - des.gold(); - end - - for i = 1, math.random(6) + 7 do - des.trap(); - end -end - --- - -function rnd_halign() - local aligns = { "half-left", "center", "half-right" }; - return aligns[math.random(1, #aligns)]; -end - -function rnd_valign() - local aligns = { "top", "center", "bottom" }; - return aligns[math.random(1, #aligns)]; -end - --- the prefab maps must have contents-function, or populatemaze() --- puts the stuff only inside the prefab map. --- contains either a function, or an object with "repeatable" and "contents". --- function alone implies not repeatable. -local hell_prefabs = { - { - repeatable = true, - contents = function () - des.map({ halign = rnd_halign(), valign = "center", map = [[ -...... -...... -...... -...... -...... -...... -...... -...... -...... -...... -...... -...... -...... -...... -...... -......]], contents = function() end }); - end - }, - { - repeatable = true, - contents = function () - des.map({ halign = rnd_halign(), valign = "center", map = [[ -xxxxxx.....xxxxxx -xxxx.........xxxx -xx.............xx -xx.............xx -x...............x -x...............x -................. -................. -................. -................. -................. -x...............x -x...............x -xx.............xx -xx.............xx -xxxx.........xxxx -xxxxxx.....xxxxxx -]], contents = function() end }); - end - }, - function (coldhell) - des.map({ halign = rnd_halign(), valign = rnd_valign(), map = [[ -xxxxxx.xxxxxx -xLLLLLLLLLLLx -xL---------Lx -xL|.......|Lx -xL|.......|Lx -.L|.......|L. -xL|.......|Lx -xL|.......|Lx -xL---------Lx -xLLLLLLLLLLLx -xxxxxx.xxxxxx -]], contents = function() - des.non_diggable(selection.area(2,2, 10,8)); - des.region(selection.area(4,4, 8,6), "lit"); - des.exclusion({ type = "teleport", region = { 2,2, 10,8 } }); - if (coldhell) then - des.replace_terrain({ region = {1,1, 11,9}, fromterrain="L", toterrain="P" }); - end - local dblocs = { - { x = 1, y = 5, dir="east", state="closed" }, - { x = 11, y = 5, dir="west", state="closed" }, - { x = 6, y = 1, dir="south", state="closed" }, - { x = 6, y = 9, dir="north", state="closed" } - } - shuffle(dblocs); - for i = 1, math.random(1, #dblocs) do - des.drawbridge(dblocs[i]); - end - local mons = { "H", "T", "@" }; - shuffle(mons); - for i = 1, 3 + math.random(1, 5) do - des.monster(mons[1], 6, 5); - end - end }); - end, - { - repeatable = true, - contents = function () - des.map({ halign = "center", valign = "center", map = [[ -.............................................................. -.............................................................. -.............................................................. -.............................................................. -..............................................................]], contents = function() end }); - end - }, - { - repeatable = true, - contents = function () - des.map({ halign = rnd_halign(), valign = rnd_valign(), lit = true, map = [[ -x.....x -....... -....... -....... -....... -....... -x.....x]], contents = function() end }); - end - }, - function () - des.map({ halign = rnd_halign(), valign = rnd_valign(), map = [[ -BBBBBBB -B.....B -B.....B -B.....B -B.....B -B.....B -BBBBBBB]], contents = function() - des.region({ region={2,2, 2,2}, type="temple", filled=1, irregular=1 }); - des.altar({ x=3, y=3, align="noalign", type=percent(75) and "altar" or "shrine" }); - end }); - end, - function () - des.map({ halign = rnd_halign(), valign = rnd_valign(), map = [[ -.......... -.......... -.......... -...FFFF... -...F..F... -...F..F... -...FFFF... -.......... -.......... -..........]], contents = function() - des.exclusion({ type = "teleport", region = { 4,4, 5,5 } }); - local mons = { "Angel", "D", "H", "L" }; - des.monster(mons[math.random(1, #mons)], 4,4); - end }); - end, - - function () - des.map({ halign = rnd_halign(), valign = rnd_valign(), map = [[ -......... -.}}}}}}}. -.}}---}}. -.}--.--}. -.}|...|}. -.}--.--}. -.}}---}}. -.}}}}}}}. -......... -]], contents = function(rm) - des.exclusion({ type = "teleport", region = { 3,3, 5,5 } }); - des.monster("L",04,04) - end }) - end, - function () - local mapstr = percent(30) and [[ -..... -.LLL. -.LZL. -.LLL. -.....]] or [[ -..... -.PPP. -.PWP. -.PPP. -.....]]; - for dx = 1, 5 do - des.map({ x = dx*14 - 4, y = math.random(3, 15), - map = mapstr, contents = function() end }) - end - end, - { - repeatable = true, - contents = function () - local mapstr = [[ -... -... -... -... -... -... -... -... -... -... -... -... -... -... -... -... -...]]; - for dx = 1, 3 do - des.map({ x = math.random(3, 75), y = 3, - map = mapstr, contents = function() end }) - end - end - }, -}; - -function rnd_hell_prefab(coldhell) - local dorepeat = true; - local nloops = 0; - repeat - nloops = nloops + 1; - local pf = math.random(1, #hell_prefabs); - local fab = hell_prefabs[pf]; - local fabtype = type(fab); - - if (fabtype == "function") then - fab(coldhell); - dorepeat = false; - elseif (fabtype == "table") then - fab.contents(coldhell); - dorepeat = not (fab.repeatable and math.random(0, nloops * 2) == 0); - end - until ((not dorepeat) or (nloops > 5)); -end - -hells = { - -- 1: "mines" style with lava - function () - des.level_init({ style = "solidfill", fg = " ", lit = 0 }); - des.level_flags("mazelevel", "noflip"); - des.level_init({ style="mines", fg=".", smoothed=true ,joined=true, lit=0, walled=true }); - des.replace_terrain({ fromterrain = " ", toterrain = "L" }); - des.replace_terrain({ fromterrain = ".", toterrain = "L", chance = 5 }); - des.replace_terrain({ mapfragment = [[w]], toterrain = "L", chance = 20 }); - des.replace_terrain({ mapfragment = [[w]], toterrain = ".", chance = 15 }); - end, - - -- 2: mazes like original, with some hell_tweaks - function () - des.level_init({ style = "solidfill", fg = " ", lit = 0 }); - des.level_flags("mazelevel", "noflip"); - des.level_init({ style = "mazegrid", bg = "-" }); - des.mazewalk({ coord = {01,10}, dir = "east", stocked = false}); - local tmpbounds = selection.match("-"); - local bnds = tmpbounds:bounds(); - local protected_area = selection.fillrect(bnds.lx, bnds.ly + 1, bnds.hx - 2, bnds.hy - 1); - hell_tweaks(protected_area:negate()); - if (percent(25)) then - rnd_hell_prefab(false); - end - end, - - -- 3: mazes, style 1: wall thick = 1, random wid corr - function () - des.level_init({ style = "solidfill", fg = " ", lit = 0 }); - des.level_flags("mazelevel", "noflip"); - des.level_init({ style = "maze", wallthick = 1 }); - end, - - -- 4: mazes, style 2: replace wall with iron bars or lava - function () - local cwid = math.random(4); - des.level_init({ style = "solidfill", fg = " ", lit = 0 }); - des.level_flags("mazelevel", "noflip"); - des.level_init({ style = "maze", wallthick = 1, corrwid = cwid }); - local outside_walls = selection.match(" "); - local wallterrain = { "F", "L" }; - shuffle(wallterrain); - des.replace_terrain({ mapfragment = "w", toterrain = wallterrain[1] }); - if (cwid == 1) then - if (wallterrain[1] == "F" and percent(80)) then - -- replace some horizontal iron bars walls with floor - des.replace_terrain({ mapfragment = ".\nF\n.", toterrain = ".", chance = 25 * math.random(4) }); - elseif (percent(25)) then - rnd_hell_prefab(false); - end - end - des.terrain(outside_walls, " "); -- return the outside back to solid wall - end, - - -- 5: mazes, thick walls, occasionally lava instead of walls - function () - des.level_init({ style = "solidfill", fg = " ", lit = 0 }); - des.level_flags("mazelevel", "noflip"); - des.level_init({ style = "maze", wallthick = 1 + math.random(2), corrwid = math.random(2) }); - if (percent(50)) then - local outside_walls = selection.match(" "); - des.replace_terrain({ mapfragment = "w", toterrain = "L" }); - des.terrain(outside_walls, " "); -- return the outside back to solid wall - end - end, - - -- 6: cold maze, with ice and water - function () - local cwid = math.random(4); - des.level_init({ style = "solidfill", fg = " ", lit = 0 }); - des.level_flags("mazelevel", "noflip", "cold"); - des.level_init({ style = "maze", wallthick = 1, corrwid = cwid }); - local outside_walls = selection.match(" "); - local icey = selection.negate():percentage(10):grow():filter_mapchar("."); - des.terrain(icey, "I"); - if (cwid > 1) then - -- turn some ice into wall of water - des.terrain(icey:percentage(1), "W"); - end - des.terrain(icey:percentage(5), "P"); - if (percent(25)) then - des.terrain(selection.match("w"), "W"); -- walls of water - end - if (cwid == 1 and percent(25)) then - rnd_hell_prefab(true); - end - des.terrain(outside_walls, " "); -- return the outside back to solid wall - end, -}; - -local hellno = math.random(1, #hells); -hells[hellno](); - --- - -des.stair("up") -if (u.invocation_level) then - des.trap("vibrating square"); -else - des.stair("down") -end - -populatemaze(); diff --git a/src/NetHack_3.7/dat/help b/src/NetHack_3.7/dat/help deleted file mode 100644 index eb500b0..0000000 --- a/src/NetHack_3.7/dat/help +++ /dev/null @@ -1,214 +0,0 @@ - Welcome to NetHack! ( description of version 3.6 ) - - NetHack is a Dungeons and Dragons like game where you (the adventurer) -descend into the depths of the dungeon in search of the Amulet of Yendor, -reputed to be hidden somewhere below the twentieth level. You begin your -adventure with a pet that can help you in many ways, and can be trained -to do all sorts of things. On the way you will find useful (or useless) -items, quite possibly with magic properties, and assorted monsters. You can -attack a monster by trying to move onto the space a monster is on (but often -it is much wiser to leave it alone). - - Unlike most adventure games, which give you a verbal description of -your location, NetHack gives you a visual image of the dungeon level you are -on. - - NetHack uses the following symbols: - - - and | The walls of a room, possibly also open doors or a grave. - . The floor of a room or a doorway. - # A corridor, or iron bars, or a tree, or possibly a kitchen - sink (if your dungeon has sinks), or a drawbridge. - > Stairs down: a way to the next level. - < Stairs up: a way to the previous level. - @ You (usually), or another human. - ) A weapon of some sort. - [ A suit or piece of armor. - % Something edible (not necessarily healthy). - / A wand. - = A ring. - ? A scroll. - ! A potion. - ( Some other useful object (pick-axe, key, lamp...) - $ A pile of gold. - * A gem or rock (possibly valuable, possibly worthless). - + A closed door, or a spellbook containing a spell - you can learn. - ^ A trap (once you detect it). - " An amulet, or a spider web. - 0 An iron ball. - _ An altar, or an iron chain. - { A fountain. - } A pool of water or moat or a pool of lava. - \ An opulent throne. - ` A boulder or statue. - A to Z, a to z, and several others: Monsters. - I Invisible or unseen monster's last known location - - You can find out what a symbol represents by typing - '/' and following the directions to move the cursor - to the symbol in question. For instance, a 'd' may - turn out to be a dog. - - -y k u 7 8 9 Move commands: - \|/ \|/ yuhjklbn: go one step in specified direction -h-.-l 4-.-6 YUHJKLBN: go in specified direction until you - /|\ /|\ hit a wall or run into something -b j n 1 2 3 g: run in direction until something - numberpad interesting is seen - G, same, except a branching corridor isn't - < up ^: considered interesting (the ^ in this - case means the Control key, not a caret) - > down m: move without picking up objects - F: fight even if you don't sense a monster - If the number_pad option is set, the number keys move instead. - Depending on the platform, Shift number (on the numberpad), - Meta number, or Alt number will invoke the YUHJKLBN commands. - Control may or may not work when number_pad is enabled, - depending on the platform's capabilities. - Digit '5' acts as 'G' prefix, unless number_pad is set to 2 - in which case it acts as 'g' instead. - If number_pad is set to 3, the roles of 1,2,3 and 7,8,9 are - reversed; when set to 4, behaves same as 3 combined with 2. - If number_pad is set to -1, alphabetic movement commands are - used but 'y' and 'z' are swapped. - -Commands: - NetHack knows the following commands: - ? Help menu. - / What-is, tell what a symbol represents. You may choose to - specify a location or give a symbol argument. Enabling the - autodescribe option will give information about the symbol - at each location you move the cursor onto. - & Tell what a command does. - < Go up a staircase (if you are standing on it). - > Go down a staircase (if you are standing on it). - . Rest, do nothing for one turn. - _ Travel via a shortest-path algorithm to a point on the map. - a Apply (use) a tool (pick-axe, key, lamp...). - A Remove all armor. - ^A Redo the previous command. - c Close a door. - C Call (name) monster, individual object, or type of object. - d Drop something. d7a: drop seven items of object a. - D Drop multiple items. This command is implemented in two - different ways. One way is: - "D" displays a list of all of your items, from which you can - pick and choose what to drop. A "+" next to an item means - that it will be dropped, a "-" means that it will not be - dropped. Toggle an item to be selected/deselected by typing - the letter adjacent to its description. Select all items - with "+", deselect all items with "=". The moves - you from one page of the listing to the next. - The other way is: - "D" will ask the question "What kinds of things do you want - to drop? [!%= au]". You should type zero or more object - symbols possibly followed by 'a' and/or 'u'. - Da - drop all objects, without asking for confirmation. - Du - drop only unpaid objects (when in a shop). - D%u - drop only unpaid food. - ^D Kick (for doors, usually). - e Eat food. - E Engrave a message on the floor. - E- - write in the dust with your fingers. - f Fire ammunition from quiver. - F Followed by direction, fight a monster (even if you don't - sense it). - i Display your inventory. - I Display selected parts of your inventory, as in - I* - list all gems in inventory. - Iu - list all unpaid items. - Ix - list all used up items that are on your shopping bill. - I$ - count your money. - o Open a door. - O Review current options and possibly change them. - A menu displaying the option settings will be displayed - and most can be changed by simply selecting their entry. - Options are usually set before the game with NETHACKOPTIONS - environment variable or via a configuration file (defaults.nh, - NetHack Defaults, nethack.cnf, ~/.nethackrc, etc.) rather - than with the 'O' command. - p Pay your shopping bill. - P Put on an accessory (ring, amulet, etc). - ^P Repeat last message (subsequent ^P's repeat earlier messages). - The behavior can be varied via the msg_window option. - q Drink (quaff) something (potion, water, etc). - Q Select ammunition for quiver. - #quit Exit the program without saving the current game. - r Read a scroll or spellbook. - R Remove an accessory (ring, amulet, etc). - ^R Redraw the screen. - s Search for secret doors and traps around you. - S Save the game. Also exits the program. - [To restore, just play again and use the same character name.] - [There is no "save current data but keep playing" capability.] - t Throw an object or shoot a projectile. - T Take off armor. - ^T Teleport, if you are able. - v Displays the version number. - V Display a longer identification of the version, including the - history of the game. - w Wield weapon. w- means wield nothing, use bare hands. - W Wear armor. - x Swap wielded and secondary weapons. - X Toggle two-weapon combat. - ^X Show your attributes. - #explore Switch to Explore Mode (aka Discovery Mode) where dying and - deleting the save file during restore can both be overridden. - z Zap a wand. (Use y instead of z if number_pad is -1.) - Z Cast a spell. (Use Y instead of Z if number_pad is -1.) - ^Z Suspend the game. (^Y instead of ^Z if number_pad is -1.) - [To resume, use the shell command 'fg'.] - : Look at what is here. - ; Look at what is somewhere else. - , Pick up some things. - @ Toggle the pickup option. - ^ Ask for the type of a trap you found earlier. - ) Tell what weapon you are wielding. - [ Tell what armor you are wearing. - = Tell what rings you are wearing. - " Tell what amulet you are wearing. - ( Tell what tools you are using. - * Tell what equipment you are using; combines the preceding five. - $ Count your gold pieces. - + List the spells you know; also rearrange them if desired. - \ Show what types of objects have been discovered. - ` Show discovered types for one class of objects. - ! Escape to a shell, if supported in your version and OS. - [To resume play, terminate the shell subprocess via 'exit'.] - # Introduces one of the "extended" commands. To get a list of - the commands you can use with "#" type "#?". The extended - commands you can use depends upon what options the game was - compiled with, along with your class and what type of monster - you most closely resemble at a given moment. If your keyboard - has a meta key (which, when pressed in combination with another - key, modifies it by setting the 'meta' (8th, or 'high') bit), - these extended commands can be invoked by meta-ing the first - letter of the command. An alt key may have a similar effect. - - If the "number_pad" option is on, some additional letter commands - are available: - - h displays the help menu, like '?' - j Jump to another location. - k Kick (for doors, usually). - l Loot a box on the floor. - n followed by number of times to repeat the next command. - N Name a monster, an individual object, or a type of object. - u Untrap a trapped object or door. - - You can put a number before a command to repeat it that many times, - as in "40." or "20s". If you have the number_pad option set, you - must type 'n' to prefix the count, as in "n40." or "n20s". - - - Some information is displayed on the bottom line or perhaps in a - box, depending on the platform you are using. You see your - attributes, your alignment, what dungeon level you are on, how many - hit points you have now (and will have when fully recovered), what - your armor class is (the lower the better), your experience level, - and the state of your stomach. Optionally, you may or may not see - other information such as spell points, how much gold you have, etc. - - Have Fun, and Happy Hacking! diff --git a/src/NetHack_3.7/dat/hh b/src/NetHack_3.7/dat/hh deleted file mode 100644 index 951e914..0000000 --- a/src/NetHack_3.7/dat/hh +++ /dev/null @@ -1,160 +0,0 @@ -y k u 7 8 9 Move commands: - \|/ \|/ yuhjklbn: go one step in specified direction -h-.-l 4-.-6 YUHJKLBN: go in specified direction until you - /|\ /|\ hit a wall or run into something -b j n 1 2 3 g: run in direction until something - numberpad interesting is seen - G, same, except a branching corridor isn't - < up ^: considered interesting (the ^ in this - case means the Control key, not a caret) - > down m: move without picking up objects/fighting - F: fight even if you don't sense a monster - If the number_pad option is set, the digit keys move instead. - Depending on the platform, Shift digit (on the numberpad), - Meta digit, or Alt digit will invoke the YUHJKLBN commands. - Control may or may not work when number_pad is enabled, - depending on the platform's capabilities. - Digit '5' acts as 'G' prefix, unless number_pad is set to 2 - in which case it acts as 'g' instead. - If number_pad is set to 3, the roles of 1,2,3 and 7,8,9 are - reversed; when set to 4, behaves same as 3 combined with 2. - If number_pad is set to -1, alphabetic movement commands are - used but 'y' and 'z' are swapped. - -General commands: -? help display one of several informative texts -#quit quit end the game without saving current game -S save save the game (to be continued later) and exit - [to restore, play again and use the same character name; - use #quit to quit without saving] -! sh escape to some SHELL (if allowed; 'exit' to resume play) -^Z suspend suspend the game (independent of your current suspend char) - [on UNIX(tm)-based systems, use the 'fg' command to resume] -O options set options -/ what-is tell what a map symbol represents -\ known display list of what's been discovered -| perminv interact with persistent inventory window instead of hero+map -v version display version number -V history display game history -^A again redo the previous command -^R redraw redraw the screen -^P prevmsg repeat previous message (consecutive ^P's repeat earlier ones) -# introduces an extended command (#? for a list of them) -& what-does describe the command a keystroke invokes - -Control characters are depicted as '^' followed by a letter. Depress Ctrl -or Control like a shift key then type the letter. Control characters are -case-insensitive; ^D is the same as ^d, Ctrl+d is same as Ctrl+Shift+d. -There are a few non-letter control characters; nethack uses ^[ as a synonym -for Escape (or vice versa) and ^_ for #retravel but none of the others. - -Game commands: -^D kick kick (a door, or something else) -^T Tport teleport (if you can) -^X show show your attributes -a apply apply or use a tool (pick-axe, key, camera, etc.) -A takeoffall choose multiple items of armor, accessories, and weapons - to take off, remove, unwield (uses same amount of game time - as removing them individually with T,R,w- would take) -c close close a door -C call name a monster, an individual object, or a type of object -d drop drop an object. d7a: drop seven items of object 'a' -D Drop drop selected types of objects -e eat eat something -E engrave write a message in the dust on the floor (E- use fingers) -f fire fire ammunition from quiver -F fight followed by direction, fight a monster -i invent list your inventory (all objects you are carrying) -I Invent list selected parts of your inventory; for example - I( list all tools, or I" list all amulets - IB list all items known to be blessed - IU uncursed, or IC cursed, or IX unknown bless state - Iu when in a shop, list unpaid objects being carried - Ix in a shop, list any fees and used-up shop-owned items -o open open a door -p pay pay your bill (in a shop) -P puton put on an accessory (ring, amulet, etc; can be used to wear - armor too, but armor items aren't listed as likely candidates) -q quaff drink something (potion, water, etc) -Q quiver select ammunition for quiver (use '#quit' to quit) -r read read a scroll or spellbook -R remove remove an accessory (ring, amulet, etc; can be used to take - off armor too) -s search search for secret doors, hidden traps and monsters -t throw throw or shoot a weapon -T takeoff take off some armor; can be used to remove accessories too, - but those aren't listed as likely candidates) -w wield wield a weapon (w- wield nothing to unwield current weapon) -W wear wear an item of armor; can be used to put on accessories too, - but those aren't listed as likely candidates) -x xchange swap wielded and secondary weapons -X twoweapon toggle two-weapon combat if role allows that -z zap zap a wand (use y instead of z if number_pad is -1) -Z Zap cast a spell (use Y instead of Z if number_pad is -1) -< up go up the stairs -> down go down the stairs -^ trap_id identify a previously found trap -),[,=,",( show current items of specified symbol in use -* show combination of ),[,=,",( all at once -$ gold count your gold -+ spells list the spells you know; also rearrange them if desired -` classkn display known items for one class of objects -_ travel move via a shortest-path algorithm to a point on the map -^_ retravel resume travelling toward previously specified destination -. rest wait a moment -, pickup pick up all you can carry -@ toggle "pickup" (auto pickup) option on and off -: look look at what is here -; farlook look at what is somewhere else by selecting a map location - (for a monster on top of one or more objects, only describes - that monster; for a pile of objects, only describes top one) - -Keyboards that have a meta key (some use Alt for that, so typing Alt as a -shift plus 'e' would generate 'M-e') can also use these extended commands -via the meta modifier as an alternative to using the # prefix. Unlike -control characters, meta characters are case-sensitive so M-a is different -from M-A. Type the latter with two keys used as shifts, Meta+Shift+a. - -M-? display extended command help (if the platform allows this) -M-2 twoweapon toggle two-weapon combat (unless number_pad is enabled) -M-a adjust adjust inventory letters -M-A annotate add a one-line note to the current dungeon level (see M-O) -M-c chat talk to someone -M-C conduct view optional challenges -M-d dip dip an object into something -M-e enhance show weapon and spell skills, can improve them if eligible -M-f force force a lock -M-g genocided list genocided and extinct monster types, if any -M-i invoke invoke an object's special powers -M-j jump jump to another location -M-l loot loot a box on the floor -M-m monster when polymorphed, use monster's special ability -M-n name name a monster, an individual object, or a type of object -M-N name synonym for M-n (both are the same as C) -M-o offer offer a sacrifice to the gods -M-O overview display information about visited levels and annotations -M-p pray pray to the gods for help -M-q quit stop playing without saving game (use S to save and exit) -M-r rub rub a lamp or a stone -M-R ride mount or dismount saddled steed -M-s sit sit down -M-t turn turn undead if role allows that -M-T tip upend a container to dump out its contents -M-u untrap untrap something -M-V vanquished list number and type of vanquished monsters -M-v version print compile time options for this version -M-w wipe wipe off your face -M-X explore switch from regular play to non-scoring explore mode - -If the 'number_pad' option is on, keys usually used for movement can be -used for various commands: - -n followed by number of times to repeat the next command -h help display one of several informative texts, like '?' -j jump jump to another location -k kick kick something (usually a door) -l loot loot a box on the floor -N name name an item or type of object -u untrap untrap something (usually a trapped object) - -Additional commands are available in debug mode (also known as wizard mode). diff --git a/src/NetHack_3.7/dat/history b/src/NetHack_3.7/dat/history deleted file mode 100644 index 8617e2f..0000000 --- a/src/NetHack_3.7/dat/history +++ /dev/null @@ -1,333 +0,0 @@ -NetHack History file for release 3.7 - -Behold, mortal, the origins of NetHack... - -Jay Fenlason wrote the original Hack, with help from Kenny Woodland, -Mike Thome, and Jon Payne. - -Andries Brouwer did a major re-write while at Stichting Mathematisch Centrum -(now Centrum Wiskunde & Informatica), transforming Hack into a very different -game. He published the Hack source code for use on UNIX(tm) systems by -posting that to Usenet newsgroup net.sources (later renamed comp.sources) -releasing version 1.0 in December of 1984, then versions 1.0.1, 1.0.2, and -finally 1.0.3 in July of 1985. Usenet newsgroup net.games.hack (later -renamed rec.games.hack, eventually replaced by rec.games.roguelike.nethack) -was created for discussing it. - -Don G. Kneller ported Hack 1.0.3 to Microsoft(tm) C and MS-DOS(tm), producing -PC HACK 1.01e, added support for DEC Rainbow graphics in version 1.03g, and -went on to produce at least four more versions (3.0, 3.2, 3.51, and 3.6; -note that these are old Hack version numbers, not contemporary NetHack ones). - -R. Black ported PC HACK 3.51 to Lattice(tm) C and the Atari 520/1040ST, -producing ST Hack 1.03. - -Mike Stephenson merged these various versions back together, incorporating -many of the added features, and produced NetHack version 1.4 in 1987. He -then coordinated a cast of thousands in enhancing and debugging NetHack 1.4 -and released NetHack versions 2.2 and 2.3. Like Hack, they were released by -posting their source code to Usenet where they remained available in various -archives accessible via ftp and uucp after expiring from the newsgroup. - -Later, Mike coordinated a major re-write of the game, heading a team which -included Ken Arromdee, Jean-Christophe Collet, Steve Creps, Eric Hendrickson, -Izchak Miller, Eric S. Raymond, John Rupley, Mike Threepoint, and Janet Walz, -to produce NetHack 3.0c. - -NetHack 3.0 was ported to the Atari by Eric R. Smith, to OS/2 by Timo -Hakulinen, and to VMS by David Gentzel. The three of them and Kevin Darcy -later joined the main NetHack Development Team to produce subsequent -revisions of 3.0. - -Olaf Seibert ported NetHack 2.3 and 3.0 to the Amiga. Norm Meluch, Stephen -Spackman and Pierre Martineau designed overlay code for PC NetHack 3.0. -Johnny Lee ported NetHack 3.0 to the Macintosh. Along with various other -Dungeoneers, they continued to enhance the PC, Macintosh, and Amiga ports -through the later revisions of 3.0. - -Version 3.0 went through ten relatively rapidly released "patch-level" -revisions. Versions at the time were known as 3.0 for the base release -and variously as "3.0a" through "3.0j", "3.0 patchlevel 1" through -"3.0 patchlevel 10", or "3.0pl1" through "3.0pl10" rather than 3.0.0 and -3.0.1 through 3.0.10; the three component numbering scheme began to be used -with 3.1.0. - -Headed by Mike Stephenson and coordinated by Izchak Miller and Janet Walz, -the NetHack Development Team which now included Ken Arromdee, David Cohrs, -Jean-Christophe Collet, Kevin Darcy, Matt Day, Timo Hakulinen, Steve Linhart, -Dean Luick, Pat Rankin, Eric Raymond, and Eric Smith undertook a radical -revision of 3.0. They re-structured the game's design, and re-wrote major -parts of the code. They added multiple dungeons, a new display, special -individual character quests, a new endgame and many other new features, and -produced NetHack 3.1. Version 3.1.0 was released in January of 1993. - -Ken Lorber, Gregg Wonderly and Greg Olson, with help from Richard Addison, -Mike Passaretti, and Olaf Seibert, developed NetHack 3.1 for the Amiga. - -Norm Meluch and Kevin Smolkowski, with help from Carl Schelin, Stephen -Spackman, Steve VanDevender, and Paul Winner, ported NetHack 3.1 to the PC. - -Jon W{tte and Hao-yang Wang, with help from Ross Brown, Mike Engber, David -Hairston, Michael Hamel, Jonathan Handler, Johnny Lee, Tim Lennan, Rob Menke, -and Andy Swanson, developed NetHack 3.1 for the Macintosh, porting it for -MPW. Building on their development, Bart House added a Think C port. - -Timo Hakulinen ported NetHack 3.1 to OS/2. Eric Smith ported NetHack 3.1 -to the Atari. Pat Rankin, with help from Joshua Delahunty, was responsible -for the VMS version of NetHack 3.1. Michael Allison ported NetHack 3.1 to -Windows NT. - -Dean Luick, with help from David Cohrs, developed NetHack 3.1 for X11. -It drew the map as text rather than graphically but included nh10.bdf, an -optionally used custom X11 font which has tiny images in place of letters and -punctuation, a precursor of tiles. Those images don't extend to individual -monster and object types, just replacements for monster and object classes -(so one custom image for all "a" insects and another for all "[" armor and -so forth, not separate images for beetles and ants or for cloaks and boots). - -Warwick Allison wrote a graphically displayed version of NetHack for the -Atari where the tiny pictures were described as "icons" and were distinct -for specific types of monsters and objects rather than just their classes. -He contributed them to the NetHack Development Team which rechristened them -"tiles", original usage which has subsequently been picked up by various -other games. NetHack's tiles support was then implemented on other platforms -(initially MS-DOS but eventually Windows, Qt, and X11 too). - -The 3.2 NetHack Development Team, comprised of Michael Allison, Ken Arromdee, -David Cohrs, Jessie Collet, Steve Creps, Kevin Darcy, Timo Hakulinen, Steve -Linhart, Dean Luick, Pat Rankin, Eric Smith, Mike Stephenson, Janet Walz, -and Paul Winner, released version 3.2.0 in April of 1996. - -Version 3.2 marked the tenth anniversary of the formation of the development -team. In a testament to their dedication to the game, all thirteen members -of the original NetHack Development Team remained on the team at the start -of work on that release. During the interval between the release of 3.1.3 -and 3.2.0, one of the founding members of the NetHack Development Team, -Dr. Izchak Miller, was diagnosed with cancer and passed away. That release -of the game was dedicated to him by the development and porting teams. - -Version 3.2 proved to be more stable than previous versions. Many bugs -were fixed, abuses eliminated, and game features tuned for better game -play. - -During the lifespan of NetHack 3.1 and 3.2, several enthusiasts of the game -added their own modifications to the game and made these "variants" publicly -available: - -Tom Proudfoot and Yuval Oren created NetHack++, which was quickly renamed -NetHack-- when some people incorrectly assumed that it was a conversion -of the C source code to C++. Working independently, Stephen White wrote -NetHack Plus. Tom Proudfoot later merged NetHack Plus and his own NetHack-- -to produce SLASH. Larry Stewart-Zerba and Warwick Allison improved the -spell casting system with the Wizard Patch. Warwick Allison also ported -NetHack to use the Qt interface. - -Warren Cheung combined SLASH with the Wizard Patch to produce Slash'EM, and -with the help of Kevin Hugo, added more features. Kevin later joined the -NetHack Development Team and incorporated the best of these ideas into -NetHack 3.3. - -The final update to 3.2 was the bug fix release 3.2.3, which was released -simultaneously with 3.3.0 in December 1999 just in time for the Year 2000. -Because of the newer version, 3.2.3 was released as a source code patch only, -without any ready-to-play distribution for systems that usually had such. - -(To anyone considering resurrecting an old version: all versions before -3.2.3 had a Y2K bug. The high scores file and the log file contained dates -which were formatted using a two-digit year, and 1999's year 99 was followed -by 2000's year 100. That got written out successfully but it unintentionally -introduced an extra column in the file layout which prevented score entries -from being read back in correctly, interfering with insertion of new high -scores and with retrieval of old character names to use for random ghost and -statue names in the current game.) - -The 3.3 NetHack Development Team, consisting of Michael Allison, Ken Arromdee, -David Cohrs, Jessie Collet, Steve Creps, Kevin Darcy, Timo Hakulinen, -Kevin Hugo, Steve Linhart, Ken Lorber, Dean Luick, Pat Rankin, Eric Smith, -Mike Stephenson, Janet Walz, and Paul Winner, released 3.3.0 in -December 1999 and 3.3.1 in August of 2000. - -Version 3.3 offered many firsts. It was the first version to separate race -and profession. The Elf class was removed in preference to an elf race, -and the races of dwarves, gnomes, and orcs made their first appearance in -the game alongside the familiar human race. Monk and Ranger roles joined -Archeologists, Barbarians, Cavemen, Healers, Knights, Priests, Rogues, -Samurai, Tourists, Valkyries and of course, Wizards. It was also the first -version to allow you to ride a steed, and was the first version to have a -publicly available web-site listing all the bugs that had been discovered. -Despite that constantly growing bug list, 3.3 proved stable enough to last -for more than a year and a half. - -The 3.4 NetHack Development Team initially consisted of Michael Allison, -Ken Arromdee, David Cohrs, Jessie Collet, Kevin Hugo, Ken Lorber, Dean Luick, -Pat Rankin, Mike Stephenson, Janet Walz, and Paul Winner, with Warwick Allison -joining just before the release of NetHack 3.4.0 in March 2002. - -As with version 3.3, various people contributed to the game as a whole as -well as supporting ports on the different platforms that NetHack runs on: - -Pat Rankin maintained 3.4 for VMS. - -Michael Allison maintained NetHack 3.4 for the MS-DOS platform. -Paul Winner and Yitzhak Sapir provided encouragement. - -Dean Luick, Mark Modrall, and Kevin Hugo maintained and enhanced the -Macintosh port of 3.4. - -Michael Allison, David Cohrs, Alex Kompel, Dion Nicolaas, and Yitzhak Sapir -maintained and enhanced 3.4 for the Microsoft Windows platform. Alex Kompel -contributed a new graphical interface for the Windows port. Alex Kompel also -contributed a Windows CE port for 3.4.1. - -Ron Van Iwaarden maintained 3.4 for OS/2. - -Janne Salmijarvi and Teemu Suikki maintained and enhanced the -Amiga port of 3.4 after Janne Salmijarvi resurrected it for 3.3.1. - -Christian "Marvin" Bressler maintained 3.4 for the Atari after he -resurrected it for 3.3.1. - -The release of NetHack 3.4.3 in December 2003 marked the beginning of a -long release hiatus. 3.4.3 proved to be a remarkably stable version that -provided continued enjoyment by the community for more than a decade. The -NetHack Development Team slowly and quietly continued to work on the game -behind the scenes during the tenure of 3.4.3. It was during that same -period that several new variants emerged within the NetHack community. -Notably sporkhack by Derek S. Ray, unnethack by Patric Mueller, nitrohack -and its successors originally by Daniel Thaler and then by Alex Smith, and -Dynahack by Tung Nguyen. Some of those variants continue to be developed, -maintained, and enjoyed by the community to this day. - -In September 2014, an interim snapshot of the code under development was -released publicly by other parties. Since that code was a work-in-progress -and had not gone through the process of debugging it as a suitable release, -it was decided that the version numbers present on that code snapshot would -be retired and never used in an official NetHack release. An announcement -was posted on the NetHack Development Team's official nethack.org website -to that effect, stating that there would never be a 3.4.4, 3.5, or 3.5.0 -official release version. - -In January 2015, preparation began for the release of NetHack 3.6. - -At the beginning of development for what would eventually get released -as 3.6.0, the NetHack Development Team consisted of Warwick Allison, -Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Ken Lorber, -Dean Luick, Pat Rankin, Mike Stephenson, Janet Walz, and Paul Winner. -In early 2015, ahead of the release of 3.6.0, new members Sean Hunt, -Pasi Kallinen, and Derek S. Ray joined the NetHack Development Team. - -Near the end of the development of 3.6.0, one of the significant inspirations -for many of the humorous and fun features found in the game, author -Terry Pratchett, passed away. NetHack 3.6.0 introduced a tribute to him. - -3.6.0 was released in December 2015, and merged work done by the development -team since the release of 3.4.3 with some of the beloved community patches. -Many bugs were fixed and some code was restructured. - -The NetHack Development Team, as well as Steve VanDevender and -Kevin Smolkowski, ensured that NetHack 3.6 continued to operate on various -UNIX flavors and maintained the X11 interface. - -Ken Lorber, Haoyang Wang, Pat Rankin, and Dean Luick maintained the port -of NetHack 3.6 for Mac OSX. - -Michael Allison, David Cohrs, Bart House, Pasi Kallinen, Alex Kompel, -Dion Nicolaas, Derek S. Ray and Yitzhak Sapir maintained the port of -NetHack 3.6 for Microsoft Windows. - -Pat Rankin attempted to keep the VMS port running for NetHack 3.6, -hindered by limited access. Kevin Smolkowski has updated and tested it -for the most recent version of OpenVMS (V8.4 as of this writing) on Alpha -and Integrity (aka Itanium aka IA64) but not VAX. - -Ray Chason resurrected the MS-DOS port for 3.6 and contributed the -necessary updates to the community at large. - -In late April 2018, several hundred bug fixes for 3.6.0 and some new -features were assembled and released as NetHack 3.6.1. -The NetHack Development Team at the time of release of 3.6.1 consisted of -Warwick Allison, Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, -Pasi Kallinen, Ken Lorber, Dean Luick, Patric Mueller, Pat Rankin, -Derek S. Ray, Alex Smith, Mike Stephenson, Janet Walz, and Paul Winner. - -In early May 2019, another 320 bug fixes along with some enhancements and -the adopted curses window port, were released as 3.6.2. - -Bart House, who had contributed to the game as a porting team participant -for decades, joined the NetHack Development Team in late May 2019. - -NetHack 3.6.3 was released on December 5, 2019 containing over 190 bug -fixes to NetHack 3.6.2. - -NetHack 3.6.4 was released on December 18, 2019 containing a security -fix and a few bug fixes. - -NetHack 3.6.5 was released on January 27, 2020 containing some security fixes -and a small number of bug fixes. - -NetHack 3.6.6 was released on March 8, 2020 containing a security fix and -some bug fixes. - -NetHack 3.6.7 was released on February 16, 2023 containing a security fix and -some bug fixes. - -The official NetHack web site is maintained by Ken Lorber at -https://www.nethack.org/. - -On behalf of the NetHack community, thank you very much once again to -M. Drew Streib and Pasi Kallinen for providing a public NetHack server -at nethack.alt.org. Thanks to Keith Simpson and Andy Thomson for -hardfought.org. Thanks to all those unnamed dungeoneers who invest their -time and effort into annual NetHack tournaments such as Junethack, -The November NetHack Tournament, and in days past, devnull.net (gone for -now, but not forgotten). - - - - - - - - - - - - - -From time to time, some depraved individual out there in netland sends a -particularly intriguing modification to help out with the game. The -NetHack Development Team sometimes makes note of the names of the worst -of these miscreants in this, the list of Dungeoneers: - - Adam Aronow J. Ali Harlow Mikko Juola - Alex Kompel Janet Walz Nathan Eady - Alex Smith Janne Salmijarvi Norm Meluch - Andreas Dorn Jean-Christophe Collet Olaf Seibert - Andy Church Jeff Bailey Pasi Kallinen - Andy Swanson Jochen Erwied Pat Rankin - Andy Thomson John Kallen Patric Mueller - Ari Huttunen John Rupley Paul Winner - Bart House John S. Bien Pierre Martineau - Benson I. Margulies Johnny Lee Ralf Brown - Bill Dyer Jon W{tte Ray Chason - Boudewijn Waijers Jonathan Handler Richard Addison - Bruce Cox Joshua Delahunty Richard Beigel - Bruce Holloway Karl Garrison Richard P. Hughey - Bruce Mewborne Keizo Yamamoto Rob Menke - Carl Schelin Keith Simpson Robin Bandy - Chris Russo Ken Arnold Robin Johnson - David Cohrs Ken Arromdee Roderick Schertler - David Damerell Ken Lorber Roland McGrath - David Gentzel Ken Washikita Ron Van Iwaarden - David Hairston Kevin Darcy Ronnen Miller - Dean Luick Kevin Hugo Ross Brown - Del Lamb Kevin Sitze Sascha Wostmann - Derek S. Ray Kevin Smolkowski Scott Bigham - Deron Meranda Kevin Sweet Scott R. Turner - Dion Nicolaas Lars Huttar Sean Hunt - Dylan O'Donnell Leon Arnott Stephen Spackman - Eric Backus M. Drew Streib Stefan Thielscher - Eric Hendrickson Malcolm Ryan Stephen White - Eric R. Smith Mark Gooderum Steve Creps - Eric S. Raymond Mark Modrall Steve Linhart - Erik Andersen Marvin Bressler Steve VanDevender - Fredrik Ljungdahl Matthew Day Teemu Suikki - Frederick Roeber Merlyn LeRoy Tim Lennan - Gil Neiger Michael Allison Timo Hakulinen - Greg Laskin Michael Feir Tom Almy - Greg Olson Michael Hamel Tom West - Gregg Wonderly Michael Sokolov Warren Cheung - Hao-yang Wang Mike Engber Warwick Allison - Helge Hafting Mike Gallop Yitzhak Sapir - Irina Rempt-Drijfhout Mike Passaretti - Izchak Miller Mike Stephenson diff --git a/src/NetHack_3.7/dat/juiblex.lua b/src/NetHack_3.7/dat/juiblex.lua deleted file mode 100644 index 56c02f9..0000000 --- a/src/NetHack_3.7/dat/juiblex.lua +++ /dev/null @@ -1,122 +0,0 @@ --- NetHack gehennom juiblex.lua $NHDT-Date: 1652196026 2022/05/10 15:20:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.5 $ --- 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_flags("mazelevel", "shortsighted", "noflip", "temperate") --- des.level_init(mines,'.','}',true,true,unlit,false) -des.level_init({ style = "swamp", lit = 0 }); --- guarantee at least one open spot to ensure successful stair placement -des.map({ halign = "left", valign = "bottom", map = [[ -xxxxxxxx -xx...xxx -xxx...xx -xxxx.xxx -xxxxxxxx -]] }); -des.object("boulder") -des.map({ halign = "right", valign = "top", map = [[ -xxxxxxxx -xxxx.xxx -xxx...xx -xx...xxx -xxxxxxxx -]] }); -des.object("boulder") --- lair -des.map([[ -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxx -xxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxx -xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxx -xxxxxxxxxxxxxxxxxxxxxxxx}}}xxxxxxxxxxxxxxx}}}}}xxxx -xxxxxxxxxxxxxxxxxxxxxxx}}}}}xxxxxxxxxxxxx}.....}xxx -xxxxxxxxxxxxxxxxxxxxxx}}...}}xxxxxxxxxxx}..P.P..}xx -xxxxxxxxxxxxxxxxxxxxx}}..P..}}xxxxxxxxxxx}.....}xxx -xxxxxxxxxxxxxxxxxxxxx}}.P.P.}}xxxxxxxxxxxx}...}xxxx -xxxxxxxxxxxxxxxxxxxxx}}..P..}}xxxxxxxxxxxx}...}xxxx -xxxxxxxxxxxxxxxxxxxxxx}}...}}xxxxxxxxxxxxxx}}}xxxxx -xxxxxxxxxxxxxxxxxxxxxxx}}}}}xxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxx}}}xxxxxxxxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxx -xxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxx -xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxx -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -]]); --- Random registers -local monster = { "j","b","P","F" } -shuffle(monster) - -local place = selection.new(); -place:set(04,02); -place:set(46,02); -place:set(04,15); -place:set(46,15); - --- Dungeon description -des.region({ region={00,00,50,17}, lit=0, type="swamp", filled=2 }) -des.levregion({ region = {01,00,11,20}, region_islev=1, exclude={0,0,50,17}, type="stair-down" }); -des.levregion({ region = {69,00,79,20}, region_islev=1, exclude={0,0,50,17}, type="stair-up" }); -des.levregion({ region = {01,00,11,20}, region_islev=1, exclude={0,0,50,17}, type="branch" }); -des.teleport_region({ region = {01,00,11,20}, region_islev=1, exclude={0,0,50,17},dir="up" }) -des.teleport_region({ region = {69,00,79,20}, region_islev=1, exclude={0,0,50,17},dir="down" }) -des.feature("fountain", place:rndcoord(1)) -des.monster({ id = "giant mimic", coord = place:rndcoord(1), appear_as = "ter:fountain" }) -des.monster({ id = "giant mimic", coord = place:rndcoord(1), appear_as = "ter:fountain" }) -des.monster({ id = "giant mimic", coord = place:rndcoord(1), appear_as = "ter:fountain" }) --- The demon of the swamp -des.monster("Juiblex",25,08) --- And a couple demons -des.monster("lemure",43,08) -des.monster("lemure",44,08) -des.monster("lemure",45,08) --- Some liquids and gems -des.object("*",43,06) -des.object("*",45,06) -des.object("!",43,09) -des.object("!",44,09) -des.object("!",45,09) --- And lots of blobby monsters -des.monster(monster[4],25,06) -des.monster(monster[1],24,07) -des.monster(monster[2],26,07) -des.monster(monster[3],23,08) -des.monster(monster[3],27,08) -des.monster(monster[2],24,09) -des.monster(monster[1],26,09) -des.monster(monster[4],25,10) -des.monster("j") -des.monster("j") -des.monster("j") -des.monster("j") -des.monster("P") -des.monster("P") -des.monster("P") -des.monster("P") -des.monster("b") -des.monster("b") -des.monster("b") -des.monster("F") -des.monster("F") -des.monster("F") -des.monster("m") -des.monster("m") -des.monster("jellyfish") -des.monster("jellyfish") --- Some random objects -des.object("!") -des.object("!") -des.object("!") -des.object("%") -des.object("%") -des.object("%") -des.object("boulder") --- Some traps -des.trap("sleep gas") -des.trap("sleep gas") -des.trap("anti magic") -des.trap("anti magic") -des.trap("magic") -des.trap("magic") diff --git a/src/NetHack_3.7/dat/keyhelp b/src/NetHack_3.7/dat/keyhelp deleted file mode 100644 index 00a2095..0000000 --- a/src/NetHack_3.7/dat/keyhelp +++ /dev/null @@ -1,58 +0,0 @@ - Depending upon hardware or operating system or NetHack's interface, - some keystrokes may be off-limits. - - For example, ^S and ^Q are often used for XON/XOFF flow-control, - meaning that ^S suspends output and subsequent ^Q resumes suspended - output. When that is the case, neither of those characters will - reach NetHack when it is waiting for a command keystroke. So they - aren't used as commands, but 'whatdoes' might not be able to tell - you that if they don't get passed through to NetHack. - - ^M or or is likely to be transformed into ^J or - or 'newline' before being passed to NetHack for handling. - So it isn't used as a command, and 'whatdoes' might seem as if it - is reporting the wrong character but will be operating correctly if - it describes ^J when you type ^M. - - A NUL character, which is typed as ^ on some keyboards, - ^@ on others, and maybe not typeable at all on yet others, is not - used as a command, and will be converted into ESC before reaching - 'whatdoes'. Unlike ^M, this transformation is performed within - NetHack. But like ^M, if you type NUL and get feedback about ESC, - the situation is expected. - - ESC itself is a synonym for ^[, and is another source of oddity. - Various function keys, including cursor arrow keys, may transmit - an "escape sequence" of ESC + [ + other stuff, confusing NetHack - as to what command was intended since the ESC will be processed - and then whatever follows will seem to NetHack like--and be used - as--something typed by the user. (If you press a function key and - a menu of the armor your hero is wearing appears, what happened - was that an escape sequence was sent to NetHack, its ESC aborted - any pending key operation, its '[' was then treated as a command - to show worn armor, and the "other stuff" probably got silently - discarded as invalid choices while you dismissed the menu.) - - If you have NetHack's 'altmeta' option enabled, meaning that the - or