diff options
-rw-r--r-- | crawl-ref/source/dat/altar.des | 414 | ||||
-rw-r--r-- | crawl-ref/source/dat/clua/loadmaps.lua | 6 | ||||
-rw-r--r-- | crawl-ref/source/dat/crypt.des | 144 | ||||
-rw-r--r-- | crawl-ref/source/dat/entry.des | 71 | ||||
-rw-r--r-- | crawl-ref/source/dat/float.des | 40 | ||||
-rw-r--r-- | crawl-ref/source/dat/glass.des | 9 | ||||
-rw-r--r-- | crawl-ref/source/dat/hive.des | 220 | ||||
-rw-r--r-- | crawl-ref/source/dat/lab.des | 19 | ||||
-rw-r--r-- | crawl-ref/source/dat/large.des | 37 | ||||
-rw-r--r-- | crawl-ref/source/dat/mini.des | 125 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/util/levcomp.lpp | 17 |
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; %% |