diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-03-05 14:30:56 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-03-05 14:30:56 +0000 |
commit | 91b3a4bcce5335372cf9369169a337c12157cde9 (patch) | |
tree | 18eb025ba015cef4884cd405da1140b61cdf8720 /crawl-ref | |
parent | beb469a9f1450e99042798eebeb1d23a4c45311b (diff) | |
download | crawl-ref-91b3a4bcce5335372cf9369169a337c12157cde9.tar.gz crawl-ref-91b3a4bcce5335372cf9369169a337c12157cde9.zip |
Updated Elf:7 levels (David).
New vaults (Lemuel).
Tweaked dungeon.cc so that vault and minivault depths are no longer hardcoded,
and the depth settings in .des files are respected.
Okawaru now looks to see if the player already has enough ammo before doing
ammo gifts (needs testing, maybe some tuning of the enough-ammo condition).
Map lexer now accepts any non-space character in the map, for SUBST convenience.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@979 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/dat/splev.des | 520 | ||||
-rw-r--r-- | crawl-ref/source/dat/vaults.des | 97 | ||||
-rw-r--r-- | crawl-ref/source/dungeon.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/maps.cc | 11 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 54 | ||||
-rw-r--r-- | crawl-ref/source/util/levcomp.lpp | 2 |
6 files changed, 424 insertions, 270 deletions
diff --git a/crawl-ref/source/dat/splev.des b/crawl-ref/source/dat/splev.des index abc7c12c95..5353ac308c 100644 --- a/crawl-ref/source/dat/splev.des +++ b/crawl-ref/source/dat/splev.des @@ -1190,83 +1190,69 @@ PLACE: Elf:7 TAGS: no_pool_fixup FLAGS: no_rotate ORIENT: float -CHANCE: 5 -# all water should be shallow, except for the two 2x4 parts (that's deep) -# flipping is welcome - +CHANCE: 7 MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage MONS: random, random - MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxx -xXXXXXXXXXXXXXXXXXXXXXXXXXx -xX|$*.....WWW.WWW.....*$*Xx -xXXX$XXXXcccc+ccccXXXXX$*Xx -xX2XXXcccc.......ccccXXX$Xx -xX.Xccc....5...5....cccXXXx -xX.cc.................ccXXx -xX.c....3....4....3....c.Xx -xX.+.........U.........+.Xx -xX.c......2.2.2.2......c.Xx -xX.cc.................cc.Xx -xX.Xcc.cccccc.cccccc.cc..Xx -xX.XXc.c.3.ww.ww.4.ccc...Xx -xX3XXc.....ww.ww.........Xx -xX$$$ccc...ww.ww...cXXXX.Xx -xX$$$XXc.1.ww.ww.5.cXXXX.Xx -xX$$$XXcccccc.ccccccX12..Xx -xXXX+XXXXXXXc.cXXXXXXXXX.Xx -xX|*|*|**|*XXWXX$|$*$|$|.Xx -xX**|*|||||XcWcX|$|$*$*$.Xx -xX5|*||4**|XcWcX$*$*$*$|3Xx -xX|**|*|||*Xc.cX|$|$|$|$.Xx -xXXXXXXXXXXXc.cXXXXXXXXXXXX -xxxxxxxxxxxxx@xxxxxxxxxxxxx +ccccccccccccccccccccccccc +c2ccccccc.......ccccccccc +c.cccc....5...5....cccccc +c.cc.................cccc +c.c....3....4....3....c.c +c.+.........U.........+.c +c.c......2.2.2.2......c.c +c.cc.................cc.c +c.ccc.cccccc.cccccc.cc..c +c.ccc.c.3.ww.ww.4.ccc...c +c3ccc.....ww.ww.........c +c$$$ccc...ww.ww...ccccc.c +c$$$ccc.1.ww.ww.5.ccccc.c +c$$$cccccccc.ccccccc12..c +ccc+cccccccc.cccccccccc.c +c|*|*|**|*ccWcc$|$*$|$|.c +c**|*|||||ccWcc|$|$*$*$.c +c5|*||4**|ccWcc$*$*$*$|3c +c|**|*|||*cc.cc|$|$|$|$.c +cccccccccccc.cccccccccccc +xxxxxxxxxxxx@xxxxxxxxxxxx ENDMAP ####################################### NAME: elf_hall_gauntlet_fiery PLACE: Elf:7 -TAGS: no_pool_fixup FLAGS: no_rotate ORIENT: float -CHANCE: 5 -# all water should be shallow -# flipping is welcome - +CHANCE: 3 MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage MONS: random, random - +SUBST: l = l w W MAP -xxxxxxxxxxxxxxxxxxxxxxxxxxx -xXXXXXXXXXXXXXXXXXXXXXXXXXx -xX|$*.....lll.lll.....*$*Xx -xXXX$XXXXcccc+ccccXXXXX$*Xx -xX2XXXcccc.......ccccXXX$Xx -xX.Xccc....5...5....cccXXXx -xX.cc.................ccXXx -xX.c....3....4....3....c.Xx -xX.+.........U.........+.Xx -xX.c......2.2.2.2......c.Xx -xX.cc.................cc.Xx -xX.Xcc.cccccc.cccccc.cc..Xx -xX.XXc.c.3.WW.WW.4.ccc...Xx -xX3XXc.....WW.WW.........Xx -xX$$$ccc...WW.WW...cXXXX.Xx -xX$$$XXc.1.WW.WW.5.cXXXX.Xx -xX$$$XXcccccc.ccccccX12..Xx -xXXX+XXXXXXXc.cXXXXXXXXX.Xx -xX|*|*|**|*Xc.cX$|$*$|$|.Xx -xX**|*|||||Xc.cX|$|$*$*$.Xx -xX5|*||4**|XXlXX$*$*$*$|3Xx -xX|**|*|||*Xc.cX|$|$|$|$.Xx -xXXXXXXXXXXXc.cXXXXXXXXXXXX -xxxxxxxxxxxxx@xxxxxxxxxxxxx +ccccccccccccccccccccccccc +c2ccccccc.......ccccccccc +c.cccc....5...5....cccccc +c.cc.................cccc +c.c....3....4....3....c.c +c.+.........U.........+.c +c.c......2.2.2.2......c.c +c.cc.................cc.c +c.ccc.cccccc.cccccc.cc..c +c.ccc.c.3.ww.ww.4.ccc...c +c3ccc.....ww.ww.........c +c$$$ccc...ww.ww...ccccc.c +c$$$ccc.1.ww.ww.5.ccccc.c +c$$$cccccccc.ccccccc12..c +ccc+cccccccc.cccccccccc.c +c|*|*|**|*cc.cc$|$*$|$|.c +c**|*|||||cc.cc|$|$*$*$.c +c5|*||4**|cclcc$*$*$*$|3c +c|**|*|||*cclcc|$|$|$|$.c +cccccccccccc.cccccccccccc +xxxxxxxxxxxx@xxxxxxxxxxxx ENDMAP ############################################################################## @@ -1277,36 +1263,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ~ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$ce**|||**eccccccce%*%%%*%ec$$ccccxc -cxc..c$$=....6....ccccccc....7....c$$c..cxc +cxc..c$$=....7....ccccccc....7....c$$c..cxc cx.d%c$ccccc...ccccccccc=ccc...ccccc$c*e.xc cx.d%cc=.c.cc.cc.|.ccccc.|.cc.cc.c.c==|e.xc cxc..cc$.c**ccc..c..ccc..c..ccc|*c.$cc..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcccc$$$c*|*c...|.5.c.5.|...c***c$$$ccccxc +cxccccc$$|*|*c...c...U...c...c***|$$cccccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcccc$$$c*|*c...|...c...|...c***c$$$ccccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccccccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...ccc...ccc......4cccccxc -cxccccc...3...cc...cc|cc...cc...3...cccccxc -cxcccc.........+5.cc*|*=c.5+.........ccccxc -cxcccc...2|2...c..cce|ecc..c...2|2...ccccxc -cxccc=c..c^c..cc..3cc|cc3..cc..c^c..cccccxc -cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.e|ccc.....ccccc.......ccccc.....ccc%d.xc -cx.e*cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cxccccccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...ccc...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc*|*=c4.+.........ccccxc +cxcccc....|....c.6cce|ecc6.c....|....ccccxc +cxcccc=..c~c..cc...cc|cc...cc..c~c..cccccxc +cxc..=cccc+cccccc...ccc...cccccc+ccccc..cxc +cx.e|ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc +cx.e*cc.......ccccccccccccccc.......cc%d.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1318,36 +1307,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$ce%*%%%%%ecccccc=e**|||**ec$$ccccxc -cxc..c$$c....6....ccccc=c....7....c$$=..cxc +cxc..c$$c....7....ccccc=c....7....c$$=..cxc cx.e*c$ccccc...=cccccc=ccccc...ccccc$c*e.xc cx.e%cc=.c.cc.cc...ccc=c...cc.cc.c.c=c|e.xc cxc..cc$.c**ccc..c..ccc..c..ccc|*c.$cc..cxc -cxccc=c$$|*|*c..2c...U...c2..c***|$$cccccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcccc$$$c*|*c.....5.c.5.....c***c$$$ccccxc +cxccc=c$$|*|*c...c...U...c...c***|$$cccccxc +cxcccc$$$c|**...4c...!...c4..3*||c$$$ccccxc +cxcccc$$$c*|*c.......c.......c***c$$$ccccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccccccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...c=c...ccc......4cccccxc -cxccccc...3...cc...cc|cc...cc...3...cccccxc -cxcccc.........+5.cc*|*cc.5+.........ccccxc -cxcccc...2|2...c..cce|ecc..c...2|2...ccccxc -cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc +cxccccccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...c=c...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc*|*cc4.+.........ccccxc +cxcccc....|....c.6cce|ecc6.c....|....ccccxc +cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.e|ccc.....ccccc.......ccccc.....ccc%d.xc -cx.e*c=4.1.3..ccccccccccccccc..3.1.4cc%d.xc -cxc..=c.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...cc...cc.cc..ccc...2..3cccccxc -cxcccccc......|^..ccc.ccc.^|.......ccccccxc +cx.e|ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc +cx.e*c=.......ccccccccccccccc.......cc%d.xc +cxc..=c...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1359,36 +1351,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$ce%%%%%*%eccccccce**|||**ec$$=cccxc -cxc..c$$c....6....ccccccc....7....=$$c..cxc +cxc..c$$c....7....ccccccc....7....=$$c..cxc cx.e|c$ccccc...ccc=ccccccccc...ccccc$c*e.xc cx.e*=c=.c.cc.cc...ccccc...cc.cc.c.c=c%e.xc cxc..cc$.c**ccc..c..ccc..c..ccc|*c.$cc..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$cc=ccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$c=ccxc -cxcccc$$$c*|*c.....5.c.5.....c***c$$$c=ccxc +cxccccc$$|*|*c...c...U...c...c***|$$cc=ccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$c=ccxc +cxcccc$$$c*|*c.......c.......c***c$$$c=ccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$c=ccxc -cxccccccc...cccccc.......cccccc...cccc=ccxc -cxccccc4......ccc...ccc...ccc......4cc=ccxc -cxccccc...3...cc...cc|cc...cc...3...cc=ccxc -cxcccc.........+5.cc*|*cc.5+.........c=ccxc -cxcccc...2|2...c..cce|ecc..c...2|2...c=ccxc -cxccccc..c^c..cc..3=c|cc3..cc..c^c..cc=ccxc +cxccccccc...cccccc...?...cccccc...cccc=ccxc +cxccccc.....?.ccc...ccc...ccc.?.....cc=ccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cc=ccxc +cxcccc.........+.4cc*|*cc4.+.........c=ccxc +cxcccc....|....c.6cce|ecc6.c....|....c=ccxc +cxccccc..c~c..cc...=c|cc...cc..c~c..cc=ccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.d%ccc.....ccccc.......ccccc.....ccc|e.xc -cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc*e.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc|e.xc +cx.d%cc.......ccccccccccccccc.......cc*e.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1400,36 +1395,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$ce%*%%%%%eccccccce**|||**ec$$ccccxc -cxc..=$$c....6....ccccccc....7....c$$c..cxc +cxc..=$$c....7....ccccccc....7....c$$c..cxc cx.e%c$ccccc...ccccccccccccc...ccccc$c*e.xc cx.e*cc=.c.cc.cc...ccccc...cc.cc.c.c=c|e.xc cxc..cc$.c**c=c..c..ccc..c..c=c|*c.$cc..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$c=cccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcccc$$$c*|*c.....5.c.5.....c***c$$$ccccxc +cxccccc$$|*|*c...c...U...c...c***|$$c=cccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcccc$$$c*|*c.......c.......c***c$$$ccccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccccccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...=cc...ccc......4cccccxc -cxccccc...3...cc...cc|cc...cc...3...cccccxc -cxcccc.........+5.cc*|*cc.5+.........ccccxc -cxcccc...2|2...c..cce|ecc..c...2|2...ccccxc -cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc +cxccccccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...=cc...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc*|*cc4.+.........ccccxc +cxcccc....|....c.6cce|ecc6.c....|....ccccxc +cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.d%ccc.....ccccc.......ccccc.....ccc*e.xc -cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc|e.xc -cxc..cc.....22cccc.......cccc22.....c=..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3=ccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc*e.xc +cx.d%cc.......ccccccccccccccc.......cc|e.xc +cxc..cc...!...cccc.......cccc...!...c=..cxc +cxccccc.......ccc~6cc?cc6~ccc.......=ccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1441,36 +1439,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$cd%%%%%%%dc==c===e%%%%%%%ec$$ccccxc -cxc..c$$c....6....ccc=ccc....7....c$$c..cxc +cxc..c$$c....7....ccc=ccc....7....c$$c..cxc cx.e|=$ccccc...cccccc=cccccc...ccccc$c*e.xc cx.e*ccc.c.cc.cc...cc=cc...cc.cc.c.c=c|e.xc cxc..cc$.c**ccc..c..c=c..c..ccc|*c.$c=..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcccc$$$c*|*c.....5.c.5.....c***c$$$ccccxc +cxccccc$$|*|*c...c...U...c...c***|$$cccccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcccc$$$c*|*c.......c.......c***c$$$ccccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccccccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...ccc...ccc......4cccccxc -cxccccc...3...cc...c=|cc...cc...3...cccccxc -cxcccc.........+5.cc|||cc.5+.........ccccxc -cxcccc...2|2...c..cce|ecc..c...2|2...=cccxc -cxccccc..c^c..cc..3cc|cc3..cc..c^c..cc=ccxc +cxccccccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...ccc...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.c=|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc|||cc4.+.........ccccxc +cxcccc....|....c.6cce|ecc6.c....|....=cccxc +cxccccc..c~c..cc...cc|cc...cc..c~c..cc=ccxc cxc..c=ccc+cccccc...ccc...cccccc+ccccc..cxc -cx.e|=cc.....ccccc.......ccccc.....ccc|e.xc -cx.e|cc4.1.3..ccccccccccccccc..3.1.4cc|e.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cx.e|=cc.~~~.ccccc.......ccccc.~~~.ccc|e.xc +cx.e|cc.......ccccccccccccccc.......cc|e.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1482,36 +1483,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$ce%%%%%%%eccccccce**|||**ec$$ccccxc -cxc..c$$c....6....cccccc=....7....c$$c..cxc +cxc..c$$c....7....cccccc=....7....c$$c..cxc cx.e|c$cccc=...cccccccc=cccc...ccccc$c*e.xc cx.e*cc=.c.cc.cc...ccccc...cc.cc.c.c=c|e.xc cxc..cc$.c**ccc..c..ccc..c..ccc|*c.$cc..cxc -cxcc=cc$$|*|*c..2c...U...c2..c***|$$c=cccxc -cxcc=c$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcc=c$$$c*|*c.....5.c.5.....c***c$$$ccccxc +cxcc=cc$$|*|*c...c...U...c...c***|$$c=cccxc +cxcc=c$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcc=c$$$c*|*c.......c.......c***c$$$ccccxc cxcc=c$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccc=ccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...ccc...ccc......4cccccxc -cxccccc...3...cc...cc|cc...cc...3...cccccxc -cxcccc.........+5.cc*|*cc.5+.........ccccxc -cxcccc...2|2...c..ccd|dcc..c...2|2...ccccxc -cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc +cxccc=ccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...ccc...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc*|*cc4.+.........ccccxc +cxcccc....|....c.6ccd|dcc6.c....|....ccccxc +cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.e*ccc.....ccccc.......ccccc.....ccc%d.xc -cx.e|cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccc=c3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcc=ccc.......|^.ccc.ccc.^|.......ccccccxc +cx.e*ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc +cx.e|cc.......ccccccccccccccc.......cc%d.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccc=c.......ccc~6cc?cc6~ccc.......cccccxc +cxcc=ccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccc===c...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1523,36 +1527,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$cd|*|||**dcccccccd*||*|**dc$$ccccxc -cxc..c$$c....6....ccccccc....7....c$$c..cxc +cxc..c$$c....7....ccccccc....7....c$$c..cxc cx.e|c$ccccc...ccccccccccccc...ccccc$c%e.xc cx.e|c=c.c.cc.cc...ccccc...cc.cc.c.c=c%e.xc cxc..cc$.c**ccc..c..ccc..c..ccc|*c.$c=..cxc -cxcc=cc$$|*|*c..2c...U...c2..c***|$$cccccxc -cxcc=c$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcc=c$$$c*|*c.....5.c.5.....c***c$$$ccccxc +cxcc=cc$$|*|*c...c...U...c...c***|$$cccccxc +cxcc=c$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcc=c$$$c*|*c.......c.......c***c$$$ccccxc cxcc=c$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxcc=cccc...cccccc.......cccccc...cccccccxc -cxcc=cc4......ccc...ccc...ccc......4cccccxc -cxccc=c...3...cc...cc%cc...cc...3...cccccxc -cxcccc.........+5.cc*|%cc.5+.........ccccxc -cxcccc...2|2...c..cce%ecc..c...2|2...ccccxc -cxccc=c..c^c..cc..3cc|cc3..cc..c^c..cccccxc +cxcc=cccc...cccccc...?...cccccc...cccccccxc +cxcc=cc.....?.ccc...ccc...ccc.?.....cccccxc +cxccc=c.2.!.?.cc.6.cc%cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc*|%cc4.+.........ccccxc +cxcccc....|....c.6cce%ecc6.c....|....ccccxc +cxccc=c..c~c..cc...cc|cc...cc..c~c..cccccxc cxc..ccccc+cccccc...c=c...cccccc+ccccc..cxc -cx.e|ccc.....ccccc.......ccccc.....ccc*e.xc -cx.e|cc4.1.3..ccccccccccccccc..3.1.4cc*e.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cx.e|ccc.~~~.ccccc.......ccccc.~~~.ccc*e.xc +cx.e|cc.......ccccccccccccccc.......cc*e.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1564,36 +1571,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$ce*|||||*ec==ccc=e*|||||*ec$$ccccxc -cxc..=$$c....6....=cc=c=c....7....=$$c..cxc +cxc..=$$c....7....=cc=c=c....7....=$$c..cxc cx.e%c$ccccc...ccccc=c=ccccc...ccccc$c|e.xc cx.e%cc=.c.cc.cc...ccccc...cc.cc.c.cc=|e.xc cxc..cc$.c**ccc..c..ccc..c..ccc|*c.$cc..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$cc=ccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$c=ccxc -cxcccc$$$c*|*c.....5.c.5.....c***c$$$c=ccxc +cxccccc$$|*|*c...c...U...c...c***|$$cc=ccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$c=ccxc +cxcccc$$$c*|*c.......c.......c***c$$$c=ccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$c=ccxc -cxccccccc...cccccc.......cccccc...cccc=ccxc -cxccccc4......ccc...ccc...ccc......4==cccxc -cxccccc...3...cc...cc%cc...cc...3...cccccxc -cxcccc.........+5.cc*%*cc.5+.........ccccxc -cxcccc...2|2...c..cce|e=c..c...2|2...ccccxc -cxccc=c..c^c..cc..3cc*cc3..cc..c^c..cccccxc +cxccccccc...cccccc...?...cccccc...cccc=ccxc +cxccccc.....?.ccc...ccc...ccc.?.....==cccxc +cxccccc.2.!.?.cc.6.cc%cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc*%*cc4.+.........ccccxc +cxcccc....|....c.6cce|e=c6.c....|....ccccxc +cxccc=c..c~c..cc...cc*cc...cc..c~c..cccccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.e%ccc.....ccccc.......ccccc.....ccc%d.xc -cx.e%cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3=ccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cx.e%ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc +cx.e%cc.......ccccccccccccccc.......cc%d.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......=ccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1605,36 +1615,39 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxcccc$$=e**|||**eccccccce%%|%|%%e=$$ccccxc -cxc..c$$c....6....==ccccc....7....c$$c..cxc +cxc..c$$c....7....==ccccc....7....c$$c..cxc cx.d|c$ccccc...cccc=cc=ccccc...ccccc$c%d.xc cx.d|ccc.c.cc.cc...cc=cc...cc.c=.c.ccc%d.xc cxc..cc$.c|*ccc..c..=cc..c..ccc|*c.$cc..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcccc$$$c*||c.....5.c.5.....c***c$$$ccccxc +cxccccc$$|*|*c...c...U...c...c***|$$cccccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcccc$$$c*||c.......c.......c***c$$$ccccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccccccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...ccc...ccc......4cccccxc -cxccccc...3...cc...cc|cc...cc...3...cccccxc -cxcccc.........+5.cc||*cc.5+.........ccccxc -cxcccc...2|2...c..c=e|ecc..c...2|2...ccccxc -cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc +cxccccccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...ccc...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc||*cc4.+.........ccccxc +cxcccc....|....c.6c=e|ecc6.c....|....ccccxc +cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.d%ccc.....ccccc.......ccccc.....ccc%d.xc -cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc +cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc +cx.d%cc.......ccccccccccccccc.......cc%d.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc cxccccccc...ccccccccc.ccccccccc...cccccccxc ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP @@ -1646,40 +1659,43 @@ PLACE: Elf:7 CHANCE: 1 ORIENT: float FLAGS: no_rotate -ITEM: scroll of teleportation, scroll of paper - +ITEM: scroll of teleportation, any scroll MONS: deep elf high priest, deep elf demonologist MONS: deep elf annihilator, deep elf sorcerer MONS: deep elf death mage -MONS: curse skull, curse toe - +MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing +MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob +SUBST: ~ = ^ .:30 +SUBST: ! = 1 5 +SUBST: ? = . ? +SUBST: ? : 2 3 MAP ccccccccccccccccccccccccccccccccccccccccccc cxccc====ccccc=======cccc====ccccccccccccxc cxcc=cccc=ccc=ccccccc=c==cccc=cccccccccccxc cxcc=c$$ce**|||**eccc=ccce|*|*|*|ec$$ccccxc -cxc..c$$=....6....ccccccc....7....c$$c..cxc +cxc..c$$=....7....ccccccc....7....c$$c..cxc cx.e%c$ccccc...=cccccccccccc...ccccc$c%d.xc cx.e%ccc.c.cc.cc...ccccc...cc.cc.c.ccc%d.xc cxc..cc$.c|*ccc..c..ccc..c..ccc|*c.$cc..cxc -cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc -cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc -cxcccc$$$c*||c.....5.c.5.....c***c$$$ccccxc +cxccccc$$|*|*c...c...U...c...c***|$$cccccxc +cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc +cxcccc$$$c*||c.......c.......c***c$$$ccccxc cxcccc$ccccccc..ccc+ccc+ccc..ccccccc$ccccxc -cxccccccc...cccccc.......cccccc...cccccccxc -cxccccc4......ccc...ccc...ccc......4cccccxc -cxccccc...3...cc...cc|cc...cc...3...cccccxc -cxcccc.........+5.cc||*cc.5+.........ccccxc -cxcccc...2|2...c..ccd|dcc..c...2|2...ccccxc -cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc +cxccccccc...cccccc...?...cccccc...cccccccxc +cxccccc.....?.ccc...ccc...ccc.?.....cccccxc +cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc +cxcccc.........+.4cc||*cc4.+.........ccccxc +cxcccc....|....c.6ccd|dcc6.c....|....ccccxc +cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc -cx.d%ccc.....ccccc.......ccccc.....ccc%d.xc -cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc -cxc..cc.....22cccc.......cccc22.....cc..cxc -cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc -cxcccccc.......|^.ccc.ccc.^|.......ccccccxc -cxccc...ccccccccc.ccccccccc...cccccccccccxc -ccccccccccccccccc@ccccccccccccccccccccccccc +cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc +cx.d%cc.......ccccccccccccccc.......cc%d.xc +cxc..cc...!...cccc.......cccc...!...cc..cxc +cxccccc.......ccc~6cc?cc6~ccc.......cccccxc +cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc +cxccccccc...ccccccccc.ccccccccc...cccccccxc +ccccccccccccccccccccc@ccccccccccccccccccccc ENDMAP ############################################################################## diff --git a/crawl-ref/source/dat/vaults.des b/crawl-ref/source/dat/vaults.des index 0339e79efb..fcba2bffed 100644 --- a/crawl-ref/source/dat/vaults.des +++ b/crawl-ref/source/dat/vaults.des @@ -222,7 +222,8 @@ # ############################################################################### -default-depth: 1-27 +# Set the default depth for vaults. +default-depth: 12-26 ############################################################################## # Entry vaults @@ -4514,6 +4515,77 @@ MAP ...................l.......... ENDMAP +############################################################################## +# Rats! (Lemuel) +NAME: RatsNest +ORIENT: float +DEPTH: 3-8 + +MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxx +xxx343.xx.xxxxxxxx.334433xxxxxxxxx23...x +xx.222...xxxxxxxx..224422xxxxxx1111...xx +x..111..xxxxxxxxx..111111.xxx.111...xxxx +xx.111..xxxxxxxxxx.11111..x......xxxxxxx +xxxx..xx.x.xxxxxx.xx..........xxxxxxxxxx +xxxxx.xxx.x..x.xx.x.xx....x.xxxxxxxxxxxx +xxxxx...x.xxx.x33xx.xxxx.xxxxxxxxxxxxxxx +xxxxxxx.x.xxxx221x.xxx...xxxxxxxxxxxxxxx +xxxxxxxx.xxxxx111.xxxx.xxxxxxxxxxxxxxxxx +xxxxxxxxx..xxx.x.x.xxx.xxxxxxxxxxxxxxxxx +xxxxxxxxxx..x.xx.x.xx.xxxxxxxxxxxxxxxxxx +xxxxxxxxxxxx..xx.xx.x.xxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxx.xxxx.xxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx +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 + +MAP +xxxxcccccxxxx +xxxxc$|$cxxxx +xxxxc$|$cxxxx +xxxxc$4$cxxxx +xxcccc=ccccxx +xxc$55155$cxx +xxc1211121cxx +xxc...F...cxx +xxc.......cxx +xxc.......cxx +xxcccc=ccccxx +xxc.......cxx +xxc.......cxx +x$=.12321.=$x +x$c.......c$x +x3c.......c3x +xxcccc+ccccxx +xxxxxc.cxxxxx +xxxxxc.cxxxxx +xxxxxc.cxxxxx +xxxx.=.=.xxxx +xxxx$c.c$xxxx +xxxx2c1c2xxxx +xxxxxc1cxxxxx +xxxccc1cccxxx +xxccFc+cFccxx +ENDMAP + +MONS: large zombie, mummy, guardian mummy, greater mummy +MONS: large zombie + ############################################################################# NAME: vault_1 @@ -5284,6 +5356,9 @@ ENDMAP # NOTE: Minivaults must NOT have an ORIENT: attribute. Including an ORIENT: # attribute makes the map a normal vault, and mayhem can result. +# Default depth for minivaults. +default-depth: 8-27 + NAME: minivault_1 MAP @@ -5948,6 +6023,26 @@ MAP ............... ENDMAP +############################################################################## +# Things aren't always what they seem (Lemuel) +NAME: fake_naga_vault + +# Intentionally moved this deeper because explore will gladly run into the +# room, and being hit by multiple mimics is un-fun. + +DEPTH: 15-26 + +MAP +xxxxxxxxx +x1111111x +x1111111x +x1111111x +x11.2.11x +xxxx+xxxx +ENDMAP + +MONS: mimic, guardian naga + ############################################################################# # Pandemonium lesser demon vaults ############################################################################# diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index 236d6d5b16..a658f48a49 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -4013,7 +4013,7 @@ static int builder_normal(int level_number, char level_type, spec_room &sr) // Can't have vaults on you.where_are_you != BRANCH_MAIN_DUNGEON levels if (vault == -1 && player_in_branch( BRANCH_MAIN_DUNGEON ) - && level_number > 10 && level_number < 26 && one_chance_in(9)) + && one_chance_in(9)) vault = random_map_for_depth(level_number); if (vault != -1) @@ -4056,7 +4056,7 @@ static int builder_normal(int level_number, char level_type, spec_room &sr) { plan_main(level_number, 0); - if (one_chance_in(3) && level_number > 6) + if (one_chance_in(3)) { int mvault = random_map_for_depth(level_number, true); if (mvault != -1) @@ -4075,8 +4075,7 @@ static int builder_normal(int level_number, char level_type, spec_room &sr) // sometimes roguey_levels generate a special room roguey_level(level_number, sr); - if (level_number > 6 - && player_in_branch( BRANCH_MAIN_DUNGEON ) + if (player_in_branch( BRANCH_MAIN_DUNGEON ) && one_chance_in(4)) { int mvault = random_map_for_depth(level_number, true); @@ -4212,8 +4211,7 @@ static void builder_extras( int level_number, int level_type ) if (level_number >= 11 && level_number <= 23 && one_chance_in(15)) place_specific_stair(DNGN_ENTER_LABYRINTH); - if (level_number > 6 - && player_in_branch( BRANCH_MAIN_DUNGEON ) + if (player_in_branch( BRANCH_MAIN_DUNGEON ) && one_chance_in(3)) { int mvault = random_map_for_depth(level_number, true); diff --git a/crawl-ref/source/maps.cc b/crawl-ref/source/maps.cc index 7df752a3e8..f4e0033b2e 100644 --- a/crawl-ref/source/maps.cc +++ b/crawl-ref/source/maps.cc @@ -305,11 +305,12 @@ int random_map_for_depth(int depth, bool want_minivault) for (unsigned i = 0, size = vdefs.size(); i < size; ++i) if (vdefs[i].depth.contains(depth) - // Tagged levels cannot be selected by depth. This is - // the only thing preventing Pandemonium demon vaults from - // showing up in the main dungeon. - && vdefs[i].tags.empty() - && vdefs[i].is_minivault() == want_minivault) + // Tagged levels cannot be selected by depth. This is + // the only thing preventing Pandemonium demon vaults from + // showing up in the main dungeon. + && !vdefs[i].has_tag("entry") + && !vdefs[i].has_tag("pan") + && vdefs[i].is_minivault() == want_minivault) { rollsize += vdefs[i].chance; diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 70c86b192e..31a1927af8 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -319,6 +319,54 @@ static int random_undead_servant(int religion) return (thing_called); } +static const item_def *find_missile_launcher(int skill) +{ + for (int i = 0; i < ENDOFPACK; ++i) + { + if (!is_valid_item(you.inv[i])) + continue; + + const item_def &item = you.inv[i]; + if (is_range_weapon(item) + && range_skill(item) == skill_type(skill)) + { + return (&item); + } + } + return (NULL); +} + +static int ammo_count(const item_def *launcher) +{ + int count = 0; + const missile_type mt = launcher? fires_ammo_type(*launcher) : MI_DART; + + for (int i = 0; i < ENDOFPACK; ++i) + { + if (!is_valid_item(you.inv[i])) + continue; + + const item_def &item = you.inv[i]; + if (item.base_type == OBJ_MISSILES && item.sub_type == mt) + count += item.quantity; + } + + return (count); +} + +static bool need_missile_gift() +{ + const int best_missile_skill = best_skill(SK_SLINGS, SK_RANGED_COMBAT); + const item_def *launcher = find_missile_launcher(best_missile_skill); + return (you.piety > 80 + && random2( you.piety ) > 70 + && !grid_destroys_items( grd[you.x_pos][you.y_pos] ) + && one_chance_in(8) + && you.skills[ best_missile_skill ] >= 8 + && (launcher || best_missile_skill == SK_DARTS) + && ammo_count(launcher) < 20 + random2(35)); +} + void pray(void) { unsigned char was_praying = you.duration[DUR_PRAYER]; @@ -526,11 +574,7 @@ void pray(void) } if (you.religion == GOD_OKAWARU - && you.piety > 80 - && random2( you.piety ) > 70 - && !grid_destroys_items( grd[you.x_pos][you.y_pos] ) - && one_chance_in(8) - && you.skills[ best_skill(SK_SLINGS, SK_RANGED_COMBAT) ] >= 9) + && need_missile_gift()) { success = acquirement( OBJ_MISSILES, you.religion ); if (success) diff --git a/crawl-ref/source/util/levcomp.lpp b/crawl-ref/source/util/levcomp.lpp index c10e719a7f..9441ca0306 100644 --- a/crawl-ref/source/util/levcomp.lpp +++ b/crawl-ref/source/util/levcomp.lpp @@ -62,7 +62,7 @@ NSPACE [^\ \t\r\n] <MAPDEF>^\s*ENDMAP { BEGIN(INITIAL); } -<MAPDEF>^[a-zA-Z_&0-9|$+.@^~()\[\]=<>{}%*\-?]+ { +<MAPDEF>^[^ \r\n\t]+ { settext(); return MAP_LINE; } |