summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/dat/altar.des414
-rw-r--r--crawl-ref/source/dat/clua/loadmaps.lua6
-rw-r--r--crawl-ref/source/dat/crypt.des144
-rw-r--r--crawl-ref/source/dat/entry.des71
-rw-r--r--crawl-ref/source/dat/float.des40
-rw-r--r--crawl-ref/source/dat/glass.des9
-rw-r--r--crawl-ref/source/dat/hive.des220
-rw-r--r--crawl-ref/source/dat/lab.des19
-rw-r--r--crawl-ref/source/dat/large.des37
-rw-r--r--crawl-ref/source/dat/mini.des125
-rw-r--r--crawl-ref/source/mon-util.h2
-rw-r--r--crawl-ref/source/util/levcomp.lpp17
12 files changed, 953 insertions, 151 deletions
diff --git a/crawl-ref/source/dat/altar.des b/crawl-ref/source/dat/altar.des
new file mode 100644
index 0000000000..2fb39ee218
--- /dev/null
+++ b/crawl-ref/source/dat/altar.des
@@ -0,0 +1,414 @@
+###############################################################################
+# altar.des: This is the place where minivaults (and floating vaults)
+# containing altars should go. Vaults particular to a specific
+# branch (Beogh altar minivaults for Orc:*, for example), may
+# go in the corresponding des-file. A few entry vaults contain
+# altars; these should always be in entry.des.
+#
+# There are two reasons for keeping altar vaults separate:
+# * This makes it easier to adapt for new gods.
+# * Easier tweaking of altar chances.
+###############################################################################
+
+######################################
+# I Temples (Multi-altar vaults)
+######################################
+
+NAME: minitemple
+TAGS: allow_dup
+# More common than the others.
+CHANCE: 20
+MAP
+cccccccccc
+cccccccccc
+cBcBcBcBcc
+G.c.c.c.Bc
+@.......Bc
+@.......Bc
+G.c.c.c.Bc
+cBcBcBcBcc
+cccccccccc
+cccccccccc
+ENDMAP
+
+NAME: jmf_multi_god_temple
+SHUFFLE: abc
+SUBST: a:=, b:x, c:x
+DEPTH: 8-
+MAP
+............
+.axxxxxxxxa.
+.x9......9x.
+.bT......Tb.
+.x..C..C..x.
+.cT......Tc.
+.xxxxmmxxxx.
+.xxx$$$$xxx.
+.xx8....8xx.
+..xx....xx..
+...xG..Gx...
+............
+ENDMAP
+
+NAME: jmf_multi_god_temple2
+DEPTH: 12-
+MAP
+............
+..vvvvvvvv..
+.vv......vv.
+.v..x..x..v.
+.v.Cx..xC.v.
+.v..x..x..v.
+.vT8x..x8Tv.
+.vvvx==xvvv.
+...Gx99xG...
+...+*99*+...
+...GxxxxG...
+............
+ENDMAP
+
+
+######################################
+# II General altars
+######################################
+
+NAME: old_standard_altar
+TAGS: allow_dup
+SHUFFLE: cvxx
+MAP
+...........
+.xxxx.xxxx.
+.xx.....xx.
+.x.......x.
+.x.......x.
+.....C.....
+.x.......x.
+.x.......x.
+.xx.....xx.
+.xxxx.xxxx.
+...........
+ENDMAP
+
+NAME: lemuel_round_altar
+TAGS: allow_dup
+SHUFFLE: cvxx
+MAP
+ xxxxx
+ xx...xx
+ xx.....xx
+ x.......x
+ x...C...@
+ x.......x
+ xx.....xx
+ xx...xx
+ xxxxx
+ENDMAP
+
+NAME: lemuel_crystal_altar
+TAGS: allow_dup
+MAP
+b.b
+.C.
+b.b
+ENDMAP
+
+NAME: lemuel_altar_in_water
+DEPTH: D:2-18, !Lair, !Hive, !Slime
+CHANCE: 9
+FLAGS: no_rotate
+: local brnd = crawl.random2(13)
+: if brnd > 10 then
+TAGS: no_monster_gen
+# this case almost always has altar access
+: else
+TAGS: no_monster_gen no_pool_fixup
+: end
+MAP
+ .........
+ ...wwwww...
+..wwwwwwwww..
+.wwwwwwwwwww..
+wwwwwwwwwwwww.
+wwwwwwCwwwwww.
+wwwwwwwwwwwww.
+.wwwwwwwwwww..
+..wwwwwwwww..
+ ...wwwww...
+ ........
+ENDMAP
+
+NAME: lemuel_altar_in_water2
+TAGS: no_pool_fixup no_monster_gen
+DEPTH: 2-18
+FLAGS: no_rotate
+CHANCE: 1
+MAP
+ www
+ wwwww
+ wwwwwww
+ @..Cwww
+ wwwwwww
+ wwwww
+ www
+ENDMAP
+
+NAME: lemuel_oklob_altar
+DEPTH: 6-18
+MONS: oklob plant, plant
+MAP
+ 2
+2C1
+ 2
+ENDMAP
+
+NAME: lemuel_hidden_altar
+DEPTH: 1-18, !Lair, !Orc, !Hive, !Slime
+SHUFFLE: XY
+SUBST: X = .
+SUBST: Y = =
+MAP
+.........
+.xxxXxxx.
+.xxx.xxx.
+.xxxYxxx.
+.X.YCY.X.
+.xxxYxxx.
+.xxx.xxx.
+.xxxXxxx.
+.........
+ENDMAP
+
+NAME: lemuel_sealed_altar_a
+CHANCE: 3
+DEPTH: 2-18, !Lair, !Orc, !Hive, !Slime
+MAP
+xxxxxxxxxxxxx
+x...........x
+x...........x
+x...........x
+x...........x
+x.....>.....x
+x.....C.....x
+x...........x
+x...........x
+x...........x
+x...........x
+xxxxxxxxxxxxx
+ENDMAP
+
+NAME: lemuel_sealed_altar_b
+CHANCE: 7
+DEPTH: 2-18, !Lair, !Orc, !Hive, !Slime
+MAP
+xxxxxxxxxxx
+x.........x
+x.........x
+x....>....x
+x....C....x
+x.........x
+x.........x
+xxxxxxxxxxx
+ENDMAP
+
+NAME: lemuel_tele_altar
+DEPTH: 2-18, !Lair, !Orc, !Hive, !Slime
+KFEAT: X = teleport trap
+MAP
+.............
+.xxxxxXxxxxx.
+.x.........x.
+.x.........x.
+.x.........x.
+.X....C....X.
+.x.........x.
+.x.........x.
+.x.........x.
+.xxxxxXxxxxx.
+.............
+ENDMAP
+
+NAME: lemuel_statue_altar
+DEPTH: 2-18, !Lair, !Hive, !Slime
+MAP
+.....
+.cFc.
+.c.c.
+.c.c.
+.c.c.
+.c.c.
+.cCc.
+.ccc.
+.....
+ENDMAP
+
+NAME: lemuel_coloured_pillars_altar
+DEPTH: 2-18, !Lair, !Hive, !Slime, !Orc
+FLAGS: no_rotate
+COLOUR: c = blue / yellow / red / cyan
+MAP
+xxxxxxxxxxxxxxxxxxxx
+...................x
+c...c...c...c...c..x
+..................Cx
+c...c...c...c...c..x
+...................x
+xxxxxxxxxxxxxxxxxxxx
+ENDMAP
+
+NAME: lemuel_upstairs_altar
+DEPTH: 2-12, !Lair, !Hive, !Slime, !Orc
+ORIENT: float
+SUBST: T:T.
+SUBST: ) = )}]
+MAP
+ccccccc
+cT...Tc
+c.....c
+c..C..c
+c.....c
+cT...Tc
+ccc+ccc
+ c.c
+ c.c
+ c.c
+ c.c
+ c)c
+ ccc
+ENDMAP
+
+######################################
+# III Special altars
+######################################
+
+NAME: lemuel_angel_altar
+DEPTH: 2-18, !Lair, !Orc, !Hive, !Slime
+MONS: angel
+KFEAT: C = altar_elyvilon / altar_zin / altar_shining_one
+MAP
+ .....
+ ..xmx..
+ ..xx.xx..
+..xxx.xxx..
+.xxxx1xxxx.
+.m...C...m.
+.xxxx.xxxx.
+..xxx.xxx..
+ ..xx.xx..
+ ..xmx..
+ENDMAP
+
+NAME: lemuel_hellish_altar
+DEPTH: 2-18, !Lair, !Hive, !Slime
+MONS: iron devil/orange demon, beast/rotting devil, lemure/manes, hellion
+SUBST: 2 = 23
+SUBST: 2 = 12
+SUBST: 3 = 3L
+: if you.absdepth() >14 then
+SUBST: 1 = 1:20 4
+: end
+SUBST: L = l.
+SUBST: C = C / P:1
+KFEAT: C = altar_lugonu/altar_yredelemnul/altar_kikubaaqudgha/altar_makhleb
+KFEAT: P = enter_abyss
+MAP
+....LLllLL.....
+...LllllllLLL..
+..Lll323lllLLL.
+.LLl32123lllLL.
+.LLl33C33llLL..
+..Lll323llLL...
+..LLll3llL.....
+...LLlllL......
+....LLLL.......
+.....LLLLL.....
+.......LLLL....
+ENDMAP
+
+NAME: david_defended_altar
+DEPTH: D:7-20, Orc, Elf, Snake
+SHUFFLE: 1ID/2TC
+TAGS: allow_dup
+MONS: orc priest, deep elf priest / w:30 nothing
+KFEAT: D = altar_beogh / w:2 altar_okawaru / w:2 altar_makhleb
+MAP
+ccccc...
+c1..c...
+c1D.+.I@
+c1..c...
+ccccc...
+ENDMAP
+
+NAME: lemuel_blue_sif_altar
+DEPTH: 2-18, !Lair, !Hive, !Slime, !Orc
+TAGS: no_monster_gen
+COLOUR: . = blue
+KFEAT: C = altar_sif_muna
+MAP
+xxxxxxxxxxxxxx
+...........xxx
+...........+Cx
+...........xxx
+xxxxxxxxxxxxxx
+ENDMAP
+
+NAME: lemuel_dead_fish_altar
+DEPTH: 2-18, !Hive, !Slime, !Orc
+TAGS: no_pool_fixup
+KMONS: 1 = giant goldfish zombie / big fish zombie / nothing
+KFEAT: 1 = deep_water
+KFEAT: C = altar_kikubaaqudgha / altar_yredelemnul
+MAP
+xxxxxxxxxxxxxxxx
+xxxx11111111xxxx
+xxxxwwwwwwwwxxxx
+..............Cx
+xxxxwwwwwwwwxxxx
+xxxx11111111xxxx
+xxxxxxxxxxxxxxxx
+ENDMAP
+
+# The mix of deep and shallow water is intended to keep the centaurs from
+# escaping without requiring the player to be able to cross deep water.
+NAME: lemuel_centaur_altar
+DEPTH: 7-20, Shoal
+TAGS: no_pool_fixup no_monster_gen
+MONS: centaur
+MAP
+xxxxxxxxxxxxx
+xxxxxxxxxxwxx
+xxwx.1.1.xxwx
+xwxx1.C.1xwwx
+xwwxWwwWwWwxx
+xwwWwwwwwwxxx
+xxwWwWWwwWxxx
+xxxwWwwWwxxxx
+xxxwwwWwWxxxx
+xxx......xxxx
+ENDMAP
+
+NAME: lemuel_mausoleum_altar
+DEPTH: 7-20, Crypt
+MONS: w:50 human zombie/orc zombie/elf zombie/w:5 ogre zombie/w:5 troll zombie
+MONS: w:50 human skeleton/orc skeleton/elf skeleton/w:5 ogre skeleton/w:5 troll skeleton
+MONS: mummy, wight, wraith, necrophage, ghoul
+NSUBST: ? = 1:C / *:1
+SUBST: 1 = 1:25 2 3 4:8 5:6 6:4 7:2
+KFEAT: C = altar_kikubaaqudgha / altar_yredelemnul
+KMONS: C = human zombie
+MAP
+ccccccc
+c?+.+?c
+ccc.ccc
+c?+.+?c
+ccc.ccc
+c?+.+?c
+ccc.ccc
+c?+.+?c
+ccc.ccc
+c?+.+?c
+ccc.ccc
+c?+.+?c
+ccc.ccc
+ccc+ccc
+cGc@cGc
+ENDMAP
diff --git a/crawl-ref/source/dat/clua/loadmaps.lua b/crawl-ref/source/dat/clua/loadmaps.lua
index f8e0f0a9b4..c462002101 100644
--- a/crawl-ref/source/dat/clua/loadmaps.lua
+++ b/crawl-ref/source/dat/clua/loadmaps.lua
@@ -7,9 +7,9 @@
------------------------------------------------------------------------------
local des_files = {
- "bazaar.des", "entry.des", "elf.des", "float.des", "hells.des", "hive.des",
- "lab.des", "lair.des", "large.des", "mini.des", "orc.des", "pan.des",
- "portal.des", "temple.des", "vaults.des", "crypt.des", "zot.des"
+ "altar.des", "bazaar.des", "entry.des", "elf.des", "float.des", "hells.des",
+ "hive.des", "lab.des", "lair.des", "large.des", "mini.des", "orc.des",
+ "pan.des", "portal.des", "temple.des", "vaults.des", "crypt.des", "zot.des"
}
for _, file in ipairs(des_files) do
diff --git a/crawl-ref/source/dat/crypt.des b/crawl-ref/source/dat/crypt.des
index 4f2acba0d8..5680fa5c0a 100644
--- a/crawl-ref/source/dat/crypt.des
+++ b/crawl-ref/source/dat/crypt.des
@@ -5,7 +5,46 @@
##############################################################################
# Crypt minivaults
-##############################################################################
+########################
+# Dead fish
+# As of 0.3.2 the fish zombies can't move, they're basically just decorative
+NAME: lemuel_dead_fish_pool
+DEPTH: Crypt:*
+# Lemuel also had Cocytus:*
+TAGS: no_pool_fixup
+SUBST: . : .w
+SUBST: 1 = w:50 1
+KFEAT: 1 = w
+KMONS: 1 = big fish zombie / giant goldfish zombie
+MAP
+...wwwww...
+..ww111ww..
+.ww11111ww.
+ww1111111ww
+w111111111w
+w111111111w
+ww1111111ww
+.ww11111ww.
+..ww111ww..
+...wwwww...
+ENDMAP
+
+###########################################################
+# tombs in the wall
+NAME: tombwall_bobbens
+TAGS: allow_dup
+DEPTH: Crypt
+MONS: w:5 small zombie/large zombie/w:1 large abomination/w:1 small abomination/w:1 skeletal warrior/w:1 necrophage/w:1 ghoul/w:1 rotting hulk/w:5 small skeleton/large skeleton/w:3 nothing
+MAP
+ccccccccccccccccccccccc
+ccc1c1c1c1c1c1c1c1c1ccc
+ccc+c+c+c+c+c+c+c+c+ccc
+.......................
+.......................
+.......................
+ENDMAP
+
+###########################################################
# small crypt building
NAME: minicrypt_bobbens
TAGS: mini_float allow_dup
@@ -27,7 +66,7 @@ c2+.....+2c
cccc+c+cccc
ENDMAP
-############################################################################
+###########################################################
# death oozes - they're sort of like garden slugs
NAME: minigarden_bobbens
TAGS: allow_dup
@@ -51,10 +90,10 @@ MAP
..........
ENDMAP
-############################################################################
+##############################################################################
# Tomb entries
-############################################################################
+###########################################################
# simple entrance
NAME: tomb_entry_simple_bobbens
ORIENT: float
@@ -81,7 +120,74 @@ c1.....1c
cccc.cccc
ENDMAP
-############################################################################
+###########################################################
+# small pyramid leading to the bigger one
+NAME: tomb_entry_pyramid_bobbens
+ORIENT: float
+TAGS: tomb_entry no_monster_gen
+MONS: sphinx
+MONS: w:1 mummy / w:9 guardian mummy
+MONS: mummy priest
+SUBST: ' = ~ .:50
+MAP
+........................
+........................
+..cccccccccccccccccccc..
+..cccccccccccccccccccc..
+..cc....2...........cc..
+..cc..............2.cc..
+..cc....cccccccccc''cc..
+..cc....c''''''''c''cc..
+..cc....c''ccccc'c''cc..
+..cc....c''cO'3''c''cc..
+..cc....c''ccccccc''cc..
+..cc.2..c''2''''''''cc..
+..cc....c'''''''''''cc..
+..cc....cccccccccccccc..
+..cc................cc..
+..cc....2......2....cc..
+..cc...ccc++++ccc...cc..
+..cc...cc......cc...cc..
+..cc.2.cc.G..G.cc.2.cc..
+..cc.V.cc......cc.V.cc..
+..cc...cc......cc...cc..
+..ccccccc.G..G.ccccccc..
+..ccccccc......ccccccc..
+........................
+.......1........1.......
+........................
+........................
+ENDMAP
+
+###########################################################
+# sphere entry
+NAME: tomb_entry_sphere_bobbens
+ORIENT: float
+TAGS: tomb_entry no_monster_gen no_rotate
+MONS: w:1 mummy / w:9 guardian mummy
+MONS: sphinx
+MONS: mummy priest
+MAP
+ ccccc
+ cccc.1.cccc
+ ccc.........ccc
+ cc......c......cc
+ cc....ccccccc....cc
+ c....cc.1.1.ccc..1c
+..cccc...........cc..cc
+.1c..cc...........c3O.c
+..+..2ccccc.F.ccccccccc
+.1c...c...............c
+..cc..cc.............cc
+ c...ccc.1..1.cc...c
+ cc....cccccccc...cc
+ cc......c......cc
+ ccc.........ccc
+ cccc.1.cccc
+ ccccc
+ENDMAP
+
+###########################################################
# forgotten tomb entrance
NAME: tomb_entry_forgotten_bobbens
ORIENT: float
@@ -101,7 +207,7 @@ cpp..
c...
ENDMAP
-############################################################################
+###########################################################
# she sells tomb entry shells by the sea shore
NAME: tomb_entry_shell_bobbens
TAGS: tomb_entry no_monster_gen no_item_gen
@@ -127,7 +233,11 @@ cc.....ccc1.....c
ccccccc
ENDMAP
-############################################################################
+
+##############################################################################
+# Crypt ends
+
+###########################################################
# churchlike map with customizeable monster sets
#
NAME: church_of_pain_bobbens
@@ -237,8 +347,8 @@ xxxxccc+cccxxxc7+.............+7=$*cccc+cccxxxx
ENDMAP
-############################################################################
-# gigantic sort of aquatic base, pretty good looking :)
+###########################################################
+# gigantic sort of aquatic base
#
NAME: cryptofortress_bobbens
ORIENT: encompass
@@ -275,6 +385,8 @@ KMONS: h = titan zombie/dragon zombie/golden dragon zombie
COLOUR: = = red
COLOUR: r = red
SUBST: r = v
+# emergency exits; most are closed
+NSUBST: ? = 3:= / *:v
MAP
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwv
@@ -284,13 +396,13 @@ vwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwv..........................vAwwwwwwwwwwwwwv
vwwwwwwwwwwwwwwv.........rrrrrrrr.........vAAAwwwwwwwwwwwv
vwwwwwwwwwwwwwwv.........r||||||r.........vAAAAAAwwwwwwwwv
-vwwwwwwvvvvvvvvv......rr=rr****rr=rr......vvvvvvvvvwwwwwwv
+vwwwwwwvvvv?vvvv......rr=rr****rr=rr......v?v?v?v?vwwwwwwv
vwwwwwwv.......v......r$$*rr++rr*$$r......v.......vwwwwwwv
-vwwwwwwv....H..v.....rrrr|r$$$$r|rrrr.....v.......vwwwwwwv
+vwwwwww?....H..v.....rrrr|r$$$$r|rrrr.....v.......?wwwwwwv
vwwwwwwv....H..+........rrr$$$$rrr........+.h..H..vwwwwwwv
-vwwwwwwv....H..v......L...r$$$$r...L......v....H..vwwwwwwv
+vwwwwww?....H..v......L...r$$$$r...L......v....H..?wwwwwwv
vwwwwwwv.h.vvvvv...rrr....rr++rr....rrr...v....H..vwwwwwwv
-vwwwwwwv...v...vv....rr.rrrU..Urrr.rr....vvv+v....vwwwwwwv
+vwwwwww?...v...vv....rr.rrrU..Urrr.rr....vvv+v....?wwwwwwv
vwwwwwwv...v.X..vv....rrr........rrr....vv...vvvvvvwwwwwwv
vwwwwwwv...+.....vv....r.U..BC..U.r....vvvv.....+Mvwwwwwwv
vwwwwwwv...v..V.$vvv...rr........rr...vvvM+.....vvvwwwwwwv
@@ -299,11 +411,11 @@ vwwwwwwv...vvvvvvv..vv....rr..rr....vv..vM+.....vvvwwwwwwv
vwwwwwwv...vvv...v...vv............vv...vvv.....+Mvwwwwwwv
vwwwwwwv...vv....+....vv..........vv....+....N..vvvwwwwwwv
vwwwwwwv...vNz...v.....vv........vv.....vvv.....+Mvwwwwwwv
-vwwwwwwv...v.M...v....G.vv......vvI.....vM+.....vvvwwwwwwv
+vwwwwww?...v.M...v....G.vv......vvI.....vM+.....vvvwwwwwwv
vwwwwwwv...v....vv....vvvvvvvvvvvvvv....vvv.....+Mvwwwwwwv
-vwwwwwAv.......vv....vv.....ll.....vv....vvv+v..vvvwwwwwwv
+vwwwwwA?.......vv....vv.....ll.....vv....vvv+v..vvvwwwwwwv
vwwwwwAv......vv....vv..............vv....vvMv..+Mvwwwwwwv
-vwwwwAAv.....vv....vv................vv....vvv..vvvwwwwwwv
+vwwwwAA?.....vv....vv................vv....vvv..vvvwwwwwwv
vwwwAAAv.....v....vv.......N..N.......vv....vv..+Mvwwwwwwv
vwvvvvvvvvvvvvv+vvvvv+vv.Mzz..zzM.vv+vvvvv+vvvvvvvvvvvvvwv
vwvv.........v..I.v....v..........v....v.........v..%*vvwv
diff --git a/crawl-ref/source/dat/entry.des b/crawl-ref/source/dat/entry.des
index 022af27bb5..2ef3df07c9 100644
--- a/crawl-ref/source/dat/entry.des
+++ b/crawl-ref/source/dat/entry.des
@@ -3,9 +3,74 @@
###############################################################################
##############################################################################
-# Entry vaults
+# Zaba's entry vaults
+##############################################################################
+
+NAME: entry_zaba_1
+TAGS: entry no_monster_gen no_item_gen
+FLAGS: no_rotate
+ORIENT: float
+SUBST: T = TV, ? = wW
+MAP
+xxx@xxx@xxx@xxx
+x.............x
+x.G.T.T.T.T.G.x
+x.............x
+xw?W?wwWww?W?wx
+xwwW?wwWww?Wwwx
+xwwWWwwWwwWWwwx
+xww?WwwWwwW?wwx
+xwwwW?wWw?Wwwwx
+xwwwWWwWwWWwwwx
+xwww?WwWwW?wwwx
+xwwwwWwWwWwwwwx
+xwwwwWWWWWwwwwx
+xwwww?WWW?wwwwx
+xwww?WWWWW?wwwx
+xww?WW...WW?wwx
+xw?WW.({[.WW?wx
+xww?WW...WW?wwx
+xwww?WWWWW?wwwx
+xwwww?????wwwwx
+xwwwwwwwwwwwwwx
+xwwwwwwwwwwwwwx
+xxxxxxxxxxxxxxx
+ENDMAP
+
+##############################################################
+# Zaba's second entry vault ever
+
+NAME: entry_zaba_2
+TAGS: entry
+ORIENT: float
+SHUFFLE: ([{>
+SUBST: ?:???!, ?=?., ?=!, !:cx, ===cc+
+MAP
+.................@.................
+.cccccc...cccccc...cccccc...cccccc.
+.c....c...c....c...c....c...c....c.
+.c.(..c...c.{..c...c..[.c...c..>.c.
+.c....cc=cc....cc=cc....cc=cc....c.
+.cc+ccc...cc+ccc...ccc+cc...ccc+cc.
+..!...+...+....+...+....+...+...!..
+..!!??!???!????!?.?!????!???!??!!..
+ ..!?.??.???.????.????.???.??.?!..
+ .!!?..??..???.....???..??..?!!.
+ @.!??...???...???...???...??!.@
+ .!!???....????.????....???!!.
+ ..!!????....??.??....????!!..
+ ..!!?????....?....?????!!..
+ ..!!!??????...??????!!!..
+ ...!!!???..?..???!!!...
+ ..!!!!???.???!!!!..
+ ...!!!!!+!!!!!...
+ ......@......
+ENDMAP
+
+
+##############################################################################
+# Lemuel's entry vaults
##############################################################################
-# Lemuel's entry vaults.
NAME: lemuel_entry_001
TAGS: entry
@@ -3981,7 +4046,7 @@ CHANCE: 5
ORIENT: float
ITEM: apple / sausage / nothing / stone / potion of water / w:30 nothing
SHUFFLE: ({[ , AB
-SUBST: A : x , B = = +:20 .:30, X = x=
+SUBST: A : x , B = +., X = x=
MONS: w:30 nothing / w:10 plant / w:3 fungus / w:1 worm
MAP
xxxxxxxxx@xxxxxxx
diff --git a/crawl-ref/source/dat/float.des b/crawl-ref/source/dat/float.des
index 3ad73576c2..4443bb689f 100644
--- a/crawl-ref/source/dat/float.des
+++ b/crawl-ref/source/dat/float.des
@@ -169,6 +169,46 @@ xxxxxxxxxxx3$$xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
+####################################
+# An old-fashioned vault, by Lemuel
+#
+NAME: traditional_vault_lemuel
+DEPTH: D:12-27, Vault
+ORIENT: float
+SUBST: 8 = 9 8
+SUBST: 9 = 9 0
+SUBST: 0 = 0 .
+KFEAT: $ = ^
+KITEM: $ = gold
+MAP
+........................
+wwwwwwwwwwwwwwwwwwwwwwww
+wcccccccccc==ccccccccccw
+wc$..................$cw
+wc.........99.........cw
+wc..cccccccccccccccc..cw
+wc0.c$....9999....$c.0cw
+wc..c.....9999.....c..cw
+wc..c..cccc++cccc..c..cw
+wc..c..c$......$c..c..cw
+wc..c..c...99...c..c..cw
+wc..c..c..cccc..c..c..cw
+wc00c..c..c||c..c..c00cw
+wc00c..c..c||c..c..c00cw
+wc..c..c..c++c..c..c..cw
+wc..c..c..9889..c..c..cw
+wc..c..c$.9889.$c..c..cw
+wc..c..cccccccccc..c..cw
+wc..c......99......c..cw
+wc0.c$............$c.0cw
+wc..ccccccc++ccccccc..cw
+wc.........00.........cw
+wc$........00........$cw
+wccccccccccccccccccccccw
+wwwwwwwwwwwwwwwwwwwwwwww
+........................
+ENDMAP
+
#############################################################################
# Insect pit (Lemuel)
#
diff --git a/crawl-ref/source/dat/glass.des b/crawl-ref/source/dat/glass.des
index bf420b76c1..40f88ac3e5 100644
--- a/crawl-ref/source/dat/glass.des
+++ b/crawl-ref/source/dat/glass.des
@@ -66,16 +66,15 @@ MAP
ENDMAP
#####################################################################
-# A good item encased in transparent stone or (rarely) permanent glass.
+# A good item encased in transparent stone.
NAME: item_on_display_b
CHANCE: 1
-SUBST: o : n o:1
TAGS: no_monster_gen no_item_gen
MAP
.....
-.ooo.
-.o*o.
-.ooo.
+.nnn.
+.n*n.
+.nnn.
.....
ENDMAP
diff --git a/crawl-ref/source/dat/hive.des b/crawl-ref/source/dat/hive.des
index dbfc2cf3fb..1d28c0aae5 100644
--- a/crawl-ref/source/dat/hive.des
+++ b/crawl-ref/source/dat/hive.des
@@ -154,9 +154,9 @@ KMONS: l = firedrake / w:200 nothing
KFEAT: l = l
ORIENT: float
MAP
-..................
-.'.aa'aa.'.'......
-..aaRa'...a'.'a...
+ .............
+.'.aa'aa.'.'....
+..aaRa'...a'.'a..
.'a2'Y.aaaX.aa.'..
.aV.1aaa'1aaa.'.a.
..aa21'2O2aaa4.aa.
@@ -166,9 +166,9 @@ MAP
.aa...aaa.aa......
.a..aaaa.'........
..''..a..a.llllll.
-....'..aaa.lLLLLl.
-.......''..llllll.
-..................
+ ...'..aaa.lLLLLl.
+ ...''..llllll.
+ ..........
ENDMAP
#############################################################################
@@ -252,6 +252,214 @@ MAP
....
ENDMAP
+##############################################################################
+# Hive vaults
+##############################################################################
+
+NAME: Hive_Balancer
+DEPTH: Hive:*
+TAGS: dummy
+CHANCE: 200
+MAP
+x
+ENDMAP
+# Note the higher weight to the empty vault:
+# this is because vaults in the Hive should be rare
+
+NAME: lemuel_Hive_Pool
+DEPTH: Hive:*
+SUBST: W=W. , ?:W. , !:W.
+MAP
+ WwwwW
+ ??wwwwwwW
+ ????wwwwwwwwW
+ ????wwwwwwwwwW
+????wwwwwwwwWW
+??..WwwwwwwW
+ ?!.WwwwwwW
+ !...Wwwwww
+ !!!..WwwwW
+ !!!..Wwwww
+ !!!WwwW
+ !!!wwW
+ !!!w
+ WW
+ENDMAP
+
+NAME: lemuel_Hive_Moat
+DEPTH: Hive:*
+ORIENT: float
+MAP
+ www
+ wwwwwww
+ wwww.wwww
+ wwww. .wwww
+ wwww. .wwww
+ wwww.).].wwww
+ wwww..}..wwww
+ wwww. .wwww
+ wwww. .wwww
+ wwww.wwww
+ wwwwwww
+ www
+ENDMAP
+
+NAME: lemuel_Hive_Zombies
+DEPTH: Hive:1-3
+ORIENT: float
+TAGS: no_monster_gen
+MONS: killer bee zombie/weight:2 killer bee larva zombie, necromancer, plant
+SHUFFLE: {}
+SUBST: . = .:50 1:4 3:1
+SUBST: > = <>
+SUBST: }=} .:3
+SUBST: {={ .:3
+SUBST: == +:5 = .:3
+SUBST: ? = a.
+MAP
+ aaaaaa
+ aa?..?aa
+aaaaaaa?....?aa
+a{...........?aaa
+aaaaaa?........?aaaa
+ aa...........?aaaa
+ a?..111........?aa
+ a?.11111........?a
+ aa.11111........?aa
+ a?.111..........?aaaaaaaa
+ a?.....................}a
+ccccccca...............?aaaaaaaa
+c|..=2.+...........??aaaa
+cccccccaa?.......?aaaa
+ aa?....?aaa
+ aaa...aa
+ a?.?a
+ aaa??aa
+ aaa????a
+ aaa....?aa
+ aa?.>..aaa
+ a?....aa
+ aa..?aa
+ a?aaa
+ aaa
+ENDMAP
+
+NAME: lemuel_Hive_Oklob
+DEPTH: Hive:*
+MONS: oklob plant
+MAP
+1
+ENDMAP
+
+NAME: lemuel_Big_Bunch_of_Bees
+MONS: killer bee/weight:1 killer bee larva
+MAP
+ 11111
+ 111111111
+ 11111111111
+ 11111111111
+ 1111111111111
+ 1111111111111
+ 1111111111111
+ 11111111111
+ 11111111111
+ 111111111
+ 11111
+ENDMAP
+
+NAME: lemuel_troublesome_eels
+DEPTH: Hive:*
+KFEAT: X = deep_water
+KMONS: X = electrical eel
+SUBST: W=w1.
+SUBST: . = 1:1 .
+SUBST: 1 = 1 .:5
+MONS: plant
+MAP
+ ....111....
+ ...1111111...
+...11WwwwW11...
+..11WwwXwwW11..
+.11WwwXwXwwW11.
+11WwwXwXwXwwW11
+11WwXwXwXwXwW11
+11WwwXwXwXwwW11
+.11WwwXwXwwW11.
+..11WwwXwwW11..
+...11WwwwW11...
+ ...1111111...
+ ....111....
+ENDMAP
+
+NAME: lemuel_wasp_nest
+DEPTH: Hive:2-3
+MONS: yellow wasp/weight:2 red wasp
+CHANCE: 1
+SUBST: 1=1 .:15
+SUBST: ?=a.
+MAP
+ a?@?a
+ a?.?a
+ aaaaa.aaaaa
+ aa111a.a111aa
+aa111aa.aa111aa
+a111aaa.aaa111a
+a?1.??a.a??.1?a
+aa?...a.a...?aa
+ aaa?.....?aaa
+ aaa?.?aaa
+ aa.aa
+ a.a
+ a.a
+ a*a
+ aaa
+ENDMAP
+
+NAME: lemuel_hive_grid_a
+DEPTH: Hive:*
+CHANCE: 4
+MAP
+a.a.a.a.a.a.a.a.a
+aa.a.a.a.a.a.a.aa
+a.a.a.a.a.a.a.a.a
+aa.a.a.a.a.a.a.aa
+a.a.a.a.a.a.a.a.a
+aa.a.a.a.a.a.a.aa
+a.a.a.a.a.a.a.a.a
+aa.a.a.a.a.a.a.aa
+a.a.a.a.a.a.a.a.a
+aa.a.a.a.a.a.a.aa
+a.a.a.a.a.a.a.a.a
+ENDMAP
+
+NAME: lemuel_hive_grid_b
+DEPTH: Hive:*
+CHANCE: 6
+MAP
+a.a.a.a.aa
+aa.a.a.a.a
+a.a.a.a.aa
+aa.a.a.a.a
+a.a.a.a.aa
+aa.a.a.a.a
+a.a.a.a.aa
+ENDMAP
+
+NAME: lemuel_hive_grid_c
+DEPTH: Hive:*
+CHANCE: 10
+MAP
+ aa.aa
+ aa.a.aa
+ aa.a.a.aa
+ aa.a.a.a.aa
+ aa.a.a.a.a.aa
+ aa.a.a.a.aa
+ aa.a.a.aa
+ aa.a.aa
+ aa.aa
+ENDMAP
+
##############################################################################
# Hive branch end maps
diff --git a/crawl-ref/source/dat/lab.des b/crawl-ref/source/dat/lab.des
index 85213b05b4..4fb8687c83 100644
--- a/crawl-ref/source/dat/lab.des
+++ b/crawl-ref/source/dat/lab.des
@@ -140,16 +140,16 @@ MAP
...............
.ccccccccccccc.
.cm....k....lc.
-.cgcecccccccdc.
+.cgceccccdccfc.
.c.c.........c.
-.c.cccfc.cSccc.
+.c.cccfc.ccccc.
.c.....c.c...c.
-.ccecc.c.c.cfc.
-.c...c.c.cicfc.
+.ccecc.c.h.cfc.
+.c...c.c.iicfc.
.c.c.c.c.f.cfc.
-.c.c.c.c.c.cfc.
+.c.c.g.c.c.cfc.
.c.c.cdchc.cfc.
-.c.c.......cfc.
+.c.c.......gfc.
.cdcccecccccfc.
...............
ENDMAP
@@ -159,8 +159,8 @@ ENDMAP
NAME: labyrinth_trapped
TAGS: minotaur generate_loot allow_dup
MONS: minotaur
-NSUBST: g = . / c
-NSUBST: D = . / D
+NSUBST: g = 1:. / *:c
+NSUBST: D = 1:. / *:D
KFEAT: d = axe trap / dart trap / needle trap / blade trap
KFEAT: D = teleport trap
SUBST: c : vvc
@@ -235,6 +235,7 @@ ENDMAP
# Labyrinth furniture
NAME: lab_block
TAGS: lab allow_dup
+SHUFFLE: vcx
MAP
.....
.xxx.
@@ -279,6 +280,7 @@ ENDMAP
# Teaser: inaccessible loot
NAME: labyrinth_glass_1
TAGS: lab allow_dup
+SUBST: % = %*
MAP
......
.mmmm.
@@ -321,6 +323,7 @@ NAME: labyrinth_baited_teleportation_trap
TAGS: lab allow_dup
KFEAT: Y = teleport trap
KITEM: Y = any good_item
+SHUFFLE: cxv
CHANCE: 1
MAP
.....
diff --git a/crawl-ref/source/dat/large.des b/crawl-ref/source/dat/large.des
index e038792d45..59227ec107 100644
--- a/crawl-ref/source/dat/large.des
+++ b/crawl-ref/source/dat/large.des
@@ -121,6 +121,43 @@ xxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
+##########################
+# Ogre Cave, by Lemuel
+#
+NAME: lemuel_ogre_cave
+ORIENT: float
+DEPTH: D:9-15, Orc
+TAGS: no_pool_fixup
+MONS: ogre, two-headed ogre, ogre-mage / Erolcha, plant / fungus
+MONS: ogre zombie, two-headed ogre zombie
+SHUFFLE: WX/ZY , 12/12/67
+SUBST: W:ww. , X:. , Z:x , Y:+.=
+SHUFFLE: *5/WW
+SUBST: *=. , W=wW , !:$.
+SUBST: 5 = 5 6 = ^:5 I:5 F:5
+MAP
+ xxxxx
+ xxxxxx12xx
+ xx*..x.122xx
+ xxxxxxxxx5xxx...11xx
+xxWxxxxxxx*xxxxx....xx
+xxWWxxxxxx.xxxxxx**xxxx
+xWWWxxxxxx.xxxxxxx**xxxxx
+WWWW**xxxxx.xxxxxxx5xxxxxxxx
+xWWWW..xxxxx.xxxxxx.xccccccx
+xxWW....1xxx.xxxxx.xxc$$$$cx
+@..X...111..xxxxxx.xxc$$$$cx
+xxWWW...11xxxxxxx.xxxc!!!!cx
+xWWW....*xxxxxxx*..xxc+ccccx
+xxWWW..**xxxxxx*....x..xxxxx
+ xxWWWW*xxxxxxx*.11.Y.xx
+ xxWWWWWxxxxxxx1221xxx
+ xxxxWWWWxxxxxxx23xx
+ xxxxxWWxxxxxxxxx|xx
+ xxWWWWxxxxxxxxxxxx
+ WWWWxxx
+ENDMAP
+
################################################################################
#
# Steading of the Giant Chief
diff --git a/crawl-ref/source/dat/mini.des b/crawl-ref/source/dat/mini.des
index 9bb3979212..3f2d9c3e49 100644
--- a/crawl-ref/source/dat/mini.des
+++ b/crawl-ref/source/dat/mini.des
@@ -1,4 +1,4 @@
-###############################################################################
+##############################################################################
# mini.des: This is the place where minivaults should go. These are defined
# without any ORIENT line. Vaults with ORIENT lines are stored in
# either float.des or large.des.
@@ -389,23 +389,6 @@ xxx@I@xxx
ENDMAP
##############################################################################
-# Defended altar
-#
-NAME: david_defended_altar
-DEPTH: D:7-20, Orc, Elf, Snake
-SHUFFLE: 1ID/2TC
-TAGS: allow_dup
-MONS: orc priest, deep elf priest / w:30 nothing
-KFEAT: D = altar_beogh / w:2 altar_okawaru / w:2 altar_makhleb
-MAP
-ccccc...
-c1..c...
-c1D.+.I@
-c1..c...
-ccccc...
-ENDMAP
-
-##############################################################################
NAME: minivault_1
TAGS: allow_dup
@@ -426,44 +409,6 @@ ENDMAP
###################################
-NAME: minivault_2
-TAGS: allow_dup
-SHUFFLE: cvxx
-MAP
-...........
-.xxxx.xxxx.
-.xx.....xx.
-.x.......x.
-.x.......x.
-.....C.....
-.x.......x.
-.x.......x.
-.xx.....xx.
-.xxxx.xxxx.
-...........
-ENDMAP
-
-###################################
-#
-NAME: minitemple
-TAGS: allow_dup
-# More common than the others.
-CHANCE: 20
-MAP
-cccccccccc
-cccccccccc
-cBcBcBcBcc
-G.c.c.c.Bc
-@.......Bc
-@.......Bc
-G.c.c.c.Bc
-cBcBcBcBcc
-cccccccccc
-cccccccccc
-ENDMAP
-
-###################################
-
NAME: minivault_4
TAGS: allow_dup
MAP
@@ -938,6 +883,27 @@ MAP
.3.......33.
ENDMAP
+##############################
+# Worms!
+#
+NAME: worms_lemuel
+DEPTH: D:6-15, Lair, Swamp, Hive, Snake
+FLAGS: no_rotate
+SUBST: W = W:20 w
+KFEAT: 1 = W
+KMONS: 1 = w:20 worm / swamp worm / w:5 brain worm
+MAP
+ WWWWWWW
+ WWWWWWWWWWW
+WWWxxxxxxxWWW
+WWWx11111xWWW
+WWWx11111+WWW
+WWWx11111xWWW
+WWWxxxxxxxWWW
+ WWWWWWWWWWW
+ WWWWWWW
+ENDMAP
+
###################################
# Solitary fountain
#
@@ -976,48 +942,6 @@ MAP
ENDMAP
###################################
-# jmf: Multi-god temple thing
-#
-NAME: multi_god_temple
-SHUFFLE: abc
-SUBST: a:=, b:x, c:x
-DEPTH: 14-
-MAP
-............
-.axxxxxxxxa.
-.x9......9x.
-.bT......Tb.
-.x..C..C..x.
-.cT......Tc.
-.xxxxxxxxxx.
-.xxx$$$$xxx.
-.xx8....8xx.
-..xx....xx..
-...xG..Gx...
-............
-ENDMAP
-
-###################################
-# jmf: Another multi-god temple thing
-#
-NAME: multi_god_temple2
-DEPTH: 14-
-MAP
-............
-..vvvvvvvv..
-.vv......vv.
-.v..x..x..v.
-.v.Cx..xC.v.
-.v..x..x..v.
-.vT8x..x8Tv.
-.vvvx==xvvv.
-...Gx99xG...
-...+*99*+...
-...GxxxxG...
-............
-ENDMAP
-
-###################################
# Billiards (David Ploog)
#
NAME: billiards
@@ -1204,11 +1128,11 @@ SUBST: ! = %:90 *:30 |:10
ITEM: wand of digging/wand of disintegration/ring of teleportation/stone of earth elementals
MAP
...........
-.vvGvvvGvv.
+.vvnvvvnvv.
.vAAABAAAv.
.xxxxxxxxx.
.v???d???v.
-.vvGvvvGvv.
+.vvnvvvnvv.
.....@.....
ENDMAP
@@ -1469,7 +1393,6 @@ xxxxxx
ENDMAP
NAME: doghouse_v4
-
TAGS: mini_float
DEPTH: 4-8
SHUFFLE: ?1T
diff --git a/crawl-ref/source/mon-util.h b/crawl-ref/source/mon-util.h
index 4835b1783d..4c8f250d6e 100644
--- a/crawl-ref/source/mon-util.h
+++ b/crawl-ref/source/mon-util.h
@@ -275,7 +275,7 @@ struct monsterentry
unsigned long resists;
short weight;
- // experience is calculated like this:
+ // [Obsolete] Experience used to be calculated like this:
// ((((max_hp / 7) + 1) * (mHD * mHD) + 1) * exp_mod) / 10
// ^^^^^^ see below at hpdice
// Note that this may make draining attacks less attractive (LRH)
diff --git a/crawl-ref/source/util/levcomp.lpp b/crawl-ref/source/util/levcomp.lpp
index 4d7e0278bd..8812326257 100644
--- a/crawl-ref/source/util/levcomp.lpp
+++ b/crawl-ref/source/util/levcomp.lpp
@@ -101,20 +101,20 @@ NSPACE [^\ \t\r\n]
<MAPDEF>[ ]*\r?\n ;
-<LUA>\s*\}\}[ \t]*$ { BEGIN(INITIAL); }
-<LUA>[^\r\n]+\}\}[ \t]*$ {
+<LUA>\s*\}\}[ \t\r]*$ { BEGIN(INITIAL); }
+<LUA>[^\r\n]+\}\}[ \t\r]*$ {
settext(true, 2);
BEGIN(INITIAL);
return LUA_LINE;
}
<LUA>[^\r\n]+ {
- settext();
+ settext(true);
return LUA_LINE;
}
<LUA>\r?\n ;
-<LUA_ONELINER>[^\r\n]+$ {
- settext();
+<LUA_ONELINER>[^\r\n]+\r?$ {
+ settext(true);
return LUA_LINE;
}
<LUA_ONELINER>\r?\n { BEGIN(INITIAL); }
@@ -159,21 +159,21 @@ NSPACE [^\ \t\r\n]
<ARGUMENT>\r?\n { BEGIN(INITIAL); }
-<TOEOL>.*\\[ \t]*$ {
+<TOEOL>.*\\[ \t\r]*$ {
settext(true, 1);
return STRING;
}
<TOEOL>.+$ {
BEGIN(INITIAL);
- settext();
+ settext(true);
return STRING;
}
<TOEOL>\r?\n ;
^[ \t]*#.* ;
-^\s*MAP[ \t]*$ { BEGIN(MAPDEF); }
+^\s*MAP[ \t\r]*$ { BEGIN(MAPDEF); }
^[ \t]*: { BEGIN(LUA_ONELINER); return MAIN; }
@@ -221,6 +221,7 @@ KMASK: { BEGIN(ARGUMENT); return KMASK; }
[\ \t]+ ;
\r?\n ;
+\r ;
. return CHARACTER;
%%