summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/INSTALL68
-rw-r--r--crawl-ref/source/abl-show.cc4
-rw-r--r--crawl-ref/source/beam.cc2
-rw-r--r--crawl-ref/source/dat/splev.des543
-rw-r--r--crawl-ref/source/dat/tricky.des139
-rw-r--r--crawl-ref/source/dat/vaults.des1087
-rw-r--r--crawl-ref/source/makefile.dos2
-rw-r--r--crawl-ref/source/makefile.mgw2
-rw-r--r--crawl-ref/source/makefile.unix2
-rw-r--r--crawl-ref/source/mapdef.cc4
-rw-r--r--crawl-ref/source/monstuff.cc4
-rw-r--r--crawl-ref/source/mstuff2.cc5
-rw-r--r--crawl-ref/source/spells1.cc4
-rw-r--r--crawl-ref/source/spells3.cc22
-rw-r--r--crawl-ref/source/spells3.h5
-rw-r--r--crawl-ref/source/spells4.cc17
-rw-r--r--crawl-ref/source/spells4.h2
-rw-r--r--crawl-ref/source/spl-cast.cc14
-rw-r--r--crawl-ref/source/spl-data.h10
-rw-r--r--crawl-ref/source/spl-util.cc3
20 files changed, 1034 insertions, 905 deletions
diff --git a/crawl-ref/INSTALL b/crawl-ref/INSTALL
index e29e8a10d2..c962fd36c6 100644
--- a/crawl-ref/INSTALL
+++ b/crawl-ref/INSTALL
@@ -94,11 +94,11 @@ Building:
packaged in a zip archive, it's safe to comment out SAVE_PACKAGE_CMD
and LOAD_UNPACKAGE_CMD.
-* If you don't have flex or bison, edit makefile.unix and set DOYACC
- := n. If you want to use byacc instead of bison, edit makefile.unix
- and set YACC := byacc. On some Linuxes you may not have lex
- symlinked to flex, in which case you'll have to set LEX := flex in
- makefile.unix.
+* If you don't have (or don't want to use) flex or bison, edit
+ makefile.unix and set DOYACC := n. If you want to use byacc instead
+ of bison, edit makefile.unix and set YACC := byacc. On some Unixes,
+ you may not have flex (but have some other lex), in which case
+ you'll have to set LEX := lex in makefile.unix.
* Run make to build the normal (non-wizard) Crawl. On systems such as
Solaris, you may have to use gmake for GNU make. Make sure your make
@@ -113,7 +113,8 @@ Building:
* If you have Lua, you can edit AppHdr.h and uncomment
// #define CLUA_BINDINGS
then add -llua to your LIB = line in makefile.unix, and rebuild to
- compile with Lua support.
+ compile with Lua support. See the section on Lua (below) for more
+ information.
Building on Mac OS X
@@ -154,15 +155,13 @@ Mac build instructions below.
with Lua support.
-Building on Windows
--------------------
+Building on Windows (MinGW)
+---------------------------
-NOTE: Building for Windows+MinGW on Windows 9x/ME may work, but we've
-not tested it. You may be better off using the DOS build instructions
-if you're on 9x/ME.
-
-We've also not tested or updated the makefile for Borland C++. We
-strongly recommend using MinGW if possible.
+NOTE: You cannot build Windows binaries on Windows 9x/ME using the
+MinGW makefile supplied. If you're on 9x/ME, you can choose to use the
+Cygwin build instructions, or build a binary on a Windows NT/2k/XP
+system (the binary will run on 9x), or build a DOS binary.
* Install MinGW from http://www.mingw.org. The MinGW 5.0.2 installer
is best so you don't have to fiddle with individual packages (you
@@ -196,8 +195,24 @@ strongly recommend using MinGW if possible.
subdirectory.
-Building on DOS
----------------
+Building on Windows (cygwin)
+----------------------------
+
+* Get Cygwin from http://www.cygwin.com/. When installing, ensure that
+ the following packages are selected: gcc, g++, make, flex, bison. If
+ you'd like to build from svn, install the svn client. You may also
+ want to install diff and patch if you'd like to apply third party
+ patches, or create your own.
+
+* Once Cygwin is installed, open a Cygwin bash shell (use the Start
+ menu, do not double-click bash.exe in Explorer). cd to the Crawl
+ source directory.
+
+* Follow the Linux build instructions to build Crawl.
+
+
+Building for DOS (djgpp)
+------------------------
* Install djgpp from http://www.delorie.com/djgpp/. Don't forget to
include C++ support when the Zip picker asks for what you want. You
@@ -272,13 +287,28 @@ This also depends on how you install Lua - some package management
systems build just the plain old liblua.so even for pre 5.1 Lua. If in
doubt, try both "-llua -llualib" and "-llua".
-On many Linuxes, the package management system installs Lua libraries
-including the version number, so the linker option becomes something
-like:
+On many Linuxes (Debian, for instance), the package management system
+installs Lua libraries including the version number, so the linker
+option becomes something like:
LIB = -llua50
+Lua include path:
+
+On Unix, Lua headers may be installed in /usr/include (unlikely), or
+in a subdirectory of /usr/include (such as /usr/include/lua50/). If
+the headers are in a subdirectory, you need to add this directory to
+the include path in your makefile.unix:
+
+INCLUDES = -I/usr/include/ncurses -I/usr/include/lua50
+
+On other platforms, the Lua headers should usually be installed in
+your compiler's include directory, or a subdirectory. If it's in a
+subdirectory, you'll need to add the full directory path to your
+includes line.
+
+
Getting Lua:
On Unixes your package management system is the best way to get Lua.
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index 01eb25959d..98090b2818 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -955,7 +955,9 @@ bool activate_ability(void)
break;
case ABIL_TSO_SMITING:
- cast_smiting( (2 + skill_bump(SK_INVOCATIONS)) * 6 );
+ if (your_spells( SPELL_SMITING, (2 + skill_bump(SK_INVOCATIONS)) * 6,
+ false ) == SPRET_ABORT)
+ return (false);
exercise( SK_INVOCATIONS, (coinflip()? 3 : 2) );
break;
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 7174b86293..3809c0575d 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -540,7 +540,7 @@ static void zappy( char z_type, int power, struct bolt &pbolt )
pbolt.colour = LIGHTMAGENTA;
pbolt.range = random2(5) + 8;
pbolt.damage = dice_def( 1, 3 + power / 5 ); // 25: 1d8
- pbolt.hit = 1500; // hits always
+ pbolt.hit = AUTOMATIC_HIT; // hits always
pbolt.type = SYM_ZAP;
pbolt.flavour = BEAM_MMISSILE; // unresistable
pbolt.obvious_effect = true;
diff --git a/crawl-ref/source/dat/splev.des b/crawl-ref/source/dat/splev.des
index e833e32cd7..fd5725fb40 100644
--- a/crawl-ref/source/dat/splev.des
+++ b/crawl-ref/source/dat/splev.des
@@ -188,14 +188,15 @@
# does the same thing - whitespace is not significant.
# SUBST: ? = T:20 U V
# makes T twice as likely to be used as U or V (the default weight
-# is 10). Note that there has to be at least one space after T:20
-# and that whitespace in T:20 is not permitted.
+# is 10). Note that there has to be at least one space before and after
+# T:20 and that whitespace in T:20 is not permitted.
# SUBST: ? : TUV
# replaces occurrences of ? with one of TUV, and guarantees that all
# occurrences of ? will get the same replacement symbol.
-# The placeholder symbol can be any non-space, printable character apart from
-# : and =. The replacement symbols can be any non-space printable character,
-# including : and = ("SUBST: ? = +=:123def" is valid).
+#
+# The placeholder and replacement symbols can be any non-space, printable
+# character, including : and =, apart from commas - "SUBST: = = +=:123def" is
+# valid.
#
# SUBST: lines can safely replace symbols with themselves:
#
@@ -1156,18 +1157,13 @@ KFEAT: Z = weight:2 teleport trap / .
KFEAT: z = teleport trap
MONS: naga / nothing, greater naga / nothing, guardian naga / nothing
MONS: naga warrior / nothing, naga mage / nothing
-SHUFFLE: 123
-SHUFFLE: 45
-SUBST: ' : ' x
-SUBST: " : " x
+SUBST: ':'x, ":"x
SUBST: ' = .:250 1 2 3 4:15 5:5
SUBST: " = .:250 1 2 3 4:5 5:15
-SUBST: X = x c + .
-SUBST: Y = x c +
-SUBST: T : T U V .:30 b
-SUBST: _ : ! .
-SUBST: ! : ! . x
-SUBST: ! = x .:2
+SUBST: X=xc.+, Y=xc+
+SUBST: T : T U V .:30 b
+SUBST: _:.!, !:!.x, !=x .:2
+SHUFFLE: 123, 45
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -1210,40 +1206,40 @@ ENDMAP
############################################################################
# snake_pit
+# now slightly randomised (dp) - changes welcome
-NAME: snake_pit
-PLACE: Snake:5
+NAME: snake_pit
+PLACE: Snake:5
ORIENT: southwest
-
-# Rotation makes this look really bad if the console font is not square.
-FLAGS: no_rotate
-
-# Hey, this looks a bit like a face ...
-
+FLAGS: no_rotate
+MONS: greater naga / nothing, naga, naga mage / nothing, naga warrior / nothing
+SUBST: c = c .:1
+SUBST: v = v .:1
+SUBST: v = x
MAP
xxxxxxxxxxxxxxxxxxxxxxx..@.xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx.............xxxxxxxx
-xxxxxxxxxxxxxx....x.............x..xxxxx
-xxxxxxxxxxxx....2.x.............x.2..xxx
-xxxxxxxxxxx.....2.x....x.....x..x..3.xxx
-xxxxxxxxxxx.....22x.............xx.2..xx
-xxxxxxxxxxx.......xx..x........xx..3..xx
-xxxxxxxxxx.....x23.xx....T...xxx.44...xx
-xxxxxxxxxx......4.4.x.........x.333....x
-xxxxxxxxxx......3.x4...x.......4x4.....x
-xxxxxxxxxx.......3.......x.............x
-xxxxxxxxxx..c......3.........x.......c.x
-xxxxxxxxx...cc...................3..cc.x
-xxxxxxxxx...cc..........4.4.........cc.x
-xxxxxxxxx...cc...3...x........2.....cc.x
+xxxxxxxxxxxxxx....v.............v..xxxxx
+xxxxxxxxxxxx....2.v.............v.2..xxx
+xxxxxxxxxxx.....2.v....v.....v..v.33.xxx
+xxxxxxxxxxx.....22v.............vv.2..xx
+xxxxxxxxxxx.......vv..v........vv.33..xx
+xxxxxxxxxx.....x233vv....T...vvv4444..xx
+xxxxxxxxxx......4444v.........v.333....x
+xxxxxxxxxx......33v4...v.......4x4.....x
+xxxxxxxxxx.......334.....v.....4333....x
+xxxxxxxxxx..c......3.3..4.4..v.......c.x
+xxxxxxxxx...cc.....1...1.1.1...133..cc.x
+xxxxxxxxx...cc....3.....4.4.........cc.x
+xxxxxxxxx...cc...3...v........2.....cc.x
xxxxxxxxx...cc.........1...1.......cc..x
xxxxxxxxxx..cc.....1.....1.....1..ccc.xx
-xxxxxxxxxx...ccc..................cc..xx
+xxxxxxxxxx...ccc......3333333.....cc..xx
xxxxxxxxxx....cccc....3333333.....cc..xx
-xxxxxxxxxx.....ccccccc...........cc...xx
-xxxxxxxxxx........cccccccO...ccccc....xx
+xxxxxxxxxx.....cccccc............cc...xx
+xxxxxxxxxx........ccccc..O....cccc....xx
xxxxxxxxxxx........cccccccccccccc....xxx
-xxxxxxxxxxx.........cccccccccccc.....xxx
+xxxxxxxxxxx..........ccccccccccc.....xxx
xxxxxxxxxxxxx.......................xxxx
xxxxxxxxxxxxxxxx..................xxxxxx
xxxxxxxxxxxxxxxxxxxxx.......xxxxxxxxxxxx
@@ -1257,17 +1253,27 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
-MONS: greater naga, naga, naga mage, naga warrior
-MONS: random, random, random
############################################################################
# elf_hall
+# now slightly randomised (dp) - changes welcome
-NAME: elf_hall
-PLACE: Elf:7
-ORIENT: northwest
-FLAGS: no_rotate
-
+NAME: elf_hall
+PLACE: Elf:7
+ORIENT: northwest
+FLAGS: no_rotate
+MONS: deep elf high priest, deep elf demonologist, deep elf annihilator
+MONS: deep elf sorcerer, deep elf death mage
+SUBST: 1=1., 2=2., 3=3., 4=4., 5=5.
+SHUFFLE: 23, 45
+KMONS: $ = weight:450 nothing / deep elf sorcerer / deep elf annihilator
+KMONS: * = weight:300 nothing / deep elf annihilator / deep elf death mage
+KMONS: | = weight:600 nothing / deep elf demonologist / deep elf death mage
+SUBST: v = v .:2
+SUBST: v : xvb
+SUBST: | = | *:2
+SUBST: $ = $:20 *:4 |:1
+SUBST: * = * |:3
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -1281,36 +1287,32 @@ xxxxxxxxxxxxxxxxxcc*|*|*|**|||||c$ccxxxx
xxxxxxxxxxxxxxxxcc*$*|*|*|*|||||c$$ccxxx
xxxxxxxxxxxxxxxcc*$|*$***$$|||||c|$$ccxx
xxxxxxxxxxxxxxcc*$*|**ccccccccccc$$$$ccx
-xxxxxxxxxxxxxxc*|*$*$ccc.....2..c+$|$$cx
+xxxxxxxxxxxxxxc*|*$*$ccc..2..2..c+$|$$cx
xxxxxxxxxxxxxxc$*$*ccc...........c$$$$cx
-xxxxxxxxxxxxxxc||**cc...5.......4cc$|$cx
-xxxxxxxxxxxxxxc*$$cc........3..ccccccccx
+xxxxxxxxxxxxxxc||**cc...5.5...4.4cc$|$cx
+xxxxxxxxxxxxxxc*$$cc..3.....3..ccccccccx
xxxxxxxxxxxxxxc$+ccc.....2....cc.....5cx
-xxxxxxxxxxxxxxc$c....5.......cc.......cx
+xxxxxxxxxxxxxxc$c....5.....5.cc....5..cx
xxxxxxxxxxxxxxccc......5....cc..2....ccx
-xxxxxxxxxxxxxxxxc..........cc.......ccxx
-xxxxxxxxxxxxxxxcc..1..U..........4..ccxx
+xxxxxxxxxxxxxxxxc....5...2.cc.......ccxx
+xxxxxxxxxxxxxxxcc..1..U.....3.4..4..ccxx
xxxxxxxxxxxxxxcc.....................ccx
-xxxxxxxxxxxxxxc...........3...........cx
-xxxxxxxxxxxxxxc.......2.......3.......cx
+xxxxxxxxxxxxxxc..2........3........5..cx
+xxxxxxxxxxxxxxc.......2..2....3.......cx
xxxxxxxxxxxxxxc..2................2..5cx
-xxxxxxxxxxxxxxc......x.........x......cx
-xxxxxxxxxxxxxxc.....xx.........xx.....cx
-xxxxxxxxxxxxxxc2...xxx....1....xxx.4..cx
-xxxxxxxxxxxxxxc..xxxx...........xxxx..cx
-xxxxxxxxxxxxxxc.xxx.....cc.cc.....xxx.cx
-xxxxxxxxxxxxxxc.x.....cccc.cccc.....x.cx
-xxxxxxxxxxxxxxc.3...cccxxc.cxxccc.3...cx
+xxxxxxxxxxxxxxc......v.........v..2...cx
+xxxxxxxxxxxxxxc..2..vv..1...1..vv.....cx
+xxxxxxxxxxxxxxc2...vvv....1....vvv.4.4cx
+xxxxxxxxxxxxxxc..vvvv...........vvvv..cx
+xxxxxxxxxxxxxxc.vvv.....cc.cc.....vvv.cx
+xxxxxxxxxxxxxxc.v.3...cccc.cccc.3...v.cx
+xxxxxxxxxxxxxxc.3...cccxxc.cxxccc.3.3.cx
xxxxxxxxxxxxxxc...cccxxxxc.cxxxxccc...cx
xxxxxxxxxxxxxxc.cccxxxxxxc.cxxxxxxccc.cx
xxxxxxxxxxxxxxcccxxxxxxxxc.cxxxxxxxxcccx
xxxxxxxxxxxxxxxxxxxxxxxxxx@xxxxxxxxxxxxx
ENDMAP
-MONS: deep elf high priest, deep elf demonologist
-MONS: deep elf annihilator, deep elf sorcerer
-MONS: deep elf death mage
-MONS: random, random
############################################################################
## alternative elf halls: gauntlets (David)
@@ -1400,9 +1402,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ~ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$ce**|||**eccccccce%*%%%*%ec$$ccccxc
@@ -1444,9 +1444,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$ce%*%%%%%ecccccc=e**|||**ec$$ccccxc
@@ -1488,9 +1486,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$ce%%%%%*%eccccccce**|||**ec$$=cccxc
@@ -1532,9 +1528,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$ce%*%%%%%eccccccce**|||**ec$$ccccxc
@@ -1576,9 +1570,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$cd%%%%%%%dc==c===e%%%%%%%ec$$ccccxc
@@ -1620,9 +1612,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$ce%%%%%%%eccccccce**|||**ec$$ccccxc
@@ -1664,9 +1654,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$cd|*|||**dcccccccd*||*|**dc$$ccccxc
@@ -1708,9 +1696,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$ce*|||||*ec==ccc=e*|||||*ec$$ccccxc
@@ -1752,9 +1738,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxcccc$$=e**|||**eccccccce%%|%|%%e=$$ccccxc
@@ -1796,9 +1780,7 @@ MONS: deep elf death mage
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe
SUBST: ~ = ^ .:30
-SUBST: ! = 1 5
-SUBST: ? = . ?
-SUBST: ? : 2 3
+SUBST: !=15, ?=.?, ?:23
MAP
ccccccccccccccccccccccccccccccccccccccccccc
cxccc====ccccc=======cccc====ccccccccccccxc
@@ -1830,78 +1812,80 @@ ENDMAP
##############################################################################
# slime_pit
-
-NAME: slime_pit
-PLACE: Slime:$
-ORIENT: encompass
-
-# Slime pit take is reduced pending an increase in difficulty of this
-# subdungeon. -- bwr
-
-MAP
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..xxxx.........xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx....................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxx......................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxx..........................x.xxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxx............................xxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxx.............................xxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxx.................................xxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxx..................................xxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxx....(................................xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxx......................................xxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxx..........................................xxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxx..........................................xxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxx............................................xxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxx............................................xxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxx.....................ccc..ccc............]......xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxx...................cccc2ccccc...................xxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxx...................cc*cc..cc*cc....................xxxxxxxxxxxxxxx
-xxxxxxxxxxxxxx..................cc***cc4c***cc..................xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxx..................cc*|*cc..cc*|*cc..................xxxxxxxxxxxxxxx
-xxxxxxxxxxxxx.................cc*|P|*c4cc*|P|*cc.................xxxxxxxxxxxxxxx
-xxxxxxxxxxxxx.................cc**|*cc..cc*|**cc....................xxxxxxxxxxxx
-xxxxxxxxxxxx..................ccc**c|cc4c|c**ccc...................xxxxxxxxxxxxx
-xxxxxxxxxxxx..................cccccccc..cccccccc....................xxxxxxxxxxxx
-xxxxxxxxxxx...................c.4.c.4.1..4.c.4.c.....................xxxxxxxxxxx
-xxxxxxxxxxx...................2.c.4.c..3.c.4.c.2.....................xxxxxxxxxxx
-xxxxxxxxxxx..........)........cccccccc..cccccccc.....................xxxxxxxxxxx
-xxxxxxxxxxx...................ccc**c|cc4c|c**ccc.....................xxxxxxxxxxx
-xxxxxxxxxx....................cc**|*cc..cc*|**cc....................xxxxxxxxxxxx
-xxxxxxxxxx....................cc*|P|*c4cc*|P|*cc....................xxxxxxxxxxxx
-xxxxxxxxxx.....................cc*|*cc..cc*|*cc....................xxxxxxxxxxxxx
-xxxxxxxxxxx.....................cc***cc4c***cc.....................xxxxxxxxxxxxx
-xxxxxxxxxxxx.....................cc*cc..cc*cc......................xxxxxxxxxxxxx
-xxxxxxxxxxxxx.....................cccc2ccccc......................xxxxxxxxxxxxxx
-xxxxxxxxxxxxxx.....................ccc..ccc.......................xxxxxxxxxxxxxx
-xxxxxxxxxxxxxx...........................................[.........xxxxxxxxxxxxx
-xxxxxxxxxxxxx......................................................xxxxxxxxxxxxx
-xxxxxxxxxxxxx..............................................xxxxx...xxxxxxxxxxxxx
-xxxxxxxxxxxxxx...........................................xxxxxxxx.xxxxxxxxxxxxxx
-xxxxxxxxxxxxxx..........................................xxxxxxxxx.xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx........................................xxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx.........................................xxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx.......................................xxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx......................................xxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx......................................xxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx.....................................xxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx.............................}......xxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxx.................................xxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxx..............................xxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxx..............................xxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxx............................xxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxx...........{........xxx..xxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.........xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# now slightly randomised (dp) - changes welcome
+
+NAME: slime_pit
+PLACE: Slime:$
+ORIENT: encompass
+MONS: royal jelly, acid blob, great orb of eyes / nothing
+SUBST: ' : ' .:1, ' : ' x:1, ' = .x
+SUBST: " : " .:3, " = .c
+SHUFFLE: ([{
+# of what use are the exits?
+MAP
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''xxxx''''...''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxx'''..'''''........'''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxx'.....................'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxx'.......................''x'xxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxx'..........................'.xxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxx'............................'xxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxx'.............................'''xxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxx'...............................''xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx''..(..............................''xxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxx'''....................................''xxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxx'.........................................'xxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxx''.........................................'xxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxx'...........................................'xxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxx''xx'..........................................'xxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxx'..''................""""."""""...........]....''xxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxx'x.................."cccc2ccccc".................'xxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxx'.'................"cc*cc..cc*cc".................''xxxxxxxxxxxxxxx
+xxxxxxxxxxxxx'................."cc***cc4c***cc".................xxxxxxxxxxxxxxxx
+xxxxxxxxxxxxx'................"cc*|*cc..cc*|*cc"................'xxxxxxxxxxxxxxx
+xxxxxxxxxxxx''..............."cc*|P|*c4cc*|P|*cc"...............'xxxxxxxxxxxxxxx
+xxxxxxxxxxxx'................"cc**|*cc..cc*|**cc"................'''xxxxxxxxxxxx
+xxxxxxxxxxxx'................"ccc**c|cc4c|c**ccc"..................xxxxxxxxxxxxx
+xxxxxxxxxxx'................."cccccccc.3cccccccc"..................'xxxxxxxxxxxx
+xxxxxxxxxxx'................."c.4.c.4.1..4.c.4.c"..................''xxxxxxxxxxx
+xxxxxxxxxxx'..................2.c.4.c....c.4.c.2....................'xxxxxxxxxxx
+xxxxxxxxxx'..........)......."cccccccc3.cccccccc"...................'xxxxxxxxxxx
+xxxxxxxxxx'.................."ccc**c|cc4c|c**ccc"...................'xxxxxxxxxxx
+xxxxxxxxxx'.................."cc**|*cc..cc*|**cc"..................'xxxxxxxxxxxx
+xxxxxxxxx'..................."cc*|P|*c4cc*|P|*cc"..................'xxxxxxxxxxxx
+xxxxxxxxx''..................."cc*|*cc..cc*|*cc"..................'xxxxxxxxxxxxx
+xxxxxxxxxxx'..................."cc***cc4c***cc"...................'xxxxxxxxxxxxx
+xxxxxxxxxxxx'..................."cc*cc..cc*cc"....................'xxxxxxxxxxxxx
+xxxxxxxxxxxx'...................."cccc2ccccc"....................'xxxxxxxxxxxxxx
+xxxxxxxxxxxxx'...................."""".""""".....................'xxxxxxxxxxxxxx
+xxxxxxxxxxxxx'...........................................[........'xxxxxxxxxxxxx
+xxxxxxxxxxxx''..............................................'''....'xxxxxxxxxxxx
+xxxxxxxxxxxx'.............................................''xxx''.'xxxxxxxxxxxxx
+xxxxxxxxxxxxx'..........................................''xxxxxxx.xxxxxxxxxxxxxx
+xxxxxxxxxxxxx'''.......................................'xxxxxxxxx.xxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxx'......................................'xxxxxxxxx'xxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxx'.......................................'xxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxx''.....................................'xxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxx'.....................................'xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxx''....................................'xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxx'...................................'xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxx'............................}......'xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx''................................'xxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxx'.............................''xxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxx'.............................'xxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxx'......................''...'xxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxx'''''........{.......'xx'..xxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'''............'xxxx''xxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''....'....'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''''x...''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -1911,9 +1895,6 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
-MONS: royal jelly, acid blob, great orb of eyes
-MONS: random, random, random, random
-
##############################################################################
# The Hall of Blades
@@ -1921,7 +1902,8 @@ MONS: random, random, random, random
NAME: hall_of_blades
PLACE: Blade
ORIENT: north
-
+MONS: dancing weapon
+SHUFFLE: cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -1961,8 +1943,6 @@ xxxxxxxxcccc.............................cccccccccccccccccccccccccccccccxxxxxxxx
xxxxxxxxcccccccccccccccccccccccccccccc.@.cccccccccccccccccccccccccccccccxxxxxxxx
ENDMAP
-MONS: dancing weapon
-MONS: random, random, random, random, random, random
##############################################################################
# hall_of_Zot
@@ -2504,35 +2484,37 @@ MONS: random, random
#############################################################################
# Swamp:5
+# now slightly randomised (dp) - changes welcome
-NAME: swamp
-PLACE: Swamp:5
-ORIENT: southeast
-FLAGS: no_rotate
-
+NAME: swamp
+PLACE: Swamp:5
+ORIENT: southeast
+FLAGS: no_rotate
+MONS: swamp dragon / nothing, swamp drake / nothing, hydra / nothing
+SHUFFLE: 12
+SUBST: ' = xc
# NB - most of the 'x's here will be set to water in dungeon.cc
-
MAP
xxxxxxxxxxx@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxx2xxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxx2xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxx2x.xxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxx2x2xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxcc.ccxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxcc...ccxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxcc3.2..ccxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxcc.1.3.2.ccxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxccc....1.1cccxxxxxxxxxxxxxxxxxxxxxx
-xxxxxcc.1.32....ccxxxxxxxxxxxxxxxxxxxxxx
-xxxxxcc...3..1.3ccxxxxxxxxxxxxxxxxxxxxxx
-xxxxxcc2.1.3..2.ccxxxxxxxxxxxxxxxxxxxxxx
-xxxxxccc33..1..cccxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxcccc3O3ccccxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxcccccccccxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxcccccccxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxcccxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxcc3.2ccxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxx'c3.2.3c'xxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxx'c11.3322c''xxxxxxxxxxxxxxxxxxxxxx
+xxxxx'cc...21.1cccxxxxxxxxxxxxxxxxxxxxxx
+xxxxx'c.13321.1.cc'xxxxxxxxxxxxxxxxxxxxx
+xxxx'cc31333.113cc'xxxxxxxxxxxxxxxxxxxxx
+xxxx'cc22113.223ccxxxxxxxxxxxxxxxxxxxxxx
+xxxxx'cc3333113cc'xxxxxxxxxxxxxxxxxxxxxx
+xxxxx'cccc3O3ccc'xxxxxxxxxxxxxxxxxxxxxxx
+xxxxxx'cccccccc'xxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxx''ccccc'xxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxx''cc'xxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxx'xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -2549,8 +2531,37 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
-MONS: swamp dragon, swamp drake, hydra
-MONS: random, random, random, random
+#############################################################################
+# Swamp:5 alternative (dp)
+
+NAME: swamp_alternative
+PLACE: Swamp:5
+ORIENT: float
+MONS: swamp dragon, swamp drake, hydra, firedrake
+ITEM: nothing
+SUBST: 1=1., 2=2., 3=3., 4=4.
+SHUFFLE: Od, 123
+SUBST: l=l .:2, '=.x, "=cx, _=c.
+# NB - most of the 'x's here will be set to water in dungeon.cc
+MAP
+xxx@xxxxxxx@xxxxxxxxxxx
+xxx1'xxxxxxx2'xxxxxxxxx
+xxxx1xxxxxx2'xxxxxxxxxx
+xxxx.xxxxxx.xxxxxxxxxxx
+xx'2x3.x''3xxxxxxxxxxxx
+xx''x"c..1""""xxxxxxxxx
+xxxx""c".ccccc""xxx'3xx
+xxx"cc_.2lll.ccc""2.'3x
+xx"cc..33ll..2._c1'xxx@
+x"cc.1..lll...1..""xxxx
+x"c....llllll.1.2c"xxxx
+x"cc..l4llllll..cc"xxxx
+xx"ccll.llll.4lcc"xxxxx
+xxx"cccO.lld.ccc"xxxxxx
+xxxx""cccccccc""xxxxxxx
+xxxxxx""""""""xxxxxxxxx
+ENDMAP
+
##############################################################################
# Portal vaults
@@ -2590,7 +2601,7 @@ NAME: david_orc_1_choice
TAGS: orc_entry
MONS: orc, warg / orc priest / orc warrior, orc warrior / orc
ITEM: % / scroll of teleport / scroll of remove curse / scroll of identify
-ITEM: % / weight:2 * / scroll of blinking / scroll of recharging / scroll of fear
+ITEM: % / w:2 * / scroll of blinking / scroll of recharging / scroll of fear
SHUFFLE: %1
ORIENT: float
MAP
@@ -2708,7 +2719,7 @@ NAME: david_orc_5
TAGS: orc_entry
ORIENT: float
KFEAT: C = altar of Yredelemnul / altar of Makhleb / altar of Trog
-MONS: orc priest, orc / weight:5 orc warrior / weight:1 orc knight
+MONS: orc priest / nothing, orc / w:5 orc warrior / w:1 orc knight
SUBST: x : cxv
SUBST: ( = ( .
SUBST: ) = ) .
@@ -2730,7 +2741,7 @@ NAME: erik_orc_1
TAGS: orc_entry
MONS: orc, orc priest/orc wizard, weight:50 orc warrior/ogre, swamp drake
# The drake's name is Bobby. Since you did ask.
-KITEM: 1 = sausage / nothing / animal skin / potion of confusion / potion of paralysis / potion of slowing / potion of degeneration / weight:2 potion of speed / weight:2 potion of might
+KITEM: 1 = sausage / nothing / animal skin / potion of confusion / potion of paralysis / potion of slowing / potion of degeneration / w:2 potion of speed / w:2 potion of might
ITEM: club, potion of confusion, slice of pizza, sausage / weight:40 nothing
ITEM: potion of confusion / potion of water
SHUFFLE: defO
@@ -2866,16 +2877,17 @@ MONS: weight:20 nothing / weight:30 human / necromancer / wizard
ORIENT: float
SHUFFLE: !=
SUBST: ! = x
+SUBST: ' : cxv
MAP
-xxxxx.@.xxxxx
-x...+...x...x
-x...x...x...x
-x!x=x111x...x
-@.x.x111+.O.x
-x.x.x111x...x
-x.x.x...x...x
-x.+.x...x...x
-xxxxx.@.xxxxx
+xxxxx.@.'''''
+x...+...'...'
+x...x...'...'
+x!x=x111'...'
+@.x.x111+.O.'
+x.x.x111'...'
+x.x.x...'...'
+x.+.x...'...'
+xxxxx.@.'''''
ENDMAP
##############################################################################
@@ -2927,7 +2939,7 @@ ENDMAP
NAME: david_vaults_4
TAGS: vault_entry
ORIENT: float
-SHUFFLE: 12345
+SHUFFLE: 123456
MONS: dragon / golden dragon / ice dragon / iron dragon / shadow dragon / storm dragon
MONS: freezing wraith / shadow wraith / wight / wraith
MONS: deep troll / iron troll / rock troll / troll
@@ -2935,13 +2947,8 @@ MONS: cyclops / ettin / fire giant / frost giant / hill giant / stone giant / ti
MONS: necromancer / shapeshifter / vault guard / wizard
MONS: nothing
MONS: shapeshifter / weight:30 nothing
-SUBST: 1 = 1 .
-SUBST: 2 = 2 .
-SUBST: 3 = 3 .
-SUBST: 4 = 4 .
-SUBST: 5 = 5 .
-SUBST: * : * % .
-
+SUBST: 1=.1, 2=.2, 3=.3, 4=.4, 5=.5, *:*.%
+SUBST: x : xcv
MAP
@..........@
.xxxxxxxxxx.
@@ -2985,7 +2992,7 @@ NAME: erik_vaults_1
TAGS: vault_entry
MONS: dancing weapon
ORIENT: float
-
+SHUFFLE: vc
MAP
.............
.............
@@ -3006,7 +3013,7 @@ NAME: erik_vaults_2
TAGS: vault_entry
MONS: vault guard
ORIENT: float
-
+SHUFFLE: vx
MAP
vvvvvv.vvvvvv
vvvvvv.vvvvvv
@@ -3036,17 +3043,17 @@ ENDMAP
#
NAME: david_lair_1
TAGS: lair_entry
-MONS: giant lizard, giant snail / elephant slug
-MONS: yak / weight:2 death yak, plant / fungus
+MONS: giant lizard / sheep, giant snail / elephant slug / nothing
+MONS: nothing / yak / weight:2 death yak, plant / fungus / w:20 nothing
SHUFFLE: 12
ORIENT: float
MAP
xxxx..@..xxxx
xx.........xx
-x...2...44..x
-...4..1......
+x..42...44..x
+..44..1......
@....1O3....@
-..........4..
+...4......4..
x...4..2....x
xx.........xx
xxxx..@..xxxx
@@ -3055,19 +3062,20 @@ ENDMAP
##############################################################################
# Shrubbed Lair entry
#
-NAME: david_lair_2
-TAGS: lair_entry
-MONS: plant, firedrake
+NAME: david_lair_2
+TAGS: lair_entry
+MONS: plant, firedrake
+SUBST: ' = 1.
ORIENT: float
MAP
xxxxxxxxxxxxx
xx111111111xx
-x112..111111x
-x11.O..111...
-x11...111...@
-x111111......
-x1..11......x
-xx.........xx
+x112.'111111x
+x11.O.'111''.
+x11'..111'..@
+x111111''....
+x1''11......x
+xx.''..'...xx
xxxx..@..xxxx
ENDMAP
@@ -3076,11 +3084,11 @@ ENDMAP
#
NAME: david_lair_3
TAGS: lair_entry
-MONS: weight:50 nothing / weight:30 giant slug / weight:30 giant snail
-MONS: weight:100 nothing / weight:40 yak / sheep / death yak
-MONS: weight:100 nothing / weight:20 giant iguana / weight:20 giant lizard / gila monster / komodo dragon
+MONS: w:50 nothing / w:30 giant slug / w:30 giant snail
+MONS: w:100 nothing / w:40 yak / sheep / death yak
+MONS: w:100 nothing / w:20 giant iguana / w:20 giant lizard / gila monster / komodo dragon
MONS: green rat / grey rat / orange rat / quokka / rat
-MONS: weight:90 nothing / weight:30 giant frog / blink frog / giant brown frog / spiny frog
+MONS: w:90 nothing / w:30 giant frog / blink frog / giant brown frog / spiny frog
SHUFFLE: 12345
ORIENT: float
MAP
@@ -3161,17 +3169,17 @@ ENDMAP
#
NAME: erik_lair_3
TAGS: lair_entry
-MONS: weight:50 troll / Snorg, weight:30 hound / jackal / weight:20 war dog
+MONS: w:50 troll / Snorg, w:30 hound / jackal / w:20 war dog
ORIENT: float
SUBST: ? = w.
MAP
-.@........ww?www?.....
+.@........wwwwww?.....
..?.?.?..wwwwwww.?..?.
..??w..wwwwwwwww?.??..
-...??w.wwwwwww??www?..
-...wwwwwwwwwwwwwww??..
-..wwwwww?wwwww2wwww..@
-..wwwwwwww....wwww???.
+...??w.wwwwwwww?www?..
+...wwww?wwwwwwwwww??..
+..wwwwww??w??w2wwww..@
+..wwwwww??....wwww???.
......1..2.2O2.wwww...
..?wwwww???2.2www.ww?.
.....wwww2..w.2www....
@@ -3187,8 +3195,8 @@ ENDMAP
#
NAME: erik_lair_4
TAGS: lair_entry
-MONS: steam dragon/mottled dragon/swamp drake
-MONS: weight:20 giant iguana/komodo dragon/giant gecko/giant lizard
+MONS: steam dragon / mottled dragon / swamp drake
+MONS: w:20 giant iguana / komodo dragon / giant gecko / giant lizard / nothing
FLAGS: no_rotate
SUBST: ? = x.c
SHUFFLE: %*RO
@@ -3196,9 +3204,9 @@ ORIENT: float
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxx?xxx?x?xx?x.2xx??xx?x*?xxx?.2.xxxx
+xxxxxxxxxxxxxxx?xxx?x?xx?x.2xx?xxx?x*?xxx?.2.xxxx
xxxxxxxxxxxxxxx.2.......?xx.x.?xxx?.??xxxx?x.?xxx
-xxxxxxxxxxxxx?....xxx...2....??????..??x?x..%xxxx
+xxxxxxxxxxxxx?....xxx...2....??????..????x..%xxxx
xx?xx???xxxxx..xx??xx??..........?...???..??x=.?x
@......xxx.2.xx?xxxxxx?x?x??.......1...2.x.xxx.?x
xxx?xxx...xxxxxxxxxxxx?xxxx.??.2...?......?xxx$xx
@@ -3267,7 +3275,7 @@ ENDMAP
# Hive monsters near stair
#
NAME: david_hive_2
-TAGS: hive_entry
+TAGS: hive_entry generate_awake
MONS: nothing / killer bee / killer bee larva
MONS: queen bee
ORIENT: float
@@ -3294,14 +3302,8 @@ MONS: killer bee larva / killer bee, queen bee
MONS: giant ant / soldier ant, queen ant
MONS: yellow wasp / nothing, red wasp / yellow wasp
MONS: bumblebee
-SHUFFLE: XY
-SHUFFLE: VW
-SHUFFLE: defgOR
-SHUFFLE: 34 / 56
-SUBST: V = =
-SUBST: W = a
-SUBST: X = =
-SUBST: Y = a
+SHUFFLE: XY, VW, defgOR, 34/56
+SUBST: V==, W=a, X==, Y=a
SUBST: ? = a .:20
SUBST: 1 : 1 7:2
SUBST: 7 = 7 .
@@ -3325,21 +3327,21 @@ ENDMAP
#
NAME: erik_hive_1
TAGS: hive_entry
-MONS: weight:200 bear/polar bear, grizzly bear, black bear
+MONS: w:200 bear / polar bear, grizzly bear, black bear
MONS: killer bee, queen bee, killer bee larva
ITEM: honeycomb, royal jelly
-SHUFFLE: 123
-SHUFFLE: deO
+SUBST: ? = a.
+SHUFFLE: 123, deO
ORIENT: float
MAP
.......................
-.............aaa.......
+............?aaa???....
...........aaa4aaaaa...
-...........a4e6d564a...
-......2....a6.4.4O6a...
-............a64aa4a....
-....1.......aaaaaa.....
-.......3...............
+..........?a4e6d564a?..
+......2...?a6?4?4O6a?..
+...........?a64?a4a....
+....1......?aaaaaa?....
+.......3.....????......
.......................
ENDMAP
@@ -3377,17 +3379,18 @@ ENDMAP
NAME: erik_hive_3
TAGS: hive_entry
MONS: killer bee larva, killer bee, queen bee, firedrake
-SUBST: l = l.
+SHUFFLE: UVWXYZ
+SUBST: l=.l, U==, V=a, W=a, X=a, Y=a, Z=a
ORIENT: float
MAP
..................
...aaaaa..........
..aaRa....a...a...
-..a2.a.aaa=.aa....
-.aa.1aaa.1aaa...a.
+..a2.Y.aaaX.aa....
+.aV.1aaa.1aaa...a.
..aa21.2O2aaa4.aa.
-...aaa2131aaaaa...
-..aaaaaRaaa..aa...
+...Zaa2131Waaaa...
+..aaaaaRaUa..aa...
..aa.4aaa.a...a...
.aa...aaa.aa......
.a..aaaa..........
diff --git a/crawl-ref/source/dat/tricky.des b/crawl-ref/source/dat/tricky.des
index 39a8a386b1..d8993fc894 100644
--- a/crawl-ref/source/dat/tricky.des
+++ b/crawl-ref/source/dat/tricky.des
@@ -190,17 +190,17 @@ NAME: lemuel_trickyentry_002_batcave
TAGS: entry
ORIENT: float
SHUFFLE: {[(
-MONS: giant bat
+MONS: giant bat / nothing
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x{x[x(xxxxxxxxxxx.........%xxxx
x.x.x.xxxxxxxx...............xx
-x.x.x.xxxxxx..................x
-x.x.x.xxxx....1.1.1.1.1......%x
+x.x.x.xxxxxx...1.1.1..........x
+x.x.x.xxxx....1.1.1.1.1.1....%x
x.x.x.xx.......1.1.1.1.1....%xx
-x.....+.......1.1.1.1.1.....%xx
+x.....+.......1.1.1.1.1.1...%xx
xxx.xxx........1.1.1.1.1....xxx
-xxx.xxxx.................xxxxxx
+xxx.xxxx..........1.1.1..xxxxxx
xxx.xxxxx.............xxxxxxxxx
@...xxxxxxx.......xxxxxxxxxxxxx
xxx.xxxxxxxxx...xxxxxxxxxxxxxxx
@@ -215,11 +215,8 @@ ENDMAP
NAME: lemuel_trickyentry_river
TAGS: entry no_monster_gen
ORIENT: float
-SHUFFLE: {[(
-SHUFFLE: ABC
-SUBST: A = =
-SUBST: B = x
-SUBST: C = x
+SHUFFLE: {[(, ABC
+SUBST: A:=, B:x, C:x
CHANCE: 1
MAP
xxxxxxxxxxxxxxxxxxx
@@ -277,8 +274,7 @@ NAME: david_trickyentry_002_a
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
CHANCE: 2
-SHUFFLE: {[(
-SHUFFLE: wWl
+SHUFFLE: {[(, wWl
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -301,8 +297,7 @@ NAME: david_trickyentry_002_b
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
CHANCE: 2
-SHUFFLE: {[(
-SHUFFLE: wWl
+SHUFFLE: {[(, wWl
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -325,8 +320,7 @@ NAME: david_trickyentry_002_c
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
CHANCE: 2
-SHUFFLE: {[(
-SHUFFLE: wWl
+SHUFFLE: {[(, wWl
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx=.....=xxxx
@@ -349,8 +343,7 @@ NAME: david_trickyentry_002_d
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
CHANCE: 2
-SHUFFLE: {[(
-SHUFFLE: wWl
+SHUFFLE: {[(, wWl
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx=.....=xxxx
@@ -373,8 +366,7 @@ NAME: david_trickyentry_002_e
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
CHANCE: 2
-SHUFFLE: {[(
-SHUFFLE: wWl
+SHUFFLE: {[(, wWl
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -424,42 +416,24 @@ ENDMAP
##############################################################################
# Evil foreboding
-NAME: david_trickyentry_004_a
+NAME: david_trickyentry_004
TAGS: entry no_monster_gen
-MONS: troll
+MONS: troll / w:40 giant bat
ORIENT: float
-CHANCE: 2
SHUFFLE: {[(<
+SUBST: ?:?.l, ?=l.
MAP
{...............[
-......lll........
-...lll.lll.......
-..l.llll.llll..l.
-...lll]..1lllll..
-..ll.ll...ll.....
-.....lll.ll......
-....ll.lll.......
+....?.lll?.......
+...lll?lll??.....
+..l.llll.llll?.l.
+..?lll]..1lllll?.
+.?ll?ll...ll.??..
+...?.lll.ll??....
+....ll.lll?......
<...............(
ENDMAP
-NAME: david_trickyentry_004_b
-TAGS: entry no_monster_gen
-MONS: giant bat
-ORIENT: float
-CHANCE: 8
-SHUFFLE: {[(<
-MAP
-{...............<
-......lll........
-...lll.lll.......
-..l.l.lllllll..l.
-...lll].11lllll..
-..ll.ll.11ll.....
-.....lll.ll......
-....ll.lll.......
-[...............(
-ENDMAP
-
##############################################################################
# The pits are prepared
@@ -540,19 +514,18 @@ ENDMAP
NAME: david_trickyentry_006
TAGS: entry
-MONS: weight:30 nothing / worm
-MONS: weight:30 nothing / ooze / weight:2 jelly
-MONS: weight:30 nothing / jackal / rat
+MONS: w:30 nothing / worm
+MONS: w:30 nothing / ooze / weight:2 jelly
+MONS: w:30 nothing / jackal / rat
FLAGS: no_rotate
ORIENT: float
SUBST: ?=Gx
-SHUFFLE: xc
-SHUFFLE: 123
+SHUFFLE: xc, 123
MAP
.................
.xxxxxxxxxxxxxxx.
-.x123132>332213x.
-.x2312132211321x.
+.x1231321332212x.
+.x2312132211323x.
.x3123213123132x.
.x?????G+G?????x.
.x.............x.
@@ -604,8 +577,7 @@ NAME: david_trickyentry_008
TAGS: entry
ITEM: nothing
ORIENT: float
-SHUFFLE: [{(
-SHUFFLE: GIcbv=
+SHUFFLE: [{(, GIcbv=, Iw, Gl
MAP
xxxxxxxxxxxxx
x[....{....(x
@@ -631,7 +603,7 @@ TAGS: entry no_monster_gen no_pool_fixup
FLAGS: no_rotate
CHANCE: 1
MONS: plant, plant / nothing
-ITEM: bread ration / weight:20 meat ration, weight:20 any food / nothing
+ITEM: bread ration / w:20 meat ration, w:20 any food / nothing
ORIENT: float
SHUFFLE: {[(
SHUFFLE: lw
@@ -666,14 +638,15 @@ ENDMAP
NAME: david_trickyentry_010
TAGS: entry no_monster_gen no_pool_fixup
MONS: nothing / hobgoblin / warg / war dog / hog / hound / wolf
-MONS: nothing / giant gecko / giant iguana / giant lizard / giant newt
-MONS: nothing / orc / generate_awake orc priest / generate_awake orc warrior / generate_awake orc wizard
-MONS: nothing / generate_awake brain worm / generate_awake lava worm / generate_awake swamp worm / worm
+MONS: giant gecko / giant iguana / giant lizard / giant newt
+MONS: orc / generate_awake orc priest / generate_awake orc warrior / generate_awake orc wizard
+MONS: generate_awake brain worm / generate_awake lava worm / generate_awake swamp worm / worm
ITEM: any food
ORIENT: float
-SHUFFLE: {[(
-SHUFFLE: lw
-SHUFFLE: 1234d
+SUBST: 2 = 2:40 .
+SUBST: 3 = 3:40 .
+SUBST: 4 = 4:40 .
+SHUFFLE: {[(, lw, 1234d
MAP
xxxxxx@xxxxxx
x...........x
@@ -786,12 +759,14 @@ ENDMAP
##############################################################################
# Being Mean Is Cool
-
+# (Has anyone a good guess on proper CHANCEs?)
+
NAME: erik_trickyentry_004_a
TAGS: entry
ORIENT: float
-CHANCE: 5
-ITEM: scroll of curse armour, scroll of teleportation
+CHANCE: 10
+ITEM: scroll of curse armour
+ITEM: scroll of teleportation
MAP
xxxxx
xxexx
@@ -803,15 +778,35 @@ ENDMAP
NAME: erik_trickyentry_004_b
TAGS: entry
ORIENT: float
-CHANCE: 5
-ITEM: scroll of curse armour / scroll of random uselessness / scroll of identify
-ITEM: scroll of curse armour / scroll of fear / scroll of teleportation
+CHANCE: 10
+ITEM: scroll of curse armour, scroll of random uselessness, scroll of identify
+ITEM: scroll of curse armour, scroll of fear, scroll of teleportation
+SHUFFLE: def, ghi
MAP
@.....@
.xx=xx.
-.xxexx.
-.=d{e=.
+.xxgxx.
+.=d{g=.
.xxdxx.
.xx=xx.
@.....@
ENDMAP
+
+NAME: erik_trickyentry_004_c
+TAGS: entry
+ORIENT: float
+CHANCE: 10
+SHUFFLE: uU / vV / wW / zZ
+SUBST: u==, v==, V=~, w=x, W=x, z==, Z=~.
+ITEM: scroll of curse armour, scroll of random uselessness, scroll of identify
+ITEM: scroll of curse armour, scroll of fear, scroll of teleportation
+KFEAT: U = teleport trap
+MAP
+xxxxxxx
+xZxxxWx
+xxzgwxx
+xxd{gxx
+xxudvxx
+xUxxxVx
+xxxxxxx
+ENDMAP
diff --git a/crawl-ref/source/dat/vaults.des b/crawl-ref/source/dat/vaults.des
index 0e1536f342..f9e60b91f6 100644
--- a/crawl-ref/source/dat/vaults.des
+++ b/crawl-ref/source/dat/vaults.des
@@ -188,14 +188,15 @@
# does the same thing - whitespace is not significant.
# SUBST: ? = T:20 U V
# makes T twice as likely to be used as U or V (the default weight
-# is 10). Note that there has to be at least one space after T:20
-# and that whitespace in T:20 is not permitted.
+# is 10). Note that there has to be at least one space before and after
+# T:20 and that whitespace in T:20 is not permitted.
# SUBST: ? : TUV
# replaces occurrences of ? with one of TUV, and guarantees that all
# occurrences of ? will get the same replacement symbol.
-# The placeholder symbol can be any non-space, printable character apart from
-# : and =. The replacement symbols can be any non-space printable character,
-# including : and = ("SUBST: ? = +=:123def" is valid).
+#
+# The placeholder and replacement symbols can be any non-space, printable
+# character, including : and =, apart from commas - "SUBST: = = +=:123def" is
+# valid.
#
# SUBST: lines can safely replace symbols with themselves:
#
@@ -434,11 +435,8 @@ NAME: lemuel_entry_005_b
TAGS: entry no_monster_gen
ORIENT: float
CHANCE: 5
-SHUFFLE: {[(
-SHUFFLE: XYZ
-SUBST: X = W
-SUBST: Y = w
-SUBST: Z = w
+SHUFFLE: {[(, XYZ
+SUBST: X=W, Y=w, Z=w
MAP
xxxxxxxxxxxxxxxxxxx
xxxxx{...(...[xxxxx
@@ -466,25 +464,26 @@ ENDMAP
NAME: lemuel_entry_006_tunnels
TAGS: entry no_monster_gen
ORIENT: float
+SUBST: ? = x.
SHUFFLE: {[(
MAP
xxxxxxxxxxxxxxxxxxx
x{xxxxxxxxxxxxxxxxx
-x..xxxxxxxxxxxx[xxx
-xx.xxxxxx(xxxxx...x
-xx..xxxx..xxxxxxx.x
-x...xx...xxxxxxxx.x
-x.xxx..xxxxxx.....x
-x..xx.xxxxxxx.xxxxx
-xx..x.xxxxxx..xxxxx
-xxx...xxxxx..xxxxxx
+x..xxxxxxxxxxxx[x?x
+xx.?xxxxx(xxxx?...x
+x?..xxxx..xxxx???.x
+x..?x?..?xxxx?x??.x
+x.?xx..xxxxx?.....x
+x.?xx.?xxxx?x.x???x
+xx..?.xxxx??..xxxxx
+xxx...?x??x..xxxxxx
xxxxx.xx....xxxxxxx
-xxxxx..x.xxxxxxxxxx
-xxxxxx.x.xxxxxxxxxx
-xxxxxx...xxxxxxxxxx
-xxxxxxxx.xxxxxxxxxx
-xxxxxxxx.xxxxxxxxxx
-xxxxxxxx...xxxxxxxx
+xxxxx..x.??xxxxxxxx
+xxxxxx.?.xxxxxxxxxx
+xxxxxx..??xxxxxxxxx
+xxxxxx?x.xxxxxxxxxx
+xxxxxxx?.?xxxxxxxxx
+xxxxxxxx..?xxxxxxxx
xxxxxxxxxx.xxxxxxxx
ENDMAP
@@ -494,16 +493,17 @@ ENDMAP
NAME: lemuel_entry_007_funnel
TAGS: entry no_monster_gen
ORIENT: float
+SUBST: c : x.
MAP
xxxxxxxxxxxxxxx
x{.....(.....[x
x.............x
-xx...........xx
-xx...........xx
-xxx.........xxx
-xxx.........xxx
-xxxx.......xxxx
-xxxx.......xxxx
+xx...ccccc...xx
+xx...ccccc...xx
+xxx...ccc...xxx
+xxx...ccc...xxx
+xxxx...c...xxxx
+xxxx...c...xxxx
xxxxx.....xxxxx
xxxxx.....xxxxx
xxxxxx...xxxxxx
@@ -520,22 +520,23 @@ NAME: lemuel_entry_008_muddy
TAGS: entry no_monster_gen
ORIENT: float
SHUFFLE: {[(
+SUBST: ? = w.
MONS: nothing / plant, nothing / fungus
MAP
xxxxxxxxxxxxxxxxxxx
xxxxx{..1..(.1ww.[x
xxxxx1...1...11ww.x
-xxxxxx..w.11....1.x
-xxxxxx........2.1.x
-xxxxxw..11......w.x
-xxxxxw...........xx
-xxxxx.11..22.2....x
-xxxxx11.....w2....x
-xxxxx....1.......xx
-xxxxxx..1.......xxx
-xxxxxx.....2....xxx
-xxxxxx...2......xxx
-xxxxx.....2.....xxx
+xxxx?x..w.11..??1.x
+xxx??x........2.1.x
+xxx?ww..11.....?w.x
+xxxxww?..........xx
+xxx?w?11?.22.2....x
+xxx?w11?....w2....x
+xxxx???..1..???..xx
+xxxxx?..1??..??.xxx
+xxxx?x.....2?...xxx
+xxxx?x...2......xxx
+xxxx?w....2.....xxx
xxxxx.22w......xxxx
xxxxxxx..2.....xxxx
xxxxxxx..2..22xxxxx
@@ -553,28 +554,55 @@ NAME: lemuel_entry_009_a
TAGS: entry
ORIENT: float
SHUFFLE: {[(
+SUBST: ? : xcvG.
CHANCE: 4
MAP
xxxxxxxxxxx
x{...(...[x
x.........x
-x.x.....x.x
+x.?.....?.x
x.........x
x.........x
-x.x.....x.x
+x.?.....?.x
x.........x
x.........x
-x.x.....x.x
+x.?.....?.x
x.........x
x.........x
-x.x.....x.x
+x.?.....?.x
x.........x
x@...@...@x
ENDMAP
+NAME: lemuel_entry_009_b
+TAGS: entry
+ORIENT: float
+SUBST: ? : xcvG.
+ITEM: meat ration / bread ration / beef jerky / spear / potion of water / apple / club / hammer / knife
+SHUFFLE: {[(
+CHANCE: 3
+MAP
+xxxxxxxxxxxx
+x{...(...[xx
+x.........xx
+x.?.....?.xx
+x.........xx
+x.........xx
+x.?.....?.xx
+x.........xx
+x.........xxxxxx
+x.?.....?.xxxddx
+x.........=..ddx
+x.........xxxxxx
+x.?.....?.xx
+x.........xx
+x@...@...@xx
+ENDMAP
+
NAME: lemuel_entry_009_c
TAGS: entry
ORIENT: float
+SUBST: ? : xcvG.
ITEM: meat ration / bread ration / beef jerky / spear / potion of water / apple / club / hammer / knife
SHUFFLE: {[(
CHANCE: 3
@@ -582,27 +610,29 @@ MAP
xxxxxxxxxxxx
x{...(...[xx
x.........xx
-x.x.....x.xx
+x.?.....?.xx
x.........xx
x.........xxxxxx
-x.x.....x.xxxddx
+x.?.....?.xxxddx
x.........=..ddx
x.........xxxxxx
-x.x.....x.xx
+x.?.....?.xx
x.........xx
x.........xx
-x.x.....x.xx
+x.?.....?.xx
x.........xx
x@...@...@xx
ENDMAP
###################################
-# behind the green door
+# behind the door
-NAME: lemuel_entry_010_green
+NAME: lemuel_entry_010_a
TAGS: entry
+CHANCE: 5
ORIENT: float
SHUFFLE: {(
+SUBST: b : bcv
MAP
xxxxxxxxxxx
x{...(...[x
@@ -617,6 +647,22 @@ xbbbb+bbbbx
x....@....x
ENDMAP
+NAME: lemuel_entry_010_b
+TAGS: entry
+CHANCE: 5
+ORIENT: float
+SHUFFLE: {(
+SUBST: b : bcv
+MAP
+xxxxxxxxxxx
+x{...(...[x
+x.........x
+x.........x
+x.........x
+xbbbb+bbbbx
+x....@....x
+ENDMAP
+
#############################
# lemuel_lava_pool
@@ -624,6 +670,7 @@ NAME: lemuel_entry_011_lava_pool
TAGS: entry no_monster_gen
ORIENT: float
SHUFFLE: {[
+SUBST: l = l .:3
MAP
xxxxxxxxxxxxxxx
xxxxx..{..xxxxx
@@ -648,10 +695,11 @@ ENDMAP
# David's entry vaults
##############################################################################
-NAME: david_entry_001
+NAME: david_entry_001_a
TAGS: entry
FLAGS: no_rotate
ORIENT: float
+CHANCE: 5
SHUFFLE: {[(
MAP
xxxxxxxxxxx@xxxxxxxxxxx
@@ -674,6 +722,37 @@ xxxxx.............xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
+NAME: david_entry_001_b
+TAGS: entry
+FLAGS: no_rotate
+ORIENT: float
+CHANCE: 5
+SHUFFLE: {[
+MAP
+xxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxx...xxxxxxxxxx
+xxxxxxxxx..{..xxxxxxxxx
+xxxxxxxxx.....xxxxxxxxx
+xxxx...xxx...xxx...xxxx
+xx.......xx+xx.......xx
+x.........x.x.........x
+x....[....+.+....(....x
+x.........x.x.........x
+xx.......xx+xx.......xx
+xxxx...xxxx.xxxx...xxxx
+xxxxxxxx.......xxxxxxxx
+xxxxx.............xxxxx
+xxxx...............xxxx
+xxx.................xxx
+xxx........T........xxx
+xxx.......TTT.......xxx
+xxx.................xxx
+xxxx...............xxxx
+xxxxx.............xxxxx
+xxxxxxxx.......xxxxxxxx
+xxxxxxxxxxx@xxxxxxxxxxx
+ENDMAP
+
##############################################################################
# Three discs
@@ -681,6 +760,9 @@ NAME: david_entry_002
TAGS: entry
FLAGS: no_rotate
ORIENT: float
+SUBST: . : ?.
+SUBST: ? = .:1000 % ~
+SUBST: ' = .x
MAP
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx...xxxx
@@ -693,11 +775,11 @@ x.........xxxxxx...xxxx
xx.......xxxxxx.xxxxxxx
xxxx...xxxxxx...xxxxxxx
xxxxxxxxxxx.......xxxxx
-xxx...x............xxxx
-xx..x...xx....[....xxxx
-xx.xxxxxxx.........xxxx
-xx...x...xx.......xxxxx
-xxxx...x..xxx...xxxxxxx
+xxx...''...........xxxx
+x'.''...xx....[....xxxx
+x'.'xx'xxx.........xxxx
+x'..''...xx.......xxxxx
+xx''..''..xxx...xxxxxxx
xxxxxxxxx@xxxxxxxxxxxxx
ENDMAP
@@ -709,6 +791,7 @@ TAGS: entry
FLAGS: no_rotate
ORIENT: float
SHUFFLE: {[(<
+SUBST: v:vx, c:vxc
CHANCE: 2
MAP
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx
@@ -734,6 +817,7 @@ TAGS: entry
FLAGS: no_rotate
ORIENT: float
SHUFFLE: {[(<
+SUBST: v:vx, c:vxc
CHANCE: 2
MAP
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx
@@ -759,6 +843,7 @@ TAGS: entry
FLAGS: no_rotate
ORIENT: float
SHUFFLE: {[(<
+SUBST: v:vx, c:vxc
CHANCE: 2
MAP
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx
@@ -784,6 +869,7 @@ TAGS: entry
FLAGS: no_rotate
ORIENT: float
SHUFFLE: {[(<
+SUBST: v:vx, c:vxc
CHANCE: 2
MAP
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx
@@ -809,6 +895,7 @@ TAGS: entry
FLAGS: no_rotate
ORIENT: float
SHUFFLE: {[(<
+SUBST: v:vx, c:vxc
CHANCE: 2
MAP
xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx
@@ -962,36 +1049,32 @@ ccccccccccc@ccccccccccc
ENDMAP
##############################################################################
-# the imperial orb
+# Moving archways
NAME: david_entry_009
-TAGS: entry
-FLAGS: no_rotate
-ORIENT: float
-SHUFFLE: {[
-MAP
-xxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxx...xxxxxxxxxx
-xxxxxxxxx..{..xxxxxxxxx
-xxxxxxxxx.....xxxxxxxxx
-xxxx...xxx...xxx...xxxx
-xx.......xx+xx.......xx
-x.........x.x.........x
-x....[....+.+....(....x
-x.........x.x.........x
-xx.......xx+xx.......xx
-xxxx...xxxx.xxxx...xxxx
-xxxxxxxx.......xxxxxxxx
-xxxxx.............xxxxx
-xxxx...............xxxx
-xxx.................xxx
-xxx........T........xxx
-xxx.......TTT.......xxx
-xxx.................xxx
-xxxx...............xxxx
-xxxxx.............xxxxx
-xxxxxxxx.......xxxxxxxx
-xxxxxxxxxxx@xxxxxxxxxxx
+TAGS: entry no_monster_gen
+ORIENT: float
+MONS: plant / fungus / nothing
+SHUFFLE: _wl'
+SUBST: l:wxl, _:xw~_, ':., +:+.
+SUBST: ~ = ~:2 .
+SUBST: _ = 1 . %:1
+SUBST: w = w W:3
+MAP
+xxx.......@.......xxx
+xxxx+xxx+xxx+xxx+xxxx
+xxx___xwwwxlllx'''xxx
+xxx___xwwwxlllx'''xxx
+xxx___xwwwxlllx'''xxx
+xxx___xwwwxlllx'''xxx
+xxx___xwwwxlllx'''xxx
+xxx___xwwwxlllx'''xxx
+xxxx+xxx+xxx+xxx+xxxx
+xxx...............xxx
+xxxx.............xxxx
+xxxxxxx.......xxxxxxx
+xxxxxxxxx[{(xxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxx
ENDMAP
##############################################################################
@@ -1207,32 +1290,33 @@ TAGS: entry no_monster_gen
ORIENT: float
FLAGS: no_rotate
MONS: fungus
-SHUFFLE: {[(
+SHUFFLE: {[(, b:bcv, UVW, XYZ
+SUBST: '=.x, U==, V=x, W=x, X==, Y=x, Z=x
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxx..xxxxxxxxxxxxxxxxx%xxxxxxxxxxxxx
-xxx...x.....x...xxxxxxxxxxx.0%%xxxxxxxxxxx
-xx..(....xx...x..xxxxxxxxxx.x.xxxxxxxxxxxx
-xx.....xxx..xxx..xxxxxxxxxx...xxxxxxxxxxxx
-xxx...xxxx=xxxxx..xx...xxxxx0xxxxxxxxxxxxx
-xxxxxxxxx=xxxxxx..x..x..xxx.xxxxxxxxxxxx..
-xxxxxxx....xxxxxx...xx..xxxx..xxxxxxx.....
-xxxxx...xx..xxxxxxxxx..xxxxxxx.xxxx.......
-xxxx..xxxx..xxxxxxxx..xxxxxxx0xxxx........
-xxxx..xxxxx..xxxxxx.....xxxx.xxxx.........
-xxxxx...xxxx..xxxx.......xxx0xxxx.........
-xxxx.....xxx..xxx...bbb...x=xxxx..........
-xxxx..{..xx..xxxx..bbbbb....xx...........@
-xxxxx...xxx..xxx...bbbbb..x....x..........
-xxxxxxxxxxxx..x.....bbb...xxx=xxx.........
-xxxxxxxxxxxxx....x.......xxx.xxxx.........
-xxxxxxxxxxxxxxx.xxx.....xxx..xxxxx........
+xxxxxxxxx''xxxxxxxxxxxxxxxxx%xxxxxxxxxxxxx
+xxx...x''...x...xxxxxxxxxxx.0%%xxxxxxxxxxx
+xx..(....xx..''..xxxxxxxxxx.x.xxxxxxxxxxxx
+xx.....xxx'.xxx..xxxx''xxxx...xxxxxxxxxxxx
+xxx...xxxx=xxxxx.'xx'..'xxxx0xxxxxxxxxxxxx
+xxxxxxx'x=xxxxxx'.x..x.'xxx.xxxxxxxxxxxx..
+xxxxx''...'xxxxxx'..xx..'xxx..xxxxxxx.....
+xxxxx'..x'..xxxxxx'x'..x'xxxxx.xxxx.......
+xxxx..'xxx..'xxxxxxx'.xxxxxxx0x.Wx........
+xxxx..xxxxx..'xxxxx.....xxxx.xxxx.........
+xxxxx...xx'x..'xxx.......xxx0xxxx.........
+xxxx.....x'x..'xx...bbb...xUxVxx..........
+xxxx..{..xx..x''x..bbbbb....x'...........@
+xxxxx...xx''.xxx...bbbbb..x....x..........
+xxxxxxxxxxxx.'x.....bbb...xxxYxxx.........
+xxxxxxxxxxxxx....x.......xXx.xxxx.........
+xxxxxxxxxxxxxxx'xxx.....xxx..xxxxx........
xxxxxxxxxxxxxx=xxxxxx..xxx..xxxxxxx.......
-xxxxxxxxxxxxx=xxxxxx..xxxx.xxxxxxxxxx.....
-xx...x..xxxxx..xxxxx...xx1.xxxxxxxxxxxxx..
-x..[.......x....xxxxx..xxx..xxxxxwxxwwxxxx
-x.....xxx....xx..xxx..xxxxx1...wwwwwxxwxxx
-xx...xxxxxxxxxxx.....xxxxxxxxx.wwwxxxxxxxx
+xxxxxx'xxxxxx=xxxxxx.''xxx.xxxxxxxxxx.....
+xx...x.'xxxxx'.xxxxx'...Z1.xxxxxxxxxxxxx..
+x..[.......'...'x'xxx..'xx..xxxxxwxxwwxxxx
+x.....xxx...'x'..xxx..'xxxx1...wwwwwxxwxxx
+xx...xxxx''x'xxx'..'.xxxxxxxxx.wwwxxxxxxxx
xxxxxxxxxxxxxxxxxx..xxxxxxxxxxwwxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
@@ -1598,7 +1682,7 @@ ENDMAP
NAME: david_entry_016_chase
TAGS: entry no_monster_gen no_pool_fixup
-MONS: kobold, hobgoblin
+MONS: kobold, hobgoblin / goblin / giant bat
ITEM: stone, dart
ORIENT: float
FLAGS: no_rotate
@@ -1625,6 +1709,7 @@ NAME: david_entry_017_fractal
TAGS: entry no_monster_gen
ORIENT: float
FLAGS: no_rotate
+KFEAT: X = teleport trap
SHUFFLE: {[(
MAP
xxxxx+xxxxx+xxxxxxxxxxx@x
@@ -1649,8 +1734,8 @@ xx+xxx..................x
xx.xx...................x
x..x....................x
xxx.....................x
-xx......................x
-@.......................x
+xx....................G.x
+@......................Xx
xxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
@@ -1726,7 +1811,7 @@ ENDMAP
NAME: david_021_tetris
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
+SHUFFLE: {[(, bcvx
MAP
xxxxxxxxxxx.@.xxxxxxxxxxx
xxxxxxxxxxx...xxxxxxxxxxx
@@ -1759,9 +1844,9 @@ ENDMAP
NAME: david_022_central
TAGS: entry
-MONS: gnoll
+MONS: gnoll, jackal, worm
ORIENT: float
-SHUFFLE: {[(<
+SHUFFLE: {[(<, 123
MAP
xxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxx
xxxxxxxxxxx...........xxxxxxxxxxx
@@ -1881,8 +1966,7 @@ MONS: worm / giant beetle
ITEM: nothing / ring of hunger / protection from fire / protection from cold
ITEM: nothing / choko / pear / apple / sausage / banana / any scroll
CHANCE: 2
-SHUFFLE: {(
-SHUFFLE: cv
+SHUFFLE: {(, cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxvxvx...............xvxvxxxxxx
@@ -1921,8 +2005,7 @@ MONS: worm / giant beetle
ITEM: nothing / ring of hunger / protection from fire / protection from cold
ITEM: nothing / choko / pear / apple / sausage / banana / any scroll
CHANCE: 2
-SHUFFLE: {(
-SHUFFLE: cv
+SHUFFLE: {(, cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxvxvx...............xvxvxxxxxx
@@ -1961,8 +2044,7 @@ MONS: worm / giant beetle
ITEM: nothing / ring of hunger / protection from fire / protection from cold
ITEM: nothing / choko / pear / apple / sausage / banana / any scroll
CHANCE: 2
-SHUFFLE: {(
-SHUFFLE: cv
+SHUFFLE: {(, cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxvxvx...............xvxvxxxxxx
@@ -2001,8 +2083,7 @@ MONS: worm / giant beetle
ITEM: nothing / ring of hunger / protection from fire / protection from cold
ITEM: nothing / choko / pear / apple / sausage / banana / any scroll
CHANCE: 2
-SHUFFLE: {(
-SHUFFLE: cv
+SHUFFLE: {(, cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxvxvx...............xvxvxxxxxx
@@ -2040,8 +2121,7 @@ FLAGS: no_rotate
MONS: worm / giant beetle
ITEM: nothing / ring of hunger / protection from fire / protection from cold
CHANCE: 1
-SHUFFLE: {(
-SHUFFLE: cv
+SHUFFLE: {(, cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxvxvx...............xvxvxxxxxx
@@ -2079,8 +2159,7 @@ FLAGS: no_rotate
MONS: worm / giant beetle
ITEM: nothing / choko / pear / apple / sausage / banana / any scroll
CHANCE: 1
-SHUFFLE: {(
-SHUFFLE: cv
+SHUFFLE: {(, cvx
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxvxvx...............xvxvxxxxxx
@@ -2119,6 +2198,7 @@ TAGS: entry no_monster_gen
MONS: generate_awake jelly
ITEM: dart
ORIENT: float
+KFEAT: X = teleport trap
SHUFFLE: {[(
MAP
xxxxxxxxxxxxxxxxxxxxx....@.....
@@ -2126,10 +2206,10 @@ xxxxx......xxxxxxxxxx.........@
xxx............xxxxxx..........
xx................xxxxxxxxxxxxx
xx....vvvv.......xx.....xxxxxxx
-.....vv1dvv......x...{.....xxxx
-@....vddd>v..................xx
-.....vvddvv....x....vvv.......x
-xxx...vvvv....xx...vvvvv..(...x
+.....vv1dvvv.....x...{.....xxxx
+@....vddd+Xvv................xx
+.....vvddvvv...x....vvv.......x
+xxx...vvvvv...xx...vvvvv..(...x
xxx..........xx....vvvvv.....xx
xxx..........xx.....vvv......xx
xxxx........xx..............xxx
@@ -2145,11 +2225,12 @@ NAME: david_028_sounds_drone
TAGS: entry no_monster_gen
MONS: generate_awake boring beetle
FLAGS: no_rotate
+KFEAT: X = teleport trap
ORIENT: float
SHUFFLE: {[(<
MAP
xxx.....@....ccccc....@.....xxx
-xx...........cx>xc...........xx
+xx...........cxXxc...........xx
x............cxxxc............x
.............cxxxc.............
.............cxxxc.............
@@ -2157,7 +2238,7 @@ x............cxxxc............x
.............cxxxc.............
ccccccccccccccxxxcccccccccccccc
cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
-c>xxxxxxxxxxxxx1xxxxxxxxxxxxx>c
+cXxxxxxxxxxxxxx1xxxxxxxxxxxxxXc
cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
ccccccccccccccxxxcccccccccccccc
.............cxxxc.............
@@ -2165,7 +2246,7 @@ ccccccccccccccxxxcccccccccccccc
.............cxxxc.............
.............cxxxc.............
x............cxxxc............x
-xx...........cx>xc...........xx
+xx...........cxXxc...........xx
xxx.....@....ccccc....@.....xxx
ENDMAP
@@ -2176,25 +2257,26 @@ NAME: david_entry_029
TAGS: entry
ORIENT: float
SHUFFLE: [{
+SUBST: ':'.x, '=.x
MAP
xxxxxxxxxxxxxxxxxxxxx
-xxxxx..xx......xx..xx
-xxxx.......xxx..x...x
-xxxx..{...xx........x
-xxx......x....[....xx
-xxx...............xxx
-xxx............xxxxxx
-xx..........xxxxxxxxx
-xx.........xxxxxxxxx.
-x.......xxxxxxxxxxx..
-x.....xxxxxxxxxxxxx.@
-x..xxxxxxxxxxxxxx....
-x...xxxxxx....x...xxx
-x.......x..xx...xxxxx
-x...........xxxxxxxxx
-xx...(.xxx.......xxxx
-xxx.....xxxx.......xx
-xxxxxx...xxxxx......x
+xxxxx''xx''''''xx''xx
+xxxx''..'..xxx.'x..'x
+xxxx'.{...xx'......'x
+xxx'.....x''..[...'xx
+xxx'....'.......''xxx
+xxx'.........''xxxxxx
+xx'........'xxxxxxxxx
+xx'......''xxxxxxxxx.
+x'.....'xxxxxxxxxxx..
+x...''xxxxxxxxxxxxx.@
+x.'xxxxxxxxxxxxxx....
+x..'xxxxxx''.'x..'xxx
+x'...'''x'.xx..'xxxxx
+x'..........xxxxxxxxx
+xx'..(.xxx'....''xxxx
+xxx'....xxxx''...''xx
+xxxxxx'''xxxxx''...'x
xxxxxxxxxxxxxxx..@..x
ENDMAP
@@ -2205,23 +2287,24 @@ NAME: david_entry_030
TAGS: entry
ORIENT: float
SHUFFLE: {[(
-MAP
-xxxxxxx..@..xxxxx
-xxxxxx........xxx
-xxxx....xxxx..xxx
-xxx....xxxxx...xx
-xxx.(..xxxxxx..xx
-xx......xxxxx...x
-xx.......xxxxx...
-x....xx....xx...@
-...xxxxx........x
-@..xxxx......[..x
-....x..........xx
-x......{..xxx...x
-xx.......xxxx..xx
-xxxxx..xxxxxxx.xx
-xxxxx.x.xxxxx..xx
-xxxx...@..xx.@..x
+SUBST: ':'.x, '=.x
+MAP
+xxxxxxx'.@.'xxxxx
+xxxxxx'..'...'xxx
+xxxx'...xxxx..xxx
+xxx...'xxxxx'.'xx
+xxx.(.'xxxxxx..xx
+xx'....'xxxxx'..x
+xx...'...xxxxx'.'
+x..''xx'..'xx...@
+..'xxxxx.'.'...'x
+@.'xxxx'.....[.'x
+'..'x'....''...xx
+x'.....{.'xxx'.'x
+xx'''....xxxx'.xx
+xxxxx.'xxxxxxx.xx
+xxxxx.x'xxxxx.'xx
+xxxx'..@''xx.@.'x
ENDMAP
##############################################################################
@@ -2232,23 +2315,24 @@ TAGS: entry no_monster_gen
ORIENT: float
MONS: goblin, rat, giant bat
SHUFFLE: {[(
+SUBST: ?:?.w, ?=.w, ':'.x, '=.x
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxx.xx1..xxxxxxxx..33x
-xxxx.....xxx.xxx.x.x..xxxx
-xx....w...........x..xxx.x
-x...www.....www..xx...2x..
-x..www....w.wwww......xx.@
-xx......wwww.www..ww..x...
-xxx....wwww...wwwww..xx.xx
-..xx...www.[({.www..xx.xxx
-@..xx.wwwww...wwwww...xx.x
-..xx...wwwww.wwwww...x..xx
-x..xxx...wwww.ww......xxxx
-xx..x......www......xxxx.x
-xxx............xx..x.....x
-xxxx.....xxxxxxx......x.2x
-xxx..xxxxx...xxxxxx..xx1xx
+xxxxxxx?xx1.'xxxxxxxx'.33x
+xxxx'.??.xxx.xxx.x.x..xxxx
+xx'..?w.....?.....x..xxx'x
+x'.?www?.?.?www?.xx...2x.'
+x'?www?.??w.wwww?...?.xx.@
+xx.???.?wwww.www.?ww..x..'
+xxx'..?wwww??.wwwww?.xx.xx
+''xx..?www?[({?www?.xx.xxx
+@..xx?wwwww???wwwww?..xx'x
+..xx..?wwwww.wwwww?..x..xx
+x'.xxx.??wwww.ww.??...xxxx
+xx..x....??www.??...xxxx'x
+xxx...??....??.xx?.x.....x
+xxxx'...'xxxxxxx''...'x.2x
+xxx'.xxxxx'''xxxxxx''xx1xx
xxxxxxxxxx.@.xxxxxxxxxxxxx
ENDMAP
@@ -2259,20 +2343,21 @@ NAME: david_entry_032
TAGS: entry no_monster_gen
ORIENT: float
SHUFFLE: {[(
+SUBST: ?:?.w, ?=.w, ':'.x, '=.x
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxx
-xwwwwwwwww.................
-xwwwwww......w.............
-xwww......w.www......x.....
-xww......ww.w.ww....xx.....
-xw......ww[www..w..........
-xw..(..wwwwwwwww..........@
-xw.....ww{wwww..w.....x....
-xww......wwww..ww.....x....
-xww.........wwww...x.......
-xwww..............x....xx..
-xwwwwwwww..................
-xxxxxxxxxxxxxxxxx..@.......
+xwwwwwwwww?......'''....''.
+xwwwwww??...?w?......'.....
+xwww??....w.www??...'x'..'.
+xww??...?ww.w.ww.?..xx.....
+xw?....?ww[www..w.?..'.....
+xw?.(.?wwwwwwwww......'...@
+xw?....ww{wwww..w....'x.'..
+xww??...?wwww?.ww?....x.''.
+xwww??.....?wwww...x..'....
+xwwwwww??....???..'x....xx'
+xwwwwwwww??''...........'''
+xxxxxxxxxxxxxxxxx..@....'''
ENDMAP
##############################################################################
@@ -2326,18 +2411,19 @@ ENDMAP
NAME: david_entry_034
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
+SHUFFLE: {[(, +'
+SUBST: ':'x+, '=x+
MAP
xxxxxxx.@.xxxxxxx
x.....x...x.....x
-x..(..x...+..[..x
+x..(..'...+..[..x
x.....xx.xx.....x
-xxx+xxxx.xxxxxxxx
+xxx+xxxx.xxxx'xxx
@....xx...xx....@
.....xx...xx.....
xxx+xxxx.xxxx+xxx
x.....xx.xx.....x
-x..{..x...x..]..x
+x..{..'...'..]..x
x.....x...x.....x
xxxxxxx.@.xxxxxxx
ENDMAP
@@ -2609,14 +2695,15 @@ NAME: david_entry_039
TAGS: entry
ORIENT: float
SHUFFLE: {[(
+SUBST: '=cx., "=+.=
MAP
xxxxxxxxxxxxxxxxxxxx
xccccccx.......x..c.
-xccccccc..ccx..x..x.
-xcc.(..c.....c..x...
-xcc.[..+..c..+.x...@
-xcc.{..c..cxxc....x.
-xccccccc..x.....xx..
+xccccccc..ccx'.x..x.
+xcc.(..c..'..c.'=''.
+xcc.[..+..c..+.x.."@
+xcc.{..c..cxxc.'..x.
+xccccccc..x....'xx'.
xcccccxxc...cc......
xxxxxxxxxxxxxxxxxxxx
ENDMAP
@@ -2647,19 +2734,21 @@ ENDMAP
NAME: david_entry_041
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
+SHUFFLE: {[(, vcx
+SUBST: ? = x=
+SUBST: ' = x.
MAP
xxxxxxxxxxxxxxxx.@
-@...xxxxxx..xx.=..
-xxx..xxxx.xx..xx..
-xxxx..xxx=xxxxxx..
+@...xxxxxx.'xx.?..
+xxx'.xxxx.xx..xx..
+xxxx.'xxx?xxxxxx..
xxxxx.xxx.xxxxxx..
xx[x.......xxxxx..
-xx...vvvv...xxxx..
-x..vvvvvvv....xx..
-x..vvvvvv..xx..x..
-xx..vv....xxxx.x..
-x(x....xx{xxxx.=..
+xx...vvvv..'xxxx..
+x'.vvvvvvv....xx..
+x..vvvvvv..xx'.x..
+xx..vv....xxxx'x..
+x(x'...xx{xxxx.?..
xxxxxxxxxxxxxxxxxx
ENDMAP
@@ -2670,22 +2759,23 @@ NAME: david_entry_042
TAGS: entry
ORIENT: float
SHUFFLE: {[(
+SUBST: ':'.x, '=x.
MAP
xxxx@xxxxxxxxx
xxxx.xxxx...xx
-xx....xx..x..@
-x...x.......xx
-x.........xxxx
-x.........xxxx
-x..........xxx
-xx...xxx....xx
-xx..xxxxxx..xx
-xx..xxxxxxx..x
-xxx..xxxxxx..x
+xx'...xx..x..@
+x'..x..'....xx
+x'.......'xxxx
+x'........xxxx
+x'...''....xxx
+xx..'xxx'...xx
+xx.'xxxxxx..xx
+xx..xxxxxxx.'x
+xxx.'xxxxxx..x
xxx..xxxxxx.{x
xxxx..xxxx..xx
-xxxxx...xx..xx
-xxxxxxx.(.[.xx
+xxxxx...xx.'xx
+xxxxxxx.(.['xx
xxxxxxxxxxxxxx
ENDMAP
@@ -2696,18 +2786,19 @@ NAME: david_entry_043
TAGS: entry
ORIENT: float
SHUFFLE: {[(
+SUBST: ':'.x, '=x., ":".c, "=.c
MAP
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxx.....xxxxxxxxxxxxxx
-xxx..........xxxxxxxxxxx
-xx....ccc..[.....xxxxxxx
-x...cccccc....cc...xxx.@
-x.{.ccccc.......cc..x.x.
-x....cc.....xx...c...xx.
-xx......(..xxxx......xx.
-xx........xxxxxxxx..xxx.
-xx.....xxxxxxxxxxxx.xxx.
-xxx..xxxxxxxxxxxxxx.xxx.
+xxx'.."""....xxxxxxxxxxx
+xx'.."ccc".[.....xxxxxxx
+x...cccccc"...cc...xxx.@
+x.{.ccccc"..'.."cc..x.x.
+x....cc....'xx.."c".'xx.
+xx......(.'xxxx'....'xx.
+xx'..''...xxxxxxxx.'xxx.
+xx'..''xxxxxxxxxxxx.xxx.
+xxx''xxxxxxxxxxxxxx.xxx.
xxxxxxxxxxxxxxxxxxx@...@
ENDMAP
@@ -2779,7 +2870,7 @@ ORIENT: float
SHUFFLE: {[(
MAP
xx.(..x..xx.
-xx...xx...x.
+xx...xx...=.
.....xxx..xx
....xxx...x.
x...xx....x.
@@ -2797,7 +2888,7 @@ ENDMAP
NAME: david_entry_047
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
+SHUFFLE: {[(, TVG
MAP
xxxxx.@.xxxxx
x...........x
@@ -2821,8 +2912,7 @@ TAGS: entry no_monster_gen
FLAGS: no_rotate
ORIENT: float
CHANCE: 5
-SHUFFLE: {[(
-SHUFFLE: cvba
+SHUFFLE: {[(, cvba
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxx...xxxx..xxxxxx
@@ -2840,8 +2930,7 @@ TAGS: entry no_monster_gen
FLAGS: no_rotate
ORIENT: float
CHANCE: 5
-SHUFFLE: {[(
-SHUFFLE: cvba
+SHUFFLE: {[(, cvba
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxx...xxxx..xxxxxx
@@ -2860,8 +2949,7 @@ ENDMAP
NAME: david_entry_049
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
-SHUFFLE: cv
+SHUFFLE: {[(, cv
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxx
xcxcxcxcxcxcxcxcxcxcxcxxcx
@@ -2881,22 +2969,23 @@ ENDMAP
NAME: david_entry_050
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
+SHUFFLE: {[(, TcGv, XY
+SUBST: ':.x, X=+=x, Y=+=x
MAP
xxxxxxxxxxxxxxxxxx..@
-x.......xxxxxxxxxx...
-x.......xxxx...xxx...
-x..x+x.xxx...T...x...
-x..x.x.[xx.......x...
-xxxx.xxxxx..x+x..x...
-xxxx.xxxxxxxx.xxxxxxx
+x'''''''xxxxxxxxxx...
+x'.....'xxxx...xxx...
+x'.x+x.xxx'..T..'x...
+x..x.x.[xx.......Y...
+xxxx.xxxxx''x+x''x...
+xxxx.xxxxxxxx.xxxxxXx
@...................@
xxxxxx.xxxxxxxxxxx.xx
-xxxxxx+xxxxxx....x.xx
-xxxx.....xxxx.c..x.xx
-xxx.......xxx.{..+.xx
-xxx..xxx..xxx.c..xxxx
-xxxx..(..xxxx....xxxx
+xxxxxx+xxxxxx...'x.xx
+xxxx''.''xxxx.c..x.xx
+xxx'.....'xxx.{..+.xx
+xxx'.xxx.'xxx.c..xxxx
+xxxx..(..xxxx...'xxxx
xxxxxxxxxxxxxxxxxxxxx
ENDMAP
@@ -2979,6 +3068,7 @@ NAME: david_entry_051_d
TAGS: entry no_monster_gen
ORIENT: float
CHANCE: 1
+SHUFFLE: cvb
MAP
xxxxxxxxxxxxxxxxxxxx...@
xxxxxxx.......xxx[.=....
@@ -3004,8 +3094,10 @@ ENDMAP
NAME: david_entry_052
TAGS: entry
-MONS: rat
+MONS: rat, goblin, giant bat
ORIENT: float
+SHUFFLE: [{(
+SUBST: X = x=
MAP
xxxxxxxxxxxx..@
xx.1.%1xxxxx...
@@ -3013,7 +3105,7 @@ x%.1.....xxx(..
x1........xx...
xxx...xx..xx...
xxxxxxxxx.1x...
-xxxxxxxxxx+x=xx
+xxxxxxxxxx+xXxx
..[.xxxxxx....x
....xxxxxx.{..x
@...xxxxxxxx@xx
@@ -3024,9 +3116,10 @@ ENDMAP
NAME: david_entry_053
TAGS: entry no_monster_gen
-MONS: jackal
+MONS: jackal / worm
ORIENT: float
SHUFFLE: {(
+SUBST: l = l.
MAP
xxxxxxxxxxxxxxxxx@xxx
@.xx...xx..xx..xx.xxx
@@ -3051,6 +3144,7 @@ ENDMAP
NAME: david_entry_054
TAGS: entry
ORIENT: float
+SUBST: c:xc, T:TGv., %:%.T
MAP
.....................
.....................
@@ -3072,11 +3166,11 @@ ENDMAP
# Just another circle
NAME: david_entry_055_a
-TAGS: entry
+TAGS: entry no_monster_gen
ORIENT: float
FLAGS: no_rotate
CHANCE: 5
-SHUFFLE: {[(
+SHUFFLE: {[(, lw
MAP
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxx.........xxxxxxx
@@ -3098,10 +3192,10 @@ xxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
NAME: david_entry_055_b
-TAGS: entry
+TAGS: entry no_monster_gen
ORIENT: float
CHANCE: 5
-SHUFFLE: {[(
+SHUFFLE: {[(, lw
MAP
xxxxxxxxxxx@xxxxxxxxxxx
xxxxxxx.........xxxxxxx
@@ -3131,8 +3225,7 @@ ORIENT: float
CHANCE: 5
FLAGS: no_rotate
ITEM: nothing, nothing, nothing
-SHUFFLE: cbv
-SHUFFLE: def}
+SHUFFLE: cbvx, def}
MAP
..............................
...............cc.............
@@ -3160,7 +3253,7 @@ TAGS: entry
ORIENT: float
CHANCE: 5
FLAGS: no_rotate
-SHUFFLE: cbv
+SHUFFLE: cbvx
MAP
..........................
............cc............
@@ -3320,9 +3413,7 @@ NAME: david_entry_059
TAGS: entry
ORIENT: float
ITEM: nothing, nothing
-SHUFFLE: =+
-SHUFFLE: TV
-SHUFFLE: {[
+SHUFFLE: =+, TVG, {[
MAP
xx@...@xxxxxxxx
xx+xxx+xxxxxxxx
@@ -3345,10 +3436,7 @@ NAME: david_entry_060
TAGS: entry
ORIENT: float
ITEM: nothing, nothing
-SHUFFLE: =+
-SHUFFLE: cx
-SHUFFLE: de/{(
-SHUFFLE: {[(
+SHUFFLE: =+, cx, de/{(, {[(
MAP
@.............@
.....xx+xx.....
@@ -3371,50 +3459,54 @@ TAGS: entry no_monster_gen
ORIENT: northwest
SUBST: ?=l.
CHANCE: 6
+KFEAT: X = teleport trap
SHUFFLE: Cc
MAP
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxClllllllll?...@
-xxxxxxllllllll??.....
-xxxxxxlllllllll......
-xxxxxxlllllllll......
-xxxxxxlllllllll......
-xxxxxxllllllll?......
-xxxxxxllllllll.......
-xxxxxxlllllll?.......
-xxxxxx?ll?ll?.....{..
-xxxxxxl.??...........
-xxxxxx..............@
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxXlllllllllll....
+xxxxxxlClllllllll?...@
+xxxxxxlllllllll??.....
+xxxxxxllllllllll......
+xxxxxxllllllllll......
+xxxxxxllllllllll......
+xxxxxxlllllllll?......
+xxxxxxlllllllll.......
+xxxxxxllllllll?.......
+xxxxxxl?ll?ll?.....{..
+xxxxxxll.??...........
+xxxxxxl..............@
ENDMAP
NAME: david_entry_061_b_altar
TAGS: entry no_monster_gen
ORIENT: northwest
CHANCE: 4
+KFEAT: X = teleport trap
SHUFFLE: Cc
MAP
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxxx
-xxxxxxCwwwwwwwwwww..@
-xxxxxxwwwwwwwwwww....
-xxxxxxwwwwwwwwwww....
-xxxxxxwwwwwwwwww.....
-xxxxxxwwwwwwwwww.....
-xxxxxxwwwwwwwww......
-xxxxxxwwwwwwwww......
-xxxxxxwwwwwwww.......
-xxxxxxwwwwwww.....{..
-xxxxxxwwwww..........
-xxxxxx..............@
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxx
+xxxxxxXwwwwwwwwwwwwww.
+xxxxxxwCwwwwwwwwwww..@
+xxxxxxwwwwwwwwwwww....
+xxxxxxwwwwwwwwwwww....
+xxxxxxwwwwwwwwwww.....
+xxxxxxwwwwwwwwwww.....
+xxxxxxwwwwwwwwww......
+xxxxxxwwwwwwwwww......
+xxxxxxwwwwwwwww.......
+xxxxxxwwwwwwww.....{..
+xxxxxxwwwwww..........
+xxxxxxw..............@
ENDMAP
##############################################################################
@@ -3423,7 +3515,7 @@ ENDMAP
NAME: david_entry_062
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
-SHUFFLE: {[
+SHUFFLE: {[, lw
MAP
.......xxxxxx@0
@+xlllxx......@
@@ -3628,6 +3720,7 @@ TAGS: entry
ORIENT: float
CHANCE: 1
SHUFFLE: {[(
+SUBST: X : x:20 G:4 l:1
MAP
cccccccccccccccccccccccccccccccccccccccc
c[c..c...cc......c.....................c
@@ -3637,12 +3730,12 @@ c..cccc.cc..c..cc.......c..............c
c.cc...c.c..c......c...c....xxxxxxxx...c
cc.c.ccc..c...c..cc...c....xxxxT9T.x...c
ccc.ccc.c.c..c...c..c.....xxxxx....x...c
-c{ccc..cc.cc......cc......G.x$x.C..x...@
-c.c...c.cc.c..cc............+0x..9.x...c
+c{ccc..cc.cc......cc......G.x$X.C9.x...@
+c.c...c.cc.c..cc............+0x....x...c
cc.cccccc.c...c..c..cc......+0x....x...c
-cccc.c...c..c...c.........G.x$x.C.>x...c
+cccc.c...c..c...c.........G.x$X.C..x...c
c.cc..ccc.c.......c...c...xxxxx....x...c
-c..cc.c.c...cc...ccc...cc..xxxxT.T.x...c
+c..cc.c.c...cc...ccc...cc..xxxxT.T>x...c
cc..cc.cc.cc....c....c......xxxxxxxx...c
c(.c..c.cc...c......c..................c
cccccccccccccccccccccccccccccccccccccccc
@@ -3666,9 +3759,9 @@ ccc.ccc.c.c..c...c..c.....xxxxx1...x...c
c{ccc..cc.cc......cc......G.x$x.V..x...@
c.c...c.cc.c..cc............+0x....x...c
cc.cccccc.c...c..c..cc......+0x.1..x...c
-cccc.c...c..c...c.........G.x$x.V.>x...c
+cccc.c...c..c...c.........G.x$x.V..x...c
c.cc..ccc.c.......c...c...xxxxx....x...c
-c..cc.c.c...cc...ccc...cc..xxxxT.T.x...c
+c..cc.c.c...cc...ccc...cc..xxxxT.T>x...c
cc..cc.cc.cc....c....c......xxxxxxxx...c
c(.c..c.cc...c......c..................c
cccccccccccccccccccccccccccccccccccccccc
@@ -3718,9 +3811,9 @@ ccc.ccc.c.c..c...c..c.....xxxxx....x...c
c{ccc..cc.cc......cc......G.x$x.V..x...@
c.c...c.cc.c..cc............+0x...1x...c
cc.cccccc.c...c..c..cc......+0x1...x...c
-cccc.c...c..c...c.........G.x$x.V.>x...c
+cccc.c...c..c...c.........G.x$x.V..x...c
c.cc..ccc.c.......c...c...xxxxx....x...c
-c..cc.c.c...cc...ccc...cc..xxxxT.T.x...c
+c..cc.c.c...cc...ccc...cc..xxxxT.T>x...c
cc..cc.cc.cc....c....c......xxxxxxxx...c
c(.c..c.cc...c......c..................c
cccccccccccccccccccccccccccccccccccccccc
@@ -4035,7 +4128,7 @@ ENDMAP
NAME: matt_entry_002
TAGS: entry
ORIENT: float
-SHUFFLE: {[
+SHUFFLE: {[, TU
MAP
xxxxxxxxxx@xxxxxxxxxx
x..x.............x..x
@@ -4063,22 +4156,23 @@ NAME: matt_entry_003
TAGS: entry no_monster_gen
ORIENT: float
SHUFFLE: {[(
+SUBST: ':x., ":x., ?:x., _:x.
MAP
xxxxxxxxxx@xxxxxxxxxx
-xx.................xx
-x.x........x......x.x
+xx..........'......xx
+x.x......_.x......x.x
x..x......x......x..x
-x...x....x.x....x...x
+x...x....x.x."..x...x
x....x..x...x..x....x
-x.....xx.....xx.....x
+x.....xx...".xx.....x
x.....x...x...x.....x
-x..x.x...x.....x....@
+x..x.x.?.x.....x....@
@...x...x.(.[.x.x...x
-x....x...x.{.x......x
-x.....x...x.x.x.....x
+x..'.x.".x.{.x..._..x
+x.'...x...x.x.x.....x
x....x.x...x...x....x
x...x...x...x...x...x
-x..x.....x.......x..x
+x..x.....x...?...x..x
x.x.......x.......x.x
xx.................xx
xxxxxxxxxx@xxxxxxxxxx
@@ -4091,27 +4185,28 @@ NAME: matt_entry_004
TAGS: entry
ORIENT: float
SHUFFLE: {[(
+SUBST: ':'.x, '=x.
MAP
xxxxxxx@xxxxxxxxxxxxx@xxxxxxx
-x....x....x.................x
-x.....xxxx............x.....x
-x.................xx..x.....x
-x........x..........xx.xx...x
-x....x.......x.x.....x......x
-x...x.x..............x......x
-x....x.......x.x.........x..x
-x........xxx..{...x......x..x
-@........................x..x
-x........xxx...xx........x..x
-x....x........xx.x...[....x.@
-x........x....x.xx........x.x
-x.....x.......x.x........x..x
-x............xx.x...x....x..x
-x..x.....(...x.xx........x..x
-x......x.........xx......x..x
+x....x..'.x.................x
+x...'.xxxx...........'x.....x
+x'..''.''.........xx..x'....x
+x'...'...x'...'....'xx.xx...x
+x'...x'......x.x.....x..''..x
+x'.'x'x'.......'....'x......x
+x'..'x.......x'x.....''..x..x
+x'...'...xxx..{...x'....'x'.x
+@''.......'.....'....'..'x'.x
+x''......xxx...xx........x..x
+x....x.......'xx.x...[....x.@
+x...'....x''..x.xx........x.x
+x'....x....'..x'x..'''...x..x
+x...'.'....'.xx.x...x...'x.'x
+x..x.....(...x.xx.......'x.'x
+x..'..'x.........xx.....'x..x
x...x...........xx.x..x..x..x
-x........x......x.xx........x
-x................xx.........x
+x.......'x.'''..x.xx........x
+x.........'......xx.........x
xxxxxxxxxxx@xxxxxxxxxxxxxxxxx
ENDMAP
@@ -4245,6 +4340,7 @@ TAGS: entry
ORIENT: northwest
FLAGS: no_rotate
SHUFFLE: [({
+SUBST: ':'.x, '=x.
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -4252,18 +4348,18 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxx....xxxxxxxxxxxxxxx....xx..xxx...x.xxx...xxx..xxxxxxxxx
-xxxxxxxxxx..........xx.................................xx...xx...xx
-xxxxxxxx.....ccccc...xxx.....ccccc...........ccccc.............x..x
-xxxxxx....cccc...cccc.....cccc...cccc.....cccc...cccc.........xxx.@
-xxxxxx..ccc.........ccc+ccc.........ccc+ccc.........ccc........xxxx
-xxxxxx..c......{......+.+......[......+.+......(......c.........xxx
-xxxxxx..ccc.........ccc+ccc.........ccc+ccc.........ccc........xxxx
-xxxxxx....cccc...cccc.....cccc...cccc.....cccc...cccc...........xxx
-xxxxxx.......ccccc...........ccccc...........ccccc............xxxxx
-xxxxxx....................xx..........xxxx....................xxxxx
-xxxxxx.....xxx.............xx...xx.xxxxxxxxxx.x..........xxx...xxxx
-xxxxxx.xxxxxxxxxxxxxx..xxx.xxx...xxxxxxxxxxxxxxxxxx....xxxxxx...xxx
+xxxxxxxxxxxx....xxxxxxxxxxxxxxx....xx..xxx.''x.xxx..'xxx..xxxxxxxxx
+xxxxxxxxxx''........xx...''.........''...'.............xx...xx...xx
+xxxxxxxx'....ccccc...xxx.....ccccc......'....ccccc.............x..x
+xxxxxx....cccc...cccc.....cccc...cccc.....cccc...cccc.....''..xxx.@
+xxxxxx..ccc.........ccc+ccc.........ccc+ccc.........ccc....''..xxxx
+xxxxxx'.c......{......+.+......[......+.+......(......c...'.....xxx
+xxxxxx'.ccc.........ccc+ccc.........ccc+ccc.........ccc...''...xxxx
+xxxxxx....cccc...cccc.....cccc...cccc.....cccc...cccc......'..'.xxx
+xxxxxx.......ccccc......'....ccccc...........ccccc......'.....xxxxx
+xxxxxx'................'..xx..........xxxx..........'....'....xxxxx
+xxxxxx.''..xxx...''.....'..xx...xx.xxxxxxxxxx.x..'''..''.xxx''.xxxx
+xxxxxx'xxxxxxxxxxxxxx..xxx.xxx...xxxxxxxxxxxxxxxxxx....xxxxxx...xxx
xxxxxxxxxxxxxxxxxxxxxx@xxxxxxxx@xxxxxxxxxxxxxxxxxxxxxx@xxxxxxxx@xxx
ENDMAP
@@ -4275,9 +4371,7 @@ ORIENT: west
FLAGS:
MONS: rat, goblin, giant bat, kobold
ITEM: sausage / beef jerky, nothing, nothing
-SHUFFLE: {[(
-SHUFFLE: 234
-SHUFFLE: ef~
+SHUFFLE: {[(, 234, ef~
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxx
@@ -4343,43 +4437,71 @@ ENDMAP
NAME: entry_elethiomel_004
TAGS: entry no_monster_gen
ORIENT: float
+SHUFFLE: {[(, WXYZ
+SUBST: W=., X=X., X=x=., Y=Y., Y=x=., Z=Z., Z=x=.
MAP
-xx.xxxxxxxxxxxxxxxxxxxxxxxxxx
+xx@xxxxxxxxxxxxxxxxxxxxxxxxxx
xx.x.......xxxxx...xx......xx
-xx.x.xxxxx.xxxxx.x.xxxxxxx.xx
-xx...x{..x...x...x...x(xxx...
+xx.xXxxxxx.xxxxx.x.xxxxxxx.xx
+xx...x{..x...x...x...x(xxx..@
xxxx.xxx.x.x.x.xxxxx.x.xxx.xx
-...x...x...x.....xxx...x...xx
+@..x...x...x.....xxx...x...xx
xx.xxx.xxxxxxxxx.xxxxxxx.xxxx
-xx.....xxxxx.x.....x.....x...
+xx.....xxxxx.x.....x.W...x..@
xxxx.xxxxxxx.x.xxx.x.xxxxx.xx
-xx...xxxxxxx...xxx...x.....xx
+xx...xxxxxxx...xxx...x...Z.xx
xx.xxxxxxxxx.x.xxx.xxx.xxx.xx
xx...xxxxx...x.....x...x...xx
xxxx.x[xxx.xxxxxxxxx.xxx.xxxx
-xxxx.................xxx...xx
-xxxxxxxxxxxxxxxxxxxxxxxxxx.xx
+xxxx.....Y...........xxx...xx
+xxxxxxxxxxxxxxxxxxxxxxxxxx@xx
ENDMAP
##############################################################
# It's quiet. Too quiet....
-NAME: entry_elethiomel_005
+NAME: entry_elethiomel_005_a
TAGS: entry no_monster_gen
ORIENT: float
-MONS: rat, hobgoblin, goblin
-SHUFFLE: {[(
+MONS: rat / nothing, hobgoblin / goblin / nothing
+SHUFFLE: {[(, '"/AB, !?/CD
+SUBST: ':., ":=, A:x, B:x, !:., ?:=, C:x, D:x
MAP
xxxxxxxxxx@xxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxx
xxxxxxxccc+cccxxxxxxx
xxxxxxxc.G.G.cxxxxxxx
xxcccccc.....ccccccxx
-xc%.3.cc.....cc11.$cx
+xc%.2.cc.....cc11.$cx
xc%.2.=..G.G..=11..cx
xc%...cc.....cc11.$cx
xxcccccc.....ccccccxx
-......=..G.G..=......
+''''''"..G.G..?!!!!!!
+xxcccccc.....ccccccxx
+xxxxxxcG.....Gcxxxxxx
+xxxxxxc.[.{.(.cxxxxxx
+xxxxxxcccccccccxxxxxx
+xxxxxxxxxxxxxxxxxxxxx
+ENDMAP
+
+NAME: entry_elethiomel_005_b
+TAGS: entry no_monster_gen
+ORIENT: float
+MONS: rat / nothing, hobgoblin / goblin / nothing
+SHUFFLE: {[(, '"/AB, !?/CD
+SUBST: ':., ":=, A:x, B:x, !:., ?:=, C:x, D:x
+KFEAT: X = teleport trap
+MAP
+xxxxxxxxxx@xxxxxxxxxx
+xxxxxxxxxx.xxxxxxxxxx
+xxxxxxxccc+cccxxxxxxx
+xxxxxxxc.G.G.cxxxxxxx
+xxcccccc.....ccccccxx
+xc%.2.cc.....cc11.$cx
+xcX.2.c..G.G..c11.Xcx
+xc%...cc.....cc11.$cx
+xxcccccc.....ccccccxx
+''''''"..G.G..?!!!!!!
xxcccccc.....ccccccxx
xxxxxxcG.....Gcxxxxxx
xxxxxxc.[.{.(.cxxxxxx
@@ -4393,7 +4515,9 @@ ENDMAP
NAME: entry_elethiomel_006
TAGS: entry
ORIENT: float
-SHUFFLE: {[(
+SHUFFLE: {[(, XY/AB
+KFEAT: X = teleport trap
+SUBST: Y=x, A=., B==
MAP
xxxxxxx.xxxxxxx...xxxxxxx
xxxxxxx.xxxxxx...xxxxxxxx
@@ -4401,7 +4525,7 @@ xxxxxxx.xxxxx...xxxxxxxxx
xxxxx...xxxx...xxxxxxxxxx
xxxxx{....x...xxxxxxxxxxx
xxxxx........xxxxxxxxxxxx
-x]..=........xxxxxxxxxxxx
+x].XY........xxxxxxxxxxxx
xxxxx.[..................
xxxxx.......(.xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
@@ -4414,6 +4538,7 @@ NAME: entry_elethiomel_007
TAGS: entry
ORIENT: float
SHUFFLE: {[(
+SUBST: ~ = ~ .:5
# Too bad there isn't a "rolling boulder" trap.
MAP
xxxxxxxxxx.xxxxxxxxxxxxxxx
@@ -4422,7 +4547,7 @@ xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
xxxxxxxxxx.xxxxxxx.....xxx
xxxxxxx.......xx...~~~..xx
-.........{[(.....G.~%~...x
+.........{[(...+.G.~%~...x
xxxxxxx.......xx...~~~..xx
xxxxxxxxxx.xxxxxxx.....xxx
xxxxxxxxxx.xxxxxxxxxxxxxxx
@@ -4502,10 +4627,8 @@ DEPTH: 1-11
# Vaults tagged "dummy" are no-ops when the dungeon builder is looking for maps
# by depth.
TAGS: dummy
-
ORIENT: float
CHANCE: 100
-
MAP
x
ENDMAP
@@ -4566,30 +4689,30 @@ ENDMAP
##############################################################################
# Rubicon
-NAME: erik_rubicon_a
-DEPTH: 10-16
-ORIENT: float
-FLAGS: no_rotate
-CHANCE: 6
-ITEM: ring of levitation / potion of levitation / nothing, potion of levitation
-ITEM: nothing, nothing, nothing
-SHUFFLE: {[(
-SHUFFLE: wl
-SHUFFLE: )gh
-MAP
-xxxxccccccccwwwww.@wwww.@wwwwwww...@wwwwwww.@wwww@..wccccxxxxxx
-ccccwwwwwwwww..wwwww.wwwwwwww.wwwwwww.wwwwwwwwwwwwwwwwwwccccccc
+NAME: erik_rubicon_a
+DEPTH: 10-16
+ORIENT: float
+FLAGS: no_rotate
+TAGS: no_pool_fixup
+CHANCE: 6
+ITEM: ring of levitation / potion of levitation / nothing, potion of levitation
+ITEM: nothing, nothing, nothing
+SHUFFLE: {[(, )gh
+SUBST: ?:?.w, ?=w., w:lw, ':'.c, '=cx.
+MAP
+xxxxcccccccc????w.@??ww.@www???w...@???wwww.@ww??@..?ccccxxxxxx
+ccccwwwwwwwww..wwwww.wwwwwwww.wwwwwww.wwwwwwwwwwww??wwwwccccccc
cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwc
cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwc
ccwwwwwwwwwwwwwwwwwwwcccwwwwwwwwwcwwwwwwwwwwwwwwwwwwwwwwcccwccc
cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwc
cwwwwwwwwwwwwwwwwwwwwwccwwwwwwwwwcwcwwwwwwwwwwwwwwwwwwwwwwccccc
cwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwcwwwww.wwwwwwwwwwwwwwwwwwwwwwc
-ccwcwwwwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.wwwwwwwccccc
-ccccccwwwwwww.wwwwwxwwwwww...wwwwwwwwwwwwwwwwwwwwwwwwwwcccccxxx
-xxxxcxx.........w..xx........wwwww...c......ww.....www..cxccxxx
-xxxxcx..(cc[......xx...x....x..wxx.xcc..cxcx...xxx.....chxxcxxx
-xxxxcx..cc{c..xx.....xx...cc..xx....xcc......xxx..x.xxc...cxxxx
+ccwcwwwwwwwwwwwwwwwxwwwwww???wwwwwwwww???wwwwwwwww.wwwwwwwccccc
+cccccc????w??.w????xw??w??...?wwww???w????w?w???w???w??cccccxxx
+xxxxcxx...''....?..xx........??w??...c''....??.....???..cxccxxx
+xxxxcx..(cc[.''..'xx...x.''.x..?xx.xcc..cxcx...xxx.'...chxxcxxx
+xxxxcx..cc{c..xx.....xx...cc..xx....xcc....''xxx..x.xxc...cxxxx
xxxxccx....e.xx....x..x.....c....cx..x...x......c......cxcxxxxx
xxxxxcxexxx.x.x.xx.x.xx.xcc.xx.xccxx....xx.x.xxxccxx.xcccxxxxxx
xxxxxccx.gxxx..x..xdx..x.xxxx.x...xx.xx...xx.xxxx)..xxcxxxxxxxx
@@ -4597,31 +4720,29 @@ xxxxxxcxxxxxxxx...xxxxxxxxxccccccc..xxxxccccccccxxxccccxxxxxxxx
xxxxxxcccccccccccccccccccccccccccccccccccxxxxxcccccccxxxxxxxxxx
ENDMAP
-NAME: erik_rubicon_b
-DEPTH: 10-16
-TAGS: no_pool_fixup
-ORIENT: float
-FLAGS: no_rotate
-CHANCE: 4
-ITEM: ring of levitation / potion of levitation / nothing, potion of levitation
-ITEM: nothing, nothing, nothing, nothing
-SHUFFLE: {[(
-SHUFFLE: fgW
-SHUFFLE: )hi
+NAME: erik_rubicon_b
+DEPTH: 10-16
+ORIENT: float
+FLAGS: no_rotate
+CHANCE: 4
+ITEM: ring of levitation / potion of levitation / nothing, potion of levitation
+ITEM: nothing, nothing, nothing, nothing
+SHUFFLE: {[(, fgW, )hi
+SUBST: ?:?.wW, ?=wW., ':'.c, '=c.
MAP
-xxxxccccccccwgwwf.@wgfw.@wwwgwfw...@gwfwwww.@wwww@..wccccxxxxxx
-ccccwwwwwwwww..fwwww.wwwwwwww.wwwwwww.wwwwwwwwwwwffggwwwccccccc
-cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwc
+xxxxcccccccc?gw?f.@wgf?.@w??g?fw...@gwfw???.@wwww@..?ccccxxxxxx
+ccccwwwwwww??..f????.ww???www.???ww??.wwwwwwwwwwwffgg?wwccccccc
+cwwwwwwwwwwww??wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww??wwwwwwwwwc
cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwc
ccwwwwwwwwwwwwwwwgwwwcccwwwfwwwwwcwwwwgwwwwwwwwwwwwwwwwwcccwccc
cwwwwwwwwwwwwwwgwwwwwwwwwwwwfwwwwwwwwwwwwwfwwwwwwwwwwwwwwwwwwwc
-cwwwwwwwwwwwwwwwwwwwwwccwwwwwwwwwcwcwwwwwwwwwwwwwwwwwwwwwwccccc
+cwwwwwwwwwwwwwwwwwwwwwccwwwwwwwwwcwcwwww?wwwwwwwwwwwwwwwwwccccc
cwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwcwwwww.wwwwwwwwwwwwwwwwwwwwwwc
-ccwcwwwwwgwwwwfwwwwxwwwwwwwwwwwwwwwwwwwfgwwwgwwwww.wwwwwwwccccc
-ccccccwffwgwwfwwwwgxwwwwww...wwwwwwwwwfwgwwfwgwwwfgwwwgcccccxxx
-xxxxcxx.........w..xx........wwwww...c......ww.....wgg.xcxccxxx
-xxxxcx..(cc[.....xx....x....x..w...xcc..cxcx.x..x......cxhxcxxx
-xxxxxcc..c{c..x.x...c.xxx.x.xx....xx..cc..c.xx...cc..xxx...xxxx
+ccwcwwwwwg?wwwfwwwwxwwwwwwwwwwwwwwwwwwwfgwwwgwwwww.wwwwwwwccccc
+ccccccwffwg??fw?ww?gx??ww?..??wwwww??w?fwgw?fwgw??fg??gcccccxxx
+xxxxcxx...'''...?..xx.....''.?ww??...c.'....??...'.?gg.xcxccxxx
+xxxxcx..(cc[.'.'.xx..'.x.'..x..?...xcc..cxcx.x..x..''..cxhxcxxx
+xxxxxcc..c{c..x.x...c.xxx.x.xx.'.'xx..cc..c.xx''.cc..xxx...xxxx
xxxxccx....e.xx...x...x.....c...c....cc....x...x....x....cxxxxx
xxxxxcxexxxxx.x.xxxx.x..xcc.xx..cc.x....xx.x.x.xccxx.xcccxxxxxx
xxxxxccx..xi.x.x.xxdxxxx...x..xx..xxxxx...x).xx..xc.xxcxxxxxxxx
@@ -4635,7 +4756,7 @@ ENDMAP
NAME: erik_ogre
DEPTH: 4-9
ORIENT: float
-MONS: ogre / iron devil
+MONS: ogre / iron devil / w:5 nothing
ITEM: potion of heal wounds / speed / berserk rage
SHUFFLE: {(
MAP
@@ -4666,44 +4787,49 @@ ENDMAP
###################################
# Hellmouth (Lemuel)
# note that other than the imps, the demons here cannot fly
-NAME: hellmouth_1
-FLAGS: no_rotate
-MONS: imp / quasit / shadow imp, hellion / rotting devil / iron devil / hairy devil / hell hound
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining / wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
+NAME: hellmouth_1
+FLAGS: no_rotate
+MONS: imp / quasit / shadow imp, hellion / rotting devil / iron devil / hairy devil / hell hound
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining
+ITEM: wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
ORIENT: float
+SUBST: d=de, ?:?.l, ?=l.
MAP
xxxxxxxxxxxxxxxxxxx
xxxxxxxxlllxxxxxxxx
xxxxxxlllAlllxxxxxx
-xxxlllll.d.llll.xxx
-xlllllll121lllll..x
-x.lllllll1llll....x
-x...llllllll......x
-x....llllll.......x
-x.....lllll.......x
-xxx....lll......xxx
-xxxx...lll.....xxxx
-xxxxx..ll.....xxxxx
-xxxxx.lll.....xxxxx
-xxxxxxlll....xxxxxx
+xxxlllll.d.llll?xxx
+xlllllll121lllll?.x
+x?lllllll1llll?...x
+x.??llllllll?.....x
+x...?llllll?......x
+x....?lllll.......x
+xxx...?lll?.....xxx
+xxxx...lll?....xxxx
+xxxxx.?ll?....xxxxx
+xxxxx?lll.....xxxxx
+xxxxxxlll?...xxxxxx
xxxxxxxlll...xxxxxx
-xxxxxxxxll..xxxxxxx
-xxxxxxxxll..xxxxxxx
-xxxxxxxxl.@xxxxxxxx
+xxxxxxxxll?.xxxxxxx
+xxxxxxxxll?.xxxxxxx
+xxxxxxxxl?@xxxxxxxx
ENDMAP
###################################
# Hellmouth 2 (Lemuel)
# note that other than the imps, the demons here cannot fly
-NAME: hellmouth_2
-TAGS: no_monster_gen
-FLAGS: no_rotate
-MONS: imp / quasit / shadow imp / manes / lemure
-MONS: hellion / rotting devil / iron devil / hairy devil / hell hound
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining / wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident
+NAME: hellmouth_2
+TAGS: no_monster_gen
+FLAGS: no_rotate
+MONS: imp / quasit / shadow imp / manes / lemure
+MONS: hellion / rotting devil / iron devil / hairy devil / hell hound
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / wand of draining
+ITEM: wand of fire / ring of fire / Necronomicon / book of demonology / scroll of torment
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / w:30 nothing
ORIENT: float
+SUBST: d=de, ?:?.l, ?=l.
+SUBST: b : b:30 c v .
MAP
.......bbbbbbbbbbbb.......
@@ -4711,15 +4837,15 @@ MAP
..bbb....llllllll....bbb..
.bb....llllllllllll....bb.
.b....llllllllllllll....b.
-.b....llllll..llllll....b.
-.b....lll........lll....b.
-.b....ll....111...ll....b.
-.+....l....11211d..l....b.
-.+....l....12A21|e.l....b.
-.b....ll...11211d.ll....b.
-.b....lll...111..lll....b.
-.b....llll......llll....b.
-.b....llllll..llllll....b.
+.b....llllll??llllll....b.
+.b...?lll??.....?lll?...b.
+.b...?ll?...111...ll?...b.
+.+...?l?...11211d..l?...b.
+.+...?l?...12A21|f.l?...b.
+.b...?ll...11211d.ll?...b.
+.b...?lll?..111..lll?...b.
+.b....llll?.....llll....b.
+.b....llllll??llllll....b.
.bb....llllllllllll....bb.
..bbb....llllllll....bbb..
....bbbb..........bbbb....
@@ -4728,28 +4854,28 @@ ENDMAP
###################################
# Hellmouth 3 (Lemuel)
-NAME: hellmouth_3
-MONS: weight:50 imp / quasit / shadow imp / manes / lemure, hell hound
-ITEM: good_item demon blade / good_item demon whip / good_item demon trident
+NAME: hellmouth_3
+MONS: weight:50 imp / quasit / shadow imp / manes / lemure, hell hound
+ITEM: good_item demon blade / good_item demon whip / good_item demon trident / nothing
ORIENT: float
-
+SUBST: ?:?.l, ?=l.
MAP
................l.............
..............................
-................l.............
-....ll..........l.............
-...lll..........l.............
-....l..........l..............
-.............lll..............
-..........lllllll.............
-........llllllllll............
-.......lll111111llll..........
-.......llll12Ad1lll...........
-........lll11111ll............
-.........lllll1ll.............
-...........llllll.............
-............llll......ll......
-.............ll........ll.....
+....??..........l?............
+...?ll?........?l?............
+..?lll?.........l.............
+...?l........??l?.............
+...........??lll?.............
+.........?lllllll?............
+.......?llllllllll??..........
+......?lll111111llll?.........
+......?llll12Ad1lll...........
+.......?lll11111ll?...........
+........?lllll1ll?............
+.........??llllll......?......
+...........?llll?.....ll?.....
+............?ll?.......ll?....
..............................
...................l..........
ENDMAP
@@ -4759,7 +4885,9 @@ ENDMAP
NAME: RatsNest
ORIENT: float
DEPTH: 4-8
-
+SHUFFLE: 23, 34
+MONS: rat / nothing, grey rat / nothing
+MONS: green rat / nothing, orange rat / nothing
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -4785,14 +4913,15 @@ xxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxxxxxx
ENDMAP
-MONS: rat, grey rat, green rat, orange rat
##############################################################################
# Beware the mummy's curse (Lemuel)
NAME: MiniTomb
ORIENT: float
DEPTH: 10-26
-
+MONS: large zombie / nothing, mummy, guardian mummy, greater mummy, large zombie
+MONS: mummy / nothing
+SHUFFLE: 2F, cbv
MAP
xxxxcccccxxxx
xxxxc$|$cxxxx
@@ -4808,7 +4937,7 @@ xxcccc=ccccxx
xxc.......cxx
xxc.......cxx
x$=.12321.=$x
-x$c.......c$x
+x$c..666..c$x
x3c.......c3x
xxcccc+ccccxx
xxxxxc.cxxxxx
@@ -4816,15 +4945,13 @@ xxxxxc.cxxxxx
xxxxxc.cxxxxx
xxxx.=.=.xxxx
xxxx$c.c$xxxx
-xxxx2c1c2xxxx
+xxxx6c1c6xxxx
xxxxxc1cxxxxx
xxxccc1cccxxx
xxccFc+cFccxx
xxcc@c@c@ccxx
ENDMAP
-MONS: large zombie, mummy, guardian mummy, greater mummy
-MONS: large zombie
#############################################################################
@@ -5615,9 +5742,8 @@ ENDMAP
NAME: david_greed
DEPTH: 10-26
-ITEM: nothing
-SHUFFLE: d|
-SHUFFLE: HS
+ITEM: nothing / any good_item
+SHUFFLE: d|, HS
MAP
xxxxxxxxx
xbbbbbbbx
@@ -5636,16 +5762,16 @@ ENDMAP
##############################################################################
# Defended altar
-NAME: david_defended_altar
-DEPTH: 6-20
-ITEM: nothing
-MONS: orc priest, deep elf priest / nothing
-SUBST: 1 : 1 2
+NAME: david_defended_altar
+DEPTH: 7-20
+ITEM: nothing
+SHUFFLE: 1I/2T
+MONS: orc priest, deep elf priest / w:30 nothing
MAP
.........
.ccccc...
.c1..c...
-.c1C.+.T.
+.c1C.+.I.
.c1..c...
.ccccc...
.........
@@ -6351,7 +6477,7 @@ NAME: fake_naga_vault
# room, and being hit by multiple mimics is un-fun.
DEPTH: 15-26
-
+MONS: mimic, guardian naga
MAP
xxxxxxxxx
x1111111x
@@ -6361,7 +6487,6 @@ x11.2.11x
xxxx+xxxx
ENDMAP
-MONS: mimic, guardian naga
#############################################################################
# Pandemonium lesser demon vaults
diff --git a/crawl-ref/source/makefile.dos b/crawl-ref/source/makefile.dos
index f56ea91ed8..4535c7df19 100644
--- a/crawl-ref/source/makefile.dos
+++ b/crawl-ref/source/makefile.dos
@@ -1,4 +1,4 @@
-# Make file for Dungeon Crawl (dos)
+# -*- Makefile -*- for Dungeon Crawl (dos)
#
# Modified for Crawl Reference by $Author$ on $Date$
diff --git a/crawl-ref/source/makefile.mgw b/crawl-ref/source/makefile.mgw
index 074f8783ae..f1bc19f861 100644
--- a/crawl-ref/source/makefile.mgw
+++ b/crawl-ref/source/makefile.mgw
@@ -1,4 +1,4 @@
-# Make file for Dungeon Crawl (Win32, MinGW)
+# -*- Makefile -*- for Dungeon Crawl (Win32, MinGW)
# makefile.obj includes a list of object files needed to build Crawl.
include makefile.obj
diff --git a/crawl-ref/source/makefile.unix b/crawl-ref/source/makefile.unix
index 95a50e7659..e1516fb05e 100644
--- a/crawl-ref/source/makefile.unix
+++ b/crawl-ref/source/makefile.unix
@@ -63,7 +63,7 @@ YCFLAGS := $(INCLUDES) $(CFOTHERS)
UTIL = util/
-LEX := lex
+LEX := flex
YACC := bison -y
YTABC := levcomp.tab.c
diff --git a/crawl-ref/source/mapdef.cc b/crawl-ref/source/mapdef.cc
index c20760cd6e..6a8a79802a 100644
--- a/crawl-ref/source/mapdef.cc
+++ b/crawl-ref/source/mapdef.cc
@@ -97,8 +97,8 @@ static std::string split_key_item(const std::string &s,
std::string *arg)
{
std::string::size_type
- norm = s.find("="),
- fixe = s.find(":");
+ norm = s.find("=", 1),
+ fixe = s.find(":", 1);
const std::string::size_type sep = norm < fixe? norm : fixe;
if (sep == std::string::npos)
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 9994cfc3e5..f299b36fed 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -5103,9 +5103,9 @@ bool message_current_target()
if (mons_near(montarget) && player_monster_visible(montarget))
{
- mprf( MSGCH_PROMPT, "You are currently targeting %s "
+ mprf( MSGCH_PROMPT, "Current target: %s "
"(use p/t/f to fire at it again.)",
- ptr_monam(montarget, DESC_NOCAP_THE) );
+ ptr_monam(montarget, DESC_PLAIN) );
return (true);
}
diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc
index e1ce320d7b..9eafee035f 100644
--- a/crawl-ref/source/mstuff2.cc
+++ b/crawl-ref/source/mstuff2.cc
@@ -851,6 +851,7 @@ void setup_dragon(struct monsters *monster, struct bolt &pbolt)
? draco_subspecies( monster ) : monster->type;
int scaling = 100;
+ pbolt.name.clear();
switch (type)
{
case MONS_FIREDRAKE:
@@ -872,7 +873,7 @@ void setup_dragon(struct monsters *monster, struct bolt &pbolt)
break;
case MONS_RED_DRACONIAN:
- pbolt.name += "searing breath";
+ pbolt.name += "searing blast";
#ifdef DEBUG_DIAGNOSTICS
mprf( MSGCH_DIAGNOSTICS, "bolt name: '%s'", pbolt.name.c_str() );
#endif
@@ -883,7 +884,7 @@ void setup_dragon(struct monsters *monster, struct bolt &pbolt)
break;
case MONS_WHITE_DRACONIAN:
- pbolt.name += "chilling breath";
+ pbolt.name += "chilling blast";
#ifdef DEBUG_DIAGNOSTICS
mprf( MSGCH_DIAGNOSTICS, "bolt name: '%s'", pbolt.name.c_str() );
#endif
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc
index 72c2748123..54062c881d 100644
--- a/crawl-ref/source/spells1.cc
+++ b/crawl-ref/source/spells1.cc
@@ -66,9 +66,7 @@ int blink(void)
// query for location {dlb}:
for (;;)
{
- mpr("Blink to where?", MSGCH_PROMPT);
-
- direction(beam, DIR_TARGET, TARG_ANY);
+ direction(beam, DIR_TARGET, TARG_ANY, false, "Blink to where?");
if (!beam.isValid || coord_def(beam.tx, beam.ty) == you.pos())
{
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc
index b5a19d385c..7d450a8f7d 100644
--- a/crawl-ref/source/spells3.cc
+++ b/crawl-ref/source/spells3.cc
@@ -187,21 +187,10 @@ bool detect_curse(bool suppress_msg)
return (success);
} // end detect_curse()
-int cast_smiting(int power)
+int cast_smiting(int power, dist &beam)
{
bool success = false;
- struct dist beam;
- struct monsters *monster = 0; // NULL {dlb}
-
- mpr("Smite whom?", MSGCH_PROMPT);
-
- direction( beam, DIR_TARGET, TARG_ENEMY );
-
- if (!beam.isValid)
- {
- canned_msg(MSG_OK);
- return (-1);
- }
+ monsters *monster = 0; // NULL {dlb}
if (mgrd[beam.tx][beam.ty] == NON_MONSTER
|| beam.isMe)
@@ -276,11 +265,9 @@ int airstrike(int power, dist &beam)
return (success);
} // end airstrike()
-int cast_bone_shards(int power)
+int cast_bone_shards(int power, bolt &beam)
{
bool success = false;
- struct bolt beam;
- struct dist spelld;
if (you.equip[EQ_WEAPON] == -1
|| you.inv[you.equip[EQ_WEAPON]].base_type != OBJ_CORPSES)
@@ -291,9 +278,6 @@ int cast_bone_shards(int power)
mpr("The corpse collapses into a mass of pulpy flesh.");
else
{
- if (spell_direction(spelld, beam) == -1)
- return (-1);
-
// practical max of 100 * 15 + 3000 = 4500
// actual max of 200 * 15 + 3000 = 6000
power *= 15;
diff --git a/crawl-ref/source/spells3.h b/crawl-ref/source/spells3.h
index 8d8a77e1b0..067117f979 100644
--- a/crawl-ref/source/spells3.h
+++ b/crawl-ref/source/spells3.h
@@ -14,6 +14,7 @@
struct dist;
+struct bolt;
// updated 24may2000 {dlb}
/* ***********************************************************************
@@ -33,7 +34,7 @@ int airstrike(int power, dist &beam);
/* ***********************************************************************
* called from: spell
* *********************************************************************** */
-int cast_bone_shards(int power);
+int cast_bone_shards(int power, bolt &);
// updated 24may2000 {dlb}
@@ -61,7 +62,7 @@ bool cast_selective_amnesia(bool force);
/* ***********************************************************************
* called from: ability - spell
* *********************************************************************** */
-int cast_smiting(int power);
+int cast_smiting(int power, dist &);
// updated 24may2000 {dlb}
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index a57bdb0245..6f333d6d04 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -2356,6 +2356,7 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike
blast.set_target(beam);
blast.is_tracer = false;
blast.flavour = BEAM_FRAG;
+ blast.hit = AUTOMATIC_HIT;
// Number of dice vary... 3 is easy/common, but it can get as high as 6.
blast.damage = dice_def( 0, 5 + pow / 10 );
@@ -2972,11 +2973,9 @@ int cast_apportation(int pow)
return (done);
}
-void cast_sandblast(int pow)
+void cast_sandblast(int pow, bolt &beam)
{
bool big = true;
- struct dist spd;
- struct bolt beam;
// this type of power manipulation should be done with the others,
// currently over in it_use2.cc (ack) -- bwr
@@ -2988,19 +2987,11 @@ void cast_sandblast(int pow)
{
int wep = you.equip[EQ_WEAPON];
if (you.inv[wep].base_type == OBJ_MISSILES
- && (you.inv[wep].sub_type == MI_STONE || you.inv[wep].sub_type == MI_LARGE_ROCK))
+ && (you.inv[wep].sub_type == MI_STONE
+ || you.inv[wep].sub_type == MI_LARGE_ROCK))
big = true;
}
- if (spell_direction(spd, beam) == -1)
- return;
-
- if (spd.isMe)
- {
- canned_msg(MSG_UNTHINKING_ACT);
- return;
- }
-
if (big)
{
dec_inv_item_quantity( you.equip[EQ_WEAPON], 1 );
diff --git a/crawl-ref/source/spells4.h b/crawl-ref/source/spells4.h
index 92cc3ae0ae..d76921f82a 100644
--- a/crawl-ref/source/spells4.h
+++ b/crawl-ref/source/spells4.h
@@ -39,7 +39,7 @@ void cast_intoxicate(int pow);
void cast_mass_sleep(int pow);
void cast_passwall(int pow);
void cast_rotting(int pow);
-void cast_sandblast(int powc);
+void cast_sandblast(int powc, bolt &beam);
void cast_see_invisible(int pow);
void cast_shatter(int pow);
diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc
index 97107db571..be3240dfb3 100644
--- a/crawl-ref/source/spl-cast.cc
+++ b/crawl-ref/source/spl-cast.cc
@@ -880,11 +880,11 @@ spret_type your_spells( int spc2, int powc, bool allow_fail )
testbits( flags, SPFLAG_GRID ) ? DIR_TARGET :
testbits( flags, SPFLAG_DIR ) ? DIR_DIR : DIR_NONE);
+ const char *prompt = get_spell_target_prompt(spc2);
if (dir == DIR_DIR)
- mpr("Which direction? ", MSGCH_PROMPT);
+ mpr(prompt? prompt : "Which direction? ", MSGCH_PROMPT);
- if (spell_direction( spd, beam, dir, targ,
- get_spell_target_prompt(spc2) ) == -1)
+ if (spell_direction( spd, beam, dir, targ, prompt ) == -1)
return (SPRET_ABORT);
if (testbits( flags, SPFLAG_NOT_SELF ) && spd.isMe)
@@ -1194,8 +1194,7 @@ spret_type your_spells( int spc2, int powc, bool allow_fail )
break;
case SPELL_SMITING:
- if (cast_smiting(powc) == -1)
- return (SPRET_ABORT);
+ cast_smiting(powc, spd);
break;
case SPELL_REPEL_UNDEAD:
@@ -1416,8 +1415,7 @@ spret_type your_spells( int spc2, int powc, bool allow_fail )
break;
case SPELL_BONE_SHARDS:
- if (cast_bone_shards(powc) == -1)
- return (SPRET_ABORT);
+ cast_bone_shards(powc, beam);
break;
case SPELL_BANISHMENT:
@@ -1796,7 +1794,7 @@ spret_type your_spells( int spc2, int powc, bool allow_fail )
break;
case SPELL_SANDBLAST:
- cast_sandblast(powc);
+ cast_sandblast(powc, beam);
break;
case SPELL_ROTTING:
diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h
index 758514fe91..f588cbdae8 100644
--- a/crawl-ref/source/spl-data.h
+++ b/crawl-ref/source/spl-data.h
@@ -291,7 +291,7 @@
},
{
- SPELL_PARALYZE, "Paralyze",
+ SPELL_PARALYZE, "Paralyse",
SPTYP_ENCHANTMENT,
SPFLAG_DIR_OR_TARGET,
4,
@@ -469,9 +469,9 @@
{
SPELL_SMITING, "Smiting",
SPTYP_HOLY,
- SPFLAG_NONE,
+ SPFLAG_TARGET | SPFLAG_NOT_SELF,
4,
- NULL
+ "Smite whom?"
},
{
@@ -677,7 +677,7 @@
1,
NULL
},
-
+
{
SPELL_VAMPIRIC_DRAINING, "Vampiric Draining",
SPTYP_NECROMANCY,
@@ -873,7 +873,7 @@
{
SPELL_BONE_SHARDS, "Bone Shards",
SPTYP_NECROMANCY,
- SPFLAG_NONE,
+ SPFLAG_DIR_OR_TARGET,
3,
NULL
},
diff --git a/crawl-ref/source/spl-util.cc b/crawl-ref/source/spl-util.cc
index fc16f70628..b0465fb75c 100644
--- a/crawl-ref/source/spl-util.cc
+++ b/crawl-ref/source/spl-util.cc
@@ -685,7 +685,8 @@ char spell_direction( struct dist &spelld, struct bolt &pbolt,
targeting_type restrict, int mode,
const char *prompt )
{
- message_current_target();
+ if (restrict != DIR_DIR)
+ message_current_target();
direction( spelld, restrict, mode, false, prompt );