Fresh light D/Depths encompass vault edits
[crawl.git] / crawl-ref / source / dat / des / variable / d_encompass.des
1 ################################################################################
2 # d_encompass.des: Encompass vaults that can place somewhere in D.
3 ################################################################################
4
5 ################################################################################
6 # Zero! Nine! Eight!
7 #
8 NAME:    hangedman_slaughterboxes
9 TAGS:    no_pool_fixup no_monster_gen no_item_gen patrolling uniq_d_encompass
10 ORIENT:  encompass
11 DEPTH:   Depths:2-
12 PLACE:   D:$, Depths:$
13 WEIGHT:  1 (D:$), 2 (Depths:$), 10
14 MONS:    fungus, plant
15 KMONS:   S = 0 band
16 KMONS:   # = 9 band
17 KMONS:   = = draconian annihilator / draconian knight / draconian monk
18 KFEAT:   ^ = stone_arch
19 KFEAT:   - = enter_depths
20 KFEAT:   = = enter_zot
21 SHUFFLE: :;, `~, 34, 67, !?, XZ / yz
22 SUBST:   % = %:40 $:20 ., * = *:30 %, | = |:30 *
23 SHUFFLE: ABCDE / BADCE / AGHIC / ACGHE, BDF
24 SUBST:   ACF = ., BDGHI = x, E : .x
25 SHUFFLE: JKLMN / KJMLN / JPQRL / JLPQN, KMO
26 SUBST:   JLO = ., KMPQR = x, N : .x
27 SHUFFLE: cdefg / dcfeg / cijke / ceijg, dfh
28 SUBST:   ceh = ., dfijk = x, g : .x
29 SHUFFLE: nopqr / onqpr / ntuvp / nptur, oqs
30 SUBST:   nps = ., oqtuv = x, r : .x
31 SUBST:   X = xx', y= x'', Z = xx., z = x..
32 SUBST:   ;` = ., :~ = x, T = TTV, U = TUU
33 SUBST:   7? = ., 36! = 0, Y : 09, 5 = 09, 4 = 9
34 SUBST:   " : WW', _  = C, @ = G
35 NSUBST:  ' = 7:S / 2:# / 6 = S:3 .:2 / *:.
36 : if you.absdepth() > 20 then
37 : kmons('9 = place:Depths:' .. you.depth() - 1 .. ' 9')
38 SUBST:   & : a:45 c:8 vb x:2, a : c:15 vb
39 MARKER:  ^ = lua:props_marker { portal=1 }
40 :    if you.where() == dgn.level_name(dgn.br_entrance("Zot")) then
41 SUBST:   ) = =, >]} = .
42 :    end
43 : else
44 SUBST:   & : a:80 x:15 c:3 v:1 b:1, a : c:38 v:2 b:2
45 :    if you.where() == dgn.level_name(dgn.br_entrance("Depths")) then
46 SUBST:   }] = ., ) = -, > = <
47 :    end
48 : end
49 MAP
50    xxxxxxxxxxxxxxx      xxxxx       xxxxx
51   xxxxxxxxxxxxxxxxx    xxxxxxx    xxxxxxaaaaaaaaaaaaaaa
52  xxxZZZZZZZZZZZZxxxxxxxxxXXXxxxxxxxxxZZaaaaaaaaaaaaaaaaa
53 xxxZ............ZxxxxxxXX'''XXxxxxxZZ..aaalalalalalalaaaa
54 xxZ..`x~x`x~x`x..ZZXXXX'''x'''XXZZZ....aalllllllllllllaaaa
55 xxZ.`x........`....'''''''x''''''......aal%%%%*****|||laaa
56 xxZ.x..~xxx`x.x....'x'''x'''x'''x...{..aal%........38|llaa
57 xxZ.~.~x''''`.~...x'''x'''x'''x''.x..[.aal%.&4&&..&&3|laaa
58 xxZ.x.x'`~`'x.x....'x'''x'''x'''x...(..aal%.48&&.&&&.*llaa
59 xxZ.`.x'~0~'x.`....''''''''''''''......aal%.&&&...&..*laaa
60 xxZ.x.x'`~`'x.x..aaaaaaaaaaaaaaaaaaaaaaaal%.&&.|.....*llaa
61 xxZ.~.`''''x~.~.aaaaraaaaaaaEaaaaaaaaaaal&&.....|.&&.*laaa
62 xxZ.x.x`xxx~..x.aa9...0.&.0..67aalllllll&&&+.....&&&.%llaa
63 xxZ.`........x`.aa.nop.&+&.ADC6aal%%%%%%&&.m+...&&84.%laaa
64 xxZ.x`x~x`x~x`..ar.qrq..&..BEB.Eal%90&...+m.m+..&&4&.%llaa
65 xxZ.............aa.pon.&+&.CDA.aal%0.&.0..+m.m+......%laaa
66 xxxZ.......aaaaaaa....9.&.....0aal%&&......+m.&&%%%%%%llaa
67  xxxZ.....aaaaNaaaa.a.aaaa.&.&.aal%......<..+&&&lllllllaaa
68  xxxZ.BAD.aa9....aaa+a+a0a&+&+&aaaaa+a+a5....&&laaaaaaaaaax
69   xxX'CEA'aa.JKL..aaa....a.&.&.aaaa.a.aaa..0.%laaaaaaaaaaxx
70   xxX'DCB'aN.MNM.a+acde..a...!?.&......a+....%laa.......Zxx
71   xxX'''''aa.LKJ..a.fgf.%a.nop!&+&.]1U..a..&&%laa..)....Zxx
72   xxX'''''aa....9a+.edc0%a.qrq..&..1@1.a+.&.0%laa.>.>..Zxxx
73   xxX'LKJ'aa.&.&.aa...08*a.pon.&+&.U1}..a.&09%laa......Zxx
74   xxX'MNM'aa&+&+&a0..%%*aa9.....&......aa%%%%%laa..x..Zxxx
75  xxxX'JKL'aa.&.&.aaaaaaaa+aaaaaaa..&.&.aallllllaa.....Xxx
76  xxX''''''aa....0.&.....0aa&...+.a&+&+&aaaaaaaaaa'x'x'Xxx
77  xxX''''''aa.ABC.&+&.JKL.aY&.&.a+a.&.&.aaaaaEaaaa'''''Xxx
78  xxX'CBA''aE.DED..&..MNM.a..efc..a...!?.&.0..67aa''x''Xxx
79  xxX'DED''aa.CBA.&+&.LKJ.a.&dgf&.a.nqp!&+&.ABC6aa''''''Xxx
80  xxX'ABC''aa9.....&.0....a%0cde..a.oro..&..DED.Ea'x'x''Xxxx
81  xxX''''''aaaaEaaaaa.&.&.a*80&.&&a.pqn.&+&.CBA.aa'''''''Xxx
82  xxX''''''aaaaaaaaaa&+&+&a|*%..Yaa9.....&.....0aa''x'xx'Xxx
83  xxX'pon''aawwwwwwaa.&.&.aaaaaaaa+aaaaaaaa.&.&.aa'''''''Xxx
84  xxX'qrq''aaw2112waa....5.&.....0aa*%%..0a&+&+&aa'x'x''Xxxx
85  xxX'nop''aaw..T.Wa..DCB.&+&.JML.a*80...aa.&.&.aa''''''Xxx
86  xxX''''''aaw....W+a.AEC..&..KNK.a%0cfe.+a9...0aa''x''Xxx
87  xxX''''''aaw.2..Wa..BAD.&+&.LMJ.a%.dgd.a..nqp.aa'''''Xxx
88  xxxX'edc'aaw....W+a......&.0....a..efca+a.oro.ra'x'x'Xxx
89   xxX'fgf'aaw...@waaa.a.aaaa.&.&.a....aaa..pqn.aa'''''Xxx
90   xxX'cde'aaw._..wwa+a+aaaaa&+&+&a0a+a+aaa....9aa..x..Zxxx
91   xxX'''''aaw....@wwWWWWwwaa.&.&.aaaa.a.aaaaraaaa.....Zxxxx
92   xxX'''''.aW......@....2waa....0.&.9....aaaaaaa.......Zxxx
93   xxX'cde'.+W.._.......T1waa.ADC.&+&.JML.aa.............Zxx
94   xxZ'fgd'.+W....._..2..1waE.BEB..&..KNK.Na..;x:x;x:x;x.Zxx
95  xxxZ.efc..aww..........2waa.CDA.&+&.LMJ.aa.;x........;.Zxx
96 xxxxZ......aawWWWwwwwwwwwwaa9.....&.....9aa.x..:xxx;x.x.Zxx
97 xxxX'''2'..aaa++aaaaaaaaaaaaaaEaaaaaaaNaaaa.:.:x'''';.:.Zxx
98 xxX''''''........aaaaaaaaaaaaaaaaaaaaaaaaa..x.x';:;'x.x.Zxx
99 xxX''''''2....''''''''''''''''''''''''''....;.x':0:'x.;.Zxx
100 xxX'2'^'''''.cde''efc''''''''''''LMJ''BAD...x.x';:;'x.x.Zxx
101 xxX'''""'''2.fgd''dgd''pqn''CDA''KNK''CEA...:.;''''x:.x.Zxx
102 xxX''^""^'''.efc''cfe''oro''BEB''JML''DCB...x.x;xxx:..x.Zxx
103 xxX'''^'''''..'''''''''nqp''ADC'''''''''....;........x;.Zxx
104 xxX'''''2'''ZZZXXXXXXX''''''''''XXXXXXXXZZ..x;x:x;x:x;..Zxx
105 xxxX'''''''XxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxZ............Zxxx
106  xxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZZZZZZZZZZZZxxx
107   xxxxxxxxxxx        xxxxxxxxxxxxx       xxxxxxxxxxxxxxxx
108    xxxxxxxxx                              xxxxxxxxxxxxxx
109 ENDMAP
110
111 ###############################################################################
112 #  This vault excercises varied old ideas for the Vaults branch:
113 #  a primarily humanoid-based monster set, a focus on placing groups,
114 #  and a pattern-based layout emphasizing lots of distinct rooms.
115 #  Of course, HangedMan twisted these ideas thoroughly.
116 #  Many thanks to elliott for writing the band placement lua!
117 #
118 NAME:    hangedman_spin_cycle
119 TAGS:    no_monster_gen no_item_gen no_trap_gen patrolling uniq_d_encompass
120 ORIENT:  encompass
121 DEPTH:   Depths:2-
122 PLACE:   D:$, Depths:$
123 WEIGHT:  1 (D:$), 2 (Depths:$), 10
124 KMONS:   - = plant
125 KMONS:   _ = plant col:random name:demonic name_adjective tile:mons_demonic_plant
126 KMONS:   no = vault guard
127 KMONS:   p = giant eyeball
128 KMONS:   q : great orb of eyes w:7 / guardian serpent w:3
129 KMONS:   r = ettin / deep troll shaman / yaktaur captain / frost giant
130 KMONS:   t = draconian knight / draconian scorcher / draconian annihilator
131 : local bands = {
132 :     [65 - you.absdepth() * 3] =
133 :         { "cyclops", "tengu warrior", "centaur warrior", },
134 :     [42 - you.absdepth() * 2] =
135 :         { "kobold demonologist", "tengu conjurer", "deep elf fighter",
136 :           "necromancer", "yaktaur", "Azrael", "Kirke", },
137 :     [26 - you.absdepth()] =
138 :         { "boggart", "orc knight", "ogre mage", "skeletal warrior",
139 :           "spriggan rider", "naga mage", "rakshasa", },
140 :     [you.absdepth() * 2 - 37] =
141 :         { "deep elf knight", "orc high priest", "deep troll shaman", },
142 :     [you.absdepth() * 2 - 42] =
143 :         { "harpy", "hell knight", "naga sharpshooter", "vampire mage",
144 :           "orc warlord", "vampire knight", "yaktaur captain",
145 :           "deep elf high priest", "spriggan defender", },
146 :     [you.absdepth() - 18] =
147 :         { "death knight", "ancient champion",
148 :           "merfolk aquamancer", "salamander firebrand",
149 :           "Margery", "Saint Roka", "Sojobo", },
150 : }
151 : local kmonsters = {}
152 : for weight, monsters in pairs(bands) do
153 :     if weight > 0 then
154 :         for _, mons in ipairs(monsters) do
155 :             if not you.uniques(mons) then
156 :                 table.insert(kmonsters, mons .. " band w:" .. weight)
157 :             end
158 :         end
159 :     end
160 : end
161 : kmons("s = " .. table.concat(kmonsters, " / "))
162 KITEM:   ? = any ring randart w:390 / ring of loudness unrand:ring_of_the_octopus_king
163 KITEM:   ! = ring of invisibility / ring of regeneration / \
164              ring of teleport control / ring of slaying / \
165              ring of wizardry / any good_item ring no_uniq w:75
166 KITEM:   | = | / any good_item
167 KFEAT:   ^ = known permanent teleport trap
168 KFEAT:   ~ = teleport trap
169 KFEAT:   aD = stone_arch
170 KFEAT:   A = enter_hell
171 KFEAT:   & = enter_pandemonium
172 KFEAT:   @ = enter_abyss
173 KFEAT:   B = enter_depths
174 KFEAT:   C : C / any shop
175 KFEAT:   Z = enter_zot
176 SHUFFLE: <d` / {e1 / (f2 / [g3, >h4 / }i5 / )j6 / ]k7, (f2 / )j6, 15
177 : if you.absdepth() > 17 then
178 SUBST:   ( = D, ) = C
179 MARKER:  C = lua:props_marker { portal=1 }
180 MARKER:  D = lua:props_marker { portal=1 }
181 :     if crawl.random2(you.depth()-15) > (you.depth()-18) then
182 SUBST:   A&@ = a, _ = -, l = W
183 :     else
184 SHUFFLE: aA&@
185 :     end
186 :     if you.where() == dgn.level_name(dgn.br_entrance("Zot")) then
187 NSUBST:  (D = 1:Z / *:D
188 SUBST:   f = ', 2 = t
189 :     end
190 : else
191 SUBST:   A&@ = a, _ = -, l = W
192 :     if you.where() == dgn.level_name(dgn.br_entrance("Depths")) then
193 NSUBST:  ( = 1:B / *:T
194 SUBST:   f = ', 2 = r
195 :     end
196 : end
197 SUBST:   {} = **|||, ) = C, [ = !, ] = ?
198 NSUBST:  < = 1:{ / 1:( / 1:[, > = 1:} / 1:) / 1:]
199 SUBST:   d = 0, e = 009, f = %, g = 0, h = 0, i = 009, j = %, k = 0
200 SUBST:   ` = >, 1 = 9988s, 2 = 009, 3 = s, 4 = `, 5 = 998ss, 6 = 009, 7 = s
201 SHUFFLE: })]` / {([>, ?!, no / pq, pq / pq / pq / qp / pp / qq
202 SHUFFLE: LM / LM / LM / LM / LM / LM / ML / ML / MM
203 SHUFFLE: NO / NO / NO / NO / NO / NO / ON / ON / OO
204 SHUFFLE: PQ / PQ / PQ / PQ / QP, RS / RS / RS / SR
205 SUBST:   LNPR : x, MOQS : ~, J : ~xxx, K : ~xxxx, c : x:7 c:1, v : v:7 c:1
206 NSUBST:  ~ = 2:~ / 1:~. / 75 = ~ .:4490 / 225 = ~ .:9990 / *:.
207 COLOUR:  "-_ = green
208 COLOUR:  '`089rs%*|!? = white
209 FTILE:   ^"aA@&-_U = floor_grass
210 : if crawl.coinflip() then
211 FTILE:   '`<{([>})]089rst%*|!?BCTDEFZ = floor_vault
212 : else
213 FTILE:   '`<{([>})]089rst%*|!?BCTDEFZ = floor_pebble_darkgray
214 : end
215 MAP
216                           vvvvvvv
217                          vv'%<%'vv
218                  vvvv    vd'''''dv    vvvv
219                 vv%'vvvvvv'''`'''vvvvvv'%vv
220                vv{''evvcccc+ccc+ccccvvg''[vv
221                v%'1'''cc...........cc'''3'%v
222                v'''cc+c.......N.....c+cc'''v
223                vve'c.....L~~~~OO~......c'gvv
224                 vv'+....~MM~~~~N~~~....+'vv
225           xxxx xcccc..~~~~L~~~~OO~~~~..ccv  xxxx
226          xxJJxxx~~~..~~~~~MM~~~~N~~Q~~..ccxxxKKxx
227          xJJJJxx~~~~px~~~~~L~~~~OO~~x~~~~~xxKKKKx
228          xJJJJx~~~~~xn~~~~~MM~~~~N~~~P~~~~~xKKKKx
229          xxJJ~~~~~~~~~~~~~~.L...~~~~~~~~~~~~~KKxx
230     vvvv  xxx~www~~~~~~~~~.......~~~~~~~~www~xxxx
231    vv%'vv xx~~www~x~~~.....c+c+c....~~~x~www~~~xx vvvvv
232   vv(''fvvc~~~ww~R~~~.....cc'''cc.....~~R~ww~~~~cvv'%vvv
233   v%'2'''cc~~~~~RS~~..c+ccc''4''ccc+c..~SR~~~~~~cvf''(vv
234   v'''cc+c.~~~~x~~...cc''kch'''hci''cc..~~x~~~~~c'''2'%v
235   vvf'c....~~~~~~....+'7''cc%>%cc''5'+..~~~~~~~.c+cc'''v
236    vv'+...~~P~~~..c+cck''%bbbbbbb%''ic...~~~~xq....c'fvv
237    vvcc..~~x~~~..cc'jbbb%]bbbbbbb}%bbc+c..~~~ox~...+'vv
238    vcc...~Q~~~~..+'6'bbbbbbblllbbbbbbj'cc..~~~~~~..ccvv
239    vc....~~~~~~..c'''%bbbbbbl^lbbbbbb'6'+..~~~~~~...ccv
240  vvvc...~~~ON~~..cj'%)bblllll"llllbb%'''c..~~~~~~....cv
241 vvg'c..~~ONO~~..ccccbbbbla""""""Albb)%'jc..~~~~~~~...cvvv
242 v'''+..ONO~~~..cc'icbbbbl"""U"_""lbbbbcccc..~~~~~ML..c'evv
243 v%''c.NO~~~~~..+'''%bblll"_""""""lbbbbck'cc..~~MLM~..+'''v
244 v['3c..~~~~~ML.c'5'}bbl^"""""""U"lllbb%'''+..MLM~~~..c''%v
245 v%''c..~~~MLM..+'''%bblll"U"""""""^lbb]'7'c.LM~~~~~..c1'{v
246 v'''+..~MLM~~..cc'icbbbbl""""""_"lllbb%'''+..~~~~~ON.c''%v
247 vvg'c..LM~~~~~..ccccbbbbl""_"U"""lbbbbck'cc..~~~ONO..+'''v
248  vvvc...~~~~~~~..ch'%>bbl@""""""&lbbbbcccc..~~ONO~~..c'evv
249    vc....~~~~~~..c'''%bbllll"lllllbb>%'hc..~~NO~~~~..cvvv
250    vcc...~~~~~~..+'4'bbbbbbl^lbbbbbb%'''c..~~~~~~~...cv
251    vvcc..~~~~~~..cc'hbbbbbblllbbbbbbb'4'+..~~~~Q~...ccv
252   vvv'+...~xo~~~..c+cbb%]bbbbbbb}%bbbh'cc..~~~x~~..ccvv
253   vvd'c....qx~~~~...ck''%bbbbbbb%''icc+c..~~~P~~...+'vvv
254   v'''cc+c.~~~~~~~..+'7''cc%)%cc''5'+....~~~~~~....c'dvv
255   v%'`'''c~~~~~x~~..cc''kcj'''jci''cc...~~x~~~~.c+cc'''v
256   vv<''dvc~~~~~~RS~..c+ccc''6''ccc+c..~~SR~~~~~cc'''`'%v
257    vv%'vvc~~~~ww~R~~.....cc'''cc.....~~~R~ww~~~cvvd''<vv
258     vvvv cxx~~www~x~~.....c+c+c.....~~~x~www~~xx vv'%vv
259           xxx~www~~~~~~~~.......~~~~~~~~~www~xxx  vvvv
260          xxKK~~~~~~~~~~~~~..L..~~~~~~~~~~~~~~JJxx
261          xKKKKx~~~~~P~~~N~~~MM~~~~~~nx~~~~~xJJJJx
262          xKKKKxx~~~~~x~~OO~~~L~~~~~~xp~~~~xxJJJJx
263          xxKKxxxxc..~~Q~~N~~~MM~~~~~~..~~~xxxJJxx
264           xxxx  vcc..~~~~OO~~~L~~~~~..ccccc xxxx
265                vv'+....~~~N~~~MM~~....+'vv
266               vve'c.....~~OO~~~L~.....c'gvv
267               v'''cc+c.....N.......c+cc'''v
268               v%'1'''cc...........cc'''3'%v
269               vv{''evvcccc+ccc+ccccvvg''[vv
270                vv%'vvvvvv'''2'''vvvvvv'%vv
271                 vvvv    vf'''''fv    vvvv
272                         vv'%(%'vv
273                          vvvvvvv
274 ENDMAP
275
276 ################################################################################
277 # Giving players the runaround...
278
279 default-depth:
280
281 NAME: grunt_runaround
282 TAGS: no_monster_gen uniq_d_encompass
283 PLACE: Depths:$
284 DEPTH: D:$, Depths:2-
285 WEIGHT: 1 (D:$), 2 (Depths:$), 10
286 ORIENT: encompass
287 SUBVAULT: B : grunt_runaround_doors_1
288 SUBVAULT: C : grunt_runaround_doors_2
289 SUBVAULT: D : grunt_runaround_doors_3
290 SUBVAULT: E : grunt_runaround_doors_4
291 : if you.where() == dgn.level_name(dgn.br_entrance("Zot")) then
292 KFEAT:  Z = stone_wall
293 TILE:   Z = wall_zot_magenta
294 COLOUR: Z = lightmagenta
295 SUBVAULT: F : grunt_runaround_zot
296 NSUBST: < = 1:{ / 1:[ / 1:( / 2:< / *=A
297 : elseif you.where() == dgn.level_name(dgn.br_entrance("Depths")) then
298 KFEAT:  Z = metal_wall
299 SUBST:  9 = 0
300 SUBVAULT: F : grunt_runaround_depths
301 NSUBST: < = 1:{ / 1:[ / 1:( / 2:< / *=A
302 : else
303 KFEAT: Z = metal_wall
304 SUBVAULT: F : grunt_runaround_loot
305 NSUBST: < = 1:{ / 1:[ / 1:( / 1:] / 1:) / *=A
306 : end
307 {{
308 local room_centres = { 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
309                        'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
310                        'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' }
311 for i = 1, #room_centres do
312   subst(room_centres[i] .. ' : .:21 w l c v b:2')
313 end
314 }}
315 #KMASK: 09 = !no_monster_gen
316 SUBST: 0 = 0.
317 SUBST: 9 = 90
318 KMONS: 0 = 0 band
319 KMONS: 9 = 9 band
320 KFEAT: G = granite_statue / fountain_blue / fountain_sparkling w:1 / \
321            floor w:21
322 MARKER: A = lua:props_marker { portal=1 }
323 KFEAT:  A = floor
324 MAP
325                   cccccccccccccccc
326                 ccc.......<......ccc
327              cccc..................cccc
328            ccc..c..0.dddGddGddd.0..c..ccc
329           cc....BB................BB....cc
330          cc...0..c.cBBccccccccBBc.c..0...cc
331         cc......cccc.....cc.....cccc......cc
332        cc..kk.ccc...HH...CC...II...ccc.ee..cc
333       cc<.Gk.BB..HHGH..0.CC.0..IGII..BB.eG.<cc
334      cc..kk.cc...H.......cc.......I...cc.ee..cc
335     cc..Gk.cc..0....cCCccccccCCc....0..cc.eG..cc
336    cc..kk.ccc.....ccc..........ccc.....ccc.ee..cc
337    c...k.cccCC..CCc.c..0.QQ.0..c.cCC..CCccc.e...c
338   cc....Bc..CCccc...DD..QGGQ..DD...cccCC..cB....cc
339   c..0.cB....ccc..0..c........c..0..ccc....Bc.0..c
340   c....c..0..cc.PP...cDDccccDDc...RR.cc..0..c....c
341  cccB.cc....Cc.PG..DDc...ZZ...cDD..GR.cC....cc.Bccc
342  c..Bcc.OO..C..P..cc...9.EE.9...cc..R..C..JJ.ccB..c
343 cc....c.O..cc.0..ccZ..9G.EE.G9..Zcc..0.cc..J.c....cc
344 c..0.cc.G..c....DcZEE....ZZ....EEZcD....c..G.cc.0..c
345 c....B.OO.cccD..D..EEZZEEZZEEZZEE..D..Dccc.JJ.B....c
346 c..j.B.O..C..Dccc...ZZZFFFFFFZZZ...cccD..C..J.B.f..c
347 c..j.c....C....D..9.ZZFFFFFFFFZZ.9..D....C....c.f..c
348 c..j.c..0.c.0..D.9G.EFFFFFFFFFFE.G9.D..0.c.0..c.f..c
349 c..G.c....c..W.c....EFFFFFFFFFFE....c.S..c....c.G..c
350 c<.j.ccCCcc.WG.cZEEZZFFFFFFFFFFZZEEZc.GS.ccCCcc.f..c
351 c..j.ccCCcc.WG.cZEEZZFFFFFFFFFFZZEEZc.GS.ccCCcc.f.<c
352 c..G.c....c..W.c....EFFFFFFFFFFE....c.S..c....c.G..c
353 c..j.c..0.c.0..D.9G.EFFFFFFFFFFE.G9.D..0.c.0..c.f..c
354 c..j.c....C....D..9.ZZFFFFFFFFZZ.9..D....C....c.f..c
355 c..j.B.N..C..Dccc...ZZZFFFFFFZZZ...cccD..C..K.B.f..c
356 c....B.NN.cccD..D..EEZZEEZZEEZZEE..D..Dccc.KK.B....c
357 c..0.cc.G..c....DcZEE....ZZ....EEZcD....c..G.cc.0..c
358 cc....c.N..cc.0..ccZ..9G.EE.G9..Zcc..0.cc..K.c....cc
359  c..Bcc.NN..C..V..cc...9.EE.9...cc..T..C..KK.ccB..c
360  cccB.cc....Cc.VG..DDc...ZZ...cDD..GT.cC....cc.Bccc
361   c....c..0..cc.VV...cDDccccDDc...TT.cc..0..c....c
362   c..0.cB....ccc..0..c........c..0..ccc....Bc.0..c
363   cc....Bc..CCccc...DD..UGGU..DD...cccCC..cB....cc
364    c...i.cccCC..CCc.c..0.UU.0..c.cCC..CCccc.g...c
365    cc..ii.ccc.....ccc..........ccc.....ccc.gg..cc
366     cc..Gi.cc..0....cCCccccccCCc....0..cc.gG..cc
367      cc..ii.cc...M.......cc.......L...cc.gg..cc
368       cc<.Gi.BB..MMGM..0.CC.0..LGLL..BB.gG.<cc
369        cc..ii.ccc...MM...CC...LL...ccc.gg..cc
370         cc......cccc.....cc.....cccc......cc
371          cc...0..c.cBBccccccccBBc.c..0...cc
372           cc....BB................BB....cc
373            ccc..c..0.hhhGhhGhhh.0..c..ccc
374              cccc..................cccc
375                 ccc......<.......ccc
376                   cccccccccccccccc
377 ENDMAP
378
379 NAME: grunt_runaround_doors_1
380 TAGS: grunt_runaround_doors_1 allow_dup unrand
381 SHUFFLE: ABCDEFGH
382 SHUFFLE: IJKLMNOPQRSTUVWX
383 SUBST: ABCDEFGIJ : +, HKLMNOPQRSTUVWX : c
384 CLEAR: _
385 MAP
386             AA                BB
387                 II        JJ
388 _
389 _
390          XX                      KK
391 _
392 _
393 _
394 _
395     W                                  L
396     W                                  L
397 _
398 H                                          C
399 H                                          C
400 _
401 _
402  V                                        M
403  V                                        M
404 _
405 _
406 _
407 _
408 _
409 _
410 _
411 _
412  U                                        N
413  U                                        N
414 _
415 _
416 G                                          D
417 G                                          D
418 _
419     T                                  O
420     T                                  O
421 _
422 _
423 _
424 _
425          SS                      PP
426 _
427 _
428                 RR        QQ
429             FF                EE
430 ENDMAP
431
432 NAME: grunt_runaround_doors_2
433 TAGS: grunt_runaround_doors_2 allow_dup unrand
434 SHUFFLE: ABCDEFGH
435 SHUFFLE: IJKLMNOPQRSTUVWX
436 SUBST: ABCDEFGIJ : +, HKLMNOPQRSTUVWX : c
437 CLEAR: _
438 MAP
439                   AA
440                   AA
441 _
442               XX      II
443 _
444      HH  WW                JJ  BB
445      HH                        BB
446 _
447 _
448      V                          K
449      V                          K
450 _
451 _
452 _
453    U                              L
454    U                              L
455 _
456 _
457 GG                                  CC
458 GG                                  CC
459 _
460 _
461    T                              M
462    T                              M
463 _
464 _
465 _
466      S                          N
467      S                          N
468 _
469 _
470      FF                        DD
471      FF  RR                OO  DD
472 _
473               QQ      PP
474 _
475                   EE
476                   EE
477 ENDMAP
478
479 NAME: grunt_runaround_doors_3
480 TAGS: grunt_runaround_doors_3 allow_dup unrand
481 SHUFFLE: ABCDEFGH
482 SHUFFLE: IJKLMNOPQRSTUVWX
483 SUBST: ABCDEFGIJ : +, HKLMNOPQRSTUVWX : c
484 CLEAR: _
485 MAP
486        AA        BB
487 _
488          II    JJ
489       XX          KK
490 _
491 _
492    W                  L
493 H  W                  L  C
494 H                        C
495   V                    M
496   V                    M
497 _
498 _
499 _
500 _
501   U                    N
502   U                    N
503 G                        D
504 G  T                  O  D
505    T                  O
506 _
507 _
508       SS          PP
509          RR    QQ
510 _
511        FF        EE
512 ENDMAP
513
514 NAME: grunt_runaround_doors_4
515 TAGS: grunt_runaround_doors_4 allow_dup unrand
516 SHUFFLE: ABCDEFGH
517 SHUFFLE: IJKLMNOP
518 SUBST:   ABCDEFGI : +, HJKLMNOP : Z
519 : if you.where() == dgn.level_name(dgn.br_entrance("Zot")) then
520 KFEAT:  Z = stone_wall
521 TILE:   Z = wall_zot_magenta
522 COLOUR: Z = lightmagenta
523 : else
524 KFEAT:  Z = metal_wall
525 : end
526 CLEAR: _
527 MAP
528         AA
529         AA
530   HH          BB
531   HH  PP  II  BB
532 _
533 _
534    O          J
535    O          J
536 GG              CC
537 GG              CC
538    N          K
539    N          K
540 _
541 _
542   FF  MM  LL  DD
543   FF          DD
544         EE
545         EE
546 ENDMAP
547
548 NAME: grunt_runaround_loot
549 TAGS: grunt_runaround_loot allow_dup unrand
550 SHUFFLE: }>de
551 SUBST: d = %, e = A
552 NSUBST: % = 4:| / 8:* / *=%
553 KMONS: 9 = 9 band
554 KMONS: 8 = 8 band
555 MAP
556   ......
557  ..9..9..
558 ..8.%%.8..
559 .9.%%%%.9.
560 ..%%}>%%..
561 ..%%de%%..
562 .9.%%%%.9.
563 ..8.%%.8..
564  ..9..9..
565   ......
566 ENDMAP
567
568 NAME: grunt_runaround_depths
569 TAGS: grunt_runaround_depths allow_dup unrand
570 SHUFFLE: O3hi
571 SUBST: hi = .
572 NSUBST: 1 = 1:2 / *=1
573 KFEAT: O = enter_depths
574 MONS: tengu warrior band w:5 / tengu conjurer band w:5 / hill giant / \
575       ogre mage band / centaur warrior band / yaktaur band / cyclops band / \
576       deep elf priest band
577 MONS: ettin w:20 / stone giant w:20 / fire giant / frost giant / \
578       fire dragon w:12 / ice dragon w:8 / yaktaur captain band
579 MONS: hydra / dire elephant / emperor scorpion / death yak band / \
580       very ugly thing band
581 MAP
582   ......
583  ...cc...
584 ..1....1..
585 ..........
586 .c..Oh..c.
587 .c..i3..c.
588 ..........
589 ..1....1..
590  ...cc...
591   ......
592 ENDMAP
593
594 NAME: grunt_runaround_zot
595 TAGS: grunt_runaround_zot allow_dup unrand
596 COLOUR: .1defghijO = magenta
597 FTILE: .1defghijO = floor_hall
598 SHUFFLE: defg
599 SHUFFLE: Ohij
600 SUBST: hij = .
601 NSUBST: 1 = 1:2 / *=1
602 KFEAT: O = enter_zot
603 KMONS: d = golden dragon
604 KMONS: e = quicksilver dragon
605 KMONS: f = storm dragon
606 KMONS: g = shadow dragon
607 MONS: base draconian
608 MONS: nonbase draconian
609 MAP
610   ......
611  ..1..1..
612 ..d....e..
613 .1......1.
614 ....Oh....
615 ....ij....
616 .1......1.
617 ..f....g..
618  ..1..1..
619   ......
620 ENDMAP
621
622 ##############################################################
623 NAME:   kennysheep_town
624 TAGS:   uniq_d_encompass
625 ORIENT: encompass
626 DEPTH:  D:8-11
627 WEIGHT: 5
628 KMONS:  op = plant
629 KMONS:  P = bush
630 KMONS:  1 = merfolk
631 KMONS:  2 = orc warrior / big kobold / two-headed ogre / troll / gnoll sergeant
632 KMONS:  3 = orc priest / orc wizard / centaur / gnoll shaman
633 KMONS:  4 = orc / hound / kobold / goblin / hobgoblin / gnoll
634 KMONS:  5 = yak / hog / sheep w:50
635 KMONS:  6 = wyvern w:5 / manticore w:2 / hippogriff w:2 / black bear w:19
636 KITEM:  o5 = fruit q:1 / nothing w:400
637 SUBST:  M = tww.!, p = pP!!!!!
638 NSUBST: 1 = 1:1 / *:., H = 20:H / 5:% / 160:. / * = .:25 %:1 4
639 NSUBST: F = 5:5 / 5 = 55o / * = o:100 R:57
640 NSUBST: ' = 2:6 / 3 = 66... / *:., " = 2:6 / 3 = 66... / *:.
641 NSUBST: ` = 3:6 / 4 = 66... / *:., - = 1:6 / 2 = 6.. / *:.
642 NSUBST: } = 1:] / 1:) / 1:} / * = **23..
643 TILE:   x = wall_pebble_brown
644 FTILE:  !pPt = floor_grass / floor_dirt w:1
645 FTILE:  5oR = floor_dirt
646 SUBST:  ! = .
647 MAP
648 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
649 xxxxxxxxxx'''''''''''xxxxxxwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
650 xxxxxx''''''''''''''''''xxxxwwwwwwwxxxxxxxxxxxxxxxxxxxxx""""""""xxxxxxxxxxxxxxxx
651 xxxx'''''''xx'}''xxx'''''xxxxwwwwwwxxxxxxxxxxxxxxxxx"""""xxxxxx""""""""xxxxxxxxx
652 xxx''''xxxxxxx*'*xxxxx''''xxxwwwwwwxxxxxxxxxxxxxxxx""xx"xxxxxxxxxxxxx""""xxxxxxx
653 xxx!'xxxxxxxxxxxxxxxxxxx'!xxxxwwwwwxxxxxxxxxxxxx!x""xxx"""xxxxxxxxxxxxxx""xxxxxx
654 xtt!!xxxxxxttttttxxxxxxt!!ttttwwwwwxxxxxxttttttt!""xxxxxx!!!xxxxxxxx*xx"""xxxxxx
655 xtt!!tttttttttttttttttt!!tttttwwwwww!!ptttttttttp!!xxxxtttt!!xxxxxxxx""""xxxxxxx
656 xtt!!tttttttttttttttttt!tttttt!wwwwww!ppttttttttpp!tttttttt!ptttxxxxxxxx"""xxxxx
657 xttt!!tttttpppptttttttt!tppppt!wwwwwww!pttpptttttp!tttttttt!ttttxxxxxxxxxx"""xxx
658 xttt!!tptpppppppptttttp!pp!!!!!wwwwwwwwppppppppttp!ttttttttt!ttttxxxxxxxxxxx*xxx
659 xtttt!!ppppwwwppppppppp!!!!!!!!!wwwwwwww!!!!!!ppp!pttttttttt!ptttttttxxxxxxx}xxx
660 xtttp!!!wwwwwwwwppw!!!!!!wwwwwwwwwwwwwwwww!!!!!!!!!ptttttttt!!ptttttttxxxxxxxxxx
661 xtttp!!!wccmmccwwwwwwwwwwccmmccwwwwwwwwwwwwwwwwwwww!pptttttttt!pttttttttxxxxxxxx
662 xttpp!!!wcHHHHcRRRRwRRRRRcHHHHcwww!wwwwwwwwwwwwwwww..!ptttttttt!pttttttttpxxxxxx
663 xtttp!!!wmH3HHcRRRRRRRRRRcHH3Hmww!!!!wwwwwwwwwwwwwwww.!ppppptpp!!ppppppptp!!xxxx
664 xtttp!!!wmHHHHcRRRRRRRRRRcHHHHmww!!!!!!wwwwwwwwwwwwwwww!!!!!!!!!!!!!!!!!!!!!xxxx
665 xtttp!!!wcHHHHccccccccccccHHHHcw!!!!!!.!!!!!!!!wwwwwwww.FFFFFFFFFFFFFFFFFFF!!xxx
666 xtttp!!!wcccHHHHHHHHHHHHHHHHcccw!!!!!...!!!!!!!!!wwwwwww!!!!!!!!!!!!!!!!!!!!!xxx
667 xttpp!!!wRRcHcccccc++ccccccHcRRww!!!..G..!!!!!!!!wwwwwwwFFFFFFFFFFFFFFFFFFF!!!!x
668 xttp!!!!wRRcHc|**c2HHHHHH2cHcRRww!!cc...cc!!!!!!wwwwwwww!!!!!!!!!!!!!!!!!!!!!!!x
669 xttp!!!!wRRcHc***+HHHHHH3HcHcRRw!!.cc...cc.!!!!!wwwwwwwwFFFFFFFFFFFFFFFFFFF!!!!x
670 xttp!!!wRRRcHc|**c2HHHHHH2cHcRRw!...........!!!!wwwwwwww!!!!!!!!!!!!!!!!!!!!!!!x
671 xttpp!!wwRRcHccccccccccccccHcRR!..G...C...G..!!wwwwwwwwwwFFFFFFFFFFFFFFFFFF!!!!x
672 xtttpp!!wcccHHHHHH2HH2HHHHHHcccw!...........!!!wwwwwwwww!!!!!!!!!!!!!!!!!!!!!!!x
673 xttttp!!wcHHHHccccHHHHccccHHHHcw!!.cc...cc.!!!!wwwwwwwwwFFFFFFFFFFFFFFFFFFF!!!!x
674 xttttp!!wmHHHHcRRcHHHHcRRcHHHHmw!!!cc...cc!!!!wwwwwwwwww!!!!!!!!!!!!!!!!!!!!!!!x
675 xttttp!!wmH3HHcRRcc++ccRRcHH3Hmw!!!!..G..!!!!wwwwwwwwwwwFFFFFFFFFFFFccccccc!!!!x
676 xtttpp!!wcHHHHcRRRR..RRRRcHHHHcww!!!!...!!!!wwwwwwwwwwww!!!!!!!!!!!!cHHH}Hc!!!!x
677 xtttppp!wccmmccRRRw..RwRRccmmccw!!!!!...!!!wwwwwwwwwwwwwFFFFFFFFFFFFcHHHHHc!!!!x
678 xtttttppwwwwwwwwwww..wwwwwwwwwww!!!!!...!!wwwwwwww!!wwww.!!!!!!!!!!!c++cccc!!!!x
679 xttttttpp!!!www!ww!..!!!!!!!!!!!!!!!!...!wwwwccc!!!!!wwwwFFFFFFFFFFFF..!!!!!!!!x
680 xtttttttppppp!!!!!!..!cccc!!!!!!!!!!!...wwwwccHcc!!!!wwww!!!!!!!!!!!!..!!!!!!!tx
681 xttttttttttttp!!!!!..!cH}c!!!!!!!!!!!...wwwccHHHcc!!wwwww!F!F!F!F!F!F..cccc!!!tx
682 xttttttttttpp!!!!!!..!cHHc!!!!!!!!!!!...wwwcHH}HHc!!wwwwwwF!F!F!F!F!F..+HHc!tttx
683 xttttttttppp!!!!!!!..!c+cc!!!!!!cccc!...wwwccHHHcc!!wwwwwwF!F!F!F!F!F..cH}c!tttx
684 xtttttttp!!!!!!!!!!.....!!!!!!!!c}Hc!...wwwwccHc+.!!wwwww!F!F!F!F!F!F..cccc!tttx
685 xttttttp!!!cccccc.......!!!!!!!!cHHc!...wwww!ccc..!!wwwww!F!F!F!F!F!F..!!!!!tttx
686 xttttttp!!!cHHHH+....!!!!!cccc!!cc+c!...wwww!!!!..!!wwwww!F!F!F!F!F!F..!!!tttttx
687 xttttttp!!!cH}HHc!!..!!!!!cH}c!!!..!!...wwww!!!!..!!wwwww!F!F!F!F!F!F..!!ttttttx
688 cccctt...!!cHHHHc!!..!!!!!cHHc!!!..!!...wwww!!!!..!!wwwww!F!F!F!F!F!F..t!ttttttx
689 cHHct.....!cHHHHc!!.3!!!!!c+cc!!!..!!...wwww!!!!..!wwwww!!F!F!F!F!F!F..t!!tttttx
690 c}H+..ttp..cccccc!!.T..................................................tt!!ttttx
691 cccctttpp!.............................................................tt!!!tttx
692  xtttttp!!!..........!!!!!!..!!!!..!!!!!wwww!!!!!!wwwwww!!!...!!!!!!!tttt!t!!ttx
693  xtttttp!!!!cc+c!!!..!!!!!cc+c!!c+cc!!!!wwwww!!!!!wwwww!!!!...!!!!!!!ttt!ttt!ttx
694  xttttpp!!!!cHHc!!!..!!!!!cHHc!!cHHc!!!wwwwww!!!!wwwwww!!!c+++c!!!!!!ttt!ttt!ttx
695  xttttp!!!!!c}Hc!!!c+cc!!!c}Hc!!cHHc!!!wwwwww!!!wwwwww!!!cc...cc!!!!!ttt!ttt!ttx
696 xxxttpp!!!!!cccc!!!cHHc!!!cccc!!cH}c!!wwwwwww!!wwwwwww!!cc.....cc!!!!ttt!ttt!ttx
697 xxxxpp!!!!!!!!!!!!!c}Hc!!!!!!!!!cccc!!wwwwwwwwwwwwwwww!!c...{...c!!!tttt!!tt!ttx
698 xxxx!!!!!!!!!!!!!!!cccc!!!!!!!!!!!!!MwwwwwwwwwwwwwwwwM!!c.......c!!tttttt!t!!ttx
699 xxxx!!xxx!!!!!!!!!!!!!!!!!!!!!!!!!!!MwwwwwwwwwwwwwwwMM!!c..(.[..c!!tttttt!t!tttx
700 xxxx``xxxx!!!!!!!!!!!!!!!!!!!!!!!!!MwwwwwwwwwwwwwwwMM!!!cc.....cc!!ttttttt!ttttx
701 xxxxx`xxxx!!!!!!!!!!!!!!!!!!!!!!MM!MwwwwwwwwwwwwwwMM!MMM!cc...cc!!ttttttt!!!tttx
702 xxxxx``xxx!!x!!!!!!!M!M!!!!!!!MMMwMMwwwwwwwwwwwwwMM!MwwMM!ccccc!!ttttttt!!t!ttxx
703 xxxxxx`xxx``xxxMMMMMMwM!!!!!!!MwwwMMMwwwwwwwwwwwMM..MwwwM!!!!!!!!ttttttt!tt!txxx
704 xxxxxx`xx```xxxxwwwwwwMMMMMM!!MwwM.!MwwwwwwwwwMMM....MMMM!!!!!!!!tttttt!!tt!txxx
705 xxxxxx``````.xxxwwwwMMMMwwwwM!MMMM.MwwwwwwwwMMM..MMMM...!!!!!!!!!tt!!!!!ttt!txxx
706 xxxxxxx```xx.`xxxxxMM!.!MMwMw!!....MwwwwwwwMM..MMwwwM..MMM!MM!!!!!!!!!ttttt!txxx
707 xxxxxxx``xxxx``xxxx..MMM!....!wwMM.MwcccccwM.wwwwwwwM.wwww!wMM!!!!!tttttttt!!xxx
708 xxxxxx``xxxxxx`xxxxx.MwwMMwM!wwwwwM.ccwwwccM.MwwwwMMM.wwwM!MwMM!tttttttttxx!!xxx
709 xxxxxx`xxxxxxxx`xxxxx.MwwwM.....ww.ccwwwwwcc.MMMMMM..MM....MwwMMttttttttxxx!!-xx
710 xxxxx``xxxxxxx```xxxxx.Mww.MMMMM..Mcww*1..wcM......MMwwwwM..!wwMttttttttxxx!--xx
711 xxxxx`xxx`````xx`xxxxx..MM!MwwwwMM.+W.*}*.W+.M.MMwwwwwwwwMM!!!MMttttttttxxx---xx
712 xx```````xxxxxxx`xxxxxxxwwM.Mwwwww.cw.1*1wwcwM.MwwwwwwxxwwM!!xxxxxxxxxxxxx----xx
713 x````xxxxxxxxxxx``xxxxxxwwM...MwwMMccwwwwwccwMMMwxxxxxxxwwMxxxxxxxxxxxxxxx-----x
714 x```xxxxxxxxxxxx`````xxxxxxxxxxxxxxxccwwwccwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxx---}-x
715 x`}`xxxxxxxxxxxxx```}`xxxxxxxxxxxxxxxcccccwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxx----x
716 x*``xxxxxxxxxxxxxx```*xxxxxxxxxxxxxxxxxxxwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
717 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
718 ENDMAP