Merge branch 'master' into derek-farming
* master: (160 commits) Add doors correctly bug fixes for nhsub Generate oracle monsters after subroom Generate minetown guards after subrooms ... Conflicts: src/do.c src/files.c src/hack.c src/mon.c src/vision.c
This commit is contained in:
+2
-2
@@ -1,5 +1,5 @@
|
||||
*.[ch] filter=NHtext merge=NHsubst
|
||||
*.sh filter=NHtext merge=NHsubst
|
||||
*.[ch] NHSUBST
|
||||
*.sh NHSUBST
|
||||
* text=auto
|
||||
*.hqx -text
|
||||
*.sln -text
|
||||
|
||||
@@ -36,6 +36,7 @@ Debug/
|
||||
Release/
|
||||
binary/
|
||||
build/
|
||||
ipch/
|
||||
Nethack.sln
|
||||
Nethack.sdf
|
||||
Nethack.opensdf
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Developer.txt filter=NHtext merge=NHsubst
|
||||
nhgitset.pl filter=NHtext merge=NHsubst
|
||||
hookdir/* filter=NHtext merge=NHsubst
|
||||
Developer.txt NHSUBST
|
||||
nhgitset.pl NHSUBST
|
||||
hooksdir/* NHSUBST
|
||||
* text=auto
|
||||
|
||||
+4
-4
@@ -136,9 +136,9 @@ B. Enabling variable expansion
|
||||
Variable expansion is controlled by the .gitattributes file.
|
||||
|
||||
To enable variable expansion:
|
||||
pattern filter=NHtext merge=NHsubst
|
||||
pattern NHSUBST
|
||||
To disable variable expansion:
|
||||
pattern -filter
|
||||
pattern -NHSUBST
|
||||
|
||||
More information: "git help gitattributes"
|
||||
|
||||
@@ -147,8 +147,8 @@ C. Oddities
|
||||
instead of "git add" or "git commit." Nothing terrible will happen if you
|
||||
use the wrong one, but the values will not be updated.
|
||||
|
||||
Due to the way this abuses git filters, the updated values are not visible
|
||||
in your working tree.
|
||||
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
|
||||
|
||||
@@ -42,9 +42,12 @@ you specify:
|
||||
|
||||
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.
|
||||
headers with the latest date, branch, and version. See Developer.txt for
|
||||
details.
|
||||
|
||||
|
||||
[*] git commit [-a] [-m "text"]
|
||||
@@ -57,7 +60,8 @@ 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.
|
||||
headers with the latest date, branch, and version. See Developer.txt for
|
||||
details.
|
||||
|
||||
|
||||
[*] git push [--all] [-u origin (branch)]
|
||||
|
||||
Executable → Regular
+7
-2
@@ -1,14 +1,19 @@
|
||||
#!/usr/bin/perl
|
||||
# wrapper for nhadd and nhcommit aliases
|
||||
# $NHDT-Date$
|
||||
# $NHDT-Date: 1427408239 2015/03/26 22:17:19 $
|
||||
|
||||
%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}: $!";
|
||||
}
|
||||
|
||||
$ENV{NHMODE} = 1;
|
||||
exec "git", @ARGV or die "Can't exec git: $!";
|
||||
|
||||
@@ -0,0 +1,386 @@
|
||||
#!/usr/bin/perl
|
||||
# nhsub
|
||||
# $NHDT-Date: 1427913635 2015/04/01 18:40:35 $
|
||||
|
||||
# Note: was originally called nhdate; the rename is not reflected in the code.
|
||||
|
||||
use strict;
|
||||
my %opt; #cmd v n f F (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,
|
||||
|
||||
# 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
|
||||
|
||||
# R [ MD] renamed in index
|
||||
|
||||
# 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 = '\\';
|
||||
}
|
||||
|
||||
# pick up the prefix for substitutions in this repo
|
||||
my $PREFIX = &git_config('nethack','substprefix');
|
||||
print "PREFIX: '$PREFIX'\n" if($opt{v});
|
||||
|
||||
my @rawlist = &cmdparse(@ARGV);
|
||||
push(@rawlist,'.') if($#rawlist == -1);
|
||||
|
||||
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 $ofile = $file . ".nht";
|
||||
open(TOUT, ">", $ofile) or die "Can't open $ofile";
|
||||
die "write failed: $!" unless defined syswrite(TOUT, $_);
|
||||
close TOUT or die "Can't close $ofile";
|
||||
rename $ofile, $file or die "Can't rename $ofile to $file";
|
||||
}
|
||||
|
||||
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 'commit' && $_ eq '--dry-run'){
|
||||
$opt{'n'} = 1;
|
||||
}
|
||||
shift @in;
|
||||
next;
|
||||
}
|
||||
if(m/^-(.*)/){
|
||||
foreach my $single ( split(//,$1) ){
|
||||
# don't do -v here from add/commit
|
||||
if($single ne 'v'){
|
||||
$opt{$single}++;
|
||||
} elsif($opt{cmd} eq 'date'){
|
||||
$opt{$single}++;
|
||||
}
|
||||
}
|
||||
}
|
||||
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});
|
||||
|
||||
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\$";
|
||||
}
|
||||
}
|
||||
|
||||
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) = @_;
|
||||
# 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));
|
||||
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<nhsub> - NetHack git command for substitution variables
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
C<git nhsub [-v[v[v]] [-n] [-f|-F] [--] [file...]>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
C<nhsub> rewrites the specified files by doing variable substitution for
|
||||
variables starting with the prefix specified in the repository's
|
||||
C<nethack.substprefix> configuration variable. C<nhsub> is also invoked
|
||||
internally from the implementation of the C<nhadd> and C<nhcommit>
|
||||
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<nhadd> or C<nhcommit>.
|
||||
|
||||
=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 temprorary files while recursing. Note
|
||||
that this overloads the C<-f> option of C<git add> and C<git commit>.
|
||||
|
||||
=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<nhadd> or C<nhcommit>.
|
||||
|
||||
=back
|
||||
+20
-7
@@ -3,7 +3,7 @@
|
||||
|
||||
# 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 = 2;
|
||||
my $version_new = 3;
|
||||
my $version_old = 0; # current version, if any (0 is no entry ergo new repo)
|
||||
|
||||
use Cwd;
|
||||
@@ -100,16 +100,29 @@ 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);
|
||||
|
||||
if($^O eq "MSWin32"){
|
||||
$cmd = '.git\\\\hooks\\\\NHtext';
|
||||
} else {
|
||||
$cmd = catfile(curdir(),'.git','hooks','NHtext');
|
||||
# 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);
|
||||
}
|
||||
&add_config('filter.NHtext.clean', "$cmd --clean %f");
|
||||
&add_config('filter.NHtext.smudge', "$cmd --smudge %f");
|
||||
|
||||
$cmd = catfile(curdir(),'.git','hooks','NHsubst');
|
||||
&add_config('merge.NHsubst.name', 'NetHack Keyword Substitution');
|
||||
|
||||
+3
-3
@@ -1,3 +1,3 @@
|
||||
*.def filter=NHtext merge=NHsubst
|
||||
*.des filter=NHtext merge=NHsubst
|
||||
*.txt filter=NHtext merge=NHsubst
|
||||
*.def NHSUBST
|
||||
*.des NHSUBST
|
||||
*.txt NHSUBST
|
||||
|
||||
@@ -20,3 +20,4 @@ nhdat
|
||||
dlb.lst
|
||||
guioptions
|
||||
porthelp
|
||||
NetHack.ad
|
||||
|
||||
+184
-172
@@ -70,25 +70,25 @@ DOOR:locked,(24,14)
|
||||
DOOR:closed,(31,14)
|
||||
DOOR:locked,(49,14)
|
||||
# Lord Carnarvon
|
||||
MONSTER:'@',"Lord Carnarvon",(25,10)
|
||||
MONSTER:('@',"Lord Carnarvon"),(25,10)
|
||||
# The treasure of Lord Carnarvon
|
||||
OBJECT:'(',"chest",(25,10)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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
|
||||
@@ -99,18 +99,18 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Monsters on siege duty.
|
||||
MONSTER: 'S',random,(60,09)
|
||||
MONSTER: 'M',random,(60,10)
|
||||
MONSTER: 'S',random,(60,11)
|
||||
MONSTER: 'S',random,(60,12)
|
||||
MONSTER: 'M',random,(60,13)
|
||||
MONSTER: 'S',random,(61,10)
|
||||
MONSTER: 'S',random,(61,11)
|
||||
MONSTER: 'S',random,(61,12)
|
||||
MONSTER: 'S',random,(30,03)
|
||||
MONSTER: 'M',random,(20,17)
|
||||
MONSTER: 'S',random,(67,02)
|
||||
MONSTER: 'S',random,(10,19)
|
||||
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.
|
||||
@@ -151,13 +151,13 @@ 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,true
|
||||
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,true
|
||||
REGION:(36,12,42,14),unlit,"ordinary",unfilled,true
|
||||
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,true
|
||||
REGION:(46,11,49,11),unlit,"ordinary",unfilled,irregular
|
||||
REGION:(48,13,51,14),unlit,"ordinary"
|
||||
# Doors
|
||||
DOOR:closed,(31,04)
|
||||
@@ -186,21 +186,21 @@ ALTAR:(26,15),align[2],altar
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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."
|
||||
@@ -231,33 +231,33 @@ TRAP:"dart",random
|
||||
TRAP:"rolling boulder",(32,10)
|
||||
TRAP:"rolling boulder",(40,16)
|
||||
# Random monsters.
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'M',random,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,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:'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.
|
||||
@@ -323,21 +323,21 @@ NON_DIGGABLE:(00,00,75,19)
|
||||
# The altar of Huhetotl. Unattended.
|
||||
ALTAR:(50,14),chaos,altar
|
||||
# Objects
|
||||
OBJECT:'(',"crystal ball",(50,14),blessed,5,"The Orb of Detection"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -347,34 +347,34 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:"rolling boulder",(46,14)
|
||||
# Random monsters.
|
||||
MONSTER:'&',"Minion of Huhetotl",(50,14)
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,random
|
||||
MONSTER:'S',random,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,random
|
||||
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.
|
||||
@@ -387,76 +387,88 @@ MONSTER:'M',random,random
|
||||
|
||||
LEVEL: "Arc-fila"
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'S', random, random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
STAIR: random, up
|
||||
OBJECT: random,random
|
||||
MONSTER: 'S', random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'S', random, 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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'S', random, 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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random, random
|
||||
MONSTER: 'M', "human mummy", 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random, 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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random, 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,random
|
||||
MONSTER: 'M', random, random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
STAIR: random, up
|
||||
OBJECT: random,random
|
||||
MONSTER: 'M', random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'M', random, 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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'M', random, 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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random, random
|
||||
MONSTER: 'M', "human mummy", 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random, 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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random, random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'S', random
|
||||
}
|
||||
|
||||
RANDOM_CORRIDORS
|
||||
|
||||
+146
-146
@@ -60,38 +60,38 @@ DOOR:open,(23,13)
|
||||
DOOR:open,(25,10)
|
||||
DOOR:open,(28,05)
|
||||
# Elder
|
||||
MONSTER:'@',"Pelias",(10,07)
|
||||
MONSTER:('@',"Pelias"),(10,07)
|
||||
# The treasure of Pelias
|
||||
OBJECT:'(',"chest",(09,05)
|
||||
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)
|
||||
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)
|
||||
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
|
||||
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.
|
||||
@@ -148,21 +148,21 @@ DOOR:locked,(55,06)
|
||||
STAIR:(05,02),up
|
||||
STAIR:(70,13),down
|
||||
# Objects
|
||||
OBJECT:random,random,(42,03)
|
||||
OBJECT:random,random,(42,03)
|
||||
OBJECT:random,random,(42,03)
|
||||
OBJECT:random,random,(41,03)
|
||||
OBJECT:random,random,(41,03)
|
||||
OBJECT:random,random,(41,03)
|
||||
OBJECT:random,random,(41,03)
|
||||
OBJECT:random,random,(41,08)
|
||||
OBJECT:random,random,(41,08)
|
||||
OBJECT:random,random,(42,08)
|
||||
OBJECT:random,random,(42,08)
|
||||
OBJECT:random,random,(42,08)
|
||||
OBJECT:random,random,(71,13)
|
||||
OBJECT:random,random,(71,13)
|
||||
OBJECT:random,random,(71,13)
|
||||
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)
|
||||
@@ -173,33 +173,33 @@ 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,random,hostile
|
||||
MONSTER:'T',random,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,random,hostile
|
||||
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.
|
||||
@@ -244,21 +244,21 @@ STAIR:(36,05),up
|
||||
ALTAR:(63,04),noncoaligned,altar
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:'*',"luckstone",(63,04),blessed,0,"The Heart of Ahriman"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -267,34 +267,34 @@ 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,random,hostile
|
||||
MONSTER:'O',random,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,random,hostile
|
||||
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
|
||||
|
||||
#
|
||||
@@ -307,64 +307,64 @@ WALLIFY
|
||||
#
|
||||
|
||||
MAZE: "Bar-fila" , ' '
|
||||
INIT_MAP: '.' , '.' , true , true , unlit , false
|
||||
INIT_MAP: mines, '.' , '.' , true , true , unlit , false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
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, random, hostile
|
||||
MONSTER: 'T', "rock troll", random, hostile
|
||||
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: '.' , ' ' , true , true , unlit , true
|
||||
INIT_MAP: mines, '.' , ' ' , true , true , unlit , true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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 , random, hostile
|
||||
MONSTER: 'T', "rock troll", random, hostile
|
||||
MONSTER: 'T', "rock troll", random, hostile
|
||||
MONSTER: 'T', "rock troll", random, hostile
|
||||
MONSTER: 'T', random , 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: ('T', "rock troll"), random, hostile
|
||||
MONSTER: ('T', "rock troll"), random, hostile
|
||||
MONSTER: ('T', "rock troll"), random, hostile
|
||||
MONSTER: 'T' , random, hostile
|
||||
|
||||
+127
-127
@@ -37,14 +37,14 @@ MAP
|
||||
ENDMAP
|
||||
# Dungeon Description
|
||||
REGION:(00,00,75,19),unlit,"ordinary"
|
||||
REGION:(13,01,40,05),lit,"temple",unfilled,true
|
||||
REGION:(13,01,40,05),lit,"temple",unfilled,irregular
|
||||
# The occupied rooms.
|
||||
REGION:(02,01,08,03),lit,"ordinary",unfilled,true
|
||||
REGION:(01,11,06,14),lit,"ordinary",unfilled,true
|
||||
REGION:(13,08,18,10),lit,"ordinary",unfilled,true
|
||||
REGION:(05,17,14,18),lit,"ordinary",unfilled,true
|
||||
REGION:(17,16,23,18),lit,"ordinary",unfilled,true
|
||||
REGION:(35,16,44,18),lit,"ordinary",unfilled,true
|
||||
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
|
||||
@@ -54,18 +54,18 @@ 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)
|
||||
MONSTER:('@',"Shaman Karnov"),(35,02)
|
||||
# The treasure of Shaman Karnov
|
||||
OBJECT:'(',"chest",(34,02)
|
||||
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)
|
||||
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
|
||||
@@ -76,18 +76,18 @@ 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
|
||||
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
|
||||
|
||||
#
|
||||
@@ -124,7 +124,7 @@ MAP
|
||||
ENDMAP
|
||||
# Dungeon Description
|
||||
REGION:(00,00,75,19),unlit,"ordinary"
|
||||
REGION:(52,06,73,15),lit,"ordinary",unfilled,true
|
||||
REGION:(52,06,73,15),lit,"ordinary",unfilled,irregular
|
||||
# Doors
|
||||
DOOR:locked,(28,11)
|
||||
# Stairs
|
||||
@@ -133,21 +133,21 @@ STAIR:(73,10),down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -156,33 +156,33 @@ 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,random,hostile
|
||||
MONSTER:'H',random,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,random,hostile
|
||||
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
|
||||
|
||||
#
|
||||
@@ -224,26 +224,26 @@ STAIR:random,up
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:')',"mace",(23,10),blessed,0,"The Sceptre of Might"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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)
|
||||
MONSTER:('D',"Chromatic Dragon"),(23,10),asleep
|
||||
MONSTER:('F',"shrieker"),(26,13)
|
||||
MONSTER:('F',"shrieker"),(25,8)
|
||||
MONSTER:('F',"shrieker"),(45,11)
|
||||
WALLIFY
|
||||
|
||||
#
|
||||
@@ -256,63 +256,63 @@ WALLIFY
|
||||
#
|
||||
|
||||
MAZE: "Cav-fila" , ' '
|
||||
INIT_MAP: '.' , ' ' , true , true , random , true
|
||||
INIT_MAP: mines, '.' , ' ' , true , true , random , true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, 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', "bugbear", random, hostile
|
||||
MONSTER: 'h', random, random, hostile
|
||||
MONSTER: 'H', "hill giant", random, hostile
|
||||
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: '.' , ' ' , true , true , random , true
|
||||
INIT_MAP: mines, '.' , ' ' , true , true , random , true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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, random, hostile
|
||||
MONSTER: 'h', random, random, hostile
|
||||
MONSTER: 'H', "hill giant", random, hostile
|
||||
MONSTER: 'H', "hill giant", 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', random, hostile
|
||||
MONSTER: ('H', "hill giant"), random, hostile
|
||||
MONSTER: ('H', "hill giant"), random, hostile
|
||||
|
||||
+185
-185
@@ -57,18 +57,18 @@ DOOR:closed,(47,08)
|
||||
DOOR:closed,(48,12)
|
||||
DOOR:locked,(50,10)
|
||||
# Hippocrates
|
||||
MONSTER:'@',"Hippocrates",(37,10)
|
||||
MONSTER:('@',"Hippocrates"),(37,10)
|
||||
# The treasure of Hippocrates
|
||||
OBJECT:'(',"chest",(37,10)
|
||||
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)
|
||||
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
|
||||
@@ -79,29 +79,29 @@ 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, random
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
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.
|
||||
#
|
||||
@@ -112,7 +112,7 @@ MONSTER: 'S',random,random,hostile
|
||||
MAZE: "Hea-loca",' '
|
||||
FLAGS: hardfloor
|
||||
#
|
||||
INIT_MAP: '.' , 'P', true , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P', true , true , lit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
PPPPPPPPPPPPP.......PPPPPPPPPPP
|
||||
@@ -142,21 +142,21 @@ NON_DIGGABLE:(11,02,21,07)
|
||||
# Altar in the temple.
|
||||
ALTAR:(13,05), chaos, shrine
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -165,41 +165,41 @@ 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,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, random,hostile
|
||||
MONSTER:';',random, random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
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.
|
||||
@@ -211,7 +211,7 @@ MONSTER: 'S',random,random,hostile
|
||||
|
||||
MAZE: "Hea-goal", 'P'
|
||||
#
|
||||
INIT_MAP: '.' , 'P' , false , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
.P....................................PP.
|
||||
@@ -234,22 +234,22 @@ STAIR:(39,10),up
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,40,11)
|
||||
# Objects
|
||||
OBJECT:')',"quarterstaff",(20,06),blessed,0,"The Staff of Aesculapius"
|
||||
OBJECT:'/',"lightning",(20,06)
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -258,38 +258,38 @@ 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,random,hostile
|
||||
MONSTER:'r',random,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,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
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.
|
||||
@@ -301,34 +301,34 @@ MONSTER: 'S',random,random,hostile
|
||||
#
|
||||
|
||||
MAZE: "Hea-fila" , 'P'
|
||||
INIT_MAP: '.' , 'P' , false , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
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, random,hostile
|
||||
MONSTER: 'r', random, random,hostile
|
||||
MONSTER: ';', "giant eel", random
|
||||
MONSTER: ';', "giant eel", random
|
||||
MONSTER: ';', "electric eel", random
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
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
|
||||
@@ -336,42 +336,42 @@ TRAP: random, random
|
||||
TRAP: random, random
|
||||
|
||||
MAZE: "Hea-filb" , 'P'
|
||||
INIT_MAP: '.' , 'P' , false , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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, random,hostile
|
||||
MONSTER: 'r', random, 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,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'D',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
MONSTER: 'S',random,random,hostile
|
||||
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
|
||||
|
||||
+153
-153
@@ -13,7 +13,7 @@
|
||||
MAZE: "Kni-strt",'.'
|
||||
FLAGS: noteleport,hardfloor
|
||||
# This is a kludge to init the level as a lit field.
|
||||
INIT_MAP: '.' , '.' , false , false , lit , false
|
||||
INIT_MAP: mines, '.' , '.' , false , false , lit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
..................................................
|
||||
@@ -62,21 +62,21 @@ DOOR:closed,(45,03)
|
||||
DOOR:closed,(04,12)
|
||||
DOOR:closed,(45,12)
|
||||
# King Arthur
|
||||
MONSTER:'@',"King Arthur",(09,07)
|
||||
MONSTER:('@',"King Arthur"),(09,07)
|
||||
# The treasure of King Arthur
|
||||
OBJECT:'(',"chest",(09,07)
|
||||
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
|
||||
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)
|
||||
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
|
||||
@@ -87,18 +87,18 @@ 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
|
||||
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.
|
||||
@@ -109,7 +109,7 @@ MONSTER: 'i',"quasit",(36,00),hostile
|
||||
|
||||
MAZE: "Kni-loca",' '
|
||||
FLAGS: hardfloor
|
||||
INIT_MAP: '.' , 'P' , false , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
...PPP.........PPPP..............PPPP...
|
||||
@@ -136,21 +136,21 @@ 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,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -210,33 +210,33 @@ 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,random,hostile
|
||||
MONSTER:'j',random,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,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',"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.
|
||||
@@ -278,28 +278,28 @@ STAIR:(03,08),up
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:'(',"mirror",(50,06),blessed,0,"The Magic Mirror of Merlin"
|
||||
OBJECT:random,random,(33,01)
|
||||
OBJECT:random,random,(33,02)
|
||||
OBJECT:random,random,(33,03)
|
||||
OBJECT:random,random,(33,04)
|
||||
OBJECT:random,random,(33,05)
|
||||
OBJECT:random,random,(34,01)
|
||||
OBJECT:random,random,(34,02)
|
||||
OBJECT:random,random,(34,03)
|
||||
OBJECT:random,random,(34,04)
|
||||
OBJECT:random,random,(34,05)
|
||||
OBJECT:random,random,(35,01)
|
||||
OBJECT:random,random,(35,02)
|
||||
OBJECT:random,random,(35,03)
|
||||
OBJECT:random,random,(35,04)
|
||||
OBJECT:random,random,(35,05)
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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)
|
||||
@@ -310,34 +310,34 @@ 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,random,hostile
|
||||
MONSTER:'i',random,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,random,hostile
|
||||
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.
|
||||
@@ -349,27 +349,27 @@ MONSTER:'j',random,random,hostile
|
||||
#
|
||||
|
||||
MAZE: "Kni-fila" , '.'
|
||||
INIT_MAP: '.' , 'P' , false , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
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, random, hostile
|
||||
MONSTER: 'j', "ochre jelly", 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', "ochre jelly"), random, hostile
|
||||
#
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
@@ -377,32 +377,32 @@ TRAP: random, random
|
||||
TRAP: random, random
|
||||
|
||||
MAZE: "Kni-filb" , '.'
|
||||
INIT_MAP: '.' , 'P' , false , true , lit , false
|
||||
INIT_MAP: mines, '.' , 'P' , false , true , lit , false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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, random, hostile
|
||||
MONSTER: 'j', "ochre jelly", random, hostile
|
||||
MONSTER: 'j', "ochre jelly", random, hostile
|
||||
MONSTER: 'j', "ochre jelly", 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', "ochre jelly"), random, hostile
|
||||
MONSTER: ('j', "ochre jelly"), random, hostile
|
||||
MONSTER: ('j', "ochre jelly"), random, hostile
|
||||
#
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
|
||||
+176
-156
@@ -64,17 +64,17 @@ 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)
|
||||
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)
|
||||
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:(00,00,75,19)
|
||||
# Random traps
|
||||
@@ -85,18 +85,18 @@ 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)
|
||||
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.
|
||||
@@ -133,7 +133,9 @@ MAP
|
||||
------------------------------------------ ------
|
||||
ENDMAP
|
||||
# Random Monsters
|
||||
RANDOM_MONSTERS: 'E', 'X'
|
||||
$monster = monster: { 'E', 'X' }
|
||||
SHUFFLE: $monster
|
||||
|
||||
# Dungeon Description
|
||||
REGION:(00,00,75,20),lit,"ordinary"
|
||||
# Stairs
|
||||
@@ -142,21 +144,21 @@ STAIR:random,down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,20)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -165,29 +167,29 @@ 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
|
||||
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.
|
||||
@@ -198,7 +200,7 @@ MONSTER: 'X',"xorn",random
|
||||
#
|
||||
|
||||
MAZE: "Mon-goal", ' '
|
||||
INIT_MAP: 'L' , '.' , false , false , unlit , false
|
||||
INIT_MAP: mines, 'L' , '.' , false , false , unlit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
.L......L.LLL.......LL....
|
||||
@@ -214,26 +216,28 @@ LL........................
|
||||
.........LLL.........L....
|
||||
ENDMAP
|
||||
# Dungeon Description
|
||||
RANDOM_PLACES:(14,04),(13,07)
|
||||
$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,"The Eyes of the Overworld"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -242,26 +246,26 @@ 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
|
||||
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.
|
||||
@@ -274,82 +278,98 @@ MONSTER: 'X',"xorn",random
|
||||
|
||||
LEVEL: "Mon-fila"
|
||||
# Random Monsters
|
||||
RANDOM_MONSTERS: 'E', 'X'
|
||||
$monster = monster: { 'E', 'X' }
|
||||
SHUFFLE: $monster
|
||||
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'E', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'E', random, 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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'X', "xorn", random
|
||||
MONSTER: 'E', "earth elemental", random
|
||||
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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'E', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'X', random, random, hostile
|
||||
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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'E', "earth elemental", random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: ('E', "earth elemental"), random
|
||||
}
|
||||
|
||||
RANDOM_CORRIDORS
|
||||
|
||||
LEVEL: "Mon-filb"
|
||||
# Random Monsters
|
||||
RANDOM_MONSTERS: 'E', 'X'
|
||||
$monster = monster: { 'E', 'X' }
|
||||
SHUFFLE: $monster
|
||||
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'X', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'X', random, 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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'E', random, 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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'E', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'X', random, random, hostile
|
||||
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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'E', "earth elemental", random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: ('E', "earth elemental"), random
|
||||
}
|
||||
|
||||
RANDOM_CORRIDORS
|
||||
|
||||
|
||||
+152
-138
@@ -64,18 +64,18 @@ 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)
|
||||
MONSTER:('@',"Arch Priest"),(28,10)
|
||||
# The treasure of High Priest
|
||||
OBJECT:'(',"chest",(27,10)
|
||||
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)
|
||||
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:(00,00,75,19)
|
||||
# Random traps
|
||||
@@ -86,18 +86,18 @@ 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)
|
||||
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.
|
||||
@@ -109,7 +109,7 @@ MONSTER: 'Z',"human zombie",(01,17)
|
||||
MAZE: "Pri-loca",' '
|
||||
FLAGS: hardfloor
|
||||
# This is a kludge to init the level as a lit field.
|
||||
INIT_MAP: '.' , '.' , false , false , lit , false
|
||||
INIT_MAP: mines, '.' , '.' , false , false , lit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
........................................
|
||||
@@ -132,10 +132,10 @@ 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,true
|
||||
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
|
||||
MONSTER:('@',"aligned priest"),(20,07),noalign,hostile
|
||||
# Doors
|
||||
DOOR:locked,(10,06)
|
||||
DOOR:locked,(10,07)
|
||||
@@ -150,21 +150,21 @@ STAIR:(20,06),down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(10,02,30,13)
|
||||
# Objects (inside the antechambers).
|
||||
OBJECT:random,random,(14,03)
|
||||
OBJECT:random,random,(15,03)
|
||||
OBJECT:random,random,(16,03)
|
||||
OBJECT:random,random,(14,10)
|
||||
OBJECT:random,random,(15,10)
|
||||
OBJECT:random,random,(16,10)
|
||||
OBJECT:random,random,(17,10)
|
||||
OBJECT:random,random,(24,03)
|
||||
OBJECT:random,random,(25,03)
|
||||
OBJECT:random,random,(26,03)
|
||||
OBJECT:random,random,(27,03)
|
||||
OBJECT:random,random,(24,10)
|
||||
OBJECT:random,random,(25,10)
|
||||
OBJECT:random,random,(26,10)
|
||||
OBJECT:random,random,(27,10)
|
||||
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)
|
||||
@@ -183,7 +183,7 @@ TRAP:random,random
|
||||
#
|
||||
|
||||
MAZE: "Pri-goal", ' '
|
||||
INIT_MAP: 'L' , '.' , false , false , unlit , false
|
||||
INIT_MAP: mines, 'L' , '.' , false , false , unlit , false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
.L......L.LLL.......LL....
|
||||
@@ -199,26 +199,28 @@ LL........................
|
||||
.........LLL.........L....
|
||||
ENDMAP
|
||||
# Dungeon Description
|
||||
RANDOM_PLACES:(14,04),(13,07)
|
||||
$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,"The Mitre of Holiness"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -227,34 +229,34 @@ 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,random
|
||||
MONSTER:'Z',random,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,random
|
||||
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.
|
||||
@@ -267,73 +269,85 @@ MONSTER:'W',random,random
|
||||
|
||||
LEVEL: "Pri-fila"
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'Z', "human zombie", random
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
OBJECT: random,random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'Z', "human zombie", 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, random
|
||||
TRAP: random, 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'W', "wraith", 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, random
|
||||
TRAP: random, 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,random
|
||||
MONSTER: 'Z', "human zombie", random
|
||||
MONSTER: 'W', "wraith", random
|
||||
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, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random,random,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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'Z', "human zombie", random
|
||||
MONSTER: 'W', "wraith", 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'Z', "human zombie", random
|
||||
MONSTER: 'W', "wraith", 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, random
|
||||
TRAP: random, random
|
||||
ROOM: "morgue" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
}
|
||||
|
||||
RANDOM_CORRIDORS
|
||||
|
||||
+146
-146
@@ -12,7 +12,7 @@
|
||||
#
|
||||
MAZE: "Ran-strt",'.'
|
||||
FLAGS: noteleport,hardfloor,arboreal
|
||||
INIT_MAP:'.','.',true,true,lit,false
|
||||
INIT_MAP:mines,'.','.',true,true,lit,false
|
||||
GEOMETRY:left,center
|
||||
#1234567890123456789012345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -45,18 +45,18 @@ 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)
|
||||
MONSTER:('@',"Orion"),(20,10)
|
||||
# The treasure of Orion
|
||||
OBJECT:'(',"chest",(20,10)
|
||||
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)
|
||||
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
|
||||
@@ -67,33 +67,33 @@ 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
|
||||
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
|
||||
|
||||
|
||||
#
|
||||
@@ -137,14 +137,14 @@ STAIR:(27,18),down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,54,19)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -153,29 +153,29 @@ 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,random,hostile
|
||||
MONSTER:'s',random,random,hostile
|
||||
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
|
||||
|
||||
|
||||
#
|
||||
@@ -217,21 +217,21 @@ STAIR:(19,10),up
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:')',"bow",(37,10),blessed,0,"The Longbow of Diana"
|
||||
OBJECT:'(',"chest",(37,10)
|
||||
OBJECT:random,random,(36,09)
|
||||
OBJECT:random,random,(36,10)
|
||||
OBJECT:random,random,(36,11)
|
||||
OBJECT:random,random,(37,09)
|
||||
OBJECT:random,random,(37,11)
|
||||
OBJECT:random,random,(38,09)
|
||||
OBJECT:random,random,(38,10)
|
||||
OBJECT:random,random,(38,11)
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -255,34 +255,34 @@ 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,random,hostile
|
||||
MONSTER:'C',random,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,random,hostile
|
||||
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
|
||||
|
||||
@@ -296,62 +296,62 @@ WALLIFY
|
||||
#
|
||||
|
||||
MAZE: "Ran-fila" , ' '
|
||||
INIT_MAP: '.' , 'T', true, true, random, true
|
||||
INIT_MAP: mines, '.' , 'T', true, true, random, true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, 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', "forest centaur", random, hostile
|
||||
MONSTER: 'C', "forest centaur", random, hostile
|
||||
MONSTER: 'C', "forest centaur", random, hostile
|
||||
MONSTER: 'C', random, random, hostile
|
||||
MONSTER: 's', "scorpion", random, hostile
|
||||
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: '.' , ' ', true, true, random, true
|
||||
INIT_MAP: mines, '.' , ' ', true, true, random, true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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, random, hostile
|
||||
MONSTER: 's', "scorpion", random, hostile
|
||||
MONSTER: 's', "scorpion", 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', random, hostile
|
||||
MONSTER: ('s', "scorpion"), random, hostile
|
||||
MONSTER: ('s', "scorpion"), random, hostile
|
||||
|
||||
|
||||
+225
-211
@@ -41,11 +41,13 @@ ENDMAP
|
||||
#REGION:(00,00,75,20),lit,"ordinary"
|
||||
# The down stairs is at one of the 4 "exits". The others are mimics,
|
||||
# mimicing stairwells.
|
||||
RANDOM_PLACES: (33,0), (0,12), (25,20), (75,05)
|
||||
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"
|
||||
$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)
|
||||
@@ -98,21 +100,21 @@ DOOR: closed, ( 6,18)
|
||||
DOOR: closed, (65,18)
|
||||
DOOR: closed, (68,18)
|
||||
# Master of Thieves
|
||||
MONSTER:'@',"Master of Thieves",(36,11)
|
||||
MONSTER:('@',"Master of Thieves"),(36,11)
|
||||
# The treasure of Master of Thieves
|
||||
OBJECT:'(',"chest",(36,11)
|
||||
OBJECT:('(',"chest"),(36,11)
|
||||
# thug guards, room #1
|
||||
MONSTER:'@',"thug",(28,10)
|
||||
MONSTER:'@',"thug",(29,11)
|
||||
MONSTER:'@',"thug",(30,09)
|
||||
MONSTER:'@',"thug",(31,07)
|
||||
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)
|
||||
MONSTER:('@',"thug"),(31,13)
|
||||
MONSTER:('@',"thug"),(33,14)
|
||||
MONSTER:('@',"thug"),(30,15)
|
||||
#thug guards, room #3
|
||||
MONSTER:'@',"thug",(35,09)
|
||||
MONSTER:'@',"thug",(36,13)
|
||||
MONSTER:('@',"thug"),(35,09)
|
||||
MONSTER:('@',"thug"),(36,13)
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,20)
|
||||
# Random traps
|
||||
@@ -136,37 +138,37 @@ TRAP:random,random
|
||||
# Monsters to get in the way.
|
||||
#
|
||||
# West exit
|
||||
MONSTER: 'l',"leprechaun",(01,12),hostile
|
||||
MONSTER: 'n',"water nymph",(02,12),hostile
|
||||
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
|
||||
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
|
||||
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
|
||||
MONSTER: ('l',"leprechaun"),(25,19),hostile
|
||||
MONSTER: ('n',"water nymph"),(25,18),hostile
|
||||
# Wandering the streets. What I'd really like for this is a random
|
||||
# location, but make sure we're on a given type, e.g. street (if they
|
||||
# existed, of course).
|
||||
MONSTER: 'n',"water nymph",(07,05),hostile
|
||||
MONSTER: 'l',"leprechaun",(28,06),hostile
|
||||
MONSTER: 'n',"water nymph",(38,07),hostile
|
||||
MONSTER: 'l',"leprechaun",(45,01),hostile
|
||||
MONSTER: 'n',"water nymph",(59,07),hostile
|
||||
MONSTER: 'l',"leprechaun",(62,14),hostile
|
||||
MONSTER: 'n',"water nymph",(71,14),hostile
|
||||
MONSTER: 'l',"leprechaun",(39,13),hostile
|
||||
MONSTER: 'n',"water nymph",(18,14),hostile
|
||||
MONSTER: ':',"chameleon",(19,08),hostile
|
||||
MONSTER: ':',"chameleon",(22,08),hostile
|
||||
MONSTER: ':',"chameleon",(16,08),hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ('n',"water nymph"),(07,05),hostile
|
||||
MONSTER: ('l',"leprechaun"),(28,06),hostile
|
||||
MONSTER: ('n',"water nymph"),(38,07),hostile
|
||||
MONSTER: ('l',"leprechaun"),(45,01),hostile
|
||||
MONSTER: ('n',"water nymph"),(59,07),hostile
|
||||
MONSTER: ('l',"leprechaun"),(62,14),hostile
|
||||
MONSTER: ('n',"water nymph"),(71,14),hostile
|
||||
MONSTER: ('l',"leprechaun"),(39,13),hostile
|
||||
MONSTER: ('n',"water nymph"),(18,14),hostile
|
||||
MONSTER: (':',"chameleon"),(19,08),hostile
|
||||
MONSTER: (':',"chameleon"),(22,08),hostile
|
||||
MONSTER: (':',"chameleon"),(16,08),hostile
|
||||
MONSTER: (':',"chameleon"),random,hostile
|
||||
MONSTER: (':',"chameleon"),random,hostile
|
||||
MONSTER: (':',"chameleon"),random,hostile
|
||||
MONSTER: (':',"chameleon"),random,hostile
|
||||
MONSTER: (':',"chameleon"),random,hostile
|
||||
|
||||
#
|
||||
# The "locate" level for the quest.
|
||||
@@ -212,21 +214,21 @@ STAIR:random,down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,20)
|
||||
# Objects
|
||||
OBJECT:'?',"teleportation",(11,18),cursed,0
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -235,39 +237,39 @@ 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,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,random,hostile
|
||||
MONSTER:'N',random,random,hostile
|
||||
MONSTER:'N',random,random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",random,hostile
|
||||
MONSTER: ':',"chameleon",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',"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
|
||||
@@ -315,21 +317,21 @@ 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,"The Master Key of Thievery"
|
||||
OBJECT:'%',"tin",(26,12),"chameleon",0
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -343,45 +345,45 @@ 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,random,hostile
|
||||
MONSTER:'l',random,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,random,hostile
|
||||
MONSTER:'N',random,random,hostile
|
||||
MONSTER:'N',random,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
|
||||
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.
|
||||
@@ -391,45 +393,51 @@ MONSTER:';',"shark",(58,10),hostile
|
||||
#
|
||||
LEVEL: "Rog-fila"
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'l', "leprechaun", random, hostile
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'l', "leprechaun", random, hostile
|
||||
MONSTER: 'N', "guardian naga", 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, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'n', "water nymph", 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, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'l', random, random, hostile
|
||||
MONSTER: 'N', "guardian naga", 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'l', "leprechaun", 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, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'l', "leprechaun", random, hostile
|
||||
MONSTER: 'n', "water nymph", 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
|
||||
|
||||
@@ -438,44 +446,50 @@ RANDOM_CORRIDORS
|
||||
#
|
||||
LEVEL: "Rog-filb"
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'l', "leprechaun", random, hostile
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'l', "leprechaun", random, hostile
|
||||
MONSTER: 'N', "guardian naga", 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, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'n', "water nymph", 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, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'l', random, random, hostile
|
||||
MONSTER: 'N', "guardian naga", 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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'l', "leprechaun", 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, random
|
||||
TRAP: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'l', "leprechaun", random, hostile
|
||||
MONSTER: 'n', "water nymph", 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
|
||||
|
||||
+167
-165
@@ -54,18 +54,18 @@ DOOR:locked,(39,08)
|
||||
DOOR:closed,(50,04)
|
||||
DOOR:closed,(50,06)
|
||||
# Lord Sato
|
||||
MONSTER:'@',"Lord Sato",(20,04)
|
||||
MONSTER:('@',"Lord Sato"),(20,04)
|
||||
# The treasure of Lord Sato
|
||||
OBJECT:'(',"chest",(20,04)
|
||||
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)
|
||||
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
|
||||
@@ -76,19 +76,19 @@ 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
|
||||
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.
|
||||
@@ -155,41 +155,41 @@ STAIR:(25,14),down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,19)
|
||||
# Objects
|
||||
OBJECT:'*',random,(25,05)
|
||||
OBJECT:'*',random,(26,05)
|
||||
OBJECT:'*',random,(27,05)
|
||||
OBJECT:'*',random,(28,05)
|
||||
OBJECT:'*',random,(25,06)
|
||||
OBJECT:'*',random,(26,06)
|
||||
OBJECT:'*',random,(27,06)
|
||||
OBJECT:'*',random,(28,06)
|
||||
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:'[',random,(40,05)
|
||||
OBJECT:'[',random,(41,05)
|
||||
OBJECT:'[',random,(42,05)
|
||||
OBJECT:'[',random,(43,05)
|
||||
OBJECT:'[',random,(40,06)
|
||||
OBJECT:'[',random,(41,06)
|
||||
OBJECT:'[',random,(42,06)
|
||||
OBJECT:'[',random,(43,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:')',random,(27,13)
|
||||
OBJECT:')',random,(28,13)
|
||||
OBJECT:')',random,(29,13)
|
||||
OBJECT:')',random,(30,13)
|
||||
OBJECT:')',random,(27,14)
|
||||
OBJECT:')',random,(28,14)
|
||||
OBJECT:')',random,(29,14)
|
||||
OBJECT:')',random,(30,14)
|
||||
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:'(',random,(37,13)
|
||||
OBJECT:'(',random,(38,13)
|
||||
OBJECT:'(',random,(39,13)
|
||||
OBJECT:'(',random,(40,13)
|
||||
OBJECT:'(',random,(37,14)
|
||||
OBJECT:'(',random,(38,14)
|
||||
OBJECT:'(',random,(39,14)
|
||||
OBJECT:'(',random,(40,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
|
||||
@@ -198,40 +198,40 @@ 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',random,(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
|
||||
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
|
||||
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.
|
||||
@@ -267,7 +267,9 @@ MAP
|
||||
.......................
|
||||
ENDMAP
|
||||
# Dungeon Description
|
||||
RANDOM_PLACES:(02,11),(42,09)
|
||||
$place = { (02,11),(42,09) }
|
||||
SHUFFLE: $place
|
||||
|
||||
REGION:(00,00,44,19),unlit,"ordinary"
|
||||
# Doors
|
||||
DOOR:closed,(19,10)
|
||||
@@ -275,25 +277,25 @@ DOOR:closed,(22,08)
|
||||
DOOR:closed,(22,12)
|
||||
DOOR:closed,(25,10)
|
||||
# Stairs
|
||||
STAIR:place[0],up
|
||||
STAIR:$place[0],up
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,44,19)
|
||||
# Objects
|
||||
OBJECT:')',"tsurugi",(22,10),blessed,0,"The Tsurugi of Muramasa"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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)
|
||||
@@ -306,32 +308,32 @@ 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,random
|
||||
MONSTER:'d',random,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
|
||||
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
|
||||
|
||||
|
||||
#
|
||||
@@ -344,29 +346,29 @@ MONSTER:'E',"stalker",random
|
||||
#
|
||||
|
||||
MAZE: "Sam-fila", ' '
|
||||
INIT_MAP: '.' , 'P', true, true, random, true
|
||||
INIT_MAP: mines, '.' , 'P', true, true, random, true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
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, 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
|
||||
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
|
||||
@@ -403,24 +405,24 @@ DOOR:closed,(43,08)
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
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, 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
|
||||
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
|
||||
|
||||
+164
-164
@@ -72,54 +72,54 @@ 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,random
|
||||
MONSTER: 's',random,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,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
|
||||
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)
|
||||
MONSTER:('@',"Twoflower"),(64,03)
|
||||
# The treasure of Twoflower
|
||||
OBJECT:'(',"chest",(64,03)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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
|
||||
@@ -244,23 +244,23 @@ DOOR:closed,(60,16)
|
||||
DOOR:closed,(73,16)
|
||||
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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)
|
||||
OBJECT:('?',"blank paper"),(71,12)
|
||||
OBJECT:('?',"blank paper"),(71,12)
|
||||
# Random traps
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
@@ -272,24 +272,24 @@ 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,random
|
||||
MONSTER:'s',random,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',"giant spider"),random
|
||||
MONSTER:'s',random
|
||||
MONSTER:'s',random
|
||||
|
||||
#
|
||||
# The "goal" level for the quest.
|
||||
@@ -386,21 +386,21 @@ DOOR:random,(51,15)
|
||||
DOOR:open,(59,14)
|
||||
DOOR:open,(59,17)
|
||||
# Objects
|
||||
OBJECT:'(',"credit card",(04,01),blessed,0,"The Platinum Yendorian Express Card"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -409,47 +409,47 @@ 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,random
|
||||
MONSTER:'s',random,random
|
||||
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)
|
||||
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:('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
|
||||
MONSTER:('@',"watchman"),(33,10),hostile
|
||||
|
||||
WALLIFY
|
||||
|
||||
@@ -461,61 +461,61 @@ WALLIFY
|
||||
#
|
||||
|
||||
MAZE: "Tou-fila" , ' '
|
||||
INIT_MAP: '.' , ' ', true, true, random, true
|
||||
INIT_MAP: mines, '.' , ' ', true, true, random, true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, 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: '@', "soldier", random, hostile
|
||||
MONSTER: '@', "soldier", random, hostile
|
||||
MONSTER: '@', "soldier", random, hostile
|
||||
MONSTER: '@', "soldier", random, hostile
|
||||
MONSTER: 'H', random, random, hostile
|
||||
MONSTER: 'C', random, random, hostile
|
||||
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: '.' , ' ', true, true, random, true
|
||||
INIT_MAP: mines, '.' , ' ', true, true, random, true
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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, random, hostile
|
||||
MONSTER: 'H', random, random, hostile
|
||||
MONSTER: 'C', random, random, hostile
|
||||
MONSTER: 's', 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
|
||||
|
||||
+142
-140
@@ -11,8 +11,7 @@
|
||||
# and receive your quest assignment.
|
||||
#
|
||||
MAZE: "Val-strt",' '
|
||||
FLAGS: noteleport,hardfloor
|
||||
INIT_MAP: '.', 'I', true, true, lit, false, true
|
||||
FLAGS: noteleport,hardfloor,icedpools
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
IIIIIIPPPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
|
||||
@@ -48,18 +47,18 @@ FOUNTAIN:(53,02)
|
||||
DOOR:locked,(26,10)
|
||||
DOOR:locked,(43,10)
|
||||
# Norn
|
||||
MONSTER:'@',"Norn",(35,10)
|
||||
MONSTER:('@',"Norn"),(35,10)
|
||||
# The treasure of the Norn
|
||||
OBJECT:'(',"chest",(36,10)
|
||||
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)
|
||||
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
|
||||
@@ -70,18 +69,18 @@ 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
|
||||
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.
|
||||
@@ -91,8 +90,8 @@ MONSTER: 'H',"fire giant",(10,16),hostile
|
||||
#
|
||||
|
||||
MAZE: "Val-loca",' '
|
||||
FLAGS: hardfloor
|
||||
INIT_MAP: '.', 'I', true, true, lit, false, true
|
||||
FLAGS: hardfloor,icedpools
|
||||
INIT_MAP: mines, '.', 'I', true, true, lit, false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
PPPP.... ....PPPPP.
|
||||
@@ -117,21 +116,21 @@ STAIR:(20,06),down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,39,12)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -140,33 +139,33 @@ 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,random
|
||||
MONSTER:'H',random,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,random,hostile
|
||||
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.
|
||||
@@ -177,7 +176,8 @@ MONSTER:'H',random,random,hostile
|
||||
#
|
||||
|
||||
MAZE: "Val-goal", 'L'
|
||||
INIT_MAP: '.', 'L', true, true, lit, false, true
|
||||
FLAGS: icedpools
|
||||
INIT_MAP: mines, '.', 'L', true, true, lit, false
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
.L............................LLLLL
|
||||
@@ -209,21 +209,21 @@ NON_DIGGABLE:(00,00,34,16)
|
||||
DRAWBRIDGE:(17,02),south,random
|
||||
DRAWBRIDGE:(17,14),north,open
|
||||
# Objects
|
||||
OBJECT:'(',"crystal ball",(17,08),blessed,5,"The Orb of Fate"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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)
|
||||
@@ -236,26 +236,26 @@ 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,random
|
||||
MONSTER:'a',random,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,random,hostile
|
||||
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.
|
||||
@@ -267,29 +267,30 @@ MONSTER:'H',random,random,hostile
|
||||
#
|
||||
|
||||
MAZE: "Val-fila" , 'I'
|
||||
INIT_MAP: '.', 'I', true, true, lit, false, true
|
||||
FLAGS: icedpools
|
||||
INIT_MAP: mines, '.', 'I', true, true, lit, false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
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, random
|
||||
MONSTER: 'H', "fire giant", random, hostile
|
||||
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
|
||||
@@ -300,31 +301,32 @@ TRAP: random, random
|
||||
TRAP: random, random
|
||||
|
||||
MAZE: "Val-filb" , 'L'
|
||||
INIT_MAP: '.', 'L', true, true, lit, false, true
|
||||
FLAGS: icedpools
|
||||
INIT_MAP: mines, '.', 'L', true, true, lit, false
|
||||
NOMAP
|
||||
#
|
||||
STAIR: random, up
|
||||
STAIR: random, down
|
||||
#
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
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, random
|
||||
MONSTER: 'H', "fire giant", random, hostile
|
||||
MONSTER: 'H', "fire giant", random, hostile
|
||||
MONSTER: 'H', "fire giant", random, hostile
|
||||
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
|
||||
|
||||
+191
-179
@@ -38,7 +38,7 @@ ENDMAP
|
||||
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,true
|
||||
REGION:(19,11,33,15),unlit,"ordinary",unfilled,irregular
|
||||
REGION:(30,10,31,10),unlit,"ordinary"
|
||||
# Stairs
|
||||
STAIR:(30,10),down
|
||||
@@ -54,22 +54,22 @@ DOOR:closed,(15,10)
|
||||
DOOR:locked,(19,10)
|
||||
DOOR:locked,(20,10)
|
||||
# Neferet the Green, the quest leader
|
||||
MONSTER:'@',"Neferet the Green",(23,05)
|
||||
MONSTER:('@',"Neferet the Green"),(23,05)
|
||||
# The treasure of the quest leader
|
||||
OBJECT:'(',"chest",(24,05)
|
||||
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)
|
||||
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)
|
||||
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
|
||||
@@ -80,21 +80,21 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Monsters on siege duty.
|
||||
MONSTER: 'B',random,(60,09),hostile
|
||||
MONSTER: 'W',random,(60,10),hostile
|
||||
MONSTER: 'B',random,(60,11),hostile
|
||||
MONSTER: 'B',random,(60,12),hostile
|
||||
MONSTER: 'i',random,(60,13),hostile
|
||||
MONSTER: 'B',random,(61,10),hostile
|
||||
MONSTER: 'B',random,(61,11),hostile
|
||||
MONSTER: 'B',random,(61,12),hostile
|
||||
MONSTER: 'B',random,(35,03),hostile
|
||||
MONSTER: 'i',random,(35,17),hostile
|
||||
MONSTER: 'B',random,(36,17),hostile
|
||||
MONSTER: 'B',random,(34,16),hostile
|
||||
MONSTER: 'i',random,(34,17),hostile
|
||||
MONSTER: 'W',random,(67,02),hostile
|
||||
MONSTER: 'B',random,(10,19),hostile
|
||||
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.
|
||||
@@ -153,21 +153,21 @@ STAIR:(48,10),down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,75,20)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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)
|
||||
@@ -191,33 +191,33 @@ TRAP:"dart",random
|
||||
TRAP:"dart",random
|
||||
TRAP:"dart",random
|
||||
# Random monsters.
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,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,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:'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.
|
||||
@@ -293,21 +293,21 @@ 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,"The Eye of the Aethiopica"
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
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
|
||||
@@ -316,43 +316,43 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Random monsters.
|
||||
MONSTER:'@',"Dark One",(16,11)
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'B',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,random,hostile
|
||||
MONSTER:'i',random,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,random,hostile
|
||||
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
|
||||
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.
|
||||
@@ -365,77 +365,89 @@ MONSTER:'@',"prisoner",(41,11),peaceful,asleep
|
||||
|
||||
LEVEL: "Wiz-fila"
|
||||
#
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'i', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'i', random, 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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'B', "vampire bat", random
|
||||
MONSTER: 'B', "vampire bat", random
|
||||
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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'i', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'i', random, random, hostile
|
||||
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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'B', "vampire bat", random
|
||||
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,random
|
||||
MONSTER: 'X', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'i', random, 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, random
|
||||
TRAP: random, random
|
||||
OBJECT: random,random,random
|
||||
MONSTER: 'X', random, 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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'i', random, random, hostile
|
||||
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, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'i', random, random, hostile
|
||||
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, random
|
||||
TRAP: random, random
|
||||
MONSTER: 'B', "vampire bat", random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: ('B', "vampire bat"), random
|
||||
}
|
||||
|
||||
RANDOM_CORRIDORS
|
||||
|
||||
+215
-215
@@ -38,21 +38,21 @@ STAIR:random,down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,74,17)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -61,34 +61,34 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Random monsters.
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,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
|
||||
MONSTER:random,random
|
||||
|
||||
# Here, just play with the lighting...
|
||||
|
||||
@@ -130,21 +130,21 @@ STAIR:random,down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,74,17)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -153,34 +153,34 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Random monsters.
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,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
|
||||
MONSTER:random,random
|
||||
|
||||
# Now, let's get fancy...
|
||||
|
||||
@@ -214,21 +214,21 @@ STAIR:random,down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,74,17)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -237,34 +237,34 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Random monsters.
|
||||
MONSTER:random,random,(01,01)
|
||||
MONSTER:random,random,(13,01)
|
||||
MONSTER:random,random,(25,01)
|
||||
MONSTER:random,random,(37,01)
|
||||
MONSTER:random,random,(49,01)
|
||||
MONSTER:random,random,(61,01)
|
||||
MONSTER:random,random,(73,01)
|
||||
MONSTER:random,random,(07,07)
|
||||
MONSTER:random,random,(13,07)
|
||||
MONSTER:random,random,(25,07)
|
||||
MONSTER:random,random,(37,07)
|
||||
MONSTER:random,random,(49,07)
|
||||
MONSTER:random,random,(61,07)
|
||||
MONSTER:random,random,(67,07)
|
||||
MONSTER:random,random,(07,09)
|
||||
MONSTER:random,random,(13,09)
|
||||
MONSTER:random,random,(25,09)
|
||||
MONSTER:random,random,(37,09)
|
||||
MONSTER:random,random,(49,09)
|
||||
MONSTER:random,random,(61,09)
|
||||
MONSTER:random,random,(67,09)
|
||||
MONSTER:random,random,(01,16)
|
||||
MONSTER:random,random,(13,16)
|
||||
MONSTER:random,random,(25,16)
|
||||
MONSTER:random,random,(37,16)
|
||||
MONSTER:random,random,(49,16)
|
||||
MONSTER:random,random,(61,16)
|
||||
MONSTER:random,random,(73,16)
|
||||
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
|
||||
@@ -300,21 +300,21 @@ FOUNTAIN:(05,15)
|
||||
FOUNTAIN:(69,02)
|
||||
FOUNTAIN:(69,15)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -323,34 +323,34 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Random monsters.
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,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
|
||||
MONSTER:random,random
|
||||
|
||||
# Try an oval room...
|
||||
|
||||
@@ -385,21 +385,21 @@ STAIR:random,down
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,72,18)
|
||||
# Objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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
|
||||
@@ -408,31 +408,31 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Random monsters.
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,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
|
||||
MONSTER:random,random
|
||||
|
||||
@@ -245,6 +245,9 @@ flying pig
|
||||
hippocampus
|
||||
hippogriff
|
||||
kelpie
|
||||
catoblepas
|
||||
phoenix
|
||||
amphisbaena
|
||||
|
||||
# Unusually animate body parts
|
||||
bouncing eye
|
||||
|
||||
+126
-119
@@ -42,9 +42,15 @@ MAP
|
||||
ENDMAP
|
||||
|
||||
# Random registers initialisation
|
||||
RANDOM_OBJECTS:'[',')','*','%'
|
||||
RANDOM_PLACES:(04,02),(58,02),(04,14),(58,14)
|
||||
RANDOM_MONSTERS:'L','N','E','H','M','O','R','T','X','Z'
|
||||
$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
|
||||
@@ -72,72 +78,73 @@ DOOR:closed,(55,13)
|
||||
# The drawbridge
|
||||
DRAWBRIDGE:(05,08),east,closed
|
||||
# Storeroom number 1
|
||||
OBJECT:object[0],random,(39,05)
|
||||
OBJECT:object[0],random,(40,05)
|
||||
OBJECT:object[0],random,(41,05)
|
||||
OBJECT:object[0],random,(42,05)
|
||||
OBJECT:object[0],random,(43,05)
|
||||
OBJECT:object[0],random,(44,05)
|
||||
OBJECT:object[0],random,(45,05)
|
||||
OBJECT:object[0],random,(39,06)
|
||||
OBJECT:object[0],random,(40,06)
|
||||
OBJECT:object[0],random,(41,06)
|
||||
OBJECT:object[0],random,(42,06)
|
||||
OBJECT:object[0],random,(43,06)
|
||||
OBJECT:object[0],random,(44,06)
|
||||
OBJECT:object[0],random,(45,06)
|
||||
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],random,(49,05)
|
||||
OBJECT:object[1],random,(50,05)
|
||||
OBJECT:object[1],random,(51,05)
|
||||
OBJECT:object[1],random,(52,05)
|
||||
OBJECT:object[1],random,(53,05)
|
||||
OBJECT:object[1],random,(54,05)
|
||||
OBJECT:object[1],random,(55,05)
|
||||
OBJECT:object[1],random,(49,06)
|
||||
OBJECT:object[1],random,(50,06)
|
||||
OBJECT:object[1],random,(51,06)
|
||||
OBJECT:object[1],random,(52,06)
|
||||
OBJECT:object[1],random,(53,06)
|
||||
OBJECT:object[1],random,(54,06)
|
||||
OBJECT:object[1],random,(55,06)
|
||||
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],random,(39,10)
|
||||
OBJECT:object[2],random,(40,10)
|
||||
OBJECT:object[2],random,(41,10)
|
||||
OBJECT:object[2],random,(42,10)
|
||||
OBJECT:object[2],random,(43,10)
|
||||
OBJECT:object[2],random,(44,10)
|
||||
OBJECT:object[2],random,(45,10)
|
||||
OBJECT:object[2],random,(39,11)
|
||||
OBJECT:object[2],random,(40,11)
|
||||
OBJECT:object[2],random,(41,11)
|
||||
OBJECT:object[2],random,(42,11)
|
||||
OBJECT:object[2],random,(43,11)
|
||||
OBJECT:object[2],random,(44,11)
|
||||
OBJECT:object[2],random,(45,11)
|
||||
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],random,(49,10)
|
||||
OBJECT:object[3],random,(50,10)
|
||||
OBJECT:object[3],random,(51,10)
|
||||
OBJECT:object[3],random,(52,10)
|
||||
OBJECT:object[3],random,(53,10)
|
||||
OBJECT:object[3],random,(54,10)
|
||||
OBJECT:object[3],random,(55,10)
|
||||
OBJECT:object[3],random,(49,11)
|
||||
OBJECT:object[3],random,(50,11)
|
||||
OBJECT:object[3],random,(51,11)
|
||||
OBJECT:object[3],random,(52,11)
|
||||
OBJECT:object[3],random,(53,11)
|
||||
OBJECT:object[3],random,(54,11)
|
||||
OBJECT:object[3],random,(55,11)
|
||||
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",place[0]
|
||||
OBJECT:'/',"wishing",contained
|
||||
CONTAINER:('(',"chest"),$place[0] {
|
||||
OBJECT:('/',"wishing")
|
||||
}
|
||||
# Prevent monsters from eating it. (@'s never eat objects)
|
||||
ENGRAVING:place[0],burn,"Elbereth"
|
||||
ENGRAVING:$place[0],burn,"Elbereth"
|
||||
# The treasure of the lord
|
||||
OBJECT:'(',"chest",(37,08)
|
||||
OBJECT:('(',"chest"),(37,08)
|
||||
# Traps
|
||||
TRAP:"trap door",(40,08)
|
||||
TRAP:"trap door",(44,08)
|
||||
@@ -145,66 +152,66 @@ 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)
|
||||
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)
|
||||
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',random,(47,05)
|
||||
MONSTER:'D',random,(47,06)
|
||||
MONSTER:'D',random,(47,10)
|
||||
MONSTER:'D',random,(47,11)
|
||||
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)
|
||||
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],random,(27,05)
|
||||
MONSTER:monster[1],random,(30,05)
|
||||
MONSTER:monster[2],random,(33,05)
|
||||
MONSTER:monster[3],random,(36,05)
|
||||
MONSTER:monster[4],random,(28,06)
|
||||
MONSTER:monster[5],random,(31,06)
|
||||
MONSTER:monster[6],random,(34,06)
|
||||
MONSTER:monster[7],random,(37,06)
|
||||
MONSTER:monster[8],random,(27,07)
|
||||
MONSTER:monster[9],random,(30,07)
|
||||
MONSTER:monster[0],random,(33,07)
|
||||
MONSTER:monster[1],random,(36,07)
|
||||
MONSTER:monster[2],random,(28,08)
|
||||
MONSTER:monster[3],random,(31,08)
|
||||
MONSTER:monster[4],random,(34,08)
|
||||
MONSTER:monster[5],random,(27,09)
|
||||
MONSTER:monster[6],random,(30,09)
|
||||
MONSTER:monster[7],random,(33,09)
|
||||
MONSTER:monster[8],random,(36,09)
|
||||
MONSTER:monster[9],random,(28,10)
|
||||
MONSTER:monster[0],random,(31,10)
|
||||
MONSTER:monster[1],random,(34,10)
|
||||
MONSTER:monster[2],random,(37,10)
|
||||
MONSTER:monster[3],random,(27,11)
|
||||
MONSTER:monster[4],random,(30,11)
|
||||
MONSTER:monster[5],random,(33,11)
|
||||
MONSTER:monster[6],random,(36,11)
|
||||
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
|
||||
|
||||
+332
-330
@@ -51,79 +51,79 @@ 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)
|
||||
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:('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:('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:('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:('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"),(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:('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:('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
|
||||
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
|
||||
OBJECT:('`',"boulder"),random
|
||||
|
||||
|
||||
MAZE:"air",' '
|
||||
@@ -139,26 +139,26 @@ GEOMETRY:center,center
|
||||
# This map has no visible outer boundary, and
|
||||
# is all "air".
|
||||
MAP
|
||||
AAAAAAAAAAAAAAAAAAAAAAAACCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAACCCCCCAAAAAAAACCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAACCAACCCCCAAAAAACCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAACCACCCCCCCAAAAACCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAACCCCCCCCCCAAAAACCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAACCCCAAACCAAACCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAACCCCAAAAAACCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAACCCCCCCAAAACCACCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAACCCCAAAAAAACCACAACCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCAACCCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAACCCCAAACCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACACCCCCAAACCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAACCCCCCCAAAACCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACCCCCCCCAAACCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCCCCCCCCCAACCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACACCCCCCCCCCACCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAACCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAACCCCCCAAACCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAACCAAAAAACCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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.
|
||||
@@ -168,63 +168,63 @@ 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',"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:('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:('y',"yellow light"),random,hostile
|
||||
MONSTER:('y',"yellow light"),random,hostile
|
||||
MONSTER:('y',"yellow light"),random,hostile
|
||||
|
||||
MONSTER:'A',"couatl",random
|
||||
MONSTER:('A',"couatl"),random
|
||||
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'D',random
|
||||
MONSTER:'D',random
|
||||
MONSTER:'D',random
|
||||
MONSTER:'D',random
|
||||
MONSTER:'D',random
|
||||
|
||||
MONSTER:'E',random,random
|
||||
MONSTER:'E',random,random
|
||||
MONSTER:'E',random,random
|
||||
MONSTER:'J',random,random
|
||||
MONSTER:'J',random,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:('&',"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
|
||||
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",' '
|
||||
@@ -301,81 +301,81 @@ 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:('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:('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:('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:('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:('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:(':',"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:('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
|
||||
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
|
||||
OBJECT:('`',"boulder"),random
|
||||
OBJECT:('`',"boulder"),random
|
||||
OBJECT:('`',"boulder"),random
|
||||
OBJECT:('`',"boulder"),random
|
||||
OBJECT:('`',"boulder"),random
|
||||
|
||||
|
||||
MAZE:"water",' '
|
||||
@@ -412,67 +412,67 @@ 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,random
|
||||
MONSTER:';',random,random
|
||||
MONSTER:';',random,random
|
||||
MONSTER:';',random,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:(';',"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
|
||||
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",' '
|
||||
@@ -504,13 +504,15 @@ MAP
|
||||
-----------------
|
||||
ENDMAP
|
||||
# Rider locations
|
||||
RANDOM_PLACES:(23,9),(37,14),(51,9)
|
||||
$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,true
|
||||
REGION:(31,01,44,10),lit,"ordinary",filled,true
|
||||
REGION:(61,05,74,14),lit,"ordinary",filled,true
|
||||
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
|
||||
@@ -535,29 +537,29 @@ 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
|
||||
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
|
||||
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
|
||||
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
|
||||
#
|
||||
@@ -567,52 +569,52 @@ MONSTER:'&',"Famine",place[2],hostile
|
||||
# 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
|
||||
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
|
||||
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
|
||||
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,random,hostile
|
||||
MONSTER:'L',random,random,hostile
|
||||
MONSTER:'L',random,random,hostile
|
||||
MONSTER:'V',random,random,hostile
|
||||
MONSTER:'V',random,random,hostile
|
||||
MONSTER:'V',random,random,hostile
|
||||
MONSTER:'D',random,random,hostile
|
||||
MONSTER:'D',random,random,hostile
|
||||
MONSTER:'D',random,random,hostile
|
||||
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
|
||||
|
||||
+271
-267
@@ -35,9 +35,9 @@ ENDMAP
|
||||
# The shrine to Moloch.
|
||||
REGION:(01,06,05,14),lit,"temple"
|
||||
# The Morgues
|
||||
REGION:(19,01,24,08),unlit,"morgue",filled,true
|
||||
REGION:(09,14,16,18),unlit,"morgue",filled,true
|
||||
REGION:(37,09,43,14),unlit,"morgue",filled,true
|
||||
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
|
||||
@@ -60,60 +60,60 @@ NON_DIGGABLE:(00,00,75,19)
|
||||
# note: no priest(esse)s or monks - maybe Moloch has a *special*
|
||||
# fate reserved for members of *those* classes.
|
||||
#
|
||||
OBJECT:'%',"corpse",random,"archeologist",0
|
||||
OBJECT:'%',"corpse",random,"archeologist",0
|
||||
OBJECT:'%',"corpse",random,"barbarian",0
|
||||
OBJECT:'%',"corpse",random,"barbarian",0
|
||||
OBJECT:'%',"corpse",random,"caveman",0
|
||||
OBJECT:'%',"corpse",random,"cavewoman",0
|
||||
OBJECT:'%',"corpse",random,"healer",0
|
||||
OBJECT:'%',"corpse",random,"healer",0
|
||||
OBJECT:'%',"corpse",random,"knight",0
|
||||
OBJECT:'%',"corpse",random,"knight",0
|
||||
OBJECT:'%',"corpse",random,"ranger",0
|
||||
OBJECT:'%',"corpse",random,"ranger",0
|
||||
OBJECT:'%',"corpse",random,"rogue",0
|
||||
OBJECT:'%',"corpse",random,"rogue",0
|
||||
OBJECT:'%',"corpse",random,"samurai",0
|
||||
OBJECT:'%',"corpse",random,"samurai",0
|
||||
OBJECT:'%',"corpse",random,"tourist",0
|
||||
OBJECT:'%',"corpse",random,"tourist",0
|
||||
OBJECT:'%',"corpse",random,"valkyrie",0
|
||||
OBJECT:'%',"corpse",random,"valkyrie",0
|
||||
OBJECT:'%',"corpse",random,"wizard",0
|
||||
OBJECT:'%',"corpse",random,"wizard",0
|
||||
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,random
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:'[',random
|
||||
OBJECT:'[',random
|
||||
OBJECT:'[',random
|
||||
OBJECT:'[',random
|
||||
OBJECT:')',random
|
||||
OBJECT:')',random
|
||||
OBJECT:')',random
|
||||
OBJECT:')',random
|
||||
#
|
||||
# Some random loot.
|
||||
#
|
||||
OBJECT:'*',"ruby",random
|
||||
OBJECT:'*',random,random
|
||||
OBJECT:'*',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'+',random,random
|
||||
OBJECT:'+',random,random
|
||||
OBJECT:'(',random,random
|
||||
OBJECT:'(',random,random
|
||||
OBJECT:'(',random,random
|
||||
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)
|
||||
@@ -130,36 +130,36 @@ 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
|
||||
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
|
||||
MONSTER:('B',"vampire bat"),random
|
||||
MONSTER:('B',"vampire bat"),random
|
||||
MONSTER:('B',"vampire bat"),random
|
||||
# And a lich for good measure.
|
||||
MONSTER:'L',random,random
|
||||
MONSTER:'L',random
|
||||
# Some undead nasties for good measure
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'Z',random,random
|
||||
MONSTER:'Z',random,random
|
||||
MONSTER:'Z',random,random
|
||||
MONSTER:'Z',random,random
|
||||
MONSTER:'M',random,random
|
||||
MONSTER:'M',random,random
|
||||
MONSTER:'M',random,random
|
||||
MONSTER:'M',random,random
|
||||
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:'.','}',true,true,unlit,false
|
||||
INIT_MAP:mines,'.','}',true,true,unlit,false
|
||||
# guarantee at least one open spot to ensure successful stair placement
|
||||
GEOMETRY:left,bottom
|
||||
MAP
|
||||
@@ -169,7 +169,7 @@ MAP
|
||||
}}}}.}}}
|
||||
}}}}}}}}
|
||||
ENDMAP
|
||||
OBJECT:'`',"boulder",random
|
||||
OBJECT:('`',"boulder"),random
|
||||
GEOMETRY:right,top
|
||||
MAP
|
||||
}}}}}}}}
|
||||
@@ -178,7 +178,7 @@ MAP
|
||||
}}...}}}
|
||||
}}}}}}}}
|
||||
ENDMAP
|
||||
OBJECT:'`',"boulder",random
|
||||
OBJECT:('`',"boulder"),random
|
||||
# lair
|
||||
GEOMETRY:center,center
|
||||
MAP
|
||||
@@ -202,8 +202,12 @@ MAP
|
||||
..}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.}}}}}..
|
||||
ENDMAP
|
||||
# Random registers
|
||||
RANDOM_MONSTERS:'j','b','P','F'
|
||||
RANDOM_PLACES:(04,02),(46,02),(04,15),(46,15)
|
||||
$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
|
||||
@@ -213,57 +217,57 @@ 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"
|
||||
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)
|
||||
MONSTER:('&',"Juiblex"),(25,08)
|
||||
# And a couple demons
|
||||
MONSTER:'i',"lemure",(43,08)
|
||||
MONSTER:'i',"lemure",(44,08)
|
||||
MONSTER:'i',"lemure",(45,08)
|
||||
MONSTER:('i',"lemure"),(43,08)
|
||||
MONSTER:('i',"lemure"),(44,08)
|
||||
MONSTER:('i',"lemure"),(45,08)
|
||||
# Some liquids and gems
|
||||
OBJECT:'*',random,(43,06)
|
||||
OBJECT:'*',random,(45,06)
|
||||
OBJECT:'!',random,(43,09)
|
||||
OBJECT:'!',random,(44,09)
|
||||
OBJECT:'!',random,(45,09)
|
||||
OBJECT:'*',(43,06)
|
||||
OBJECT:'*',(45,06)
|
||||
OBJECT:'!',(43,09)
|
||||
OBJECT:'!',(44,09)
|
||||
OBJECT:'!',(45,09)
|
||||
# And lots of blobby monsters
|
||||
MONSTER:monster[0],random,(25,06)
|
||||
MONSTER:monster[1],random,(24,07)
|
||||
MONSTER:monster[2],random,(26,07)
|
||||
MONSTER:monster[3],random,(23,08)
|
||||
MONSTER:monster[3],random,(27,08)
|
||||
MONSTER:monster[2],random,(24,09)
|
||||
MONSTER:monster[1],random,(26,09)
|
||||
MONSTER:monster[0],random,(25,10)
|
||||
MONSTER:'j',random,random
|
||||
MONSTER:'j',random,random
|
||||
MONSTER:'j',random,random
|
||||
MONSTER:'j',random,random
|
||||
MONSTER:'P',random,random
|
||||
MONSTER:'P',random,random
|
||||
MONSTER:'P',random,random
|
||||
MONSTER:'P',random,random
|
||||
MONSTER:'b',random,random
|
||||
MONSTER:'b',random,random
|
||||
MONSTER:'b',random,random
|
||||
MONSTER:'F',random,random
|
||||
MONSTER:'F',random,random
|
||||
MONSTER:'F',random,random
|
||||
MONSTER:'m',random,random
|
||||
MONSTER:'m',random,random
|
||||
MONSTER:';',"jellyfish",random
|
||||
MONSTER:';',"jellyfish",random
|
||||
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,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'`',"boulder",random
|
||||
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
|
||||
@@ -305,30 +309,30 @@ 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)
|
||||
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)
|
||||
@@ -361,56 +365,56 @@ TRAP:"fire", random
|
||||
TRAP:"magic", random
|
||||
TRAP:"magic", random
|
||||
# Some random objects
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
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)
|
||||
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)
|
||||
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
|
||||
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,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
#
|
||||
# The Asmodeus Level
|
||||
#
|
||||
@@ -447,18 +451,18 @@ NON_DIGGABLE:(00,00,20,11)
|
||||
# Entire main area
|
||||
REGION:(01,01,20,10),unlit,"ordinary"
|
||||
# The fellow in residence
|
||||
MONSTER:'&',"Asmodeus",(12,07)
|
||||
MONSTER:('&',"Asmodeus"),(12,07)
|
||||
# Some random weapons and armor.
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:'*',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
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)
|
||||
@@ -468,13 +472,13 @@ TRAP:"fire", random
|
||||
TRAP:"magic", random
|
||||
TRAP:"magic", random
|
||||
# Random monsters.
|
||||
MONSTER:' ',"ghost",(11,07)
|
||||
MONSTER:'&',"horned devil",(10,05)
|
||||
MONSTER:'L',random,random
|
||||
MONSTER:(' ',"ghost"),(11,07)
|
||||
MONSTER:('&',"horned devil"),(10,05)
|
||||
MONSTER:'L',random
|
||||
# Some Vampires for good measure
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random
|
||||
MONSTER:'V',random
|
||||
MONSTER:'V',random
|
||||
# Second part
|
||||
GEOMETRY:half-right,center
|
||||
MAP
|
||||
@@ -488,9 +492,9 @@ MAZEWALK:(32,02),east
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(00,00,32,04)
|
||||
DOOR:closed,(32,02)
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
TRAP:"anti magic", random
|
||||
TRAP:"fire", random
|
||||
TRAP:"magic", random
|
||||
@@ -523,18 +527,18 @@ NON_DIGGABLE:(00,00,46,12)
|
||||
MAZEWALK:(00,06),west
|
||||
STAIR:(44,06),down
|
||||
# The fellow in residence
|
||||
MONSTER:'&',"Baalzebub",(35,06)
|
||||
MONSTER:('&',"Baalzebub"),(35,06)
|
||||
# Some random weapons and armor.
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:'[',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:')',random,random
|
||||
OBJECT:'*',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
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
|
||||
@@ -544,14 +548,14 @@ 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,random
|
||||
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,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random
|
||||
MONSTER:'V',random
|
||||
MONSTER:'V',random
|
||||
#
|
||||
# The Sanctum Level
|
||||
#
|
||||
@@ -582,7 +586,7 @@ MAP
|
||||
ENDMAP
|
||||
REGION:(15,07,21,10),lit,"temple"
|
||||
ALTAR:(18,08),noalign,sanctum
|
||||
REGION:(41,06,48,11),unlit,"morgue",filled,true
|
||||
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
|
||||
@@ -635,44 +639,44 @@ TRAP:"anti magic", random
|
||||
TRAP:"fire", 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
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,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
|
||||
# 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
|
||||
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
|
||||
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,random
|
||||
MONSTER:'L',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
MONSTER:'V',random,random
|
||||
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.
|
||||
|
||||
+40
-40
@@ -39,7 +39,7 @@ TELEPORT_REGION:(06,16,09,17),(0,0,0,0),up
|
||||
TELEPORT_REGION:(06,16,09,17),(0,0,0,0),down
|
||||
# Throne room, with Croesus on the throne
|
||||
REGION:(37,08,46,11),lit,"throne"
|
||||
MONSTER:'@',"Croesus",(43,10),hostile
|
||||
MONSTER:('@',"Croesus"),(43,10),hostile
|
||||
# The Vault
|
||||
# Using unfilled morgue for
|
||||
# identification in mkmaze.c
|
||||
@@ -50,12 +50,12 @@ REGION:(46,06,48,06),lit,"ordinary"
|
||||
REGION:(19,13,21,13),lit,"ordinary"
|
||||
REGION:(46,13,48,13),lit,"ordinary"
|
||||
# A welcoming committee
|
||||
REGION:(03,10,07,13),lit,"zoo",filled,true
|
||||
REGION:(03,10,07,13),lit,"zoo",filled,irregular
|
||||
# arrival chamber; needs to be a real room to control migrating monsters,
|
||||
# and `unfilled' is a kludge to force an ordinary room to remain a room
|
||||
REGION:(06,15,09,16),unlit,"ordinary",unfilled
|
||||
# Barracks
|
||||
REGION:(62,03,71,04),lit,"barracks",filled,true
|
||||
REGION:(62,03,71,04),lit,"barracks",filled,irregular
|
||||
# Doors
|
||||
DOOR:closed,(06,14)
|
||||
DOOR:closed,(09,03)
|
||||
@@ -67,43 +67,43 @@ DOOR:open,(68,11)
|
||||
DOOR:closed,(63,14)
|
||||
DOOR:closed,(66,14)
|
||||
# Soldiers guarding the fort
|
||||
MONSTER:'@',"soldier",(12,14)
|
||||
MONSTER:'@',"soldier",(12,13)
|
||||
MONSTER:'@',"soldier",(11,10)
|
||||
MONSTER:'@',"soldier",(13,02)
|
||||
MONSTER:'@',"soldier",(14,03)
|
||||
MONSTER:'@',"soldier",(20,02)
|
||||
MONSTER:'@',"soldier",(30,02)
|
||||
MONSTER:'@',"soldier",(40,02)
|
||||
MONSTER:'@',"soldier",(30,16)
|
||||
MONSTER:'@',"soldier",(32,16)
|
||||
MONSTER:'@',"soldier",(40,16)
|
||||
MONSTER:'@',"soldier",(54,16)
|
||||
MONSTER:'@',"soldier",(54,14)
|
||||
MONSTER:'@',"soldier",(54,13)
|
||||
MONSTER:'@',"soldier",(57,10)
|
||||
MONSTER:'@',"soldier",(57,09)
|
||||
MONSTER:'@',"lieutenant",(15,08)
|
||||
MONSTER:('@',"soldier"),(12,14)
|
||||
MONSTER:('@',"soldier"),(12,13)
|
||||
MONSTER:('@',"soldier"),(11,10)
|
||||
MONSTER:('@',"soldier"),(13,02)
|
||||
MONSTER:('@',"soldier"),(14,03)
|
||||
MONSTER:('@',"soldier"),(20,02)
|
||||
MONSTER:('@',"soldier"),(30,02)
|
||||
MONSTER:('@',"soldier"),(40,02)
|
||||
MONSTER:('@',"soldier"),(30,16)
|
||||
MONSTER:('@',"soldier"),(32,16)
|
||||
MONSTER:('@',"soldier"),(40,16)
|
||||
MONSTER:('@',"soldier"),(54,16)
|
||||
MONSTER:('@',"soldier"),(54,14)
|
||||
MONSTER:('@',"soldier"),(54,13)
|
||||
MONSTER:('@',"soldier"),(57,10)
|
||||
MONSTER:('@',"soldier"),(57,09)
|
||||
MONSTER:('@',"lieutenant"),(15,08)
|
||||
# Four dragons guarding each side
|
||||
MONSTER:'D',random,(18,09)
|
||||
MONSTER:'D',random,(49,10)
|
||||
MONSTER:'D',random,(33,05)
|
||||
MONSTER:'D',random,(33,14)
|
||||
MONSTER:'D',(18,09)
|
||||
MONSTER:'D',(49,10)
|
||||
MONSTER:'D',(33,05)
|
||||
MONSTER:'D',(33,14)
|
||||
# Eels in the moat
|
||||
MONSTER:';',"giant eel",(17,08)
|
||||
MONSTER:';',"giant eel",(17,11)
|
||||
MONSTER:';',"giant eel",(48,08)
|
||||
MONSTER:';',"giant eel",(48,11)
|
||||
MONSTER:(';',"giant eel"),(17,08)
|
||||
MONSTER:(';',"giant eel"),(17,11)
|
||||
MONSTER:(';',"giant eel"),(48,08)
|
||||
MONSTER:(';',"giant eel"),(48,11)
|
||||
# The corner rooms treasures
|
||||
OBJECT:'*',"diamond",(19,06)
|
||||
OBJECT:'*',"diamond",(20,06)
|
||||
OBJECT:'*',"diamond",(21,06)
|
||||
OBJECT:'*',"emerald",(19,13)
|
||||
OBJECT:'*',"emerald",(20,13)
|
||||
OBJECT:'*',"emerald",(21,13)
|
||||
OBJECT:'*',"ruby",(46,06)
|
||||
OBJECT:'*',"ruby",(47,06)
|
||||
OBJECT:'*',"ruby",(48,06)
|
||||
OBJECT:'*',"amethyst",(46,13)
|
||||
OBJECT:'*',"amethyst",(47,13)
|
||||
OBJECT:'*',"amethyst",(48,13)
|
||||
OBJECT:('*',"diamond"),(19,06)
|
||||
OBJECT:('*',"diamond"),(20,06)
|
||||
OBJECT:('*',"diamond"),(21,06)
|
||||
OBJECT:('*',"emerald"),(19,13)
|
||||
OBJECT:('*',"emerald"),(20,13)
|
||||
OBJECT:('*',"emerald"),(21,13)
|
||||
OBJECT:('*',"ruby"),(46,06)
|
||||
OBJECT:('*',"ruby"),(47,06)
|
||||
OBJECT:('*',"ruby"),(48,06)
|
||||
OBJECT:('*',"amethyst"),(46,13)
|
||||
OBJECT:('*',"amethyst"),(47,13)
|
||||
OBJECT:('*',"amethyst"),(48,13)
|
||||
|
||||
+99
-97
@@ -55,28 +55,29 @@ BRANCH:levregion(01,00,79,20),(30,06,46,13)
|
||||
# Non diggable walls
|
||||
NON_DIGGABLE:(30,06,46,13)
|
||||
# Objects
|
||||
CONTAINER:'`',"statue",(36,10),uncursed,"knight",3,"Perseus"
|
||||
OBJECT[75%]:'[',"shield of reflection",contained,cursed,+0
|
||||
OBJECT[25%]:'[',"levitation boots",contained,random,+0
|
||||
OBJECT[50%]:')',"scimitar",contained,blessed,+2
|
||||
OBJECT[50%]:'(',"sack",contained
|
||||
CONTAINER:('`',"statue"),(36,10),uncursed,montype:"knight",3,name:"Perseus" {
|
||||
[75%]: OBJECT:('[',"shield of reflection"),cursed,+0
|
||||
[25%]: OBJECT:('[',"levitation boots"),+0
|
||||
[50%]: OBJECT:(')',"scimitar"),blessed,+2
|
||||
[50%]: OBJECT:('(',"sack")
|
||||
}
|
||||
# These aren't really containers, but specifying CONTAINER forces them to be
|
||||
# empty, since CONTAINERs contain only what is explicitly specified.
|
||||
CONTAINER:'`',"statue",random
|
||||
CONTAINER:'`',"statue",random
|
||||
CONTAINER:'`',"statue",random
|
||||
CONTAINER:'`',"statue",random
|
||||
CONTAINER:'`',"statue",random
|
||||
CONTAINER:'`',"statue",random
|
||||
CONTAINER:'`',"statue",random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
CONTAINER:('`',"statue"),random { }
|
||||
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
|
||||
@@ -86,27 +87,27 @@ TRAP:random,random
|
||||
TRAP:"board",(38,07)
|
||||
TRAP:"board",(38,12)
|
||||
# Random monsters
|
||||
MONSTER:'@',"Medusa",(36,10),asleep
|
||||
MONSTER:';',"giant eel",(11,06)
|
||||
MONSTER:';',"giant eel",(23,13)
|
||||
MONSTER:';',"giant eel",(29,02)
|
||||
MONSTER:';',"jellyfish",(02,02)
|
||||
MONSTER:';',"jellyfish",(00,08)
|
||||
MONSTER:';',"jellyfish",(04,18)
|
||||
MONSTER:'T',"water troll",(51,03)
|
||||
MONSTER:'T',"water troll",(64,11)
|
||||
MONSTER:'S',random,(38,07)
|
||||
MONSTER:'S',random,(38,12)
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:('@',"Medusa"),(36,10),asleep
|
||||
MONSTER:(';',"giant eel"),(11,06)
|
||||
MONSTER:(';',"giant eel"),(23,13)
|
||||
MONSTER:(';',"giant eel"),(29,02)
|
||||
MONSTER:(';',"jellyfish"),(02,02)
|
||||
MONSTER:(';',"jellyfish"),(00,08)
|
||||
MONSTER:(';',"jellyfish"),(04,18)
|
||||
MONSTER:('T',"water troll"),(51,03)
|
||||
MONSTER:('T',"water troll"),(64,11)
|
||||
MONSTER:'S',(38,07)
|
||||
MONSTER:'S',(38,12)
|
||||
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
|
||||
|
||||
MAZE:"medusa-2",' '
|
||||
FLAGS: noteleport
|
||||
@@ -136,7 +137,7 @@ ENDMAP
|
||||
# Dungeon Description
|
||||
REGION:(00,00,74,19),lit,"ordinary"
|
||||
REGION:(02,03,05,16),unlit,"ordinary"
|
||||
REGION:(61,03,72,16),unlit,"ordinary",unfilled,true
|
||||
REGION:(61,03,72,16),unlit,"ordinary",unfilled,irregular
|
||||
REGION:(71,08,72,11),unlit,"ordinary"
|
||||
REGION:(67,08,69,11),lit,"ordinary"
|
||||
# Teleport: down to up stairs island, up to Medusa's island
|
||||
@@ -153,28 +154,29 @@ BRANCH:levregion(01,00,79,20),(59,01,73,17)
|
||||
NON_DIGGABLE:(01,02,06,17)
|
||||
NON_DIGGABLE:(60,02,73,17)
|
||||
# Objects
|
||||
CONTAINER:'`',"statue",(68,10),uncursed,"knight",3,"Perseus"
|
||||
OBJECT[25%]:'[',"shield of reflection",contained,cursed,+0
|
||||
OBJECT[75%]:'[',"levitation boots",contained,random,+0
|
||||
OBJECT[50%]:')',"scimitar",contained,blessed,+2
|
||||
OBJECT[50%]:'(',"sack",contained
|
||||
CONTAINER:'`',"statue",(64,08)
|
||||
CONTAINER:'`',"statue",(65,08)
|
||||
CONTAINER:'`',"statue",(64,09)
|
||||
CONTAINER:'`',"statue",(65,09)
|
||||
CONTAINER:'`',"statue",(64,10)
|
||||
CONTAINER:'`',"statue",(65,10)
|
||||
CONTAINER:'`',"statue",(64,11)
|
||||
CONTAINER:'`',"statue",(65,11)
|
||||
OBJECT:'`',"boulder",(04,04)
|
||||
OBJECT:'/',random,(52,09)
|
||||
OBJECT:'`',"boulder",(52,09)
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
OBJECT:random,random,random
|
||||
CONTAINER:('`',"statue"),(68,10),uncursed,montype:"knight",3,name:"Perseus" {
|
||||
[25%]: OBJECT:('[',"shield of reflection"),cursed,+0
|
||||
[75%]: OBJECT:('[',"levitation boots"),+0
|
||||
[50%]: OBJECT:(')',"scimitar"),blessed,+2
|
||||
[50%]: OBJECT:('(',"sack")
|
||||
}
|
||||
CONTAINER:('`',"statue"),(64,08) { }
|
||||
CONTAINER:('`',"statue"),(65,08) { }
|
||||
CONTAINER:('`',"statue"),(64,09) { }
|
||||
CONTAINER:('`',"statue"),(65,09) { }
|
||||
CONTAINER:('`',"statue"),(64,10) { }
|
||||
CONTAINER:('`',"statue"),(65,10) { }
|
||||
CONTAINER:('`',"statue"),(64,11) { }
|
||||
CONTAINER:('`',"statue"),(65,11) { }
|
||||
OBJECT:('`',"boulder"),(04,04)
|
||||
OBJECT:'/',(52,09)
|
||||
OBJECT:('`',"boulder"),(52,09)
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
OBJECT:random,random
|
||||
# Traps
|
||||
TRAP:"magic",(03,12)
|
||||
TRAP:random,random
|
||||
@@ -182,36 +184,36 @@ TRAP:random,random
|
||||
TRAP:random,random
|
||||
TRAP:random,random
|
||||
# Monsters.
|
||||
MONSTER:'@',"Medusa",(68,10),asleep
|
||||
MONSTER:'g',"gremlin",(02,14)
|
||||
MONSTER:'H',"titan",(02,05)
|
||||
MONSTER:';',"electric eel",(10,13)
|
||||
MONSTER:';',"electric eel",(11,13)
|
||||
MONSTER:';',"electric eel",(10,14)
|
||||
MONSTER:';',"electric eel",(11,14)
|
||||
MONSTER:';',"electric eel",(10,15)
|
||||
MONSTER:';',"electric eel",(11,15)
|
||||
MONSTER:';',"jellyfish",(01,01)
|
||||
MONSTER:';',"jellyfish",(00,08)
|
||||
MONSTER:';',"jellyfish",(04,19)
|
||||
MONSTER:''',"stone golem",(64,08),asleep
|
||||
MONSTER:''',"stone golem",(65,08),asleep
|
||||
MONSTER:''',"stone golem",(64,09),asleep
|
||||
MONSTER:''',"stone golem",(65,09),asleep
|
||||
MONSTER:'S',"cobra",(64,10),asleep
|
||||
MONSTER:'S',"cobra",(65,10),asleep
|
||||
MONSTER:'A',random,(72,08)
|
||||
MONSTER:'y',"yellow light",(72,11),asleep
|
||||
MONSTER:random,random,(17,07)
|
||||
MONSTER:random,random,(28,11)
|
||||
MONSTER:random,random,(32,13)
|
||||
MONSTER:random,random,(49,09)
|
||||
MONSTER:random,random,(48,07)
|
||||
MONSTER:random,random,(65,03)
|
||||
MONSTER:random,random,(70,04)
|
||||
MONSTER:random,random,(70,15)
|
||||
MONSTER:random,random,(65,16)
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:('@',"Medusa"),(68,10),asleep
|
||||
MONSTER:('g',"gremlin"),(02,14)
|
||||
MONSTER:('H',"titan"),(02,05)
|
||||
MONSTER:(';',"electric eel"),(10,13)
|
||||
MONSTER:(';',"electric eel"),(11,13)
|
||||
MONSTER:(';',"electric eel"),(10,14)
|
||||
MONSTER:(';',"electric eel"),(11,14)
|
||||
MONSTER:(';',"electric eel"),(10,15)
|
||||
MONSTER:(';',"electric eel"),(11,15)
|
||||
MONSTER:(';',"jellyfish"),(01,01)
|
||||
MONSTER:(';',"jellyfish"),(00,08)
|
||||
MONSTER:(';',"jellyfish"),(04,19)
|
||||
MONSTER:(''',"stone golem"),(64,08),asleep
|
||||
MONSTER:(''',"stone golem"),(65,08),asleep
|
||||
MONSTER:(''',"stone golem"),(64,09),asleep
|
||||
MONSTER:(''',"stone golem"),(65,09),asleep
|
||||
MONSTER:('S',"cobra"),(64,10),asleep
|
||||
MONSTER:('S',"cobra"),(65,10),asleep
|
||||
MONSTER:'A',(72,08)
|
||||
MONSTER:('y',"yellow light"),(72,11),asleep
|
||||
MONSTER:random,(17,07)
|
||||
MONSTER:random,(28,11)
|
||||
MONSTER:random,(32,13)
|
||||
MONSTER:random,(49,09)
|
||||
MONSTER:random,(48,07)
|
||||
MONSTER:random,(65,03)
|
||||
MONSTER:random,(70,04)
|
||||
MONSTER:random,(70,15)
|
||||
MONSTER:random,(65,16)
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
|
||||
+700
-570
File diff suppressed because it is too large
Load Diff
+48
-40
@@ -8,51 +8,59 @@
|
||||
|
||||
LEVEL: "oracle"
|
||||
|
||||
ROOM: "ordinary" , lit, (3,3), (center,center), (11,9)
|
||||
NAME: "central"
|
||||
OBJECT:'`',"statue",(0,0),"forest centaur",1
|
||||
OBJECT:'`',"statue",(0,8),"mountain centaur",1
|
||||
OBJECT:'`',"statue",(10,0),"mountain centaur",1
|
||||
OBJECT:'`',"statue",(10,8),"forest centaur",1
|
||||
OBJECT:'`',"statue",(5,1),"plains centaur",1
|
||||
OBJECT:'`',"statue",(5,7),"plains centaur",1
|
||||
OBJECT:'`',"statue",(2,4),"plains centaur",1
|
||||
OBJECT:'`',"statue",(8,4),"plains centaur",1
|
||||
MONSTER: random, random, random
|
||||
MONSTER: random, random, random
|
||||
ROOM: "ordinary" , lit, (3,3), (center,center), (11,9) {
|
||||
OBJECT:('`',"statue"),(0,0),montype:'C',1
|
||||
OBJECT:('`',"statue"),(0,8),montype:'C',1
|
||||
OBJECT:('`',"statue"),(10,0),montype:'C',1
|
||||
OBJECT:('`',"statue"),(10,8),montype:'C',1
|
||||
OBJECT:('`',"statue"),(5,1),montype:'C',1
|
||||
OBJECT:('`',"statue"),(5,7),montype:'C',1
|
||||
OBJECT:('`',"statue"),(2,4),montype:'C',1
|
||||
OBJECT:('`',"statue"),(8,4),montype:'C',1
|
||||
|
||||
SUBROOM: "delphi" , lit , (4,3) , (3,3), "central"
|
||||
FOUNTAIN: (0, 1)
|
||||
FOUNTAIN: (1, 0)
|
||||
FOUNTAIN: (1, 2)
|
||||
FOUNTAIN: (2, 1)
|
||||
MONSTER: '@', "Oracle", (1,1)
|
||||
DOOR: false , nodoor , random, random
|
||||
SUBROOM: "delphi" , lit , (4,3) , (3,3) {
|
||||
FOUNTAIN: (0, 1)
|
||||
FOUNTAIN: (1, 0)
|
||||
FOUNTAIN: (1, 2)
|
||||
FOUNTAIN: (2, 1)
|
||||
MONSTER: ('@', "Oracle"), (1,1)
|
||||
ROOMDOOR: false , nodoor , random, random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, up
|
||||
OBJECT: random,random,random
|
||||
MONSTER: random, random
|
||||
MONSTER: random, random
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
STAIR: random, down
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: random, random, random
|
||||
MONSTER: random, random, random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
OBJECT: random, random, random
|
||||
OBJECT: random, random, random
|
||||
MONSTER: random, random, random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
STAIR: random, up
|
||||
OBJECT: random,random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: random, random, random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
STAIR: random, down
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: random, random
|
||||
MONSTER: random, random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random
|
||||
OBJECT: random, random, random
|
||||
TRAP: random, random
|
||||
MONSTER: random, random, random
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
OBJECT: random, random
|
||||
MONSTER: random, random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: random, random
|
||||
}
|
||||
|
||||
ROOM: "ordinary" , random, random, random, random {
|
||||
OBJECT: random, random
|
||||
TRAP: random, random
|
||||
MONSTER: random, random
|
||||
}
|
||||
|
||||
RANDOM_CORRIDORS
|
||||
|
||||
+209
-197
@@ -35,7 +35,7 @@
|
||||
|
||||
### Bottom (first) level of Sokoban ###
|
||||
MAZE:"soko4-1",' '
|
||||
FLAGS:noteleport,hardfloor
|
||||
FLAGS:noteleport,hardfloor,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -60,18 +60,18 @@ NON_DIGGABLE:(00,00,13,12)
|
||||
NON_PASSWALL:(00,00,13,12)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(02,02)
|
||||
OBJECT:'`',"boulder",(02,03)
|
||||
OBJECT:('`',"boulder"),(02,02)
|
||||
OBJECT:('`',"boulder"),(02,03)
|
||||
#
|
||||
OBJECT:'`',"boulder",(10,02)
|
||||
OBJECT:'`',"boulder",(09,03)
|
||||
OBJECT:'`',"boulder",(10,04)
|
||||
OBJECT:('`',"boulder"),(10,02)
|
||||
OBJECT:('`',"boulder"),(09,03)
|
||||
OBJECT:('`',"boulder"),(10,04)
|
||||
#
|
||||
OBJECT:'`',"boulder",(08,07)
|
||||
OBJECT:'`',"boulder",(09,08)
|
||||
OBJECT:'`',"boulder",(09,09)
|
||||
OBJECT:'`',"boulder",(08,10)
|
||||
OBJECT:'`',"boulder",(10,10)
|
||||
OBJECT:('`',"boulder"),(08,07)
|
||||
OBJECT:('`',"boulder"),(09,08)
|
||||
OBJECT:('`',"boulder"),(09,09)
|
||||
OBJECT:('`',"boulder"),(08,10)
|
||||
OBJECT:('`',"boulder"),(10,10)
|
||||
|
||||
# Traps
|
||||
TRAP:"pit",(03,06)
|
||||
@@ -85,20 +85,20 @@ TRAP:"pit",(06,10)
|
||||
TRAP:"pit",(07,10)
|
||||
|
||||
# A little help
|
||||
OBJECT:'?',"earth",(02,11)
|
||||
OBJECT:'?',"earth",(03,11)
|
||||
OBJECT:('?',"earth"),(02,11)
|
||||
OBJECT:('?',"earth"),(03,11)
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
|
||||
MAZE:"soko4-2",' '
|
||||
FLAGS:noteleport,hardfloor
|
||||
FLAGS:noteleport,hardfloor,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -121,20 +121,20 @@ NON_DIGGABLE:(00,00,14,10)
|
||||
NON_PASSWALL:(00,00,14,10)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(05,02)
|
||||
OBJECT:'`',"boulder",(06,02)
|
||||
OBJECT:'`',"boulder",(06,03)
|
||||
OBJECT:'`',"boulder",(07,03)
|
||||
OBJECT:('`',"boulder"),(05,02)
|
||||
OBJECT:('`',"boulder"),(06,02)
|
||||
OBJECT:('`',"boulder"),(06,03)
|
||||
OBJECT:('`',"boulder"),(07,03)
|
||||
#
|
||||
OBJECT:'`',"boulder",(09,05)
|
||||
OBJECT:'`',"boulder",(10,03)
|
||||
OBJECT:'`',"boulder",(11,02)
|
||||
OBJECT:'`',"boulder",(12,03)
|
||||
OBJECT:('`',"boulder"),(09,05)
|
||||
OBJECT:('`',"boulder"),(10,03)
|
||||
OBJECT:('`',"boulder"),(11,02)
|
||||
OBJECT:('`',"boulder"),(12,03)
|
||||
#
|
||||
OBJECT:'`',"boulder",(07,08)
|
||||
OBJECT:'`',"boulder",(08,08)
|
||||
OBJECT:'`',"boulder",(09,08)
|
||||
OBJECT:'`',"boulder",(10,08)
|
||||
OBJECT:('`',"boulder"),(07,08)
|
||||
OBJECT:('`',"boulder"),(08,08)
|
||||
OBJECT:('`',"boulder"),(09,08)
|
||||
OBJECT:('`',"boulder"),(10,08)
|
||||
|
||||
# Traps
|
||||
TRAP:"pit",(01,02)
|
||||
@@ -149,21 +149,21 @@ TRAP:"pit",(05,08)
|
||||
TRAP:"pit",(06,08)
|
||||
|
||||
# A little help
|
||||
OBJECT:'?',"earth",(01,09)
|
||||
OBJECT:'?',"earth",(02,09)
|
||||
OBJECT:('?',"earth"),(01,09)
|
||||
OBJECT:('?',"earth"),(02,09)
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
|
||||
### Second level ###
|
||||
MAZE:"soko3-1",' '
|
||||
FLAGS:noteleport
|
||||
FLAGS:noteleport,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -188,29 +188,29 @@ NON_DIGGABLE:(00,00,28,11)
|
||||
NON_PASSWALL:(00,00,28,11)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(03,02)
|
||||
OBJECT:'`',"boulder",(04,02)
|
||||
OBJECT:('`',"boulder"),(03,02)
|
||||
OBJECT:('`',"boulder"),(04,02)
|
||||
#
|
||||
OBJECT:'`',"boulder",(06,02)
|
||||
OBJECT:'`',"boulder",(06,03)
|
||||
OBJECT:'`',"boulder",(07,02)
|
||||
OBJECT:('`',"boulder"),(06,02)
|
||||
OBJECT:('`',"boulder"),(06,03)
|
||||
OBJECT:('`',"boulder"),(07,02)
|
||||
#
|
||||
OBJECT:'`',"boulder",(03,06)
|
||||
OBJECT:'`',"boulder",(02,07)
|
||||
OBJECT:'`',"boulder",(03,07)
|
||||
OBJECT:'`',"boulder",(03,08)
|
||||
OBJECT:'`',"boulder",(02,09)
|
||||
OBJECT:'`',"boulder",(03,09)
|
||||
OBJECT:'`',"boulder",(04,09)
|
||||
OBJECT:('`',"boulder"),(03,06)
|
||||
OBJECT:('`',"boulder"),(02,07)
|
||||
OBJECT:('`',"boulder"),(03,07)
|
||||
OBJECT:('`',"boulder"),(03,08)
|
||||
OBJECT:('`',"boulder"),(02,09)
|
||||
OBJECT:('`',"boulder"),(03,09)
|
||||
OBJECT:('`',"boulder"),(04,09)
|
||||
#
|
||||
OBJECT:'`',"boulder",(06,07)
|
||||
OBJECT:'`',"boulder",(06,09)
|
||||
OBJECT:'`',"boulder",(08,07)
|
||||
OBJECT:'`',"boulder",(08,10)
|
||||
OBJECT:'`',"boulder",(09,08)
|
||||
OBJECT:'`',"boulder",(09,09)
|
||||
OBJECT:'`',"boulder",(10,07)
|
||||
OBJECT:'`',"boulder",(10,10)
|
||||
OBJECT:('`',"boulder"),(06,07)
|
||||
OBJECT:('`',"boulder"),(06,09)
|
||||
OBJECT:('`',"boulder"),(08,07)
|
||||
OBJECT:('`',"boulder"),(08,10)
|
||||
OBJECT:('`',"boulder"),(09,08)
|
||||
OBJECT:('`',"boulder"),(09,09)
|
||||
OBJECT:('`',"boulder"),(10,07)
|
||||
OBJECT:('`',"boulder"),(10,10)
|
||||
|
||||
# Traps
|
||||
TRAP:"hole",(12,10)
|
||||
@@ -230,16 +230,16 @@ TRAP:"hole",(25,10)
|
||||
TRAP:"hole",(26,10)
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
|
||||
MAZE:"soko3-2",' '
|
||||
FLAGS:noteleport
|
||||
FLAGS:noteleport,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -266,22 +266,22 @@ NON_DIGGABLE:(00,00,25,13)
|
||||
NON_PASSWALL:(00,00,25,13)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(02,03)
|
||||
OBJECT:'`',"boulder",(08,03)
|
||||
OBJECT:'`',"boulder",(09,04)
|
||||
OBJECT:'`',"boulder",(02,05)
|
||||
OBJECT:'`',"boulder",(04,05)
|
||||
OBJECT:'`',"boulder",(09,05)
|
||||
OBJECT:'`',"boulder",(02,06)
|
||||
OBJECT:'`',"boulder",(05,06)
|
||||
OBJECT:'`',"boulder",(06,07)
|
||||
OBJECT:'`',"boulder",(03,08)
|
||||
OBJECT:'`',"boulder",(07,08)
|
||||
OBJECT:'`',"boulder",(05,09)
|
||||
OBJECT:'`',"boulder",(10,09)
|
||||
OBJECT:'`',"boulder",(07,10)
|
||||
OBJECT:'`',"boulder",(10,10)
|
||||
OBJECT:'`',"boulder",(03,11)
|
||||
OBJECT:('`',"boulder"),(02,03)
|
||||
OBJECT:('`',"boulder"),(08,03)
|
||||
OBJECT:('`',"boulder"),(09,04)
|
||||
OBJECT:('`',"boulder"),(02,05)
|
||||
OBJECT:('`',"boulder"),(04,05)
|
||||
OBJECT:('`',"boulder"),(09,05)
|
||||
OBJECT:('`',"boulder"),(02,06)
|
||||
OBJECT:('`',"boulder"),(05,06)
|
||||
OBJECT:('`',"boulder"),(06,07)
|
||||
OBJECT:('`',"boulder"),(03,08)
|
||||
OBJECT:('`',"boulder"),(07,08)
|
||||
OBJECT:('`',"boulder"),(05,09)
|
||||
OBJECT:('`',"boulder"),(10,09)
|
||||
OBJECT:('`',"boulder"),(07,10)
|
||||
OBJECT:('`',"boulder"),(10,10)
|
||||
OBJECT:('`',"boulder"),(03,11)
|
||||
|
||||
# Traps
|
||||
TRAP:"hole",(12,10)
|
||||
@@ -298,17 +298,17 @@ TRAP:"hole",(22,10)
|
||||
TRAP:"hole",(23,10)
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
|
||||
### Third level ###
|
||||
MAZE:"soko2-1",' '
|
||||
FLAGS:noteleport
|
||||
FLAGS:noteleport,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -333,23 +333,23 @@ NON_DIGGABLE:(00,00,19,11)
|
||||
NON_PASSWALL:(00,00,19,11)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(02,02)
|
||||
OBJECT:'`',"boulder",(03,02)
|
||||
OBJECT:('`',"boulder"),(02,02)
|
||||
OBJECT:('`',"boulder"),(03,02)
|
||||
#
|
||||
OBJECT:'`',"boulder",(05,03)
|
||||
OBJECT:'`',"boulder",(07,03)
|
||||
OBJECT:'`',"boulder",(07,02)
|
||||
OBJECT:'`',"boulder",(08,02)
|
||||
OBJECT:('`',"boulder"),(05,03)
|
||||
OBJECT:('`',"boulder"),(07,03)
|
||||
OBJECT:('`',"boulder"),(07,02)
|
||||
OBJECT:('`',"boulder"),(08,02)
|
||||
#
|
||||
OBJECT:'`',"boulder",(10,03)
|
||||
OBJECT:'`',"boulder",(11,03)
|
||||
OBJECT:('`',"boulder"),(10,03)
|
||||
OBJECT:('`',"boulder"),(11,03)
|
||||
#
|
||||
OBJECT:'`',"boulder",(02,07)
|
||||
OBJECT:'`',"boulder",(02,08)
|
||||
OBJECT:'`',"boulder",(03,09)
|
||||
OBJECT:('`',"boulder"),(02,07)
|
||||
OBJECT:('`',"boulder"),(02,08)
|
||||
OBJECT:('`',"boulder"),(03,09)
|
||||
#
|
||||
OBJECT:'`',"boulder",(05,07)
|
||||
OBJECT:'`',"boulder",(06,06)
|
||||
OBJECT:('`',"boulder"),(05,07)
|
||||
OBJECT:('`',"boulder"),(06,06)
|
||||
|
||||
# Traps
|
||||
TRAP:"hole",(08,09)
|
||||
@@ -364,16 +364,16 @@ TRAP:"hole",(16,09)
|
||||
TRAP:"hole",(17,09)
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
|
||||
MAZE:"soko2-2",' '
|
||||
FLAGS:noteleport
|
||||
FLAGS:noteleport,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -399,22 +399,22 @@ NON_DIGGABLE:(00,00,19,12)
|
||||
NON_PASSWALL:(00,00,19,12)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(04,02)
|
||||
OBJECT:'`',"boulder",(04,03)
|
||||
OBJECT:'`',"boulder",(05,03)
|
||||
OBJECT:'`',"boulder",(07,03)
|
||||
OBJECT:'`',"boulder",(08,03)
|
||||
OBJECT:'`',"boulder",(02,04)
|
||||
OBJECT:'`',"boulder",(03,04)
|
||||
OBJECT:'`',"boulder",(05,05)
|
||||
OBJECT:'`',"boulder",(06,06)
|
||||
OBJECT:'`',"boulder",(09,06)
|
||||
OBJECT:'`',"boulder",(03,07)
|
||||
OBJECT:'`',"boulder",(04,07)
|
||||
OBJECT:'`',"boulder",(07,07)
|
||||
OBJECT:'`',"boulder",(06,09)
|
||||
OBJECT:'`',"boulder",(05,10)
|
||||
OBJECT:'`',"boulder",(05,11)
|
||||
OBJECT:('`',"boulder"),(04,02)
|
||||
OBJECT:('`',"boulder"),(04,03)
|
||||
OBJECT:('`',"boulder"),(05,03)
|
||||
OBJECT:('`',"boulder"),(07,03)
|
||||
OBJECT:('`',"boulder"),(08,03)
|
||||
OBJECT:('`',"boulder"),(02,04)
|
||||
OBJECT:('`',"boulder"),(03,04)
|
||||
OBJECT:('`',"boulder"),(05,05)
|
||||
OBJECT:('`',"boulder"),(06,06)
|
||||
OBJECT:('`',"boulder"),(09,06)
|
||||
OBJECT:('`',"boulder"),(03,07)
|
||||
OBJECT:('`',"boulder"),(04,07)
|
||||
OBJECT:('`',"boulder"),(07,07)
|
||||
OBJECT:('`',"boulder"),(06,09)
|
||||
OBJECT:('`',"boulder"),(05,10)
|
||||
OBJECT:('`',"boulder"),(05,11)
|
||||
|
||||
# Traps
|
||||
TRAP:"hole",(07,11)
|
||||
@@ -430,17 +430,17 @@ TRAP:"hole",(16,11)
|
||||
TRAP:"hole",(17,11)
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
|
||||
### Top (last) level of Sokoban ###
|
||||
MAZE:"soko1-1",' '
|
||||
FLAGS:noteleport
|
||||
FLAGS:noteleport,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -463,34 +463,36 @@ MAP
|
||||
|...|----- --|.....|
|
||||
----- -------
|
||||
ENDMAP
|
||||
RANDOM_PLACES:(16,11),(16,13),(16,15)
|
||||
$place = { (16,11),(16,13),(16,15) }
|
||||
SHUFFLE: $place
|
||||
|
||||
STAIR:(01,01),down
|
||||
REGION:(00,00,25,17),lit,"ordinary"
|
||||
NON_DIGGABLE:(00,00,25,17)
|
||||
NON_PASSWALL:(00,00,25,17)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(03,05)
|
||||
OBJECT:'`',"boulder",(05,05)
|
||||
OBJECT:'`',"boulder",(07,05)
|
||||
OBJECT:'`',"boulder",(09,05)
|
||||
OBJECT:'`',"boulder",(11,05)
|
||||
OBJECT:('`',"boulder"),(03,05)
|
||||
OBJECT:('`',"boulder"),(05,05)
|
||||
OBJECT:('`',"boulder"),(07,05)
|
||||
OBJECT:('`',"boulder"),(09,05)
|
||||
OBJECT:('`',"boulder"),(11,05)
|
||||
#
|
||||
OBJECT:'`',"boulder",(04,07)
|
||||
OBJECT:'`',"boulder",(04,08)
|
||||
OBJECT:'`',"boulder",(06,07)
|
||||
OBJECT:'`',"boulder",(09,07)
|
||||
OBJECT:'`',"boulder",(11,07)
|
||||
OBJECT:('`',"boulder"),(04,07)
|
||||
OBJECT:('`',"boulder"),(04,08)
|
||||
OBJECT:('`',"boulder"),(06,07)
|
||||
OBJECT:('`',"boulder"),(09,07)
|
||||
OBJECT:('`',"boulder"),(11,07)
|
||||
#
|
||||
OBJECT:'`',"boulder",(03,12)
|
||||
OBJECT:'`',"boulder",(04,10)
|
||||
OBJECT:'`',"boulder",(05,12)
|
||||
OBJECT:'`',"boulder",(06,10)
|
||||
OBJECT:'`',"boulder",(07,11)
|
||||
OBJECT:'`',"boulder",(08,10)
|
||||
OBJECT:'`',"boulder",(09,12)
|
||||
OBJECT:('`',"boulder"),(03,12)
|
||||
OBJECT:('`',"boulder"),(04,10)
|
||||
OBJECT:('`',"boulder"),(05,12)
|
||||
OBJECT:('`',"boulder"),(06,10)
|
||||
OBJECT:('`',"boulder"),(07,11)
|
||||
OBJECT:('`',"boulder"),(08,10)
|
||||
OBJECT:('`',"boulder"),(09,12)
|
||||
#
|
||||
OBJECT:'`',"boulder",(03,14)
|
||||
OBJECT:('`',"boulder"),(03,14)
|
||||
|
||||
# Traps
|
||||
TRAP:"hole",(08,01)
|
||||
@@ -510,29 +512,33 @@ TRAP:"hole",(21,01)
|
||||
TRAP:"hole",(22,01)
|
||||
TRAP:"hole",(23,01)
|
||||
|
||||
MONSTER:'m',"giant mimic", random, m_object "boulder"
|
||||
MONSTER:'m',"giant mimic", random, m_object "boulder"
|
||||
MONSTER:('m',"giant mimic"), random, m_object "boulder"
|
||||
MONSTER:('m',"giant mimic"), random, m_object "boulder"
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
# Rewards
|
||||
DOOR:locked,(23,13)
|
||||
DOOR:closed,(17,11)
|
||||
DOOR:closed,(17,13)
|
||||
DOOR:closed,(17,15)
|
||||
REGION:(18,10,22,16),lit,"zoo",filled,true
|
||||
OBJECT:'(',"bag of holding",place[0]
|
||||
ENGRAVING:place[0],burn,"Elbereth"
|
||||
REGION:(18,10,22,16),lit,"zoo",filled,irregular
|
||||
IF [50%] {
|
||||
OBJECT:('(',"bag of holding"),$place[0]
|
||||
} ELSE {
|
||||
OBJECT:('"',"amulet of reflection"),$place[0]
|
||||
}
|
||||
ENGRAVING:$place[0],burn,"Elbereth"
|
||||
|
||||
|
||||
MAZE:"soko1-2",' '
|
||||
FLAGS:noteleport
|
||||
FLAGS:noteleport,premapped,solidify
|
||||
GEOMETRY:center,center
|
||||
#12345678901234567890123456789012345678901234567890
|
||||
MAP
|
||||
@@ -554,35 +560,37 @@ MAP
|
||||
|..|..| --|.....|
|
||||
------- -------
|
||||
ENDMAP
|
||||
RANDOM_PLACES:(16,10),(16,12),(16,14)
|
||||
$place = { (16,10),(16,12),(16,14) }
|
||||
SHUFFLE: $place
|
||||
|
||||
STAIR:(06,15),down
|
||||
REGION:(00,00,25,16),lit,"ordinary"
|
||||
NON_DIGGABLE:(00,00,25,16)
|
||||
NON_PASSWALL:(00,00,25,16)
|
||||
|
||||
# Boulders
|
||||
OBJECT:'`',"boulder",(04,04)
|
||||
OBJECT:'`',"boulder",(02,06)
|
||||
OBJECT:'`',"boulder",(03,06)
|
||||
OBJECT:'`',"boulder",(04,07)
|
||||
OBJECT:'`',"boulder",(05,07)
|
||||
OBJECT:'`',"boulder",(02,08)
|
||||
OBJECT:'`',"boulder",(05,08)
|
||||
OBJECT:'`',"boulder",(03,09)
|
||||
OBJECT:'`',"boulder",(04,09)
|
||||
OBJECT:'`',"boulder",(03,10)
|
||||
OBJECT:'`',"boulder",(05,10)
|
||||
OBJECT:'`',"boulder",(06,12)
|
||||
OBJECT:('`',"boulder"),(04,04)
|
||||
OBJECT:('`',"boulder"),(02,06)
|
||||
OBJECT:('`',"boulder"),(03,06)
|
||||
OBJECT:('`',"boulder"),(04,07)
|
||||
OBJECT:('`',"boulder"),(05,07)
|
||||
OBJECT:('`',"boulder"),(02,08)
|
||||
OBJECT:('`',"boulder"),(05,08)
|
||||
OBJECT:('`',"boulder"),(03,09)
|
||||
OBJECT:('`',"boulder"),(04,09)
|
||||
OBJECT:('`',"boulder"),(03,10)
|
||||
OBJECT:('`',"boulder"),(05,10)
|
||||
OBJECT:('`',"boulder"),(06,12)
|
||||
#
|
||||
OBJECT:'`',"boulder",(07,14)
|
||||
OBJECT:('`',"boulder"),(07,14)
|
||||
#
|
||||
OBJECT:'`',"boulder",(11,05)
|
||||
OBJECT:'`',"boulder",(12,06)
|
||||
OBJECT:'`',"boulder",(10,07)
|
||||
OBJECT:'`',"boulder",(11,07)
|
||||
OBJECT:'`',"boulder",(10,08)
|
||||
OBJECT:'`',"boulder",(12,09)
|
||||
OBJECT:'`',"boulder",(11,10)
|
||||
OBJECT:('`',"boulder"),(11,05)
|
||||
OBJECT:('`',"boulder"),(12,06)
|
||||
OBJECT:('`',"boulder"),(10,07)
|
||||
OBJECT:('`',"boulder"),(11,07)
|
||||
OBJECT:('`',"boulder"),(10,08)
|
||||
OBJECT:('`',"boulder"),(12,09)
|
||||
OBJECT:('`',"boulder"),(11,10)
|
||||
|
||||
# Traps
|
||||
TRAP:"hole",(05,01)
|
||||
@@ -604,22 +612,26 @@ TRAP:"hole",(20,01)
|
||||
TRAP:"hole",(21,01)
|
||||
TRAP:"hole",(22,01)
|
||||
|
||||
MONSTER:'m',"giant mimic", random, m_object "boulder"
|
||||
MONSTER:'m',"giant mimic", random, m_object "boulder"
|
||||
MONSTER:('m',"giant mimic"), random, m_object "boulder"
|
||||
MONSTER:('m',"giant mimic"), random, m_object "boulder"
|
||||
|
||||
# Random objects
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'%',random,random
|
||||
OBJECT:'=',random,random
|
||||
OBJECT:'/',random,random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'%',random
|
||||
OBJECT:'=',random
|
||||
OBJECT:'/',random
|
||||
|
||||
# Rewards
|
||||
DOOR:locked,(23,12)
|
||||
DOOR:closed,(17,10)
|
||||
DOOR:closed,(17,12)
|
||||
DOOR:closed,(17,14)
|
||||
REGION:(18,09,22,15),lit,"zoo",filled,true
|
||||
OBJECT:'"',"amulet of reflection",place[0]
|
||||
ENGRAVING:place[0],burn,"Elbereth"
|
||||
REGION:(18,09,22,15),lit,"zoo",filled,irregular
|
||||
IF [50%] {
|
||||
OBJECT:('(',"bag of holding"),$place[0]
|
||||
} ELSE {
|
||||
OBJECT:('"',"amulet of reflection"),$place[0]
|
||||
}
|
||||
ENGRAVING:$place[0],burn,"Elbereth"
|
||||
|
||||
+54
-50
@@ -6,7 +6,7 @@
|
||||
#
|
||||
# Upper stage of Vlad's tower
|
||||
MAZE:"tower1",' '
|
||||
FLAGS: noteleport,hardfloor
|
||||
FLAGS: noteleport,hardfloor,solidify
|
||||
GEOMETRY:half-left,center
|
||||
MAP
|
||||
--- --- ---
|
||||
@@ -23,13 +23,13 @@ MAP
|
||||
ENDMAP
|
||||
LADDER:(11,05),down
|
||||
# The lord and his court
|
||||
MONSTER:'V',"Vlad the Impaler",(06,05)
|
||||
MONSTER:'V',random,(03,09)
|
||||
MONSTER:'V',random,(07,09)
|
||||
MONSTER:'V',random,(11,09)
|
||||
MONSTER:'V',random,(03,01)
|
||||
MONSTER:'V',random,(07,01)
|
||||
MONSTER:'V',random,(11,01)
|
||||
MONSTER:('V',"Vlad the Impaler"),(06,05)
|
||||
MONSTER:'V',(03,09)
|
||||
MONSTER:'V',(07,09)
|
||||
MONSTER:'V',(11,09)
|
||||
MONSTER:'V',(03,01)
|
||||
MONSTER:'V',(07,01)
|
||||
MONSTER:'V',(11,01)
|
||||
# The doors
|
||||
DOOR:closed,(08,03)
|
||||
DOOR:closed,(10,03)
|
||||
@@ -39,20 +39,20 @@ DOOR:locked,(08,07)
|
||||
DOOR:locked,(10,07)
|
||||
DOOR:closed,(03,06)
|
||||
# treasures
|
||||
OBJECT:'(',"chest",(07,05)
|
||||
OBJECT:'(',"chest",(03,09)
|
||||
OBJECT:'(',"chest",(07,09)
|
||||
OBJECT:'(',"chest",(11,09)
|
||||
OBJECT:'(',"chest",(03,01)
|
||||
OBJECT:'(',"chest",(07,01)
|
||||
OBJECT:'(',"chest",(11,01)
|
||||
OBJECT:('(',"chest"),(07,05)
|
||||
OBJECT:('(',"chest"),(03,09)
|
||||
OBJECT:('(',"chest"),(07,09)
|
||||
OBJECT:('(',"chest"),(11,09)
|
||||
OBJECT:('(',"chest"),(03,01)
|
||||
OBJECT:('(',"chest"),(07,01)
|
||||
OBJECT:('(',"chest"),(11,01)
|
||||
# We have to protect the tower against outside attacks
|
||||
NON_DIGGABLE:(00,00,14,10)
|
||||
|
||||
|
||||
# Intermediate stage of Vlad's tower
|
||||
MAZE:"tower2",' '
|
||||
FLAGS: noteleport,hardfloor
|
||||
FLAGS: noteleport,hardfloor,solidify
|
||||
GEOMETRY:half-left,center
|
||||
MAP
|
||||
--- --- ---
|
||||
@@ -68,31 +68,34 @@ MAP
|
||||
--- --- ---
|
||||
ENDMAP
|
||||
# Random places are the 10 niches
|
||||
RANDOM_PLACES:(03,01),(07,01),(11,01),(01,03),(13,03),
|
||||
(01,07),(13,07),(03,09),(07,09),(11,09)
|
||||
$place = { (03,01),(07,01),(11,01),(01,03),(13,03),
|
||||
(01,07),(13,07),(03,09),(07,09),(11,09) }
|
||||
SHUFFLE: $place
|
||||
LADDER:(11,05),up
|
||||
LADDER:(03,07),down
|
||||
DOOR:locked,(10,04)
|
||||
DOOR:locked,(09,07)
|
||||
MONSTER:'&',random,place[0]
|
||||
MONSTER:'&',random,place[1]
|
||||
MONSTER:'d',"hell hound pup",place[2]
|
||||
MONSTER:'d',"hell hound pup",place[3]
|
||||
MONSTER:'d',"winter wolf",place[4]
|
||||
CONTAINER:'(',"chest",place[5]
|
||||
OBJECT:'"',"amulet of life saving",contained
|
||||
CONTAINER:'(',"chest",place[6]
|
||||
OBJECT:'"',"amulet of strangulation",contained
|
||||
OBJECT:'[',"water walking boots",place[7]
|
||||
OBJECT:'[',"crystal plate mail",place[8]
|
||||
OBJECT:'+',"invisibility",place[9]
|
||||
MONSTER:'&',$place[0]
|
||||
MONSTER:'&',$place[1]
|
||||
MONSTER:('d',"hell hound pup"),$place[2]
|
||||
MONSTER:('d',"hell hound pup"),$place[3]
|
||||
MONSTER:('d',"winter wolf"),$place[4]
|
||||
CONTAINER:('(',"chest"),$place[5] {
|
||||
OBJECT:('"',"amulet of life saving")
|
||||
}
|
||||
CONTAINER:('(',"chest"),$place[6] {
|
||||
OBJECT:('"',"amulet of strangulation")
|
||||
}
|
||||
OBJECT:('[',"water walking boots"),$place[7]
|
||||
OBJECT:('[',"crystal plate mail"),$place[8]
|
||||
OBJECT:('+',"invisibility"),$place[9]
|
||||
# Walls in the tower are non diggable
|
||||
NON_DIGGABLE:(00,00,14,10)
|
||||
|
||||
|
||||
# Bottom most stage of Vlad's tower
|
||||
MAZE:"tower3",' '
|
||||
FLAGS: noteleport,hardfloor
|
||||
FLAGS: noteleport,hardfloor,solidify
|
||||
GEOMETRY:half-left,center
|
||||
MAP
|
||||
--- --- ---
|
||||
@@ -110,29 +113,30 @@ MAP
|
||||
---------------
|
||||
ENDMAP
|
||||
# Random places are the 10 niches
|
||||
RANDOM_PLACES:(05,01),(09,01),(13,01),(03,03),(15,03),
|
||||
(03,07),(15,07),(05,09),(09,09),(13,09)
|
||||
$place = { (05,01),(09,01),(13,01),(03,03),(15,03),
|
||||
(03,07),(15,07),(05,09),(09,09),(13,09) }
|
||||
SHUFFLE: $place
|
||||
BRANCH:(02,05,02,05),(00,00,00,00)
|
||||
LADDER:(05,07),up
|
||||
# Entry door is, of course, locked
|
||||
DOOR:locked,(14,05)
|
||||
# Let's put a dragon behind the door, just for the fun...
|
||||
MONSTER:'D',random,(13,05)
|
||||
MONSTER:random,random,(12,04)
|
||||
MONSTER:random,random,(12,06)
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
MONSTER:random,random,random
|
||||
OBJECT:')',"long sword",place[0]
|
||||
TRAP:random,place[0]
|
||||
OBJECT:'(',"lock pick",place[1]
|
||||
TRAP:random,place[1]
|
||||
OBJECT:'[',"elven cloak",place[2]
|
||||
TRAP:random,place[2]
|
||||
OBJECT:'(',"blindfold",place[3]
|
||||
TRAP:random,place[3]
|
||||
MONSTER:'D',(13,05)
|
||||
MONSTER:random,(12,04)
|
||||
MONSTER:random,(12,06)
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
MONSTER:random,random
|
||||
OBJECT:(')',"long sword"),$place[0]
|
||||
TRAP:random,$place[0]
|
||||
OBJECT:('(',"lock pick"),$place[1]
|
||||
TRAP:random,$place[1]
|
||||
OBJECT:('[',"elven cloak"),$place[2]
|
||||
TRAP:random,$place[2]
|
||||
OBJECT:('(',"blindfold"),$place[3]
|
||||
TRAP:random,$place[3]
|
||||
# Walls in the tower are non diggable
|
||||
NON_DIGGABLE:(00,00,18,12)
|
||||
|
||||
+61
-61
@@ -48,29 +48,29 @@ NON_PASSWALL:(11,00,21,00)
|
||||
NON_PASSWALL:(11,10,27,12)
|
||||
NON_PASSWALL:(21,00,27,10)
|
||||
# The wizard and his guards
|
||||
MONSTER:'@',"Wizard of Yendor",(16,05),asleep
|
||||
MONSTER:'d',"hell hound",(15,05)
|
||||
MONSTER:'V',"vampire lord",(17,05)
|
||||
MONSTER:('@',"Wizard of Yendor"),(16,05),asleep
|
||||
MONSTER:('d',"hell hound"),(15,05)
|
||||
MONSTER:('V',"vampire lord"),(17,05)
|
||||
# The local treasure
|
||||
OBJECT:'+',"Book of the Dead",(16,05)
|
||||
OBJECT:('+',"Book of the Dead"),(16,05)
|
||||
# Surrounding terror
|
||||
MONSTER:';',"kraken",(14,02)
|
||||
MONSTER:';',"giant eel",(17,02)
|
||||
MONSTER:';',"kraken",(13,04)
|
||||
MONSTER:';',"giant eel",(13,06)
|
||||
MONSTER:';',"kraken",(19,04)
|
||||
MONSTER:';',"giant eel",(19,06)
|
||||
MONSTER:';',"kraken",(15,08)
|
||||
MONSTER:';',"giant eel",(17,08)
|
||||
MONSTER:';',"piranha",(15,02)
|
||||
MONSTER:';',"piranha",(19,08)
|
||||
MONSTER:(';',"kraken"),(14,02)
|
||||
MONSTER:(';',"giant eel"),(17,02)
|
||||
MONSTER:(';',"kraken"),(13,04)
|
||||
MONSTER:(';',"giant eel"),(13,06)
|
||||
MONSTER:(';',"kraken"),(19,04)
|
||||
MONSTER:(';',"giant eel"),(19,06)
|
||||
MONSTER:(';',"kraken"),(15,08)
|
||||
MONSTER:(';',"giant eel"),(17,08)
|
||||
MONSTER:(';',"piranha"),(15,02)
|
||||
MONSTER:(';',"piranha"),(19,08)
|
||||
# Random monsters
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'H',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'D',random
|
||||
MONSTER:'H',random
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
# And to make things a little harder.
|
||||
TRAP:"board",(16,04)
|
||||
TRAP:"board",(16,06)
|
||||
@@ -82,14 +82,14 @@ TRAP:"sleep gas",random
|
||||
TRAP:"anti magic",random
|
||||
TRAP:"magic",random
|
||||
# Some random loot.
|
||||
OBJECT:'*',"ruby",random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'+',random,random
|
||||
OBJECT:'+',random,random
|
||||
OBJECT:'+',random,random
|
||||
OBJECT:('*',"ruby"),random
|
||||
OBJECT:'!',random
|
||||
OBJECT:'!',random
|
||||
OBJECT:'?',random
|
||||
OBJECT:'?',random
|
||||
OBJECT:'+',random
|
||||
OBJECT:'+',random
|
||||
OBJECT:'+',random
|
||||
|
||||
|
||||
# The middle wizard level.
|
||||
@@ -136,13 +136,13 @@ TRAP:"sleep gas",random
|
||||
TRAP:"anti magic",random
|
||||
TRAP:"magic",random
|
||||
# Some random loot.
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'+',random,random
|
||||
OBJECT:'!',random
|
||||
OBJECT:'!',random
|
||||
OBJECT:'?',random
|
||||
OBJECT:'?',random
|
||||
OBJECT:'+',random
|
||||
# treasures
|
||||
OBJECT:'"',random,(04,06)
|
||||
OBJECT:'"',(04,06)
|
||||
|
||||
|
||||
# The bottom wizard level.
|
||||
@@ -191,33 +191,33 @@ NON_PASSWALL:(06,00,27,02)
|
||||
NON_PASSWALL:(16,02,27,12)
|
||||
NON_PASSWALL:(06,12,16,12)
|
||||
#
|
||||
MONSTER:'L',random,(10,07)
|
||||
MONSTER:'V',"vampire lord",(12,07)
|
||||
MONSTER:'L',(10,07)
|
||||
MONSTER:('V',"vampire lord"),(12,07)
|
||||
# Some surrounding horrors
|
||||
MONSTER:';',"kraken",(08,05)
|
||||
MONSTER:';',"giant eel",(08,08)
|
||||
MONSTER:';',"kraken",(14,05)
|
||||
MONSTER:';',"giant eel",(14,08)
|
||||
MONSTER:(';',"kraken"),(08,05)
|
||||
MONSTER:(';',"giant eel"),(08,08)
|
||||
MONSTER:(';',"kraken"),(14,05)
|
||||
MONSTER:(';',"giant eel"),(14,08)
|
||||
# Other monsters
|
||||
MONSTER:'L',random,random
|
||||
MONSTER:'D',random,random
|
||||
MONSTER:'D',random,(26,09)
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'&',random,random
|
||||
MONSTER:'L',random
|
||||
MONSTER:'D',random
|
||||
MONSTER:'D',(26,09)
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
MONSTER:'&',random
|
||||
# And to make things a little harder.
|
||||
TRAP:"board",(10,07)
|
||||
TRAP:"board",(12,07)
|
||||
TRAP:"board",(11,06)
|
||||
TRAP:"board",(11,08)
|
||||
# Some loot
|
||||
OBJECT:')',random,random
|
||||
OBJECT:'!',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'?',random,random
|
||||
OBJECT:'(',random,random
|
||||
OBJECT:')',random
|
||||
OBJECT:'!',random
|
||||
OBJECT:'?',random
|
||||
OBJECT:'?',random
|
||||
OBJECT:'(',random
|
||||
# treasures
|
||||
OBJECT:'"',random,(11,07)
|
||||
OBJECT:'"',(11,07)
|
||||
|
||||
|
||||
# The former decoy wizard levels.
|
||||
@@ -241,10 +241,10 @@ BRANCH:levregion(01,00,79,20),(0,0,8,7)
|
||||
TELEPORT_REGION:levregion(01,00,79,20),(2,2,6,6)
|
||||
PORTAL:(4,4,4,4),(0,0,0,0),"wizard3"
|
||||
MAZEWALK:(08,05),east
|
||||
REGION:(04,03,06,06),unlit,"ordinary",unfilled,true
|
||||
MONSTER:'L',random,(04,04)
|
||||
MONSTER:'V',"vampire lord",(03,04)
|
||||
MONSTER:';',"kraken",(06,06)
|
||||
REGION:(04,03,06,06),unlit,"ordinary",unfilled,irregular
|
||||
MONSTER:'L',(04,04)
|
||||
MONSTER:('V',"vampire lord"),(03,04)
|
||||
MONSTER:(';',"kraken"),(06,06)
|
||||
# And to make things a little harder.
|
||||
TRAP:"board",(04,03)
|
||||
TRAP:"board",(04,05)
|
||||
@@ -269,14 +269,14 @@ STAIR:levregion(01,00,79,20),(0,0,8,7),down
|
||||
BRANCH:levregion(01,00,79,20),(0,0,8,7)
|
||||
TELEPORT_REGION:levregion(01,00,79,20),(2,2,6,6)
|
||||
MAZEWALK:(08,05),east
|
||||
REGION:(04,03,06,06),unlit,"ordinary",unfilled,true
|
||||
MONSTER:'L',random,(04,04)
|
||||
MONSTER:'V',"vampire lord",(03,04)
|
||||
MONSTER:';',"kraken",(06,06)
|
||||
REGION:(04,03,06,06),unlit,"ordinary",unfilled,irregular
|
||||
MONSTER:'L',(04,04)
|
||||
MONSTER:('V',"vampire lord"),(03,04)
|
||||
MONSTER:(';',"kraken"),(06,06)
|
||||
# And to make things a little harder.
|
||||
TRAP:"board",(04,03)
|
||||
TRAP:"board",(04,05)
|
||||
TRAP:"board",(03,04)
|
||||
TRAP:"board",(05,04)
|
||||
# treasures
|
||||
OBJECT:'"',random,(04,04)
|
||||
OBJECT:'"',(04,04)
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
*.mn filter=NHtext merge=NHsubst
|
||||
*.6 filter=NHtext merge=NHsubst
|
||||
fixes.* filter=NHtext merge=NHsubst
|
||||
window.doc filter=NHtext merge=NHsubst
|
||||
*.mn NHSUBST
|
||||
*.6 NHSUBST
|
||||
fixes.* NHSUBST
|
||||
window.doc NHSUBST
|
||||
|
||||
|
||||
@@ -1921,6 +1921,8 @@ quality of the weapon; you are free to manually fill your quiver or quiver sack
|
||||
or make ready
|
||||
with the `Q' command instead. If no weapon is found or the option is
|
||||
false, the `t' (throw) command is executed instead. (default false)
|
||||
.lp blind
|
||||
Start the character permanently blind. (default false)
|
||||
.lp bones
|
||||
Allow saving and loading bones files. (default true)
|
||||
.lp boulder
|
||||
@@ -2143,6 +2145,8 @@ Cannot be set with the `O' command.
|
||||
Read the NetHack news file, if present (default on).
|
||||
Since the news is shown at the beginning of the game, there's no point
|
||||
in setting this with the `O' command.
|
||||
.lp nudist
|
||||
Start the character with no armor (default false).
|
||||
.lp "null "
|
||||
Send padding nulls to the terminal (default on).
|
||||
.lp number_pad
|
||||
@@ -2918,6 +2922,10 @@ SHELLERS
|
||||
A list of users who are allowed to use the shell escape command (!). The
|
||||
syntax is the same as WIZARDS.
|
||||
.lp
|
||||
EXPLORERS
|
||||
A list of users who are allowed to use the explore mode. The
|
||||
syntax is the same as WIZARDS.
|
||||
.lp
|
||||
MAXPLAYERS
|
||||
Limit the maximum number of games that can be running at the same time.
|
||||
.lp
|
||||
|
||||
@@ -2322,6 +2322,9 @@ or make ready
|
||||
with the `Q' command instead. If no weapon is found or the option is
|
||||
false, the `t' (throw) command is executed instead. (default false)
|
||||
%.lp
|
||||
\item[\ib{blind}]
|
||||
Start the character permanently blind. (default false)
|
||||
%.lp
|
||||
\item[\ib{bones}]
|
||||
Allow saving and loading bones files. (default true)
|
||||
%.lp
|
||||
@@ -2576,6 +2579,9 @@ Read the {\it NetHack\/} news file, if present (default on).
|
||||
Since the news is shown at the beginning of the game, there's no point
|
||||
in setting this with the `{\tt O}' command.
|
||||
%.lp
|
||||
\item[\ib{nudist}]
|
||||
Start the character with no armor (default false).
|
||||
%.lp
|
||||
\item[\ib{null}]
|
||||
Send padding nulls to the terminal (default on).
|
||||
%.lp
|
||||
@@ -3488,6 +3494,10 @@ asterisk (*) allows anyone to start a game in wizard mode.
|
||||
A list of users who are allowed to use the shell escape command (!).
|
||||
The syntax is the same as WIZARDS.
|
||||
%.lp
|
||||
\item[\ib{EXPLORERS}]
|
||||
A list of users who are allowed to use the explore mode.
|
||||
The syntax is the same as WIZARDS.
|
||||
%.lp
|
||||
\item[\ib{MAXPLAYERS}]
|
||||
Limit the maximum number of games taht can be running at the same time.
|
||||
%.lp
|
||||
|
||||
@@ -893,6 +893,7 @@ boomerang makes noise when hitting a sink
|
||||
non-pet rust monsters would eat rust-proofed non-digestibles but ignore
|
||||
those non-digestibles otherwise
|
||||
kicking a grave may topple the gravestone
|
||||
allow showing legal jumping positions when asked for location to jump to
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
@@ -1108,6 +1109,9 @@ allow reading many more items
|
||||
when you're hiding under something a zap downward should not hit that
|
||||
something, while a zap upward should
|
||||
show more explicit reason why player was helpless at death
|
||||
added new hallucinatory-only gods
|
||||
options to create the character blind or nudist
|
||||
moving clouds on the plane of air
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
|
||||
@@ -5,3 +5,4 @@ pm.h
|
||||
vis_tab.h
|
||||
dgn_comp.h
|
||||
lev_comp.h
|
||||
tile.h
|
||||
|
||||
+4
-2
@@ -276,7 +276,7 @@ E int FDECL(use_pick_axe2, (struct obj *));
|
||||
E boolean FDECL(mdig_tunnel, (struct monst *));
|
||||
E void FDECL(watch_dig, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
|
||||
E void NDECL(zap_dig);
|
||||
E struct obj *FDECL(bury_an_obj, (struct obj *));
|
||||
E struct obj *FDECL(bury_an_obj, (struct obj *, boolean *));
|
||||
E void FDECL(bury_objs, (int,int));
|
||||
E void FDECL(unearth_objs, (int,int));
|
||||
E void FDECL(rot_organic, (ANY_P *, long));
|
||||
@@ -828,6 +828,7 @@ E char *FDECL(sitoa, (int));
|
||||
E int FDECL(sgn, (int));
|
||||
E int FDECL(rounddiv, (long,int));
|
||||
E int FDECL(dist2, (int,int,int,int));
|
||||
E int FDECL(isqrt, (int));
|
||||
E int FDECL(distmin, (int,int,int,int));
|
||||
E boolean FDECL(online2, (int,int,int,int));
|
||||
E boolean FDECL(pmatch, (const char *,const char *));
|
||||
@@ -1138,6 +1139,7 @@ E void FDECL(dodoor, (int,int,struct mkroom *));
|
||||
E void FDECL(mktrap, (int,int,struct mkroom *,coord*));
|
||||
E void FDECL(mkstairs, (XCHAR_P,XCHAR_P,CHAR_P,struct mkroom *));
|
||||
E void NDECL(mkinvokearea);
|
||||
E void FDECL(mineralize, (int, int, int, int, BOOLEAN_P));
|
||||
|
||||
/* ### mkmap.c ### */
|
||||
|
||||
@@ -1147,7 +1149,7 @@ void FDECL(remove_rooms, (int,int,int,int));
|
||||
/* ### mkmaze.c ### */
|
||||
|
||||
E void FDECL(wallification, (int,int,int,int));
|
||||
E void FDECL(walkfrom, (int,int));
|
||||
E void FDECL(walkfrom, (int,int,SCHAR_P));
|
||||
E void FDECL(makemaz, (const char *));
|
||||
E void FDECL(mazexy, (coord *));
|
||||
E void NDECL(bound_digging);
|
||||
|
||||
@@ -13,6 +13,8 @@ struct mkroom {
|
||||
schar rtype; /* type of room (zoo, throne, etc...) */
|
||||
schar orig_rtype; /* same as rtype, but not zeroed later */
|
||||
schar rlit; /* is the room lit ? */
|
||||
schar needfill; /* sp_lev: does the room need filling? */
|
||||
schar needjoining; /* sp_lev */
|
||||
schar doorct; /* door count */
|
||||
schar fdoor; /* index for the first door of the room */
|
||||
schar nsubrooms; /* number of subrooms */
|
||||
|
||||
@@ -127,8 +127,15 @@ extern void FDECL(interject, (int));
|
||||
#define strncmpi(a,b,c) strnicmp(a,b,c)
|
||||
#endif
|
||||
|
||||
/* Visual Studio defines this in their own headers, which we don't use */
|
||||
#ifndef snprintf
|
||||
#define snprintf _snprintf
|
||||
#pragma warning(disable:4996) /* deprecation warning suggesting snprintf_s */
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef __BORLANDC__
|
||||
#undef randomize
|
||||
#undef random
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 obj.h $NHDT-Date: 1426949157 2015/03/21 14:45:57 $ $NHDT-Branch: master $:$NHDT-Revision: 1.36 $ */
|
||||
/* NetHack 3.5 obj.h $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 obj.h $Date: 2012/01/10 17:47:16 $ $Revision: 1.31 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 patchlevel.h $NHDT-Date: 1426948844 2015/03/21 14:40:44 $ $NHDT-Branch: master $:$NHDT-Revision: 1.95 $ */
|
||||
/* NetHack 3.5 patchlevel.h $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 patchlevel.h $Date: 2012/04/14 08:31:03 $ $Revision: 1.93 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -14,7 +14,7 @@
|
||||
* Incrementing EDITLEVEL can be used to force invalidation of old bones
|
||||
* and save files.
|
||||
*/
|
||||
#define EDITLEVEL 59
|
||||
#define EDITLEVEL 60
|
||||
|
||||
#define COPYRIGHT_BANNER_A \
|
||||
"NetHack, Copyright 1985-2015"
|
||||
|
||||
@@ -291,6 +291,7 @@ extern struct symsetentry symset[NUM_GRAPHICS]; /* from drawing.c */
|
||||
#define D_CLOSED 4
|
||||
#define D_LOCKED 8
|
||||
#define D_TRAPPED 16
|
||||
#define D_SECRET 32 /* only used by sp_lev.c, NOT in rm-struct */
|
||||
|
||||
/*
|
||||
* Some altars are considered as shrines, so we need a flag.
|
||||
@@ -393,6 +394,19 @@ struct rm {
|
||||
Bitfield(candig,1); /* Exception to Can_dig_down; was a trapdoor */
|
||||
};
|
||||
|
||||
|
||||
#define SET_TYPLIT(x,y,ttyp,llit) \
|
||||
{ \
|
||||
if ((x) >= 0 && (y) >= 0 && (x) < COLNO && (y) < ROWNO) { \
|
||||
if ((ttyp) < MAX_TYPE) levl[(x)][(y)].typ = (ttyp); \
|
||||
if ((ttyp) == LAVAPOOL) levl[(x)][(y)].lit = 1; \
|
||||
else if ((schar)(llit) != -2) { \
|
||||
if ((schar)(llit) == -1) levl[(x)][(y)].lit = rn2(2); \
|
||||
else levl[(x)][(y)].lit = (llit); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
/*
|
||||
* Add wall angle viewing by defining "modes" for each wall type. Each
|
||||
* mode describes which parts of a wall are finished (seen as as wall)
|
||||
|
||||
+382
-158
@@ -19,92 +19,378 @@
|
||||
#define MAP_Y_LIM 21
|
||||
|
||||
/* Per level flags */
|
||||
#define NOTELEPORT 1
|
||||
#define HARDFLOOR 2
|
||||
#define NOMMAP 4
|
||||
#define SHORTSIGHTED 8
|
||||
#define ARBOREAL 16
|
||||
#define NOTELEPORT 0x00000001L
|
||||
#define HARDFLOOR 0x00000002L
|
||||
#define NOMMAP 0x00000004L
|
||||
#define SHORTSIGHTED 0x00000008L
|
||||
#define ARBOREAL 0x00000010L
|
||||
#define MAZELEVEL 0x00000020L
|
||||
#define PREMAPPED 0x00000040L /* premapped level & sokoban rules */
|
||||
#define SHROUD 0x00000080L
|
||||
#define GRAVEYARD 0x00000100L
|
||||
#define ICEDPOOLS 0x00000200L /* for ice locations: ICED_POOL vs ICED_MOAT */
|
||||
#define SOLIDIFY 0x00000400L /* outer areas are nondiggable & nonpasswall */
|
||||
|
||||
/* special level types */
|
||||
#define SP_LEV_ROOMS 1
|
||||
#define SP_LEV_MAZE 2
|
||||
/* different level layout initializers */
|
||||
#define LVLINIT_NONE 0
|
||||
#define LVLINIT_SOLIDFILL 1
|
||||
#define LVLINIT_MAZEGRID 2
|
||||
#define LVLINIT_MINES 3
|
||||
#define LVLINIT_ROGUE 4
|
||||
|
||||
/* max. layers of object containment */
|
||||
#define MAX_CONTAINMENT 10
|
||||
|
||||
/* max. # of random registers */
|
||||
#define MAX_REGISTERS 10
|
||||
|
||||
/* max. nested depth of subrooms */
|
||||
#define MAX_NESTED_ROOMS 5
|
||||
|
||||
/* max. # of opcodes per special level */
|
||||
#define SPCODER_MAX_RUNTIME 65536
|
||||
|
||||
/* Opcodes for creating the level
|
||||
* If you change these, also change opcodestr[] in util/lev_main.c
|
||||
*/
|
||||
enum opcode_defs {
|
||||
SPO_NULL = 0,
|
||||
SPO_MESSAGE,
|
||||
SPO_MONSTER,
|
||||
SPO_OBJECT,
|
||||
SPO_ENGRAVING,
|
||||
SPO_ROOM,
|
||||
SPO_SUBROOM,
|
||||
SPO_DOOR,
|
||||
SPO_STAIR,
|
||||
SPO_LADDER,
|
||||
SPO_ALTAR,
|
||||
SPO_FOUNTAIN,
|
||||
SPO_SINK,
|
||||
SPO_POOL,
|
||||
SPO_TRAP,
|
||||
SPO_GOLD,
|
||||
SPO_CORRIDOR,
|
||||
SPO_LEVREGION,
|
||||
SPO_DRAWBRIDGE,
|
||||
SPO_MAZEWALK,
|
||||
SPO_NON_DIGGABLE,
|
||||
SPO_NON_PASSWALL,
|
||||
SPO_WALLIFY,
|
||||
SPO_MAP,
|
||||
SPO_ROOM_DOOR,
|
||||
SPO_REGION,
|
||||
SPO_MINERALIZE,
|
||||
SPO_CMP,
|
||||
SPO_JMP,
|
||||
SPO_JL,
|
||||
SPO_JLE,
|
||||
SPO_JG,
|
||||
SPO_JGE,
|
||||
SPO_JE,
|
||||
SPO_JNE,
|
||||
SPO_TERRAIN,
|
||||
SPO_REPLACETERRAIN,
|
||||
SPO_EXIT,
|
||||
SPO_ENDROOM,
|
||||
SPO_POP_CONTAINER,
|
||||
SPO_PUSH,
|
||||
SPO_POP,
|
||||
SPO_RN2,
|
||||
SPO_DEC,
|
||||
SPO_INC,
|
||||
SPO_MATH_ADD,
|
||||
SPO_MATH_SUB,
|
||||
SPO_MATH_MUL,
|
||||
SPO_MATH_DIV,
|
||||
SPO_MATH_MOD,
|
||||
SPO_MATH_SIGN,
|
||||
SPO_COPY,
|
||||
SPO_END_MONINVENT,
|
||||
SPO_GRAVE,
|
||||
SPO_FRAME_PUSH,
|
||||
SPO_FRAME_POP,
|
||||
SPO_CALL,
|
||||
SPO_RETURN,
|
||||
SPO_INITLEVEL,
|
||||
SPO_LEVEL_FLAGS,
|
||||
SPO_VAR_INIT, /* variable_name data */
|
||||
SPO_SHUFFLE_ARRAY,
|
||||
SPO_DICE,
|
||||
|
||||
SPO_SEL_ADD,
|
||||
SPO_SEL_POINT,
|
||||
SPO_SEL_RECT,
|
||||
SPO_SEL_FILLRECT,
|
||||
SPO_SEL_LINE,
|
||||
SPO_SEL_RNDLINE,
|
||||
SPO_SEL_GROW,
|
||||
SPO_SEL_FLOOD,
|
||||
SPO_SEL_RNDCOORD,
|
||||
SPO_SEL_ELLIPSE,
|
||||
SPO_SEL_FILTER,
|
||||
SPO_SEL_GRADIENT,
|
||||
SPO_SEL_COMPLEMENT,
|
||||
|
||||
MAX_SP_OPCODES
|
||||
};
|
||||
|
||||
/* MONSTER and OBJECT can take a variable number of parameters,
|
||||
* they also pop different # of values from the stack. So,
|
||||
* first we pop a value that tells what the _next_ value will
|
||||
* mean.
|
||||
*/
|
||||
/* MONSTER */
|
||||
#define SP_M_V_PEACEFUL 0
|
||||
#define SP_M_V_ALIGN 1
|
||||
#define SP_M_V_ASLEEP 2
|
||||
#define SP_M_V_APPEAR 3
|
||||
#define SP_M_V_NAME 4
|
||||
|
||||
#define SP_M_V_FEMALE 5
|
||||
#define SP_M_V_INVIS 6
|
||||
#define SP_M_V_CANCELLED 7
|
||||
#define SP_M_V_REVIVED 8
|
||||
#define SP_M_V_AVENGE 9
|
||||
#define SP_M_V_FLEEING 10
|
||||
#define SP_M_V_BLINDED 11
|
||||
#define SP_M_V_PARALYZED 12
|
||||
#define SP_M_V_STUNNED 13
|
||||
#define SP_M_V_CONFUSED 14
|
||||
#define SP_M_V_SEENTRAPS 15
|
||||
|
||||
#define SP_M_V_END 16 /* end of variable parameters */
|
||||
|
||||
/* OBJECT */
|
||||
#define SP_O_V_SPE 0
|
||||
#define SP_O_V_CURSE 1
|
||||
#define SP_O_V_CORPSENM 2
|
||||
#define SP_O_V_NAME 3
|
||||
#define SP_O_V_QUAN 4
|
||||
#define SP_O_V_BURIED 5
|
||||
#define SP_O_V_LIT 6
|
||||
#define SP_O_V_ERODED 7
|
||||
#define SP_O_V_LOCKED 8
|
||||
#define SP_O_V_TRAPPED 9
|
||||
#define SP_O_V_RECHARGED 10
|
||||
#define SP_O_V_INVIS 11
|
||||
#define SP_O_V_GREASED 12
|
||||
#define SP_O_V_BROKEN 13
|
||||
#define SP_O_V_COORD 14
|
||||
#define SP_O_V_END 15 /* end of variable parameters */
|
||||
|
||||
|
||||
/* When creating objects, we need to know whether
|
||||
* it's a container and/or contents.
|
||||
*/
|
||||
#define SP_OBJ_CONTENT 0x1
|
||||
#define SP_OBJ_CONTAINER 0x2
|
||||
|
||||
|
||||
/* SPO_FILTER types */
|
||||
#define SPOFILTER_PERCENT 0
|
||||
#define SPOFILTER_SELECTION 1
|
||||
#define SPOFILTER_MAPCHAR 2
|
||||
|
||||
/* gradient filter types */
|
||||
#define SEL_GRADIENT_RADIAL 0
|
||||
#define SEL_GRADIENT_SQUARE 1
|
||||
|
||||
/* variable types */
|
||||
#define SPOVAR_NULL 0x00
|
||||
#define SPOVAR_INT 0x01 /* l */
|
||||
#define SPOVAR_STRING 0x02 /* str */
|
||||
#define SPOVAR_VARIABLE 0x03 /* str (contains the variable name) */
|
||||
#define SPOVAR_COORD 0x04 /* coordinate, encoded in l; use SP_COORD_X() and SP_COORD_Y() */
|
||||
#define SPOVAR_REGION 0x05 /* region, encoded in l; use SP_REGION_X1() etc */
|
||||
#define SPOVAR_MAPCHAR 0x06 /* map char, in l */
|
||||
#define SPOVAR_MONST 0x07 /* monster class & specific monster, encoded in l; use SP_MONST_... */
|
||||
#define SPOVAR_OBJ 0x08 /* object class & specific object type, encoded in l; use SP_OBJ_... */
|
||||
#define SPOVAR_SEL 0x09 /* selection. char[COLNO][ROWNO] in str */
|
||||
#define SPOVAR_ARRAY 0x40 /* used in splev_var & lc_vardefs, not in opvar */
|
||||
|
||||
#define SP_COORD_IS_RANDOM 0x01000000
|
||||
/* Humidity flags for get_location() and friends, used with SP_COORD_PACK_RANDOM() */
|
||||
#define DRY 0x1
|
||||
#define WET 0x2
|
||||
#define HOT 0x4
|
||||
#define SOLID 0x8
|
||||
#define ANY_LOC 0x10 /* even outside the level */
|
||||
#define NO_LOC_WARN 0x20 /* no complaints and set x & y to -1, if no loc */
|
||||
|
||||
#define SP_COORD_X(l) (l & 0xff)
|
||||
#define SP_COORD_Y(l) ((l >> 16) & 0xff)
|
||||
#define SP_COORD_PACK(x,y) ((( x ) & 0xff) + ((( y ) & 0xff) << 16))
|
||||
#define SP_COORD_PACK_RANDOM(f) (SP_COORD_IS_RANDOM | (f))
|
||||
|
||||
#define SP_REGION_X1(l) (l & 0xff)
|
||||
#define SP_REGION_Y1(l) ((l >> 8) & 0xff)
|
||||
#define SP_REGION_X2(l) ((l >> 16) & 0xff)
|
||||
#define SP_REGION_Y2(l) ((l >> 24) & 0xff)
|
||||
#define SP_REGION_PACK(x1,y1,x2,y2) ((( x1 ) & 0xff) + ((( y1 ) & 0xff) << 8) + ((( x2 ) & 0xff) << 16) + ((( y2 ) & 0xff) << 24))
|
||||
|
||||
#define SP_MONST_CLASS(l) (l & 0xff)
|
||||
#define SP_MONST_PM(l) ((l >> 8) & 0xffff)
|
||||
#define SP_MONST_PACK(m,c) ((( m ) << 8) + ((char)( c )))
|
||||
|
||||
#define SP_OBJ_CLASS(l) (l & 0xff)
|
||||
#define SP_OBJ_TYP(l) ((l >> 8) & 0xffff)
|
||||
#define SP_OBJ_PACK(o,c) ((( o ) << 8) + ((char)( c )))
|
||||
|
||||
#define SP_MAPCHAR_TYP(l) (l & 0xff)
|
||||
#define SP_MAPCHAR_LIT(l) ((l >> 8) & 0xff)
|
||||
#define SP_MAPCHAR_PACK(typ,lit) ((( lit ) << 8) + ((char)( typ )))
|
||||
|
||||
|
||||
struct opvar {
|
||||
xchar spovartyp; /* one of SPOVAR_foo */
|
||||
union {
|
||||
char *str;
|
||||
long l;
|
||||
} vardata;
|
||||
};
|
||||
|
||||
struct splev_var {
|
||||
struct splev_var *next;
|
||||
char *name;
|
||||
xchar svtyp; /* SPOVAR_foo */
|
||||
union {
|
||||
struct opvar *value;
|
||||
struct opvar **arrayvalues;
|
||||
} data;
|
||||
long array_len;
|
||||
};
|
||||
|
||||
struct splevstack {
|
||||
long depth;
|
||||
long depth_alloc;
|
||||
struct opvar **stackdata;
|
||||
};
|
||||
|
||||
|
||||
struct sp_frame {
|
||||
struct sp_frame *next;
|
||||
struct splevstack *stack;
|
||||
struct splev_var *variables;
|
||||
long n_opcode;
|
||||
};
|
||||
|
||||
|
||||
struct sp_coder {
|
||||
struct splevstack *stack;
|
||||
struct sp_frame *frame;
|
||||
int premapped;
|
||||
boolean solidify;
|
||||
struct mkroom *croom;
|
||||
struct mkroom *tmproomlist[MAX_NESTED_ROOMS+1];
|
||||
boolean failed_room[MAX_NESTED_ROOMS+1];
|
||||
int n_subroom;
|
||||
boolean exit_script;
|
||||
int lvl_is_joined;
|
||||
|
||||
int opcode; /* current opcode */
|
||||
struct opvar *opdat; /* current push data (req. opcode == SPO_PUSH) */
|
||||
};
|
||||
|
||||
/* special level coder CPU flags */
|
||||
#define SP_CPUFLAG_LT 1
|
||||
#define SP_CPUFLAG_GT 2
|
||||
#define SP_CPUFLAG_EQ 4
|
||||
#define SP_CPUFLAG_ZERO 8
|
||||
|
||||
/*
|
||||
* Structures manipulated by the special levels loader & compiler
|
||||
*/
|
||||
|
||||
#define packed_coord long
|
||||
typedef struct {
|
||||
xchar is_random;
|
||||
long getloc_flags;
|
||||
int x, y;
|
||||
} unpacked_coord;
|
||||
|
||||
typedef struct {
|
||||
int cmp_what;
|
||||
int cmp_val;
|
||||
} opcmp;
|
||||
|
||||
typedef struct {
|
||||
long jmp_target;
|
||||
} opjmp;
|
||||
|
||||
|
||||
typedef union str_or_len {
|
||||
char *str;
|
||||
int len;
|
||||
} Str_or_Len;
|
||||
|
||||
typedef struct {
|
||||
xchar init_style; /* one of LVLINIT_foo */
|
||||
long flags;
|
||||
schar filling;
|
||||
boolean init_present, padding;
|
||||
char fg, bg;
|
||||
boolean smoothed, joined;
|
||||
xchar lit, walled;
|
||||
boolean icedpools; /* for ice locations: ICED_POOL vs ICED_MOAT */
|
||||
boolean icedpools;
|
||||
} lev_init;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, mask;
|
||||
} door;
|
||||
|
||||
typedef struct {
|
||||
xchar wall, pos, secret, mask;
|
||||
} room_door;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, chance, type;
|
||||
packed_coord coord;
|
||||
xchar x, y, type;
|
||||
} trap;
|
||||
|
||||
typedef struct {
|
||||
Str_or_Len name, appear_as;
|
||||
short id;
|
||||
aligntyp align;
|
||||
xchar x, y, chance, class, appear;
|
||||
packed_coord coord;
|
||||
xchar x, y, class, appear;
|
||||
schar peaceful, asleep;
|
||||
short female, invis, cancelled, revived, avenge, fleeing, blinded, paralyzed, stunned, confused;
|
||||
long seentraps;
|
||||
short has_invent;
|
||||
} monster;
|
||||
|
||||
typedef struct {
|
||||
Str_or_Len name;
|
||||
int corpsenm;
|
||||
short id, spe;
|
||||
xchar x, y, chance, class, containment;
|
||||
packed_coord coord;
|
||||
xchar x, y, class, containment;
|
||||
schar curse_state;
|
||||
int quan;
|
||||
short buried;
|
||||
short lit;
|
||||
short eroded, locked, trapped, recharged, invis, greased, broken;
|
||||
} object;
|
||||
|
||||
typedef struct {
|
||||
packed_coord coord;
|
||||
xchar x, y;
|
||||
aligntyp align;
|
||||
xchar shrine;
|
||||
} altar;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, dir, db_open;
|
||||
} drawbridge;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, dir;
|
||||
} walk;
|
||||
|
||||
typedef struct {
|
||||
xchar x1, y1, x2, y2;
|
||||
} digpos;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, up;
|
||||
} lad;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, up;
|
||||
} stair;
|
||||
|
||||
typedef struct {
|
||||
xchar x1, y1, x2, y2;
|
||||
xchar rtype, rlit, rirreg;
|
||||
} region;
|
||||
|
||||
typedef struct {
|
||||
xchar ter, tlit;
|
||||
} terrain;
|
||||
|
||||
typedef struct {
|
||||
xchar chance;
|
||||
xchar x1,y1,x2,y2;
|
||||
xchar fromter, toter, tolit;
|
||||
} replaceterrain;
|
||||
|
||||
/* values for rtype are defined in dungeon.h */
|
||||
typedef struct {
|
||||
struct { xchar x1, y1, x2, y2; } inarea;
|
||||
@@ -114,116 +400,6 @@ typedef struct {
|
||||
Str_or_Len rname;
|
||||
} lev_region;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y;
|
||||
int amount;
|
||||
} gold;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y;
|
||||
Str_or_Len engr;
|
||||
xchar etype;
|
||||
} engraving;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y;
|
||||
} fountain;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y;
|
||||
} sink;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y;
|
||||
} pool;
|
||||
|
||||
typedef struct {
|
||||
char halign, valign;
|
||||
char xsize, ysize;
|
||||
char **map;
|
||||
char nrobjects;
|
||||
char *robjects;
|
||||
char nloc;
|
||||
char *rloc_x;
|
||||
char *rloc_y;
|
||||
char nrmonst;
|
||||
char *rmonst;
|
||||
char nreg;
|
||||
region **regions;
|
||||
char nlreg;
|
||||
lev_region **lregions;
|
||||
char ndoor;
|
||||
door **doors;
|
||||
char ntrap;
|
||||
trap **traps;
|
||||
char nmonster;
|
||||
monster **monsters;
|
||||
char nobject;
|
||||
object **objects;
|
||||
char ndrawbridge;
|
||||
drawbridge **drawbridges;
|
||||
char nwalk;
|
||||
walk **walks;
|
||||
char ndig;
|
||||
digpos **digs;
|
||||
char npass;
|
||||
digpos **passs;
|
||||
char nlad;
|
||||
lad **lads;
|
||||
char nstair;
|
||||
stair **stairs;
|
||||
char naltar;
|
||||
altar **altars;
|
||||
char ngold;
|
||||
gold **golds;
|
||||
char nengraving;
|
||||
engraving **engravings;
|
||||
char nfountain;
|
||||
fountain **fountains;
|
||||
} mazepart;
|
||||
|
||||
typedef struct {
|
||||
long flags;
|
||||
lev_init init_lev;
|
||||
schar filling;
|
||||
char numpart;
|
||||
mazepart **parts;
|
||||
} specialmaze;
|
||||
|
||||
typedef struct _room {
|
||||
char *name;
|
||||
char *parent;
|
||||
xchar x, y, w, h;
|
||||
xchar xalign, yalign;
|
||||
xchar rtype, chance, rlit, filled;
|
||||
char ndoor;
|
||||
room_door **doors;
|
||||
char ntrap;
|
||||
trap **traps;
|
||||
char nmonster;
|
||||
monster **monsters;
|
||||
char nobject;
|
||||
object **objects;
|
||||
char naltar;
|
||||
altar **altars;
|
||||
char nstair;
|
||||
stair **stairs;
|
||||
char ngold;
|
||||
gold **golds;
|
||||
char nengraving;
|
||||
engraving **engravings;
|
||||
char nfountain;
|
||||
fountain **fountains;
|
||||
char nsink;
|
||||
sink **sinks;
|
||||
char npool;
|
||||
pool **pools;
|
||||
/* These three fields are only used when loading the level... */
|
||||
int nsubroom;
|
||||
struct _room *subrooms[MAX_SUBROOMS];
|
||||
struct mkroom *mkr;
|
||||
} room;
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
xchar room;
|
||||
@@ -232,18 +408,66 @@ typedef struct {
|
||||
} src, dest;
|
||||
} corridor;
|
||||
|
||||
/* used only by lev_comp */
|
||||
typedef struct _room {
|
||||
Str_or_Len name;
|
||||
Str_or_Len parent;
|
||||
xchar x, y, w, h;
|
||||
xchar xalign, yalign;
|
||||
xchar rtype, chance, rlit, filled, joined;
|
||||
} room;
|
||||
|
||||
typedef struct {
|
||||
long flags;
|
||||
lev_init init_lev;
|
||||
char nrobjects;
|
||||
char *robjects;
|
||||
char nrmonst;
|
||||
char *rmonst;
|
||||
xchar nroom;
|
||||
room **rooms;
|
||||
xchar ncorr;
|
||||
corridor **corrs;
|
||||
} splev;
|
||||
schar zaligntyp;
|
||||
schar keep_region;
|
||||
schar halign, valign;
|
||||
char xsize, ysize;
|
||||
char **map;
|
||||
} mazepart;
|
||||
|
||||
typedef struct {
|
||||
int opcode;
|
||||
struct opvar *opdat;
|
||||
} _opcode;
|
||||
|
||||
typedef struct {
|
||||
_opcode *opcodes;
|
||||
long n_opcodes;
|
||||
} sp_lev;
|
||||
|
||||
typedef struct {
|
||||
xchar x, y, direction, count, lit;
|
||||
char typ;
|
||||
} spill;
|
||||
|
||||
|
||||
/* only used by lev_comp */
|
||||
struct lc_funcdefs_parm {
|
||||
char *name;
|
||||
char parmtype;
|
||||
struct lc_funcdefs_parm *next;
|
||||
};
|
||||
|
||||
struct lc_funcdefs {
|
||||
struct lc_funcdefs *next;
|
||||
char *name;
|
||||
long addr;
|
||||
sp_lev code;
|
||||
long n_called;
|
||||
struct lc_funcdefs_parm *params;
|
||||
long n_params;
|
||||
};
|
||||
|
||||
struct lc_vardefs {
|
||||
struct lc_vardefs *next;
|
||||
char *name;
|
||||
long var_type; /* SPOVAR_foo */
|
||||
long n_used;
|
||||
};
|
||||
|
||||
struct lc_breakdef {
|
||||
struct lc_breakdef *next;
|
||||
struct opvar *breakpoint;
|
||||
int break_depth;
|
||||
};
|
||||
|
||||
#endif /* SP_LEV_H */
|
||||
|
||||
@@ -10,6 +10,7 @@ struct sysopt {
|
||||
char *support; /* local support contact */
|
||||
char *recover; /* how to run recover - may be overridden by win port */
|
||||
char *wizards;
|
||||
char *explorers;
|
||||
char *shellers; /* like wizards, for ! command (-DSHELL) */
|
||||
char *debugfiles; /* files to show debugplines in. '*' is all. */
|
||||
int env_dbgfl; /* 1: debugfiles comes from getenv("DEBUGFILES")
|
||||
|
||||
@@ -92,6 +92,11 @@ struct u_conduct { /* number of times... */
|
||||
/* genocides already listed at end of game */
|
||||
};
|
||||
|
||||
struct u_roleplay {
|
||||
boolean blind; /* permanently blind */
|
||||
boolean nudist; /* has not worn any armor, ever */
|
||||
};
|
||||
|
||||
/*** Unified structure containing role information ***/
|
||||
struct Role {
|
||||
/*** Strings that name various things ***/
|
||||
@@ -330,6 +335,7 @@ struct you {
|
||||
struct u_event uevent; /* certain events have happened */
|
||||
struct u_have uhave; /* you're carrying special objects */
|
||||
struct u_conduct uconduct; /* KMH, conduct */
|
||||
struct u_roleplay uroleplay;
|
||||
struct attribs acurr, /* your current attributes (eg. str)*/
|
||||
aexe, /* for gain/loss via "exercise" */
|
||||
abon, /* your bonus attributes (eg. str) */
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@
|
||||
#define Blinded u.uprops[BLINDED].intrinsic
|
||||
#define Blindfolded (ublindf && ublindf->otyp != LENSES)
|
||||
/* ...means blind because of a cover */
|
||||
#define Blind ((Blinded || Blindfolded || !haseyes(youmonst.data)) && \
|
||||
#define Blind ((u.uroleplay.blind || Blinded || Blindfolded || !haseyes(youmonst.data)) && \
|
||||
!(ublindf && ublindf->oartifact == ART_EYES_OF_THE_OVERWORLD))
|
||||
/* ...the Eyes operate even when you really are blind
|
||||
or don't have any eyes */
|
||||
|
||||
+1
-1
@@ -292,7 +292,7 @@ boolean resuming;
|
||||
}
|
||||
restore_attrib();
|
||||
/* underwater and waterlevel vision are done here */
|
||||
if (Is_waterlevel(&u.uz))
|
||||
if (Is_waterlevel(&u.uz) || Is_airlevel(&u.uz))
|
||||
movebubbles();
|
||||
else if (Underwater)
|
||||
under_water(0);
|
||||
|
||||
+52
-16
@@ -20,6 +20,7 @@ STATIC_DCL void FDECL(use_candelabrum, (struct obj *));
|
||||
STATIC_DCL void FDECL(use_candle, (struct obj **));
|
||||
STATIC_DCL void FDECL(use_lamp, (struct obj *));
|
||||
STATIC_DCL void FDECL(light_cocktail, (struct obj *));
|
||||
STATIC_PTR void FDECL(display_jump_positions, (int));
|
||||
STATIC_DCL void FDECL(use_tinning_kit, (struct obj *));
|
||||
STATIC_DCL void FDECL(use_figurine, (struct obj **));
|
||||
STATIC_DCL void FDECL(use_grease, (struct obj *));
|
||||
@@ -1361,6 +1362,53 @@ dojump()
|
||||
return jump(0);
|
||||
}
|
||||
|
||||
boolean
|
||||
is_valid_jump_pos(x,y, magic, showmsg)
|
||||
int x,y, magic;
|
||||
boolean showmsg;
|
||||
{
|
||||
if (!magic && !(HJumping & ~INTRINSIC) && !EJumping &&
|
||||
distu(x, y) != 5) {
|
||||
/* The Knight jumping restriction still applies when riding a
|
||||
* horse. After all, what shape is the knight piece in chess?
|
||||
*/
|
||||
if (showmsg) pline("Illegal move!");
|
||||
return FALSE;
|
||||
} else if (distu(x, y) > (magic ? 6+magic*3 : 9)) {
|
||||
if (showmsg) pline("Too far!");
|
||||
return FALSE;
|
||||
} else if (!cansee(x, y)) {
|
||||
if (showmsg) You("cannot see where to land!");
|
||||
return FALSE;
|
||||
} else if (!isok(x, y)) {
|
||||
if (showmsg) You("cannot jump there!");
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int jumping_is_magic;
|
||||
|
||||
void
|
||||
display_jump_positions(state)
|
||||
int state;
|
||||
{
|
||||
if (state == 0) {
|
||||
tmp_at(DISP_BEAM, cmap_to_glyph(S_flashbeam));
|
||||
} else if (state == 1) {
|
||||
int x,y, dx, dy;
|
||||
for (dx = -4; dx <= 4; dx++)
|
||||
for (dy = -4; dy <= 4; dy++) {
|
||||
x = dx + (int)u.ux;
|
||||
y = dy + (int)u.uy;
|
||||
if (isok(x,y) && is_valid_jump_pos(x,y, jumping_is_magic, FALSE))
|
||||
tmp_at(x,y);
|
||||
}
|
||||
} else {
|
||||
tmp_at(DISP_END, 0);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
jump(magic)
|
||||
int magic; /* 0=Physical, otherwise skill level */
|
||||
@@ -1440,24 +1488,12 @@ int magic; /* 0=Physical, otherwise skill level */
|
||||
pline("Where do you want to jump?");
|
||||
cc.x = u.ux;
|
||||
cc.y = u.uy;
|
||||
jumping_is_magic = magic;
|
||||
getpos_sethilite(display_jump_positions);
|
||||
if (getpos(&cc, TRUE, "the desired position") < 0)
|
||||
return 0; /* user pressed ESC */
|
||||
if (!magic && !(HJumping & ~INTRINSIC) && !EJumping &&
|
||||
distu(cc.x, cc.y) != 5) {
|
||||
/* The Knight jumping restriction still applies when riding a
|
||||
* horse. After all, what shape is the knight piece in chess?
|
||||
*/
|
||||
pline("Illegal move!");
|
||||
return 0;
|
||||
} else if (distu(cc.x, cc.y) > (magic ? 6+magic*3 : 9)) {
|
||||
pline("Too far!");
|
||||
return 0;
|
||||
} else if (!cansee(cc.x, cc.y)) {
|
||||
You("cannot see where to land!");
|
||||
return 0;
|
||||
} else if (!isok(cc.x, cc.y)) {
|
||||
You("cannot jump there!");
|
||||
return 0;
|
||||
if (!is_valid_jump_pos(cc.x, cc.y, magic, TRUE)) {
|
||||
return 0;
|
||||
} else {
|
||||
coord uc;
|
||||
int range, temp;
|
||||
|
||||
@@ -691,6 +691,8 @@ int propidx; /* special cases can have negative values */
|
||||
Sprintf(buf, because_of,
|
||||
obj->oartifact ? bare_artifactname(obj) :
|
||||
ysimple_name(obj));
|
||||
else if (propidx == BLINDED && u.uroleplay.blind)
|
||||
Sprintf(buf, " from birth");
|
||||
else if (propidx == BLINDED && Blindfolded_only)
|
||||
Sprintf(buf, because_of, ysimple_name(ublindf));
|
||||
|
||||
|
||||
@@ -509,6 +509,16 @@ enter_explore_mode(VOID_ARGS)
|
||||
} else if (discover) {
|
||||
You("are already in explore mode.");
|
||||
} else {
|
||||
#ifdef SYSCF
|
||||
# if defined(UNIX)
|
||||
if (!sysopt.explorers ||
|
||||
!sysopt.explorers[0] ||
|
||||
!check_user_string(sysopt.explorers)) {
|
||||
You("cannot access explore mode.");
|
||||
return 0;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
pline(
|
||||
"Beware! From explore mode there will be no return to normal game.");
|
||||
if (paranoid_query(ParanoidQuit,
|
||||
@@ -997,11 +1007,8 @@ wiz_levltyp_legend(VOID_ARGS)
|
||||
STATIC_PTR int
|
||||
wiz_smell(VOID_ARGS)
|
||||
{
|
||||
char out_str[BUFSZ];
|
||||
struct permonst *pm = 0;
|
||||
int ans = 0;
|
||||
int mndx; /* monster index */
|
||||
int found; /* count of matching mndxs found */
|
||||
coord cc; /* screen pos of unknown glyph */
|
||||
int glyph; /* glyph at selected position */
|
||||
|
||||
@@ -1015,11 +1022,6 @@ wiz_smell(VOID_ARGS)
|
||||
|
||||
pline("You can move the cursor to a monster that you want to smell.");
|
||||
do {
|
||||
/* Reset some variables. */
|
||||
pm = (struct permonst *)0;
|
||||
found = 0;
|
||||
out_str[0] = '\0';
|
||||
|
||||
pline("Pick a monster to smell.");
|
||||
ans = getpos(&cc, TRUE, "a monster");
|
||||
if (ans < 0 || cc.x < 0) {
|
||||
@@ -2246,6 +2248,9 @@ int final;
|
||||
en_win = create_nhwindow(NHW_MENU);
|
||||
putstr(en_win, 0, "Voluntary challenges:");
|
||||
|
||||
if (u.uroleplay.blind) you_have_been("blind from birth");
|
||||
if (u.uroleplay.nudist) you_have_been("faithfully nudist");
|
||||
|
||||
if (!u.uconduct.food)
|
||||
enl_msg(You_, "have gone", "went", " without food", "");
|
||||
/* But beverages are okay */
|
||||
|
||||
@@ -1284,7 +1284,7 @@ zap_dig()
|
||||
struct monst *mtmp;
|
||||
struct obj *otmp;
|
||||
struct trap *trap_with_u = (struct trap *)0;
|
||||
int zx, zy, diridx, digdepth, flow_x, flow_y;
|
||||
int zx, zy, diridx = 8, digdepth, flow_x = -1, flow_y = -1;
|
||||
boolean shopdoor, shopwall, maze_dig, pitdig = FALSE, pitflow = FALSE;
|
||||
|
||||
/*
|
||||
@@ -1462,7 +1462,7 @@ zap_dig()
|
||||
} /* while */
|
||||
tmp_at(DISP_END,0); /* closing call */
|
||||
|
||||
if (pitflow) {
|
||||
if (pitflow && isok(flow_x, flow_y)) {
|
||||
struct trap *ttmp = t_at(flow_x, flow_y);
|
||||
if (ttmp && (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT)) {
|
||||
schar filltyp = fillholetyp(ttmp->tx, ttmp->ty, TRUE);
|
||||
@@ -1684,13 +1684,15 @@ buried_ball_to_freedom()
|
||||
/* move objects from fobj/nexthere lists to buriedobjlist, keeping position */
|
||||
/* information */
|
||||
struct obj *
|
||||
bury_an_obj(otmp)
|
||||
bury_an_obj(otmp, dealloced)
|
||||
struct obj *otmp;
|
||||
boolean *dealloced;
|
||||
{
|
||||
struct obj *otmp2;
|
||||
boolean under_ice;
|
||||
|
||||
debugpline1("bury_an_obj: %s", xname(otmp));
|
||||
if (dealloced) *dealloced = FALSE;
|
||||
if (otmp == uball) {
|
||||
unpunish();
|
||||
u.utrap = rn1(50,20);
|
||||
@@ -1721,6 +1723,7 @@ bury_an_obj(otmp)
|
||||
under_ice = is_ice(otmp->ox, otmp->oy);
|
||||
if (otmp->otyp == ROCK && !under_ice) {
|
||||
/* merges into burying material */
|
||||
if (dealloced) *dealloced = TRUE;
|
||||
obfree(otmp, (struct obj *)0);
|
||||
return(otmp2);
|
||||
}
|
||||
@@ -1755,7 +1758,7 @@ int x, y;
|
||||
if(level.objects[x][y] != (struct obj *)0)
|
||||
debugpline2("bury_objs: at <%d,%d>", x, y);
|
||||
for (otmp = level.objects[x][y]; otmp; otmp = otmp2)
|
||||
otmp2 = bury_an_obj(otmp);
|
||||
otmp2 = bury_an_obj(otmp, NULL);
|
||||
|
||||
/* don't expect any engravings here, but just in case */
|
||||
del_engr_at(x, y);
|
||||
@@ -1815,7 +1818,7 @@ long timeout UNUSED;
|
||||
/* Everything which can be held in a container can also be
|
||||
buried, so bury_an_obj's use of obj_extract_self insures
|
||||
that Has_contents(obj) will eventually become false. */
|
||||
(void)bury_an_obj(obj->cobj);
|
||||
(void)bury_an_obj(obj->cobj, NULL);
|
||||
}
|
||||
obj_extract_self(obj);
|
||||
obfree(obj, (struct obj *) 0);
|
||||
|
||||
@@ -1294,7 +1294,7 @@ boolean at_stairs, falling, portal;
|
||||
}
|
||||
|
||||
/* initial movement of bubbles just before vision_recalc */
|
||||
if (Is_waterlevel(&u.uz))
|
||||
if (Is_waterlevel(&u.uz) || Is_airlevel(&u.uz))
|
||||
movebubbles();
|
||||
|
||||
if (level_info[new_ledger].flags & FORGOTTEN) {
|
||||
|
||||
@@ -423,7 +423,7 @@ boolean with_you;
|
||||
* probably because the level is full.
|
||||
* Dump the monster's cargo and leave the monster dead.
|
||||
*/
|
||||
struct obj *obj, *corpse;
|
||||
struct obj *obj;
|
||||
while ((obj = mtmp->minvent) != 0) {
|
||||
obj_extract_self(obj);
|
||||
obj_no_longer_held(obj);
|
||||
@@ -437,7 +437,7 @@ boolean with_you;
|
||||
impossible("Can't find relocated object.");
|
||||
}
|
||||
}
|
||||
corpse = mkcorpstat(CORPSE, (struct monst *)0, mtmp->data,
|
||||
(void) mkcorpstat(CORPSE, (struct monst *)0, mtmp->data,
|
||||
xlocale, ylocale, CORPSTAT_NONE);
|
||||
mongone(mtmp);
|
||||
}
|
||||
|
||||
@@ -1574,6 +1574,8 @@ eatcorpse(otmp) /* called when a corpse is selected as food */
|
||||
} else if ((mnum == PM_COCKATRICE || mnum == PM_CHICKATRICE) &&
|
||||
(Stone_resistance || Hallucination)) {
|
||||
pline("This tastes just like chicken!");
|
||||
} else if (mnum == PM_FLOATING_EYE && u.umonnum == PM_RAVEN) {
|
||||
You("peck the eyeball with delight.");
|
||||
} else {
|
||||
/* [is this right? omnivores end up always disliking the taste] */
|
||||
boolean yummy = (vegan(&mons[mnum]) ?
|
||||
|
||||
@@ -2182,6 +2182,9 @@ int src;
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "SHELLERS", 8)) {
|
||||
if (sysopt.shellers) free(sysopt.shellers);
|
||||
sysopt.shellers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "EXPLORERS", 7)) {
|
||||
if (sysopt.explorers) free(sysopt.explorers);
|
||||
sysopt.explorers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "DEBUGFILES", 5)) {
|
||||
if (sysopt.debugfiles) free(sysopt.debugfiles);
|
||||
/* if showdebug() has already been called (perhaps we've added
|
||||
|
||||
+1
-1
@@ -1104,7 +1104,7 @@ domove()
|
||||
register struct monst *mtmp;
|
||||
register struct rm *tmpr;
|
||||
register xchar x,y;
|
||||
struct trap *trap = NULL;
|
||||
struct trap *trap = (struct trap *)0;
|
||||
int wtcap;
|
||||
boolean on_ice;
|
||||
xchar chainx, chainy, ballx, bally; /* ball&chain new positions */
|
||||
|
||||
@@ -432,6 +432,28 @@ dist2(x0, y0, x1, y1) /* square of euclidean distance between pair of pts */
|
||||
return dx * dx + dy * dy;
|
||||
}
|
||||
|
||||
/* Integer square root function without using floating point.
|
||||
* This could be replaced by a faster algorithm, but has not been because:
|
||||
* + the simple algorithm is easy to read
|
||||
* + this algorithm does not require 64-bit support
|
||||
* + in current usage, the values passed to isqrt() are not really that
|
||||
* large, so the performance difference is negligible
|
||||
* + isqrt() is used in only few places, which are not bottle-necks
|
||||
*/
|
||||
int
|
||||
isqrt(val)
|
||||
int val;
|
||||
{
|
||||
int rt = 0;
|
||||
int odd = 1;
|
||||
while(val >= odd) {
|
||||
val = val-odd;
|
||||
odd = odd+2;
|
||||
rt = rt + 1;
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
||||
boolean
|
||||
online2(x0, y0, x1, y1) /* are two points lined up (on a straight line)? */
|
||||
int x0, y0, x1, y1;
|
||||
|
||||
@@ -437,6 +437,11 @@ struct obj *otmp;
|
||||
"Only Amiga makes it possible.",
|
||||
"CATS have all the answers.",
|
||||
#endif
|
||||
"This mail complies with the Yendorian Anti-Spam Act (YASA)",
|
||||
"Please find enclosed a small token to represent your Owlbear",
|
||||
"**FR33 P0T10N 0F FULL H34L1NG**",
|
||||
"Please return to sender (Asmodeus)",
|
||||
"Buy a potion of gain level for only $19.99! Guaranteed to be blessed!",
|
||||
"Invitation: Visit the NetHack web site at http://www.nethack.org!"
|
||||
};
|
||||
|
||||
|
||||
+24
-18
@@ -17,7 +17,6 @@ STATIC_DCL void FDECL(mkgrave,(struct mkroom *));
|
||||
STATIC_DCL void NDECL(makevtele);
|
||||
STATIC_DCL void NDECL(clear_level_structures);
|
||||
STATIC_DCL void NDECL(makelevel);
|
||||
STATIC_DCL void NDECL(mineralize);
|
||||
STATIC_DCL boolean FDECL(bydoor,(XCHAR_P,XCHAR_P));
|
||||
STATIC_DCL struct mkroom *FDECL(find_branch_room, (coord *));
|
||||
STATIC_DCL struct mkroom *FDECL(pos_to_room, (XCHAR_P, XCHAR_P));
|
||||
@@ -814,43 +813,50 @@ skip0:
|
||||
* Place deposits of minerals (gold and misc gems) in the stone
|
||||
* surrounding the rooms on the map.
|
||||
* Also place kelp in water.
|
||||
* mineralize(-1, -1, -1, -1, FALSE); => "default" behaviour
|
||||
*/
|
||||
STATIC_OVL void
|
||||
mineralize()
|
||||
void
|
||||
mineralize(kelp_pool, kelp_moat, goldprob, gemprob, skip_lvl_checks)
|
||||
int kelp_pool, kelp_moat, goldprob, gemprob;
|
||||
boolean skip_lvl_checks;
|
||||
{
|
||||
s_level *sp;
|
||||
struct obj *otmp;
|
||||
int goldprob, gemprob, x, y, cnt;
|
||||
int x, y, cnt;
|
||||
|
||||
if (kelp_pool < 0) kelp_pool = 10;
|
||||
if (kelp_moat < 0) kelp_moat = 30;
|
||||
|
||||
/* Place kelp, except on the plane of water */
|
||||
if (In_endgame(&u.uz)) return;
|
||||
if (!skip_lvl_checks && In_endgame(&u.uz)) return;
|
||||
for (x = 2; x < (COLNO - 2); x++)
|
||||
for (y = 1; y < (ROWNO - 1); y++)
|
||||
if ((levl[x][y].typ == POOL && !rn2(10)) ||
|
||||
(levl[x][y].typ == MOAT && !rn2(30)))
|
||||
if ((kelp_pool && levl[x][y].typ == POOL && !rn2(kelp_pool)) ||
|
||||
(kelp_moat && levl[x][y].typ == MOAT && !rn2(kelp_moat)))
|
||||
(void) mksobj_at(KELP_FROND, x, y, TRUE, FALSE);
|
||||
|
||||
/* determine if it is even allowed;
|
||||
almost all special levels are excluded */
|
||||
if (In_hell(&u.uz) || In_V_tower(&u.uz) ||
|
||||
if (!skip_lvl_checks && (In_hell(&u.uz) || In_V_tower(&u.uz) ||
|
||||
Is_rogue_level(&u.uz) ||
|
||||
level.flags.arboreal ||
|
||||
((sp = Is_special(&u.uz)) != 0 && !Is_oracle_level(&u.uz)
|
||||
&& (!In_mines(&u.uz) || sp->flags.town)
|
||||
)) return;
|
||||
))) return;
|
||||
|
||||
/* basic level-related probabilities */
|
||||
goldprob = 20 + depth(&u.uz) / 3;
|
||||
gemprob = goldprob / 4;
|
||||
if (goldprob < 0) goldprob = 20 + depth(&u.uz) / 3;
|
||||
if (gemprob < 0) gemprob = goldprob / 4;
|
||||
|
||||
/* mines have ***MORE*** goodies - otherwise why mine? */
|
||||
if (In_mines(&u.uz)) {
|
||||
goldprob *= 2;
|
||||
gemprob *= 3;
|
||||
} else if (In_quest(&u.uz)) {
|
||||
goldprob /= 4;
|
||||
gemprob /= 6;
|
||||
if (!skip_lvl_checks) {
|
||||
if (In_mines(&u.uz)) {
|
||||
goldprob *= 2;
|
||||
gemprob *= 3;
|
||||
} else if (In_quest(&u.uz)) {
|
||||
goldprob /= 4;
|
||||
gemprob /= 6;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -905,7 +911,7 @@ mklev()
|
||||
in_mklev = TRUE;
|
||||
makelevel();
|
||||
bound_digging();
|
||||
mineralize();
|
||||
mineralize(-1, -1, -1, -1, FALSE);
|
||||
in_mklev = FALSE;
|
||||
/* has_morgue gets cleared once morgue is entered; graveyard stays
|
||||
set (graveyard might already be set even when has_morgue is clear
|
||||
|
||||
+191
-168
@@ -344,7 +344,8 @@ fixup_special()
|
||||
was_waterlevel = FALSE;
|
||||
u.uinwater = 0;
|
||||
unsetup_waterlevel();
|
||||
} else if (Is_waterlevel(&u.uz)) {
|
||||
}
|
||||
if (Is_waterlevel(&u.uz) || Is_airlevel(&u.uz)) {
|
||||
level.flags.hero_memory = 0;
|
||||
was_waterlevel = TRUE;
|
||||
/* water level is an odd beast - it has to be set up
|
||||
@@ -406,10 +407,6 @@ fixup_special()
|
||||
place_lregion(0,0,0,0,0,0,0,0,LR_BRANCH,(d_level *)0);
|
||||
}
|
||||
|
||||
/* KMH -- Sokoban levels */
|
||||
if(In_sokoban(&u.uz))
|
||||
sokoban_detect();
|
||||
|
||||
/* Still need to add some stuff to level file */
|
||||
if (Is_medusa_level(&u.uz)) {
|
||||
struct obj *otmp;
|
||||
@@ -556,7 +553,7 @@ register const char *s;
|
||||
#endif
|
||||
|
||||
maze0xy(&mm);
|
||||
walkfrom((int) mm.x, (int) mm.y);
|
||||
walkfrom((int) mm.x, (int) mm.y, 0);
|
||||
/* put a boulder at the maze center */
|
||||
(void) mksobj_at(BOULDER, (int) mm.x, (int) mm.y, TRUE, FALSE);
|
||||
|
||||
@@ -644,14 +641,21 @@ register const char *s;
|
||||
* that is totally safe.
|
||||
*/
|
||||
void
|
||||
walkfrom(x,y)
|
||||
walkfrom(x,y,typ)
|
||||
int x,y;
|
||||
schar typ;
|
||||
{
|
||||
#define CELLS (ROWNO * COLNO) / 4 /* a maze cell is 4 squares */
|
||||
char mazex[CELLS + 1], mazey[CELLS + 1]; /* char's are OK */
|
||||
int q, a, dir, pos;
|
||||
int dirs[4];
|
||||
|
||||
#ifndef WALLIFIED_MAZE
|
||||
if (!typ) typ = CORR;
|
||||
#else
|
||||
if (!typ) typ = ROOM;
|
||||
#endif
|
||||
|
||||
pos = 1;
|
||||
mazex[pos] = (char) x;
|
||||
mazey[pos] = (char) y;
|
||||
@@ -660,11 +664,7 @@ int x,y;
|
||||
y = (int) mazey[pos];
|
||||
if(!IS_DOOR(levl[x][y].typ)) {
|
||||
/* might still be on edge of MAP, so don't overwrite */
|
||||
#ifndef WALLIFIED_MAZE
|
||||
levl[x][y].typ = CORR;
|
||||
#else
|
||||
levl[x][y].typ = ROOM;
|
||||
#endif
|
||||
levl[x][y].typ = typ;
|
||||
levl[x][y].flags = 0;
|
||||
}
|
||||
q = 0;
|
||||
@@ -675,11 +675,7 @@ int x,y;
|
||||
else {
|
||||
dir = dirs[rn2(q)];
|
||||
move(&x, &y, dir);
|
||||
#ifndef WALLIFIED_MAZE
|
||||
levl[x][y].typ = CORR;
|
||||
#else
|
||||
levl[x][y].typ = ROOM;
|
||||
#endif
|
||||
levl[x][y].typ = typ;
|
||||
move(&x, &y, dir);
|
||||
pos++;
|
||||
if (pos > CELLS)
|
||||
@@ -692,19 +688,22 @@ int x,y;
|
||||
#else
|
||||
|
||||
void
|
||||
walkfrom(x,y)
|
||||
walkfrom(x,y,typ)
|
||||
int x,y;
|
||||
schar typ;
|
||||
{
|
||||
register int q,a,dir;
|
||||
int dirs[4];
|
||||
|
||||
#ifndef WALLIFIED_MAZE
|
||||
if (!typ) typ = CORR;
|
||||
#else
|
||||
if (!typ) typ = ROOM;
|
||||
#endif
|
||||
|
||||
if(!IS_DOOR(levl[x][y].typ)) {
|
||||
/* might still be on edge of MAP, so don't overwrite */
|
||||
#ifndef WALLIFIED_MAZE
|
||||
levl[x][y].typ = CORR;
|
||||
#else
|
||||
levl[x][y].typ = ROOM;
|
||||
#endif
|
||||
levl[x][y].typ = typ;
|
||||
levl[x][y].flags = 0;
|
||||
}
|
||||
|
||||
@@ -715,13 +714,9 @@ int x,y;
|
||||
if(!q) return;
|
||||
dir = dirs[rn2(q)];
|
||||
move(&x,&y,dir);
|
||||
#ifndef WALLIFIED_MAZE
|
||||
levl[x][y].typ = CORR;
|
||||
#else
|
||||
levl[x][y].typ = ROOM;
|
||||
#endif
|
||||
levl[x][y].typ = typ;
|
||||
move(&x,&y,dir);
|
||||
walkfrom(x,y);
|
||||
walkfrom(x,y,typ);
|
||||
}
|
||||
}
|
||||
#endif /* MICRO */
|
||||
@@ -922,98 +917,110 @@ movebubbles()
|
||||
struct trap *btrap;
|
||||
static const struct rm water_pos =
|
||||
{ cmap_to_glyph(S_water), WATER, 0, 0, 0, 0, 0, 0, 0 };
|
||||
static const struct rm air_pos =
|
||||
{ cmap_to_glyph(S_cloud), AIR, 0, 0, 0, 1, 0, 0, 0 };
|
||||
|
||||
/* set up the portal the first time bubbles are moved */
|
||||
if (!wportal) set_wportal();
|
||||
|
||||
vision_recalc(2);
|
||||
/* keep attached ball&chain separate from bubble objects */
|
||||
if (Punished) unplacebc();
|
||||
|
||||
/*
|
||||
* Pick up everything inside of a bubble then fill all bubble
|
||||
* locations.
|
||||
*/
|
||||
if (Is_waterlevel(&u.uz)) {
|
||||
|
||||
for (b = up ? bbubbles : ebubbles; b; b = up ? b->next : b->prev) {
|
||||
if (b->cons) panic("movebubbles: cons != null");
|
||||
for (i = 0, x = b->x; i < (int) b->bm[0]; i++, x++)
|
||||
for (j = 0, y = b->y; j < (int) b->bm[1]; j++, y++)
|
||||
if (b->bm[j + 2] & (1 << i)) {
|
||||
if (!isok(x,y)) {
|
||||
impossible("movebubbles: bad pos (%d,%d)", x,y);
|
||||
continue;
|
||||
}
|
||||
/* keep attached ball&chain separate from bubble objects */
|
||||
if (Punished) unplacebc();
|
||||
|
||||
/* pick up objects, monsters, hero, and traps */
|
||||
if (OBJ_AT(x,y)) {
|
||||
struct obj *olist = (struct obj *) 0, *otmp;
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
/*
|
||||
* Pick up everything inside of a bubble then fill all bubble
|
||||
* locations.
|
||||
*/
|
||||
|
||||
while ((otmp = level.objects[x][y]) != 0) {
|
||||
remove_object(otmp);
|
||||
otmp->ox = otmp->oy = 0;
|
||||
otmp->nexthere = olist;
|
||||
olist = otmp;
|
||||
for (b = up ? bbubbles : ebubbles; b; b = up ? b->next : b->prev) {
|
||||
if (b->cons) panic("movebubbles: cons != null");
|
||||
for (i = 0, x = b->x; i < (int) b->bm[0]; i++, x++)
|
||||
for (j = 0, y = b->y; j < (int) b->bm[1]; j++, y++)
|
||||
if (b->bm[j + 2] & (1 << i)) {
|
||||
if (!isok(x,y)) {
|
||||
impossible("movebubbles: bad pos (%d,%d)", x,y);
|
||||
continue;
|
||||
}
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_OBJ;
|
||||
cons->list = (genericptr_t) olist;
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
/* pick up objects, monsters, hero, and traps */
|
||||
if (OBJ_AT(x,y)) {
|
||||
struct obj *olist = (struct obj *) 0, *otmp;
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
while ((otmp = level.objects[x][y]) != 0) {
|
||||
remove_object(otmp);
|
||||
otmp->ox = otmp->oy = 0;
|
||||
otmp->nexthere = olist;
|
||||
olist = otmp;
|
||||
}
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_OBJ;
|
||||
cons->list = (genericptr_t) olist;
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
}
|
||||
if (MON_AT(x,y)) {
|
||||
struct monst *mon = m_at(x,y);
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_MON;
|
||||
cons->list = (genericptr_t) mon;
|
||||
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
|
||||
if(mon->wormno)
|
||||
remove_worm(mon);
|
||||
else
|
||||
remove_monster(x, y);
|
||||
|
||||
newsym(x,y); /* clean up old position */
|
||||
mon->mx = mon->my = 0;
|
||||
}
|
||||
if (!u.uswallow && x == u.ux && y == u.uy) {
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_HERO;
|
||||
cons->list = (genericptr_t) 0;
|
||||
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
}
|
||||
if ((btrap = t_at(x,y)) != 0) {
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_TRAP;
|
||||
cons->list = (genericptr_t) btrap;
|
||||
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
}
|
||||
|
||||
levl[x][y] = water_pos;
|
||||
block_point(x,y);
|
||||
}
|
||||
if (MON_AT(x,y)) {
|
||||
struct monst *mon = m_at(x,y);
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_MON;
|
||||
cons->list = (genericptr_t) mon;
|
||||
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
|
||||
if(mon->wormno)
|
||||
remove_worm(mon);
|
||||
else
|
||||
remove_monster(x, y);
|
||||
|
||||
newsym(x,y); /* clean up old position */
|
||||
mon->mx = mon->my = 0;
|
||||
}
|
||||
if (!u.uswallow && x == u.ux && y == u.uy) {
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_HERO;
|
||||
cons->list = (genericptr_t) 0;
|
||||
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
}
|
||||
if ((btrap = t_at(x,y)) != 0) {
|
||||
struct container *cons = (struct container *)
|
||||
alloc(sizeof(struct container));
|
||||
|
||||
cons->x = x;
|
||||
cons->y = y;
|
||||
cons->what = CONS_TRAP;
|
||||
cons->list = (genericptr_t) btrap;
|
||||
|
||||
cons->next = b->cons;
|
||||
b->cons = cons;
|
||||
}
|
||||
|
||||
levl[x][y] = water_pos;
|
||||
block_point(x,y);
|
||||
}
|
||||
}
|
||||
} else if (Is_airlevel(&u.uz)) {
|
||||
for (x = 0; x < COLNO; x++)
|
||||
for (y = 0; y < ROWNO; y++) {
|
||||
levl[x][y] = air_pos;
|
||||
unblock_point(x,y);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1032,7 +1039,7 @@ movebubbles()
|
||||
}
|
||||
|
||||
/* put attached ball&chain back */
|
||||
if (Punished) placebc();
|
||||
if (Is_waterlevel(&u.uz) && Punished) placebc();
|
||||
vision_full_recalc = 1;
|
||||
}
|
||||
|
||||
@@ -1076,7 +1083,7 @@ int fd, mode;
|
||||
{
|
||||
register struct bubble *b;
|
||||
|
||||
if (!Is_waterlevel(&u.uz)) return;
|
||||
if (!Is_waterlevel(&u.uz) && !Is_airlevel(&u.uz)) return;
|
||||
|
||||
if (perform_bwrite(mode)) {
|
||||
int n = 0;
|
||||
@@ -1101,7 +1108,7 @@ register int fd;
|
||||
register int i;
|
||||
int n;
|
||||
|
||||
if (!Is_waterlevel(&u.uz)) return;
|
||||
if (!Is_waterlevel(&u.uz) && !Is_airlevel(&u.uz)) return;
|
||||
|
||||
set_wportal();
|
||||
mread(fd,(genericptr_t)&n,sizeof(int));
|
||||
@@ -1177,6 +1184,7 @@ setup_waterlevel()
|
||||
register int x, y;
|
||||
register int xskip, yskip;
|
||||
register int water_glyph = cmap_to_glyph(S_water);
|
||||
register int air_glyph = cmap_to_glyph(S_air);
|
||||
|
||||
/* ouch, hardcoded... */
|
||||
|
||||
@@ -1189,12 +1197,18 @@ setup_waterlevel()
|
||||
|
||||
for (x = xmin; x <= xmax; x++)
|
||||
for (y = ymin; y <= ymax; y++)
|
||||
levl[x][y].glyph = water_glyph;
|
||||
levl[x][y].glyph = Is_waterlevel(&u.uz) ? water_glyph : air_glyph;
|
||||
|
||||
/* make bubbles */
|
||||
|
||||
xskip = 10 + rn2(10);
|
||||
yskip = 4 + rn2(4);
|
||||
if (Is_waterlevel(&u.uz)) {
|
||||
xskip = 10 + rn2(10);
|
||||
yskip = 4 + rn2(4);
|
||||
} else {
|
||||
xskip = 6 + rn2(4);
|
||||
yskip = 3 + rn2(3);
|
||||
}
|
||||
|
||||
for (x = bxmin; x <= bxmax; x += xskip)
|
||||
for (y = bymin; y <= bymax; y += yskip)
|
||||
mk_bubble(x,y,rn2(7));
|
||||
@@ -1280,67 +1294,76 @@ register boolean ini;
|
||||
register int x, y, i, j, colli = 0;
|
||||
struct container *cons, *ctemp;
|
||||
|
||||
/* move bubble */
|
||||
if (dx < -1 || dx > 1 || dy < -1 || dy > 1) {
|
||||
/* pline("mv_bubble: dx = %d, dy = %d", dx, dy); */
|
||||
dx = sgn(dx);
|
||||
dy = sgn(dy);
|
||||
/* clouds move slowly */
|
||||
if (!Is_airlevel(&u.uz) || !rn2(6)) {
|
||||
/* move bubble */
|
||||
if (dx < -1 || dx > 1 || dy < -1 || dy > 1) {
|
||||
/* pline("mv_bubble: dx = %d, dy = %d", dx, dy); */
|
||||
dx = sgn(dx);
|
||||
dy = sgn(dy);
|
||||
}
|
||||
|
||||
/*
|
||||
* collision with level borders?
|
||||
* 1 = horizontal border, 2 = vertical, 3 = corner
|
||||
*/
|
||||
if (b->x <= bxmin) colli |= 2;
|
||||
if (b->y <= bymin) colli |= 1;
|
||||
if ((int) (b->x + b->bm[0] - 1) >= bxmax) colli |= 2;
|
||||
if ((int) (b->y + b->bm[1] - 1) >= bymax) colli |= 1;
|
||||
|
||||
if (b->x < bxmin) {
|
||||
pline("bubble xmin: x = %d, xmin = %d", b->x, bxmin);
|
||||
b->x = bxmin;
|
||||
}
|
||||
if (b->y < bymin) {
|
||||
pline("bubble ymin: y = %d, ymin = %d", b->y, bymin);
|
||||
b->y = bymin;
|
||||
}
|
||||
if ((int) (b->x + b->bm[0] - 1) > bxmax) {
|
||||
pline("bubble xmax: x = %d, xmax = %d",
|
||||
b->x + b->bm[0] - 1, bxmax);
|
||||
b->x = bxmax - b->bm[0] + 1;
|
||||
}
|
||||
if ((int) (b->y + b->bm[1] - 1) > bymax) {
|
||||
pline("bubble ymax: y = %d, ymax = %d",
|
||||
b->y + b->bm[1] - 1, bymax);
|
||||
b->y = bymax - b->bm[1] + 1;
|
||||
}
|
||||
|
||||
/* bounce if we're trying to move off the border */
|
||||
if (b->x == bxmin && dx < 0) dx = -dx;
|
||||
if (b->x + b->bm[0] - 1 == bxmax && dx > 0) dx = -dx;
|
||||
if (b->y == bymin && dy < 0) dy = -dy;
|
||||
if (b->y + b->bm[1] - 1 == bymax && dy > 0) dy = -dy;
|
||||
|
||||
b->x += dx;
|
||||
b->y += dy;
|
||||
}
|
||||
|
||||
/*
|
||||
* collision with level borders?
|
||||
* 1 = horizontal border, 2 = vertical, 3 = corner
|
||||
*/
|
||||
if (b->x <= bxmin) colli |= 2;
|
||||
if (b->y <= bymin) colli |= 1;
|
||||
if ((int) (b->x + b->bm[0] - 1) >= bxmax) colli |= 2;
|
||||
if ((int) (b->y + b->bm[1] - 1) >= bymax) colli |= 1;
|
||||
|
||||
if (b->x < bxmin) {
|
||||
pline("bubble xmin: x = %d, xmin = %d", b->x, bxmin);
|
||||
b->x = bxmin;
|
||||
}
|
||||
if (b->y < bymin) {
|
||||
pline("bubble ymin: y = %d, ymin = %d", b->y, bymin);
|
||||
b->y = bymin;
|
||||
}
|
||||
if ((int) (b->x + b->bm[0] - 1) > bxmax) {
|
||||
pline("bubble xmax: x = %d, xmax = %d",
|
||||
b->x + b->bm[0] - 1, bxmax);
|
||||
b->x = bxmax - b->bm[0] + 1;
|
||||
}
|
||||
if ((int) (b->y + b->bm[1] - 1) > bymax) {
|
||||
pline("bubble ymax: y = %d, ymax = %d",
|
||||
b->y + b->bm[1] - 1, bymax);
|
||||
b->y = bymax - b->bm[1] + 1;
|
||||
}
|
||||
|
||||
/* bounce if we're trying to move off the border */
|
||||
if (b->x == bxmin && dx < 0) dx = -dx;
|
||||
if (b->x + b->bm[0] - 1 == bxmax && dx > 0) dx = -dx;
|
||||
if (b->y == bymin && dy < 0) dy = -dy;
|
||||
if (b->y + b->bm[1] - 1 == bymax && dy > 0) dy = -dy;
|
||||
|
||||
b->x += dx;
|
||||
b->y += dy;
|
||||
|
||||
/* void positions inside bubble */
|
||||
|
||||
/* draw the bubbles */
|
||||
for (i = 0, x = b->x; i < (int) b->bm[0]; i++, x++)
|
||||
for (j = 0, y = b->y; j < (int) b->bm[1]; j++, y++)
|
||||
if (b->bm[j + 2] & (1 << i)) {
|
||||
if (Is_waterlevel(&u.uz)) {
|
||||
levl[x][y].typ = AIR;
|
||||
levl[x][y].lit = 1;
|
||||
unblock_point(x,y);
|
||||
} else if (Is_airlevel(&u.uz)) {
|
||||
levl[x][y].typ = CLOUD;
|
||||
levl[x][y].lit = 1;
|
||||
block_point(x,y);
|
||||
}
|
||||
}
|
||||
|
||||
/* replace contents of bubble */
|
||||
for (cons = b->cons; cons; cons = ctemp) {
|
||||
ctemp = cons->next;
|
||||
cons->x += dx;
|
||||
cons->y += dy;
|
||||
if (Is_waterlevel(&u.uz)) {
|
||||
/* replace contents of bubble */
|
||||
for (cons = b->cons; cons; cons = ctemp) {
|
||||
ctemp = cons->next;
|
||||
cons->x += dx;
|
||||
cons->y += dy;
|
||||
|
||||
switch(cons->what) {
|
||||
switch(cons->what) {
|
||||
case CONS_OBJ: {
|
||||
struct obj *olist, *otmp;
|
||||
|
||||
@@ -1381,13 +1404,13 @@ register boolean ini;
|
||||
default:
|
||||
impossible("mv_bubble: unknown bubble contents");
|
||||
break;
|
||||
}
|
||||
free((genericptr_t)cons);
|
||||
}
|
||||
free((genericptr_t)cons);
|
||||
b->cons = 0;
|
||||
}
|
||||
b->cons = 0;
|
||||
|
||||
/* boing? */
|
||||
|
||||
switch (colli) {
|
||||
case 1: b->dy = -b->dy; break;
|
||||
case 3: b->dy = -b->dy; /* fall through */
|
||||
|
||||
+1
-5
@@ -219,14 +219,10 @@ struct mkroom *sroom;
|
||||
{
|
||||
struct monst *mon;
|
||||
register int sx,sy,i;
|
||||
int sh, tx, ty, goldlim, type = sroom->rtype;
|
||||
int sh, tx = 0, ty = 0, goldlim = 0, type = sroom->rtype;
|
||||
int rmno = (int)((sroom - rooms) + ROOMOFFSET);
|
||||
coord mm;
|
||||
|
||||
#ifdef GCC_WARN
|
||||
tx = ty = goldlim = 0;
|
||||
#endif
|
||||
|
||||
sh = sroom->fdoor;
|
||||
switch(type) {
|
||||
case COURT:
|
||||
|
||||
@@ -297,9 +297,10 @@ unsigned corpseflags;
|
||||
obj = mkcorpstat(CORPSE, KEEPTRAITS(mtmp) ? mtmp : 0,
|
||||
mdat, x, y, corpstatflags);
|
||||
if (burythem) {
|
||||
(void) bury_an_obj(obj);
|
||||
boolean dealloc;
|
||||
(void) bury_an_obj(obj, &dealloc);
|
||||
newsym(x, y);
|
||||
return obj;
|
||||
return (dealloc ? NULL : obj);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -85,6 +85,7 @@ static struct Bool_Opt
|
||||
#else
|
||||
{"BIOS", (boolean *)0, FALSE, SET_IN_FILE},
|
||||
#endif
|
||||
{"blind", &u.uroleplay.blind, FALSE, DISP_IN_GAME},
|
||||
{"bones", &flags.bones, TRUE, SET_IN_FILE},
|
||||
#ifdef INSURANCE
|
||||
{"checkpoint", &flags.ins_chkpt, TRUE, SET_IN_GAME},
|
||||
@@ -149,6 +150,7 @@ static struct Bool_Opt
|
||||
#else
|
||||
{"news", (boolean *)0, FALSE, SET_IN_FILE},
|
||||
#endif
|
||||
{"nudist", &u.uroleplay.nudist, FALSE, DISP_IN_GAME},
|
||||
{"null", &flags.null, TRUE, SET_IN_GAME},
|
||||
#if defined(SYSFLAGS) && defined(MAC)
|
||||
{"page_wait", &sysflags.page_wait, TRUE, SET_IN_GAME},
|
||||
|
||||
+61
-18
@@ -679,7 +679,7 @@ do_look(mode, click_cc)
|
||||
char out_str[BUFSZ];
|
||||
const char *firstmatch = 0;
|
||||
struct permonst *pm = 0;
|
||||
int i, ans = 0;
|
||||
int i = '\0', ans = 0;
|
||||
int sym; /* typed symbol or converted glyph */
|
||||
int found; /* count of matching syms found */
|
||||
coord cc; /* screen pos of unknown glyph */
|
||||
@@ -689,25 +689,68 @@ do_look(mode, click_cc)
|
||||
if (!clicklook) {
|
||||
if (quick) {
|
||||
from_screen = TRUE; /* yes, we want to use the cursor */
|
||||
} else {
|
||||
i = ynq("Specify unknown object by cursor?");
|
||||
if (i == 'q') return 0;
|
||||
from_screen = (i == 'y');
|
||||
i = 'y';
|
||||
}
|
||||
|
||||
if (i != 'y') {
|
||||
menu_item *pick_list = (menu_item *)0;
|
||||
winid win;
|
||||
anything any;
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
any.a_void = 0; any.a_char ='a';
|
||||
/* 'y' and 'n' to keep backwards compat with previous versions */
|
||||
add_menu(win, NO_GLYPH, &any, 'a', 'y', ATR_NONE, "something on the map", MENU_UNSELECTED);
|
||||
any.a_void = 0; any.a_char ='b';
|
||||
add_menu(win, NO_GLYPH, &any, 'b', 0, ATR_NONE, "something you're carrying", MENU_UNSELECTED);
|
||||
any.a_void = 0; any.a_char ='c';
|
||||
add_menu(win, NO_GLYPH, &any, 'c', 'n', ATR_NONE, "something else", MENU_UNSELECTED);
|
||||
end_menu(win, "What do you want to look at:");
|
||||
if (select_menu(win, PICK_ONE, &pick_list) > 0) {
|
||||
i = pick_list->item.a_char;
|
||||
free((genericptr_t)pick_list);
|
||||
}
|
||||
destroy_nhwindow(win);
|
||||
}
|
||||
|
||||
if (from_screen) {
|
||||
cc.x = u.ux;
|
||||
cc.y = u.uy;
|
||||
sym = 0; /* gcc -Wall lint */
|
||||
} else {
|
||||
getlin("Specify what? (type the word)", out_str);
|
||||
if (out_str[0] == '\0' || out_str[0] == '\033')
|
||||
return 0;
|
||||
if (out_str[1]) { /* user typed in a complete string */
|
||||
checkfile(out_str, pm, TRUE, TRUE);
|
||||
return 0;
|
||||
}
|
||||
sym = out_str[0];
|
||||
switch (i) {
|
||||
default:
|
||||
case 'q': return 0;
|
||||
case 'y':
|
||||
case 'a':
|
||||
from_screen = TRUE;
|
||||
sym = 0;
|
||||
cc.x = u.ux;
|
||||
cc.y = u.uy;
|
||||
break;
|
||||
case 'b':
|
||||
{
|
||||
char invlet;
|
||||
struct obj *invobj;
|
||||
invlet = display_inventory(NULL, TRUE);
|
||||
if (!invlet) return 0;
|
||||
for (invobj = invent; invobj; invobj = invobj->nobj)
|
||||
if (invobj->invlet == invlet) {
|
||||
strcpy(out_str, singular(invobj, xname));
|
||||
break;
|
||||
}
|
||||
if (!out_str[1]) return 0;
|
||||
checkfile(out_str, pm, TRUE, TRUE);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case 'c':
|
||||
from_screen = FALSE;
|
||||
getlin("Specify what? (type the word)", out_str);
|
||||
if (out_str[0] == '\0' || out_str[0] == '\033')
|
||||
return 0;
|
||||
|
||||
if (out_str[1]) { /* user typed in a complete string */
|
||||
checkfile(out_str, pm, TRUE, TRUE);
|
||||
return 0;
|
||||
}
|
||||
sym = out_str[0];
|
||||
break;
|
||||
}
|
||||
} else { /* clicklook */
|
||||
cc.x = click_cc->x;
|
||||
|
||||
+1
-3
@@ -1055,7 +1055,7 @@ boolean useeit;
|
||||
const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */
|
||||
{
|
||||
void FDECL((*func), (OBJ_P)) = 0;
|
||||
const char *how = 0, *glowcolor = 0;
|
||||
const char *glowcolor = 0;
|
||||
#define COST_alter (-2)
|
||||
#define COST_none (-1)
|
||||
int costchange = COST_none;
|
||||
@@ -1064,7 +1064,6 @@ const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */
|
||||
if (!potion || potion->otyp != POT_WATER) return FALSE;
|
||||
|
||||
if (potion->blessed) {
|
||||
how = "softly glow";
|
||||
if (targobj->cursed) {
|
||||
func = uncurse;
|
||||
glowcolor = NH_AMBER;
|
||||
@@ -1076,7 +1075,6 @@ const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */
|
||||
altfmt = TRUE; /* "with a <color> aura" */
|
||||
}
|
||||
} else if (potion->cursed) {
|
||||
how = "glow";
|
||||
if (targobj->blessed) {
|
||||
func = unbless;
|
||||
glowcolor = "brown";
|
||||
|
||||
+55
-11
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 pray.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 pray.c $NHDT-Date: 1427670643 2015/03/29 23:10:43 $ $NHDT-Branch: master $:$NHDT-Revision: 1.69 $ */
|
||||
/* NetHack 3.5 pray.c $Date: 2012/05/07 01:44:38 $ $Revision: 1.62 $ */
|
||||
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1863,26 +1863,70 @@ aligntyp alignment;
|
||||
return gnam;
|
||||
}
|
||||
|
||||
static const char *hallu_gods[] = {
|
||||
"the Flying Spaghetti Monster", /* Church of the FSM */
|
||||
"Eris", /* Discordianism */
|
||||
"the Martians", /* every science fiction ever */
|
||||
"Xom", /* Crawl */
|
||||
"AnDoR dRaKoN", /* ADOM */
|
||||
"the Central Bank of Yendor", /* economics */
|
||||
"Tooth Fairy", /* real world(?) */
|
||||
"Om", /* Discworld */
|
||||
"Yawgmoth", /* Magic: the Gathering */
|
||||
"Morgoth", /* LoTR */
|
||||
"Cthulhu", /* Lovecraft */
|
||||
"the Ori", /* Stargate */
|
||||
"destiny", /* why not? */
|
||||
"your Friend the Computer", /* Paranoia */
|
||||
};
|
||||
|
||||
/* hallucination handling for priest/minion names: select a random god
|
||||
iff character is hallucinating */
|
||||
const char *
|
||||
halu_gname(alignment)
|
||||
aligntyp alignment;
|
||||
{
|
||||
const char *gnam;
|
||||
const char *gnam = NULL;
|
||||
int which;
|
||||
|
||||
if (!Hallucination) return align_gname(alignment);
|
||||
if (!Hallucination)
|
||||
return align_gname(alignment);
|
||||
|
||||
which = randrole();
|
||||
switch (rn2(3)) {
|
||||
case 0: gnam = roles[which].lgod; break;
|
||||
case 1: gnam = roles[which].ngod; break;
|
||||
case 2: gnam = roles[which].cgod; break;
|
||||
default: gnam = 0; break; /* lint suppression */
|
||||
/* The priest may not have initialized god names. If this is the
|
||||
* case, and we roll priest, we need to try again. */
|
||||
do
|
||||
which = randrole();
|
||||
while (!roles[which].lgod);
|
||||
|
||||
switch (rn2(9)) {
|
||||
case 0:
|
||||
case 1:
|
||||
gnam = roles[which].lgod;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
gnam = roles[which].ngod;
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
gnam = roles[which].cgod;
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
gnam = hallu_gods[rn2(sizeof hallu_gods / sizeof *hallu_gods)];
|
||||
break;
|
||||
case 8:
|
||||
gnam = Moloch;
|
||||
break;
|
||||
default:
|
||||
impossible("rn2 broken in halu_gname?!?");
|
||||
}
|
||||
if (!gnam) gnam = Moloch;
|
||||
if (*gnam == '_') ++gnam;
|
||||
if (!gnam) {
|
||||
impossible("No random god name?");
|
||||
gnam = "your Friend the Computer"; /* Paranoia */
|
||||
}
|
||||
if (*gnam == '_')
|
||||
++gnam;
|
||||
return gnam;
|
||||
}
|
||||
|
||||
|
||||
+50
-1
@@ -88,6 +88,55 @@ char *buf;
|
||||
"Don't Panic", /* HHGTTG */
|
||||
"Furinkan High School Athletic Dept.", /* Ranma 1/2 */
|
||||
"Hel-LOOO, Nurse!", /* Animaniacs */
|
||||
"=^.^=",
|
||||
"100% goblin hair - do not wash",
|
||||
"Aberzombie and Fitch",
|
||||
"cK -- Cockatrice touches the Kop",
|
||||
"Don't ask me, I only adventure here",
|
||||
"Down with pants!",
|
||||
"d, your dog or a killer?",
|
||||
"FREE PUG AND NEWT!",
|
||||
"Go team ant!",
|
||||
"Got newt?",
|
||||
"Hello, my darlings!", /* Charlie Drake */
|
||||
"Hey! Nymphs! Steal This T-Shirt!",
|
||||
"I <3 Dungeon of Doom",
|
||||
"I <3 Maud",
|
||||
"I am a Valkyrie. If you see me running, try to keep up.",
|
||||
"I am not a pack rat - I am a collector",
|
||||
"I bounced off a rubber tree", /* Monkey Island */
|
||||
"Plunder Island Brimstone Beach Club", /* Monkey Island */
|
||||
"If you can read this, I can hit you with my polearm",
|
||||
"I'm confused!",
|
||||
"I scored with the princess",
|
||||
"I want to live forever or die in the attempt.",
|
||||
"Lichen Park",
|
||||
"LOST IN THOUGHT - please send search party",
|
||||
"Meat is Mordor",
|
||||
"Minetown Better Business Bureau",
|
||||
"Minetown Watch",
|
||||
"Ms. Palm's House of Negotiable Affection -- A Very Reputable House Of Disrepute",
|
||||
"Protection Racketeer",
|
||||
"Real men love Crom",
|
||||
"Somebody stole my Mojo!",
|
||||
"The Hellhound Gang",
|
||||
"The Werewolves",
|
||||
"They Might Be Storm Giants",
|
||||
"Weapons don't kill people, I kill people",
|
||||
"White Zombie",
|
||||
"You're killing me!",
|
||||
"Anhur State University - Home of the Fighting Fire Ants!",
|
||||
"FREE HUGS",
|
||||
"Serial Ascender",
|
||||
"Real men are valkyries",
|
||||
"Young Men's Cavedigging Association",
|
||||
"Occupy Fort Ludios",
|
||||
"I couldn't afford this T-shirt so I stole it!",
|
||||
"Mind flayers suck",
|
||||
"I'm not wearing any pants",
|
||||
"Down with the living!",
|
||||
"Pudding farmer",
|
||||
"Vegetarian",
|
||||
};
|
||||
Strcpy(buf, shirt_msgs[tshirt->o_id % SIZE(shirt_msgs)]);
|
||||
return erode_obj_text(tshirt, buf);
|
||||
@@ -238,7 +287,7 @@ doread()
|
||||
&& scroll->oclass != SPBOOK_CLASS) {
|
||||
pline(silly_thing_to, "read");
|
||||
return(0);
|
||||
} else if (Blind) {
|
||||
} else if (Blind && (scroll->otyp != SPE_BOOK_OF_THE_DEAD)) {
|
||||
const char *what = 0;
|
||||
if (scroll->oclass == SPBOOK_CLASS)
|
||||
what = "mystic runes";
|
||||
|
||||
+3
-3
@@ -1144,9 +1144,9 @@ get_plname_from_file(fd, plbuf)
|
||||
int fd;
|
||||
char *plbuf;
|
||||
{
|
||||
int rlen, pltmpsiz = 0;
|
||||
rlen = read(fd, (genericptr_t) &pltmpsiz, sizeof(pltmpsiz));
|
||||
rlen = read(fd, (genericptr_t) plbuf, pltmpsiz);
|
||||
int pltmpsiz = 0;
|
||||
(void) read(fd, (genericptr_t) &pltmpsiz, sizeof(pltmpsiz));
|
||||
(void) read(fd, (genericptr_t) plbuf, pltmpsiz);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+3685
-1325
File diff suppressed because it is too large
Load Diff
-24
@@ -42,7 +42,6 @@ STATIC_DCL int NDECL(throwspell);
|
||||
STATIC_DCL void NDECL(cast_protection);
|
||||
STATIC_DCL void FDECL(spell_backfire, (int));
|
||||
STATIC_DCL const char *FDECL(spelltypemnemonic, (int));
|
||||
STATIC_DCL int FDECL(isqrt, (int));
|
||||
|
||||
/* The roles[] table lists the role-specific values for tuning
|
||||
* percent_success().
|
||||
@@ -1433,29 +1432,6 @@ int *spell_no;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Integer square root function without using floating point.
|
||||
* This could be replaced by a faster algorithm, but has not been because:
|
||||
* + the simple algorithm is easy to read
|
||||
* + this algorithm does not require 64-bit support
|
||||
* + in current usage, the values passed to isqrt() are not really that
|
||||
* large, so the performance difference is negligible
|
||||
* + isqrt() is used in only one place
|
||||
* + that one place is not a bottle-neck
|
||||
*/
|
||||
STATIC_OVL int
|
||||
isqrt(val)
|
||||
int val;
|
||||
{
|
||||
int rt = 0;
|
||||
int odd = 1;
|
||||
while(val >= odd) {
|
||||
val = val-odd;
|
||||
odd = odd+2;
|
||||
rt = rt + 1;
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
||||
STATIC_OVL int
|
||||
percent_success(spell)
|
||||
int spell;
|
||||
|
||||
@@ -33,6 +33,7 @@ sys_early_init()
|
||||
#endif
|
||||
sysopt.env_dbgfl = 0; /* haven't checked getenv("DEBUGFILES") yet */
|
||||
sysopt.shellers = NULL;
|
||||
sysopt.explorers = NULL;
|
||||
sysopt.maxplayers = 0; /* XXX eventually replace MAX_NR_OF_PLAYERS */
|
||||
|
||||
/* record file */
|
||||
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 topten.c $NHDT-Date: 1426731079 2015/03/19 02:11:19 $ $NHDT-Branch: harder_d8 $:$NHDT-Revision: 1.25 $ */
|
||||
/* NetHack 3.5 topten.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 topten.c $Date: 2012/01/24 04:26:15 $ $Revision: 1.23 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -397,6 +397,8 @@ encodeachieve()
|
||||
if(u.uachieve.mines_luckstone) r |= 1L << 9;
|
||||
if(u.uachieve.finish_sokoban) r |= 1L << 10;
|
||||
if(u.uachieve.killed_medusa) r |= 1L << 11;
|
||||
if(u.uroleplay.blind) r |= 1L << 12;
|
||||
if(u.uroleplay.nudist) r |= 1L << 13;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
+4
-3
@@ -946,6 +946,7 @@ unsigned trflags;
|
||||
} else {
|
||||
pline("%s bear trap closes on your %s!",
|
||||
A_Your[trap->madeby_u], body_part(FOOT));
|
||||
set_wounded_legs(rn2(2) ? RIGHT_SIDE : LEFT_SIDE, rn1(10,10));
|
||||
if(u.umonnum == PM_OWLBEAR || u.umonnum == PM_BUGBEAR)
|
||||
You("howl in anger!");
|
||||
losehp(Maybe_Half_Phys(dmg), "bear trap", KILLED_BY_AN);
|
||||
@@ -1406,13 +1407,12 @@ struct obj *otmp;
|
||||
{
|
||||
struct monst *steed = u.usteed;
|
||||
int tt;
|
||||
boolean in_sight, trapkilled, steedhit;
|
||||
boolean trapkilled, steedhit;
|
||||
|
||||
if (!steed || !trap) return 0;
|
||||
tt = trap->ttyp;
|
||||
steed->mx = u.ux;
|
||||
steed->my = u.uy;
|
||||
in_sight = !Blind;
|
||||
trapkilled = steedhit = FALSE;
|
||||
|
||||
switch (tt) {
|
||||
@@ -3169,6 +3169,7 @@ struct obj *obj;
|
||||
const char *ostr;
|
||||
boolean force;
|
||||
{
|
||||
boolean exploded = FALSE;
|
||||
if (!obj) return ER_NOTHING;
|
||||
|
||||
if (snuff_lit(obj))
|
||||
@@ -3575,7 +3576,7 @@ boolean bury_it;
|
||||
place_object(otmp, ttmp->tx, ttmp->ty);
|
||||
if (bury_it) {
|
||||
/* magical digging first disarms this trap, then will unearth it */
|
||||
(void) bury_an_obj(otmp);
|
||||
(void) bury_an_obj(otmp, NULL);
|
||||
} else {
|
||||
/* Sell your own traps only... */
|
||||
if (ttmp->madeby_u) sellobj(otmp, ttmp->tx, ttmp->ty);
|
||||
|
||||
@@ -491,6 +491,7 @@ void
|
||||
u_init()
|
||||
{
|
||||
register int i;
|
||||
struct u_roleplay tmpuroleplay = u.uroleplay; /* these set by rcfile options */
|
||||
|
||||
flags.female = flags.initgend;
|
||||
flags.beginner = 1;
|
||||
@@ -502,6 +503,8 @@ u_init()
|
||||
(void) memset((genericptr_t)&ubirthday, 0, sizeof(ubirthday));
|
||||
(void) memset((genericptr_t)&urealtime, 0, sizeof(urealtime));
|
||||
|
||||
u.uroleplay = tmpuroleplay; /* restore options set via rcfile */
|
||||
|
||||
#if 0 /* documentation of more zero values as desirable */
|
||||
u.usick_cause[0] = 0;
|
||||
u.uluck = u.moreluck = 0;
|
||||
@@ -922,6 +925,13 @@ register struct trobj *trop;
|
||||
nocreate4 = otyp;
|
||||
}
|
||||
|
||||
/* nudist gets no armor */
|
||||
if (u.uroleplay.nudist && obj->oclass == ARMOR_CLASS) {
|
||||
dealloc_obj(obj);
|
||||
trop++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (trop->trclass == COIN_CLASS) {
|
||||
/* no "blessed" or "identified" money */
|
||||
obj->quan = u.umoney0;
|
||||
|
||||
@@ -2366,6 +2366,9 @@ left_side(row, left_mark, right, limits)
|
||||
char *row_max = NULL;
|
||||
int lim_min;
|
||||
|
||||
#ifdef GCC_WARN
|
||||
rowp = row_min = row_max = 0;
|
||||
#endif
|
||||
nrow = row+step;
|
||||
deeper = good_row(nrow) && (!limits || (*limits >= *(limits+1)));
|
||||
if(!vis_func) {
|
||||
|
||||
@@ -57,6 +57,7 @@ long mask;
|
||||
uskin = obj;
|
||||
/* assert( !uarm ); */
|
||||
} else {
|
||||
if ((mask & W_ARMOR)) u.uroleplay.nudist = FALSE;
|
||||
for(wp = worn; wp->w_mask; wp++) if(wp->w_mask & mask) {
|
||||
oobj = *(wp->w_obj);
|
||||
if(oobj && !(oobj->owornmask & wp->w_mask))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 zap.c $NHDT-Date: 1427249230 2015/03/25 02:07:10 $ $NHDT-Branch: master $:$NHDT-Revision: 1.197 $ */
|
||||
/* NetHack 3.5 zap.c $NHDT-Date: 1427782839 2015/03/31 06:20:39 $ $NHDT-Branch: master $:$NHDT-Revision: 1.200 $ */
|
||||
/* NetHack 3.5 zap.c $Date: 2013/11/05 00:57:56 $ $Revision: 1.183 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1892,11 +1892,11 @@ struct obj *obj, *otmp;
|
||||
|
||||
/* returns nonzero if something was hit */
|
||||
int
|
||||
bhitpile(obj,fhito,tx,ty,zdir)
|
||||
bhitpile(obj, fhito, tx, ty, zz)
|
||||
struct obj *obj;
|
||||
int FDECL((*fhito), (OBJ_P,OBJ_P));
|
||||
int tx, ty;
|
||||
schar zdir;
|
||||
schar zz;
|
||||
{
|
||||
int hitanything = 0;
|
||||
register struct obj *otmp, *next_obj;
|
||||
@@ -1916,16 +1916,12 @@ bhitpile(obj,fhito,tx,ty,zdir)
|
||||
|
||||
poly_zapped = -1;
|
||||
for(otmp = level.objects[tx][ty]; otmp; otmp = next_obj) {
|
||||
/* Fix for polymorph bug, Tim Wright */
|
||||
next_obj = otmp->nexthere;
|
||||
/*
|
||||
* game flavor: if you are hiding under something,
|
||||
* a zap downwards shouldn't hit that obj, so honor that.
|
||||
*/
|
||||
if (!(u.uundetected && (zdir > 0) &&
|
||||
(otmp == level.objects[u.ux][u.uy]) &&
|
||||
hides_under(youmonst.data)))
|
||||
hitanything += (*fhito)(otmp, obj);
|
||||
/* for zap downwards, don't hit object poly'd hero is hiding under */
|
||||
if (zz > 0 && u.uundetected && otmp == level.objects[u.ux][u.uy]
|
||||
&& hides_under(youmonst.data)) continue;
|
||||
|
||||
hitanything += (*fhito)(otmp, obj);
|
||||
}
|
||||
if(poly_zapped >= 0)
|
||||
create_polymon(level.objects[tx][ty], poly_zapped);
|
||||
|
||||
@@ -1 +1 @@
|
||||
*.p filter=NHtext merge=NHsubst
|
||||
*.p NHSUBST
|
||||
|
||||
@@ -1 +1 @@
|
||||
NHDeflts filter=NHtext merge=NHsubst
|
||||
NHDeflts NHSUBST
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*.BC filter=NHtext merge=NHsubst
|
||||
*.bat filter=NHtext merge=NHsubst
|
||||
Makefile.* filter=NHtext merge=NHsubst
|
||||
Install.* filter=NHtext merge=NHsubst
|
||||
*.BC NHSUBST
|
||||
*.bat NHSUBST
|
||||
Makefile.* NHSUBST
|
||||
Install.* NHSUBST
|
||||
|
||||
@@ -1 +1 @@
|
||||
Makefile.* filter=NHtext merge=NHsubst
|
||||
Makefile.* NHSUBST
|
||||
|
||||
@@ -1 +1 @@
|
||||
Makefile.* filter=NHtext merge=NHsubst
|
||||
Makefile.* NHSUBST
|
||||
|
||||
+448
-74
@@ -1,79 +1,453 @@
|
||||
#define CHAR 257
|
||||
#define INTEGER 258
|
||||
#define BOOLEAN 259
|
||||
#define PERCENT 260
|
||||
#define MESSAGE_ID 261
|
||||
#define MAZE_ID 262
|
||||
#define LEVEL_ID 263
|
||||
#define LEV_INIT_ID 264
|
||||
#define GEOMETRY_ID 265
|
||||
#define NOMAP_ID 266
|
||||
#define OBJECT_ID 267
|
||||
#define COBJECT_ID 268
|
||||
#define MONSTER_ID 269
|
||||
#define TRAP_ID 270
|
||||
#define DOOR_ID 271
|
||||
#define DRAWBRIDGE_ID 272
|
||||
#define MAZEWALK_ID 273
|
||||
#define WALLIFY_ID 274
|
||||
#define REGION_ID 275
|
||||
#define FILLING 276
|
||||
#define RANDOM_OBJECTS_ID 277
|
||||
#define RANDOM_MONSTERS_ID 278
|
||||
#define RANDOM_PLACES_ID 279
|
||||
#define ALTAR_ID 280
|
||||
#define LADDER_ID 281
|
||||
#define STAIR_ID 282
|
||||
#define NON_DIGGABLE_ID 283
|
||||
#define NON_PASSWALL_ID 284
|
||||
#define ROOM_ID 285
|
||||
#define PORTAL_ID 286
|
||||
#define TELEPRT_ID 287
|
||||
#define BRANCH_ID 288
|
||||
#define LEV 289
|
||||
#define CHANCE_ID 290
|
||||
#define CORRIDOR_ID 291
|
||||
#define GOLD_ID 292
|
||||
#define ENGRAVING_ID 293
|
||||
#define FOUNTAIN_ID 294
|
||||
#define POOL_ID 295
|
||||
#define SINK_ID 296
|
||||
#define NONE 297
|
||||
#define RAND_CORRIDOR_ID 298
|
||||
#define DOOR_STATE 299
|
||||
#define LIGHT_STATE 300
|
||||
#define CURSE_TYPE 301
|
||||
#define ENGRAVING_TYPE 302
|
||||
#define DIRECTION 303
|
||||
#define RANDOM_TYPE 304
|
||||
#define O_REGISTER 305
|
||||
#define M_REGISTER 306
|
||||
#define P_REGISTER 307
|
||||
#define A_REGISTER 308
|
||||
#define ALIGNMENT 309
|
||||
#define LEFT_OR_RIGHT 310
|
||||
#define CENTER 311
|
||||
#define TOP_OR_BOT 312
|
||||
#define ALTAR_TYPE 313
|
||||
#define UP_OR_DOWN 314
|
||||
#define SUBROOM_ID 315
|
||||
#define NAME_ID 316
|
||||
#define FLAGS_ID 317
|
||||
#define FLAG_TYPE 318
|
||||
#define MON_ATTITUDE 319
|
||||
#define MON_ALERTNESS 320
|
||||
#define MON_APPEARANCE 321
|
||||
#define CONTAINED 322
|
||||
#define STRING 323
|
||||
#define MAP_ID 324
|
||||
typedef union
|
||||
/* A Bison parser, made by GNU Bison 3.0.2. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
under terms of your choice, so long as that work isn't itself a
|
||||
parser generator using the skeleton or a modified version thereof
|
||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||
the parser skeleton itself, you may (at your option) remove this
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
#ifndef YY_YY_Y_TAB_H_INCLUDED
|
||||
# define YY_YY_Y_TAB_H_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 0
|
||||
#endif
|
||||
#if YYDEBUG
|
||||
extern int yydebug;
|
||||
#endif
|
||||
|
||||
/* Token type. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
enum yytokentype
|
||||
{
|
||||
CHAR = 258,
|
||||
INTEGER = 259,
|
||||
BOOLEAN = 260,
|
||||
PERCENT = 261,
|
||||
SPERCENT = 262,
|
||||
MINUS_INTEGER = 263,
|
||||
PLUS_INTEGER = 264,
|
||||
MAZE_GRID_ID = 265,
|
||||
SOLID_FILL_ID = 266,
|
||||
MINES_ID = 267,
|
||||
ROGUELEV_ID = 268,
|
||||
MESSAGE_ID = 269,
|
||||
MAZE_ID = 270,
|
||||
LEVEL_ID = 271,
|
||||
LEV_INIT_ID = 272,
|
||||
GEOMETRY_ID = 273,
|
||||
NOMAP_ID = 274,
|
||||
OBJECT_ID = 275,
|
||||
COBJECT_ID = 276,
|
||||
MONSTER_ID = 277,
|
||||
TRAP_ID = 278,
|
||||
DOOR_ID = 279,
|
||||
DRAWBRIDGE_ID = 280,
|
||||
object_ID = 281,
|
||||
monster_ID = 282,
|
||||
terrain_ID = 283,
|
||||
MAZEWALK_ID = 284,
|
||||
WALLIFY_ID = 285,
|
||||
REGION_ID = 286,
|
||||
FILLING = 287,
|
||||
IRREGULAR = 288,
|
||||
JOINED = 289,
|
||||
ALTAR_ID = 290,
|
||||
LADDER_ID = 291,
|
||||
STAIR_ID = 292,
|
||||
NON_DIGGABLE_ID = 293,
|
||||
NON_PASSWALL_ID = 294,
|
||||
ROOM_ID = 295,
|
||||
PORTAL_ID = 296,
|
||||
TELEPRT_ID = 297,
|
||||
BRANCH_ID = 298,
|
||||
LEV = 299,
|
||||
MINERALIZE_ID = 300,
|
||||
CORRIDOR_ID = 301,
|
||||
GOLD_ID = 302,
|
||||
ENGRAVING_ID = 303,
|
||||
FOUNTAIN_ID = 304,
|
||||
POOL_ID = 305,
|
||||
SINK_ID = 306,
|
||||
NONE = 307,
|
||||
RAND_CORRIDOR_ID = 308,
|
||||
DOOR_STATE = 309,
|
||||
LIGHT_STATE = 310,
|
||||
CURSE_TYPE = 311,
|
||||
ENGRAVING_TYPE = 312,
|
||||
DIRECTION = 313,
|
||||
RANDOM_TYPE = 314,
|
||||
RANDOM_TYPE_BRACKET = 315,
|
||||
A_REGISTER = 316,
|
||||
ALIGNMENT = 317,
|
||||
LEFT_OR_RIGHT = 318,
|
||||
CENTER = 319,
|
||||
TOP_OR_BOT = 320,
|
||||
ALTAR_TYPE = 321,
|
||||
UP_OR_DOWN = 322,
|
||||
SUBROOM_ID = 323,
|
||||
NAME_ID = 324,
|
||||
FLAGS_ID = 325,
|
||||
FLAG_TYPE = 326,
|
||||
MON_ATTITUDE = 327,
|
||||
MON_ALERTNESS = 328,
|
||||
MON_APPEARANCE = 329,
|
||||
ROOMDOOR_ID = 330,
|
||||
IF_ID = 331,
|
||||
ELSE_ID = 332,
|
||||
TERRAIN_ID = 333,
|
||||
HORIZ_OR_VERT = 334,
|
||||
REPLACE_TERRAIN_ID = 335,
|
||||
EXIT_ID = 336,
|
||||
SHUFFLE_ID = 337,
|
||||
QUANTITY_ID = 338,
|
||||
BURIED_ID = 339,
|
||||
LOOP_ID = 340,
|
||||
FOR_ID = 341,
|
||||
TO_ID = 342,
|
||||
SWITCH_ID = 343,
|
||||
CASE_ID = 344,
|
||||
BREAK_ID = 345,
|
||||
DEFAULT_ID = 346,
|
||||
ERODED_ID = 347,
|
||||
TRAPPED_ID = 348,
|
||||
RECHARGED_ID = 349,
|
||||
INVIS_ID = 350,
|
||||
GREASED_ID = 351,
|
||||
FEMALE_ID = 352,
|
||||
CANCELLED_ID = 353,
|
||||
REVIVED_ID = 354,
|
||||
AVENGE_ID = 355,
|
||||
FLEEING_ID = 356,
|
||||
BLINDED_ID = 357,
|
||||
PARALYZED_ID = 358,
|
||||
STUNNED_ID = 359,
|
||||
CONFUSED_ID = 360,
|
||||
SEENTRAPS_ID = 361,
|
||||
ALL_ID = 362,
|
||||
MONTYPE_ID = 363,
|
||||
GRAVE_ID = 364,
|
||||
ERODEPROOF_ID = 365,
|
||||
FUNCTION_ID = 366,
|
||||
MSG_OUTPUT_TYPE = 367,
|
||||
COMPARE_TYPE = 368,
|
||||
UNKNOWN_TYPE = 369,
|
||||
rect_ID = 370,
|
||||
fillrect_ID = 371,
|
||||
line_ID = 372,
|
||||
randline_ID = 373,
|
||||
grow_ID = 374,
|
||||
selection_ID = 375,
|
||||
flood_ID = 376,
|
||||
rndcoord_ID = 377,
|
||||
circle_ID = 378,
|
||||
ellipse_ID = 379,
|
||||
filter_ID = 380,
|
||||
complement_ID = 381,
|
||||
gradient_ID = 382,
|
||||
GRADIENT_TYPE = 383,
|
||||
LIMITED = 384,
|
||||
HUMIDITY_TYPE = 385,
|
||||
STRING = 386,
|
||||
MAP_ID = 387,
|
||||
NQSTRING = 388,
|
||||
VARSTRING = 389,
|
||||
CFUNC = 390,
|
||||
CFUNC_INT = 391,
|
||||
CFUNC_STR = 392,
|
||||
CFUNC_COORD = 393,
|
||||
CFUNC_REGION = 394,
|
||||
VARSTRING_INT = 395,
|
||||
VARSTRING_INT_ARRAY = 396,
|
||||
VARSTRING_STRING = 397,
|
||||
VARSTRING_STRING_ARRAY = 398,
|
||||
VARSTRING_VAR = 399,
|
||||
VARSTRING_VAR_ARRAY = 400,
|
||||
VARSTRING_COORD = 401,
|
||||
VARSTRING_COORD_ARRAY = 402,
|
||||
VARSTRING_REGION = 403,
|
||||
VARSTRING_REGION_ARRAY = 404,
|
||||
VARSTRING_MAPCHAR = 405,
|
||||
VARSTRING_MAPCHAR_ARRAY = 406,
|
||||
VARSTRING_MONST = 407,
|
||||
VARSTRING_MONST_ARRAY = 408,
|
||||
VARSTRING_OBJ = 409,
|
||||
VARSTRING_OBJ_ARRAY = 410,
|
||||
VARSTRING_SEL = 411,
|
||||
VARSTRING_SEL_ARRAY = 412,
|
||||
METHOD_INT = 413,
|
||||
METHOD_INT_ARRAY = 414,
|
||||
METHOD_STRING = 415,
|
||||
METHOD_STRING_ARRAY = 416,
|
||||
METHOD_VAR = 417,
|
||||
METHOD_VAR_ARRAY = 418,
|
||||
METHOD_COORD = 419,
|
||||
METHOD_COORD_ARRAY = 420,
|
||||
METHOD_REGION = 421,
|
||||
METHOD_REGION_ARRAY = 422,
|
||||
METHOD_MAPCHAR = 423,
|
||||
METHOD_MAPCHAR_ARRAY = 424,
|
||||
METHOD_MONST = 425,
|
||||
METHOD_MONST_ARRAY = 426,
|
||||
METHOD_OBJ = 427,
|
||||
METHOD_OBJ_ARRAY = 428,
|
||||
METHOD_SEL = 429,
|
||||
METHOD_SEL_ARRAY = 430,
|
||||
DICE = 431
|
||||
};
|
||||
#endif
|
||||
/* Tokens. */
|
||||
#define CHAR 258
|
||||
#define INTEGER 259
|
||||
#define BOOLEAN 260
|
||||
#define PERCENT 261
|
||||
#define SPERCENT 262
|
||||
#define MINUS_INTEGER 263
|
||||
#define PLUS_INTEGER 264
|
||||
#define MAZE_GRID_ID 265
|
||||
#define SOLID_FILL_ID 266
|
||||
#define MINES_ID 267
|
||||
#define ROGUELEV_ID 268
|
||||
#define MESSAGE_ID 269
|
||||
#define MAZE_ID 270
|
||||
#define LEVEL_ID 271
|
||||
#define LEV_INIT_ID 272
|
||||
#define GEOMETRY_ID 273
|
||||
#define NOMAP_ID 274
|
||||
#define OBJECT_ID 275
|
||||
#define COBJECT_ID 276
|
||||
#define MONSTER_ID 277
|
||||
#define TRAP_ID 278
|
||||
#define DOOR_ID 279
|
||||
#define DRAWBRIDGE_ID 280
|
||||
#define object_ID 281
|
||||
#define monster_ID 282
|
||||
#define terrain_ID 283
|
||||
#define MAZEWALK_ID 284
|
||||
#define WALLIFY_ID 285
|
||||
#define REGION_ID 286
|
||||
#define FILLING 287
|
||||
#define IRREGULAR 288
|
||||
#define JOINED 289
|
||||
#define ALTAR_ID 290
|
||||
#define LADDER_ID 291
|
||||
#define STAIR_ID 292
|
||||
#define NON_DIGGABLE_ID 293
|
||||
#define NON_PASSWALL_ID 294
|
||||
#define ROOM_ID 295
|
||||
#define PORTAL_ID 296
|
||||
#define TELEPRT_ID 297
|
||||
#define BRANCH_ID 298
|
||||
#define LEV 299
|
||||
#define MINERALIZE_ID 300
|
||||
#define CORRIDOR_ID 301
|
||||
#define GOLD_ID 302
|
||||
#define ENGRAVING_ID 303
|
||||
#define FOUNTAIN_ID 304
|
||||
#define POOL_ID 305
|
||||
#define SINK_ID 306
|
||||
#define NONE 307
|
||||
#define RAND_CORRIDOR_ID 308
|
||||
#define DOOR_STATE 309
|
||||
#define LIGHT_STATE 310
|
||||
#define CURSE_TYPE 311
|
||||
#define ENGRAVING_TYPE 312
|
||||
#define DIRECTION 313
|
||||
#define RANDOM_TYPE 314
|
||||
#define RANDOM_TYPE_BRACKET 315
|
||||
#define A_REGISTER 316
|
||||
#define ALIGNMENT 317
|
||||
#define LEFT_OR_RIGHT 318
|
||||
#define CENTER 319
|
||||
#define TOP_OR_BOT 320
|
||||
#define ALTAR_TYPE 321
|
||||
#define UP_OR_DOWN 322
|
||||
#define SUBROOM_ID 323
|
||||
#define NAME_ID 324
|
||||
#define FLAGS_ID 325
|
||||
#define FLAG_TYPE 326
|
||||
#define MON_ATTITUDE 327
|
||||
#define MON_ALERTNESS 328
|
||||
#define MON_APPEARANCE 329
|
||||
#define ROOMDOOR_ID 330
|
||||
#define IF_ID 331
|
||||
#define ELSE_ID 332
|
||||
#define TERRAIN_ID 333
|
||||
#define HORIZ_OR_VERT 334
|
||||
#define REPLACE_TERRAIN_ID 335
|
||||
#define EXIT_ID 336
|
||||
#define SHUFFLE_ID 337
|
||||
#define QUANTITY_ID 338
|
||||
#define BURIED_ID 339
|
||||
#define LOOP_ID 340
|
||||
#define FOR_ID 341
|
||||
#define TO_ID 342
|
||||
#define SWITCH_ID 343
|
||||
#define CASE_ID 344
|
||||
#define BREAK_ID 345
|
||||
#define DEFAULT_ID 346
|
||||
#define ERODED_ID 347
|
||||
#define TRAPPED_ID 348
|
||||
#define RECHARGED_ID 349
|
||||
#define INVIS_ID 350
|
||||
#define GREASED_ID 351
|
||||
#define FEMALE_ID 352
|
||||
#define CANCELLED_ID 353
|
||||
#define REVIVED_ID 354
|
||||
#define AVENGE_ID 355
|
||||
#define FLEEING_ID 356
|
||||
#define BLINDED_ID 357
|
||||
#define PARALYZED_ID 358
|
||||
#define STUNNED_ID 359
|
||||
#define CONFUSED_ID 360
|
||||
#define SEENTRAPS_ID 361
|
||||
#define ALL_ID 362
|
||||
#define MONTYPE_ID 363
|
||||
#define GRAVE_ID 364
|
||||
#define ERODEPROOF_ID 365
|
||||
#define FUNCTION_ID 366
|
||||
#define MSG_OUTPUT_TYPE 367
|
||||
#define COMPARE_TYPE 368
|
||||
#define UNKNOWN_TYPE 369
|
||||
#define rect_ID 370
|
||||
#define fillrect_ID 371
|
||||
#define line_ID 372
|
||||
#define randline_ID 373
|
||||
#define grow_ID 374
|
||||
#define selection_ID 375
|
||||
#define flood_ID 376
|
||||
#define rndcoord_ID 377
|
||||
#define circle_ID 378
|
||||
#define ellipse_ID 379
|
||||
#define filter_ID 380
|
||||
#define complement_ID 381
|
||||
#define gradient_ID 382
|
||||
#define GRADIENT_TYPE 383
|
||||
#define LIMITED 384
|
||||
#define HUMIDITY_TYPE 385
|
||||
#define STRING 386
|
||||
#define MAP_ID 387
|
||||
#define NQSTRING 388
|
||||
#define VARSTRING 389
|
||||
#define CFUNC 390
|
||||
#define CFUNC_INT 391
|
||||
#define CFUNC_STR 392
|
||||
#define CFUNC_COORD 393
|
||||
#define CFUNC_REGION 394
|
||||
#define VARSTRING_INT 395
|
||||
#define VARSTRING_INT_ARRAY 396
|
||||
#define VARSTRING_STRING 397
|
||||
#define VARSTRING_STRING_ARRAY 398
|
||||
#define VARSTRING_VAR 399
|
||||
#define VARSTRING_VAR_ARRAY 400
|
||||
#define VARSTRING_COORD 401
|
||||
#define VARSTRING_COORD_ARRAY 402
|
||||
#define VARSTRING_REGION 403
|
||||
#define VARSTRING_REGION_ARRAY 404
|
||||
#define VARSTRING_MAPCHAR 405
|
||||
#define VARSTRING_MAPCHAR_ARRAY 406
|
||||
#define VARSTRING_MONST 407
|
||||
#define VARSTRING_MONST_ARRAY 408
|
||||
#define VARSTRING_OBJ 409
|
||||
#define VARSTRING_OBJ_ARRAY 410
|
||||
#define VARSTRING_SEL 411
|
||||
#define VARSTRING_SEL_ARRAY 412
|
||||
#define METHOD_INT 413
|
||||
#define METHOD_INT_ARRAY 414
|
||||
#define METHOD_STRING 415
|
||||
#define METHOD_STRING_ARRAY 416
|
||||
#define METHOD_VAR 417
|
||||
#define METHOD_VAR_ARRAY 418
|
||||
#define METHOD_COORD 419
|
||||
#define METHOD_COORD_ARRAY 420
|
||||
#define METHOD_REGION 421
|
||||
#define METHOD_REGION_ARRAY 422
|
||||
#define METHOD_MAPCHAR 423
|
||||
#define METHOD_MAPCHAR_ARRAY 424
|
||||
#define METHOD_MONST 425
|
||||
#define METHOD_MONST_ARRAY 426
|
||||
#define METHOD_OBJ 427
|
||||
#define METHOD_OBJ_ARRAY 428
|
||||
#define METHOD_SEL 429
|
||||
#define METHOD_SEL_ARRAY 430
|
||||
#define DICE 431
|
||||
|
||||
/* Value type. */
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
union YYSTYPE
|
||||
{
|
||||
int i;
|
||||
#line 148 "lev_comp.y" /* yacc.c:1909 */
|
||||
|
||||
long i;
|
||||
char* map;
|
||||
struct {
|
||||
xchar room;
|
||||
xchar wall;
|
||||
xchar door;
|
||||
long room;
|
||||
long wall;
|
||||
long door;
|
||||
} corpos;
|
||||
} YYSTYPE;
|
||||
struct {
|
||||
long area;
|
||||
long x1;
|
||||
long y1;
|
||||
long x2;
|
||||
long y2;
|
||||
} lregn;
|
||||
struct {
|
||||
long x;
|
||||
long y;
|
||||
} crd;
|
||||
struct {
|
||||
long ter;
|
||||
long lit;
|
||||
} terr;
|
||||
struct {
|
||||
long height;
|
||||
long width;
|
||||
} sze;
|
||||
struct {
|
||||
long die;
|
||||
long num;
|
||||
} dice;
|
||||
struct {
|
||||
long cfunc;
|
||||
char *varstr;
|
||||
} meth;
|
||||
|
||||
#line 443 "y.tab.h" /* yacc.c:1909 */
|
||||
};
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
#endif
|
||||
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
int yyparse (void);
|
||||
|
||||
#endif /* !YY_YY_Y_TAB_H_INCLUDED */
|
||||
|
||||
+2364
-870
File diff suppressed because it is too large
Load Diff
+5527
-2291
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
Makefile.* filter=NHtext merge=NHsubst
|
||||
Makefile.* NHSUBST
|
||||
|
||||
@@ -1 +1 @@
|
||||
* filter=NHtext merge=NHsubst
|
||||
* NHSUBST
|
||||
|
||||
@@ -14,6 +14,9 @@ WIZARDS=root games
|
||||
# Uses the same syntax as the WIZARDS option above.
|
||||
#SHELLERS=
|
||||
|
||||
# Users allowed to use #exploremode. Same syntax as WIZARDS above.
|
||||
EXPLORERS=*
|
||||
|
||||
# Show debugging information originating from these source files.
|
||||
# Use '*' for all, or list source files separated by spaces.
|
||||
# Only available if game has been compiled with DEBUG.
|
||||
|
||||
@@ -1 +1 @@
|
||||
Makefile.* filter=NHtext merge=NHsubst
|
||||
Makefile.* NHSUBST
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
*.ce filter=NHtext merge=NHsubst
|
||||
*.mak filter=NHtext merge=NHsubst
|
||||
*.bat filter=NHtext merge=NHsubst
|
||||
*.ce NHSUBST
|
||||
*.mak NHSUBST
|
||||
*.bat NHSUBST
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Install.nt filter=NHtext merge=NHsubst
|
||||
Makefile.* filter=NHtext merge=NHsubst
|
||||
*.rc filter=NHtext merge=NHsubst
|
||||
*.bat filter=NHtext merge=NHsubst
|
||||
Install.nt NHSUBST
|
||||
Makefile.* NHSUBST
|
||||
*.rc NHSUBST
|
||||
*.bat NHSUBST
|
||||
|
||||
+107
-71
@@ -151,7 +151,7 @@ TARGET_CPU=x86
|
||||
# -Zd - generate only public symbols and line numbers for debugging
|
||||
# -GS - enable security checks
|
||||
#
|
||||
ccommon=-c $(CDBFLAG) -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS -c
|
||||
ccommon=-c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS -c
|
||||
lflags=/INCREMENTAL:NO /NOLOGO
|
||||
|
||||
!IF "$(TARGET_CPU)" == "x86"
|
||||
@@ -195,10 +195,6 @@ guilibs = $(winlibs)
|
||||
# Exe File Info.
|
||||
#==========================================
|
||||
|
||||
#
|
||||
# For the level compiler bits,
|
||||
# we just defer to win\win32\dgnstuff.mak
|
||||
# and win\win32\levstuff.mak
|
||||
#
|
||||
#
|
||||
# Optional high-quality BSD random number generation routines
|
||||
@@ -271,44 +267,90 @@ DLBFLG =
|
||||
#==========================================
|
||||
#==========================================
|
||||
|
||||
INCLDIR= /I..\include
|
||||
!IF "$(TARGET_CPU)" == ""
|
||||
TARGET_CPU=x86
|
||||
!ENDIF
|
||||
|
||||
!IF "$(_NMAKE_VER)" == "10.00.40219.01"
|
||||
CL2013=
|
||||
!ELSE
|
||||
! IF ($(VSVER) > 2010)
|
||||
CL2013=-sdl
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
|
||||
ccommon= -c -nologo -D"_CONSOLE" -D"_CRT_NONSTDC_NO_DEPRECATE" -D"_CRT_SECURE_NO_DEPRECATE" \
|
||||
-D"_LIB" -D"_SCL_SECURE_NO_DEPRECATE" -D"_VC80_UPGRADE=0x0600" -D"DLB" -D"_MBCS" \
|
||||
-DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -D"NDEBUG" -D"YY_NO_UNISTD_H" -EHsc -fp:precise -Gd -GF -GS -Gy \
|
||||
$(CL2013) -WX- -Zc:forScope -Zc:wchar_t -Zi
|
||||
cdebug= -analyze- -D"_DEBUG" -Gm -MTd -RTC1 -Od
|
||||
crelease= -analyze- -D"_MBCS" -errorReport:prompt -GL -Gm- -MT -O2 -Ot -Ox -Oy
|
||||
|
||||
lcommon= /NOLOGO /INCREMENTAL:NO
|
||||
|
||||
!IF "$(DEBUGINFO)" == "Y"
|
||||
CDBGFLAG=-Zi
|
||||
LDBGFLAG=/debug
|
||||
cdebug = -Zi -Od
|
||||
ldebug = /DEBUG
|
||||
cflags1=$(ccommon) $(cdebug)
|
||||
lflags1=$(lcommon) $(ldebug)
|
||||
!ELSE
|
||||
CDBGFLAG=
|
||||
LDBGFLAG=
|
||||
ldebug =
|
||||
cdebug =
|
||||
ldebug=
|
||||
cflags1=$(ccomon) $(crelease)
|
||||
lflags1=$(lcommon) $(ldebug)
|
||||
!ENDIF
|
||||
|
||||
!IF ("$(ldebug)" != "")
|
||||
!IF ("$(ldebug)" != "/RELEASE")
|
||||
ldebug = /DEBUG
|
||||
!ENDIF
|
||||
lflags= $(lflags1)
|
||||
|
||||
!IF "$(TARGET_CPU)" == "x86"
|
||||
cflags = $(cflags1) -D_X86_=1 -DWIN32 -D_WIN32 -W3
|
||||
scall = -Gz
|
||||
|
||||
!ELSEIF "$(TARGET_CPU)" == "x64"
|
||||
cflags = $(cflags1) -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -W4
|
||||
scall =
|
||||
!ENDIF
|
||||
|
||||
!IF ("$(cdebug)" != "")
|
||||
!IF ("$(cdebug)" != "-Ox -DNDEBUG")
|
||||
cdebug = -Zi -Od
|
||||
!ENDIF
|
||||
!IF "$(_NMAKE_VER)" == "10.00.40219.01"
|
||||
cflags = $(cflags:-W4=-W3)
|
||||
!ENDIF
|
||||
|
||||
cflags2 = $(cflags:-W4=-W3)
|
||||
#More verbose below
|
||||
#cflags2 = $(cflags) -wd4131
|
||||
#cflags2 = $(cflags:-W4=-Wall)
|
||||
#More verbose warning output options below
|
||||
#cflags = $(cflags:-W4=-wd4131
|
||||
#cflags = $(cflags:-W4=-Wall)
|
||||
#cflags = $(cflags:-W3=-wd4131
|
||||
#cflags = $(cflags:-W3=-Wall)
|
||||
|
||||
# declarations for use on Intel x86 systems
|
||||
!IF "$(TARGET_CPU)" == "x86"
|
||||
DLLENTRY = @12
|
||||
!ENDIF
|
||||
|
||||
# declarations for use on AMD64 systems
|
||||
!IF "$(TARGET_CPU)" == "x64"
|
||||
DLLENTRY =
|
||||
!ENDIF
|
||||
|
||||
# for Windows applications
|
||||
conlflags = $(lflags) -subsystem:console,$(EXEVER)
|
||||
guilflags = $(lflags) -subsystem:windows,$(EXEVER)
|
||||
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
|
||||
|
||||
# basic subsystem specific libraries, less the C Run-Time
|
||||
baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib
|
||||
winlibs = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib
|
||||
|
||||
# for Windows applications that use the C Run-Time libraries
|
||||
conlibs = $(baselibs)
|
||||
guilibs = $(winlibs)
|
||||
#
|
||||
|
||||
INCLDIR= /I..\include
|
||||
|
||||
#==========================================
|
||||
# Util builds
|
||||
#==========================================
|
||||
|
||||
cflagsUtil = $(cdebug) $(cflags2) $(INCLDIR) \
|
||||
$(WINPFLAG) $(DLBFLG)
|
||||
lflagsUtil = $(ldebug) $(lflags) $(conlibs)
|
||||
cflagsUtil = $(cflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG)
|
||||
lflagsUtil = $(lflags) $(conlibs)
|
||||
|
||||
#==========================================
|
||||
# - Game build
|
||||
@@ -320,15 +362,13 @@ LIBS= user32.lib winmm.lib $(ZLIB)
|
||||
|
||||
!IF ("$(GRAPHICAL)"=="Y")
|
||||
|
||||
cflagsGame = $(cdebug) $(cflags2) $(guiflags) $(INCLDIR) \
|
||||
$(WINPFLAG) $(DLBFLG)
|
||||
lflagsGame = $(ldebug) $(lflags) $(guilibs) $(GAMEPDBFILE) $(GAMEMAPFILE)
|
||||
cflagsGame = $(cflags) $(guiflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG)
|
||||
lflagsGame = $(lflags) $(guilibs) $(GAMEPDBFILE) $(GAMEMAPFILE)
|
||||
|
||||
!ELSE
|
||||
|
||||
cflagsGame = $(cdebug) $(cflags2) $(conflags) $(INCLDIR) \
|
||||
$(WINPFLAG) $(DLBFLG)
|
||||
lflagsGame = $(ldebug) $(lflags) $(conlibs) $(GAMEPDBFILE) $(GAMEMAPFILE)
|
||||
cflagsGame = $(cflags) $(conflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG)
|
||||
lflagsGame = $(lflags) $(conlibs) $(GAMEPDBFILE) $(GAMEMAPFILE)
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -429,21 +469,15 @@ U = $(UTIL)^\
|
||||
# Utility Objects.
|
||||
#
|
||||
|
||||
MAKESRC = $(U)makedefs.c
|
||||
MAKESRC = $(U)makedefs.c
|
||||
|
||||
MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
|
||||
MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
|
||||
|
||||
#SPLEVOBJS = $(O)lev_yacc.o $(O)lev_lex.o $(O)lev_main.o \
|
||||
# $(O)alloc.o $(O)decl.o $(O)drawing.o \
|
||||
# $(O)monst.o $(O)objects.o $(O)panic.o
|
||||
|
||||
SPLEVOBJS = $(O)lev_yacc.o $(O)lev_lex.o $(O)lev_main.o \
|
||||
$(O)alloc.o $(O)decl.o $(O)drawing.o \
|
||||
$(O)monst.o $(O)objects.o $(O)panic.o
|
||||
|
||||
DGNCOMPOBJS = $(O)dgn_yacc.o $(O)dgn_lex.o $(O)dgn_main.o \
|
||||
$(O)alloc.o $(O)panic.o
|
||||
LEVCOMPOBJS = $(O)lev_yacc.o $(O)lev_lex.o $(O)lev_main.o \
|
||||
$(O)alloc.o $(O)decl.o $(O)drawing.o $(O)monst.o $(O)objects.o $(O)panic.o
|
||||
|
||||
DGNCOMPOBJS = $(O)dgn_yacc.o $(O)dgn_lex.o $(O)dgn_main.o \
|
||||
$(O)alloc.o $(O)panic.o
|
||||
|
||||
RECOVOBJS = $(O)recover.o
|
||||
|
||||
@@ -703,7 +737,7 @@ $(NHRES): $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
|
||||
|
||||
$(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag $(WINDLLS)
|
||||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||||
@echo Linking....
|
||||
@echo Linking $@
|
||||
$(link) $(lflagsGame) /STACK:2048 $(LIBS) $(COMCTRL) -out:$@ @<<$(GAME).lnk
|
||||
$(ALLOBJ:^ =^
|
||||
) $(NHRES)
|
||||
@@ -781,12 +815,14 @@ $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
|
||||
# Makedefs Stuff
|
||||
#==========================================
|
||||
$(U)nhsizes.exe: $(O)nhsizes.o
|
||||
@echo Linking $@
|
||||
$(link) $(lflagsUtil) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o
|
||||
|
||||
$(O)nhsizes.o: $(CONFIG_H) nhsizes.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ nhsizes.c
|
||||
|
||||
$(U)makedefs.exe: $(MAKEOBJS)
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEOBJS)
|
||||
|
||||
$(O)makedefs.o: $(CONFIG_H) $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\objclass.h \
|
||||
@@ -794,7 +830,7 @@ $(O)makedefs.o: $(CONFIG_H) $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\objcla
|
||||
$(U)makedefs.c
|
||||
@if not exist $(OBJ)\*.* echo creating directory $(OBJ)
|
||||
@if not exist $(OBJ)\*.* mkdir $(OBJ)
|
||||
$(CC) $(cflagsUtil) -Fo$@ $(U)makedefs.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)makedefs.c
|
||||
|
||||
#
|
||||
# date.h should be remade every time any of the source or include
|
||||
@@ -835,6 +871,7 @@ $(DAT)\bogusmon: $(DAT)\bogusmon.txt $(U)makedefs.exe
|
||||
#==========================================
|
||||
|
||||
$(U)uudecode.exe: $(O)uudecode.o
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
|
||||
|
||||
$(O)uudecode.o: $(SSYS)\uudecode.c
|
||||
@@ -890,24 +927,20 @@ $(WIN32)\splash.bmp: $(U)uudecode.exe $(WIN32)\splash.uu
|
||||
$(U)lev_yacc.c $(INCL)\lev_comp.h: $(U)lev_comp.y
|
||||
nmake -nologo -f ..\win\win32\levstuff.mak default
|
||||
|
||||
LEVCFLAGS=-c -nologo -DWIN32 -D_WIN32 -I$(INCL) -nologo -Z7 -Od -DDLB
|
||||
|
||||
$(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
|
||||
$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_yacc.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)lev_yacc.c
|
||||
|
||||
$(O)lev_lex.o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \
|
||||
$(O)lev_lex.o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \
|
||||
$(U)lev_lex.c
|
||||
$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_lex.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)lev_lex.c
|
||||
|
||||
$(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
|
||||
$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_main.c
|
||||
$(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)lev_main.c
|
||||
|
||||
$(U)levcomp.exe: $(SPLEVOBJS)
|
||||
@echo Linking $@...
|
||||
echo $(link)
|
||||
echo $(lflagsUtil)
|
||||
$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(SPLEVOBJS:^ =^
|
||||
$(U)levcomp.exe: $(LEVCOMPOBJS)
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(LEVCOMPOBJS:^ =^
|
||||
)
|
||||
<<
|
||||
|
||||
@@ -921,17 +954,17 @@ $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
|
||||
nmake -nologo -f ..\win\win32\dgnstuff.mak default
|
||||
|
||||
$(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c
|
||||
@$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_yacc.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)dgn_yacc.c
|
||||
|
||||
$(O)dgn_lex.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
|
||||
$(U)dgn_lex.c
|
||||
@$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_lex.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)dgn_lex.c
|
||||
|
||||
$(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
|
||||
@$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_main.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)dgn_main.c
|
||||
|
||||
$(U)dgncomp.exe: $(DGNCOMPOBJS)
|
||||
@echo Linking $@...
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(DGNCOMPOBJS:^ =^
|
||||
)
|
||||
@@ -989,6 +1022,7 @@ $(INCL)\win32api.h: $(MSWSYS)\win32api.h
|
||||
#==========================================
|
||||
|
||||
$(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(O)dlb_main.o
|
||||
$(O)dlb.o
|
||||
@@ -1038,10 +1072,11 @@ nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
|
||||
#==========================================
|
||||
|
||||
$(U)recover.exe: $(RECOVOBJS)
|
||||
@echo Linking $@
|
||||
$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(RECOVOBJS)
|
||||
|
||||
$(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h
|
||||
$(CC) $(cflagsUtil) -Fo$@ $(U)recover.c
|
||||
@$(CC) $(cflagsUtil) -Fo$@ $(U)recover.c
|
||||
|
||||
#==========================================
|
||||
# Tile Mapping
|
||||
@@ -1052,6 +1087,7 @@ $(SRC)\tile.c: $(U)tilemap.exe
|
||||
@$(U)tilemap
|
||||
|
||||
$(U)tilemap.exe: $(O)tilemap.o
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o
|
||||
|
||||
$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
|
||||
@@ -1083,7 +1119,7 @@ $(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
||||
#==========================================
|
||||
|
||||
$(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
|
||||
@echo Linking $@...
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(GIFREADERS:^ =^
|
||||
)
|
||||
@@ -1092,7 +1128,7 @@ $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
|
||||
<<
|
||||
|
||||
$(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32)
|
||||
@echo Linking $@...
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(GIFREADERS32:^ =^
|
||||
)
|
||||
@@ -1101,7 +1137,7 @@ $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32)
|
||||
<<
|
||||
|
||||
$(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
|
||||
@echo Linking $@...
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(PPMWRITERS:^ =^
|
||||
)
|
||||
@@ -1123,7 +1159,7 @@ $(TILEBMP32):
|
||||
!ENDIF
|
||||
|
||||
$(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
|
||||
@echo Linking $@...
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(O)tile2bmp.o
|
||||
$(TEXT_IO:^ =^
|
||||
@@ -1131,7 +1167,7 @@ $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
|
||||
<<
|
||||
|
||||
$(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
|
||||
@echo Linking $@...
|
||||
@echo Linking $@
|
||||
@$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||||
$(O)til2bm32.o
|
||||
$(TEXT_IO32:^ =^
|
||||
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
*.pl filter=NHtext merge=NHsubst
|
||||
*.[ly] filter=NHtext merge=NHsubst
|
||||
*.pl NHSUBST
|
||||
*.[ly] NHSUBST
|
||||
|
||||
+283
-113
@@ -66,16 +66,36 @@ int FDECL(yyoutput, (int));
|
||||
void FDECL(init_yyin, (FILE *));
|
||||
void FDECL(init_yyout, (FILE *));
|
||||
|
||||
long NDECL(handle_varstring_check);
|
||||
long FDECL(corefunc_str_check, (char *, long));
|
||||
|
||||
extern struct lc_vardefs *FDECL(vardef_defined,(struct lc_vardefs *,char *, int));
|
||||
|
||||
extern struct lc_vardefs *variable_definitions;
|
||||
|
||||
extern long FDECL(method_defined, (char *, long, long *));
|
||||
|
||||
void FDECL(savetoken, (char *));
|
||||
void NDECL(newline);
|
||||
void FDECL(advancepos, (char *));
|
||||
|
||||
/*
|
||||
* This doesn't always get put in lev_comp.h
|
||||
* (esp. when using older versions of bison).
|
||||
*/
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
int nh_line_number = 1, colon_line_number = 1;
|
||||
int nh_line_number = 1;
|
||||
int token_start_pos = 0;
|
||||
char curr_token[512];
|
||||
static char map[4096];
|
||||
static int map_cnt = 0;
|
||||
|
||||
FILE *orig_yyin = NULL;
|
||||
|
||||
#define ST_RET(x) do { savetoken(yytext); return x; } while (0);
|
||||
#define ST_RETF(y, x) do { savetoken(yytext); y; return x; } while (0);
|
||||
|
||||
%}
|
||||
%e 1500
|
||||
%p 5000
|
||||
@@ -83,6 +103,7 @@ static int map_cnt = 0;
|
||||
%s MAPC
|
||||
%%
|
||||
<MAPC>ENDMAP {
|
||||
savetoken(yytext);
|
||||
BEGIN(INITIAL);
|
||||
yylval.map = (char *) alloc(map_cnt + 1);
|
||||
(void) strncpy(yylval.map, map, map_cnt);
|
||||
@@ -90,129 +111,230 @@ static int map_cnt = 0;
|
||||
map_cnt = 0;
|
||||
return MAP_ID;
|
||||
}
|
||||
<MAPC>[-|}{+ABCISHKPLWTF\\#. 0123456789]*\r?\n {
|
||||
<MAPC>[-|}{+xABCISHKMPLWTtFYU\\#. 0123456789]*\r?\n {
|
||||
int len = yyleng;
|
||||
savetoken(yytext);
|
||||
/* convert \r\n to \n */
|
||||
if (len >= 2 && yytext[len - 2] == '\r') len -= 1;
|
||||
nh_line_number++;
|
||||
(void) strncpy(map + map_cnt, yytext, len);
|
||||
map_cnt += len;
|
||||
map[map_cnt - 1] = '\n';
|
||||
map[map_cnt] = '\0';
|
||||
newline();
|
||||
}
|
||||
^#.*\n { nh_line_number++; }
|
||||
: { colon_line_number = nh_line_number; return ':'; }
|
||||
MESSAGE return MESSAGE_ID;
|
||||
MAZE return MAZE_ID;
|
||||
NOMAP return NOMAP_ID;
|
||||
LEVEL return LEVEL_ID;
|
||||
INIT_MAP return LEV_INIT_ID;
|
||||
FLAGS return FLAGS_ID;
|
||||
GEOMETRY return GEOMETRY_ID;
|
||||
^MAP\r?\n { BEGIN(MAPC); nh_line_number++; }
|
||||
OBJECT return OBJECT_ID;
|
||||
CONTAINER return COBJECT_ID;
|
||||
MONSTER return MONSTER_ID;
|
||||
TRAP return TRAP_ID;
|
||||
DOOR return DOOR_ID;
|
||||
DRAWBRIDGE return DRAWBRIDGE_ID;
|
||||
MAZEWALK return MAZEWALK_ID;
|
||||
WALLIFY return WALLIFY_ID;
|
||||
REGION return REGION_ID;
|
||||
RANDOM_OBJECTS return RANDOM_OBJECTS_ID;
|
||||
RANDOM_MONSTERS return RANDOM_MONSTERS_ID;
|
||||
RANDOM_PLACES return RANDOM_PLACES_ID;
|
||||
ALTAR return ALTAR_ID;
|
||||
LADDER return LADDER_ID;
|
||||
STAIR return STAIR_ID;
|
||||
PORTAL return PORTAL_ID;
|
||||
TELEPORT_REGION return TELEPRT_ID;
|
||||
BRANCH return BRANCH_ID;
|
||||
FOUNTAIN return FOUNTAIN_ID;
|
||||
SINK return SINK_ID;
|
||||
POOL return POOL_ID;
|
||||
NON_DIGGABLE return NON_DIGGABLE_ID;
|
||||
NON_PASSWALL return NON_PASSWALL_ID;
|
||||
ROOM return ROOM_ID;
|
||||
SUBROOM return SUBROOM_ID;
|
||||
RANDOM_CORRIDORS return RAND_CORRIDOR_ID;
|
||||
CORRIDOR return CORRIDOR_ID;
|
||||
GOLD return GOLD_ID;
|
||||
ENGRAVING return ENGRAVING_ID;
|
||||
NAME return NAME_ID;
|
||||
CHANCE return CHANCE_ID;
|
||||
levregion return LEV;
|
||||
open { yylval.i=D_ISOPEN; return DOOR_STATE; }
|
||||
closed { yylval.i=D_CLOSED; return DOOR_STATE; }
|
||||
locked { yylval.i=D_LOCKED; return DOOR_STATE; }
|
||||
nodoor { yylval.i=D_NODOOR; return DOOR_STATE; }
|
||||
broken { yylval.i=D_BROKEN; return DOOR_STATE; }
|
||||
north { yylval.i=W_NORTH; return DIRECTION; }
|
||||
east { yylval.i=W_EAST; return DIRECTION; }
|
||||
south { yylval.i=W_SOUTH; return DIRECTION; }
|
||||
west { yylval.i=W_WEST; return DIRECTION; }
|
||||
random { yylval.i = -1; return RANDOM_TYPE; }
|
||||
none { yylval.i = -2; return NONE; }
|
||||
object return O_REGISTER;
|
||||
monster return M_REGISTER;
|
||||
place return P_REGISTER;
|
||||
align return A_REGISTER;
|
||||
left { yylval.i=1; return LEFT_OR_RIGHT; }
|
||||
half-left { yylval.i=2; return LEFT_OR_RIGHT; }
|
||||
center { yylval.i=3; return CENTER; }
|
||||
half-right { yylval.i=4; return LEFT_OR_RIGHT; }
|
||||
right { yylval.i=5; return LEFT_OR_RIGHT; }
|
||||
top { yylval.i=1; return TOP_OR_BOT; }
|
||||
bottom { yylval.i=5; return TOP_OR_BOT; }
|
||||
lit { yylval.i=1; return LIGHT_STATE; }
|
||||
unlit { yylval.i=0; return LIGHT_STATE; }
|
||||
filled { yylval.i=0; return FILLING; }
|
||||
unfilled { yylval.i=1; return FILLING; }
|
||||
noalign { yylval.i= AM_NONE; return ALIGNMENT; }
|
||||
law { yylval.i= AM_LAWFUL; return ALIGNMENT; }
|
||||
neutral { yylval.i= AM_NEUTRAL; return ALIGNMENT; }
|
||||
chaos { yylval.i= AM_CHAOTIC; return ALIGNMENT; }
|
||||
coaligned { yylval.i= AM_SPLEV_CO; return ALIGNMENT; }
|
||||
noncoaligned { yylval.i= AM_SPLEV_NONCO; return ALIGNMENT; }
|
||||
peaceful { yylval.i=1; return MON_ATTITUDE; }
|
||||
hostile { yylval.i=0; return MON_ATTITUDE; }
|
||||
asleep { yylval.i=1; return MON_ALERTNESS; }
|
||||
awake { yylval.i=0; return MON_ALERTNESS; }
|
||||
m_feature { yylval.i= M_AP_FURNITURE; return MON_APPEARANCE; }
|
||||
m_monster { yylval.i= M_AP_MONSTER; return MON_APPEARANCE; }
|
||||
m_object { yylval.i= M_AP_OBJECT; return MON_APPEARANCE; }
|
||||
sanctum { yylval.i=2; return ALTAR_TYPE; }
|
||||
shrine { yylval.i=1; return ALTAR_TYPE; }
|
||||
altar { yylval.i=0; return ALTAR_TYPE; }
|
||||
up { yylval.i=1; return UP_OR_DOWN; }
|
||||
down { yylval.i=0; return UP_OR_DOWN; }
|
||||
false { yylval.i=0; return BOOLEAN; }
|
||||
true { yylval.i=1; return BOOLEAN; }
|
||||
dust { yylval.i=DUST; return ENGRAVING_TYPE; }
|
||||
engrave { yylval.i=ENGRAVE; return ENGRAVING_TYPE; }
|
||||
burn { yylval.i=BURN; return ENGRAVING_TYPE; }
|
||||
mark { yylval.i=MARK; return ENGRAVING_TYPE; }
|
||||
blood { yylval.i=ENGR_BLOOD; return ENGRAVING_TYPE; }
|
||||
blessed { yylval.i=1; return CURSE_TYPE; }
|
||||
uncursed { yylval.i=2; return CURSE_TYPE; }
|
||||
cursed { yylval.i=3; return CURSE_TYPE; }
|
||||
contained { return CONTAINED; }
|
||||
noteleport { yylval.i=NOTELEPORT; return FLAG_TYPE; }
|
||||
hardfloor { yylval.i=HARDFLOOR; return FLAG_TYPE; }
|
||||
nommap { yylval.i=NOMMAP; return FLAG_TYPE; }
|
||||
arboreal { yylval.i=ARBOREAL; return FLAG_TYPE; } /* KMH */
|
||||
shortsighted { yylval.i=SHORTSIGHTED; return FLAG_TYPE; }
|
||||
\[\ *[0-9]+\%\ *\] { yylval.i = atoi(yytext + 1); return PERCENT; }
|
||||
[+\-]?[0-9]+ { yylval.i=atoi(yytext); return INTEGER; }
|
||||
\"[^"]*\" { yytext[yyleng-1] = 0; /* Discard the trailing \" */
|
||||
^[ \t]*#.*\n { savetoken(yytext); newline(); }
|
||||
MESSAGE ST_RET(MESSAGE_ID);
|
||||
NOMAP ST_RET(NOMAP_ID);
|
||||
MAZE ST_RET(MAZE_ID);
|
||||
LEVEL ST_RET(LEVEL_ID);
|
||||
INIT_MAP ST_RET(LEV_INIT_ID);
|
||||
mazegrid ST_RET(MAZE_GRID_ID);
|
||||
solidfill ST_RET(SOLID_FILL_ID);
|
||||
mines ST_RET(MINES_ID);
|
||||
rogue ST_RET(ROGUELEV_ID);
|
||||
FLAGS ST_RET(FLAGS_ID);
|
||||
GEOMETRY ST_RET(GEOMETRY_ID);
|
||||
^MAP\r?\n { savetoken(yytext); BEGIN(MAPC); newline(); }
|
||||
obj(ect)? ST_RET(object_ID);
|
||||
OBJECT ST_RET(OBJECT_ID);
|
||||
CONTAINER ST_RET(COBJECT_ID);
|
||||
MONSTER ST_RET(MONSTER_ID);
|
||||
monster ST_RET(monster_ID);
|
||||
TRAP ST_RET(TRAP_ID);
|
||||
DOOR ST_RET(DOOR_ID);
|
||||
ROOMDOOR ST_RET(ROOMDOOR_ID);
|
||||
DRAWBRIDGE ST_RET(DRAWBRIDGE_ID);
|
||||
MAZEWALK ST_RET(MAZEWALK_ID);
|
||||
WALLIFY ST_RET(WALLIFY_ID);
|
||||
REGION ST_RET(REGION_ID);
|
||||
ALTAR ST_RET(ALTAR_ID);
|
||||
LADDER ST_RET(LADDER_ID);
|
||||
STAIR ST_RET(STAIR_ID);
|
||||
PORTAL ST_RET(PORTAL_ID);
|
||||
TELEPORT_REGION ST_RET(TELEPRT_ID);
|
||||
BRANCH ST_RET(BRANCH_ID);
|
||||
FOUNTAIN ST_RET(FOUNTAIN_ID);
|
||||
SINK ST_RET(SINK_ID);
|
||||
POOL ST_RET(POOL_ID);
|
||||
NON_DIGGABLE ST_RET(NON_DIGGABLE_ID);
|
||||
NON_PASSWALL ST_RET(NON_PASSWALL_ID);
|
||||
IF ST_RET(IF_ID);
|
||||
ELSE ST_RET(ELSE_ID);
|
||||
EXIT ST_RET(EXIT_ID);
|
||||
ROOM ST_RET(ROOM_ID);
|
||||
SUBROOM ST_RET(SUBROOM_ID);
|
||||
RANDOM_CORRIDORS ST_RET(RAND_CORRIDOR_ID);
|
||||
CORRIDOR ST_RET(CORRIDOR_ID);
|
||||
TERRAIN ST_RET(TERRAIN_ID);
|
||||
terrain ST_RET(terrain_ID);
|
||||
REPLACE_TERRAIN ST_RET(REPLACE_TERRAIN_ID);
|
||||
GOLD ST_RET(GOLD_ID);
|
||||
GRAVE ST_RET(GRAVE_ID);
|
||||
ENGRAVING ST_RET(ENGRAVING_ID);
|
||||
MINERALIZE ST_RET(MINERALIZE_ID);
|
||||
(NAME|name) ST_RET(NAME_ID);
|
||||
FOR ST_RET(FOR_ID);
|
||||
TO ST_RET(TO_ID);
|
||||
LOOP ST_RET(LOOP_ID);
|
||||
SWITCH ST_RET(SWITCH_ID);
|
||||
CASE ST_RET(CASE_ID);
|
||||
BREAK ST_RET(BREAK_ID);
|
||||
DEFAULT ST_RET(DEFAULT_ID);
|
||||
FUNCTION ST_RET(FUNCTION_ID);
|
||||
SHUFFLE ST_RET(SHUFFLE_ID);
|
||||
montype ST_RET(MONTYPE_ID);
|
||||
selection ST_RET(selection_ID);
|
||||
rect ST_RET(rect_ID);
|
||||
fillrect ST_RET(fillrect_ID);
|
||||
line ST_RET(line_ID);
|
||||
randline ST_RET(randline_ID);
|
||||
grow ST_RET(grow_ID);
|
||||
floodfill ST_RET(flood_ID);
|
||||
rndcoord ST_RET(rndcoord_ID);
|
||||
circle ST_RET(circle_ID);
|
||||
ellipse ST_RET(ellipse_ID);
|
||||
filter ST_RET(filter_ID);
|
||||
gradient ST_RET(gradient_ID);
|
||||
complement ST_RET(complement_ID);
|
||||
radial { savetoken(yytext); yylval.i=SEL_GRADIENT_RADIAL; return GRADIENT_TYPE; }
|
||||
square { savetoken(yytext); yylval.i=SEL_GRADIENT_SQUARE; return GRADIENT_TYPE; }
|
||||
dry { savetoken(yytext); yylval.i=DRY; return HUMIDITY_TYPE; }
|
||||
wet { savetoken(yytext); yylval.i=WET; return HUMIDITY_TYPE; }
|
||||
hot { savetoken(yytext); yylval.i=HOT; return HUMIDITY_TYPE; }
|
||||
solid { savetoken(yytext); yylval.i=SOLID; return HUMIDITY_TYPE; }
|
||||
any { savetoken(yytext); yylval.i=ANY_LOC; return HUMIDITY_TYPE; }
|
||||
levregion ST_RET(LEV);
|
||||
quantity ST_RET(QUANTITY_ID);
|
||||
buried ST_RET(BURIED_ID);
|
||||
eroded ST_RET(ERODED_ID);
|
||||
erodeproof ST_RET(ERODEPROOF_ID);
|
||||
trapped ST_RET(TRAPPED_ID);
|
||||
recharged ST_RET(RECHARGED_ID);
|
||||
invisible ST_RET(INVIS_ID);
|
||||
greased ST_RET(GREASED_ID);
|
||||
female ST_RET(FEMALE_ID);
|
||||
cancelled ST_RET(CANCELLED_ID);
|
||||
revived ST_RET(REVIVED_ID);
|
||||
avenge ST_RET(AVENGE_ID);
|
||||
fleeing ST_RET(FLEEING_ID);
|
||||
blinded ST_RET(BLINDED_ID);
|
||||
paralyzed ST_RET(PARALYZED_ID);
|
||||
stunned ST_RET(STUNNED_ID);
|
||||
confused ST_RET(CONFUSED_ID);
|
||||
seen_traps ST_RET(SEENTRAPS_ID);
|
||||
all ST_RET(ALL_ID);
|
||||
horizontal ST_RETF((yylval.i=1), HORIZ_OR_VERT);
|
||||
vertical { savetoken(yytext); yylval.i=2; return HORIZ_OR_VERT; }
|
||||
open { savetoken(yytext); yylval.i=D_ISOPEN; return DOOR_STATE; }
|
||||
closed { savetoken(yytext); yylval.i=D_CLOSED; return DOOR_STATE; }
|
||||
locked { savetoken(yytext); yylval.i=D_LOCKED; return DOOR_STATE; }
|
||||
nodoor { savetoken(yytext); yylval.i=D_NODOOR; return DOOR_STATE; }
|
||||
broken { savetoken(yytext); yylval.i=D_BROKEN; return DOOR_STATE; }
|
||||
secret { savetoken(yytext); yylval.i=D_SECRET; return DOOR_STATE; }
|
||||
north { savetoken(yytext); yylval.i=W_NORTH; return DIRECTION; }
|
||||
east { savetoken(yytext); yylval.i=W_EAST; return DIRECTION; }
|
||||
south { savetoken(yytext); yylval.i=W_SOUTH; return DIRECTION; }
|
||||
west { savetoken(yytext); yylval.i=W_WEST; return DIRECTION; }
|
||||
random { savetoken(yytext); yylval.i = -1; return RANDOM_TYPE; }
|
||||
random\[ { savetoken(yytext); yylval.i = -1; return RANDOM_TYPE_BRACKET; }
|
||||
none { savetoken(yytext); yylval.i = -2; return NONE; }
|
||||
align ST_RET(A_REGISTER);
|
||||
left { savetoken(yytext); yylval.i=1; return LEFT_OR_RIGHT; }
|
||||
half-left { savetoken(yytext); yylval.i=2; return LEFT_OR_RIGHT; }
|
||||
center { savetoken(yytext); yylval.i=3; return CENTER; }
|
||||
half-right { savetoken(yytext); yylval.i=4; return LEFT_OR_RIGHT; }
|
||||
right { savetoken(yytext); yylval.i=5; return LEFT_OR_RIGHT; }
|
||||
top { savetoken(yytext); yylval.i=1; return TOP_OR_BOT; }
|
||||
bottom { savetoken(yytext); yylval.i=5; return TOP_OR_BOT; }
|
||||
lit { savetoken(yytext); yylval.i=1; return LIGHT_STATE; }
|
||||
unlit { savetoken(yytext); yylval.i=0; return LIGHT_STATE; }
|
||||
filled { savetoken(yytext); yylval.i=1; return FILLING; }
|
||||
unfilled { savetoken(yytext); yylval.i=0; return FILLING; }
|
||||
regular { savetoken(yytext); yylval.i=0; return IRREGULAR; }
|
||||
irregular { savetoken(yytext); yylval.i=1; return IRREGULAR; }
|
||||
unjoined { savetoken(yytext); yylval.i=1; return JOINED; }
|
||||
joined { savetoken(yytext); yylval.i=0; return JOINED; }
|
||||
limited { savetoken(yytext); yylval.i=1; return LIMITED; }
|
||||
unlimited { savetoken(yytext); yylval.i=0; return LIMITED; }
|
||||
noalign { savetoken(yytext); yylval.i= AM_NONE; return ALIGNMENT; }
|
||||
law { savetoken(yytext); yylval.i= AM_LAWFUL; return ALIGNMENT; }
|
||||
neutral { savetoken(yytext); yylval.i= AM_NEUTRAL; return ALIGNMENT; }
|
||||
chaos { savetoken(yytext); yylval.i= AM_CHAOTIC; return ALIGNMENT; }
|
||||
coaligned { savetoken(yytext); yylval.i= AM_SPLEV_CO; return ALIGNMENT; }
|
||||
noncoaligned { savetoken(yytext); yylval.i= AM_SPLEV_NONCO; return ALIGNMENT; }
|
||||
peaceful { savetoken(yytext); yylval.i=1; return MON_ATTITUDE; }
|
||||
hostile { savetoken(yytext); yylval.i=0; return MON_ATTITUDE; }
|
||||
asleep { savetoken(yytext); yylval.i=1; return MON_ALERTNESS; }
|
||||
awake { savetoken(yytext); yylval.i=0; return MON_ALERTNESS; }
|
||||
m_feature { savetoken(yytext); yylval.i= M_AP_FURNITURE; return MON_APPEARANCE; }
|
||||
m_monster { savetoken(yytext); yylval.i= M_AP_MONSTER; return MON_APPEARANCE; }
|
||||
m_object { savetoken(yytext); yylval.i= M_AP_OBJECT; return MON_APPEARANCE; }
|
||||
sanctum { savetoken(yytext); yylval.i=2; return ALTAR_TYPE; }
|
||||
shrine { savetoken(yytext); yylval.i=1; return ALTAR_TYPE; }
|
||||
altar { savetoken(yytext); yylval.i=0; return ALTAR_TYPE; }
|
||||
up { savetoken(yytext); yylval.i=1; return UP_OR_DOWN; }
|
||||
down { savetoken(yytext); yylval.i=0; return UP_OR_DOWN; }
|
||||
false { savetoken(yytext); yylval.i=0; return BOOLEAN; }
|
||||
true { savetoken(yytext); yylval.i=1; return BOOLEAN; }
|
||||
dust { savetoken(yytext); yylval.i=DUST; return ENGRAVING_TYPE; }
|
||||
engrave { savetoken(yytext); yylval.i=ENGRAVE; return ENGRAVING_TYPE; }
|
||||
burn { savetoken(yytext); yylval.i=BURN; return ENGRAVING_TYPE; }
|
||||
mark { savetoken(yytext); yylval.i=MARK; return ENGRAVING_TYPE; }
|
||||
blood { savetoken(yytext); yylval.i=ENGR_BLOOD; return ENGRAVING_TYPE; }
|
||||
blessed { savetoken(yytext); yylval.i=1; return CURSE_TYPE; }
|
||||
uncursed { savetoken(yytext); yylval.i=2; return CURSE_TYPE; }
|
||||
cursed { savetoken(yytext); yylval.i=3; return CURSE_TYPE; }
|
||||
noteleport { savetoken(yytext); yylval.i=NOTELEPORT; return FLAG_TYPE; }
|
||||
hardfloor { savetoken(yytext); yylval.i=HARDFLOOR; return FLAG_TYPE; }
|
||||
nommap { savetoken(yytext); yylval.i=NOMMAP; return FLAG_TYPE; }
|
||||
arboreal { savetoken(yytext); yylval.i=ARBOREAL; return FLAG_TYPE; } /* KMH */
|
||||
shortsighted { savetoken(yytext); yylval.i=SHORTSIGHTED; return FLAG_TYPE; }
|
||||
mazelevel { savetoken(yytext); yylval.i=MAZELEVEL; return FLAG_TYPE; }
|
||||
premapped { savetoken(yytext); yylval.i=PREMAPPED; return FLAG_TYPE; }
|
||||
shroud { savetoken(yytext); yylval.i=SHROUD; return FLAG_TYPE; }
|
||||
graveyard { savetoken(yytext); yylval.i=GRAVEYARD; return FLAG_TYPE; }
|
||||
icedpools { savetoken(yytext); yylval.i=ICEDPOOLS; return FLAG_TYPE; }
|
||||
solidify { savetoken(yytext); yylval.i=SOLIDIFY; return FLAG_TYPE; }
|
||||
[0-9]+d[0-9]+ { char *p = strchr(yytext, 'd');
|
||||
savetoken(yytext);
|
||||
if (p) {
|
||||
*p = '\0';
|
||||
p++;
|
||||
yylval.dice.num=atoi(yytext);
|
||||
yylval.dice.die=atoi(p);
|
||||
} else { yylval.dice.num = yylval.dice.die = 1; }
|
||||
return DICE;
|
||||
}
|
||||
\[\ *[0-9]+\%\ *\] { savetoken(yytext); yylval.i = atoi(yytext + 1);
|
||||
if (yylval.i < 0 || yylval.i > 100)
|
||||
lc_error("Unexpected percentile '%li%%'", yylval.i);
|
||||
return PERCENT; }
|
||||
-[0-9]+ { savetoken(yytext); yylval.i=atoi(yytext); return MINUS_INTEGER; }
|
||||
\+[0-9]+ { savetoken(yytext); yylval.i=atoi(yytext); return PLUS_INTEGER; }
|
||||
[0-9]+\% { savetoken(yytext); yylval.i = atoi(yytext);
|
||||
if (yylval.i < 0 || yylval.i > 100)
|
||||
lc_error("Unexpected percentile '%li%%'", yylval.i);
|
||||
return SPERCENT; }
|
||||
[0-9]+ { savetoken(yytext); yylval.i=atoi(yytext); return INTEGER; }
|
||||
\"[^"]*\" { savetoken(yytext);
|
||||
yytext[yyleng-1] = 0; /* Discard the trailing \" */
|
||||
yylval.map = (char *) alloc(strlen(yytext+1)+1);
|
||||
Strcpy(yylval.map, yytext+1); /* Discard the first \" */
|
||||
return STRING; }
|
||||
\r?\n { nh_line_number++; }
|
||||
[ \t]+ ;
|
||||
'\\.' { yylval.i = yytext[2]; return CHAR; }
|
||||
'.' { yylval.i = yytext[1]; return CHAR; }
|
||||
. { return yytext[0]; }
|
||||
\$[a-zA-Z_]+ { savetoken(yytext); return handle_varstring_check(); }
|
||||
"==" { savetoken(yytext); yylval.i = SPO_JE; return COMPARE_TYPE; }
|
||||
"!=" { savetoken(yytext); yylval.i = SPO_JNE; return COMPARE_TYPE; }
|
||||
"<>" { savetoken(yytext); yylval.i = SPO_JNE; return COMPARE_TYPE; }
|
||||
"<=" { savetoken(yytext); yylval.i = SPO_JLE; return COMPARE_TYPE; }
|
||||
">=" { savetoken(yytext); yylval.i = SPO_JGE; return COMPARE_TYPE; }
|
||||
"<" { savetoken(yytext); yylval.i = SPO_JL; return COMPARE_TYPE; }
|
||||
">" { savetoken(yytext); yylval.i = SPO_JG; return COMPARE_TYPE; }
|
||||
\r?\n { newline(); }
|
||||
[ \t]+ { advancepos(yytext); }
|
||||
'\\.' { savetoken(yytext); yylval.i = yytext[2]; return CHAR; }
|
||||
'.' { savetoken(yytext); yylval.i = yytext[1]; return CHAR; }
|
||||
[-_a-zA-Z0-9]+ ST_RET(UNKNOWN_TYPE);
|
||||
. { savetoken(yytext); return yytext[0]; }
|
||||
%%
|
||||
#ifdef AMIGA
|
||||
long *alloc(n)
|
||||
@@ -232,6 +354,7 @@ FILE *input_f;
|
||||
else
|
||||
#endif
|
||||
yyin = input_f;
|
||||
if (!orig_yyin) orig_yyin = yyin;
|
||||
}
|
||||
/* analogous routine (for completeness) */
|
||||
void init_yyout( output_f )
|
||||
@@ -240,4 +363,51 @@ FILE *output_f;
|
||||
yyout = output_f;
|
||||
}
|
||||
|
||||
long
|
||||
handle_varstring_check()
|
||||
{
|
||||
struct lc_vardefs *vd;
|
||||
yylval.map = (char *) alloc(strlen(yytext)+1);
|
||||
Strcpy(yylval.map, yytext);
|
||||
if ((vd = vardef_defined(variable_definitions, yytext, 1))) {
|
||||
long l = vd->var_type;
|
||||
long a = ((l & SPOVAR_ARRAY) == SPOVAR_ARRAY);
|
||||
l = (l & ~SPOVAR_ARRAY);
|
||||
if (l == SPOVAR_INT) return (a ? VARSTRING_INT_ARRAY : VARSTRING_INT);
|
||||
if (l == SPOVAR_STRING) return (a ? VARSTRING_STRING_ARRAY : VARSTRING_STRING);
|
||||
if (l == SPOVAR_VARIABLE) return (a ? VARSTRING_VAR_ARRAY : VARSTRING_VAR);
|
||||
if (l == SPOVAR_COORD) return (a ? VARSTRING_COORD_ARRAY : VARSTRING_COORD);
|
||||
if (l == SPOVAR_REGION) return (a ? VARSTRING_REGION_ARRAY : VARSTRING_REGION);
|
||||
if (l == SPOVAR_MAPCHAR) return (a ? VARSTRING_MAPCHAR_ARRAY : VARSTRING_MAPCHAR);
|
||||
if (l == SPOVAR_MONST) return (a ? VARSTRING_MONST_ARRAY : VARSTRING_MONST);
|
||||
if (l == SPOVAR_OBJ) return (a ? VARSTRING_OBJ_ARRAY : VARSTRING_OBJ);
|
||||
if (l == SPOVAR_SEL) return (a ? VARSTRING_SEL_ARRAY : VARSTRING_SEL);
|
||||
}
|
||||
return VARSTRING;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
newline()
|
||||
{
|
||||
nh_line_number++;
|
||||
token_start_pos = 0;
|
||||
memset(curr_token, 0, 512);
|
||||
}
|
||||
|
||||
void
|
||||
savetoken(s)
|
||||
char *s;
|
||||
{
|
||||
sprintf(curr_token, "%s", s);
|
||||
advancepos(s);
|
||||
}
|
||||
|
||||
void
|
||||
advancepos(s)
|
||||
char *s;
|
||||
{
|
||||
token_start_pos += strlen(s);
|
||||
}
|
||||
|
||||
/*lev_comp.l*/
|
||||
|
||||
+1997
-1181
File diff suppressed because it is too large
Load Diff
+806
-952
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user