summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-04-05 14:49:52 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-04-05 14:49:52 +0000
commita3ed7b6290c0b2ed92590fe4021a451886af85a1 (patch)
treea294d8dceab0ceda9420b96c73f4adad99746b0d
parent8d230ac236d999741e99f427634f908a8fd8452d (diff)
downloadcrawl-ref-a3ed7b6290c0b2ed92590fe4021a451886af85a1.tar.gz
crawl-ref-a3ed7b6290c0b2ed92590fe4021a451886af85a1.zip
Updated build instructions for DOS, Windows, Linux.
Fixed targeting for Sandblast, Bone Shards, verified that targeting works okay for all spells (woof). Updated level layouts with more random features (David). Made makefile.unix default to using flex instead of lex. Tweaked beam names for dragon breath. s/Paralyze/Paralyse/ Don't show current target for direction-only targeting. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1222 c06c8d41-db1a-0410-9941-cceddc491573
-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 );