summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dat/lab.des
blob: fd7c942d2340543a88c614bc7aabb51e59d1ad16 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
###############################################################################
# lab.des: minivaults particular to labyrinths.
#          There are two types: labyrinth exits (tagged by 'minotaur') and
#                                flavour vaults (tagged by 'lab').
###############################################################################


#############################################################################
# Labyrinth entry vaults

NAME:   lab_entry_generic
TAGS:   luniq_lab chance_lab transparent trowel_portal allow_dup extra
# Nominal chance for labs was 1 chance in 15, but making it eligible as a
# random vault gives this vault more opportunities to be placed, so dropping
# chance to 2.85%.
CHANCE: 50 : 285
DEPTH:  12-27
{{
  local messager = 
    timed_msg { 
      initmsg = { "You hear a distant snort.",
                  "Hark! There is an entrance to a minotaur's labyrinth "
                  .. "on this level. Find the entrance quickly before "
                  .. "the gate is sealed!" },
      finalmsg = "You hear the last, dying ticks of the clock.",
      verb = 'ticking',
      noisemaker = 'clock'
    }
}}
MARKER: O = lua: timed_marker {  \
                 low=400, high=600, msg=messager, floor = 'stone_arch' \
            }
KFEAT: O = enter_labyrinth
MAP
O
ENDMAP


#############################################################################
# Labyrinth exit minivaults
#############################################################################
# These are generated by the TAG: minotaur.
# You *must* place the minotaur yourself! Only one minotaur per map, please.
# There must be an exit (<), leading back to the dungeon.
#
# You can use the "generate_loot" tag to indicate that you're not explicitly
# placing the loot and that the dungeon builder should generate random loot
# (on the upstair). Note that this is not the default, and if you neither use
# this tag nor provide loot in the map definition, the player will be
# disappointed.
#
# One layer of floor space *must* surround the minivault, or the player could
# be trapped in the labyrinth (the dummy is exempt from this requirement).
#############################################################################

#############################################################################
# Dummy balancer
NAME: labyrinth_0
TAGS: minotaur dummy
WEIGHT: 20
MAP
x
ENDMAP

#############################################################################
# Watery exit 
NAME:    labyrinth_watery
TAGS:    minotaur generate_loot no_pool_fixup allow_dup
MONS:    patrolling minotaur
SHUFFLE: def
SUBST:   d=~, e=~, f=., c:vvc
MAP
.........
.ccccccc.
.cwwwwwc.
.cww<wwc.
.cwdefwc.
.ccc1ccc.
.c.....c.
.ccc+ccc.
.........
ENDMAP

#############################################################################
# Green exit
NAME:   labyrinth_green
TAGS:   minotaur generate_loot allow_dup
MONS:   patrolling minotaur
WEIGHT: 2
MAP
........
.bbbbbb.
.+..1<b.
.bbbbbb.
........
ENDMAP

#############################################################################
# Spiral exit
NAME:  labyrinth_spiral
TAGS:  minotaur generate_loot allow_dup
MONS:  patrolling minotaur
SUBST: c : cvz, z = vc
MAP
............
.cccccccccc.
.c........c.
.c.cccccc.c.
.c.c<1..c.c.
.c.cccc.c.c.
.c......c.c.
.cccccccc.c.
..........c.
.cccccccccc.
............
ENDMAP

#############################################################################
# Hidden exit, and trapped loot
NAME:   labyrinth_hidden_loot
TAGS:   minotaur generate_loot allow_dup
MONS:   patrolling minotaur, minotaur zombie
SUBST:  d = 2%*
SUBST:  c : cvv
MAP
............
.cccccccccc.
.cxxxxdxxxc.
.cxxxx=xxxc.
.cxx..U.xxc.
.cd=U...xxc.
.cxx...U=dc.
.cxx.<..xxc.
.cxxxx+xxxc.
.cxxxx1xxxc.
.ccccc+cccc.
............
ENDMAP

#############################################################################
# Mini labyrinth exit
NAME:    labyrinth_mini_lab
TAGS:    minotaur generate_loot allow_dup
SHUFFLE: def, ghi, klm
SUBST:   d : c, e : ., f : c
SUBST:   g : c, h : ., i : c
SUBST:   k = <, l = ., m = .
KMONS:   < = patrolling minotaur
KFEAT:   < = <
SUBST:   c : vvc

# should not be necessary
validate {{ return has_exit_from_glyph('<') }}

MAP
...............
.ccccccccccccc.
.cm....k....lc.
.cgceccccdccfc.
.c.c.........c.
.c.cccfc.ccccc.
.c.....c.c...c.
.ccecc.c.h.cfc.
.c...c.c.iicfc.
.c.c.c.c.f.cfc.
.c.c.g.c.c.cfc.
.c.c.cdchc.cfc.
.c.c.......gfc.
.cdcccecccccfc.
...............
ENDMAP

#############################################################################
# Trapped exits - this is evil!
NAME:    labyrinth_trapped
TAGS:    minotaur generate_loot allow_dup
MONS:    patrolling minotaur
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
WEIGHT:  2
MAP
..............
.cccccccccccc.
.g.dddD+.cccc.
.c.ccccc.cccc.
.g.dddD+.+1<c.
.c.ccccc.cccc.
.g.dddD+.cccc.
.cccccccccccc.
..............
ENDMAP

#############################################################################
# Another trapped exit - most evil again! 
NAME:    labyrinth_trapped_2
TAGS:    minotaur allow_dup generate_loot
ITEM:    potion of porridge
SHUFFLE: XYZ
SHUFFLE: GH, LM, fghijklmn, FHIJKLN
KFEAT:   f = teleport trap
KFEAT:   n = teleport trap
KFEAT:   F = teleport trap
KFEAT:   N = teleport trap
SUBST:   g=., h=., i=., j=., k=., l=., m=.
SUBST:   G=., H=., I=., J=., K=., L=., M=.
SUBST:   Y=*, Z=*
KFEAT:   X = <
KMONS:   X = patrolling minotaur
KFEAT:   S = granite_statue
WEIGHT:  2
MAP
.............
.vvvvvvvvvvv.
.vvXvvYvvZvv.
.vv+vv+vv+vv.
.vFGHIJKLMNv.
.vfghijklmnv.
.v.........v.
.v.S..S..S.v.
.v...d.d...v.
.vvvvv+vvvvv.
............
ENDMAP
# The heart stopper

#############################################################################
# Labyrinth flavour minivaults
#############################################################################
# One layer of floor space *must* surround the minivault, or the player could
# be trapped in the labyrinth (the dummy is exempt from this requirement).
#
# These minivaults can be placed anywhere onto the labyrinth, making for
# easier navigation (as the number of connections increases) but can also add
# to confusion or despair (use teleportation very sparingly, and abstain from
# unthematic monster sets).
#############################################################################

############################################################################
# Labyrinth dummy decorator
NAME: lab_dummy
TAGS: lab dummy
WEIGHT: 90
MAP
x
ENDMAP

############################################################################
# Labyrinth furniture
NAME:    lab_block
TAGS:    lab allow_dup
SHUFFLE: vcx
MAP
.....
.xxx.
.xxx.
.xxx.
.....
ENDMAP

############################################################################
# Labyrinth furniture II
NAME: lab_fountain
TAGS: lab allow_dup
MAP
.......
..b.b..
.bb.bb.
...T...
.bb.bb.
..b.b..
.......
ENDMAP

############################################################################
# Labyrinth hedge
NAME:    lab_hedge
TAGS:    lab allow_dup
SHUFFLE: 1l
MONS:    plant
MAP
.......
.11111.
.1ccc1.
..1c1..
..1c1..
..1c1..
.1ccc1.
.11111.
.......
ENDMAP

############################################################################
# Teaser: inaccessible loot
NAME:  labyrinth_glass_1
TAGS:  lab allow_dup
SUBST: % = %*
MAP
......
.mmmm.
.m%%m.
.m%%m.
.mmmm.
......
ENDMAP

NAME:   labyrinth_glass_2
TAGS:   lab allow_dup
WEIGHT: 1
MAP
......
.nnnn.
.n||n.
.n||n.
.nnnn.
......
ENDMAP

############################################################################
# The other minotaur's lava lair
NAME: labyrinth_lava_lair
TAGS: lab allow_dup
MONS: minotaur zombie
MAP
.......
.lllll.
.l***l.
.l*1*l.
.l***l.
.lllll.
.......
ENDMAP

############################################################################
# Baited teleport trap - this is evil!
NAME:    labyrinth_baited_teleportation_trap
TAGS:    lab allow_dup
KFEAT:   Y = teleport trap / zot trap / .
KITEM:   Y = any good_item
SHUFFLE: cxv
WEIGHT:  1
MAP
.....
.x=x.
.=Y=.
.x=x.
.....
ENDMAP

############################################################################
# Teaser: fake exit
NAME:  labyrinth_fake_exit
TAGS:  lab allow_dup
KFEAT: X = enter_abyss
MAP
........
.vvvvvv.
.v...Xv.
.v.vvvv
.v....v.
.vvvv+v.
........
ENDMAP
# Disheartened?

############################################################################
# A few monsters: Nothing is as it seems.
NAME:   labyrinth_single_monster
TAGS:   lab allow_dup generate_awake
WEIGHT: 20
KFEAT:  x = .
KMONS:  x = trapdoor spider / w:2 wandering mushroom
MAP
x
ENDMAP

# Death by starvation?
NAME:   labyrinth_hungry_ghost
TAGS:   lab allow_dup generate_awake
WEIGHT: 40
KFEAT:  x = .
KMONS:  x = hungry ghost
MAP
x
ENDMAP