pax_global_header00006660000000000000000000000064143732520710014516gustar00rootroot0000000000000052 comment=ed600d9f0f3c37677418f0150f59363ca641f3dc NetHack-3.6.7/000077500000000000000000000000001437325207100130505ustar00rootroot00000000000000NetHack-3.6.7/.clang-format000066400000000000000000000036751437325207100154360ustar00rootroot00000000000000--- 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 ... NetHack-3.6.7/.gitattributes000066400000000000000000000005231437325207100157430ustar00rootroot00000000000000*.[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) NetHack-3.6.7/.gitignore000066400000000000000000000012171437325207100150410ustar00rootroot00000000000000# 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 NetHack-3.6.7/DEVEL/000077500000000000000000000000001437325207100137075ustar00rootroot00000000000000NetHack-3.6.7/DEVEL/.gitattributes000066400000000000000000000002711437325207100166020ustar00rootroot00000000000000*.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) NetHack-3.6.7/DEVEL/DOTGIT/000077500000000000000000000000001437325207100147015ustar00rootroot00000000000000NetHack-3.6.7/DEVEL/DOTGIT/TARGET000066400000000000000000000000051437325207100156050ustar00rootroot00000000000000.git NetHack-3.6.7/DEVEL/Developer.txt000066400000000000000000000223671437325207100164070ustar00rootroot00000000000000 ___ _ | \ _____ _____| |___ _ __ ___ _ _ | |) / -_) V / -_) / _ \ '_ \/ -_) '_| |___/\___|\_/\___|_\___/ .__/\___|_| |_| # NetHack 3.6 Developer.txt $NHDT-Date: 1524689668 2018/04/25 20:54:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.13 $ # 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 A public repository of the latest NetHack code that we've made available can be obtained via git from either of two locations: 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. Mac OS X: 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. ------------------------------------------------------------------------------ NetHack-3.6.7/DEVEL/code_features.txt000066400000000000000000000114371437325207100172660ustar00rootroot00000000000000# NetHack 3.6 code_features.txt $NHDT-Date: 1524689669 2018/04/25 20:54:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.3 $ # 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 =================== NEXT FEATURE ========================== NetHack-3.6.7/DEVEL/code_style.txt000066400000000000000000000134311437325207100166040ustar00rootroot00000000000000# NetHack 3.6 code_style.txt $NHDT-Date: 1524689669 2018/04/25 20:54:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.2 $ # 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. 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 never declared in the function declarator, but are declared, unintended, K&R-style before the opening brace: void foo(i, c) int i; char c; { /* 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 */ } 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 */ } 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) (c-set-offset 'knr-argdecl-intro 0)) (add-hook 'c-mode-common-hook 'hook-c) NetHack-3.6.7/DEVEL/git_recipes.txt000066400000000000000000000156341437325207100167560ustar00rootroot00000000000000# NetHack 3.6 git_recipes.txt $NHDT-Date: 1524689669 2018/04/25 20:54:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.9 $ # 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. ======================================= Typical workflows for common activities ======================================= {To be added in near future: DSR 3/15} NetHack-3.6.7/DEVEL/gitinfo.pl000066400000000000000000000021041437325207100157000ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 getinfo.pl $NHDT-Date: 1524689669 2018/04/25 20:54:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.2 $ # 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; NetHack-3.6.7/DEVEL/hooksdir/000077500000000000000000000000001437325207100155315ustar00rootroot00000000000000NetHack-3.6.7/DEVEL/hooksdir/NHadd000066400000000000000000000013351437325207100164340ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 NHadd $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. # 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: $!"; NetHack-3.6.7/DEVEL/hooksdir/NHgithook.pm000066400000000000000000000134441437325207100177670ustar00rootroot00000000000000# # NetHack 3.6 NHgithook.pm $NHDT-Date: 1524689631 2018/04/25 20:53:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.6 $ # 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) NetHack-3.6.7/DEVEL/hooksdir/NHsubst000077500000000000000000000235371437325207100170570ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 NHsubst $NHDT-Date: 1524689631 2018/04/25 20:53:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.4 $ # 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.6 objnam.c $TEST-Date$ $TEST-Branch$:$TEST-Revision$ */ === /* NetHack 3.6 objnam.c $TEST-Date: 1426977394 2015/03/21 22:36:34 $ $TEST-Branch: master $:$TEST-Revision: 1.108 $ */ >>> d3 NetHack-3.6.7/DEVEL/hooksdir/NHtext000077500000000000000000000076351437325207100167040ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 NHtext $NHDT-Date: 1524689631 2018/04/25 20:53:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.8 $ # 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; } NetHack-3.6.7/DEVEL/hooksdir/TARGET000066400000000000000000000000131437325207100164340ustar00rootroot00000000000000.git/hooks NetHack-3.6.7/DEVEL/hooksdir/applypatch-msg000077500000000000000000000016171437325207100204150ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 applypatch-msg $NHDT-Date: 1524689646 2018/04/25 20:54:06 $ $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; NetHack-3.6.7/DEVEL/hooksdir/commit-msg000077500000000000000000000016131437325207100175340ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 commit-msg $NHDT-Date: 1524689646 2018/04/25 20:54:06 $ $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; NetHack-3.6.7/DEVEL/hooksdir/nhsub000066400000000000000000000334501437325207100166000ustar00rootroot00000000000000#!/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 NetHack-3.6.7/DEVEL/hooksdir/post-applypatch000077500000000000000000000015541437325207100206140ustar00rootroot00000000000000#!/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; NetHack-3.6.7/DEVEL/hooksdir/post-checkout000077500000000000000000000016501437325207100202510ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 post-checkout $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $NHDT-Branch: NetHack-3.6.0 $:$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::nhversioning; &NHgithook::POST; exit 0; NetHack-3.6.7/DEVEL/hooksdir/post-commit000077500000000000000000000016461437325207100177410ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 post-commit $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $NHDT-Branch: NetHack-3.6.0 $:$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::nhversioning; &NHgithook::POST; exit 0; NetHack-3.6.7/DEVEL/hooksdir/post-merge000077500000000000000000000016461437325207100175500ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 post-merge $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $NHDT-Branch: NetHack-3.6.0 $:$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::nhversioning; &NHgithook::POST; exit 0; NetHack-3.6.7/DEVEL/hooksdir/post-rewrite000077500000000000000000000016741437325207100201330ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 post-rewrite $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $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::saveSTDIN; &NHgithook::PRE; &NHgithook::resetSTDIN; &NHgithook::POST; exit 0; NetHack-3.6.7/DEVEL/hooksdir/pre-applypatch000077500000000000000000000016171437325207100204150ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 pre-applypatch $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $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; NetHack-3.6.7/DEVEL/hooksdir/pre-auto-gc000077500000000000000000000016141437325207100176040ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 pre-auto-gc $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $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; NetHack-3.6.7/DEVEL/hooksdir/pre-commit000077500000000000000000000016131437325207100175340ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 pre-commit $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $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; NetHack-3.6.7/DEVEL/hooksdir/pre-push000077500000000000000000000016701437325207100172260ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 pre-push $NHDT-Date: 1524689632 2018/04/25 20:53:52 $ $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::saveSTDIN; &NHgithook::PRE; &NHgithook::resetSTDIN; &NHgithook::POST; exit 0; NetHack-3.6.7/DEVEL/hooksdir/pre-rebase000077500000000000000000000016131437325207100175050ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 pre-rebase $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; NetHack-3.6.7/DEVEL/hooksdir/prepare-commit-msg000077500000000000000000000015541437325207100211740ustar00rootroot00000000000000#!/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; NetHack-3.6.7/DEVEL/nhgitset.pl000077500000000000000000000210051437325207100160720ustar00rootroot00000000000000#!/usr/bin/perl # $NHDT-Date: 1524689669 2018/04/25 20:54:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.2 $ # 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) = @_; 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. NetHack-3.6.7/Files000066400000000000000000000521141437325207100140400ustar00rootroot00000000000000This is a listing of all files in a full NetHack 3.6 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 Files Porting README 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) Arch.des Barb.des Caveman.des GENFILES Healer.des Knight.des Monk.des Priest.des Ranger.des Rogue.des Samurai.des Tourist.des Valkyrie.des Wizard.des bigroom.des bogusmon.txt castle.des cmdhelp data.base dungeon.def endgame.des engrave.txt epitaph.txt gehennom.des help hh history keyhelp knox.des license medusa.des mines.des opthelp oracle.des oracles.txt quest.txt rumors.fal rumors.tru sokoban.des symbols tower.des tribute wizhelp yendor.des doc: (files for all versions) Gbk-1pg-pfx.mn Gbk-1pg-sfx.mn Guidebook.mn Guidebook.tex Guidebook.txt config.nh dgn_comp.6 dgn_comp.txt dlb.6 dlb.txt fixes10.0 fixes14.f fixes22.0 fixes23.e fixes30.0 fixes30.pl01 fixes30.pl02 fixes30.pl03 fixes30.pl04 fixes30.pl05 fixes30.pl06 fixes30.pl07 fixes30.pl08 fixes30.pl09 fixes30.pl10 fixes31.1 fixes31.2 fixes31.3 fixes32.0 fixes32.1 fixes32.2 fixes32.3 fixes33.0 fixes33.1 fixes34.0 fixes34.1 fixes34.2 fixes34.3 fixes35.0 fixes36.0 fixes36.1 fixes36.2 fixes36.3 fixes36.4 fixes36.5 fixes36.6 lev_comp.6 lev_comp.txt makedefs.6 makedefs.txt mn.7 mn.txt mnh.7 mnh.txt nethack.6 nethack.txt recover.6 recover.txt tmac.n tmac.nh window.doc include: (files for GEM versions) bitmfile.h gem_rsc.h load_img.h wingem.h (file for GNOME versions) winGnome.h (files for Qt versions) qt_clust.h qt_kde0.h qt_win.h qt_xpms.h qttableview.h (files for X versions) tile2x11.h winX.h xwindow.h xwindowp.h (files for all versions) align.h amiconf.h artifact.h artilist.h attrib.h beconf.h botl.h color.h config.h config1.h context.h coord.h decl.h def_os2.h dgn_file.h display.h dlb.h dungeon.h engrave.h extern.h flag.h func_tab.h global.h hack.h integer.h isaac64.h lev.h lint.h mail.h mextra.h mfndpos.h micro.h mkroom.h monattk.h mondata.h monflag.h monst.h monsym.h ntconf.h obj.h objclass.h os2conf.h patchlevel.h pcconf.h permonst.h prop.h qtext.h quest.h rect.h region.h rm.h skills.h sp_lev.h spell.h sys.h system.h tcap.h tileset.h timeout.h tosconf.h tradstdc.h trampoli.h trap.h unixconf.h vision.h vmsconf.h wceconf.h winami.h wincurs.h winprocs.h wintype.h you.h youprop.h (file for tty versions) wintty.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 src: (files for all versions) allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c botl.c cmd.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 invent.c isaac64.c light.c lock.c mail.c makemon.c mapglyph.c mcastu.c mhitm.c mhitu.c minion.c mklev.c mkmap.c mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c mplayer.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c options.c pager.c pickup.c pline.c polyself.c potion.c pray.c priest.c quest.c questpgr.c read.c rect.c region.c restore.c rip.c rnd.c role.c rumors.c save.c shk.c shknam.c sit.c sounds.c sp_lev.c spell.c steal.c steed.c sys.c teleport.c timeout.c topten.c track.c trap.c u_init.c uhitm.c vault.c version.c vision.c weapon.c were.c wield.c windows.c wizard.c worm.c worn.c write.c zap.c sys/amiga: (files for Amiga versions - untested for 3.6.6) Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf amidos.c amidos.p amifont.uu amifont8.uu amigst.c amii.hlp amimenu.c amirip.c amisnd.c amistack.c amitty.c amiwind.c amiwind.p clipwin.c colorwin.c cvtsnd.c grave16.xpm ifchange mkdmake txt2iff.c winami.c winami.p winchar.c windefs.h winext.h winfuncs.c winkey.c winmenu.c winproto.h winreq.c winstr.c xpm2iff.c sys/atari: (files for Atari version - untested for 3.6.6) Install.tos atarifnt.uue nethack.mnu setup.g tos.c unx2atar.sed sys/be: (files for BeOS version - untested for 3.6.6) README bemain.c 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 macsnd.c mactopl.c mactty.c macunix.c macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx mttymain.c sys/msdos: (files for MSDOS version) Install.dos Makefile.BC Makefile.GCC Makefile.MSC Makefile1.cross Makefile2.cross SCHEMA35.MSC moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c pctiles.c pctiles.h pcvideo.h portio.h schema1.BC schema2.BC schema3.MSC setup.bat sound.c tile2bin.c vesa.h video.c vidtxt.c vidvesa.c vidvga.c (files for running MSDOS binary under Windows) nhico.uu nhpif.uu sys/os2: (files for OS/2 version - untested for 3.6.6) Install.os2 Makefile.os2 nhpmico.uu os2.c 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 - untested for 3.6.6) pcmain.c (file for MSDOS, OS/2, and Atari versions - untested for 3.6.6) NetHack.cnf pctty.c (file for MSDOS, OS/2, and VMS versions) termcap (file for NT version) nhlan.c (file for VMS version) tclib.c (files for MSDOS and OS/2 versions - untested for 3.6.6) Makefile.lib termcap.uu (files for MSDOS, OS/2 and Atari versions - tested on MSDOS for 3.6.6 via partial cross-compile only) pcsys.c pcunix.c (files for UNIX and Be versions) ioctl.c unixtty.c (lex/yacc output for special level and dungeon compilers) dgn_comp.h dgn_lex.c dgn_yacc.c lev_comp.h lev_lex.c lev_yacc.c (posix regex for versions that include regex in their C library) posixregex.c (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/share/sounds: (files for Amiga and Macintosh versions) README bell.uu bugle.uu erthdrum.uu firehorn.uu frsthorn.uu lethdrum.uu mgcflute.uu mgcharp.uu toolhorn.uu wdnflute.uu wdnharp.uu sys/unix: (files for UNIX versions) Install.unx Makefile.dat Makefile.doc Makefile.src Makefile.top Makefile.utl NewInstall.unx README.linux README.xcode XCode.xcconfig depend.awk gitinfo.sh mkmkfile.sh nethack.sh setup.sh sysconf unixmain.c unixres.c unixunix.c (files for replacement cpp, only needed by some ancient UNIX systems) cpp1.shr cpp2.shr cpp3.shr (file for sound driver for 386 UNIX) snd86unx.shr sys/unix/NetHack.xcodeproj: (file for UNIX versions) project.pbxproj sys/unix/NetHack.xcodeproj/project.xcworkspace: (file for UNIX versions) contents.xcworkspacedata sys/unix/NetHack.xcodeproj/project.xcworkspace/xcshareddata: (files for UNIX versions) IDEWorkspaceChecks.plist WorkspaceSettings.xcsettings sys/unix/NetHack.xcodeproj/xcshareddata/xcschemes: (files for UNIX versions) NetHack.xcscheme makedefs.xcscheme recover.xcscheme sys/unix/hints: (files for configuring UNIX NetHack versions) linux linux-chroot linux-minimal linux-qt4 linux-qt5 linux-x11 macosx macosx.sh macosx10.5 macosx10.7 macosx10.8 macosx10.10 macosx10.10-qt macosx10.14 solaris solaris-playground unix sys/vms: (files for VMS version) Install.vms Makefile.dat Makefile.doc Makefile.src Makefile.top Makefile.utl install.com lev_lex.h nethack.com oldcrtl.c spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c vmsmain.c vmsmisc.c vmstty.c vmsunix.c sys/wince: (files for Windows CE and PocketPC - untested for 3.6.6) 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 sys/wince/ceinc: (header files for Windows CE and PocketPC - untested for 3.6.6) assert.h errno.h fcntl.h sys/wince/ceinc/sys: (sys/stat.h for Windows CE and PocketPC - untested for 3.6.2) stat.h sys/winnt: (files for Windows 7/8.x/10 version) .nethackrc.template Install.nt Makefile.gcc Makefile.msc console.rc nethack.def nhico.uu nhsetup.bat ntsound.c nttty.c porthelp stub-pdcscrn.c stubs.c sysconf.template win10.c win10.h win32api.h windmain.c winnt.c winos.h util: (files for all versions) dgn_main.c dlb_main.c lev_main.c makedefs.c mdgrep.h mdgrep.pl panic.c recover.c (lex/yacc input for special level and dungeon compilers) dgn_comp.l dgn_comp.y lev_comp.l lev_comp.y win/Qt: (files for the Qt 3 widget library - X11, Windows, Mac OS X, or Qtopia) Info.plist Install.Qt knethack.lnk knh-mini.xpm knh.xpm nhicns.uu nhsplash.xpm qpe-nethack.control qt_clust.cpp qt_win.cpp qttableview.cpp tileedit.cpp tileedit.h win/Qt4: (files for the Qt 4 widget library - X11, Windows, Mac OS X) qt4bind.cpp qt4bind.h qt4click.cpp qt4click.h qt4clust.cpp qt4clust.h qt4delay.cpp qt4delay.h qt4glyph.cpp qt4glyph.h qt4icon.cpp qt4icon.h qt4inv.cpp qt4inv.h qt4kde0.h qt4key.cpp qt4key.h qt4line.cpp qt4line.h qt4main.cpp qt4main.h qt4map.cpp qt4map.h qt4menu.cpp qt4menu.h qt4msg.cpp qt4msg.h qt4plsel.cpp qt4plsel.h qt4rip.cpp qt4rip.h qt4set.cpp qt4set.h qt4stat.cpp qt4stat.h qt4str.cpp qt4str.h qt4streq.cpp qt4streq.h qt4svsel.cpp qt4svsel.h qt4win.cpp qt4win.h qt4xcmd.cpp qt4xcmd.h qt4yndlg.cpp qt4yndlg.h win/X11: (files for X versions) Install.X11 NetHack.ad Window.c dialogs.c ibm.bdf 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/gem: (files for GEM versions - untested for 3.6.6) Install.gem bitmfile.c gem_rsc.uu gem_rso.uu gr_rect.c gr_rect.h load_img.c tile2img.c title.uu wingem.c wingem1.c xpm2img.c win/gnome: (files for GNOME versions - untested for 3.6.6) 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 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 objects.txt other.txt ppmwrite.c renumtiles.pl safeproc.c thintile.c tile.doc tile.h tile2bmp.c tilemap.c tileset.c tiletext.c win/tty: (files for tty versions) getline.c termcap.c topl.c wintty.c win/win32: (files for Windows versions - tested up to Windows 10) NetHackW.c NetHackW.exe.manifest NetHackW.rc dgnstuff-mingw32.mak dgnstuff.mak levstuff-mingw32.mak levstuff.mak mhaskyn.c mhaskyn.h mhdlg.c mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c mhrip.h mhsplash.c mhsplash.h mhstatus.c mhstatus.h mhtext.c mhtext.h mnsel.uu mnselcnt.uu mnunsel.uu mswproc.c nethack.rc nhresource.h petmark.uu pilemark.uu record.uu resource.h rip.uu splash.uu tiles-mingw32.mak tiles.mak winMS.h win/win32/vs2017: (files for Visual Studio 2017 Community Edition builds) NetHack.sln NetHack.vcxproj NetHackPackage.appxmanifest NetHackPackage.wapproj NetHackProperties.props NetHackW.vcxproj PDCurses.vcxproj Package.StoreAssociation.xml ScreenShot.PNG afterdgncomp.proj afterdlb.proj afterlevcomp.proj aftermakedefs.proj afternethack.proj afterrecover.proj aftertile2bmp.proj aftertilemap.proj afteruudecode.proj build.bat common.props config.props console.props default.props default_dll.props default_lib.props dgncomp.vcxproj dirs.props dlb.vcxproj dll.props files.props levcomp.vcxproj makedefs.vcxproj recover.vcxproj tile2bmp.vcxproj tilemap.vcxproj tiles.vcxproj travisci.sh uudecode.vcxproj win/win32/vs2017/Images: (files for Visual Studio 2017 Community Edition builds) BadgeLogo.scale-100.png BadgeLogo.scale-125.png BadgeLogo.scale-150.png BadgeLogo.scale-200.png BadgeLogo.scale-400.png LargeTile.scale-100.png LargeTile.scale-125.png LargeTile.scale-150.png LargeTile.scale-200.png LargeTile.scale-400.png LockScreenLogo.scale-200.png SmallTile.scale-100.png SmallTile.scale-125.png SmallTile.scale-150.png SmallTile.scale-200.png SmallTile.scale-400.png SplashScreen.scale-100.png SplashScreen.scale-125.png SplashScreen.scale-150.png SplashScreen.scale-200.png SplashScreen.scale-400.png Square150x150Logo.scale-100.png Square150x150Logo.scale-125.png Square150x150Logo.scale-150.png Square150x150Logo.scale-200.png Square150x150Logo.scale-400.png Square44x44Logo.altform-unplated_targetsize-16.png Square44x44Logo.altform-unplated_targetsize-256.png Square44x44Logo.altform-unplated_targetsize-32.png Square44x44Logo.altform-unplated_targetsize-48.png Square44x44Logo.scale-100.png Square44x44Logo.scale-125.png Square44x44Logo.scale-150.png Square44x44Logo.scale-200.png Square44x44Logo.scale-400.png Square44x44Logo.targetsize-16.png Square44x44Logo.targetsize-24.png Square44x44Logo.targetsize-24_altform-unplated.png Square44x44Logo.targetsize-256.png Square44x44Logo.targetsize-32.png Square44x44Logo.targetsize-48.png StoreLogo.backup.png StoreLogo.scale-100.png StoreLogo.scale-125.png StoreLogo.scale-150.png StoreLogo.scale-200.png StoreLogo.scale-400.png Wide310x150Logo.scale-100.png Wide310x150Logo.scale-125.png Wide310x150Logo.scale-150.png Wide310x150Logo.scale-200.png Wide310x150Logo.scale-400.png This is a list of files produced by auxiliary programs. They can all be regenerated from the files in the distribution. dat: (file generated by dgn_comp at playground creation time) dungeon (files generated by lev_comp at playground creation time) Arc-fila.lev Arc-filb.lev Arc-goal.lev Arc-loca.lev Arc-strt.lev Bar-fila.lev Bar-filb.lev Bar-goal.lev Bar-loca.lev Bar-strt.lev Cav-fila.lev Cav-filb.lev Cav-goal.lev Cav-loca.lev Cav-strt.lev Hea-fila.lev Hea-filb.lev Hea-goal.lev Hea-loca.lev Hea-strt.lev Kni-fila.lev Kni-filb.lev Kni-goal.lev Kni-loca.lev Kni-strt.lev Mon-fila.lev Mon-filb.lev Mon-goal.lev Mon-loca.lev Mon-strt.lev Pri-fila.lev Pri-filb.lev Pri-goal.lev Pri-loca.lev Pri-strt.lev Ran-fila.lev Ran-filb.lev Ran-goal.lev Ran-loca.lev Ran-strt.lev Rog-fila.lev Rog-filb.lev Rog-goal.lev Rog-loca.lev Rog-strt.lev Sam-fila.lev Sam-filb.lev Sam-goal.lev Sam-loca.lev Sam-strt.lev Tou-fila.lev Tou-filb.lev Tou-goal.lev Tou-loca.lev Tou-strt.lev Val-fila.lev Val-filb.lev Val-goal.lev Val-loca.lev Val-strt.lev Wiz-fila.lev Wiz-filb.lev Wiz-goal.lev Wiz-loca.lev Wiz-strt.lev air.lev asmodeus.lev astral.lev baalz.lev bigrm-1.lev bigrm-2.lev bigrm-3.lev bigrm-4.lev bigrm-5.lev bigrm-6.lev bigrm-7.lev bigrm-8.lev bigrm-9.lev bigrm-10.lev castle.lev earth.lev fakewiz1.lev fakewiz2.lev fire.lev juiblex.lev knox.lev medusa-1.lev medusa-2.lev medusa-3.lev medusa-4.lev minefill.lev minend-1.lev minend-2.lev minend-3.lev minetn-1.lev minetn-2.lev minetn-3.lev minetn-4.lev minetn-5.lev minetn-6.lev minetn-7.lev oracle.lev orcus.lev sanctum.lev soko1-1.lev soko1-2.lev soko2-1.lev soko2-2.lev soko3-1.lev soko3-2.lev soko4-1.lev soko4-2.lev tower1.lev tower2.lev tower3.lev valley.lev water.lev wizard1.lev wizard2.lev wizard3.lev (files generated by makedefs at playground creation time) data dungeon.pdf options oracles quest.dat rumors (files generated for Qt interface on Mac OS X) Info.plist nethack.icns (files generated for win32 at compile time) dlb.lst porthelp (files generated for win32 gui at compile time) guioptions (files generated for win32 tty at compile time) ttyoptions (tile files optionally generated for X ports at playground creation time) pet_mark.xbm rip.xpm x11tiles include: (file for tiles support copied from win/share at compile time) tile.h (file for win32 that are moved into include at compile time) win32api.h (files generated by makedefs at compile time) date.h onames.h pm.h vis_tab.h (files generated by yacc (or copied from sys/share) at compile time) dgn_comp.h lev_comp.h src: (files for win32 that are moved into src at compile time) Makefile Makefile.bcc Makefile.gcc (files generated by 'moc' for Qt interface at compile time) qt_kde0.moc qt_win.moc qttableview.moc (file generated by makedefs at compile time by some ports) monstr.c (file generated by makedefs at compile time) vis_tab.c (file optionally generated by tilemap at compile time) tile.c sys/winnt: (file generated by uudecode at compile time) nethack.ico util: (files generated by lex and yacc (or copied from sys/share) at compile time) dgn_lex.c dgn_yacc.c lev_lex.c lev_yacc.c (file generated for unix at compile time if various tiles utilities are built) tiletxt.c (file generated for win32 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). NetHack-3.6.7/Porting000066400000000000000000000166561437325207100144330ustar00rootroot00000000000000 NetHack Porting Guidelines v 3.6 1999-11-29 1.0 Introduction This document goes through the steps required to port NetHack to a new machine. The basic steps in porting the program are: 1. Get the code onto your machine. The parts of the current 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. :-) 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, pcconf.h, tosconf.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.doc 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. 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. 2.4 system.h This file contains references for all hooks into the OS (via the standard "C" libraries). Depending on what your standard library looks like, you may have to put new entries into 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. The utility compilers "dgn_comp" and "lev_comp" may be a better place to start. They also require "makedefs" but are independent of "nethack". They are usually the last programs made, but since they are much smaller they may be more tractable when first arguing with the include files. These programs create binary data files that "nethack" uses to guide its dungeon creation. 3.1 Makefiles This distribution provides makefiles for several kinds of systems. 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. This has already been done for MSDOS, and these mods can be used as an example. 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. 3.3 main.c You may need to create a new "main.c" module. If you do, call it [OS]main.c where the [OS] is replaced with the name of the OS you are porting to. This file contains the mainline module, which reads options from the command line (or wherever) and processes them. It also contains various functions associated with game startup. 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. # NetHack 3.6 Porting $NHDT-Date: 1524689603 2018/04/25 20:53:23 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.5 $ # Copyright (c) 2005 by Michael Allison # NetHack may be freely redistributed. See license for details. NetHack-3.6.7/README000066400000000000000000000222011437325207100137250ustar00rootroot00000000000000 NetHack 3.6.7 -- General information February 2023 NetHack 3.6 is an enhancement to the dungeon exploration game NetHack, which is a distant descendent of Rogue and Hack, and a direct descendent of NetHack 3.4 as there was no NetHack 3.5 release. NetHack 3.6.7 is the official release of NetHack that follows NetHack 3.6.6 and contains bug fixes since 3.6.6, including a security fix which prompted the release. The file doc/fixes36.7 in the source distribution has a full list of fixes. 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. Below you will find some other general notes that were not considered spoilers: * during engraving, spaces were counted instead of non-space (cherry-pick of 4e0a1e04 from NetHack-3.7) * avoid potential buffer overflow in append_str() * resolve missing dependency in NetHack.sln * code in include/tradstdc.h was trying to suppress warn_unused result by defining warn_unused_result to an empty string and that began causing a build error within a system-supplied header file cdefs.h when using ubuntu impish 21.10; disable that for any Linux unless GCC_URWARN is defined to force it back into effect * update_inventory() after leash goes slack * player assigned name for monsters, specific objects, or object types could be longer than what was intented to be allowed; for 'curses', much longer * windows: added winflexbison to travis-ci configuration to permit full build of levcomp and dgncomp * windows: a bad chdir specified in win/win32/dgnstuff.mak caused full build to abort * windows: the console.rc file had outdated information stating 3.6.3 when the official 3.6.6 binary was built. * windows: switch from using keyhandling dll's to incorporating the three variations (default, ray, 340) in sys/winnt/nttty.c * curses: cherry-picked selectsaved code from 3.7 for menu of save files * NetHackW: fix delay rendering of cursor when using farlook - - - - - - - - - - - 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 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 this release, NetHack 3.6 has been tested to run/compile on: Intel Pentium or better (or clone) running Linux, BSDI, or Windows (7 through 10) Intel 80386 or greater (or clone) boxes running Linux, or BSDI Mac OS X 10.11 (follow the instructions in sys/unix, not sys/mac) OpenVMS (aka VMS) V8.4 on Alpha and on Integrity/Itanium/IA64 Instructions have been provided by way of community contribution on: msdos protected mode using djgpp 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: 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 80386 or greater (or clone) boxes running MS-DOS with DPMI. Intel x86 running a version of Windows 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: 1672610729 2023/01/01 22:05:29 $ $NHDT-Branch: releasebits-3.6 $:$NHDT-Revision: 1.81 $ # Copyright (c) 2012 by Michael Allison # NetHack may be freely redistributed. See license for details. NetHack-3.6.7/dat/000077500000000000000000000000001437325207100136205ustar00rootroot00000000000000NetHack-3.6.7/dat/.gitattributes000066400000000000000000000002541437325207100165140ustar00rootroot00000000000000*.def NHSUBST *.des NHSUBST *.txt NHSUBST data.base NHSUBST symbols NHSUBST tribute NHSUBST GENFILES NHSUBST * NH_filestag=(file%s_for_all_versions) ..files NH_filegenprog NetHack-3.6.7/dat/.gitignore000066400000000000000000000003701437325207100156100ustar00rootroot00000000000000options 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 NetHack-3.6.7/dat/Arch.des000066400000000000000000000350771437325207100152060ustar00rootroot00000000000000# NetHack 3.6 Arch.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Lord Carnarvon # and receive your quest assignment. # MAZE: "Arc-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ............................................................................ ............................................................................ ............................................................................ ............................................................................ ....................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}................. ....................}-------------------------------------}................. ....................}|..S......+.................+.......|}................. ....................}-S---------------+----------|.......|}................. ....................}|.|...............|.......+.|.......|}................. ....................}|.|...............---------.---------}................. ....................}|.S.\.............+.................+.................. ....................}|.|...............---------.---------}................. ....................}|.|...............|.......+.|.......|}................. ....................}-S---------------+----------|.......|}................. ....................}|..S......+.................+.......|}................. ....................}-------------------------------------}................. ....................}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}................. ............................................................................ ............................................................................ ............................................................................ ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION: (22,06,23,06),unlit,"ordinary" REGION: (25,06,30,06),unlit,"ordinary" REGION: (32,06,48,06),unlit,"ordinary" REGION: (50,06,56,08),lit,"ordinary" REGION: (40,08,46,08),unlit,"ordinary" REGION: (22,08,22,12),unlit,"ordinary" REGION: (24,08,38,12),unlit,"ordinary" REGION: (48,08,48,08),lit,"ordinary" REGION: (40,10,56,10),lit,"ordinary" REGION: (48,12,48,12),lit,"ordinary" REGION: (40,12,46,12),unlit,"ordinary" REGION: (50,12,56,14),lit,"ordinary" REGION: (22,14,23,14),unlit,"ordinary" REGION: (25,14,30,14),unlit,"ordinary" REGION: (32,14,48,14),unlit,"ordinary" # Stairs STAIR:(55,07),down # Portal arrival point BRANCH:(63,06,63,06),(0,0,0,0) # Doors DOOR:closed,(22,07) DOOR:closed,(38,07) DOOR:locked,(47,08) DOOR:locked,(23,10) DOOR:locked,(39,10) DOOR:locked,(57,10) DOOR:locked,(47,12) DOOR:closed,(22,13) DOOR:closed,(38,13) DOOR:locked,(24,14) DOOR:closed,(31,14) DOOR:locked,(49,14) # Lord Carnarvon MONSTER:('@',"Lord Carnarvon"),(25,10) # The treasure of Lord Carnarvon OBJECT:('(',"chest"),(25,10) # student guards for the audience chamber MONSTER:('@',"student"),(26,09) MONSTER:('@',"student"),(27,09) MONSTER:('@',"student"),(28,09) MONSTER:('@',"student"),(26,10) MONSTER:('@',"student"),(28,10) MONSTER:('@',"student"),(26,11) MONSTER:('@',"student"),(27,11) MONSTER:('@',"student"),(28,11) # city watch guards in the antechambers MONSTER:('@',"watchman"),(50,06) MONSTER:('@',"watchman"),(50,14) # Eels in the moat MONSTER:(';',"giant eel"),(20,10) MONSTER:(';',"giant eel"),(45,04) MONSTER:(';',"giant eel"),(33,16) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: 'S',(60,09) MONSTER: 'M',(60,10) MONSTER: 'S',(60,11) MONSTER: 'S',(60,12) MONSTER: 'M',(60,13) MONSTER: 'S',(61,10) MONSTER: 'S',(61,11) MONSTER: 'S',(61,12) MONSTER: 'S',(30,03) MONSTER: 'M',(20,17) MONSTER: 'S',(67,02) MONSTER: 'S',(10,19) # # The "locate" level for the quest. # # Here you have to find the Entrance to the Tomb of the Toltec Kings # to go further towards your assigned quest. # MAZE: "Arc-loca",' ' FLAGS: hardfloor GEOMETRY:center,center MAP ............................................................................ ............................................................................ ............................................................................ ........................-------------------------------..................... ........................|....|.S......................|..................... ........................|....|.|.|+------------------.|..................... ........................|....|.|.|.|.........|......|.|..................... ........................|....|.|.|.|.........|......|.|..................... ........................|---+-.|.|.|..---....+......|.|..................... ........................|....|.|.|.---|.|....|......|.|..................... ........................|....S.|.|.+..S.|--S-----S--|.|..................... ........................|....|.|.|.---|.|....|......+.|..................... ........................|---+-.|.|.|..---....|.------.|..................... ........................|....|.|.|.|.........|.|....+.|..................... ........................|....|.|.|.|.........|+|....|-|..................... ........................|....|.|.|------------+------.S..................... ........................|....|.S......................|..................... ........................-------------------------------..................... ............................................................................ ............................................................................ ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(25,04,28,07),lit,"temple" REGION:(25,09,28,11),unlit,"temple" REGION:(25,13,28,16),lit,"temple" REGION:(30,04,30,16),lit,"ordinary" REGION:(32,04,32,16),unlit,"ordinary" REGION:(33,04,53,04),unlit,"ordinary",unfilled,irregular REGION:(36,10,37,10),unlit,"ordinary" REGION:(39,09,39,11),unlit,"ordinary" REGION:(36,06,42,08),unlit,"ordinary",unfilled,irregular REGION:(36,12,42,14),unlit,"ordinary",unfilled,irregular REGION:(46,06,51,09),unlit,"ordinary" REGION:(46,11,49,11),unlit,"ordinary",unfilled,irregular REGION:(48,13,51,14),unlit,"ordinary" # Doors DOOR:closed,(31,04) DOOR:closed,(28,08) DOOR:locked,(29,10) DOOR:closed,(28,12) DOOR:closed,(31,16) DOOR:locked,(34,05) DOOR:locked,(35,10) DOOR:locked,(38,10) DOOR:closed,(43,10) DOOR:closed,(45,08) DOOR:locked,(46,14) DOOR:locked,(46,15) DOOR:locked,(49,10) DOOR:locked,(52,11) DOOR:closed,(52,13) DOOR:closed,(54,15) # Stairs STAIR:(03,17),up STAIR:(39,10),down # Altars - three types. All are unattended. ALTAR:(26,05),align[0],altar ALTAR:(26,10),align[1],altar ALTAR:(26,15),align[2],altar # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Treasure? ENGRAVING:random,engrave,"X marks the spot." ENGRAVING:random,engrave,"X marks the spot." ENGRAVING:random,engrave,"X marks the spot." ENGRAVING:random,engrave,"X marks the spot." # Random traps TRAP:"spiked pit",(24,02) TRAP:"spiked pit",(37,00) TRAP:"spiked pit",(23,05) TRAP:"spiked pit",(26,19) TRAP:"spiked pit",(55,10) TRAP:"spiked pit",(55,08) TRAP:"pit",(51,01) TRAP:"pit",(23,18) TRAP:"pit",(31,18) TRAP:"pit",(48,19) TRAP:"pit",(55,15) TRAP:"magic",(60,04) TRAP:"statue",(72,07) TRAP:"statue",random TRAP:"statue",random TRAP:"anti magic",(64,12) TRAP:"sleep gas",random TRAP:"sleep gas",random TRAP:"dart",random TRAP:"dart",random TRAP:"dart",random TRAP:"rolling boulder",(32,10) TRAP:"rolling boulder",(40,16) # Random monsters. MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'M',random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:'M',random # # The "goal" level for the quest. # # Here you meet Minion of Huhetotl your nemesis monster. You have to # defeat Minion of Huhetotl in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Arc-goal", ' ' GEOMETRY:center,center MAP --------- |..|.|..| -----------|..S.S..|----------- |.|........|+-|.|-+|........|.| |.S........S..|.|..S........S.| |.|........|..|.|..|........|.| ------------------+------------------ |..|..........|.......|..........|..| |..|..........+.......|..........S..| |..S..........|.......+..........|..| |..|..........|.......|..........|..| ------------------+------------------ |.|........|..|.|..|........|.| |.S........S..|.|..S........S.| |.|........|+-|.|-+|........|.| -----------|..S.S..|----------- |..|.|..| --------- ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(35,02,36,03),unlit,"ordinary" REGION:(40,02,41,03),unlit,"ordinary" REGION:(24,04,24,06),unlit,"ordinary" REGION:(26,04,33,06),lit,"ordinary" REGION:(38,02,38,06),unlit,"ordinary" REGION:(43,04,50,06),lit,"ordinary" REGION:(52,04,52,06),unlit,"ordinary" REGION:(35,05,36,06),unlit,"ordinary" REGION:(40,05,41,06),unlit,"ordinary" REGION:(21,08,22,11),unlit,"ordinary" REGION:(24,08,33,11),lit,"ordinary" REGION:(35,08,41,11),unlit,"ordinary" REGION:(43,08,52,11),lit,"ordinary" REGION:(54,08,55,11),unlit,"ordinary" REGION:(24,13,24,15),unlit,"ordinary" REGION:(26,13,33,15),unlit,"ordinary" REGION:(35,13,36,14),unlit,"ordinary" REGION:(35,16,36,17),unlit,"ordinary" REGION:(38,13,38,17),unlit,"ordinary" REGION:(40,13,41,14),unlit,"ordinary" REGION:(40,16,41,17),unlit,"ordinary" REGION:(43,13,50,15),unlit,"temple" REGION:(52,13,52,15),unlit,"ordinary" # Stairs STAIR:(38,10),up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # The altar of Huhetotl. Unattended. ALTAR:(50,14),chaos,altar # Objects OBJECT:('(',"crystal ball"),(50,14),blessed,5,name:"The Orb of Detection" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:"rolling boulder",(46,14) # Random monsters. MONSTER:('&',"Minion of Huhetotl"),(50,14) MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:'S',random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:('M',"human mummy"),random MONSTER:'M',random # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # LEVEL: "Arc-fila" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: 'S', random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: 'S', random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: 'S', random } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random MONSTER: 'S', random MONSTER: ('M', "human mummy"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: 'S', random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random MONSTER: 'S', random } RANDOM_CORRIDORS LEVEL: "Arc-filb" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: 'M', random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: 'M', random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: 'M', random } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random MONSTER: 'S', random MONSTER: ('M', "human mummy"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: 'S', random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random MONSTER: 'S', random } RANDOM_CORRIDORS NetHack-3.6.7/dat/Barb.des000066400000000000000000000315771437325207100152000ustar00rootroot00000000000000# NetHack 3.6 Barb.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Pelias, # and receive your quest assignment. # MAZE: "Bar-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ..................................PP........................................ ...................................PP....................................... ...................................PP....................................... ....................................PP...................................... ........--------------......-----....PPP.................................... ........|...S........|......+...|...PPP..................................... ........|----........|......|...|....PP..................................... ........|.\..........+......-----........................................... ........|----........|...............PP..................................... ........|...S........|...-----.......PPP.................................... ........--------------...+...|......PPPPP................................... .........................|...|.......PPP.................................... ...-----......-----......-----........PP.................................... ...|...+......|...+..--+--.............PP................................... ...|...|......|...|..|...|..............PP.................................. ...-----......-----..|...|.............PPPP................................. .....................-----............PP..PP................................ .....................................PP...PP................................ ....................................PP...PP................................. ....................................PP....PP................................ ENDMAP # the forest beyond the river REPLACE_TERRAIN:(37,0,59,19),'.','T', 5% REPLACE_TERRAIN:(60,0,64,19),'.','T', 10% REPLACE_TERRAIN:(65,0,75,19),'.','T', 20% # guarantee a path and free spot for the portal TERRAIN:(randline (37,7),(62,02),7), '.' TERRAIN:(62,02),'.' # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(09,05,11,05),unlit,"ordinary" REGION:(09,07,11,07),lit,"ordinary" REGION:(09,09,11,09),unlit,"ordinary" REGION:(13,05,20,09),lit,"ordinary" REGION:(29,05,31,06),lit,"ordinary" REGION:(26,10,28,11),lit,"ordinary" REGION:(04,13,06,14),lit,"ordinary" REGION:(15,13,17,14),lit,"ordinary" REGION:(22,14,24,15),lit,"ordinary" # Stairs STAIR:(09,09),down # Portal arrival point BRANCH:(62,02,62,02),(0,0,0,0) # Doors DOOR:locked,(12,05) DOOR:locked,(12,09) DOOR:closed,(21,07) DOOR:open,(07,13) DOOR:open,(18,13) DOOR:open,(23,13) DOOR:open,(25,10) DOOR:open,(28,05) # Elder MONSTER:('@',"Pelias"),(10,07) # The treasure of Pelias OBJECT:('(',"chest"),(09,05) # chieftain guards for the audience chamber MONSTER:('@',"chieftain"),(10,05) MONSTER:('@',"chieftain"),(10,09) MONSTER:('@',"chieftain"),(11,05) MONSTER:('@',"chieftain"),(11,09) MONSTER:('@',"chieftain"),(14,05) MONSTER:('@',"chieftain"),(14,09) MONSTER:('@',"chieftain"),(16,05) MONSTER:('@',"chieftain"),(16,09) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # One trap to keep the ogres at bay. TRAP:"spiked pit",(37,07) # Eels in the river MONSTER:(';',"giant eel"),(36,01) MONSTER:(';',"giant eel"),(37,09) MONSTER:(';',"giant eel"),(39,15) # Monsters on siege duty. MONSTER:('O',"ogre"),(40,08),hostile MONSTER:('O',"ogre"),(41,06),hostile MONSTER:('O',"ogre"),(41,07),hostile MONSTER:('O',"ogre"),(41,08),hostile MONSTER:('O',"ogre"),(41,09),hostile MONSTER:('O',"ogre"),(41,10),hostile MONSTER:('O',"ogre"),(42,06),hostile MONSTER:('O',"ogre"),(42,07),hostile MONSTER:('O',"ogre"),(42,08),hostile MONSTER:('O',"ogre"),(42,09),hostile MONSTER:('O',"ogre"),(42,10),hostile # # The "locate" level for the quest. # # Here you have to infiltrate the Duali Oasis to go # further towards your assigned quest. # MAZE: "Bar-loca",' ' FLAGS: hardfloor GEOMETRY:center,center MAP ..........PPP......................................... ...........PP.......................................... ....... ..........PP...........-----..........------------------ .......... ...........PP..........+...|..........|....S...........|.. ............ ..........PPP..........|...|..........|-----...........|... ............. ...........PPP.........-----..........+....+...........|... ............. ..........PPPPPPPPP...................+....+...........S................. ........PPPPPPPPPPPPP.........-----...|-----...........|................ ......PPPPPPPPPPPPPP..P.......+...|...|....S...........| ... .....PPPPPPP......P..PPPP.....|...|...------------------.. ... ....PPPPPPP.........PPPPPP....-----........................ ........ ...PPPPPPP..........PPPPPPP.................................. .......... ....PPPPPPP........PPPPPPP.................................... .......... .....PPPPP........PPPPPPP.........-----........................ ........ ......PPP..PPPPPPPPPPPP...........+...|......................... ..... ..........PPPPPPPPPPP.............|...|......................... .... ..........PPPPPPPPP...............-----......................... . ..............PPP................................................. ...............PP.................................................... ................PPP................................................... ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(24,03,26,04),unlit,"ordinary" REGION:(31,08,33,09),unlit,"ordinary" REGION:(35,14,37,15),unlit,"ordinary" REGION:(39,03,54,08),lit,"ordinary" REGION:(56,00,75,08),unlit,"ordinary" REGION:(64,09,75,16),unlit,"ordinary" # Doors DOOR:open,(23,03) DOOR:open,(30,08) DOOR:open,(34,14) DOOR:locked,(38,05) DOOR:locked,(38,06) DOOR:closed,(43,03) DOOR:closed,(43,05) DOOR:closed,(43,06) DOOR:closed,(43,08) DOOR:locked,(55,06) # Stairs STAIR:(05,02),up STAIR:(70,13),down # Objects OBJECT:random,(42,03) OBJECT:random,(42,03) OBJECT:random,(42,03) OBJECT:random,(41,03) OBJECT:random,(41,03) OBJECT:random,(41,03) OBJECT:random,(41,03) OBJECT:random,(41,08) OBJECT:random,(41,08) OBJECT:random,(42,08) OBJECT:random,(42,08) OBJECT:random,(42,08) OBJECT:random,(71,13) OBJECT:random,(71,13) OBJECT:random,(71,13) # Random traps TRAP:"spiked pit",(10,13) TRAP:"spiked pit",(21,07) TRAP:"spiked pit",(67,08) TRAP:"spiked pit",(68,09) TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('O',"ogre"),(12,09),hostile MONSTER:('O',"ogre"),(18,11),hostile MONSTER:('O',"ogre"),(45,05),hostile MONSTER:('O',"ogre"),(45,06),hostile MONSTER:('O',"ogre"),(47,05),hostile MONSTER:('O',"ogre"),(46,05),hostile MONSTER:('O',"ogre"),(56,03),hostile MONSTER:('O',"ogre"),(56,04),hostile MONSTER:('O',"ogre"),(56,05),hostile MONSTER:('O',"ogre"),(56,06),hostile MONSTER:('O',"ogre"),(57,03),hostile MONSTER:('O',"ogre"),(57,04),hostile MONSTER:('O',"ogre"),(57,05),hostile MONSTER:('O',"ogre"),(57,06),hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:'O',random,hostile MONSTER:'T',random,hostile MONSTER:('T',"rock troll"),(46,06),hostile MONSTER:('T',"rock troll"),(47,06),hostile MONSTER:('T',"rock troll"),(56,07),hostile MONSTER:('T',"rock troll"),(57,07),hostile MONSTER:('T',"rock troll"),(70,13),hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:'T',random,hostile # # The "goal" level for the quest. # # Here you meet Thoth Amon, your nemesis monster. You have to # defeat Thoth Amon in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Bar-goal", ' ' GEOMETRY:center,center MAP ............. .................. .... ......................... .... ....... .......................... ....... ...... ........................ ....... .. ...................................... .. .. ..................... .. .. .................. .. .. ..S...S.............. ................ .. ........ ... ......... .. ...... .. ... .... .. ... .. ...... ........ .... .. .................. ........ ...... ...... ...................... ...... .. .... .................. ........... .............. ........... ENDMAP # Dungeon Description REGION:(00,00,75,19),unlit,"ordinary" # Secret doors DOOR:locked,(22,09) DOOR:locked,(26,09) # Stairs STAIR:(36,05),up # The altar. Unattended. ALTAR:(63,04),noncoaligned,altar NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:('*',"luckstone"),(63,04),blessed,0,name:"The Heart of Ahriman" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"Thoth Amon"),(63,04),hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:('O',"ogre"),random,hostile MONSTER:'O',random,hostile MONSTER:'O',random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:('T',"rock troll"),random,hostile MONSTER:'T',random,hostile WALLIFY # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # MAZE: "Bar-fila" , ' ' INIT_MAP: mines, '.' , '.' , true , true , unlit , false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: 'O', random, hostile MONSTER: ('T', "rock troll"), random, hostile MAZE: "Bar-filb" , ' ' INIT_MAP: mines, '.' , ' ' , true , true , unlit , true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: ('O', "ogre"), random, hostile MONSTER: 'O' , random, hostile MONSTER: ('T', "rock troll"), random, hostile MONSTER: ('T', "rock troll"), random, hostile MONSTER: ('T', "rock troll"), random, hostile MONSTER: 'T' , random, hostile NetHack-3.6.7/dat/Caveman.des000066400000000000000000000265061437325207100157000ustar00rootroot00000000000000# NetHack 3.6 Caveman.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Shaman Karnov # and receive your quest assignment. # MAZE: "Cav-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ...... .......................... ... .... ...... ...... .......................... ........ .... ..... ..BB ............................. ......... .... .. .. ...................... ....... .. .... .. .. .................... .. ....... .. ... .. S BB ..... ....... .... .... .. ... . .. ........ .. .. .. ... .. ...... .. ............ .. ... . .... .. ........ .. ........... ... .. .. ............. ................... ..... ..... ............................... ........... .....B................ ... ... ..... . .......... .... . ... .......... ... ... .. ............. .. ................... .... BB .. ......... BB ... .......... .. ... ... ...... ..... B ........ .. .. .... ... .......... .......... ..... ... ..... ........ .. ... . ..... .... .. ... .. ENDMAP # Dungeon Description REGION:(00,00,75,19),unlit,"ordinary" REGION:(13,01,40,05),lit,"temple",unfilled,irregular # The occupied rooms. REGION:(02,01,08,03),lit,"ordinary",unfilled,irregular REGION:(01,11,06,14),lit,"ordinary",unfilled,irregular REGION:(13,08,18,10),lit,"ordinary",unfilled,irregular REGION:(05,17,14,18),lit,"ordinary",unfilled,irregular REGION:(17,16,23,18),lit,"ordinary",unfilled,irregular REGION:(35,16,44,18),lit,"ordinary",unfilled,irregular # Stairs STAIR:(02,03),down # Portal arrival point BRANCH:(71,09,71,09),(0,0,0,0) # Doors DOOR:locked,(19,06) # The temple altar (this will force a priest(ess) to be created) ALTAR:(36,02),coaligned,shrine # Shaman Karnov MONSTER:('@',"Shaman Karnov"),(35,02) # The treasure of Shaman Karnov OBJECT:('(',"chest"),(34,02) # neanderthal guards for the audience chamber MONSTER:('@',"neanderthal"),(20,03) MONSTER:('@',"neanderthal"),(20,02) MONSTER:('@',"neanderthal"),(20,01) MONSTER:('@',"neanderthal"),(21,03) MONSTER:('@',"neanderthal"),(21,02) MONSTER:('@',"neanderthal"),(21,01) MONSTER:('@',"neanderthal"),(22,01) MONSTER:('@',"neanderthal"),(26,09) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps TRAP:"pit",(47,11) TRAP:"pit",(57,10) TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty (in the outer caves). MONSTER: ('h',"bugbear"),(47,02),hostile MONSTER: ('h',"bugbear"),(48,03),hostile MONSTER: ('h',"bugbear"),(49,04),hostile MONSTER: ('h',"bugbear"),(67,03),hostile MONSTER: ('h',"bugbear"),(69,04),hostile MONSTER: ('h',"bugbear"),(51,13),hostile MONSTER: ('h',"bugbear"),(53,14),hostile MONSTER: ('h',"bugbear"),(55,15),hostile MONSTER: ('h',"bugbear"),(63,10),hostile MONSTER: ('h',"bugbear"),(65,09),hostile MONSTER: ('h',"bugbear"),(67,10),hostile MONSTER: ('h',"bugbear"),(69,11),hostile WALLIFY # # The "locate" level for the quest. # # Here you have to find the lair of Tiamat to go # further towards your assigned quest. # MAZE: "Cav-loca",' ' FLAGS: hardfloor GEOMETRY:center,center MAP ............. ........... ............... ............. ............. ............... .......... ........... ............. ............... ... ... .................. ... .......... ... .................. ... ............ BBB................... ... .......... ...................... ..... .. .....B........................ .... ............... . ........B.......................... ...... .. .............S.............. .................. .... .. ........... ............... .. ... .................... .... BB................... .. .. .. ............... .. ....... .... ..... .... .. ....... S ............ ....... .. ....... ..... ... .... ....... ..... ...... ....... ENDMAP # Dungeon Description REGION:(00,00,75,19),unlit,"ordinary" REGION:(52,06,73,15),lit,"ordinary",unfilled,irregular # Doors DOOR:locked,(28,11) # Stairs STAIR:(04,03),up STAIR:(73,10),down # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('h',"bugbear"),(02,10),hostile MONSTER:('h',"bugbear"),(03,11),hostile MONSTER:('h',"bugbear"),(04,12),hostile MONSTER:('h',"bugbear"),(02,11),hostile MONSTER:('h',"bugbear"),(16,16),hostile MONSTER:('h',"bugbear"),(17,17),hostile MONSTER:('h',"bugbear"),(18,18),hostile MONSTER:('h',"bugbear"),(19,16),hostile MONSTER:('h',"bugbear"),(30,06),hostile MONSTER:('h',"bugbear"),(31,07),hostile MONSTER:('h',"bugbear"),(32,08),hostile MONSTER:('h',"bugbear"),(33,06),hostile MONSTER:('h',"bugbear"),(34,07),hostile MONSTER:('h',"bugbear"),random,hostile MONSTER:('h',"bugbear"),random,hostile MONSTER:('h',"bugbear"),random,hostile MONSTER:('h',"bugbear"),random,hostile MONSTER:'h',random,hostile MONSTER:'H',random,hostile MONSTER:('H',"hill giant"),(03,12),hostile MONSTER:('H',"hill giant"),(20,17),hostile MONSTER:('H',"hill giant"),(35,08),hostile MONSTER:('H',"hill giant"),random,hostile MONSTER:('H',"hill giant"),random,hostile MONSTER:('H',"hill giant"),random,hostile MONSTER:('H',"hill giant"),random,hostile MONSTER:'H',random,hostile WALLIFY # # The "goal" level for the quest. # # Here you meet Tiamat your nemesis monster. You have to # defeat Tiamat in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Cav-goal", ' ' GEOMETRY:center,center MAP ..................... ....................... ......................... ........................... ............................. ............................... ................................. ................................... ..................................... ....................................... ..................................... ................................... ................................. ............................... ............................. ........................... ......................... ....................... ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" # Stairs STAIR:random,up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:(')',"mace"),(23,10),blessed,0,name:"The Sceptre of Might" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # monsters. MONSTER:('D',"Chromatic Dragon"),(23,10),asleep MONSTER:('F',"shrieker"),(26,13) MONSTER:('F',"shrieker"),(25,8) MONSTER:('F',"shrieker"),(45,11) WALLIFY # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # MAZE: "Cav-fila" , ' ' INIT_MAP: mines, '.' , ' ' , true , true , random , true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: 'h', random, hostile MONSTER: ('H', "hill giant"), random, hostile MAZE: "Cav-filb" , ' ' INIT_MAP: mines, '.' , ' ' , true , true , random , true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: ('h', "bugbear"), random, hostile MONSTER: 'h', random, hostile MONSTER: 'h', random, hostile MONSTER: ('H', "hill giant"), random, hostile MONSTER: ('H', "hill giant"), random, hostile NetHack-3.6.7/dat/GENFILES000077500000000000000000000023651437325207100147500ustar00rootroot00000000000000#!/usr/bin/perl # NetHack 3.6 GENFILES $NHDT-Date: 1550799147 2019/02/22 01:32:27 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.0 $ # 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 Mac OS X) F nethack.icns F Info.plist T (files generated for win32 at compile time) F porthelp F dlb.lst T (files generated for win32 tty at compile time) F ttyoptions T (files generated for win32 gui at compile time) F guioptions T (files generated by makedefs at playground creation time) F data F dungeon.pdf F options F oracles F quest.dat F rumors T (file generated by dgn_comp at playground creation time) F dungeon NetHack-3.6.7/dat/Healer.des000066400000000000000000000252131437325207100155200ustar00rootroot00000000000000# NetHack 3.6 Healer.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991, 1993 by M. Stephenson, P. Winner # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Hippocrates # and receive your quest assignment. # MAZE: "Hea-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP PPPP........PPPP.....PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP.P..PPPPP......PPPPPPPP PPP..........PPPP...PPPPP.........................PPPP..PPPPP........PPPPPPP PP............PPPPPPPP..............................PPP...PPPP......PPPPPPPP P.....PPPPPPPPPPPPPPP................................PPPPPPPPPPPPPPPPPPPPPPP PPPP....PPPPPPPPPPPP...................................PPPPP.PPPPPPPPPPPPPPP PPPP........PPPPP.........-----------------------........PP...PPPPPPP.....PP PPP............PPPPP....--|.|......S..........S.|--.....PPPP.PPPPPPP.......P PPPP..........PPPPP.....|.S.|......-----------|S|.|......PPPPPP.PPP.......PP PPPPPP......PPPPPP......|.|.|......|...|......|.|.|.....PPPPPP...PP.......PP PPPPPPPPPPPPPPPPPPP.....+.|.|......S.\.S......|.|.+......PPPPPP.PPPP.......P PPP...PPPPP...PPPP......|.|.|......|...|......|.|.|.......PPPPPPPPPPP.....PP PP.....PPP.....PPP......|.|S|-----------......|.S.|......PPPPPPPPPPPPPPPPPPP PPP..PPPPP...PPPP.......--|.S..........S......|.|--.....PPPPPPPPP....PPPPPPP PPPPPPPPPPPPPPPP..........-----------------------..........PPPPP..........PP PPPPPPPPPPPPPPPPP........................................PPPPPP............P PPP.............PPPP...................................PPP..PPPP..........PP PP...............PPPPP................................PPPP...PPPP........PPP PPP.............PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP....PPPPPP PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ENDMAP REPLACE_TERRAIN:(01,01,74,18), 'P', '.', 10% # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" # Stairs STAIR:(37,9),down # Portal arrival point BRANCH:(04,12,04,12),(0,0,0,0) # altar for the Temple ALTAR:(32,09),neutral,altar # Doors DOOR:locked,(24,10) DOOR:closed,(26,08) DOOR:closed,(27,12) DOOR:locked,(28,13) DOOR:closed,(35,07) DOOR:locked,(35,10) DOOR:locked,(39,10) DOOR:closed,(39,13) DOOR:locked,(46,07) DOOR:closed,(47,08) DOOR:closed,(48,12) DOOR:locked,(50,10) # Hippocrates MONSTER:('@',"Hippocrates"),(37,10) # The treasure of Hippocrates OBJECT:('(',"chest"),(37,10) # intern guards for the audience chamber MONSTER:('@',"attendant"),(29,08) MONSTER:('@',"attendant"),(29,09) MONSTER:('@',"attendant"),(29,10) MONSTER:('@',"attendant"),(29,11) MONSTER:('@',"attendant"),(40,09) MONSTER:('@',"attendant"),(40,10) MONSTER:('@',"attendant"),(40,11) MONSTER:('@',"attendant"),(40,13) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: ('r',"rabid rat"),random MONSTER: (';',"giant eel"),random MONSTER: (';',"shark"),random MONSTER: ';', random MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile # # The "locate" level for the quest. # # Here you have to find the Temple of Coeus to go # further towards your assigned quest. # MAZE: "Hea-loca",' ' FLAGS: hardfloor # INIT_MAP: mines, '.' , 'P', true , true , lit , false GEOMETRY:center,center MAP PPPPPPPPPPPPP.......PPPPPPPPPPP PPPPPPPP...............PPPPPPPP PPPP.....-------------...PPPPPP PPPPP....|.S.........|....PPPPP PPP......+.|.........|...PPPPPP PPP......+.|.........|..PPPPPPP PPPP.....|.S.........|..PPPPPPP PPPPP....-------------....PPPPP PPPPPPPP...............PPPPPPPP PPPPPPPPPPP........PPPPPPPPPPPP ENDMAP # Dungeon Description REGION:(00,00,30,09),lit,"ordinary" REGION:(12,03,20,06),lit,"temple" # Doors DOOR:closed,(09,04) DOOR:closed,(09,05) DOOR:locked,(11,03) DOOR:locked,(11,06) # Stairs STAIR:(04,04),up STAIR:(20,06),down # Non diggable walls NON_DIGGABLE:(11,02,21,07) # Altar in the temple. ALTAR:(13,05), chaos, shrine # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:'r',random,hostile MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"kraken"),random MONSTER:(';',"shark"),random MONSTER:(';',"shark"),random MONSTER:';', random,hostile MONSTER:';', random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile # # The "goal" level for the quest. # # Here you meet Cyclops your nemesis monster. You have to # defeat Cyclops in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Hea-goal", 'P' # INIT_MAP: mines, '.' , 'P' , false , true , lit , false GEOMETRY:center,center MAP .P....................................PP. PP.......PPPPPPP....PPPPPPP....PPPP...PP. ...PPPPPPP....PPPPPPP.....PPPPPP..PPP...P ...PP..............................PPP... ..PP..............................PP..... ..PP..............................PPP.... ..PPP..............................PP.... .PPP..............................PPPP... ...PP............................PPP...PP ..PPPP...PPPPP..PPPP...PPPPP.....PP...PP. P....PPPPP...PPPP..PPPPP...PPPPPPP...PP.. PPP..................................PPP. ENDMAP # Dungeon Description REGION:(00,00,40,11),lit,"ordinary" # Stairs STAIR:(39,10),up # Non diggable walls NON_DIGGABLE:(00,00,40,11) # Objects OBJECT:(')',"quarterstaff"),(20,06),blessed,0,name:"The Staff of Aesculapius" OBJECT:('/',"lightning"),(20,06) OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('H',"Cyclops"),(20,06),hostile MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:('r',"rabid rat"),random MONSTER:'r',random,hostile MONSTER:'r',random,hostile MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"shark"),random MONSTER:(';',"shark"),random MONSTER:';',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # MAZE: "Hea-fila" , 'P' INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: ('r', "rabid rat"), random MONSTER: 'r', random,hostile MONSTER: 'r', random,hostile MONSTER: (';', "giant eel"), random MONSTER: (';', "giant eel"), random MONSTER: (';', "electric eel"), random MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random MAZE: "Hea-filb" , 'P' INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: ('r', "rabid rat"), random MONSTER: ('r', "rabid rat"), random MONSTER: 'r', random,hostile MONSTER: 'r', random,hostile MONSTER: (';', "giant eel"), random MONSTER: (';', "giant eel"), random MONSTER: (';', "giant eel"), random MONSTER: (';', "giant eel"), random MONSTER: (';', "giant eel"), random MONSTER: (';', "electric eel"), random MONSTER: (';', "electric eel"), random MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'D',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile MONSTER: 'S',random,hostile # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random NetHack-3.6.7/dat/Knight.des000066400000000000000000000303101437325207100155360ustar00rootroot00000000000000# NetHack 3.6 Knight.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991,92 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, King Arthur # and receive your quest assignment. # MAZE: "Kni-strt",'.' FLAGS: noteleport,hardfloor # This is a kludge to init the level as a lit field. INIT_MAP: mines, '.' , '.' , false , false , lit , false GEOMETRY:center,center MAP .................................................. .-----......................................-----. .|...|......................................|...|. .--|+-------------------++-------------------+|--. ...|...................+..+...................|... ...|.|-----------------|++|-----------------|.|... ...|.|.................|..|.........|.......|.|... ...|.|...\.............+..+.........|.......|.|... ...|.|.................+..+.........+.......|.|... ...|.|.................|..|.........|.......|.|... ...|.|--------------------------------------|.|... ...|..........................................|... .--|+----------------------------------------+|--. .|...|......................................|...|. .-----......................................-----. .................................................. ENDMAP # Dungeon Description REGION:(00,00,49,15),lit,"ordinary" REGION:(04,04,45,11),unlit,"ordinary" REGION:(06,06,22,09),lit,"throne" , unfilled REGION:(27,06,43,09),lit,"ordinary" # Portal arrival point BRANCH:(20,14,20,14),(0,0,0,0) # Stairs STAIR:(40,7),down # Doors # Outside Doors DOOR:locked,(24,03) DOOR:locked,(25,03) # Inside Doors DOOR:closed,(23,04) DOOR:closed,(26,04) DOOR:locked,(24,05) DOOR:locked,(25,05) DOOR:closed,(23,07) DOOR:closed,(26,07) DOOR:closed,(23,08) DOOR:closed,(26,08) DOOR:closed,(36,08) # Watchroom Doors DOOR:closed,(04,03) DOOR:closed,(45,03) DOOR:closed,(04,12) DOOR:closed,(45,12) # King Arthur MONSTER:('@',"King Arthur"),(09,07) # The treasure of King Arthur OBJECT:('(',"chest"),(09,07) # knight guards for the watchrooms MONSTER:('@',"knight"),(04,02),peaceful MONSTER:('@',"knight"),(04,13),peaceful MONSTER:('@',"knight"),(45,02),peaceful MONSTER:('@',"knight"),(45,13),peaceful # page guards for the audience chamber MONSTER:('@',"page"),(16,06) MONSTER:('@',"page"),(18,06) MONSTER:('@',"page"),(20,06) MONSTER:('@',"page"),(16,09) MONSTER:('@',"page"),(18,09) MONSTER:('@',"page"),(20,09) # Non diggable walls NON_DIGGABLE:(00,00,49,15) # Random traps TRAP:"sleep gas",(24,04) TRAP:"sleep gas",(25,04) TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: ('i',"quasit"),(14,00),hostile MONSTER: ('i',"quasit"),(16,00),hostile MONSTER: ('i',"quasit"),(18,00),hostile MONSTER: ('i',"quasit"),(20,00),hostile MONSTER: ('i',"quasit"),(22,00),hostile MONSTER: ('i',"quasit"),(24,00),hostile MONSTER: ('i',"quasit"),(26,00),hostile MONSTER: ('i',"quasit"),(28,00),hostile MONSTER: ('i',"quasit"),(30,00),hostile MONSTER: ('i',"quasit"),(32,00),hostile MONSTER: ('i',"quasit"),(34,00),hostile MONSTER: ('i',"quasit"),(36,00),hostile # # The "locate" level for the quest. # # Here you have to find your way to the Isle of Glass to go # further towards your assigned quest. # MAZE: "Kni-loca",' ' FLAGS: hardfloor INIT_MAP: mines, '.' , 'P' , false , true , lit , false GEOMETRY:center,center MAP xxxxxxxxx......xxxx...........xxxxxxxxxx xxxxxxx.........xxx.............xxxxxxxx xxxx..............................xxxxxx xx.................................xxxxx ....................................xxxx .......................................x ........................................ xx...................................xxx xxxx..............................xxxxxx xxxxxx..........................xxxxxxxx xxxxxxxx.........xx..........xxxxxxxxxxx xxxxxxxxx.......xxxxxx.....xxxxxxxxxxxxx ENDMAP # Dungeon Description # The Isle of Glass is a Tor rising out of the swamps surrounding it. REGION:(00,00,39,11),lit,"ordinary" # The top area of the Tor is a holy site. REGION:(09,02,27,09),lit,"temple" # Stairs STAIR:(38,0),up STAIR:(18,05),down # The altar atop the Tor and its attendant (creating altar makes the priest). ALTAR:(17,05),neutral,shrine # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps # All of the avenues are guarded by magic except for the East. # South TRAP:"magic",(08,11) TRAP:"magic",(09,11) TRAP:"magic",(10,11) TRAP:"magic",(11,11) TRAP:"magic",(12,11) TRAP:"magic",(13,11) TRAP:"magic",(14,11) TRAP:"magic",(15,11) TRAP:"magic",(16,11) TRAP:"magic",(20,11) TRAP:"magic",(21,11) TRAP:"magic",(22,11) TRAP:"magic",(23,11) TRAP:"magic",(24,11) TRAP:"magic",(25,11) TRAP:"magic",(26,11) TRAP:"magic",(27,11) TRAP:"magic",(28,11) # West TRAP:"magic",(00,03) TRAP:"magic",(00,04) TRAP:"magic",(00,05) TRAP:"magic",(00,06) # North TRAP:"magic",(06,00) TRAP:"magic",(07,00) TRAP:"magic",(08,00) TRAP:"magic",(09,00) TRAP:"magic",(10,00) TRAP:"magic",(11,00) TRAP:"magic",(12,00) TRAP:"magic",(13,00) TRAP:"magic",(14,00) TRAP:"magic",(19,00) TRAP:"magic",(20,00) TRAP:"magic",(21,00) TRAP:"magic",(22,00) TRAP:"magic",(23,00) TRAP:"magic",(24,00) TRAP:"magic",(25,00) TRAP:"magic",(26,00) TRAP:"magic",(27,00) TRAP:"magic",(28,00) TRAP:"magic",(29,00) TRAP:"magic",(30,00) TRAP:"magic",(31,00) TRAP:"magic",(32,00) # Even so, there are magic "sinkholes" around. TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"anti magic",random # Random monsters. MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:'i',random,hostile MONSTER:'j',random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:'j',random,hostile # # The "goal" level for the quest. # # Here you meet Ixoth your nemesis monster. You have to # defeat Ixoth in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Kni-goal", ' ' GEOMETRY:center,center MAP ....PPPP..PPP.. .PPPPP...PP.. .......... ................................. ..PPPPP...P.. ........... ................................... ..PPP....... ........... ...................................... ...PPP....... ......... ............... ..................... ........... ............ ............ ...................... ............ ............. ....... ..................... .............................. ......................... ............................... .................................. ............................. .................................... ......... ...................................................... .....PP... ..................................................... .....PPP.... .................................................... ......PPP.... .............. .................................... .......PPP.... ............. ..................................... ........PP... ............ ...................................... ...PPP........ .......... .................................. ..PPPPP........ .......... .............................. ....PPPPP...... ......... .......................... .......PPPP... ENDMAP # Dungeon Description REGION:(00,00,14,19),lit,"ordinary" REGION:(15,00,75,19),unlit,"ordinary" # Stairs STAIR:(03,08),up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:('(',"mirror"),(50,06),blessed,0,name:"The Magic Mirror of Merlin" OBJECT:random,(33,01) OBJECT:random,(33,02) OBJECT:random,(33,03) OBJECT:random,(33,04) OBJECT:random,(33,05) OBJECT:random,(34,01) OBJECT:random,(34,02) OBJECT:random,(34,03) OBJECT:random,(34,04) OBJECT:random,(34,05) OBJECT:random,(35,01) OBJECT:random,(35,02) OBJECT:random,(35,03) OBJECT:random,(35,04) OBJECT:random,(35,05) OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:"spiked pit",(13,07) TRAP:"spiked pit",(12,08) TRAP:"spiked pit",(12,09) TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('D',"Ixoth"),(50,06),hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:('i',"quasit"),random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:('j',"ochre jelly"),random,hostile MONSTER:'j',random,hostile # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # MAZE: "Kni-fila" , '.' INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: ('i', "quasit"), random, hostile MONSTER: ('i', "quasit"), random, hostile MONSTER: ('i', "quasit"), random, hostile MONSTER: ('i', "quasit"), random, hostile MONSTER: 'i', random, hostile MONSTER: ('j', "ochre jelly"), random, hostile # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random MAZE: "Kni-filb" , '.' INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: ('i', "quasit"), random, hostile MONSTER: ('i', "quasit"), random, hostile MONSTER: ('i', "quasit"), random, hostile MONSTER: ('i', "quasit"), random, hostile MONSTER: 'i', random, hostile MONSTER: ('j', "ochre jelly"), random, hostile MONSTER: ('j', "ochre jelly"), random, hostile MONSTER: ('j', "ochre jelly"), random, hostile # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random NetHack-3.6.7/dat/Monk.des000066400000000000000000000264161437325207100152320ustar00rootroot00000000000000# NetHack 3.6 Monk.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991-2 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, the Grand Master # and receive your quest assignment. # MAZE: "Mon-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ............................................................................ ............................................................................ ............................................................................ ....................------------------------------------.................... ....................|................|.....|.....|.....|.................... ....................|..------------..|--+-----+-----+--|.................... ....................|..|..........|..|.................|.................... ....................|..|..........|..|+---+---+-----+--|.................... ..................---..|..........|......|...|...|.....|.................... ..................+....|..........+......|...|...|.....|.................... ..................+....|..........+......|...|...|.....|.................... ..................---..|..........|......|...|...|.....|.................... ....................|..|..........|..|+-----+---+---+--|.................... ....................|..|..........|..|.................|.................... ....................|..------------..|--+-----+-----+--|.................... ....................|................|.....|.....|.....|.................... ....................------------------------------------.................... ............................................................................ ............................................................................ ............................................................................ ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(24,06,33,13),lit,"temple" REPLACE_TERRAIN:(0,0,10,19),'.','T',10% REPLACE_TERRAIN:(65,0,75,19),'.','T',10% # Portal arrival point TERRAIN:(05,04),'.' BRANCH:(05,04,05,04),(0,0,0,0) # Stairs STAIR:(52,09),down # Doors DOOR:locked,(18,09) DOOR:locked,(18,10) DOOR:closed,(34,09) DOOR:closed,(34,10) DOOR:closed,(40,05) DOOR:closed,(46,05) DOOR:closed,(52,05) DOOR:locked,(38,07) DOOR:closed,(42,07) DOOR:closed,(46,07) DOOR:closed,(52,07) DOOR:locked,(38,12) DOOR:closed,(44,12) DOOR:closed,(48,12) DOOR:closed,(52,12) DOOR:closed,(40,14) DOOR:closed,(46,14) DOOR:closed,(52,14) # Unattended Altar - unaligned due to conflict - player must align it. ALTAR:(28,09),noalign,altar # The Grand Master MONSTER:('@',"Grand Master"),(28,10) # No treasure chest! # guards for the audience chamber MONSTER:('@',"abbot"),(32,07) MONSTER:('@',"abbot"),(32,08) MONSTER:('@',"abbot"),(32,11) MONSTER:('@',"abbot"),(32,12) MONSTER:('@',"abbot"),(33,07) MONSTER:('@',"abbot"),(33,08) MONSTER:('@',"abbot"),(33,11) MONSTER:('@',"abbot"),(33,12) # Non diggable walls NON_DIGGABLE:(18,03,55,16) # Random traps TRAP:"dart",(20,09) TRAP:"dart",(20,10) TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: ('E',"earth elemental"),(37,01) MONSTER: ('E',"earth elemental"),(37,18) MONSTER: ('E',"earth elemental"),(03,03) MONSTER: ('E',"earth elemental"),(65,04) MONSTER: ('E',"earth elemental"),(12,11) MONSTER: ('E',"earth elemental"),(60,12) MONSTER: ('E',"earth elemental"),(14,08) MONSTER: ('E',"earth elemental"),(55,00) MONSTER: ('X',"xorn"),(18,18) MONSTER: ('X',"xorn"),(59,10) MONSTER: ('X',"xorn"),(13,09) MONSTER: ('X',"xorn"),(01,17) # # The "locate" level for the quest. # # Here you have to locate the Monastery of the Earth-Lord to # go further towards your assigned quest. # MAZE: "Mon-loca",' ' GEOMETRY:center,center # 1 2 3 4 5 6 7 #123456789012345678901234567890123456789012345678901234567890123456789012345 MAP ---------------------------------------------------- -------- ---.................................................- --.....| ---...--------........------........................--- ---...| ---.....- --.......- ----..................---- --.-- ---.....---- --------- --..................-- --..| ---...----- ----.----.....----.....--- --..|| ----..---- -----..--- |...--- |.......--- --...| |...--- ----....--- |.--- |.........-- --...|| |...- ----.....--- ---- |..........---....| |...---- ----......--- | |...|.......-....|| |......----- ---.........- | -----...|............| |..........----- ----...........--- -------......||...........|| |..............-----................--- |............|||..........| |-S----...............................--- |...........|| |.........|| |.....|..............------.............-----..........|| ||........| |.....|.............-- ---.........................|| |.......|| |.....|.............- ---.....................--| ||......| |---S--------.......---- --.................---- |.....|| |...........|..........--------..............----- ||....| |...........|............................----- |....| ------------------------------------------ ------ ENDMAP # Random Monsters $monster = monster: { 'E', 'X' } SHUFFLE: $monster # Dungeon Description REGION:(00,00,75,20),lit,"ordinary" # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random # # The "goal" level for the quest. # # Here you meet Master Kaen, your nemesis monster. You have to # defeat Master Kaen in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Mon-goal", ' ' INIT_MAP: mines, 'L' , '.' , false , false , unlit , false GEOMETRY:center,center MAP xxxxxx..xxxxxx...xxxxxxxxx xxxx......xx......xxxxxxxx xx.xx.............xxxxxxxx x....................xxxxx ......................xxxx ......................xxxx xx........................ xxx......................x xxx................xxxxxxx xxxx.....x.xx.......xxxxxx xxxxx...xxxxxx....xxxxxxxx ENDMAP # Dungeon Description $place = { (14,04),(13,07) } SHUFFLE: $place REGION:(00,00,25,10),unlit,"ordinary" # Stairs STAIR:(20,05),up # Objects OBJECT:('(',"lenses"),$place[0],blessed,0,name:"The Eyes of the Overworld" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"Master Kaen"),$place[0] ALTAR:$place[0],noalign,altar MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('E',"earth elemental"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random MONSTER: ('X',"xorn"),random # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "fila" is the upper filler, between the # start and locate levels, and "filb" the lower between the locate # and goal levels. # LEVEL: "Mon-fila" # Random Monsters $monster = monster: { 'E', 'X' } SHUFFLE: $monster # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: 'E', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: 'E', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: ('X', "xorn"), random MONSTER: ('E', "earth elemental"), random } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random MONSTER: 'E', random, hostile MONSTER: ('E', "earth elemental"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: 'X', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random MONSTER: ('E', "earth elemental"), random } RANDOM_CORRIDORS LEVEL: "Mon-filb" # Random Monsters $monster = monster: { 'E', 'X' } SHUFFLE: $monster # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: 'X', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: 'X', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: 'E', random, hostile } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random MONSTER: 'E', random, hostile MONSTER: ('E', "earth elemental"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: 'X', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random MONSTER: ('E', "earth elemental"), random } RANDOM_CORRIDORS NetHack-3.6.7/dat/Priest.des000066400000000000000000000237011437325207100155660ustar00rootroot00000000000000# NetHack 3.6 Priest.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991-2 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, High Priest # and receive your quest assignment. # MAZE: "Pri-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ............................................................................ ............................................................................ ............................................................................ ....................------------------------------------.................... ....................|................|.....|.....|.....|.................... ....................|..------------..|--+-----+-----+--|.................... ....................|..|..........|..|.................|.................... ....................|..|..........|..|+---+---+-----+--|.................... ..................---..|..........|......|...|...|.....|.................... ..................+....|..........+......|...|...|.....|.................... ..................+....|..........+......|...|...|.....|.................... ..................---..|..........|......|...|...|.....|.................... ....................|..|..........|..|+-----+---+---+--|.................... ....................|..|..........|..|.................|.................... ....................|..------------..|--+-----+-----+--|.................... ....................|................|.....|.....|.....|.................... ....................------------------------------------.................... ............................................................................ ............................................................................ ............................................................................ ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(24,06,33,13),lit,"temple" REPLACE_TERRAIN:(0,0,10,19),'.','T',10% REPLACE_TERRAIN:(65,0,75,19),'.','T',10% TERRAIN:(05,04),'.' # Portal arrival point BRANCH:(05,04,05,04),(0,0,0,0) # Stairs STAIR:(52,09),down # Doors DOOR:locked,(18,09) DOOR:locked,(18,10) DOOR:closed,(34,09) DOOR:closed,(34,10) DOOR:closed,(40,05) DOOR:closed,(46,05) DOOR:closed,(52,05) DOOR:locked,(38,07) DOOR:closed,(42,07) DOOR:closed,(46,07) DOOR:closed,(52,07) DOOR:locked,(38,12) DOOR:closed,(44,12) DOOR:closed,(48,12) DOOR:closed,(52,12) DOOR:closed,(40,14) DOOR:closed,(46,14) DOOR:closed,(52,14) # Unattended Altar - unaligned due to conflict - player must align it. ALTAR:(28,09),noalign,altar # High Priest MONSTER:('@',"Arch Priest"),(28,10) # The treasure of High Priest OBJECT:('(',"chest"),(27,10) # knight guards for the audience chamber MONSTER:('@',"acolyte"),(32,07) MONSTER:('@',"acolyte"),(32,08) MONSTER:('@',"acolyte"),(32,11) MONSTER:('@',"acolyte"),(32,12) MONSTER:('@',"acolyte"),(33,07) MONSTER:('@',"acolyte"),(33,08) MONSTER:('@',"acolyte"),(33,11) MONSTER:('@',"acolyte"),(33,12) # Non diggable walls NON_DIGGABLE:(18,03,55,16) # Random traps TRAP:"dart",(20,09) TRAP:"dart",(20,10) TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: ('Z',"human zombie"),(37,01) MONSTER: ('Z',"human zombie"),(37,18) MONSTER: ('Z',"human zombie"),(03,03) MONSTER: ('Z',"human zombie"),(65,04) MONSTER: ('Z',"human zombie"),(12,11) MONSTER: ('Z',"human zombie"),(60,12) MONSTER: ('Z',"human zombie"),(14,08) MONSTER: ('Z',"human zombie"),(55,00) MONSTER: ('Z',"human zombie"),(18,18) MONSTER: ('Z',"human zombie"),(59,10) MONSTER: ('Z',"human zombie"),(13,09) MONSTER: ('Z',"human zombie"),(01,17) # # The "locate" level for the quest. # # Here you have to locate the Temple of Nalzok to go # further towards your assigned quest. # MAZE: "Pri-loca",' ' FLAGS: hardfloor # This is a kludge to init the level as a lit field. INIT_MAP: mines, '.' , '.' , false , false , lit , false GEOMETRY:center,center MAP ........................................ ........................................ ..........----------+----------......... ..........|........|.|........|......... ..........|........|.|........|......... ..........|----.----.----.----|......... ..........+...................+......... ..........+...................+......... ..........|----.----.----.----|......... ..........|........|.|........|......... ..........|........|.|........|......... ..........----------+----------......... ........................................ ........................................ ENDMAP # Dungeon Description REGION:(00,00,09,13),unlit,"morgue" REGION:(09,00,30,01),unlit,"morgue" REGION:(09,12,30,13),unlit,"morgue" REGION:(31,00,39,13),unlit,"morgue" REGION:(11,03,29,10),lit,"temple",filled,irregular # The altar inside the temple ALTAR:(20,07),noalign,shrine MONSTER:('@',"aligned priest"),(20,07),noalign,hostile # Doors DOOR:locked,(10,06) DOOR:locked,(10,07) DOOR:locked,(20,02) DOOR:locked,(20,11) DOOR:locked,(30,06) DOOR:locked,(30,07) # Stairs # Note: The up stairs are *intentionally* off of the map. STAIR:(43,05),up STAIR:(20,06),down # Non diggable walls NON_DIGGABLE:(10,02,30,13) # Objects (inside the antechambers). OBJECT:random,(14,03) OBJECT:random,(15,03) OBJECT:random,(16,03) OBJECT:random,(14,10) OBJECT:random,(15,10) OBJECT:random,(16,10) OBJECT:random,(17,10) OBJECT:random,(24,03) OBJECT:random,(25,03) OBJECT:random,(26,03) OBJECT:random,(27,03) OBJECT:random,(24,10) OBJECT:random,(25,10) OBJECT:random,(26,10) OBJECT:random,(27,10) # Random traps TRAP:random,(15,04) TRAP:random,(25,04) TRAP:random,(15,09) TRAP:random,(25,09) TRAP:random,random TRAP:random,random # No random monsters - the morgue generation will put them in. # # The "goal" level for the quest. # # Here you meet Nalzok your nemesis monster. You have to # defeat Nalzok in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Pri-goal", ' ' INIT_MAP: mines, 'L' , '.' , false , false , unlit , false GEOMETRY:center,center MAP xxxxxx..xxxxxx...xxxxxxxxx xxxx......xx......xxxxxxxx xx.xx.............xxxxxxxx x....................xxxxx ......................xxxx ......................xxxx xx........................ xxx......................x xxx................xxxxxxx xxxx.....x.xx.......xxxxxx xxxxx...xxxxxx....xxxxxxxx ENDMAP # Dungeon Description $place = { (14,04),(13,07) } SHUFFLE: $place REGION:(00,00,25,10),unlit,"ordinary" # Stairs STAIR:(20,05),up # Objects OBJECT:('[',"helm of brilliance"),$place[0],blessed,0,name:"The Mitre of Holiness" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('&',"Nalzok"),$place[0] MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:'Z',random MONSTER:'Z',random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:('W',"wraith"),random MONSTER:'W',random # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # LEVEL: "Pri-fila" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: ('Z', "human zombie"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: ('Z', "human zombie"), random } ROOM: "morgue" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: ('W', "wraith"), random } ROOM: "morgue" , random, random, random, random { OBJECT: random, random TRAP: random, random } RANDOM_CORRIDORS LEVEL: "Pri-filb" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: ('Z', "human zombie"), random MONSTER: ('W', "wraith"), random } ROOM: "morgue" , random, random, random, random { OBJECT: random, random OBJECT: random, random OBJECT: random,random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: ('Z', "human zombie"), random MONSTER: ('W', "wraith"), random } ROOM: "morgue" , random, random, random, random { STAIR: random, down OBJECT: random, random OBJECT: random, random TRAP: random, random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: ('Z', "human zombie"), random MONSTER: ('W', "wraith"), random } ROOM: "morgue" , random, random, random, random { OBJECT: random, random TRAP: random, random } RANDOM_CORRIDORS NetHack-3.6.7/dat/Ranger.des000066400000000000000000000276571437325207100155540ustar00rootroot00000000000000# NetHack 3.6 Ranger.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Orion, # and receive your quest assignment. # MAZE: "Ran-strt",'.' FLAGS: noteleport,hardfloor,arboreal INIT_MAP:mines,'.','.',true,true,lit,false REPLACE_TERRAIN:(0,0,76,19),'.', 'T', 5% GEOMETRY:left,center #1234567890123456789012345678901234567890123456789012345678901234567890 MAP xx ................................... x .. .. .. ...............F............... .. . .. .F. .. . . .. .............F............. .. . . . .. .. . . . . .. ....................... .. ... . . . .. .. . ... . .. .|..................... ...... FFF . . ..S.................. ... . .. .|................. .... ... . . . .. .. . . . . . .. ....................... .. . . . . .. .. . . . .. .............F............. .. . . .. .F. .. . .. ...............F............... .. .. .. ................................... x xx ENDMAP # Dungeon Description REGION:(00,00,40,20),lit,"ordinary" # Stairs STAIR:(10,10),down # Portal arrival point; just about anywhere on the right hand side of the map BRANCH:levregion(51,2,77,18),(0,0,40,20) # Orion MONSTER:('@',"Orion"),(20,10) # The treasure of Orion OBJECT:('(',"chest"),(20,10) # Guards for the audience chamber MONSTER:('@',"hunter"),(19,09) MONSTER:('@',"hunter"),(20,09) MONSTER:('@',"hunter"),(21,09) MONSTER:('@',"hunter"),(19,10) MONSTER:('@',"hunter"),(21,10) MONSTER:('@',"hunter"),(19,11) MONSTER:('@',"hunter"),(20,11) MONSTER:('@',"hunter"),(21,11) # Non diggable walls NON_DIGGABLE:(00,00,40,20) # Traps TRAP:"arrow",(30,09) TRAP:"arrow",(30,10) TRAP:"pit",(40,09) TRAP:"spiked pit",random TRAP:"bear",random TRAP:"bear",random # Monsters on siege duty. MONSTER: ('H',"minotaur"),(33,09),hostile,asleep MONSTER: ('C',"forest centaur"),(19,03),hostile MONSTER: ('C',"forest centaur"),(19,04),hostile MONSTER: ('C',"forest centaur"),(19,05),hostile MONSTER: ('C',"forest centaur"),(21,03),hostile MONSTER: ('C',"forest centaur"),(21,04),hostile MONSTER: ('C',"forest centaur"),(21,05),hostile MONSTER: ('C',"forest centaur"),(01,09),hostile MONSTER: ('C',"forest centaur"),(02,09),hostile MONSTER: ('C',"forest centaur"),(03,09),hostile MONSTER: ('C',"forest centaur"),(01,11),hostile MONSTER: ('C',"forest centaur"),(02,11),hostile MONSTER: ('C',"forest centaur"),(03,11),hostile MONSTER: ('C',"forest centaur"),(19,15),hostile MONSTER: ('C',"forest centaur"),(19,16),hostile MONSTER: ('C',"forest centaur"),(19,17),hostile MONSTER: ('C',"forest centaur"),(21,15),hostile MONSTER: ('C',"forest centaur"),(21,16),hostile MONSTER: ('C',"forest centaur"),(21,17),hostile MONSTER: ('C',"plains centaur"),random,hostile MONSTER: ('C',"plains centaur"),random,hostile MONSTER: ('C',"plains centaur"),random,hostile MONSTER: ('C',"plains centaur"),random,hostile MONSTER: ('C',"plains centaur"),random,hostile MONSTER: ('C',"plains centaur"),random,hostile MONSTER: ('s',"scorpion"),random,hostile MONSTER: ('s',"scorpion"),random,hostile # # The "locate" level for the quest. # # Here you have to infiltrate the Cave of the Wumpus to go # further towards your assigned quest. # MAZE: "Ran-loca",' ' FLAGS: hardfloor GEOMETRY:center,center #1234567890123456789012345678901234567890123456789012345678901234567890 MAP ....... ......... ....... ................... ................... .... ....... ....... .... ... ..... . ..... . ..... ... . .......... ..... ........... ..... .......... . . .. ..... .......... ..... .......... ..... .. . . . . ..... . ..... . . . . . ..... ............. ..... . . . . ................ ....... ................ . . . . ..... ....... ..... . . . . . ...... ...... . . . . . ........... ......... ........... . . . . .......... .......... . . . .. ..... . ..... . ..... .. . . .......... ..... ........... ..... .......... . . ..... .......... ..... .......... ..... . . . ..... . ..... . . ... ....... ....... ....... ... .............. ............. .............. ....... ....... ....... ....... ....... ENDMAP # Dungeon Description REGION:(00,00,54,19),lit,"ordinary" # Stairs STAIR:(25,05),up STAIR:(27,18),down # Non diggable walls NON_DIGGABLE:(00,00,54,19) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:"spiked pit",random TRAP:"spiked pit",random TRAP:"teleport",random TRAP:"teleport",random TRAP:"arrow",random TRAP:"arrow",random # Random monsters. MONSTER:('q',"wumpus"),(27,18),hostile,asleep MONSTER:('B',"giant bat"),random,hostile MONSTER:('B',"giant bat"),random,hostile MONSTER:('B',"giant bat"),random,hostile MONSTER:('B',"giant bat"),random,hostile MONSTER:('C',"forest centaur"),random,hostile MONSTER:('C',"forest centaur"),random,hostile MONSTER:('C',"forest centaur"),random,hostile MONSTER:('C',"forest centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('s',"scorpion"),random,hostile MONSTER:('s',"scorpion"),random,hostile MONSTER:('s',"scorpion"),random,hostile MONSTER:('s',"scorpion"),random,hostile MONSTER:'s',random,hostile MONSTER:'s',random,hostile # # The "goal" level for the quest. # # Here you meet Scorpius, your nemesis monster. You have to # defeat Scorpius in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Ran-goal", ' ' GEOMETRY:center,center MAP ... ... .......................................................................... ... + ... . ............ ....... . ....... . . ............................. . ........ .........S.. . . ............ . ...... . . . ....... .. . . ......... . .... + . ... . .. . . S . ......... .S. .S............... . . ... . ... . ......... . . . ........ .....S.+.......+....\....+........+. . . ... ... S ......... .. ..... . . .. ......... .. ...... . . ....... ... + .... .... .......... . . .............. .. . ...... .. ............. . . ............. . .......... ...... . ... + ... .......................................................................... ... ... ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" # Stairs STAIR:(19,10),up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:(')',"bow"),(37,10),blessed,0,name:"The Longbow of Diana" OBJECT:('(',"chest"),(37,10) OBJECT:random,(36,09) OBJECT:random,(36,10) OBJECT:random,(36,11) OBJECT:random,(37,09) OBJECT:random,(37,11) OBJECT:random,(38,09) OBJECT:random,(38,10) OBJECT:random,(38,11) OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # doors DOOR:locked,(12,08) DOOR:closed,(22,10) DOOR:locked,(24,10) DOOR:closed,(25,11) DOOR:closed,(32,10) DOOR:closed,(37,03) DOOR:closed,(37,07) DOOR:closed,(37,13) DOOR:closed,(37,16) DOOR:closed,(42,10) DOOR:locked,(46,08) DOOR:closed,(51,10) DOOR:locked,(53,08) DOOR:closed,(65,05) # Random monsters. MONSTER:('s',"Scorpius"),(37,10),hostile MONSTER:('C',"forest centaur"),(36,09),hostile MONSTER:('C',"forest centaur"),(36,10),hostile MONSTER:('C',"forest centaur"),(36,11),hostile MONSTER:('C',"forest centaur"),(37,09),hostile MONSTER:('C',"forest centaur"),(37,11),hostile MONSTER:('C',"forest centaur"),(38,09),hostile MONSTER:('C',"mountain centaur"),(38,10),hostile MONSTER:('C',"mountain centaur"),(38,11),hostile MONSTER:('C',"mountain centaur"),(02,02),hostile MONSTER:('C',"mountain centaur"),(71,02),hostile MONSTER:('C',"mountain centaur"),(02,16),hostile MONSTER:('C',"mountain centaur"),(71,16),hostile MONSTER:('C',"forest centaur"),random,hostile MONSTER:('C',"forest centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:('C',"mountain centaur"),random,hostile MONSTER:'C',random,hostile MONSTER:'C',random,hostile MONSTER:('s',"scorpion"),(03,02),hostile MONSTER:('s',"scorpion"),(72,02),hostile MONSTER:('s',"scorpion"),(03,17),hostile MONSTER:('s',"scorpion"),(72,17),hostile MONSTER:('s',"scorpion"),(41,10),hostile MONSTER:('s',"scorpion"),(33,09),hostile MONSTER:('s',"scorpion"),random,hostile MONSTER:('s',"scorpion"),random,hostile MONSTER:'s',random,hostile WALLIFY # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "fila" is the upper filler, between the # start and locate levels, and "filb" the lower between the locate # and goal levels. # MAZE: "Ran-fila" , ' ' INIT_MAP: mines, '.' , 'T', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('C', "mountain centaur"), random, hostile MONSTER: ('C', "mountain centaur"), random, hostile MONSTER: ('C', "forest centaur"), random, hostile MONSTER: ('C', "forest centaur"), random, hostile MONSTER: ('C', "forest centaur"), random, hostile MONSTER: 'C', random, hostile MONSTER: ('s', "scorpion"), random, hostile MAZE: "Ran-filb" , ' ' INIT_MAP: mines, '.' , ' ', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('C', "mountain centaur"), random, hostile MONSTER: ('C', "mountain centaur"), random, hostile MONSTER: ('C', "mountain centaur"), random, hostile MONSTER: ('C', "mountain centaur"), random, hostile MONSTER: 'C', random, hostile MONSTER: ('s', "scorpion"), random, hostile MONSTER: ('s', "scorpion"), random, hostile NetHack-3.6.7/dat/Rogue.des000066400000000000000000000401121437325207100153740ustar00rootroot00000000000000# NetHack 3.6 Rogue.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ # Copyright (c) 1992 by Dean Luick # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Master of Thieves # and receive your quest assignment. # MAZE: "Rog-strt",' ' FLAGS: noteleport, hardfloor, nommap GEOMETRY:center,center # 1 2 3 4 5 6 7 #123456789012345678901234567890123456789012345678901234567890123456789012345 MAP ---------------------------------.------------------------------------------ |.....|.||..........|....|......|.|.........|.......+............---.......| |.....|..+..........+....---....S.|...-S-----.-----.|............+.+.......| |.....+.||........---......|....|.|...|.....|.|...|.---.....------.--------| |-----|.-------|..|........------.-----.....|.--..|...-------..............| |.....|........------+------..........+.....|..--S---.........------.-----.. |.....|.------...............-----.}}.--------.|....-------.---....|.+...--| |..-+--.|....|-----.--------.|...|.....+.....|.|....|.....+.+......|.--....| |..|....|....|....+.|......|.|...-----.|.....|.--...|.....|.|......|..|....| |..|.-----S----...|.+....-----...|...|.----..|..|.---....--.---S-----.|----| |..|.|........|...------.|.S.....|...|....-----.+.|......|..|.......|.|....| |---.-------..|...|....|.|.|.....|...----.|...|.|---.....|.|-.......|.---..| ...........|..S...|....---.----S----..|...|...+.|..-------.---+-....|...--+| |---------.---------...|......|....S..|.---...|.|..|...........----.---....| |........|.........|...+.------....|---.---...|.--+-.----.----....|.+...--+| |........|.---+---.|----.--........|......-----......|..|..|.--+-.|.-S-.|..| |........|.|.....|........----------.----.......---.--..|-.|....|.-----.|..| |----....+.|.....----+---............|..|--------.+.|...SS.|....|.......|..| |...--+-----.....|......|.------------............---...||.------+--+----..| |..........S.....|......|.|..........S............|.....||...|.....|....|..| -------------------------.-------------------------------------------------- ENDMAP # Dungeon Description #REGION:(00,00,75,20),lit,"ordinary" $streets = selection: floodfill(0,12) # The down stairs is at one of the 4 "exits". The others are mimics, # mimicing stairwells. $place = { (33,0), (0,12), (25,20), (75,05) } SHUFFLE: $place STAIR:$place[0],down MONSTER:('m',"giant mimic"), $place[1], m_feature "staircase down" MONSTER:('m',"large mimic"), $place[2], m_feature "staircase down" MONSTER:('m',"small mimic"), $place[3], m_feature "staircase down" # Portal arrival point BRANCH:(19,09,19,09),(0,0,0,0) # Doors (secret) #DOOR:locked|closed|open,(xx,yy) DOOR: locked, (32, 2) DOOR: locked, (63, 9) DOOR: locked, (27,10) DOOR: locked, (31,12) DOOR: locked, (35,13) DOOR: locked, (69,15) DOOR: locked, (56,17) DOOR: locked, (57,17) DOOR: locked, (11,19) DOOR: locked, (37,19) DOOR: locked, (39, 2) DOOR: locked, (49, 5) DOOR: locked, (10, 9) DOOR: locked, (14,12) # Doors (regular) DOOR: closed, (52, 1) DOOR: closed, ( 9, 2) DOOR: closed, (20, 2) DOOR: closed, (65, 2) DOOR: closed, (67, 2) DOOR: closed, ( 6, 3) DOOR: closed, (21, 5) DOOR: closed, (38, 5) DOOR: closed, (69, 6) DOOR: closed, ( 4, 7) DOOR: closed, (39, 7) DOOR: closed, (58, 7) DOOR: closed, (60, 7) DOOR: closed, (18, 8) DOOR: closed, (20, 9) DOOR: closed, (48,10) DOOR: closed, (46,12) DOOR: closed, (62,12) DOOR: closed, (74,12) DOOR: closed, (23,14) DOOR: closed, (23,14) DOOR: closed, (50,14) DOOR: closed, (68,14) DOOR: closed, (74,14) DOOR: closed, (14,15) DOOR: closed, (63,15) DOOR: closed, ( 9,17) DOOR: closed, (21,17) DOOR: closed, (50,17) DOOR: closed, ( 6,18) DOOR: closed, (65,18) DOOR: closed, (68,18) # Master of Thieves MONSTER:('@',"Master of Thieves"),(36,11) # The treasure of Master of Thieves OBJECT:('(',"chest"),(36,11) # thug guards, room #1 MONSTER:('@',"thug"),(28,10) MONSTER:('@',"thug"),(29,11) MONSTER:('@',"thug"),(30,09) MONSTER:('@',"thug"),(31,07) # thug guards, room #2 MONSTER:('@',"thug"),(31,13) MONSTER:('@',"thug"),(33,14) MONSTER:('@',"thug"),(30,15) #thug guards, room #3 MONSTER:('@',"thug"),(35,09) MONSTER:('@',"thug"),(36,13) # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # # Monsters to get in the way. # # West exit MONSTER: ('l',"leprechaun"),(01,12),hostile MONSTER: ('n',"water nymph"),(02,12),hostile # North exit MONSTER: ('n',"water nymph"),(33,01),hostile MONSTER: ('l',"leprechaun"),(33,02),hostile # East exit MONSTER: ('n',"water nymph"),(74,05),hostile MONSTER: ('l',"leprechaun"),(74,04),hostile # South exit MONSTER: ('l',"leprechaun"),(25,19),hostile MONSTER: ('n',"water nymph"),(25,18),hostile # Wandering the streets. LOOP [ 4 + 1d3 ] { MONSTER: ('n',"water nymph"),rndcoord($streets),hostile MONSTER: ('l',"leprechaun"),rndcoord($streets),hostile } LOOP [ 7 + 1d3 ] { MONSTER: (':',"chameleon"),rndcoord($streets),hostile } # # The "locate" level for the quest. # # Here you have to find the entrance to the Assassins' Guild to go # further towards your assigned quest. # MAZE: "Rog-loca",' ' GEOMETRY:center,center # 1 2 3 4 5 6 7 #123456789012345678901234567890123456789012345678901234567890123456789012345 MAP ---------------------------------------------------- -------- ---.................................................- --.....| ---...--------........-------.......................--- ---...| ---.....- ---......- ---..................---- --.-- ---.....---- -------- --..................-- --..| ---...----- ----.----.....----.....--- --..|| ----..---- -----..--- |...--- |.......--- --...| |...--- ----....--- |.--- |.........-- --...|| |...- ----.....--- ---- |..........---....| |...---- ----......--- | |...|.......-....|| |......----- ---.........- | -----...|............| |..........----- ----...........--- -------......||...........|| |..............-----................--- |............|||..........| |------...............................--- |...........|| |.........|| |.....|..............------.............-----..........|| ||........| |.....|.............-- ---.........................|| |.......|| |.....|.............- ---.....................--| ||......| |-S----------.......---- --.................---- |.....|| |...........|..........--------..............----- ||....| |...........|............................----- |....| ------------------------------------------ ------ ENDMAP # Dungeon Description REGION:(00,00,75,20),lit,"ordinary" # Doors #DOOR:locked|closed|open,(xx,yy) # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Objects OBJECT:('?',"teleportation"),(11,18),cursed,0 OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:'l',random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:'N',random,hostile MONSTER:'N',random,hostile MONSTER:'N',random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile # # The "goal" level for the quest. Teleportation and digging are # disallowed. # # You have to reach The Master Assassin via some means other than # simple searching or digging since there is no path between your # arrival point and his location. # MAZE: "Rog-goal", ' ' FLAGS: noteleport GEOMETRY:center,center # 1 2 3 4 5 6 7 #123456789012345678901234567890123456789012345678901234567890123456789012345 MAP ----- -------.......................................|-----------------| |...| -----.....|.......................................|.................| |...----...|.....|.......................................|....---------....| |.---......---..--.................................------------.......|....| |...............|..................................|..|...|...----........-| |.....-----....--.................................|-..--..-|.....----S----| |--S---...|....|.................................|-........-|....|........| |.........---------.............................|-....}}....-|...|...|....| |....|.....S......|............................|-.....}}.....-|..--.------| |-----.....--.....|...........................|-...}}}}}}}}...-|....|.....-- |...........--....------S-----...............|-....}}}}}}}}....-|..........| |............--........|...| |..............--.....}}.}}........----------S- |.............|........|...| |..............|......}}}}}}}}......|...|.....| |S-.---.---.---.---.---|...| ------------...--........}}.}}.....--..---....| |.---.---.---.---.-S-..----- |....|.....|....|-....}}}}}}}}....---..S.|--..| |...|.......|..........|...---....---...S.....|-...}}}}}}}}...-|.S..|...|..| |...|..|....|..........|............|..--..----|-.....}}.....-|..----...-S-- |...|---....----.......|----- ......|...---| |-....}}....-|...|..--.--..| -----.....---.....--.---....--...--------..| |-........-|....|.........| |.............|..........|.............S... |S-------|.....|..-----..| ---------------------------------------- ...... ---------- ---- ENDMAP # Dungeon Description REGION:(00,00,75,20),lit,"ordinary" # Stairs STAIR:levregion(01,00,15,20),(01,18,04,20),up # Doors # Non diggable walls NON_DIGGABLE:(00,00,75,20) # One trap to keep the gnomes at bay. TRAP:"spiked pit",(37,07) # Objects OBJECT:('(',"skeleton key"),(38,10),blessed,0,name:"The Master Key of Thievery" OBJECT:('%',"tin"),(26,12),montype:"chameleon" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"Master Assassin"),(38,10),hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:('l',"leprechaun"),random,hostile MONSTER:'l',random,hostile MONSTER:'l',random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:('N',"guardian naga"),random,hostile MONSTER:'N',random,hostile MONSTER:'N',random,hostile MONSTER:'N',random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER: (':',"chameleon"),random,hostile MONSTER:(';',"shark"),(51,14),hostile MONSTER:(';',"shark"),(53,09),hostile MONSTER:(';',"shark"),(55,15),hostile MONSTER:(';',"shark"),(58,10),hostile # # The "fill" level for the quest. # # This level is used to fill out any levels not occupied by specific # levels as defined above. # LEVEL: "Rog-fila" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: ('l', "leprechaun"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: ('l', "leprechaun"), random, hostile MONSTER: ('N', "guardian naga"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random TRAP: random, random OBJECT: random,random MONSTER: ('n', "water nymph"), random, hostile } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random TRAP: random, random MONSTER: 'l', random, hostile MONSTER: ('N', "guardian naga"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random TRAP: random, random MONSTER: ('l', "leprechaun"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random TRAP: random, random MONSTER: ('l', "leprechaun"), random, hostile MONSTER: ('n', "water nymph"), random, hostile } RANDOM_CORRIDORS # # currently a & b are the same. # LEVEL: "Rog-filb" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: ('l', "leprechaun"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: ('l', "leprechaun"), random, hostile MONSTER: ('N', "guardian naga"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random TRAP: random, random OBJECT: random,random MONSTER: ('n', "water nymph"), random, hostile } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random TRAP: random, random MONSTER: 'l', random, hostile MONSTER: ('N', "guardian naga"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random TRAP: random, random MONSTER: ('l', "leprechaun"), random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random TRAP: random, random MONSTER: ('l', "leprechaun"), random, hostile MONSTER: ('n', "water nymph"), random, hostile } RANDOM_CORRIDORS NetHack-3.6.7/dat/Samurai.des000066400000000000000000000324211437325207100157200ustar00rootroot00000000000000# NetHack 3.6 Samurai.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991-92 by M. Stephenson, P. Winner # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Lord Sato # and receive your quest assignment. # MAZE: "Sam-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ..............................................................PP............ ...............................................................PP........... ..........---------------------------------------------------...PPP......... ..........|......|.........|...|..............|...|.........|....PPPPP...... ......... |......|.........S...|..............|...S.........|.....PPPP...... ..........|......|.........|---|..............|---|.........|.....PPP....... ..........+......|.........+...-------++-------...+.........|......PP....... ..........+......|.........|......................|.........|......PP....... ......... |......---------------------++--------------------|........PP..... ..........|.................................................|.........PP.... ..........|.................................................|...........PP.. ..........----------------------------------------...-------|............PP. ..........................................|.................|.............PP .............. ................. .........|.................|..............P ............. } ............... } ........|.................|............... .............. ........PP....... .........|.................|............... .....................PPP..................|.................|............... ......................PP..................-------------------............... ............................................................................ ............................................................................ ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(18,03,26,07),lit,"throne",unfilled # Portal arrival zone BRANCH:(62,12,70,17),(0,0,0,0) # Stairs STAIR:(29,04),down # Doors DOOR:locked,(10,06) DOOR:locked,(10,07) DOOR:closed,(27,04) DOOR:closed,(27,06) DOOR:closed,(38,06) DOOR:locked,(38,08) DOOR:closed,(39,06) DOOR:locked,(39,08) DOOR:closed,(50,04) DOOR:closed,(50,06) # Lord Sato MONSTER:('@',"Lord Sato"),(20,04) # The treasure of Lord Sato OBJECT:('(',"chest"),(20,04) # roshi guards for the audience chamber MONSTER:('@',"roshi"),(18,04) MONSTER:('@',"roshi"),(18,05) MONSTER:('@',"roshi"),(18,06) MONSTER:('@',"roshi"),(18,07) MONSTER:('@',"roshi"),(26,04) MONSTER:('@',"roshi"),(26,05) MONSTER:('@',"roshi"),(26,06) MONSTER:('@',"roshi"),(26,07) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: ('@',"ninja"),(64,00),hostile MONSTER: ('d',"wolf"),(65,01) MONSTER: ('@',"ninja"),(67,02),hostile MONSTER: ('@',"ninja"),(69,05),hostile MONSTER: ('@',"ninja"),(69,06),hostile MONSTER: ('d',"wolf"),(69,07) MONSTER: ('@',"ninja"),(70,06),hostile MONSTER: ('@',"ninja"),(70,07),hostile MONSTER: ('@',"ninja"),(72,01),hostile MONSTER: ('d',"wolf"),(75,09) MONSTER: ('@',"ninja"),(73,05),hostile MONSTER: ('@',"ninja"),(68,02),hostile MONSTER:('E',"stalker"),random # # The "locate" level for the quest. # # Here you have to invade the Shogun's Castle to go # further towards your assigned quest. # MAZE: "Sam-loca",' ' FLAGS: hardfloor GEOMETRY:center,center MAP ............................................................................ ............................................................................ ........-----..................................................-----........ ........|...|..................................................|...|........ ........|...---..}..--+------------------------------+--..}..---...|........ ........|-|...|.....|...|....|....|....|....|....|.|...|.....|...|-|........ ..........|...-------...|....|....|....|....|....S.|...-------...|.......... ..........|-|.........------+----+-+-------+-+--------.........|-|.......... ............|..--------.|}........................}|.--------..|............ ............|..+........+..........................+........+..|............ ............|..+........+..........................+........+..|............ ............|..--------.|}........................}|.--------..|............ ..........|-|.........--------+-+-------+-+----+------.........|-|.......... ..........|...-------...|.S....|....|....|....|....|...-------...|.......... ........|-|...|.....|...|.|....|....|....|....|....|...|.....|...|-|........ ........|...---..}..--+------------------------------+--..}..---...|........ ........|...|..................................................|...|........ ........-----..................................................-----........ ............................................................................ ............................................................................ ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" # Doors DOOR:locked,(22,04) DOOR:locked,(22,15) DOOR:locked,(53,04) DOOR:locked,(53,15) DOOR:locked,(49,06) DOOR:locked,(26,13) DOOR:locked,(28,07) DOOR:locked,(30,12) DOOR:locked,(33,07) DOOR:locked,(32,12) DOOR:locked,(35,07) DOOR:locked,(40,12) DOOR:locked,(43,07) DOOR:locked,(42,12) DOOR:locked,(45,07) DOOR:locked,(47,12) DOOR:closed,(15,09) DOOR:closed,(15,10) DOOR:closed,(24,09) DOOR:closed,(24,10) DOOR:closed,(51,09) DOOR:closed,(51,10) DOOR:closed,(60,09) DOOR:closed,(60,10) # Stairs STAIR:(10,10),up STAIR:(25,14),down # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects OBJECT:'*',(25,05) OBJECT:'*',(26,05) OBJECT:'*',(27,05) OBJECT:'*',(28,05) OBJECT:'*',(25,06) OBJECT:'*',(26,06) OBJECT:'*',(27,06) OBJECT:'*',(28,06) # OBJECT:'[',(40,05) OBJECT:'[',(41,05) OBJECT:'[',(42,05) OBJECT:'[',(43,05) OBJECT:'[',(40,06) OBJECT:'[',(41,06) OBJECT:'[',(42,06) OBJECT:'[',(43,06) # OBJECT:')',(27,13) OBJECT:')',(28,13) OBJECT:')',(29,13) OBJECT:')',(30,13) OBJECT:')',(27,14) OBJECT:')',(28,14) OBJECT:')',(29,14) OBJECT:')',(30,14) # OBJECT:'(',(37,13) OBJECT:'(',(38,13) OBJECT:'(',(39,13) OBJECT:'(',(40,13) OBJECT:'(',(37,14) OBJECT:'(',(38,14) OBJECT:'(',(39,14) OBJECT:'(',(40,14) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"ninja"),(15,05),hostile MONSTER:('@',"ninja"),(16,05),hostile MONSTER:('d',"wolf"),(17,05) MONSTER:('d',"wolf"),(18,05) MONSTER:('@',"ninja"),(19,05),hostile MONSTER:('d',"wolf"),(15,14) MONSTER:('d',"wolf"),(16,14) MONSTER:('@',"ninja"),(17,14),hostile MONSTER:('@',"ninja"),(18,14),hostile MONSTER:('d',"wolf"),(56,05) MONSTER:('@',"ninja"),(57,05),hostile MONSTER:('d',"wolf"),(58,05) MONSTER:('d',"wolf"),(59,05) MONSTER:('@',"ninja"),(56,14),hostile MONSTER:('d',"wolf"),(57,14) MONSTER:('@',"ninja"),(58,14),hostile MONSTER:'d',(59,14) MONSTER:('d',"wolf"),(60,14) MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random # "guards" for the central courtyard. MONSTER:('@',"samurai"),(30,05),hostile MONSTER:('@',"samurai"),(31,05),hostile MONSTER:('@',"samurai"),(32,05),hostile MONSTER:('@',"samurai"),(32,14),hostile MONSTER:('@',"samurai"),(33,14),hostile MONSTER:('@',"samurai"),(34,14),hostile # # The "goal" level for the quest. # # Here you meet Takauji, your nemesis monster. You have to # defeat him in combat to gain the artifact you have been # assigned to retrieve. # MAZE: "Sam-goal", ' ' FLAGS: noteleport GEOMETRY:center,center MAP ....................... ......-------------------...... ......----.................----...... ....----.....-------------.....----.... ....--.....----...........----.....--.... ...||....---....---------....---....||... ...|....--....---.......---....--....|... ....|...||...---...--+--...---...||...|.... ....|...|....|....|-...-|....|....|...|.... ....|...|....|....+.....+....|....|...|.... ....|...|....|....|-...-|....|....|...|.... ....|...||...---...--+--...---...||...|.... ...|....--....---.......---....--....|... ...||....---....---------....---....||... ....--.....----...........----.....--.... ....----.....-------------.....----.... ......----.................----...... ......-------------------...... ....................... ENDMAP # Dungeon Description $place = { (02,11),(42,09) } SHUFFLE: $place REGION:(00,00,44,19),unlit,"ordinary" # Doors DOOR:closed,(19,10) DOOR:closed,(22,08) DOOR:closed,(22,12) DOOR:closed,(25,10) # Stairs STAIR:$place[0],up # Holes in the concentric ring walls $place = { (22,14),(30,10),(22, 6),(14,10) } SHUFFLE:$place TERRAIN:$place[0],'.' $place = { (22, 4),(35,10),(22,16),( 9,10) } SHUFFLE:$place TERRAIN:$place[0],'.' $place = { (22, 2),(22,18) } SHUFFLE:$place TERRAIN:$place[0],'.' # Non diggable walls NON_DIGGABLE:(00,00,44,19) # Objects OBJECT:(')',"tsurugi"),(22,10),blessed,0,name:"The Tsurugi of Muramasa" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # TRAP:"board",(22,09) TRAP:"board",(24,10) TRAP:"board",(22,11) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"Ashikaga Takauji"),(22,10) MONSTER:('@',"samurai"),random,hostile MONSTER:('@',"samurai"),random,hostile MONSTER:('@',"samurai"),random,hostile MONSTER:('@',"samurai"),random,hostile MONSTER:('@',"samurai"),random,hostile MONSTER:('@',"ninja"),random,hostile MONSTER:('@',"ninja"),random,hostile MONSTER:('@',"ninja"),random,hostile MONSTER:('@',"ninja"),random,hostile MONSTER:('@',"ninja"),random,hostile MONSTER:('d',"wolf"),random MONSTER:('d',"wolf"),random MONSTER:('d',"wolf"),random MONSTER:('d',"wolf"),random MONSTER:'d',random MONSTER:'d',random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random MONSTER:('E',"stalker"),random # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # MAZE: "Sam-fila", ' ' INIT_MAP: mines, '.' , 'P', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: 'd', random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('E', "stalker"), random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random MAZE: "Sam-filb", ' ' GEOMETRY:center,center MAP ------------- ------------- |...........| |...........| |...-----...|----------------------------------|...-----...| |...| |...|..................................|...| |...| |...-----..........................................-----...| |...........|--S----------------------------S--|...........| ----...--------.|..........................|.--------...---- |...|........+..........................+........|...| |...|........+..........................+........|...| ----...--------.|..........................|.--------...---- |...........|--S----------------------------S--|...........| |...-----..........................................-----...| |...| |...|..................................|...| |...| |...-----...|----------------------------------|...-----...| |...........| |...........| ------------- ------------- ENDMAP REGION:(00,00,59,15),unlit,"ordinary" # Doors DOOR:closed,(16,07) DOOR:closed,(16,08) DOOR:closed,(43,07) DOOR:closed,(43,08) # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: 'd', random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('d', "wolf"), random MONSTER: ('E', "stalker"), random MONSTER: ('E', "stalker"), random MONSTER: ('E', "stalker"), random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random NetHack-3.6.7/dat/Tourist.des000066400000000000000000000405461437325207100157770ustar00rootroot00000000000000# NetHack 3.6 Tourist.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991,92 by M. Stephenson, P. Winner # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Twoflower # and receive your quest assignment. # MAZE: "Tou-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP .......}}....---------..-------------------------------------------------... ........}}...|.......|..|.-------------------------------------------...|... .........}}..|.......|..|.|......|......|.............|......|......|...|... ..........}}.|.......|..|.|......+......+.............+......+..\...|...|... ...........}}}..........|.|......|......|.............|......|......|...|... .............}}.........|.|----S-|--S---|S----------S-|---S--|------|...|... ..............}}}.......|...............................................|... ................}}}.....----S------++--S----------S----------S-----------... ..................}}........... .. ................................... ......-------......}}}}........}}}}..}}}}..}}}}..}}}}....................... ......|.....|.......}}}}}}..}}}} .. }}}}..}}}}..}}}..................... ......|.....+...........}}}}}}........................}}}..}}}}..}}}..}}}... ......|.....|...........................................}}}}..}}}..}}}}.}}}} ......-------............................................................... ............................................................................ ...-------......-------..................................................... ...|.....|......|.....|..................................................... ...|.....+......+.....|..................................................... ...|.....|......|.....|..................................................... ...-------......-------..................................................... ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(14,01,20,03),unlit,"morgue" REGION:(07,10,11,12),unlit,"ordinary" REGION:(04,16,08,18),unlit,"ordinary" REGION:(17,16,21,18),unlit,"ordinary" REGION:(27,02,32,04),unlit,"ordinary" REGION:(34,02,39,04),unlit,"ordinary" REGION:(41,02,53,04),unlit,"ordinary" REGION:(55,02,60,04),unlit,"ordinary" REGION:(62,02,67,04),lit,"ordinary" # Stairs STAIR:(66,03),down # Portal arrival point BRANCH:(68,14,68,14),(0,0,0,0) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Doors DOOR:locked,(31,05) DOOR:locked,(36,05) DOOR:locked,(41,05) DOOR:locked,(52,05) DOOR:locked,(58,05) DOOR:locked,(28,07) DOOR:locked,(39,07) DOOR:locked,(50,07) DOOR:locked,(61,07) DOOR:closed,(33,03) DOOR:closed,(40,03) DOOR:closed,(54,03) DOOR:closed,(61,03) DOOR:open,(12,11) DOOR:open,(09,17) DOOR:open,(16,17) DOOR:locked,(35,07) DOOR:locked,(36,07) # Monsters on siege duty. MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: ('s',"giant spider"),random MONSTER: 's',random MONSTER: 's',random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: ('C',"forest centaur"),random MONSTER: 'C',random # Twoflower MONSTER:('@',"Twoflower"),(64,03) # The treasure of Twoflower OBJECT:('(',"chest"),(64,03) # guides for the audience chamber MONSTER:('@',"guide"),(29,03) MONSTER:('@',"guide"),(32,04) MONSTER:('@',"guide"),(35,02) MONSTER:('@',"guide"),(38,03) MONSTER:('@',"guide"),(45,03) MONSTER:('@',"guide"),(48,02) MONSTER:('@',"guide"),(49,04) MONSTER:('@',"guide"),(51,03) MONSTER:('@',"guide"),(57,03) MONSTER:('@',"guide"),(62,04) MONSTER:('@',"guide"),(66,04) # path guards MONSTER:('@',"watchman"),(35,08) MONSTER:('@',"watchman"),(36,08) # river monsters MONSTER:(';',"giant eel"),(62,12) MONSTER:(';',"piranha"),(47,10) MONSTER:(';',"piranha"),(29,11) MONSTER:(';',"kraken"),(34,09) MONSTER:(';',"kraken"),(37,09) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # # The "locate" level for the quest. # # Here you have to find the Thieves' Guild Hall to go # further towards your assigned quest. # MAZE: "Tou-loca",' ' FLAGS: hardfloor GEOMETRY:center,center MAP ---------------------------------------------------------------------------- |....|......|..........|......|......|...|....|.....|......|...............| |....|......|.|------|.|......|......|.|.|....|..}..|......|.|----------|..| |....|--+----.|......|.|-S---+|+-----|.|.S....|.....|---+--|.|..........+..| |....|........|......|.|...|.........|.|------|..............|..........|-+| |....+...}}...+......|.|...|.|-----|.|..............|--+----------------|..| |----|........|------|.|---|.|.....|......|-----+-|.|.......|...........|--| |............................|.....|.|--+-|.......|.|.......|...........|..| |----|.....|-------------|...|--+--|.|....|.......|.|-----------+-------|..| |....+.....+.........S...|...........|....|-------|........................| |....|.....|.........|...|.|---------|....|.........|-------|.|----------|.| |....|.....|---------|---|.|......|..+....|-------|.|.......|.+......S.\.|.| |....|.....+.........S...|.|......|..|....|.......|.|.......|.|......|...|.| |-------|..|.........|---|.|+-------------------+-|.|.......+.|----------|.| |.......+..|---------|.........|.........|..........|.......|.|..........|.| |.......|..............|--+--|.|.........|.|----+-----------|.|..........|.| |---------+-|--+-----|-|.....|.|.........|.|........|.|.....+.|..........+.| |...........|........|.S.....|.|----+----|.|--------|.|.....|.|----------|.| |...........|........|.|.....|........................|.....|..............| ---------------------------------------------------------------------------- ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" NON_DIGGABLE:(00,00,75,19) # REGION:(01,01,04,05),unlit,"morgue" REGION:(15,03,20,05),lit,"shop" REGION:(62,03,71,04),lit,"shop" REGION:(01,17,11,18),lit,"barracks" REGION:(12,09,20,10),lit,"barracks" REGION:(53,11,59,14),lit,"zoo" REGION:(63,14,72,16),lit,"barracks" REGION:(32,14,40,16),lit,"temple" # REGION:(06,01,11,02),random,"ordinary" REGION:(24,01,29,02),random,"ordinary" REGION:(31,01,36,02),random,"ordinary" REGION:(42,01,45,03),random,"ordinary" REGION:(53,01,58,02),random,"ordinary" REGION:(24,04,26,05),random,"ordinary" REGION:(30,06,34,07),random,"ordinary" REGION:(73,05,74,05),unlit,"ordinary" REGION:(01,09,04,12),random,"ordinary" REGION:(01,14,07,15),random,"ordinary" REGION:(12,12,20,13),random,"ordinary" REGION:(13,17,20,18),random,"ordinary" REGION:(22,09,24,10),random,"ordinary" REGION:(22,12,24,12),random,"ordinary" REGION:(24,16,28,18),random,"ordinary" REGION:(28,11,33,12),random,"ordinary" REGION:(35,11,36,12),lit,"ordinary" REGION:(38,08,41,12),random,"ordinary" REGION:(43,07,49,08),random,"ordinary" REGION:(43,12,49,12),random,"ordinary" REGION:(44,16,51,16),random,"ordinary" REGION:(53,06,59,07),random,"ordinary" REGION:(61,06,71,07),random,"ordinary" REGION:(55,16,59,18),random,"ordinary" REGION:(63,11,68,12),random,"ordinary" REGION:(70,11,72,12),random,"ordinary" # Stairs STAIR:(10,04),up STAIR:(73,05),down # Non diggable walls NON_DIGGABLE:(00,00,75,19) DOOR:closed,(05,05) DOOR:closed,(05,09) DOOR:closed,(08,14) DOOR:closed,(08,03) DOOR:closed,(11,09) DOOR:closed,(11,12) DOOR:closed,(10,16) DOOR:closed,(14,05) DOOR:closed,(15,16) DOOR:locked,(21,09) DOOR:locked,(21,12) DOOR:closed,(23,17) DOOR:closed,(25,03) DOOR:closed,(26,15) DOOR:closed,(29,03) DOOR:closed,(28,13) DOOR:closed,(31,03) DOOR:closed,(32,08) DOOR:closed,(37,11) DOOR:closed,(36,17) DOOR:locked,(41,03) DOOR:closed,(40,07) DOOR:closed,(48,06) DOOR:closed,(48,13) DOOR:closed,(48,15) DOOR:closed,(56,03) DOOR:closed,(55,05) DOOR:closed,(72,03) DOOR:locked,(74,04) DOOR:closed,(64,08) DOOR:closed,(62,11) DOOR:closed,(69,11) DOOR:closed,(60,13) DOOR:closed,(60,16) DOOR:closed,(73,16) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Toilet paper OBJECT:('?',"blank paper"),(71,12) OBJECT:('?',"blank paper"),(71,12) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:'s',random MONSTER:'s',random # # The "goal" level for the quest. # # Here you meet the Master of Thieves your nemesis monster. You have to # defeat the Master of Thieves in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Tou-goal", ' ' GEOMETRY:center,center MAP ---------------------------------------------------------------------------- |.........|.........|..........|..| |.................|........|........|..| |.........|.........|..........|..| |....--------.....|........|........|..| |------S--|--+-----------+------..| |....|......|.....|........|........|..| |.........|.......................| |....|......+.....--+-------------+--..| |.........|.......................| |....|......|..........................| |-S-----S-|......----------.......| |....|......|..........................| |..|..|...|......|........|.......| |....-----------.........----..........| |..+..+...|......|........|.......| |....|.........|.........|}}|..........| |..|..|...|......+........|.......| |....|.........+.........|}}|..........| |..|..|...|......|........|.......S.S....|.........|.........----..........| |---..----|......|........|.......| |....|.........|.......................| |.........+......|+F-+F-+F|.......| |....-----------.......................| |---..----|......|..|..|..|.......| |......................--------------..| |..|..|...|......--F-F--F--.......| |......................+............|..| |..+..+...|.......................| |--.---...-----+-----..|............|..| |--|..----|--+-----------+------..| |.....|...|.........|..|------------|..| |..+..+...|.........|..........|..| |.....|...|.........|..+............|..| |..|..|...|.........|..........|..| |.....|...|.........|..|............|..| ---------------------------------------------------------------------------- ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" # The Inn REGION:(01,01,09,02),lit,"ordinary" REGION:(01,04,09,05),lit,"barracks" REGION:(01,07,02,10),unlit,"ordinary" REGION:(07,07,09,10),unlit,"ordinary" REGION:(01,14,02,15),unlit,"ordinary" REGION:(07,14,09,15),unlit,"ordinary" REGION:(01,17,02,18),unlit,"ordinary" REGION:(07,17,09,18),unlit,"ordinary" # REGION:(11,01,19,02),unlit,"barracks" REGION:(21,01,30,02),unlit,"ordinary" REGION:(11,17,19,18),unlit,"barracks" REGION:(21,17,30,18),unlit,"ordinary" # Police Station REGION:(18,07,25,11),lit,"ordinary" REGION:(18,13,19,13),unlit,"ordinary" REGION:(21,13,22,13),unlit,"ordinary" REGION:(24,13,25,13),unlit,"ordinary" # The town itself REGION:(42,03,47,06),unlit,"ordinary" REGION:(42,08,50,11),unlit,"ordinary" REGION:(37,16,41,18),unlit,"morgue" REGION:(47,16,55,18),unlit,"ordinary" REGION:(55,01,62,03),unlit,"ordinary" REGION:(64,01,71,03),unlit,"ordinary" REGION:(60,14,71,15),lit,"shop" REGION:(60,17,71,18),lit,"shop" # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Stairs STAIR:(70,08),up # Doors DOOR:locked,(07,03) DOOR:locked,(02,06) DOOR:locked,(08,06) DOOR:closed,(03,08) DOOR:closed,(06,08) DOOR:open,(10,12) DOOR:closed,(03,15) DOOR:closed,(06,15) DOOR:closed,(03,17) DOOR:closed,(06,17) DOOR:closed,(13,03) DOOR:random,(25,03) DOOR:closed,(13,16) DOOR:random,(25,16) DOOR:locked,(17,09) DOOR:locked,(18,12) DOOR:locked,(21,12) DOOR:locked,(24,12) DOOR:locked,(34,10) DOOR:locked,(36,10) DOOR:random,(48,04) DOOR:random,(56,04) DOOR:random,(70,04) DOOR:random,(51,09) DOOR:random,(51,15) DOOR:open,(59,14) DOOR:open,(59,17) # Objects OBJECT:('(',"credit card"),(04,01),blessed,0,name:"The Platinum Yendorian Express Card" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"Master of Thieves"),(04,01),hostile MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:('s',"giant spider"),random MONSTER:'s',random MONSTER:'s',random # ladies of the evening MONSTER:('&',"succubus"),(02,08) MONSTER:('&',"succubus"),(08,08) MONSTER:('&',"incubus"),(02,14) MONSTER:('&',"incubus"),(08,14) MONSTER:('&',"incubus"),(02,17) MONSTER:('&',"incubus"),(08,17) # Police station (with drunken prisoners) MONSTER:('K',"Kop Kaptain"),(24,09),hostile MONSTER:('K',"Kop Lieutenant"),(20,09),hostile MONSTER:('K',"Kop Lieutenant"),(22,11),hostile MONSTER:('K',"Kop Lieutenant"),(22,07),hostile MONSTER:('K',"Keystone Kop"),(19,07),hostile MONSTER:('K',"Keystone Kop"),(19,08),hostile MONSTER:('K',"Keystone Kop"),(22,09),hostile MONSTER:('K',"Keystone Kop"),(24,11),hostile MONSTER:('K',"Keystone Kop"),(19,11),hostile MONSTER:('@',"prisoner"),(19,13) MONSTER:('@',"prisoner"),(21,13) MONSTER:('@',"prisoner"),(24,13) # MONSTER:('@',"watchman"),(33,10),hostile WALLIFY # # The "fill" level for the quest. # # This level is used to fill out any levels not occupied by specific # levels as defined above. # MAZE: "Tou-fila" , ' ' INIT_MAP: mines, '.' , ' ', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('@', "soldier"), random, hostile MONSTER: ('@', "soldier"), random, hostile MONSTER: ('@', "soldier"), random, hostile MONSTER: ('@', "soldier"), random, hostile MONSTER: ('@', "soldier"), random, hostile MONSTER: 'H', random, hostile MONSTER: 'C', random, hostile MAZE: "Tou-filb" , ' ' INIT_MAP: mines, '.' , ' ', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # MONSTER: ('@', "soldier"), random, hostile MONSTER: ('@', "captain"), random, hostile MONSTER: ('@', "captain"), random, hostile MONSTER: 'H', random, hostile MONSTER: 'H', random, hostile MONSTER: 'C', random, hostile MONSTER: 's', random NetHack-3.6.7/dat/Valkyrie.des000066400000000000000000000245301437325207100161070ustar00rootroot00000000000000# NetHack 3.6 Valkyrie.des $NHDT-Date: 1553807172 2019/03/28 21:06:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.15 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1991-2 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, the Norn, # and receive your quest assignment. # MAZE: "Val-strt",' ' FLAGS: noteleport,hardfloor,icedpools INIT_MAP:solidfill,'I' $pools = selection: random & random & random & random & random & random & random & random & random & random & random & random & random & grow(west, random) & grow(north, random) & grow(random & random) # This works because the random coordinates in $pools are evaluated once, # when the variable is initialized. TERRAIN:grow($pools), 'P' TERRAIN:$pools, 'L' GEOMETRY:center,center MAP xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..{..xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.....xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxx xxxxxxxx.....xxxxxxxxxxxxx|----------------|xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx xxxxxxx..xxx...xxxxxxxxxxx|................|xxxxxxxxxx..xxxxxxxxxxxxxxxxxxxx xxxxxx..xxxxxx......xxxxx.|................|.xxxxxxxxx.xxxxxxxxxxxxxxxxxxxxx xxxxx..xxxxxxxxxxxx.......+................+...xxxxxxx.xxxxxxxxxxxxxxxxxxxxx xxxx..xxxxxxxxx.....xxxxx.|................|.x...xxxxx.xxxxxxxxxxxxxxxxxxxxx xxx..xxxxxxxxx..xxxxxxxxxx|................|xxxx.......xxxxxxxxxxxxxxxxxxxxx xxxx..xxxxxxx..xxxxxxxxxxx|----------------|xxxxxxxxxx...xxxxxxxxxxxxxxxxxxx xxxxxx..xxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxx xxxxxxx......xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxx xxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...x......xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.........xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.......xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENDMAP # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(27,08,42,12),lit,"ordinary" # Portal arrival point BRANCH:(66,17,66,17),(0,0,0,0) # Stairs STAIR:(18,01),down FOUNTAIN:(53,02) # Doors DOOR:locked,(26,10) DOOR:locked,(43,10) # Norn MONSTER:('@',"Norn"),(35,10) # The treasure of the Norn OBJECT:('(',"chest"),(36,10) # valkyrie guards for the audience chamber MONSTER:('@',"warrior"),(27,08) MONSTER:('@',"warrior"),(27,09) MONSTER:('@',"warrior"),(27,11) MONSTER:('@',"warrior"),(27,12) MONSTER:('@',"warrior"),(42,08) MONSTER:('@',"warrior"),(42,09) MONSTER:('@',"warrior"),(42,11) MONSTER:('@',"warrior"),(42,12) # Non diggable walls NON_DIGGABLE:(26,07,43,13) # Random traps TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random # Monsters on siege duty. MONSTER: ('a',"fire ant"),(04,12) MONSTER: ('a',"fire ant"),(08,08) MONSTER: ('a',"fire ant"),(14,04) MONSTER: ('a',"fire ant"),(17,11) MONSTER: ('a',"fire ant"),(24,10) MONSTER: ('a',"fire ant"),(45,10) MONSTER: ('a',"fire ant"),(54,02) MONSTER: ('a',"fire ant"),(55,07) MONSTER: ('a',"fire ant"),(58,14) MONSTER: ('a',"fire ant"),(63,17) MONSTER: ('H',"fire giant"),(18,01),hostile MONSTER: ('H',"fire giant"),(10,16),hostile # # The "locate" level for the quest. # # Here you have to find the cave of Surtur to go # further towards your assigned quest. # MAZE: "Val-loca",' ' FLAGS: hardfloor,icedpools INIT_MAP: mines, '.', 'I', true, true, lit, false GEOMETRY:center,center MAP PPPPxxxx xxxxPPPPPx PLPxxx xPPLLLPP PPP ....................... PPPLLP xx ............................ PPPP x ............................... xxxx ................................. xx .................................... x ................................... x .................................. x xx .............................. PP xPPP .......................... PLP xPLLP xxPLLP xPPPPxx xxxxPPPP ENDMAP # Dungeon Description REGION:(00,00,39,12),lit,"ordinary" # Stairs STAIR:(48,14),up STAIR:(20,06),down # Non diggable walls NON_DIGGABLE:(00,00,39,12) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:'a',random MONSTER:'H',random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:'H',random,hostile # # The "goal" level for the quest. # # Here you meet Lord Surtur your nemesis monster. You have to # defeat Lord Surtur in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Val-goal", 'L' FLAGS: icedpools INIT_MAP: mines, '.', 'L', true, true, lit, false GEOMETRY:center,center MAP xxxxxx.....................xxxxxxxx xxxxx.......LLLLL.LLLLL......xxxxxx xxxx......LLLLLLLLLLLLLLL......xxxx xxxx.....LLL|---------|LLL.....xxxx xxxx....LL|--.........--|LL.....xxx x......LL|-...LLLLLLL...-|LL.....xx .......LL|...LL.....LL...|LL......x ......LL|-..LL.......LL..-|LL...... ......LL|.................|LL...... ......LL|-..LL.......LL..-|LL...... .......LL|...LL.....LL...|LL....... xx.....LL|-...LLLLLLL...-|LL......x xxx.....LL|--.........--|LL.....xxx xxxx.....LLL|---------|LLL...xxxxxx xxxxx.....LLLLLLLLLLLLLLL...xxxxxxx xxxxxx......LLLLL.LLLLL.....xxxxxxx xxxxxxxxx..................xxxxxxxx ENDMAP # Dungeon Description REGION:(00,00,34,16),lit,"ordinary" # Stairs # Note: The up stairs are *intentionally* off of the map. STAIR:(45,10),up # Non diggable walls NON_DIGGABLE:(00,00,34,16) # Drawbridges; northern one opens from the south (portcullis) to further # north (lowered span), southern one from the north to further south DRAWBRIDGE:(17,02),south,random IF [75%] { DRAWBRIDGE:(17,14),north,open } ELSE { DRAWBRIDGE:(17,14),north,random } # Objects OBJECT:('(',"crystal ball"),(17,08),blessed,5,name:"The Orb of Fate" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Traps TRAP:"board",(13,08) TRAP:"board",(21,08) # Random traps TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"board",random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('H',"Lord Surtur"),(17,08) MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:('a',"fire ant"),random MONSTER:'a',random MONSTER:'a',random MONSTER:('H',"fire giant"),(10,06),hostile MONSTER:('H',"fire giant"),(10,07),hostile MONSTER:('H',"fire giant"),(10,08),hostile MONSTER:('H',"fire giant"),(10,09),hostile MONSTER:('H',"fire giant"),(10,10),hostile MONSTER:('H',"fire giant"),(24,06),hostile MONSTER:('H',"fire giant"),(24,07),hostile MONSTER:('H',"fire giant"),(24,08),hostile MONSTER:('H',"fire giant"),(24,09),hostile MONSTER:('H',"fire giant"),(24,10),hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:('H',"fire giant"),random,hostile MONSTER:'H',random,hostile # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # MAZE: "Val-fila" , 'I' FLAGS: icedpools INIT_MAP: mines, '.', 'I', true, true, lit, false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: ('a', "fire ant"), random MONSTER: ('a', "fire ant"), random MONSTER: ('a', "fire ant"), random MONSTER: ('a', "fire ant"), random MONSTER: ('a', "fire ant"), random MONSTER: 'a', random MONSTER: ('H', "fire giant"), random, hostile # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random MAZE: "Val-filb" , 'L' FLAGS: icedpools INIT_MAP: mines, '.', 'L', true, true, lit, false NOMAP # STAIR: random, up STAIR: random, down # OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random OBJECT: random, random # MONSTER: ('a', "fire ant"), random MONSTER: ('a', "fire ant"), random MONSTER: ('a', "fire ant"), random MONSTER: 'a', random MONSTER: ('H', "fire giant"), random, hostile MONSTER: ('H', "fire giant"), random, hostile MONSTER: ('H', "fire giant"), random, hostile # TRAP: "fire", random TRAP: "fire", random TRAP: "fire", random TRAP: "fire", random TRAP: "fire", random TRAP: random, random TRAP: random, random NetHack-3.6.7/dat/Wizard.des000066400000000000000000000357451437325207100155730ustar00rootroot00000000000000# NetHack 3.6 Wizard.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ # Copyright (c) 1992 by David Cohrs # NetHack may be freely redistributed. See license for details. # # The "start" level for the quest. # # Here you meet your (besieged) class leader, Neferet the Green # and receive your quest assignment. # MAZE: "Wiz-strt",' ' FLAGS: noteleport,hardfloor GEOMETRY:center,center MAP ............................................................................ .....................C....CC.C........................C..................... ..........CCC.....................CCC....................................... ........CC........-----------.......C.C...C...C....C........................ .......C.....---------------------...C..C..C..C............................. ......C..C...------....\....------....C.....C............................... ........C...||....|.........|....||......................................... .......C....||....|.........+....||......................................... .......C...||---+--.........|....|||........................................ ......C....||...............|--S--||........................................ ...........||--+--|++----|---|..|.SS..........C......C...................... ........C..||.....|..|...|...|--|.||..CC..C.....C..........C................ .......C...||.....|..|.--|.|.|....||.................C..C................... .....C......||....|..|.....|.|.--||..C..C..........C...........}}}.......... ......C.C...||....|..-----.|.....||...C.C.C..............C....}}}}}}........ .........C...------........|------....C..C.....C..CC.C......}}}}}}}}}}}..... .........CC..---------------------...C.C..C.....CCCCC.C.......}}}}}}}}...... .........C........-----------..........C.C.......CCC.........}}}}}}}}}...... ..........C.C.........................C............C...........}}}}}........ ......................CCC.C................................................. ENDMAP # first do cloud everywhere REPLACE_TERRAIN:(0,0, 75,19), '.', 'C', 10% # then replace clouds inside the tower back to floor REPLACE_TERRAIN:(13,5, 33,15), 'C', '.', 100% # Dungeon Description REGION:(00,00,75,19),lit,"ordinary" REGION:(35,00,49,03),unlit,"ordinary" REGION:(43,12,49,16),unlit,"ordinary" REGION:(19,11,33,15),unlit,"ordinary",unfilled,irregular REGION:(30,10,31,10),unlit,"ordinary" # Stairs STAIR:(30,10),down # Portal arrival point TERRAIN:(63,06),'.' BRANCH:(63,06,63,06),(0,0,0,0) # Doors DOOR:closed,(31,09) DOOR:closed,(16,08) DOOR:closed,(28,07) DOOR:locked,(34,10) DOOR:locked,(35,10) DOOR:closed,(15,10) DOOR:locked,(19,10) DOOR:locked,(20,10) # Neferet the Green, the quest leader MONSTER:('@',"Neferet the Green"),(23,05) # The treasure of the quest leader OBJECT:('(',"chest"),(24,05) # apprentice guards for the audience chamber MONSTER:('@',"apprentice"),(30,07) MONSTER:('@',"apprentice"),(24,06) MONSTER:('@',"apprentice"),(15,06) MONSTER:('@',"apprentice"),(15,12) MONSTER:('@',"apprentice"),(26,11) MONSTER:('@',"apprentice"),(27,11) MONSTER:('@',"apprentice"),(19,09) MONSTER:('@',"apprentice"),(20,09) # Eels in the pond MONSTER:(';',"giant eel"),(62,14) MONSTER:(';',"giant eel"),(69,15) MONSTER:(';',"giant eel"),(67,17) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. MONSTER: 'B',(60,09),hostile MONSTER: 'W',(60,10),hostile MONSTER: 'B',(60,11),hostile MONSTER: 'B',(60,12),hostile MONSTER: 'i',(60,13),hostile MONSTER: 'B',(61,10),hostile MONSTER: 'B',(61,11),hostile MONSTER: 'B',(61,12),hostile MONSTER: 'B',(35,03),hostile MONSTER: 'i',(35,17),hostile MONSTER: 'B',(36,17),hostile MONSTER: 'B',(34,16),hostile MONSTER: 'i',(34,17),hostile MONSTER: 'W',(67,02),hostile MONSTER: 'B',(10,19),hostile # # The "locate" level for the quest. # # Here you have to find the Entrance to the Tower of Darkness to go # further towards your assigned quest. # MAZE: "Wiz-loca",' ' FLAGS: hardfloor GEOMETRY:center,center MAP ............. ....................................................... .............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}....... .............. ..............}.................................}....... .............. ..............}.-------------------------------.}....... ............... .........C....}.|.............................|.}....... ............... ..........C....}.|.---------------------------.|.}....... ............... .........CCC...}.|.|.........................|.|.}....... ................ ....C....CCC...}.|.|.-----------------------.|.|.}....... .......C..C..... .....C....CCC...}.|.|.|......+.......+......|.|.|.}....... .............C..CC.....C....CCC...}.|.|.|......|-------|......|.|.|.}....... ................ ....C....CCC...}.|.|.|......|.......|......|.|.|.}....... ......C..C..... ....C....CCC...}.|.|.|......|-------|......|.|.|.}....... ............C.. ...C....CCC...}.|.|.|......+.......+......|.|.|.}....... ........C...... ....C....CCC...}.|.|.-----------------------.|.|.}....... ....C......C... ........CCC...}.|.|.........................|.|.}....... ......C..C.... .........C....}.|.---------------------------.|.}....... .............. .........C....}.|.............................|.}....... ............. ..............}.-------------------------------.}....... ............. .............}.................................}....... ............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}....... ............. ....................................................... ENDMAP REPLACE_TERRAIN:(0,0,30,20), '.', 'C', 15% REPLACE_TERRAIN:(68,0,75,20), '.', '}', 25% REPLACE_TERRAIN:(34,1,68,19), '}', '.', 2% # Dungeon Description REGION:(00,00,75,20),lit,"ordinary" REGION:(37,04,65,16),unlit,"ordinary",filled,irregular { ROOMDOOR:true,closed,north|south|west|east,random } REGION:(39,06,63,14),unlit,"ordinary",filled,irregular { ROOMDOOR:true,closed,north|south|west|east,random } REGION:(41,08,46,12),lit,"ordinary",filled,irregular { ROOMDOOR:true,closed,north|south|west,random } REGION:(56,08,61,12),lit,"ordinary",filled,irregular { ROOMDOOR:true,closed,north|south|east,random } REGION:(48,08,54,08),unlit,"ordinary" REGION:(48,12,54,12),unlit,"ordinary" REGION:(48,10,54,10),unlit,"ordinary",filled,irregular { ROOMDOOR:true,closed,north|south|west|east,random } # Doors DOOR:locked,(55,08) DOOR:locked,(55,12) DOOR:locked,(47,08) DOOR:locked,(47,12) # Stairs TERRAIN:(03,17),'.' STAIR:(03,17),up STAIR:(48,10),down # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:"spiked pit",(24,02) TRAP:"spiked pit",(07,10) TRAP:"spiked pit",(23,05) TRAP:"spiked pit",(26,19) TRAP:"spiked pit",(72,02) TRAP:"spiked pit",(72,12) TRAP:"falling rock",(45,16) TRAP:"falling rock",(65,13) TRAP:"falling rock",(55,06) TRAP:"falling rock",(39,11) TRAP:"falling rock",(57,09) TRAP:"magic",random TRAP:"statue",random TRAP:"statue",random TRAP:"polymorph",random TRAP:"anti magic",(53,10) TRAP:"sleep gas",random TRAP:"sleep gas",random TRAP:"dart",random TRAP:"dart",random TRAP:"dart",random # Random monsters. MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:'i',random,hostile # # The "goal" level for the quest. # # Here you meet the Dark One, your nemesis monster. You have to # defeat the Dark One in combat to gain the artifact you have # been assigned to retrieve. # MAZE: "Wiz-goal", ' ' GEOMETRY:center,center MAP ------------- ------------- |...........| |...........| -------|...........-------------------...........| |......S...........|..|..|..|..|..|..|...........| |......|...........|..|..|..|..|..|..|...........| |......|...........-F+-F+-F+-F+-F+-F+-...........| --S----|...........S.................+...........| |......|...........-F+-F+-F+-F+-F+-F+-...........| |......|...........|..|..|..|..|..|..|...........| |......|...........|..|..|..|..|..|..|...........| -------|...........-------------------...........| |...........| |...........| ------------- ------------- ENDMAP # Dungeon Description REGION:(13,10,18,12),unlit,"temple" REGION:(13,06,18,08),lit,"ordinary" REGION:(20,04,30,14),unlit,"ordinary" REGION:(32,06,33,07),unlit,"ordinary" REGION:(35,06,36,07),unlit,"ordinary" REGION:(38,06,39,07),unlit,"ordinary" REGION:(41,06,42,07),unlit,"ordinary" REGION:(44,06,45,07),unlit,"ordinary" REGION:(47,06,48,07),unlit,"ordinary" REGION:(32,09,48,09),unlit,"ordinary" REGION:(32,11,33,12),unlit,"ordinary" REGION:(35,11,36,12),unlit,"ordinary" REGION:(38,11,39,12),unlit,"ordinary" REGION:(41,11,42,12),unlit,"ordinary" REGION:(44,11,45,12),unlit,"ordinary" REGION:(47,11,48,12),unlit,"ordinary" REGION:(50,04,60,14),lit,"ordinary" # Doors DOOR:locked,(19,06) DOOR:locked,(14,09) DOOR:locked,(31,09) DOOR:locked,(33,08) DOOR:locked,(36,08) DOOR:locked,(39,08) DOOR:locked,(42,08) DOOR:locked,(45,08) DOOR:locked,(48,08) DOOR:locked,(33,10) DOOR:locked,(36,10) DOOR:locked,(39,10) DOOR:locked,(42,10) DOOR:locked,(45,10) DOOR:locked,(48,10) DOOR:locked,(49,09) # Stairs STAIR:(55,05),up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # The altar. This is not a shrine. ALTAR:(16,11),noncoaligned,altar # Objects OBJECT:('"',"amulet of ESP"),(16,11),blessed,0,name:"The Eye of the Aethiopica" OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:('@',"Dark One"),(16,11) MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'B',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:'i',random,hostile MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:'i',random,hostile # Captive Monsters in the dungeon MONSTER:('@',"rogue"),(35,06),peaceful,"Pug" MONSTER:('Y',"owlbear"),(47,06),peaceful,asleep MONSTER:('@',"wizard"),(32,11),peaceful,asleep,"Newt" MONSTER:('@',"Grey-elf"),(44,11),peaceful MONSTER:('H',"hill giant"),(47,11),peaceful,asleep MONSTER:('G',"gnomish wizard"),(38,06),peaceful MONSTER:('@',"prisoner"),(35,11),peaceful MONSTER:('@',"prisoner"),(41,11),peaceful,asleep # # The "fill" levels for the quest. # # These levels are used to fill out any levels not occupied by specific # levels as defined above. "filla" is the upper filler, between the # start and locate levels, and "fillb" the lower between the locate # and goal levels. # LEVEL: "Wiz-fila" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: 'i', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: 'i', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: ('B', "vampire bat"), random MONSTER: ('B', "vampire bat"), random } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random MONSTER: 'i', random, hostile MONSTER: ('B', "vampire bat"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: 'i', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random MONSTER: ('B', "vampire bat"), random } RANDOM_CORRIDORS LEVEL: "Wiz-filb" # ROOM: "ordinary" , random, random, random, random { STAIR: random, up OBJECT: random,random MONSTER: 'X', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random,random MONSTER: 'i', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random OBJECT: random,random MONSTER: 'X', random, hostile } ROOM: "ordinary" , random, random, random, random { STAIR: random, down OBJECT: random, random TRAP: random, random MONSTER: 'i', random, hostile MONSTER: ('B', "vampire bat"), random } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random OBJECT: random, random TRAP: random, random MONSTER: 'i', random, hostile } ROOM: "ordinary" , random, random, random, random { OBJECT: random, random TRAP: random, random MONSTER: ('B', "vampire bat"), random } RANDOM_CORRIDORS NetHack-3.6.7/dat/bigroom.des000066400000000000000000000572201437325207100157610ustar00rootroot00000000000000# NetHack 3.6 bigroom.des $NHDT-Date: 1432512784 2015/05/25 00:13:04 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1990 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # These are the bigroom levels: # MAZE:"bigrm-1",' ' GEOMETRY:center,center MAP --------------------------------------------------------------------------- |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| --------------------------------------------------------------------------- ENDMAP $terrains = TERRAIN:{'-', 'F', 'L', 'T', 'C'} SHUFFLE:$terrains [50%]: SWITCH [ 4 ] { CASE 0: TERRAIN:line (10,8),(65, 8), $terrains[0] BREAK CASE 1: TERRAIN:line (15,4),(15, 13), $terrains[0] TERRAIN:line (59,4),(59, 13), $terrains[0] BREAK CASE 2: TERRAIN:line (10,8),(38, 8), $terrains[0] TERRAIN:line (37,8),(65, 8), $terrains[0] TERRAIN:line (37,3),(37, 8), $terrains[0] TERRAIN:line (37,8),(37,14), $terrains[0] BREAK CASE 3: TERRAIN:rect (4,4,70,13), $terrains[0] TERRAIN:line (25, 4),(50, 4), '.' TERRAIN:line (25,13),(50,13), '.' BREAK DEFAULT: } # Dungeon Description REGION:(01,01,73,16),lit,"ordinary" # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random # Here, just play with the lighting... MAZE:"bigrm-2",' ' GEOMETRY:center,center MAP --------------------------------------------------------------------------- |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| --------------------------------------------------------------------------- ENDMAP # Dungeon Description REGION:(01,01,73,16),lit,"ordinary" SWITCH [ 3 ] { CASE 0: REGION:(01,07,22,09),unlit,"ordinary" REGION:(24,01,50,05),unlit,"ordinary" REGION:(24,11,50,16),unlit,"ordinary" REGION:(52,07,73,09),unlit,"ordinary" BREAK CASE 1: REGION:(24,01,50,16),unlit,"ordinary" BREAK CASE 2: REGION:(01,01,22,16),unlit,"ordinary" REGION:(52,01,73,16),unlit,"ordinary" BREAK } # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random # Now, let's get fancy... MAZE:"bigrm-3",' ' GEOMETRY:center,center MAP --------------------------------------------------------------------------- |.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.| |.........................................................................| |.........................................................................| |.........................................................................| |..............---.......................................---..............| |...............|.........................................|...............| |.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....| |.....|-------- --------|...................|---------- --------|.....| |.....|.|.|.|.|---|.|.|.|.|...................|.|.|.|.|.|---|.|.|.|.|.....| |...............|.........................................|...............| |..............---.......................................---..............| |.........................................................................| |.........................................................................| |.........................................................................| |.........................................................................| |.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.| --------------------------------------------------------------------------- ENDMAP # Dungeon Description REGION:(01,01,73,16),lit,"ordinary" # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:random,(01,01) MONSTER:random,(13,01) MONSTER:random,(25,01) MONSTER:random,(37,01) MONSTER:random,(49,01) MONSTER:random,(61,01) MONSTER:random,(73,01) MONSTER:random,(07,07) MONSTER:random,(13,07) MONSTER:random,(25,07) MONSTER:random,(37,07) MONSTER:random,(49,07) MONSTER:random,(61,07) MONSTER:random,(67,07) MONSTER:random,(07,09) MONSTER:random,(13,09) MONSTER:random,(25,09) MONSTER:random,(37,09) MONSTER:random,(49,09) MONSTER:random,(61,09) MONSTER:random,(67,09) MONSTER:random,(01,16) MONSTER:random,(13,16) MONSTER:random,(25,16) MONSTER:random,(37,16) MONSTER:random,(49,16) MONSTER:random,(61,16) MONSTER:random,(73,16) MAZE:"bigrm-4",' ' GEOMETRY:center,center MAP ----------- ----------- |.........| |.........| |.........|-----------| |-----------|.........| |-|...................|----------| |----------|...................|-| -|.............................|-------|.............................|- -|.................................................................|- -|...............................................................|- -|.............................................................|- -|...........................................................|- -|...........................................................|- -|.............................................................|- -|...............................................................|- -|.................................................................|- -|.............................|-------|.............................|- |-|...................|----------| |----------|...................|-| |.........|-----------| |-----------|.........| |.........| |.........| ----------- ----------- ENDMAP # Dungeon Description REGION:(01,01,73,16),lit,"ordinary" # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Fountains FOUNTAIN:(05,02) FOUNTAIN:(05,15) FOUNTAIN:(69,02) FOUNTAIN:(69,15) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random # Try an oval room... MAZE:"bigrm-5",' ' GEOMETRY:center,center MAP ------------------ ---------................--------- -------................................------- ------............................................------ ----......................................................---- ---............................................................--- ---................................................................--- ---....................................................................--- |........................................................................| |........................................................................| |........................................................................| ---....................................................................--- ---................................................................--- ---............................................................--- ----......................................................---- ------............................................------ -------................................------- ---------................--------- ------------------ ENDMAP # Dungeon Description REGION:(00,00,72,18),lit,"ordinary" # Stairs STAIR:random,up STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,72,18) # Objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random # The Four Circles LEVEL:"bigrm-6" FLAGS:mazelevel INIT_MAP:solidfill,' ' GEOMETRY:center,center MAP --------- --------- --------- --------- ---.......--- ---.......--- ---.......--- ---.......--- --...........-- --...........-- --...........-- --...........-- --.............-- --.............-- --.............-- --.............-- -...............- -...............- -...............- -...............- |-...............---...............---...............---...............-- |.................-.................-.................-.................| |........T.................T.................T.................T........| |.......................................................................| |......T.{.....................................................{.T......| |.......................................................................| |........T.................T.................T.................T........| |.................-.................-.................-.................| --...............---...............---...............---...............-- -...............- -...............- -...............- -...............- --.............-- --.............-- --.............-- --.............-- --...........-- --...........-- --...........-- --...........-- ---.......--- ---.......--- ---.......--- ---.......--- --------- --------- --------- --------- ENDMAP REGION:(01,01,72,17),lit,"ordinary" STAIR:random,up STAIR:random,down NON_DIGGABLE:(00,00,72,18) LOOP [15] { OBJECT:random,random } LOOP [6] { TRAP:random,random } LOOP [28] { MONSTER:random,random } # Let's tilt it a bit LEVEL:"bigrm-7" FLAGS:mazelevel INIT_MAP:solidfill,' ' GEOMETRY:center,center MAP ----- ---------...--- ---------.........L...--- ---------.......................--- ---------.................................--- ---------...........................................--- ---------.....................................................--- |--------...............................................................--| |.........................................................................| |.L.....................................................................L.| |.........................................................................| |--...............................................................--------| ---.....................................................--------- ---...........................................--------- ---.................................--------- ---.......................--------- ---...L.........--------- ---...--------- ----- ENDMAP $terrain = terrain:{ 'L', 'T', '{', '.' } SHUFFLE:$terrain REPLACE_TERRAIN:(00,00,74,18),'L',$terrain[0],100% REGION:(01,01,73,17),lit,"ordinary" STAIR:random,up STAIR:random,down NON_DIGGABLE:(00,00,74,18) LOOP [15] { OBJECT:random,random } LOOP [6] { TRAP:random,random } LOOP [28] { MONSTER:random,random } # Slanted LEVEL:"bigrm-8" FLAGS:mazelevel INIT_MAP:solidfill,' ' GEOMETRY:center,center MAP ---------------------------------------------- |............................................--- --.............................................--- ---......................................FF.....--- ---...................................FF........--- ---................................FF...........--- ---.............................FF..............--- ---..........................FF.................--- ---.......................FF....................--- ---....................FF.......................--- ---.................FF..........................--- ---..............FF.............................--- ---...........FF................................---- ---........FF...................................--- ---.....FF......................................--- ---.............................................-- ---............................................| ---------------------------------------------- ENDMAP IF [40%] { $terrain = TERRAIN:{ 'L', '}', 'T', '.', '-', 'C' } SHUFFLE:$terrain REPLACE_TERRAIN:(0,0,74,17),'F', $terrain[0], 100% } REGION:(01,01,73,16),lit,"ordinary" STAIR:random,up STAIR:random,down NON_DIGGABLE:(00,00,74,17) LOOP [15] { OBJECT:random,random } LOOP [6] { TRAP:random,random } LOOP [28] { MONSTER:random,random } # The Eye LEVEL:"bigrm-9" FLAGS:mazelevel GEOMETRY:center,center MAP }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}................}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}................................}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}............................................}}}}}}}}}}}}}}} }}}}}}}}}}......................................................}}}}}}}}}} }}}}}}}............................................................}}}}}}} }}}}}.......................LLLLLLLLLLLLLLLLLL.......................}}}}} }}}....................LLLLLLLLLLLLLLLLLLLLLLLLLLL.....................}}} }....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................} }....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................} }....................LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................} }}}....................LLLLLLLLLLLLLLLLLLLLLLLLLLL.....................}}} }}}}}.......................LLLLLLLLLLLLLLLLLL.......................}}}}} }}}}}}}............................................................}}}}}}} }}}}}}}}}}......................................................}}}}}}}}}} }}}}}}}}}}}}}}}............................................}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}................................}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}................}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ENDMAP # Unlit, except 3 mapgrids around the "pupil" REGION:(00,00,73,18),unlit,"ordinary" REGION:(26,04,47,14),lit,"ordinary" REGION:(21,05,51,13),lit,"ordinary" REGION:(19,06,54,12),lit,"ordinary" STAIR:random,up STAIR:random,down LOOP [15] { OBJECT:random,random } LOOP [6] { TRAP:random,random } LOOP [28] { MONSTER:random,random } # Fog Maze LEVEL:"bigrm-10" FLAGS:mazelevel GEOMETRY:center,center MAP ....................................................................... ....................................................................... ....................................................................... ....................................................................... ...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C... ...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... ...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C... ...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... ...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C... ...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... ...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C... ...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... ...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C... ...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... ...C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C... ....................................................................... ....................................................................... ....................................................................... ....................................................................... ENDMAP IF [33%] { # occasionally it's not a fog maze $terrain = TERRAIN:{ 'L', '}', 'T', '-', 'F' } SHUFFLE:$terrain # break it up a bit REPLACE_TERRAIN:(0,0,70,18),'C', '.', 5% REPLACE_TERRAIN:(0,0,70,18),'C', $terrain[0], 100% } REGION:(00,00,70,18),lit,"ordinary" # when falling down on this level, never end up in the fog maze TELEPORT_REGION:(00,00,70,18),(02,03,68,15),down LOOP [15] { OBJECT:random,random } LOOP [6] { TRAP:random,random } LOOP [28] { MONSTER:random,random } MAZEWALK:(4, 2), south, false # Stairs up, not in the fog maze STAIR:(00,00,70,18),(02,03,68,15),up STAIR:random,down NetHack-3.6.7/dat/bogusmon.txt000066400000000000000000000143071437325207100162170ustar00rootroot00000000000000# NetHack 3.6 bogusmon.txt $NHDT-Date: 1574387024 2019/11/22 01:43:44 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.8 $ # 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 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 octahedron dungeon core quale holloway # 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 # 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 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 # 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 NetHack-3.6.7/dat/castle.des000066400000000000000000000166161437325207100156020ustar00rootroot00000000000000# NetHack 3.6 castle.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ # Copyright (c) 1989 by Jean-Christophe Collet # NetHack may be freely redistributed. See license for details. # # This is the stronghold level : # there are several ways to enter it : # - opening the drawbridge (wand of opening, knock spell, playing # the appropriate tune) # # - enter via the back entry (this suppose a ring of levitation, boots # of water walking, etc.) # # Note : If you don't play the right tune, you get indications like in the # MasterMind game... # # To motivate the player : there are 4 storerooms (armors, weapons, food and # gems) and a wand of wishing in one of the 4 towers... MAZE:"castle",random FLAGS: noteleport GEOMETRY:center,center MAP }}}}}}}}}.............................................}}}}}}}}} }-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------} }|.....|-----------------------------------------------|.....|} }|.....+...............................................+.....|} }-------------------------------+-----------------------------} }}}}}}|........|..........+...........|.......S.S.......|}}}}}} .....}|........|..........|...........|.......|.|.......|}..... .....}|........------------...........---------S---------}..... .....}|...{....+..........+.........\.S.................+...... .....}|........------------...........---------S---------}..... .....}|........|..........|...........|.......|.|.......|}..... }}}}}}|........|..........+...........|.......S.S.......|}}}}}} }-------------------------------+-----------------------------} }|.....+...............................................+.....|} }|.....|-----------------------------------------------|.....|} }-------}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-------} }}}}}}}}}.............................................}}}}}}}}} ENDMAP # Random registers initialisation $object = object: { '[',')','*','%' } SHUFFLE: $object $place = { (04,02),(58,02),(04,14),(58,14) } SHUFFLE: $place $monster = monster: { 'L','N','E','H','M','O','R','T','X','Z' } SHUFFLE: $monster TELEPORT_REGION:levregion(01,00,10,20),(1,1,61,15),down TELEPORT_REGION:levregion(69,00,79,20),(1,1,61,15),up STAIR:levregion(01,00,10,20),(0,0,62,16),up FOUNTAIN:(10,08) # Doors DOOR:closed,(07,03) DOOR:closed,(55,03) DOOR:locked,(32,04) DOOR:locked,(26,05) DOOR:locked,(46,05) DOOR:locked,(48,05) DOOR:locked,(47,07) DOOR:closed,(15,08) DOOR:closed,(26,08) DOOR:locked,(38,08) DOOR:locked,(56,08) DOOR:locked,(47,09) DOOR:locked,(26,11) DOOR:locked,(46,11) DOOR:locked,(48,11) DOOR:locked,(32,12) DOOR:closed,(07,13) DOOR:closed,(55,13) # The drawbridge DRAWBRIDGE:(05,08),east,closed # Storeroom number 1 OBJECT:$object[0],(39,05) OBJECT:$object[0],(40,05) OBJECT:$object[0],(41,05) OBJECT:$object[0],(42,05) OBJECT:$object[0],(43,05) OBJECT:$object[0],(44,05) OBJECT:$object[0],(45,05) OBJECT:$object[0],(39,06) OBJECT:$object[0],(40,06) OBJECT:$object[0],(41,06) OBJECT:$object[0],(42,06) OBJECT:$object[0],(43,06) OBJECT:$object[0],(44,06) OBJECT:$object[0],(45,06) # Storeroom number 2 OBJECT:$object[1],(49,05) OBJECT:$object[1],(50,05) OBJECT:$object[1],(51,05) OBJECT:$object[1],(52,05) OBJECT:$object[1],(53,05) OBJECT:$object[1],(54,05) OBJECT:$object[1],(55,05) OBJECT:$object[1],(49,06) OBJECT:$object[1],(50,06) OBJECT:$object[1],(51,06) OBJECT:$object[1],(52,06) OBJECT:$object[1],(53,06) OBJECT:$object[1],(54,06) OBJECT:$object[1],(55,06) # Storeroom number 3 OBJECT:$object[2],(39,10) OBJECT:$object[2],(40,10) OBJECT:$object[2],(41,10) OBJECT:$object[2],(42,10) OBJECT:$object[2],(43,10) OBJECT:$object[2],(44,10) OBJECT:$object[2],(45,10) OBJECT:$object[2],(39,11) OBJECT:$object[2],(40,11) OBJECT:$object[2],(41,11) OBJECT:$object[2],(42,11) OBJECT:$object[2],(43,11) OBJECT:$object[2],(44,11) OBJECT:$object[2],(45,11) # Storeroom number 4 OBJECT:$object[3],(49,10) OBJECT:$object[3],(50,10) OBJECT:$object[3],(51,10) OBJECT:$object[3],(52,10) OBJECT:$object[3],(53,10) OBJECT:$object[3],(54,10) OBJECT:$object[3],(55,10) OBJECT:$object[3],(49,11) OBJECT:$object[3],(50,11) OBJECT:$object[3],(51,11) OBJECT:$object[3],(52,11) OBJECT:$object[3],(53,11) OBJECT:$object[3],(54,11) OBJECT:$object[3],(55,11) # THE WAND OF WISHING in 1 of the 4 towers CONTAINER:('(',"chest"),not_trapped,$place[0] { OBJECT:('/',"wishing") } # Prevent monsters from eating it. (@'s never eat objects) ENGRAVING:$place[0],burn,"Elbereth" OBJECT:('?',"scare monster"),$place[0],cursed # The treasure of the lord OBJECT:('(',"chest"),(37,08) # Traps TRAP:"trap door",(40,08) TRAP:"trap door",(44,08) TRAP:"trap door",(48,08) TRAP:"trap door",(52,08) TRAP:"trap door",(55,08) # Soldiers guarding the entry hall MONSTER:('@',"soldier"),(08,06) MONSTER:('@',"soldier"),(09,05) MONSTER:('@',"soldier"),(11,05) MONSTER:('@',"soldier"),(12,06) MONSTER:('@',"soldier"),(08,10) MONSTER:('@',"soldier"),(09,11) MONSTER:('@',"soldier"),(11,11) MONSTER:('@',"soldier"),(12,10) MONSTER:('@',"lieutenant"),(09,08) # Soldiers guarding the towers MONSTER:('@',"soldier"),(03,02) MONSTER:('@',"soldier"),(05,02) MONSTER:('@',"soldier"),(57,02) MONSTER:('@',"soldier"),(59,02) MONSTER:('@',"soldier"),(03,14) MONSTER:('@',"soldier"),(05,14) MONSTER:('@',"soldier"),(57,14) MONSTER:('@',"soldier"),(59,14) # The four dragons that are guarding the storerooms MONSTER:'D',(47,05) MONSTER:'D',(47,06) MONSTER:'D',(47,10) MONSTER:'D',(47,11) # Sea monsters in the moat MONSTER:(';',"giant eel"),(05,07) MONSTER:(';',"giant eel"),(05,09) MONSTER:(';',"giant eel"),(57,07) MONSTER:(';',"giant eel"),(57,09) MONSTER:(';',"shark"),(05,00) MONSTER:(';',"shark"),(05,16) MONSTER:(';',"shark"),(57,00) MONSTER:(';',"shark"),(57,16) # The throne room and the court monsters MONSTER:$monster[0],(27,05) MONSTER:$monster[1],(30,05) MONSTER:$monster[2],(33,05) MONSTER:$monster[3],(36,05) MONSTER:$monster[4],(28,06) MONSTER:$monster[5],(31,06) MONSTER:$monster[6],(34,06) MONSTER:$monster[7],(37,06) MONSTER:$monster[8],(27,07) MONSTER:$monster[9],(30,07) MONSTER:$monster[0],(33,07) MONSTER:$monster[1],(36,07) MONSTER:$monster[2],(28,08) MONSTER:$monster[3],(31,08) MONSTER:$monster[4],(34,08) MONSTER:$monster[5],(27,09) MONSTER:$monster[6],(30,09) MONSTER:$monster[7],(33,09) MONSTER:$monster[8],(36,09) MONSTER:$monster[9],(28,10) MONSTER:$monster[0],(31,10) MONSTER:$monster[1],(34,10) MONSTER:$monster[2],(37,10) MONSTER:$monster[3],(27,11) MONSTER:$monster[4],(30,11) MONSTER:$monster[5],(33,11) MONSTER:$monster[6],(36,11) # MazeWalks MAZEWALK:(00,10),west MAZEWALK:(62,06),east # Non diggable walls NON_DIGGABLE:(00,00,62,16) # Subrooms: # Entire castle area REGION:(00,00,62,16),unlit,"ordinary" # Courtyards REGION:(00,05,05,11),lit,"ordinary" REGION:(57,05,62,11),lit,"ordinary" # Throne room REGION:(27,05,37,11),lit,"throne",unfilled # Antechamber REGION:(07,05,14,11),lit,"ordinary" # Storerooms REGION:(39,05,45,06),lit,"ordinary" REGION:(39,10,45,11),lit,"ordinary" REGION:(49,05,55,06),lit,"ordinary" REGION:(49,10,55,11),lit,"ordinary" # Corners REGION:(02,02,06,03),lit,"ordinary" REGION:(56,02,60,03),lit,"ordinary" REGION:(02,13,06,14),lit,"ordinary" REGION:(56,13,60,14),lit,"ordinary" # Barracks REGION:(16,05,25,06),lit,"barracks" REGION:(16,10,25,11),lit,"barracks" # Hallways REGION:(08,03,54,03),unlit,"ordinary" REGION:(08,13,54,13),unlit,"ordinary" REGION:(16,08,25,08),unlit,"ordinary" REGION:(39,08,55,08),unlit,"ordinary" # Storeroom alcoves REGION:(47,05,47,06),unlit,"ordinary" REGION:(47,10,47,11),unlit,"ordinary" NetHack-3.6.7/dat/cmdhelp000066400000000000000000000163121437325207100151620ustar00rootroot00000000000000&# cmdhelp & 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 # 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 NetHack-3.6.7/dat/data.base000066400000000000000000010102571437325207100153730ustar00rootroot00000000000000# NetHack 3.6 data.base # $NHDT-Date: 1545359287 2018/12/21 02:28:07 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.87 $ # 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 creature or an item. # # 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. # 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 '[' ac armor* armour* suit or piece of armor "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 ] 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. 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 "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 ] 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 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* 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*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 ] 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 ] # not "stethoscope" 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 ] 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 ] 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 ] *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 ] croesus kroisos creosote Croesus (in Greek: Kroisos), the wealthy last king of Lydia; his empire was destroyed when he attacked Cyrus in 549, 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 ] 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 ] 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 ] *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* 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 ] 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 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 ] 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 ] *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 ] 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. # 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. *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. ] 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. 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. 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. [ after the 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 ] 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 ] incubus succubus 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. 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 flying creature. It has scales, a mane like a lion, a tail, hooves, and a horn. 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* 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 ] *lady 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 ] 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 ] medusa perseus Medusa, one of the three Gorgons or Graeae, 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 Encyclopedia 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" ] 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 Encyclopedia of Myths and Legends of All Nations, by Herbert 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* 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 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 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* Shades are undead creatures. They differ from zombies in that a zombie is an undead animation of a corpse, while a shade is an undead creature magically created by the use of black magic. 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 ] 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 ] ~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 ] 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 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. 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 Robinson and Knox Wilson ] vampire ~vampire bat vampire lord 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. 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 ] weapon 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 ] 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 ] # 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. NetHack-3.6.7/dat/dungeon.def000066400000000000000000000106211437325207100157370ustar00rootroot00000000000000# NetHack 3.6 dungeon.def $NHDT-Date: 1462486876 2016/05/05 22:21:16 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.14 $ # Copyright (c) 1990-95 by M. Stephenson # NetHack may be freely redistributed. See license for details. # # The dungeon description file for the "standard" 3.1 NetHack. # # Note: The order of the definition of dungeons in this file # reflects in their order of creation in the real dungeon. # The "Main" branch must *always* be first. # Also note that the order of the dungeons in this file # determines the order in which branch levels are assigned. # If two dungeons have overlapping ranges for their entry # points, then you should list the dungeon with the _least_ # number of choices for its branch level _first_. # DUNGEON: "The Dungeons of Doom" "D" (25, 5) ALIGNMENT: unaligned BRANCH: "The Gnomish Mines" @ (2, 3) LEVEL: "rogue" "R" @ (15, 4) LEVELDESC: roguelike LEVEL: "oracle" "O" @ (5, 5) LEVALIGN: neutral CHAINBRANCH: "Sokoban" "oracle" + (1, 0) up RNDLEVEL: "bigrm" "B" @ (10, 3) 40 10 CHAINBRANCH: "The Quest" "oracle" + (6, 2) portal BRANCH: "Fort Ludios" @ (18, 4) portal RNDLEVEL: "medusa" "none" @ (-5, 4) 4 LEVALIGN: chaotic LEVEL: "castle" "none" @ (-1, 0) CHAINBRANCH: "Gehennom" "castle" + (0, 0) no_down BRANCH: "The Elemental Planes" @ (1, 0) no_down up # # Gehennom # # Now re-worked for 3.1, hell is hopefully going to be a little # less boring. Also, in 3.1, the tower is not considered as a # part of hell, but is set up as a separate dungeon. # # Gehennom is no longer considered "hellish" as a complete dungeon. # That is, fire resistance is no longer a condition for survival in # it. However, Gehennom, and the special levels in it in particular, # is abundant with fire traps. As a result, fire resistance is still # a prudent survival strategy in Gehennom. # # Note: Gehennom *must* be the second dungeon defined so that # monsters can properly migrate here under certain # circumstances. # DUNGEON: "Gehennom" "G" (20, 5) DESCRIPTION: mazelike DESCRIPTION: hellish ALIGNMENT: noalign BRANCH: "Vlad's Tower" @ (9, 5) up LEVEL: "valley" "V" @ (1, 0) LEVEL: "sanctum" "none" @ (-1, 0) LEVEL: "juiblex" "J" @ (4, 4) LEVEL: "baalz" "B" @ (6, 4) LEVEL: "asmodeus" "A" @ (2, 6) LEVEL: "wizard1" "none" @ (11, 6) CHAINLEVEL: "wizard2" "X" "wizard1" + (1, 0) CHAINLEVEL: "wizard3" "Y" "wizard1" + (2, 0) LEVEL: "orcus" "O" @ (10, 6) LEVEL: "fakewiz1" "F" @ (-6,4) LEVEL: "fakewiz2" "G" @ (-6,4) # # The Mines of the Gnomes of Zurich. # DUNGEON: "The Gnomish Mines" "M" (8, 2) ALIGNMENT: lawful DESCRIPTION: mazelike RNDLEVEL: "minetn" "T" @ (3, 2) 7 LEVELDESC: town RNDLEVEL: "minend" "E" @ (-1, 0) 3 # # The Questdungeon # # This is a proto-dungeon. The level file names will be prepended with # three letter role abbreviation during initialization, replacing "x". # A special "x-fill" level must be defined in the levels description # file. It will be used for all levels not defined explicitly below. # DUNGEON: "The Quest" "Q" (5, 2) LEVEL: "x-strt" "none" @ (1, 1) LEVEL: "x-loca" "L" @ (3, 1) LEVEL: "x-goal" "none" @ (-1, 0) # # Sokoban # DUNGEON: "Sokoban" "none" (4, 0) DESCRIPTION: mazelike ALIGNMENT: neutral ENTRY: -1 RNDLEVEL: "soko1" "none" @ (1, 0) 2 RNDLEVEL: "soko2" "none" @ (2, 0) 2 RNDLEVEL: "soko3" "none" @ (3, 0) 2 RNDLEVEL: "soko4" "none" @ (4, 0) 2 # # The Central Vault of Croesus. # DUNGEON: "Fort Ludios" "K" (1, 0) DESCRIPTION: mazelike ALIGNMENT: unaligned LEVEL: "knox" "K" @ (-1, 0) # # Vlad's Tower # # It has been removed from Gehennom, and it is surrounded by stone. # Must not allow bones files for its top level. # DUNGEON: "Vlad's Tower" "T" (3, 0) PROTOFILE: "tower" DESCRIPTION: mazelike ALIGNMENT: chaotic ENTRY: -1 LEVEL: "tower1" "none" @ (1, 0) # it isn't necessary to list these last two, but doing so makes them # show up in ^O output and in the level teleport menu LEVEL: "tower2" "none" @ (2, 0) LEVEL: "tower3" "none" @ (3, 0) # # The Endgame levels # # Enter on 2nd level from bottom; 1st (from bottom) is a # placeholder for surface level, and should be unreachable. # [Note: the name "dummy" is checked for in init_dungeons().] # DUNGEON: "The Elemental Planes" "E" (6, 0) DESCRIPTION: mazelike ALIGNMENT: unaligned ENTRY: -2 LEVEL: "astral" "none" @ (1, 0) LEVEL: "water" "none" @ (2, 0) LEVEL: "fire" "none" @ (3, 0) LEVEL: "air" "none" @ (4, 0) LEVEL: "earth" "none" @ (5, 0) LEVEL: "dummy" "none" @ (6, 0) NetHack-3.6.7/dat/endgame.des000066400000000000000000000640461437325207100157270ustar00rootroot00000000000000# NetHack 3.6 endgame.des $NHDT-Date: 1546303680 2019/01/01 00:48:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.14 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1992,1993 by Izchak Miller, David Cohrs, # and Timo Hakulinen # NetHack may be freely redistributed. See license for details. # # These are the ENDGAME levels: earth, air, fire, water, and astral. # The top-most level, the Astral Level, has 3 temples and shrines. # Players are supposed to sacrifice the Amulet of Yendor on the appropriate # shrine. MAZE:"earth",' ' FLAGS: noteleport,hardfloor,shortsighted MESSAGE: "Well done, mortal!" MESSAGE: "But now thou must face the final Test..." MESSAGE: "Prove thyself worthy or perish!" GEOMETRY:center,center # The player lands, upon arrival, in the # lower-right cavern. The location of the # portal to the next level is randomly chosen. # This map has no visible outer boundary, and # is mostly diggable "rock". MAP ... .... .. ..... ... .. .... .... ... .... ... .... ... . .. .. ....... . .. .. ... . . .. . ... .. .. . .. . .. ... . ... ... .. ... .. .... .. .. ... .. ..... ... ... .... .. ENDMAP REPLACE_TERRAIN:(0,0,75,19), ' ', ('.', unlit), 5% # Since there are no stairs, this forces the hero's initial placement TELEPORT_REGION:(69,16,69,16),(0,0,0,0) PORTAL:(0,0,75,19),(65,13,75,19),"air" # Some helpful monsters. Making sure a # pick axe and at least one wand of digging # are available. MONSTER:('@',"Elvenking"),(67,16) MONSTER:('H',"minotaur"),(67,14) # An assortment of earth-appropriate nasties # in each cavern. MONSTER:('E',"earth elemental"),(52,13),hostile MONSTER:('E',"earth elemental"),(53,13),hostile MONSTER:('T',"rock troll"),(53,12) MONSTER:('H',"stone giant"),(54,12) # MONSTER:('S',"pit viper"),(70,05) MONSTER:('&',"barbed devil"),(69,06) MONSTER:('H',"stone giant"),(69,08) MONSTER:(''',"stone golem"),(71,08) MONSTER:('&',"pit fiend"),(70,09) MONSTER:('E',"earth elemental"),(70,08),hostile # MONSTER:('E',"earth elemental"),(60,03),hostile MONSTER:('H',"stone giant"),(61,04) MONSTER:('E',"earth elemental"),(62,04),hostile MONSTER:('E',"earth elemental"),(61,05),hostile MONSTER:('s',"scorpion"),(62,05) MONSTER:('p',"rock piercer"),(63,05) # MONSTER:('U',"umber hulk"),(40,05) MONSTER:('v',"dust vortex"),(42,05) MONSTER:('T',"rock troll"),(38,06) MONSTER:('E',"earth elemental"),(39,06),hostile MONSTER:('E',"earth elemental"),(41,06),hostile MONSTER:('E',"earth elemental"),(38,07),hostile MONSTER:('H',"stone giant"),(39,07) MONSTER:('E',"earth elemental"),(43,07),hostile MONSTER:(''',"stone golem"),(37,08) MONSTER:('S',"pit viper"),(43,08) MONSTER:('S',"pit viper"),(43,09) MONSTER:('T',"rock troll"),(44,10) # MONSTER:('E',"earth elemental"),(02,01),hostile MONSTER:('E',"earth elemental"),(03,01),hostile MONSTER:(''',"stone golem"),(01,02) MONSTER:('E',"earth elemental"),(02,02),hostile MONSTER:('T',"rock troll"),(04,03) MONSTER:('T',"rock troll"),(03,03) MONSTER:('&',"pit fiend"),(03,04) MONSTER:('E',"earth elemental"),(04,05),hostile MONSTER:('S',"pit viper"),(05,06) # MONSTER:('E',"earth elemental"),(21,02),hostile MONSTER:('E',"earth elemental"),(21,03),hostile MONSTER:('H',"minotaur"),(21,04) MONSTER:('E',"earth elemental"),(21,05),hostile MONSTER:('T',"rock troll"),(22,05) MONSTER:('E',"earth elemental"),(22,06),hostile MONSTER:('E',"earth elemental"),(23,06),hostile # MONSTER:('S',"pit viper"),(14,08) MONSTER:('&',"barbed devil"),(14,09) MONSTER:('E',"earth elemental"),(13,10),hostile MONSTER:('T',"rock troll"),(12,11) MONSTER:('E',"earth elemental"),(14,12),hostile MONSTER:('E',"earth elemental"),(15,13),hostile MONSTER:('H',"stone giant"),(17,13) MONSTER:(''',"stone golem"),(18,13) MONSTER:('&',"pit fiend"),(18,12) MONSTER:('E',"earth elemental"),(18,11),hostile MONSTER:('E',"earth elemental"),(18,10),hostile # MONSTER:('&',"barbed devil"),(02,16) MONSTER:('E',"earth elemental"),(03,16),hostile MONSTER:('T',"rock troll"),(02,17) MONSTER:('E',"earth elemental"),(04,17),hostile MONSTER:('E',"earth elemental"),(04,18),hostile OBJECT:('`',"boulder"),random MAZE:"air",' ' FLAGS: noteleport,hardfloor,shortsighted # The following messages are somewhat obtuse, to make then # equally meaningful if the player can see or not. MESSAGE: "What a strange feeling!" MESSAGE: "You notice that there is no gravity here." GEOMETRY:center,center # The player lands, upon arrival, in the # lower-left area. The location of the # portal to the next level is randomly chosen. # This map has no visible outer boundary, and # is all "air". MAP AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ENDMAP # Use up and down regions to partition the level into three parts; # teleportation can't cross from one part into another. # The up region is where you'll arrive after activating the portal from # the preceding level; the exit portal is placed inside the down region. TELEPORT_REGION:levregion(01,00,24,20),levregion(25,00,79,20),up TELEPORT_REGION:levregion(56,00,79,20),levregion(01,00,55,20),down PORTAL:levregion(57,01,78,19),(0,0,0,0),"fire" REGION:(00,00,75,19),lit,"ordinary" MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('E',"air elemental"),random,hostile MONSTER:('e',"floating eye"),random,hostile MONSTER:('e',"floating eye"),random,hostile MONSTER:('e',"floating eye"),random,hostile MONSTER:('y',"yellow light"),random,hostile MONSTER:('y',"yellow light"),random,hostile MONSTER:('y',"yellow light"),random,hostile MONSTER:('A',"couatl"),random MONSTER:'D',random MONSTER:'D',random MONSTER:'D',random MONSTER:'D',random MONSTER:'D',random MONSTER:'E',random MONSTER:'E',random MONSTER:'E',random MONSTER:'J',random MONSTER:'J',random MONSTER:('&',"djinni"),random,hostile MONSTER:('&',"djinni"),random,hostile MONSTER:('&',"djinni"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"fog cloud"),random,hostile MONSTER:('v',"energy vortex"),random,hostile MONSTER:('v',"energy vortex"),random,hostile MONSTER:('v',"energy vortex"),random,hostile MONSTER:('v',"energy vortex"),random,hostile MONSTER:('v',"energy vortex"),random,hostile MONSTER:('v',"steam vortex"),random,hostile MONSTER:('v',"steam vortex"),random,hostile MONSTER:('v',"steam vortex"),random,hostile MONSTER:('v',"steam vortex"),random,hostile MONSTER:('v',"steam vortex"),random,hostile MAZE:"fire",' ' FLAGS: noteleport,hardfloor,shortsighted GEOMETRY:center,center # The player lands, upon arrival, in the # lower-right. The location of the # portal to the next level is randomly chosen. # This map has no visible outer boundary, and # is mostly open area, with lava lakes and bunches of fire traps. MAP ............................................................................ ....LLLLLLLL............L.......................LLL......................... ...LL...................L......................LLLL................LL....... ...L.............LLLL...LL....LL...............LLLLL.............LLL........ .LLLL..............LL....L.....LLL..............LLLL..............LLLL...... ..........LLLL...LLLL...LLL....LLL......L........LLLL....LL........LLL...... ........LLLLLLL...LL.....L......L......LL.........LL......LL........LL...L.. ........LL..LLL..LL......LL......LLLL..L.........LL......LLL............LL.. ....L..LL....LLLLL.................LLLLLLL.......L......LL............LLLLLL ....L..L.....LL.LLLL.......L............L........LLLLL.LL......LL.........LL ....LL........L...LL......LL.............LLL.....L...LLL.......LLL.........L .....LLLLLL........L.......LLL.............L....LL...L.LLL......LLLLLLL..... ..........LLLL............LL.L.............L....L...LL.........LLL..LLL..... ...........................LLLLL...........LL...L...L........LLLL..LLLLLL... .....LLLL.............LL....LL.......LLL...LL.......L..LLL....LLLLLLL....... .......LLL.........LLLLLLLLLLL......LLLLL...L...........LL...LL...LL........ .........LL.......LL.........LL.......LLL....L..LLL....LL.........LL........ ..........LLLLLLLLL...........LL....LLL.......LLLLL.....LL........LL........ .................L.............LLLLLL............LL...LLLL.........LL....... .................................LL....................LL................... ENDMAP TELEPORT_REGION:(69,16,69,16),(0,0,0,0) PORTAL:(0,0,75,19),(65,13,75,19),"water" TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random # An assortment of fire-appropriate nasties MONSTER:('D',"red dragon"),random MONSTER:('&',"balrog"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile MONSTER:('v',"fire vortex"),random MONSTER:('d',"hell hound"),random # MONSTER:('H',"fire giant"),random MONSTER:('&',"barbed devil"),random MONSTER:('d',"hell hound"),random MONSTER:(''',"stone golem"),random MONSTER:('&',"pit fiend"),random MONSTER:('E',"fire elemental"),random,hostile # MONSTER:('E',"fire elemental"),random,hostile MONSTER:('d',"hell hound"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile MONSTER:('s',"scorpion"),random MONSTER:('H',"fire giant"),random # MONSTER:('d',"hell hound"),random MONSTER:('v',"dust vortex"),random MONSTER:('v',"fire vortex"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile MONSTER:('d',"hell hound"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:(''',"stone golem"),random MONSTER:('S',"pit viper"),random MONSTER:('S',"pit viper"),random MONSTER:('v',"fire vortex"),random # MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile MONSTER:('H',"fire giant"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('v',"fire vortex"),random MONSTER:('v',"fire vortex"),random MONSTER:('&',"pit fiend"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('S',"pit viper"),random # MONSTER:(':',"salamander"),random,hostile MONSTER:(':',"salamander"),random,hostile MONSTER:('H',"minotaur"),random MONSTER:(':',"salamander"),random,hostile MONSTER:('v',"steam vortex"),random MONSTER:(':',"salamander"),random,hostile MONSTER:(':',"salamander"),random,hostile # MONSTER:('H',"fire giant"),random MONSTER:('&',"barbed devil"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('v',"fire vortex"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile MONSTER:('d',"hell hound"),random MONSTER:('H',"fire giant"),random MONSTER:('&',"pit fiend"),random MONSTER:('E',"fire elemental"),random,hostile MONSTER:('E',"fire elemental"),random,hostile # MONSTER:('&',"barbed devil"),random MONSTER:(':',"salamander"),random,hostile MONSTER:('v',"steam vortex"),random MONSTER:(':',"salamander"),random,hostile MONSTER:(':',"salamander"),random,hostile OBJECT:('`',"boulder"),random OBJECT:('`',"boulder"),random OBJECT:('`',"boulder"),random OBJECT:('`',"boulder"),random OBJECT:('`',"boulder"),random MAZE:"water",' ' FLAGS: noteleport,hardfloor,shortsighted MESSAGE: "You find yourself suspended in an air bubble surrounded by water." GEOMETRY:center,center # The player lands upon arrival to an air bubble # within the leftmost third of the level. The # portal to the next level is randomly located in an air # bubble within the rightmost third of the level. # Bubbles are generated by special code in mkmaze.c for now. MAP WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW ENDMAP TELEPORT_REGION:(0,0,25,19),(0,0,0,0) PORTAL:(51,0,75,19),(0,0,0,0),"astral" # A fisherman's dream... MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"giant eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"electric eel"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"kraken"),random MONSTER:(';',"shark"),random MONSTER:(';',"shark"),random MONSTER:(';',"shark"),random MONSTER:(';',"shark"),random MONSTER:(';',"piranha"),random MONSTER:(';',"piranha"),random MONSTER:(';',"piranha"),random MONSTER:(';',"piranha"),random MONSTER:(';',"jellyfish"),random MONSTER:(';',"jellyfish"),random MONSTER:(';',"jellyfish"),random MONSTER:(';',"jellyfish"),random MONSTER:';',random MONSTER:';',random MONSTER:';',random MONSTER:';',random # These guys feel like home here MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MONSTER:('E',"water elemental"),random,hostile MAZE:"astral",' ' FLAGS: noteleport,hardfloor,nommap,shortsighted,solidify MESSAGE: "You arrive on the Astral Plane!" MESSAGE: "Here the High Temple of %d is located." MESSAGE: "You sense alarm, hostility, and excitement in the air!" GEOMETRY:center,center MAP --------------- |.............| |..---------..| |..|.......|..| --------------- |..|.......|..| --------------- |.............| |..|.......|..| |.............| |..---------..-| |-------| |..|.......|..| |-------| |-..---------..| |..|.......|...-| |-.......-| |..|.......|..| |-.......-| |-...|.......|..| |..|.......|....-|-.........-||..----+----..||-.........-|-....|.......|..| |..|.......+.....+...........||.............||...........+.....+.......|..| |..|.......|....-|-.........-|--|.........|--|-.........-|-....|.......|..| |..|.......|...-| |-.......-| -|---+---|- |-.......-| |-...|.......|..| |..---------..-| |---+---| |-.......-| |---+---| |-..---------..| |.............| |...|-----|-.........-|-----|...| |.............| --------------- |.........|...........|.........| --------------- -------...|-.........-|...------- |....|-.......-|....| ---...|---+---|...--- |...............| ----------------- ENDMAP # chance to alter above map and turn the wings of the bottom-center into # a pair of big (5x15) rooms $loopindx = 0 LOOP [2] { $loopindx = $loopindx + 1 # 3.6.[01]: 75% chance that both sides opened up, 25% that neither did; # 3.6.2: 60% twice == 36% chance that both sides open up, 24% left side # only, 24% right side only, 16% that neither side opens up IF [60%] { IF [$loopindx == 1] { TERRAIN:fillrect (17,14, 30,18),'.' WALLIFY # temporarily close off the area to be filled so that it doesn't cover # the entire entry area TERRAIN:(33,18), '|' $hall = selection:floodfill(30,16) # re-connect the opened wing with the rest of the map TERRAIN:(33,18), '.' } ELSE { TERRAIN:fillrect (44,14, 57,18),'.' WALLIFY TERRAIN:(41,18), '|' $hall = selection:floodfill(44,16) TERRAIN:(41,18), '.' } # extra monsters; was [6 + 3d4] when both wings were opened up at once LOOP [3 + 2d3] { MONSTER:('A',"Angel"),rndcoord($hall),noalign,hostile [50%]: MONSTER:random,rndcoord($hall),hostile } } } # Rider locations $place = { (23,9),(37,14),(51,9) } SHUFFLE: $place # Where the player will land on arrival TELEPORT_REGION:(29,15,45,15),(30,15,44,15) # Lit courts REGION:(01,05,16,14),lit,"ordinary",filled,irregular REGION:(31,01,44,10),lit,"ordinary",filled,irregular REGION:(61,05,74,14),lit,"ordinary",filled,irregular # A Sanctum for each alignment # The shrines' alignments are shuffled for # each game REGION:(04,07,10,11),lit,"temple" REGION:(34,03,40,07),lit,"temple" REGION:(64,07,70,11),lit,"temple" ALTAR:(07,09),align[0],sanctum ALTAR:(37,05),align[1],sanctum ALTAR:(67,09),align[2],sanctum # Doors DOOR:closed,(11,09) DOOR:closed,(17,09) DOOR:locked,(23,12) DOOR:locked,(37,08) DOOR:closed,(37,11) DOOR:closed,(37,17) DOOR:locked,(51,12) DOOR:locked,(57,09) DOOR:closed,(63,09) # Non diggable and phazeable everywhere NON_DIGGABLE:(00,00,74,19) NON_PASSWALL:(00,00,74,19) # Moloch's horde # West round room MONSTER:('@',"aligned priest"),(18,09),noalign,hostile MONSTER:('@',"aligned priest"),(19,08),noalign,hostile MONSTER:('@',"aligned priest"),(19,09),noalign,hostile MONSTER:('@',"aligned priest"),(19,10),noalign,hostile MONSTER:('A',"Angel"),(20,09),noalign,hostile MONSTER:('A',"Angel"),(20,10),noalign,hostile MONSTER:('&',"Pestilence"),$place[0],hostile # South-central round room MONSTER:('@',"aligned priest"),(36,12),noalign,hostile MONSTER:('@',"aligned priest"),(37,12),noalign,hostile MONSTER:('@',"aligned priest"),(38,12),noalign,hostile MONSTER:('@',"aligned priest"),(36,13),noalign,hostile MONSTER:('A',"Angel"),(38,13),noalign,hostile MONSTER:('A',"Angel"),(37,13),noalign,hostile MONSTER:('&',"Death"),$place[1],hostile # East round room MONSTER:('@',"aligned priest"),(56,09),noalign,hostile MONSTER:('@',"aligned priest"),(55,08),noalign,hostile MONSTER:('@',"aligned priest"),(55,09),noalign,hostile MONSTER:('@',"aligned priest"),(55,10),noalign,hostile MONSTER:('A',"Angel"),(54,09),noalign,hostile MONSTER:('A',"Angel"),(54,10),noalign,hostile MONSTER:('&',"Famine"),$place[2],hostile # # The aligned horde # # We do not know in advance the alignment of the # player. The mpeaceful bit will need resetting # when the level is created. The setting here is # but a place holder. # # West court MONSTER:('@',"aligned priest"),(12,07),chaos,hostile MONSTER:('@',"aligned priest"),(13,07),chaos,peaceful MONSTER:('@',"aligned priest"),(14,07),law,hostile MONSTER:('@',"aligned priest"),(12,11),law,peaceful MONSTER:('@',"aligned priest"),(13,11),neutral,hostile MONSTER:('@',"aligned priest"),(14,11),neutral,peaceful MONSTER:('A',"Angel"),(11,05),chaos,hostile MONSTER:('A',"Angel"),(12,05),chaos,peaceful MONSTER:('A',"Angel"),(13,05),law,hostile MONSTER:('A',"Angel"),(11,13),law,peaceful MONSTER:('A',"Angel"),(12,13),neutral,hostile MONSTER:('A',"Angel"),(13,13),neutral,peaceful # Central court MONSTER:('@',"aligned priest"),(32,09),chaos,hostile MONSTER:('@',"aligned priest"),(33,09),chaos,peaceful MONSTER:('@',"aligned priest"),(34,09),law,hostile MONSTER:('@',"aligned priest"),(40,09),law,peaceful MONSTER:('@',"aligned priest"),(41,09),neutral,hostile MONSTER:('@',"aligned priest"),(42,09),neutral,peaceful MONSTER:('A',"Angel"),(31,08),chaos,hostile MONSTER:('A',"Angel"),(32,08),chaos,peaceful MONSTER:('A',"Angel"),(31,09),law,hostile MONSTER:('A',"Angel"),(42,08),law,peaceful MONSTER:('A',"Angel"),(43,08),neutral,hostile MONSTER:('A',"Angel"),(43,09),neutral,peaceful # East court MONSTER:('@',"aligned priest"),(60,07),chaos,hostile MONSTER:('@',"aligned priest"),(61,07),chaos,peaceful MONSTER:('@',"aligned priest"),(62,07),law,hostile MONSTER:('@',"aligned priest"),(60,11),law,peaceful MONSTER:('@',"aligned priest"),(61,11),neutral,hostile MONSTER:('@',"aligned priest"),(62,11),neutral,peaceful MONSTER:('A',"Angel"),(61,05),chaos,hostile MONSTER:('A',"Angel"),(62,05),chaos,peaceful MONSTER:('A',"Angel"),(63,05),law,hostile MONSTER:('A',"Angel"),(61,13),law,peaceful MONSTER:('A',"Angel"),(62,13),neutral,hostile MONSTER:('A',"Angel"),(63,13),neutral,peaceful # # Assorted nasties MONSTER:'L',random,hostile MONSTER:'L',random,hostile MONSTER:'L',random,hostile MONSTER:'V',random,hostile MONSTER:'V',random,hostile MONSTER:'V',random,hostile MONSTER:'D',random,hostile MONSTER:'D',random,hostile MONSTER:'D',random,hostile NetHack-3.6.7/dat/engrave.txt000066400000000000000000000037111437325207100160120ustar00rootroot00000000000000# NetHack 3.6 engrave.txt $NHDT-Date: 1524689579 2018/04/25 20:52:59 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.2 $ # 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 # So Long... 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 NetHack-3.6.7/dat/epitaph.txt000066400000000000000000000337771437325207100160340ustar00rootroot00000000000000# NetHack 3.6 epitaph.txt $NHDT-Date: 1524689580 2018/04/25 20:53:00 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.3 $ # 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. NetHack-3.6.7/dat/gehennom.des000066400000000000000000000512761437325207100161300ustar00rootroot00000000000000# NetHack 3.6 gehennom.des $NHDT-Date: 1432512783 2015/05/25 00:13:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.13 $ # Copyright (c) 1989 by Jean-Christophe Collet # Copyright (c) 1992 by M. Stephenson and Izchak Miller # NetHack may be freely redistributed. See license for details. # MAZE: "valley", ' ' FLAGS: noteleport,hardfloor,nommap GEOMETRY:center,center MAP ---------------------------------------------------------------------------- |...S.|..|.....| |.....-| |................| |...............| |...| |---|.|.--.---.| |......--- ----..........-----.-----....---........---.-.| | |.|.|..| |.| --........| |.............| |.......---| |-...........--| | |...S..| |.| |.......-----.......------| |--------..---......------- | |----------- |.| |-......| |....|...-- |...-----................---- | |.....S....---.| |.......| |....|...| |..............----------- | |.....|.|......| |.....--- |......--- |....---.......| | |.....|.|------| |....-- --....-- |-------- ----....--------------- | |.....|--......---BBB-| |...-- |.......| |..................| | |..........||........-| --...| |.......| |...||.............| | |.....|...-||-........------....| |.......---- |...||.............-- | |.....|--......---...........--------..........| |.......---------...-- | |.....| |------| |--.......--| |..B......----- -----....| |.| |....--- | |.....| |......--| ------..| |----..B......| |.--------.-- |-.....---| |------ |........| |.|....| |.....----BBBB---------...........---.........| | |........| |...|..| |.....| |-.............--------...........---| | --.....-----------.| |....-----.....---------- |.........---- | | |..|..B...........| |.|..........|.| |.|........| | ---------------------------------------------------------------------------- ENDMAP # Make the path somewhat unpredictable # If you get "lucky", you may have to go through all three graveyards. IF [50%] { TERRAIN:line (50,8),(53,8), '-' TERRAIN:line (40,8),(43,8), 'B' } IF [50%] { TERRAIN:(27,12),'|' TERRAIN:line (27,3),(29,3), 'B' TERRAIN:(28,2), '-' } IF [50%] { TERRAIN:line (16,10),(16,11),'|' TERRAIN:line (9,13),(14,13), 'B' } # Dungeon Description # The shrine to Moloch. REGION:(01,06,05,14),lit,"temple" # The Morgues REGION:(19,01,24,08),unlit,"morgue",filled,irregular REGION:(09,14,16,18),unlit,"morgue",filled,irregular REGION:(37,09,43,14),unlit,"morgue",filled,irregular # Stairs STAIR:(01,01),down # Branch location BRANCH:(66,17,66,17),(0,0,0,0) TELEPORT_REGION:(58,09,72,18),(0,0,0,0),down # Secret Doors DOOR:locked,(04,01) DOOR:locked,(08,04) DOOR:locked,(06,06) # The altar of Moloch. ALTAR:(03,10),noalign,shrine # Non diggable walls - everywhere! NON_DIGGABLE:(00,00,75,19) # Objects # **LOTS** of dead bodies (all human). # note: no priest(esse)s or monks - maybe Moloch has a *special* # fate reserved for members of *those* classes. # OBJECT:('%',"corpse"),random,montype:"archeologist" OBJECT:('%',"corpse"),random,montype:"archeologist" OBJECT:('%',"corpse"),random,montype:"barbarian" OBJECT:('%',"corpse"),random,montype:"barbarian" OBJECT:('%',"corpse"),random,montype:"caveman" OBJECT:('%',"corpse"),random,montype:"cavewoman" OBJECT:('%',"corpse"),random,montype:"healer" OBJECT:('%',"corpse"),random,montype:"healer" OBJECT:('%',"corpse"),random,montype:"knight" OBJECT:('%',"corpse"),random,montype:"knight" OBJECT:('%',"corpse"),random,montype:"ranger" OBJECT:('%',"corpse"),random,montype:"ranger" OBJECT:('%',"corpse"),random,montype:"rogue" OBJECT:('%',"corpse"),random,montype:"rogue" OBJECT:('%',"corpse"),random,montype:"samurai" OBJECT:('%',"corpse"),random,montype:"samurai" OBJECT:('%',"corpse"),random,montype:"tourist" OBJECT:('%',"corpse"),random,montype:"tourist" OBJECT:('%',"corpse"),random,montype:"valkyrie" OBJECT:('%',"corpse"),random,montype:"valkyrie" OBJECT:('%',"corpse"),random,montype:"wizard" OBJECT:('%',"corpse"),random,montype:"wizard" # # Some random weapons and armor. # OBJECT:'[',random OBJECT:'[',random OBJECT:'[',random OBJECT:'[',random OBJECT:')',random OBJECT:')',random OBJECT:')',random OBJECT:')',random # # Some random loot. # OBJECT:('*',"ruby"),random OBJECT:'*',random OBJECT:'*',random OBJECT:'!',random OBJECT:'!',random OBJECT:'!',random OBJECT:'?',random OBJECT:'?',random OBJECT:'?',random OBJECT:'/',random OBJECT:'/',random OBJECT:'=',random OBJECT:'=',random OBJECT:'+',random OBJECT:'+',random OBJECT:'(',random OBJECT:'(',random OBJECT:'(',random # (Not so) Random traps. TRAP:"spiked pit", (05,02) TRAP:"spiked pit", (14,05) TRAP:"sleep gas", (03,01) TRAP:"board", (21,12) TRAP:"board", random TRAP:"dart", (60,01) TRAP:"dart", (26,17) TRAP:"anti magic", random TRAP:"anti magic", random TRAP:"magic", random TRAP:"magic", random # Random monsters. # The ghosts. MONSTER:(' ',"ghost"),random MONSTER:(' ',"ghost"),random MONSTER:(' ',"ghost"),random MONSTER:(' ',"ghost"),random MONSTER:(' ',"ghost"),random MONSTER:(' ',"ghost"),random # Add a few bats for atmosphere. MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random MONSTER:('B',"vampire bat"),random # And a lich for good measure. MONSTER:'L',random # Some undead nasties for good measure MONSTER:'V',random MONSTER:'V',random MONSTER:'V',random MONSTER:'Z',random MONSTER:'Z',random MONSTER:'Z',random MONSTER:'Z',random MONSTER:'M',random MONSTER:'M',random MONSTER:'M',random MONSTER:'M',random # # The Juiblex level # MAZE:"juiblex",' ' FLAGS:noteleport,shortsighted INIT_MAP:mines,'.','}',true,true,unlit,false # guarantee at least one open spot to ensure successful stair placement GEOMETRY:left,bottom MAP xxxxxxxx xx...xxx xxx...xx xxxx.xxx xxxxxxxx ENDMAP OBJECT:('`',"boulder"),random GEOMETRY:right,top MAP xxxxxxxx xxxx.xxx xxx...xx xx...xxx xxxxxxxx ENDMAP OBJECT:('`',"boulder"),random # lair GEOMETRY:center,center MAP xx}}}}}x}}}}}x}}}}}x}}}}}x}}}}}x}}}}}x}}}}}x}}}}}xx x}}}.}}}}}..}}}..}}}}}..}}}..}}}}}..}}}..}}}}}.}}}x }}}...}}..}}.}.}}.}}.}}}...}}}.}}}..}}}..}}}}...}}} x}}}.}}.}}}.}}.}}.}}...}}.}}.....}}.....}....}.}}}x xx}}}..}}}.}}.}}.}}..}}.....}}.}}}.}}.}}}}}}}}}}}xx x}}}..}}}}}.}}.}}.}}...}}}}}.....}}.}}}}}}.....}}}x }}}..}}...}}..}}.}}}.}}}...}}}.}}}.}.}}}}..P.P..}}} }}.}}}}...}}}}}.}...}}}..P..}}}.}.}}}.}}}}.....}}}} }.}}}}.}}.}..}.}}}}}}}..P.P..}}}.}}}.}}..}}...}}}}x x}}}}.}}}}....}}}}}.}}}..P..}}}.}}}}.}}..}}...}}}.} }}}}..}}.}}..}}}}...}}}}...}}}.}}}}}.}}}}.}}}}}}.}} }}}...}}...}}}..}}}}}}}}}}}}.....}}}}.}}...}..}.}}} x}}}..}}.}}}}....}}..}}}..}}.....}}}}.}}}.}....}}}x xx}}}.}}}}..}}..}}..}}..}}..}}.}}}..}.}..}}}..}}}xx x}}}.}}}}....}}}}..}}....}}}}}}}...}}}....}}}}.}}}x }}}...}}}....}}}..}}}....}}}..}}...}}}....}}}...}}} x}}}.}}}}}..}}}..}}}}}..}}}..}}}}}..}}}..}}}}}.}}}x xx}}}}}x}}}}}x}}}}}x}}}}}x}}}}}x}}}}}x}}}}}x}}}}}xx ENDMAP # Random registers $monster = monster: { 'j','b','P','F' } SHUFFLE: $monster $place = { (04,02),(46,02),(04,15),(46,15) } SHUFFLE: $place # Dungeon description REGION:(00,00,50,17),unlit,"swamp" MAZEWALK:(00,09),west MAZEWALK:(50,08),east STAIR:levregion(01,00,11,20),(0,0,50,17),down STAIR:levregion(69,00,79,20),(0,0,50,17),up BRANCH:levregion(01,00,11,20),(0,0,50,17) TELEPORT_REGION:levregion(01,00,11,20),(0,0,50,17),up TELEPORT_REGION:levregion(69,00,79,20),(0,0,50,17),down FOUNTAIN:$place[0] MONSTER:('m',"giant mimic"),$place[1],m_feature "fountain" MONSTER:('m',"giant mimic"),$place[2],m_feature "fountain" MONSTER:('m',"giant mimic"),$place[3],m_feature "fountain" # The demon of the swamp MONSTER:('&',"Juiblex"),(25,08) # And a couple demons MONSTER:('i',"lemure"),(43,08) MONSTER:('i',"lemure"),(44,08) MONSTER:('i',"lemure"),(45,08) # Some liquids and gems OBJECT:'*',(43,06) OBJECT:'*',(45,06) OBJECT:'!',(43,09) OBJECT:'!',(44,09) OBJECT:'!',(45,09) # And lots of blobby monsters MONSTER:$monster[0],(25,06) MONSTER:$monster[1],(24,07) MONSTER:$monster[2],(26,07) MONSTER:$monster[3],(23,08) MONSTER:$monster[3],(27,08) MONSTER:$monster[2],(24,09) MONSTER:$monster[1],(26,09) MONSTER:$monster[0],(25,10) MONSTER:'j',random MONSTER:'j',random MONSTER:'j',random MONSTER:'j',random MONSTER:'P',random MONSTER:'P',random MONSTER:'P',random MONSTER:'P',random MONSTER:'b',random MONSTER:'b',random MONSTER:'b',random MONSTER:'F',random MONSTER:'F',random MONSTER:'F',random MONSTER:'m',random MONSTER:'m',random MONSTER:(';',"jellyfish"),random MONSTER:(';',"jellyfish"),random # Some random objects OBJECT:'!',random OBJECT:'!',random OBJECT:'!',random OBJECT:'%',random OBJECT:'%',random OBJECT:'%',random OBJECT:('`',"boulder"),random # Some traps TRAP:"sleep gas",random TRAP:"sleep gas",random TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"magic",random TRAP:"magic",random # # The Orcus Level # MAZE:"orcus",random FLAGS: noteleport,shortsighted GEOMETRY:right,center # A ghost town MAP .|....|....|....|..............|....|........ .|....|....|....|..............|....|........ .|....|....|....|--...-+-------|............. .|....|....|....|..............+............. .|.........|....|..............|....|........ .--+-...-+----+--....-------...--------.-+--- .....................|.....|................. .....................|.....|................. .--+----....-+---....|.....|...----------+--- .|....|....|....|....---+---...|......|...... .|.........|....|..............|......|...... .----...---------.....-----....+......|...... .|........................|....|......|...... .----------+-...--+--|....|....----------+--- .|....|..............|....+....|............. .|....+.......|......|....|....|............. .|....|.......|......|....|....|............. ENDMAP MAZEWALK:(00,06),west # Entire main area REGION:(01,00,44,16),unlit,"ordinary" STAIR:(33,15),down STAIR:levregion(01,00,12,20),levregion(20,01,70,20),up BRANCH:levregion(01,00,12,20),levregion(20,01,70,20) TELEPORT_REGION:levregion(01,00,12,20),levregion(20,01,70,20) # Wall "ruins" OBJECT:('`',"boulder"),(19,02) OBJECT:('`',"boulder"),(20,02) OBJECT:('`',"boulder"),(21,02) OBJECT:('`',"boulder"),(36,02) OBJECT:('`',"boulder"),(36,03) OBJECT:('`',"boulder"),(06,04) OBJECT:('`',"boulder"),(05,05) OBJECT:('`',"boulder"),(06,05) OBJECT:('`',"boulder"),(07,05) OBJECT:('`',"boulder"),(39,05) OBJECT:('`',"boulder"),(08,08) OBJECT:('`',"boulder"),(09,08) OBJECT:('`',"boulder"),(10,08) OBJECT:('`',"boulder"),(11,08) OBJECT:('`',"boulder"),(06,10) OBJECT:('`',"boulder"),(05,11) OBJECT:('`',"boulder"),(06,11) OBJECT:('`',"boulder"),(07,11) OBJECT:('`',"boulder"),(21,11) OBJECT:('`',"boulder"),(21,12) OBJECT:('`',"boulder"),(13,13) OBJECT:('`',"boulder"),(14,13) OBJECT:('`',"boulder"),(15,13) OBJECT:('`',"boulder"),(14,14) # Doors DOOR:closed,(23,02) DOOR:open,(31,03) DOOR:nodoor,(03,05) DOOR:closed,(09,05) DOOR:closed,(14,05) DOOR:closed,(41,05) DOOR:open,(03,08) DOOR:nodoor,(13,08) DOOR:open,(41,08) DOOR:closed,(24,09) DOOR:closed,(31,11) DOOR:open,(11,13) DOOR:closed,(18,13) DOOR:closed,(41,13) DOOR:open,(26,14) DOOR:closed,(06,15) # Special rooms ALTAR:(24,07),noalign,sanctum REGION:(22,12,25,16),unlit,"morgue" REGION:(32,09,37,12),lit,"shop" REGION:(12,00,15,04),lit,"shop" # Some traps. TRAP:"spiked pit", random TRAP:"sleep gas", random TRAP:"anti magic", random TRAP:"fire", random TRAP:"fire", random TRAP:"fire", random TRAP:"magic", random TRAP:"magic", random # Some random objects OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random OBJECT:random,random # The resident nasty MONSTER:('&',"Orcus"),(33,15) # And its preferred companions MONSTER:('Z',"human zombie"),(32,15) MONSTER:(' ',"shade"),(32,14) MONSTER:(' ',"shade"),(32,16) MONSTER:('V',"vampire"),(35,16) MONSTER:('V',"vampire"),(35,14) MONSTER:('V',"vampire lord"),(36,14) MONSTER:('V',"vampire lord"),(36,15) # Randomly placed companions MONSTER:('Z',"skeleton"),random MONSTER:('Z',"skeleton"),random MONSTER:('Z',"skeleton"),random MONSTER:('Z',"skeleton"),random MONSTER:('Z',"skeleton"),random MONSTER:(' ',"shade"),random MONSTER:(' ',"shade"),random MONSTER:(' ',"shade"),random MONSTER:(' ',"shade"),random MONSTER:('Z',"giant zombie"),random MONSTER:('Z',"giant zombie"),random MONSTER:('Z',"giant zombie"),random MONSTER:('Z',"ettin zombie"),random MONSTER:('Z',"ettin zombie"),random MONSTER:('Z',"ettin zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('Z',"human zombie"),random MONSTER:('V',"vampire"),random MONSTER:('V',"vampire"),random MONSTER:('V',"vampire"),random MONSTER:('V',"vampire lord"),random MONSTER:('V',"vampire lord"),random # A few more for the party MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random MONSTER:random,random # # The Asmodeus Level # MAZE:"asmodeus",random FLAGS: noteleport # First part GEOMETRY:half-left,center MAP --------------------- |.............|.....| |.............S.....| |---+------------...| |.....|.........|-+-- |..---|.........|.... |..|..S.........|.... |..|..|.........|.... |..|..|.........|-+-- |..|..-----------...| |..S..........|.....| --------------------- ENDMAP STAIR:levregion(01,00,6,20),levregion(6,1,70,16),up BRANCH:levregion(01,00,6,20),levregion(6,1,70,16) TELEPORT_REGION:levregion(01,00,6,20),levregion(6,1,70,16) # Doors DOOR:closed,(04,03) DOOR:locked,(18,04) DOOR:closed,(18,08) # STAIR:(13,07),down # Non diggable walls NON_DIGGABLE:(00,00,20,11) # Entire main area REGION:(01,01,20,10),unlit,"ordinary" # The fellow in residence MONSTER:('&',"Asmodeus"),(12,07) # Some random weapons and armor. OBJECT:'[',random OBJECT:'[',random OBJECT:')',random OBJECT:')',random OBJECT:'*',random OBJECT:'!',random OBJECT:'!',random OBJECT:'?',random OBJECT:'?',random OBJECT:'?',random # Some traps. TRAP:"spiked pit", (05,02) TRAP:"fire", (08,06) TRAP:"sleep gas", random TRAP:"anti magic", random TRAP:"fire", random TRAP:"magic", random TRAP:"magic", random # Random monsters. MONSTER:(' ',"ghost"),(11,07) MONSTER:('&',"horned devil"),(10,05) MONSTER:'L',random # Some Vampires for good measure MONSTER:'V',random MONSTER:'V',random MONSTER:'V',random # Second part GEOMETRY:half-right,center MAP --------------------------------- ................................| ................................+ ................................| --------------------------------- ENDMAP MAZEWALK:(32,02),east # Non diggable walls NON_DIGGABLE:(00,00,32,04) DOOR:closed,(32,02) MONSTER:'&',random MONSTER:'&',random MONSTER:'&',random TRAP:"anti magic", random TRAP:"fire", random TRAP:"magic", random # # The Baalzebub level # MAZE:"baalz",' ' FLAGS: noteleport,corrmaze GEOMETRY:right,center # 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 MAP ------------------------------------------------- | ---- ---- | ---- | ----------- | | ------ | ---------|.........|--P | F....| -------|...........-------------- ---....|--|..................S............|---- +...--....S..----------------|............S...| ---....|--|..................|............|---- | F....| -------|...........-----S-------- | ------ | ---------|.........|--P | ---- | ----------- | | ---- ---- ------------------------------------------------- ENDMAP STAIR:levregion(01,00,15,20),levregion(15,1,70,16),up BRANCH:levregion(01,00,15,20),levregion(15,1,70,16) TELEPORT_REGION:levregion(01,00,15,20),levregion(15,1,70,16) # this actually leaves the farthest right column diggable NON_DIGGABLE:(00,00,47,12) MAZEWALK:(00,06),west STAIR:(44,06),down DOOR:locked,(00,06) IF [50%] { TERRAIN:(34,08),'-' TERRAIN:(34,04),'S' TERRAIN:(29,05),'|' TERRAIN:(29,07),'S' } # The fellow in residence MONSTER:('&',"Baalzebub"),(35,06) # Some random weapons and armor. OBJECT:'[',random OBJECT:'[',random OBJECT:')',random OBJECT:')',random OBJECT:'*',random OBJECT:'!',random OBJECT:'!',random OBJECT:'?',random OBJECT:'?',random OBJECT:'?',random # Some traps. TRAP:"spiked pit", random TRAP:"fire", random TRAP:"sleep gas", random TRAP:"anti magic", random TRAP:"fire", random TRAP:"magic", random TRAP:"magic", random # Random monsters. MONSTER:(' ',"ghost"),(37,07) MONSTER:('&',"horned devil"),(32,05) MONSTER:('&',"barbed devil"),(38,07) MONSTER:'L',random # Some Vampires for good measure MONSTER:'V',random MONSTER:'V',random MONSTER:'V',random # # The Sanctum Level # MAZE:"sanctum", ' ' FLAGS: noteleport,hardfloor,nommap # This is outside the main map, below, so we must do it before adding # that map and anchoring coordinates to it. This extends the invisible # barrier up to the top row, which falls outside the drawn map. NON_PASSWALL:(39,00,41,00) GEOMETRY:center,center MAP ---------------------------------------------------------------------------- | -------------- | | |............| ------- | | -------............----- |.....| | | |......................| --.....| --------- | | ----......................---------|......---- |.......| | | |........---------..........|......+.........| ------+---..| | | ---........|.......|..........--S----|.........| |........|..| | | |..........|.......|.............| |.........-------..---------- | | |..........|.......|..........---- |..........|....|..|......| | | |..........|.......|..........| --.......----+---S---S--..| | | |..........---------..........| |.......|.............|..| | | ---...........................| -----+-------S---------S--- | | |...........................| |...| |......| |....|-- | | ----.....................---- |...---....--- ---......| | | |.....................| |..........| |.....---- | | -------...........----- --...------- |.....| | | |...........| |...| |.....| | | ------------- ----- ------- | ---------------------------------------------------------------------------- ENDMAP REGION:(15,07,21,10),lit,"temple" ALTAR:(18,08),noalign,sanctum REGION:(41,06,48,11),unlit,"morgue",filled,irregular # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Invisible barrier separating the left & right halves of the level NON_PASSWALL:(37,00,39,19) # Doors DOOR:closed,(40,06) DOOR:locked,(62,06) DOOR:closed,(46,12) DOOR:closed,(53,10) # Surround the temple with fire TRAP:"fire",(13,05) TRAP:"fire",(14,05) TRAP:"fire",(15,05) TRAP:"fire",(16,05) TRAP:"fire",(17,05) TRAP:"fire",(18,05) TRAP:"fire",(19,05) TRAP:"fire",(20,05) TRAP:"fire",(21,05) TRAP:"fire",(22,05) TRAP:"fire",(23,05) TRAP:"fire",(13,12) TRAP:"fire",(14,12) TRAP:"fire",(15,12) TRAP:"fire",(16,12) TRAP:"fire",(17,12) TRAP:"fire",(18,12) TRAP:"fire",(19,12) TRAP:"fire",(20,12) TRAP:"fire",(21,12) TRAP:"fire",(22,12) TRAP:"fire",(23,12) TRAP:"fire",(13,06) TRAP:"fire",(13,07) TRAP:"fire",(13,08) TRAP:"fire",(13,09) TRAP:"fire",(13,10) TRAP:"fire",(13,11) TRAP:"fire",(23,06) TRAP:"fire",(23,07) TRAP:"fire",(23,08) TRAP:"fire",(23,09) TRAP:"fire",(23,10) TRAP:"fire",(23,11) # Some traps. TRAP:"spiked pit", random TRAP:"fire", random TRAP:"sleep gas", random TRAP:"anti magic", random TRAP:"fire", random TRAP:"magic", random # Some random objects OBJECT:'[',random OBJECT:'[',random OBJECT:'[',random OBJECT:'[',random OBJECT:')',random OBJECT:')',random OBJECT:'*',random OBJECT:'!',random OBJECT:'!',random OBJECT:'!',random OBJECT:'!',random OBJECT:'?',random OBJECT:'?',random OBJECT:'?',random OBJECT:'?',random OBJECT:'?',random # Some monsters. MONSTER:('&',"horned devil"),(14,12),hostile MONSTER:('&',"barbed devil"),(18,08),hostile MONSTER:('&',"erinys"),(10,04),hostile MONSTER:('&',"marilith"),(07,09),hostile MONSTER:('&',"nalfeshnee"),(27,08),hostile # Moloch's horde MONSTER:('@',"aligned priest"),(20,03),noalign,hostile MONSTER:('@',"aligned priest"),(15,04),noalign,hostile MONSTER:('@',"aligned priest"),(11,05),noalign,hostile MONSTER:('@',"aligned priest"),(11,07),noalign,hostile MONSTER:('@',"aligned priest"),(11,09),noalign,hostile MONSTER:('@',"aligned priest"),(11,12),noalign,hostile MONSTER:('@',"aligned priest"),(15,13),noalign,hostile MONSTER:('@',"aligned priest"),(17,13),noalign,hostile MONSTER:('@',"aligned priest"),(21,13),noalign,hostile # A few nasties MONSTER:'L',random MONSTER:'L',random MONSTER:'V',random MONSTER:'V',random MONSTER:'V',random STAIR:(63,15),up # Teleporting to this level is allowed after the invocation creates its # entrance. Force arrival in that case to be on rightmost third of level. TELEPORT_REGION:levregion(54,1,79,18),(0,0,0,0),down NetHack-3.6.7/dat/help000066400000000000000000000271171437325207100145030ustar00rootroot00000000000000 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! NetHack-3.6.7/dat/hh000066400000000000000000000207761437325207100141560ustar00rootroot00000000000000y 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 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) 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 . 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-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 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). NetHack-3.6.7/dat/history000066400000000000000000000363751437325207100152620ustar00rootroot00000000000000NetHack History file for release 3.6 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, transforming Hack into a very different game, and published (at least) three versions (1.0.1, 1.0.2, and 1.0.3) for UNIX(tm) machines to the Usenet. 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. Later, Mike coordinated a major rewrite 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. The same group subsequently released ten patch- level revisions and updates of 3.0. 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. 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. 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, is 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. Warwick Allison wrote a tiled version of NetHack for the Atari; he later contributed the tiles to the NetHack Development Team and tile support was then added to other platforms. 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 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, one of the founding members of the NetHack Development Team, Dr. Izchak Miller, 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--. 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 spellcasting 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 in 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. 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 a period of debugging, 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. Leading up to the release of 3.6.0 in early 2015, 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 as well as maintaining the X11 interface. Ken Lorber, Haoyang Wang, Pat Rankin, and Dean Luick maintained the port of NetHack 3.6.1 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 msdos 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 in February 2023 containing a security fix and some bug fixes. The official NetHack web site is maintained by Ken Lorber at http://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 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 NetHack-3.6.7/dat/keyhelp000066400000000000000000000061511437325207100152070ustar00rootroot00000000000000 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