summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dat/minitomb.des
blob: fff39a71a127e5a4bddd64f9bf64c61246343053 (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
##############################################################################
#
# The Miniature Tomb (Zaba)
#
#
# The Tomb en miniature tries to pose an unusual early challenge: many traps
# and slow monsters, making the player choose between pressing on towards the
# loot or leaving the vault.
#
# Flavour: Mini versions of Tomb:* and otherwise crypt like.
#
##############################################################################

{{
function minitomb_portal(e)
 local timeout_turns = crawl.random_range(1500, 2000)

  local messager =
    timed_msg {
      visible = true,
      -- $F{xxx} will be substituted with the 'entity' property of the timed
      -- marker, or with the desc property (if entity is not set).
      messages = time_messages(timeout_turns,
          "Nearby sand pours into $F{the}.",      
          "Nearby sand pours into $F{the}, lightly covering it.",
          "Nearby sand pours into $F{the}, greatly covering it.",
          "Nearby sand pours into $F{the}, almost completely blocking access.")
    }

  e.lua_marker('O',
      timed_marker {
        disappear = "The staircase has disappeared completely beneath the sand.",
        desc = "A sand-covered staircase",
        entity = 'staircase',
        dst = "minitomb",
        dstorigin = "in a tomb",
        overmap = "sand-covered staircase",
        turns = timeout_turns,
        floor = "floor",
        msg = messager })
  e.kfeat("O = enter_portal_vault")
  e.colour("O = yellow")
end

-- Use the following line in destination maps after all SUBSTs
-- : minitomb_setup_features(_G)
-- Note that the function also defines < to be the exit portal.
function minitomb_setup_features(e)
        e.kfeat("< = exit_portal_vault")
        e.colour("< = yellow")
        e.rockcol("white")
        e.floorcol("yellow")
        e.rocktile("wall_tomb")
        e.floortile("floor_tomb")
end
}}


#### Portal entry vaults.
default-depth: D:4-8

NAME:   enter_minitomb_1
TAGS:   uniq_minitomb no_monster_gen
COLOUR: . = none / yellow:7
: minitomb_portal(_G)
MAP
.....
.....
..O..
.....
.....
ENDMAP

NAME:   enter_minitomb_2
TAGS:   uniq_minitomb no_monster_gen
COLOUR: ' = yellow
SUBST:  ' = .
: minitomb_portal(_G)
MAP
.......
.cc=cc.
.c'''c.
.c'O'c.
.c'''c.
.ccccc.
.......
ENDMAP

NAME:   enter_minitomb_3
TAGS:   uniq_minitomb no_monster_gen
COLOUR: . = yellow / none
MONS:   rat zombie / jackal zombie / worm zombie
MONS:   kobold zombie / goblin zombie / hobgoblin zombie
MONS:   orc zombie / gnoll zombie / human zombie
SUBST:  . = .:100 11 2 3
: minitomb_portal(_G)
MAP
...
.O.
...
ENDMAP

NAME:   enter_minitomb_4
TAGS:   uniq_minitomb no_monster_gen
COLOUR: 1 = yellow, ' = yellow, x = white
MONS:   rat zombie / quokka zombie / goblin zombie
: minitomb_portal(_G)
MAP
.........
.xxxxxxx.
.x''O''x.
.x'''''x.
.x'x'x'x.
.x1x'x1x.
.xxx'xxx.
....'....
ENDMAP


#### The portal vaults ####################################

# Reset default depth to prevent random generation of portal vaults.
default-depth:

NAME:    minitomb_1
WEIGHT:  60
ORIENT:  encompass
TAGS:    minitomb no_item_gen no_monster_gen no_rotate
SHUFFLE: ^d / Ww / Yy / Zz
SUBST:   W=. , Y=. , Z=., w=2, y=2
NSUBST:  z= 1:1 / *:.
KFEAT:   ^ = alarm trap
# loot: 12.5 items
ITEM:    any scroll w:2 / any scroll q:2 w:3 / \
         any potion w:4 / any potion q:2 w:6
MONS:    mummy
MONS:    rat zombie / jackal zombie / snake zombie / goblin zombie / \
         hobgoblin zombie / kobold zombie
MONS:    kobold zombie / orc zombie / hobgoblin zombie
: minitomb_setup_features(_G)
MAP
xxxxxxxxxxxxxxxxxxxxx
x<........A........<x
x...................x
x...ccccccccccccc...x
x...c.12<c..cdddc...x
x3..c.cccc..c^ddc..3x
x..3c.......+cccc3..x
x3..cccccc......c..3x
x..3c.Zzzc......c3..x
x3..c.czzc......c..3x
x...c.cccc......c...x
x...c...........c...x
x...c.cccc.cccc.c...x
x...c.cyyc.cwwc.c...x
x...c.Yyyc.cwwW.c...x
x...cccccc.cccccc...x
x...................x
x.3.3.3..G.G..3.3.3.x
x..3.3.........3.3..x
x...................x
xxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:    minitomb_the_hunt_dp
WEIGHT:  60
ORIENT:  encompass
TAGS:    minitomb no_item_gen no_monster_gen
# loot: 8 items of which 6 should be good.
ITEM:    potion of healing / potion of heal wounds / potion of speed / \
         potion of confusion w:5 / potion of mutation w:5 / \
         scroll of identify / scroll of teleportation w:5 / \
         scroll of blinking w:5 / scroll of remove curse / \
         scroll of curse armour w:5 / scroll of curse weapon w:5
SHUFFLE: +T2M / =~45
# The +T shuffle has few traps but the player is chased.
# The C~ shuffle has harder traps but fewer monsters.
SUBST:   4 = 3
SUBST:   + = .+
SUBST:   M = .
SUBST:   5 = 11.
MONS:    mummy
MONS:    generate_awake goblin zombie / generate_awake hobgoblin zombie / \
         generate_awake kobold zombie / nothing w:20
MONS:    goblin zombie / hobgoblin zombie / kobold zombie / nothing w:20
KFEAT:   ~ = dart trap w:20 / axe trap / net trap / needle trap / alarm trap / \
             floor w:40
KFEAT:   T = alarm trap w:20 / net trap / floor w:70
KFEAT:   ^ = net trap w:15 / needle trap w:4 / axe trap w:1 / floor w:20
: minitomb_setup_features(_G)
MAP
           cccccccccccccccccccc
   ccccccccc2c2c2c3c3c3c3cddddccc
 ccc.......c+c+c+c+c+c+c+c^.....c
cc........TTTTTTTTTTTTTTTT^.....cc
c1........TTTTTTTTTTTTTTTT^.....Mcc
c.....<.A.TTTTTTTTTTTTTTTT^.....M<c
c1........TTTTTTTTTTTTTTTT^.....Mcc
cc........TTTTTTTTTTTTTTTT^.....cc
 ccc.......c+c+c+c+c+c+c+c^.....c
   ccccccccc2c2c2c3c3c3c3cddddccc
           cccccccccccccccccccc
ENDMAP

NAME:    minitomb_crypta
WEIGHT:  30
ORIENT:  encompass
TAGS:    minitomb no_item_gen no_monster_gen no_rotate no_vmirror
MONS:    mummy
MONS:    gnoll zombie / hobgoblin zombie / orc zombie / \
         big kobold zombie / kobold zombie
ITEM:    any potion / any scroll w:5 / nothing
# mix of strictly good items with strictly useless ones
ITEM:    scroll of curse armour / scroll of enchant armour w:5 / \
         scroll of curse weapon / scroll of remove curse       / \
         potion of mutation w:5 / potion of cure mutation w:5  / \
         potion of confusion    / potion of healing w:15       / \
         potion of degeneration / potion of restore abilities  / \
         scroll of immolation   / scroll of identify
# and sometimes strictly useless ones
ITEM:    scroll of curse armour / scroll of curse weapon / \
         scroll of paper        / scroll of random uselessness / \
         potion of mutation w:5 / potion of confusion    / \
         potion of degeneration / scroll of immolation   / \
         potion of confusion    / potion of paralysis
SHUFFLE: hjkl
SUBST:   h:d, j:e, k:de, l:.de
NSUBST:  d = 2:M / *:d
NSUBST:  e = 2:M / *:e
SUBST:   M = 1de
SUBST:   ' = ^~..
SUBST:   . = .:95 ~:5
KFEAT:   ^ = alarm trap
KFEAT:   ~ = net trap
SUBST:   = : =+
SUBST:   = = =+
: minitomb_setup_features(_G)
MAP
          vvv
        vvv1vvv
 ccccc vveeeeevv ccccc
 clllc veeeeeeev chhhc
 clllc vvvv'vvvv chhhc
 cc'cc    c'c    cc'cc
ccc'c   ccc+ccc   c'ccc
c2+.cc cc.....cc cc.+2c
ccc..ccc.......ccc..ccc
c2+...c.........c...+2c
ccc...=....U....=...ccc
c2+...c.........c...+2c
ccc..ccc.......ccc..ccc
c2+.cc cc.....cc cc.+2c
ccc'c   ccc+ccc   c'ccc
 cc'cc    c.c    cc'cc
 ckkkc   cc.cc   cjjjc
 ckkkc   c.A.c   cjjjc
 ccccc   c.<.c   ccccc
         ccccc
ENDMAP

NAME:    minitomb_2
WEIGHT:  30
ORIENT:  encompass
TAGS:    minitomb no_item_gen no_monster_gen no_rotate
KFEAT:   ~ = floor / dart trap / arrow trap / needle trap / alarm trap
KFEAT:   ^ = dart trap / arrow trap / alarm trap
SHUFFLE: 1~ / ZT
# In the 1~ shuffle, rooms are largely separated into monster and trap rooms;
# in the ZT shuffle, everything will be mixed up.
# Number of 1's is 51, number of ~'s is 57.
# Aim for 27 monsters of 1 type, 45 ~ traps, 9 ^ traps (without z and t).
# z and t will be turned into zombies and traps at last, it's the first room.
# (Using SUBST instead of NSUBST for higher variance.)
SUBST:   1 = 1:27 ~:16 .:8
SUBST:   ~ = ~:45 ^:9  .:19
SUBST:   T = Z
SUBST:   Z = 1:27 ~:45 ^:9 .:27
SUBST:   z = 1
NSUBST:  t = 4:~ / 2:^ / *:.
# loot: 12 items
ITEM:    any scroll w:5 / any potion
MONS:    snake zombie / hobgoblin zombie / orc zombie / kobold zombie / nothing
MONS:    big kobold zombie / brown snake zombie / nothing
MONS:    mummy
# You either get a view on the loot, or a hint about the secret door.
SHUFFLE: XY / xy
SUBST:   X==, Y=c
COLOUR:  = : yellow
SUBST:   x==, y=n
: minitomb_setup_features(_G)
MAP
cccccccccccccccccccccc
c<11c~~~c1111c~~~c111c
c111c~~~+1221+~~~c111c
c111+~~~c1111c~~~+111c
ccc+cccccccccccccc+ccc
c~~~c            c~~~c
c~~~c            c~~~c
c~~~c            c~~~c
c~~~c            c~~~c
cc+cc            cc+cc
c111c            c111c
c111c            c111c
c111c            c111c
c111c            c111c
c+ccc            ccc+c
c~~~c            cztzc
c~~~cccccccccccccctttc
c~~~c...cddddc...ctttc
c~~~+.<3XddddY.A.+tttc
c~~~c...cddddc...ctt<c
cccccccccccccccccccccc
ENDMAP

NAME:    minitomb_3
WEIGHT:  10
ORIENT:  encompass
TAGS:    minitomb no_item_gen no_monster_gen no_rotate no_vmirror
# zombies should be awake, so they march downwards in a line
MONS:    generate_awake orc zombie / generate_awake kobold zombie / \
         generate_awake hobgoblin zombie / generate_awake gnoll zombie
MONS:    mummy
MONS:    orc zombie / kobold zombie / big kobold zombie / hobgoblin zombie
# loot: 24 items
ITEM:    nothing / any scroll w:5 / any potion
KFEAT:   ^ = alarm trap
: minitomb_setup_features(_G)
MAP
cccccccccccccccccccccc
cccc.....2222.....cccc
ccc..2...cccc...2..ccc
cc......cc..cc......cc
cc.....cc....cc.....cc
cc........22........cc
ccc..3....22....3..ccc
cccc..............cccc
cccc+cc........cc+cccc
cccc^^cc111111cc^^cccc
cccd...cc....cc...dccc
ccdd....c....c....ddcc
c$ddd...c....c...ddd$c
c$ddd...c....c...ddd$c
c$$dd...c....c...dd$$c
cc$ddd..c....c..ddd$cc
cc$$dd.cc....cc.dd$$cc
ccc$dd.cc....cc.dd$ccc
ccc$ddccc.<A.cccdd$ccc
cccccccccccccccccccccc
ENDMAP