Further Swamp end vaults adjustments
[crawl.git] / crawl-ref / source / dat / des / branches / swamp.des
1 ###############################################################################
2 # swamp.des: All maps and branch endings relating to the Swamp.
3 ###############################################################################
4
5 # Functionality for one of Grunt's vaults.
6 {{
7 function callback.grunt_lady_of_the_lake_trigger(data, triggerable, triggerer,
8                                                  marker, ev)
9   if data.triggered then
10     return
11   end
12
13   local b = dgn.find_marker_positions_by_prop("siren_spawn", 1)[1]
14
15   if dgn.create_monster(b.x, b.y, "generate_awake siren") then
16
17     data.triggered = true
18     if you.see_cell(b.x, b.y) then
19       crawl.mpr("A figure emerges from the depths of the water!", "warning");
20     else
21       crawl.mpr("The water ripples visibly.", "visual");
22     end
23   else
24     crawl.mpr("The water ripples visibly.", "visual");
25   end
26 end
27 }}
28
29 {{
30 function swamp_ruins(e)
31     e.tags('serial_swamp_ruin extra transparent unrand')
32     e.depth('Swamp')
33     e.weight('6')
34     e.tile('x = wall_brick_vines')
35     e.ftile('- = floor_sandstone')
36     e.subst('- = .')
37 end
38 }}
39
40 ###############################################################################
41 # Swamp entries
42 ###############################################################################
43
44 # This is basically the dummy balancer.
45 NAME:   swamp_mist
46 TAGS:   swamp_entry
47 KFEAT:  O = enter_swamp
48 MARKER: O = lua:fog_machine { \
49              pow_min = 8, pow_max = 12, delay = 25, \
50              size = 2, walk_dist = 1, spread_rate= 33 }
51 MAP
52 O
53 ENDMAP
54
55 # Scenery, no threat.
56 NAME:   swamp_mist_pool
57 TAGS:   swamp_entry no_pool_fixup
58 KFEAT:  O = enter_swamp
59 MARKER: O = lua:fog_machine { \
60              pow_min = 8, pow_max = 12, delay = 25, \
61              size = 2, walk_dist = 1, spread_rate= 33 }
62 SUBST:  '= t.., "= tw, t=ttw, w=Ww
63 validate {{ return glyphs_connected("O", "@") }}
64 MAP
65        @
66    't"wwt@
67   't"wwwwt'
68  't"wwwww"t'
69  t"wwwOwww"t
70  't"wwwww"t'
71   't"www"t'
72    't"wt@
73 ENDMAP
74
75 NAME:   minmay_swamp_entry_swarm
76 TAGS:   swamp_entry
77 WEIGHT: 5
78 SUBST:  W = 1WWWWW, t = ttt., T = tttW, W = WWWwww., ' = W
79 NSUBST: 1 = 2:1 / 1WWWWW
80 KMONS:  1 = vampire mosquito
81 KFEAT:  1 = w / W
82 KFEAT:  O = enter_swamp
83 MARKER: O = lua:fog_machine { \
84              pow_min = 8, pow_max = 12, delay = 25, \
85              size = 2, walk_dist = 1, spread_rate= 33 }
86 MAP
87    ttttt
88   tTTTTTt
89  tTT111TTt
90 tTT11111TTt
91 tT1111111Tt
92 tTWWWOWWWTt
93 tTWWW'WWWTt
94 tTTWW'WWTTt
95  tTTW'WTTt
96   tTT'TTt
97 ENDMAP
98
99 NAME:   minmay_swamp_entry_wisps
100 TAGS:   swamp_entry
101 WEIGHT: 2
102 MONS:   insubstantial wisp / nothing
103 KFEAT:  O = enter_swamp
104 MARKER: O = lua:fog_machine { \
105              pow_min = 8, pow_max = 12, delay = 25, \
106              size = 2, walk_dist = 1, spread_rate= 33 }
107 MAP
108 111
109 1O1
110 111
111 ENDMAP
112
113 NAME:   minmay_swamp_entry_reptiles
114 TAGS:   swamp_entry
115 WEIGHT: 5
116 MONS:   swamp drake / komodo dragon / hydra / swamp dragon
117 MONS:   baby alligator / crocodile / iguana / giant newt
118 KFEAT:  O = enter_swamp
119 MARKER: O = lua:fog_machine { \
120              pow_min = 8, pow_max = 12, delay = 25, \
121              size = 2, walk_dist = 1, spread_rate= 33 }
122 MAP
123 2.1
124 .O.
125 2.2
126 ENDMAP
127
128 NAME:   minmay_swamp_entry_worms
129 TAGS:   swamp_entry
130 SUBST:  T = tww
131 KMONS:  w = swamp worm / giant leech / nothing w:89
132 KFEAT:  w = w / W
133 KFEAT:  O = enter_swamp
134 MARKER: O = lua:fog_machine { \
135              pow_min = 8, pow_max = 12, delay = 25, \
136              size = 2, walk_dist = 1, spread_rate= 33 }
137 MAP
138  ttttt
139 ttTTTtt
140 tTwwwTt
141 tTwOWW@
142 tTwwwTt
143 ttTTTtt
144  ttttt
145 ENDMAP
146
147 NAME:   minmay_swamp_entry_eels
148 TAGS:   swamp_entry
149 WEIGHT: 2
150 KMONS:  w = electric eel / nothing w:40
151 KFEAT:  w = w / W
152 KFEAT:  O = enter_swamp
153 MARKER: O = lua:fog_machine { \
154              pow_min = 8, pow_max = 12, delay = 25, \
155              size = 2, walk_dist = 1, spread_rate= 33 }
156 MAP
157   .....
158  .......
159 ...www...
160 ..wwwww..
161 ..wwOww..
162 ..wwwWw..
163 ...www...
164  .......
165   .....
166 ENDMAP
167
168 NAME: nicolae_swamp_entry_splash_gauntlet
169 TAGS: swamp_entry
170 KFEAT: O = enter_swamp
171 MARKER: O = lua:fog_machine { pow_min = 8, pow_max = 12, delay = 25, \
172    size = 2, walk_dist = 1, spread_rate = 33 }
173 NSUBST: A = ttttw / w, B = ttttw / w, C = ttttw / w, D = ttttw / w
174 NSUBST: E = T / ., F = T / ., G = T / ., H = T / ., I = T / ., J = T / .
175 SUBST: T = tt.
176 KMONS: 1 = swamp worm
177 KMONS: 2 = electric eel
178 KFEAT: 12 = w
179 MAP
180     ......tttttttt
181   ...ttttttttttttttttt
182  ..tttw1wAAAw1wCCCw1wtt
183 @.T...E.F.G.H.I.J...2tt
184 @.T...E.F.G.H.I.J..Owtt
185  ..tttw1wBBBww1DDDw1wtt
186   ...ttttttttttttttttt
187     ......tttttttt
188 ENDMAP
189
190 ###############################################################################
191 # Swamp non-entry and non-ending vaults
192 ###############################################################################
193
194 default-depth: Swamp
195
196 ###############################################################################
197 # A series of pools by Jude.
198 NAME:   swamp_pool1
199 TAGS:   no_pool_fixup allow_dup extra luniq_pool
200 WEIGHT: 1000
201 {{ smear_map({iterations=5, smear='w', onto='wwt"', boxy=false}) }}
202 SUBST:  "=ttw
203 MAP
204      ""
205    "www"
206   "wwwww"
207   wwwwwww"
208   "wwwww"
209    "www"
210     "w"
211 ENDMAP
212
213 NAME:   swamp_pool2
214 TAGS:   no_pool_fixup allow_dup extra luniq_pool
215 WEIGHT: 500
216 SUBST:  "=ttttw
217 MAP
218      ""
219    "www"
220   "wwwww"
221   wwwwwww"
222   "wwwww"
223    "www"
224     "w"
225 ENDMAP
226
227 NAME:   swamp_pool3
228 TAGS:   no_pool_fixup allow_dup extra luniq_pool
229 WEIGHT: 500
230 SUBST:  '=Wt, "=wwt
231 MAP
232 "'ttt'
233 '""w"tt
234 twwww"t
235 '""wwtt
236  ttw"t'
237   'tt'
238 ENDMAP
239
240 NAME:   swamp_pool4
241 TAGS:   no_pool_fixup allow_dup extra luniq_pool
242 WEIGHT: 500
243 SUBST:  "=ttttw
244 MAP
245   t""tt
246  ""www"t
247 "twwwwwtt
248  wwwww"tt
249 "twww"tt"
250  ttwww"tt
251   ttw"tt
252 ENDMAP
253
254 NAME:   swamp_pool5
255 TAGS:   no_pool_fixup allow_dup extra luniq_pool
256 KMONS:  1 = patrolling swamp drake
257 KFEAT:  1 = deep_water
258 WEIGHT: 500
259 SUBST:  "=ttttw, '=ttW
260 MAP
261   't't'
262  tt"""t'
263  t"w1w"tt
264  ww1ww"t'
265  t"w1t"t
266  tt"w"ttt
267   tt"t'
268 ENDMAP
269
270 ###############################################################################
271 # Other Swamp decorative vaults
272
273 # Swamp's layout is chaotic and samey; fill it with decorative vaults.
274 NAME:   swamp_ruins_default
275 TAGS:   luniq_extradecor chance_extradecor allow_dup extra no_dump
276 PLACE:  Swamp:1-4
277 {{
278   local n = 1
279   hook("post_place", function()
280     dgn.place_maps{tag="serial_swamp_ruin", count=n}
281   end)
282 }}
283
284 NAME:   serial_swamp_ruin
285 TAGS:   luniq_serial luniq_extradecor chance_extradecor extra
286 PLACE:  Swamp:1-4
287 WEIGHT: 2
288 {{
289   local n = 2 + crawl.random2(2)
290   hook("post_place", function()
291     dgn.place_maps{tag="serial_swamp_ruin", count=n}
292   end)
293 }}
294
295 NAME:   swamp_other_decor
296 TAGS:   luniq_extradecor chance_extradecor allow_dup extra no_dump
297 PLACE:  Swamp:1-4
298 WEIGHT: 8
299 {{
300   local n = 1
301   hook("post_place", function()
302     dgn.place_maps{tag="decor", count=n}
303   end)
304 }}
305
306 #####
307 NAME: nicolae_swamp_fairy_circle
308 TAGS: transparent extra decor
309 SUBST: W = .W, w = wwwW, q = w
310 MONS: fungus / nothing w:7
311 MAP
312     ...
313   ..111..
314  .11WWW11.
315  .1WWwWW1.
316 .1WWwwwWW1.
317 .1WwwqwwW1.
318 .1WWwwwWW1.
319  .1WWwWW1.
320  .11WWW11.
321   ..111..
322     ...
323 ENDMAP
324
325 NAME: nicolae_swamp_treefoil
326 TAGS: transparent extra decor
327 SUBST: T = t.
328 KFEAT: . = . w:30 / W
329 MAP
330 tt       @     tt
331  ttt....T.T...Tttt
332   TtttT.TT..TtttT
333   ..TttT...tttT.
334    T..ttttttT..
335     T..TTtT..T.
336      @..TtT.T..
337       T.TtT.TT.@
338       ..TtT.TT
339        .TtT.
340         Tt.
341         ttT
342          t
343 ENDMAP
344
345 NAME: nicolae_swamp_feature_on_the_river_bank
346 TAGS: transparent no_pool_fixup decor
347 SUBST: T = t., W = .Ww t:5, Q = tw, f = .GTV U:5 C:5
348 MAP
349      tttQ..@..Qttt
350     ttQQQ.....QQQtt
351 tttttQQWW.....WWQQttttt
352   ttQQwWW.....WWwQQtt
353   ttQwwWW..f..WWwwQtt
354    ttwwWW.....WWwwtt
355    @TwwwWW...WWwwwT@
356    ..WwwwWWWWWwwwW..
357    T..WwwwwwwwwwW..T
358    tT..WwwwwwwwW..Tt
359    ttT..WWWwWWW..Ttt
360     ttT...WWW...Ttt
361      ttT.......Ttt
362       ttTTTTTTTtt
363 ENDMAP
364
365 NAME: nicolae_swamp_stair_fork
366 TAGS: extra decor
367 DEPTH: Swamp:2-4
368 SHUFFLE: {}[]()
369 SUBST: W = w., T = t.
370 MAP
371 tttttt
372 t...TTtt
373 t.{...TTtt
374 t.......TTtt
375 tT..WWW...Ttt
376 tT..WwwW...Ttt
377  tT.WwwwWW..Tt
378  tT..WwwwwW..@
379   tT..WwwwwW.
380   tT..Wwwwww
381    tT..Wwwww
382    ttT..Www
383     ttT..
384      tt@
385 ENDMAP
386
387 NAME: nicolae_swamp_round_clearing
388 TAGS: transparent luniq_swclearing extra decor
389 SUBST: T = ttt.., E = .e, e = W.., t = ttttt.
390 MAP
391     eeeee
392    eEEEEEee
393   eE.....EEe
394  eE........Ee
395 eE..........Ee
396 eE...TTT.....Ee
397 eE...TtTT....Ee
398 eE...TTtT....Ee
399 eE....TTT...Ee
400  eE........Ee
401  eE........Ee
402  eE.......Ee
403   eE.....Ee
404    eEEEEEe
405     eeeee
406 ENDMAP
407
408 NAME: nicolae_swamp_rocky_clearing
409 TAGS: transparent luniq_swclearing extra decor
410 WEIGHT: 3
411 SUBST: X = xxxtt.., E = .e, e = W..
412 MAP
413        eeeee
414   eeeeeEEEEEeeeee
415  eEEEEE....XEEEEEe
416  eE.......XXX....Ee
417 eE...XXX...X......Ee
418 eE..XxxxX.....XX...Ee
419 eE..XxxxX....XxxX..Ee
420 eE...XXX......XX...Ee
421  eE..............EEe
422   eEEE...XX..EEEEee
423    eeeEEEEEEEeeee
424       eeeeeee
425 ENDMAP
426
427 NAME: nicolae_swamp_trees_clearing
428 TAGS: transparent luniq_swclearing extra decor
429 SUBST: w = Te, T = ttt.., E = .e, e = W..
430 MAP
431       tttweeee
432     wtttTwEEEEeee
433   eeTtttT.....EEEe
434 eeEE.TttT........Ee
435 eE....TtT....T...Ee
436 eE....TtT...TtT...Ee
437 eE.....T....TtT...Ee
438  eE........TttTT.Ee
439   eE........TtttTEe
440   eeEEE.....Ttttww
441     eeeEEEEEwtttt
442        eeeeewttt
443 ENDMAP
444
445 NAME:    hangedman_swamp_blocks
446 TAGS:    transparent extra no_pool_fixup decor
447 SHUFFLE: BC, DEF
448 SUBST:   A : ttw, B : tttww, D : w., E : w..., C = t, F = .
449 KMASK:   wW = no_monster_gen
450 MAP
451   ...   ..    ..
452  .WWW....WW....w.
453 .Wtttt..ttt.D.tAw
454 .WttttW.ttt.D.tt.
455 .WttttW.tBt......
456  .ttttW.....ttt..
457  ..WWW..FE..CttW.
458  ......FE...tttW.
459 .Wttt.FE.WWW....
460 .WttB.E.Wtttt..
461  .ttt...WttttW.
462  .......WttttW.
463  .DD.tCt.ttttW.
464  ....ttt..WWW..
465 ..tt.ttt......
466 .WAt..WW.
467  .W.....
468 ENDMAP
469
470 NAME:    hangedman_swamp_diagram
471 TAGS:    transparent extra no_pool_fixup decor
472 MONS:    bush
473 SHUFFLE: AB, CD, EF, GH, IJ / IJ / JI
474 SUBST:   A : tww.., C : tww.., E : t., G = t.
475 SUBST:   I = wt1GT., BDF = t, H = .
476 KMASK:   wW = no_monster_gen
477 MAP
478    tt.tt@tt@tt.tt
479    tt.tt.tt.tt.tt
480    tttWWttttWWttt
481 ttttttWWttttWWttt
482 tttttttA.tt.Btttt
483 ..ttttttCWWDttttt
484 ttWWtttttWWtttttt
485 ttWWAttG.ttEtt
486 @.tt.Ct.I.Fttt
487 tttttWWt.JWttt
488 tttttWWtFWWttt
489 @.tt.DtEtttHtt
490 ttWWBttttttttt
491 ttWWtttttttttt
492 ..ttttt
493 ttttttt
494 ttttttt
495 ENDMAP
496
497 NAME: wheals_swamp_sinkhole
498 TAGS: extra no_monster_gen decor
499 DEPTH: Swamp, !Swamp:$
500 WEIGHT: 5
501 KFEAT: ^ = known shaft trap
502 SUBST: u = Ww
503 KPROP: wW^ = no_rtele_into
504 MAP
505 ttttttttt
506 twwwwwwwt
507 twuuuuuwt
508 twuWWWuwt
509 twuW^Wuwt
510 twuWWWuwt
511 twuuuuuwt
512 @wwwwwwwt
513 ttttttttt
514 ENDMAP
515
516 NAME: nicolae_swamp_triple_paths
517 TAGS: transparent extra decor
518 SUBST: R = tr, T = t_
519 KFEAT: r = tree
520 CLEAR: _
521 MAP
522          TR@RT
523          TR.RT
524      @TTTTR.RTTTT@
525     T..RRRR.RRRR..T
526     TT....r.r....TT
527      TRRR.r.r.RRRT
528     TTttR.r.r.RttTT
529 TTTTTtttR.r.r.RtttTTTTT
530 ttttttttR.r.r.Rtttttttt
531 TTTTTtttR.r.r.RtttTTTTT
532     TTttR.r.r.RttTT
533      TRRR.r.r.RRRT
534     TT....r.r....TT
535     T..RRRR.RRRR..T
536      @TTTtR.RtTTT@
537         TTR.RTT
538          TR@RT
539 ENDMAP
540
541 NAME: nicolae_swamp_godswood
542 TAGS: transparent extra decor
543 MAP
544 ttt     ttt
545 ..ttttttt..
546 @...ttt...@
547 .tt..t..tt.
548 tttt...tttt
549  tt..t..tt
550  t.......t
551  tt..w..tt
552   t.www.t
553  tt..w..tt
554  t...C...t
555  tt..t..tt
556   tt...tt
557    ttttt
558 ENDMAP
559
560 NAME: nicolae_swamp_orc_logging_accident
561 TAGS: decor extra no_monster_gen no_trap_gen
562 SUBST: F = 't, T = _t
563 NSUBST: p = 4:p / *:., ' = o / '
564 SUBST: . = ...b
565 KPROP: bp = bloody
566 SUBST: b = .
567 {{
568 dgn.delayed_decay_extra(_G, 'o', 'orc corpse', 'hand axe / broad axe, ' ..
569    'leather armour / pair of gloves, mundane quarterstaff')
570 dgn.delayed_decay_extra(_G, 'p', 'orc corpse', 'hand axe / broad axe, ' ..
571    'leather armour / pair of gloves')
572 }}
573 KITEM: w = mundane quarterstaff
574 KITEM: s = meat ration / bread ration
575 KFEAT: 'o = W
576 CLEAR:  _
577 MAP
578        TTTTT
579      TTtttttTTT
580     TttttFFttttTT
581    TttttFF'FtttttT
582   TtttttF'''FtttttT
583  TtttttttF''FttttttT
584  Ttt.p........p.ttttT
585 TTt..xxxx........tptT
586 Tttp.xwwx...xxmx...tT
587 Tt...xww+...xpsx...tT
588 Tt.p.xwwxp..+.sm.p.tT
589 Tt...xxxx...x.sx..ttT
590 Tt..p.......xxmx..tTT
591 Ttt.....p......p.ttT
592 TTtttt..........ttTT
593  TTTTtttt@@ttttttTT
594     TTTT     TTTTT
595 ENDMAP
596
597 NAME:    hangedman_swamp_cone
598 TAGS:    transparent extra no_pool_fixup decor
599 SHUFFLE: ABCDEF
600 SUBST:   AB : w, C : ww., D : w.., EF = ., G : ttw., H : wtt``, I : wtt``
601 CLEAR:   `
602 KMASK:   wW = no_monster_gen
603 MAP
604 t@......
605 t.ttttG.H
606 t.A.........
607 t....BttttG.H
608 t.tttttC.........
609 t.A.......DttttG.H
610 t....BttttttE.........
611 t.tttttC.......FttttG@
612 t.A.......Dtttttt.....
613 t....Btttttt......I
614 t.ttttt......I
615 t@......I
616 ENDMAP
617
618 NAME:    hangedman_swamp_lotus
619 TAGS:    transparent extra no_pool_fixup decor
620 MONS:    plant
621 SHUFFLE: ABCDE
622 SUBST:   AB : w, C : wwW1, D : wWW1, E : W1
623 KMASK:   wW = no_monster_gen
624 MAP
625         ... ...
626      .............
627     ..ttttAAAtttt..
628   .......ttttt.......
629  ..ttttB.......Btttt..
630 @.....tttt.t.tttt.....@
631 .tttC....t...t....Cttt.
632  ..ttttD.......Dtttt..
633    ...tttttEttttt...
634       ....ttt....
635          .ttt.
636          .ttt.
637          .ttt.
638           .t.
639           .t.
640            @
641 ENDMAP
642
643 NAME:    hangedman_swamp_pad
644 TAGS:    transparent extra no_pool_fixup decor
645 KMONS:   P = plant
646 KFEAT:   P = shallow_water
647 SHUFFLE: AB / AB / BA, CD / CD / DC, EF / EF / FE
648 SUBST:   A = t, B = ., C : Pt~.., D = ., E = t, F = P
649 KMASK:   ~ = no_monster_gen
650 SUBST:   ~ = w
651 MAP
652    .www.www.
653   .w...w...w.
654  .w.B.t.t.B.w.
655 .w.A.ttttt.A.w.
656 w.B.t..C..t.B.w
657 w..t...D...t..w
658 w.tt..EFE..tt.w
659 .w.tCDFtFDCt.w.
660 w.tt..EFE..tt.w
661 w..t...D.wwt..w
662 w.B.t..C.wPw..w
663 .w.A.tttttwPw.w
664  .w.B.t.t..wPw.
665   .w...w....w.
666    .www.wwww.
667 ENDMAP
668
669 #####
670 # The ruins of a town... all that is left are a few buildings
671 # and skeletons. These vaults are just to give swamp some variety...
672 # There are no monsters or loot placed here.
673 NAME:   evilmike_swamp_ruin_house_1
674 NSUBST: x = 1:+ / *:x
675 SUBST:  yx = xxxxx-, - = ----.
676 NSUBST: - = 1:d / *:-
677 : dgn.delayed_decay(_G, 'd', 'human skeleton')
678 : swamp_ruins(_G)
679 MAP
680   ........
681  ..........
682 ..yxxyxxxy..
683 ..x--y---x..
684 ..x------x..
685 ..yy-y---x..
686 ..x--yy-yy..
687 ..x--y---x..
688 ..x--y---x..
689 ..yxxyxxxy..
690  ..........
691   ........
692 ENDMAP
693
694 NAME:   evilmike_swamp_ruin_house_2
695 SUBST:  x = xxxxx-, - = ----.
696 : swamp_ruins(_G)
697 MAP
698  ..
699  .xxx
700  .x----
701 ..x-----
702 ..x---
703 ..x--- ---x
704  .x-------x
705  .xxxxxxxxx.
706  ...........
707      ...
708 ENDMAP
709
710 NAME:   evilmike_swamp_ruin_house_3
711 NSUBST: x = 1:+ / *:x
712 SUBST:  y = x, x = xxxxx-, - = ----.
713 NSUBST: - = 1:d / *:-
714 : dgn.delayed_decay(_G, 'd', 'human skeleton')
715 : swamp_ruins(_G)
716 MAP
717     .....
718    .......
719   ..yxxxy..
720  ..yy---yy..
721 ..yy-----yy..
722 ..x---y---x..
723 ..x--yyy--x..
724 ..x---y---x..
725 ..yy-----yy..
726  ..yy---yy..
727   ..yxxxy..
728    .......
729     .....
730 ENDMAP
731
732 NAME:   evilmike_swamp_ruin_house_4
733 SUBST:  x = xxxxx-, - = ----.
734 : swamp_ruins(_G)
735 MAP
736   .......
737  ..xxxxx..
738 ..xx---xx..
739 .xx-----x
740 .x--   --
741 .x---
742 .xx----
743 ..xx--
744  ..xx
745   ...
746 ENDMAP
747
748 NAME:   evilmike_swamp_ruin_house_5
749 NSUBST: x = 1:+ / *:x
750 SUBST:  yx = xxxxx-, - = ----.
751 NSUBST: - = 2:d / *:-
752 : dgn.delayed_decay(_G, 'd', 'human skeleton')
753 : swamp_ruins(_G)
754 MAP
755   ............
756  ..............
757 ..yxxxxxyxxxxy..
758 ..x-----y----x..
759 ..x-----y----x..
760 ..x-----y----x..
761 ..yyyyyyy---
762 ..x---y----
763 ..x---yxxxxx
764 ..x---x...
765 ..x---x...
766 ..yxxxy..
767  .......
768   .....
769 ENDMAP
770
771 NAME:   evilmike_swamp_ruin_house_6
772 SUBST:  x = xxxxx-, - = ----.
773 : swamp_ruins(_G)
774 MAP
775 .....
776 .xxxxxxx x
777 .x-----
778 .x----   -     x
779  x----
780  xxxx  x      -x
781   ...        --x
782           x----x.
783          .x----x.
784          .x----x.
785          .xxxxxx
786          ...
787 ENDMAP
788
789 NAME:   evilmike_swamp_ruin_rubble_1
790 SUBST:  x = xxxx-, - = -----.
791 : swamp_ruins(_G)
792 MAP
793    .......
794   ......x..
795  ..xx.......
796 ...xx...xxx..
797 ........x--..
798 ...xx...xxx..
799 .............
800 .x-x..xx.....
801 .x-x..xx...x.
802 .xxx.........
803  .....xxxx..
804   ....xxxx.
805    .......
806 ENDMAP
807
808 NAME:   evilmike_swamp_ruin_rubble_2
809 SUBST:  x = xxxx-, - = -----.
810 : swamp_ruins(_G)
811 MAP
812    .........
813   ..xx..xxx..
814  ...xx..x--...
815 ..x.....xxx....
816 .....x......
817 .........
818 .xxx...
819 .--x..
820 .x-x...
821 .xxx.....
822 .....xx.....
823 ..x..xx..xxx...
824  ....xx..--x..
825   .......xxx.
826    .........
827 ENDMAP
828
829 NAME:   evilmike_swamp_ruin_wall
830 SUBST:  x = xxxx-, - = -----.
831 : swamp_ruins(_G)
832 WEIGHT: 4
833 MAP
834         x
835        xx
836        xx
837       .xx.
838      .-xx-.
839     .--xx--.
840    .---xx---.
841 xxxxxxxxxxxxxxx
842  xxxxxxxxxxxxxxx
843    .---xx---.
844     .--xx--.
845      .-xx-.
846       .xx.
847        xx
848        xx
849        x
850 ENDMAP
851
852 NAME:   hangedman_swamp_ruin_wall
853 SUBST:  x = xxxx-, - = -----.
854 : swamp_ruins(_G)
855 WEIGHT: 4
856 MAP
857   x
858 .-xx-....
859 .-xx-----.
860  -xxxxxx-.
861 .-xxxxxx-.
862 .-----xx-....
863  ....-xx-----.
864     .-xxxxxx-.
865     .-xxxxxx-
866     .-----xx-.
867      ....-xx-.
868            x
869 ENDMAP
870
871 NAME:    hangedman_swamp_ruin_hall
872 SHUFFLE: yYzZ / yYzZ / zZyY
873 NSUBST:  - = 2:d- / *:-, z = 1:+ / *:X, Z = 1:. / *:X
874 SUBST:   XyY = xxxx-, - = -----.
875 : swamp_ruins(_G)
876 WEIGHT:  2
877 MAP
878   ....  ....
879  ..XZZZZZZX..
880  ..y------Y..
881   .y-x--x-Y.
882  ..y------Y..
883  ..XzzzzzzX..
884   ..........
885   XXXX--XXXX
886 .XxxxX--XxxxX.
887 .XxxxX--XxxxX.
888 .XxxxX--XxxxX.
889   XXXX--XXXX
890   ..........
891 ENDMAP
892
893 ###############################################################################
894 # Other Swamp vaults
895
896 NAME:    hangedman_swamp_phenomena
897 TAGS:    no_pool_fixup no_monster_gen patrolling transparent
898 DEPTH:   Swamp:1-4
899 KMONS:   1 = insubstantial wisp
900 KMONS:   2 = ball lightning
901 KMONS:   3 = lightning spire
902 KFEAT:   123 = deep_water
903 SHUFFLE: })
904 SUBST:   T = w:3 t, M = ~:4 t, W = W:3 w, . = .:3 W, } = }:20 >, ) = ):25 <>
905 CLEAR:   ~
906 MAP
907   Mtttttt  @tt
908  Mttttttttt..ttM
909 Mttt3twwwtWT.wtt
910 Mtt211w}wwt.wwwtt
911 ttt11w.w.w.w11ttt
912 ttwww.tWw)w112ttM
913 Mttw.TWt.wwt3tttM
914  Mtt..tttttttttM
915    tt@  ttttttt
916 ENDMAP
917
918 NAME:    hangedman_swamp_wriggling
919 TAGS:    no_pool_fixup no_monster_gen patrolling transparent
920 DEPTH:   Swamp:1-4
921 KMONS:   0 = swamp worm
922 MONS:    giant leech, worm
923 KFEAT:   0 = shallow_water
924 SHUFFLE: })
925 SUBST:   } = }>, ) = <)>, } = }:20 >, ) = ):25 <>, 4 = 23
926 MAP
927       @tttttt
928      WttwWwwtt
929  ...tttW2..w0tt
930  tw0tt4wWt.Wwtt
931 ttW.tt}3)tW.0tt
932 t0.WtW4wtt.Wtt
933 tww..2Wwtt0Wt
934 tt0wWwwtt....
935  ttttttt@
936 ENDMAP
937
938 NAME:    hangedman_swamp_ravenous
939 TAGS:    no_pool_fixup no_monster_gen patrolling transparent
940 DEPTH:   Swamp:1-4
941 MONS:    bog body
942 MONS:    necrophage
943 MONS:    ghoul
944 SUBST:   jl = t
945 KFEAT:   % = shallow_water / .
946 SHUFFLE: jJ / lL, })
947 SUBST:   JLT = w:4 t, M = ~:4 t, } = }:20 >, ) = ):25 <>
948 CLEAR:   ~
949 : dgn.delayed_decay(_G, '%', 'any corpse')
950 MAP
951  MMtttttt
952 MtttWTWttt
953 tt1W2w2W1tt
954 t1WlTWt.W1t
955 @%wlL}jJ.%t
956  ..lL3jJw.
957 t%.lL)jJw%@
958 t1W.tWTt.1t
959 tt1W2w2W1tt
960 MtttWTWtttM
961  MMtttttMM
962 ENDMAP
963
964 NAME:    hangedman_swamp_muck
965 TAGS:    no_pool_fixup no_monster_gen patrolling transparent
966 DEPTH:   Swamp:1-4
967 KMONS:   1 = slime creature / jelly
968 KMONS:   2 = slime creature
969 KMONS:   3 = brown very ugly thing
970 KFEAT:   12 = shallow_water
971 SHUFFLE: })
972 SUBST:   T = w:4 t, M = ~:4 t, } = }:20 >, ) = ):25 <>
973 CLEAR:   ~
974 MAP
975  MtttttttttM
976 MttW3}2)3wttM
977 Mtw.tt1tt.WtM
978 Mtt..wtt..ttM
979 Mttt.1t1.tttt
980 Mtw.1wtw1.WTt
981 MtWtttwtttWtt
982 Mt2.tT.Tt.2tM
983 Ttt..twW..ttM
984  Ttt.www.ttM
985  @WWwtTtwW@
986 ENDMAP
987
988 NAME:    hangedman_swamp_dais
989 TAGS:    no_pool_fixup no_monster_gen no_item_gen patrolling
990 DEPTH:   Swamp, Zot:1-4
991 KITEM:   *| = % no_pickup w:2 / * no_pickup / | no_pickup
992 KFEAT:   aA = stone_arch
993 KFEAT:   B = shallow_water
994 KFEAT:   Z = known zot trap
995 : if you.branch() == "Swamp" then
996 MONS:    swamp drake, hydra, swamp dragon
997 KMONS:   A = swamp dragon
998 KMONS:   B = green draconian
999 SUBST:   x = t
1000 NSUBST:  1 = 1:2 / 1:3 / * = 1:80 23
1001 : else
1002 KMONS:   1 = green draconian
1003 KMONS:   a = death drake
1004 KMONS:   A = tentacled monstrosity / green death
1005 # No burning down the trees or making them look burnt.
1006 KMONS:   b = green draconian caller w:15 / yellow draconian caller w:1 / \
1007              white draconian caller w:1 / grey draconian caller w:1 / \
1008              pale draconian caller w:1 / purple draconian caller w:1
1009 KMONS:   B = green draconian zealot w:15 / yellow draconian zealot w:1 / \
1010              white draconian zealot w:1 / grey draconian zealot w:1 / \
1011              pale draconian zealot w:1 / purple draconian zealot w:1
1012 KMONS:   % = necrophage / orange demon
1013 KMONS:   *d = swamp dragon w:8 / seven-headed hydra w:5 / eight-headed hydra w:5
1014 KMONS:   | = large abomination / tentacled monstrosity w:5
1015 SHUFFLE: AB%| / abd*
1016 : end
1017 SUBST:   < : <:1 .:9
1018 NSUBST:  < = 1:{ / 1:}
1019 SHUFFLE: {} / {[ / {[ / }] / }]
1020 MARKER:  A = lua:fog_machine { cloud_type = "translocational energy", pow_max = 2, \
1021                  delay_min = 100, delay_max = 150, size = 1, walk_dist = 1 }
1022 MAP
1023          xxxxx
1024         @xWxWxxxx
1025        @@......<xx
1026     xxxxxxxxxx..Zxx
1027    xxxxxcxxxx.x1.<x
1028   xxxWWW.WWW.xGx..x
1029  xxxW1..W...W.x.x.xx
1030 xxxW...twt...W.xx.Wx
1031 xxW1.t..t..t..Wxx.xx
1032 xxW...t.w.t...Wxx.Wx
1033 xxW.t..w|w..t.Wxx.xx
1034 xc.Wwtw|A|wtwW.cx@@
1035 xxW.t.%w|w..t.Wxx@
1036 xxW...t%w.t...Wxx
1037 xxW..t..t..t.1Wxx
1038 xxxB...twt...Wxxx
1039  xxxB...W..1Wxxx
1040   xxxWWW.WWWxxx
1041    xxxxxcxxxxx
1042     xxxxxxxxx
1043 ENDMAP
1044
1045 NAME:    st_shrine_of_shade
1046 DEPTH:   Swamp:1-4
1047 MONS:    bog body w:20 / necrophage w:5 / ghoul w:5 / nothing w:25, shadow
1048 KMONS:   P = w:2 col:darkgrey plant name:withered name_adjective             \
1049            tile:mons_withered_plant / w:1 col:lightgrey plant name:withered  \
1050            name_adjective tile:mons_withered_plant
1051 SUBST:   p = Pp, p = PP., o = P..
1052 MAP
1053    oo.oooo
1054   pppp.pppp
1055  ppccc.cccpp
1056 opccppo.occpo
1057 opcp2c1c2ocpo
1058  pc.c111cocp
1059 ...211c112..@
1060  pcoc111cocp
1061 opco2c1c2ocpo
1062 opccoo.ppccpo
1063  ppccc.cccpp
1064   ppppo.ppp
1065    ooo.ooo
1066 ENDMAP
1067
1068 NAME:    st_swamp_mini
1069 DEPTH:   Swamp:1-4
1070 KMONS:   1 = hydra
1071 KMONS:   2 = swamp dragon
1072 KFEAT:   12 = shallow_water
1073 SUBST:   . = wW., 0:34, 3=112..., 4=122...
1074 MAP
1075 .......
1076 .cc.cc.
1077 .c000c.
1078 ..000..
1079 .c000c.
1080 .cc.cc.
1081 .......
1082 ENDMAP
1083
1084 NAME:    st_swamp_ruins_1
1085 DEPTH:   Swamp:1-4
1086 KMONS:   1 = hydra
1087 KMONS:   2 = swamp dragon
1088 KMONS:   3 = swamp drake
1089 KFEAT:   123 = shallow_water
1090 SUBST:   . = wwwWWW...t, c = c:17 .:1 t:1 w:1 W:1, C:GC., G=GG., C=cc.
1091 SUBST:   0:45, 4=1112...., 5=1222...., 6=3.
1092 MAP
1093 ...C.C.C.C...
1094 .cc...6...cc.
1095 .ccccc.ccccc.
1096 C.cc.....cc.C
1097 ..c.0...0.c..
1098 C.c...0...c.C
1099 .6...000...6.
1100 C.c...0...c.C
1101 ..c.0...0.c..
1102 C.cc.....cc.C
1103 .ccccc.ccccc.
1104 .cc...6...cc.
1105 ...C.C.C.C...
1106 ENDMAP
1107
1108 NAME:    st_swamp_ruins_2
1109 DEPTH:   Swamp:1-4
1110 KMONS:   1 = hydra
1111 KMONS:   2 = swamp dragon
1112 KMONS:   3 = swamp drake
1113 KFEAT:   123 = shallow_water
1114 SUBST:   . = wwwWWW...t, c = c:15 .:1 t:1 w:1 W:1, C=c.
1115 SUBST:   0:45, 4=11123....., 5=12223.....
1116 MAP
1117     ......
1118   ..........
1119  ...ccCCcc...
1120  ..cc....cc..
1121 ..cc..00..cc..
1122 ..c..0cc0..c..
1123 0.C..cccc0.C.0
1124 ..C.0cccc..C..
1125 ..c..0cc0..c..
1126 ..cc..00..cc..
1127  ..cc....cc..
1128  ...ccCCcc...
1129   ..........
1130     ......
1131 ENDMAP
1132
1133 NAME:    st_swamp_ruins_3
1134 DEPTH:   Swamp:1-4
1135 KMONS:   1 = hydra
1136 KMONS:   2 = swamp dragon
1137 KMONS:   3 = swamp drake
1138 KFEAT:   123 = shallow_water
1139 SHUFFLE: cC
1140 SUBST:   . = wwwWWW...t, c = c:12 .:1 t:1 w:1 W:1, C:GC., G=GG., C=cc.
1141 SUBST:   0:45, 4=1112...., 5=1222...., 6=3., y = wW.tt
1142 MAP
1143     yyyyyyyyyyyyy
1144  ...................
1145 ..ccccccccccccccccc..
1146 ...C.C.C.C0C.C.C.C...
1147 .0..0.0.0...0.0.0..0.
1148 ...C.C.C.C0C.C.C.C...
1149 ..ccccccccccccccccc..
1150  ...................
1151     yyyyyyyyyyyyy
1152 ENDMAP
1153
1154 NAME:    st_swamp_ruins_4
1155 DEPTH:   Swamp:1-4
1156 KMONS:   1 = hydra
1157 KMONS:   2 = swamp dragon
1158 KMONS:   3 = swamp drake
1159 KFEAT:   123 = shallow_water
1160 SHUFFLE: cC
1161 SUBST:   . = wwwWWW...t, c = c:12 .:1 t:1 w:1 W:1, C=c., *=**%
1162 SUBST:   0:45, 4=112...., 5=122...., 6=3., y = wwWWW.tt
1163 MAP
1164          yyyyy
1165     yyyyy.....yyyyy
1166   ...................
1167   .ccCCcccccccccCCcc.
1168  y.c......000......c.y
1169  y.C.6....'''....6.C.y
1170  y.C...............C.y
1171  y.c...cccCCCccc...c.y
1172  y.c...c*.....*c...c.y
1173 y..c...c...0...c...c..y
1174 y..c0'.C..0.0..C.'0c..y
1175 y..c0'.C.0.3.0.C.'0c..y
1176 y..c0'.C..0.0..C.'0c..y
1177 y..c...c...0...c...c..y
1178  y.c...c*.....*c...c.y
1179  y.c...cccCCCccc...c.y
1180  y.C...............C.y
1181  y.C.6....'''....6.C.y
1182  y.c......000......c.y
1183   .ccCCcccccccccCCcc.
1184   ...................
1185     yyyyy.....yyyyy
1186          yyyyy
1187 ENDMAP
1188
1189 NAME: grunt_hermit_hut
1190 MONS: orc high priest / orc sorcerer / wizard / necromancer band
1191 SHUFFLE: +d / +d / d+
1192 SUBST: w = w t:10
1193 SUBST: d = c
1194 SUBST: c = ccx
1195 KPROP: w = no_rtele_into
1196 MAP
1197     wwww
1198   wwwwwwww
1199  wwwwwwwwww
1200  www....www
1201 www.cdcc.www
1202 www.c1%c.www
1203 www.c%.c.www
1204 www.cc+c.www
1205  www....www
1206  wwww.wwwww
1207   www.wwww
1208     w.@w
1209 ENDMAP
1210
1211 NAME: grunt_witch_cave
1212 MONS: wizard
1213 MONS: hydra
1214 {{
1215   dgn.delayed_decay(_G, 'd',
1216                     'human skeleton / elf skeleton / dwarf skeleton' ..
1217                     ' / orc skeleton')
1218 }}
1219 NSUBST: : = 5:W / *:.
1220 SUBST: w = w:10 t:10
1221 KFEAT: K = shallow_water
1222 KITEM: K = potion of confusion / potion of degeneration / \
1223            potion of decay / potion of mutation
1224 KPROP: w = no_rtele_into
1225 MARKER: K = lua:fog_machine { cloud_type="black smoke", \
1226                               pow_min = 10, pow_max = 30, delay = 50, \
1227                               size = 1, walk_dist = 2, spread_rate = 25 }
1228 MARKER: L = lua:fog_machine { cloud_type="flame", \
1229                               pow_min = 100, pow_max = 100, delay = 100, \
1230                               size = 1, excl_rad = 0, walk_dist = 0 }
1231 MAP
1232      wwwwww
1233     wwxxxxww
1234   wwxxx**xxxw
1235  wwxxd%%%%Wxww
1236 wwxx::::vvvxxw
1237 wwx:d::1:KvLxw
1238 wxx::2::vvvdxw
1239 wxW:::::::2:xww
1240 wxx::::2::::dxw
1241 wxW::::::::xxxw
1242 wxxd:::::xxxww
1243 wwxxx:.:xxww
1244  wwwxx.xxw
1245    wwx.xww
1246     wd.dww
1247    ww.@.www
1248 ENDMAP
1249
1250 NAME: grunt_lady_of_the_lake
1251 SUBST: w = w:50 t:10
1252 SUBST: W = w
1253 KITEM: O = great sword good_item w:20 / \
1254            bastard sword good_item w:2 / \
1255            claymore good_item w:1
1256 KFEAT: K = deep_water
1257 KPROP: wK = no_rtele_into
1258 {{
1259   local cf = TriggerableFunction:new{
1260       func="callback.grunt_lady_of_the_lake_trigger",
1261       repeated=true,
1262       data={triggered = false} }
1263   cf:add_triggerer(DgnTriggerer:new{type="player_move"})
1264   lua_marker("O", cf)
1265   lua_marker(":", cf)
1266   lua_marker("K", props_marker { siren_spawn = 1 })
1267 }}
1268 MAP
1269     wwwww
1270   wwwwwwwww
1271  wwwwwKwwwww
1272  wwwwwWwwwww
1273 wwwwwwWwwwwww
1274 wwwwWW:WWwwww
1275 wwwwW:O:Wwwww
1276 wwwwwW:Wwwwww
1277 wwwww.wwwwwww
1278  wwwww.wwwww
1279  wwwww.wwwww
1280   wwwww.www
1281     ww@ww
1282 ENDMAP
1283
1284 NAME: grunt_ruined_hall
1285 MONS: swamp dragon, hydra, patrolling bog body
1286 NSUBST: : = 1:1 / 2:2 / 3:3 / 6:0 / *:-
1287 SUBST: - = .W
1288 SUBST: C = c:20 . W
1289 SUBST: + = +.
1290 SUBST: G = Gg
1291 KITEM: g = stone w:40 / large rock q:1
1292 KFEAT: g = floor
1293 KFEAT: _ = altar_yredelemnul / altar_kikubaaqudgha
1294 MAP
1295   --------------------
1296  -CCCCCCCCCCcccCCCcCCc-
1297  -C%%C::::::::::::C%%c-
1298  -C%:C::::::::::::C:%c-
1299  -CC+C::G:::G:::G:C+cc-
1300 -.+::::::::::::::::::c-
1301 @.+:::::::::_::::::1:c-
1302 -.+::::::::::::::::::c-
1303  -cC+c::G:::G:::G:c+cc-
1304  -c%:c::::::::::::c:*c-
1305  -c%%c::::::::::::c**c-
1306  -cccccccccccccccccccc-
1307   --------------------
1308 ENDMAP
1309
1310 NAME: nicolae_swamp_necromancer_hut
1311 SUBST: q = tW., r = W., W = zWW
1312 # Necromancer gets the spell set without bolt of fire so he doesn't torch the place.
1313 MONS: necromancer actual_spells spells:bolt_of_cold;agony;.;animate_dead;simulacrum;.
1314 KMONS: z = crocodile zombie / swamp drake zombie / swamp worm zombie / \
1315         water moccasin zombie / swamp dragon zombie / \
1316         komodo dragon zombie / red wasp zombie / alligator zombie / \
1317         hydra zombie / giant leech zombie / hydra zombie / \
1318         alligator simulacrum w:1 / swamp drake simulacrum w:1 / \
1319         swamp dragon simulacrum w:1 / hydra simulacrum w:1
1320 KFEAT: z = shallow_water
1321 MAP
1322   ttttttt
1323  ttxxxxxtt
1324 tqqx...xqqt
1325 tqrm.1.mrqt
1326 qqrx...xrqq
1327  rrxx+xxrr
1328   r.z.z.r
1329    .....
1330     @@@
1331 ENDMAP
1332
1333 NAME: nicolae_swamp_alligator_family
1334 TAGS: layout_swamp
1335 NSUBST: T = 2:W / *:t
1336 KMONS: 1 = alligator
1337 KMONS: 2 = baby alligator
1338 KFEAT: 12@ = W
1339 MAP
1340    tttt
1341   tt11tt
1342  tt2222tt
1343 tTWWWWWWTt
1344 tWTTWWTTWt
1345  WWWTTWWW
1346    @@@@
1347 ENDMAP
1348
1349 NAME: nicolae_swamp_snake_nest
1350 TAGS: transparent no_monster_gen
1351 KMONS: 1 = anaconda
1352 KMONS: 2 = adder / ball python / water moccasin / black mamba
1353 SUBST: T = ..ttw
1354 SUBST: . = .:20 2:3
1355 KFEAT: .12 = . / W w:2
1356 MAP
1357        t.@.tttt
1358 tttt   tt....Tt
1359 tTTt    tTT...Tt
1360 @.TttttttT....Tt
1361 .....TTT.....Ttt
1362 tt........TTTtt
1363 tttt.TwT..Ttt
1364 ttT...wwT..Tt
1365 tT.........Ttt
1366 tT.1...tT...Ttt
1367 tTT...ttTT...Tt
1368 ttTTTTtttTT...t
1369  tttttt tttT...
1370           ttt.@
1371 ENDMAP
1372
1373 NAME: nicolae_swamp_baby_hydras
1374 SHUFFLE: abcd
1375 SUBST: a:@, bcd:t, T = .Wt, . = ...W
1376 KMONS: 1 = 1-headed hydra
1377 KMONS: 2 = 2-headed hydra / 3-headed hydra / 4-headed hydra
1378 KFEAT: 12 = . / W
1379 MAP
1380              taat
1381             tt..b
1382   tttt     ttT..b
1383  ttTTtttttttT.1.t
1384 ttT..TtTTttT...Tt
1385 tT....1..TTT..TTt
1386 tT2...TT...1..TTt
1387 ttT..TttTTTTT..Tt
1388  ttTTtttttttT...t
1389   tttt    ttT1.tt
1390          tt....d
1391          t...t.d
1392          tccttt
1393 ENDMAP
1394
1395 NAME: lightli_tree_ring
1396 KPROP: *w = no_rtele_into
1397 MAP
1398 tttttttttt
1399 tttttttttt
1400 ttwwwwwwtt
1401 ttwwwwwwtt
1402 ttww**wwtt
1403 ttwwwwwwtt
1404 ttwwwwwwtt
1405 ttt.tt.ttt
1406 tttt..tttt
1407 tttt@@tttt
1408 ENDMAP
1409
1410 NAME: nicolae_swamp_dragon_and_kin
1411 TAGS: patrolling transparent
1412 SUBST: T = t., B = tt_
1413 NSUBST: d = D / d
1414 KMONS: D = swamp dragon
1415 KMONS: d = swamp drake w:12 / nothing w:3
1416 MAP
1417         BBBBBB
1418       .TtttttBB
1419    ....T..T.tttt
1420   BTT....T.T.TTt
1421  BBtttttT.TT....
1422 BBtttTTTT.TttT..
1423 BttTTT.T.TTTttT.
1424 BtTT.T..TT.TTtTT
1425 BtT.TdT..T..TttB
1426 BtTd.T..T.TTTTtB
1427 BtTT.T.T.Td.dTtB
1428 BttT..T.T.T.TTtB
1429 BttTTdT..dTTTttB
1430 BBttTTTTTTTtttBB
1431  BBtttttttttBBB
1432   BBBBBBBBBBB
1433 ENDMAP
1434
1435 NAME: nicolae_swamp_hydra_murder_den
1436 TAGS: no_monster_gen
1437 : local heads = crawl.roll_dice(2, 3) + 7
1438 KPROP: ' = no_rtele_into
1439 SUBST: Z = T_
1440 NSUBST: ' = 1:h / 1:g / 2:c / 1:c' / 2:% / 2:%' / 5:p / 4:p' / *:'
1441 SUBST: ' = ....b
1442 KPROP: bc = bloody
1443 SUBST: b = ., . = ..W
1444 KFEAT: T = tree
1445 KMONS: p = plant
1446 : kmons( "h = " .. heads .. "-headed hydra patrolling" )
1447 KITEM: g = any weapon good_item / any armour good_item / any jewellery good_item
1448 : dgn.delayed_decay(_G, 'c', 'human corpse')
1449 CLEAR: _
1450 MAP
1451    ZZZZZZ
1452   ZZttttZZ
1453  ZZtt''tt.Z
1454 ZZtt''''tt.
1455 Ztt''''''t.
1456 Zt'''''''p..
1457 Zt'''''''t.@
1458 Zt'''''''t..
1459 Zt''''''tt.
1460 Ztt'''''t..
1461 ZZttt''ttZ
1462  ZZZttttZZ
1463    ZZZZZZ
1464 ENDMAP
1465
1466 NAME:    hangedman_swamp_double_dragon
1467 TAGS:    no_monster_gen patrolling
1468 DEPTH:   Swamp:2-, !Swamp:$
1469 MONS:    fire dragon, lindwurm / mottled dragon w:8
1470 MONS:    ice dragon, bog body / hydra simulacrum w:8
1471 MONS:    swamp dragon, alligator / hydra w:8
1472 ITEM:    any good_item
1473 SUBST:   $ = $%%*, * = **d, T = tww
1474 SHUFFLE: 12 / 12 / 34 / 34 / 56 / 56 / 56
1475 NSUBST:  2 = 1 : 2:9 .:1 / *:2, 4 = 1 : 4:9 .:1 / *:4, 6 = 1 : 6:9 .:1 / *:6
1476 NSUBST:  1 = 1 : 1:9 2:1 / *:1, 3 = 1 : 3:9 4:1 / *:3, 5 = 1 : 5:9 6:1 / *:5
1477 MAP
1478    ttttt             ttttt
1479   tttt.tt           tt.tttt
1480  ttt$t..tt         tt.*t3ttt
1481 ttt1*%..ttt       ttt..%.tttt
1482 tt$*1.w..tt       tt.W..$.3tt
1483 ttt%..w..tt       tt..T..%ttt
1484 t...wwT..2t       t4...T..*.t
1485 tt.......tt       ttW...W..tt
1486 tttt....t.Wt     t.WtW...tttt
1487  ttttt2t.t.W     ..tWt4ttttt
1488     ttttW2@       @.4tttt
1489         tW         .t
1490 ENDMAP
1491
1492 NAME:    cheibrodos_swamp_mausoleum
1493 TAGS:    no_item_gen no_monster_gen no_pool_fixup
1494 DEPTH:   Swamp, !Swamp:$
1495 ORIENT:  south
1496 WEIGHT:  5
1497 MONS:    spectral hydra, spectral swamp dragon, death drake, necromancer
1498 MONS:    bog body w:8 / w:5 shadow / w:5 wraith / w:3 phantasmal warrior / \
1499          w:1 freezing wraith
1500 KMONS:   6 = bog body / spriggan zombie w:4 / troll zombie w:4
1501 KMONS:   7 = large abomination w:2 / swamp worm zombie / giant leech zombie / \
1502              alligator zombie w:6 / spiny frog zombie w:6
1503 KMONS:   q = w:2 col:darkgrey plant name:withered name_adjective              \
1504               tile:mons_withered_plant / w:1 col:lightgrey plant name:withered \
1505               name_adjective tile:mons_withered_plant
1506 KFEAT:   67 = W
1507 KPROP:   ~ = no_rtele_into
1508 SUBST:   1 = 12, " = 6:15 W
1509 SHUFFLE: DE
1510 SUBST:   D = W, E = t, W = W:299 .:1, + = ++W, - = +, ~ = W
1511 MARKER:  V = lua:fog_machine { cloud_type = "thin mist", pow_min = 1, \
1512              pow_max = 3, delay = 20, start_clouds = 1, size_min = 2, \
1513              size_max = 4, spread_rate = -1 }
1514 SUBST:   u = V
1515 MAP
1516  tttttt   tttttttttt
1517  ttt..tt t~tt.tt.t.tttt
1518 txxx.Wtttttt.5..u.WWWttt  xxxxxx
1519 xxx.WWW..t..5.W..WW7tttttxxx%%xxx
1520 x"+.W-W...u..W7WW7WWWWuttx6+..+6x
1521 xxxWWxW7W...tttWWW7WWWWWDDxx..xxx
1522 x"+WWW7WtWttWxxxxEEEWWW7WDW+..+6x
1523 xxxWWxWxtWWtxxtWtWWEEW..Wxxx..xxx
1524 x"WWW+WxWWWxxDWWWWtWEx..Wx"+.W+"x
1525 xxxWWxxxWttx.DDDWWW7tx.WWxxxWWxxxtt
1526 xxx.WWxxxxxx..WDDW7WtxWWWxxxWWxxxWtW
1527 x....WWWW..+...WDDWWxxtWtt7WWWWWtWW@
1528 x......W...+...WuDWWxxxttWW7WWWWWW..
1529 xxx..xxxxxxx..WW.tDWWxxxxxxxWWxxWtW@
1530 xxx..xxxWWxxWWWt..DDEEtttxxxWWxxxtt
1531 x6+..+6xWWWxxxW....xxEEWWW5-WW-"xt~
1532 xxx..xxxq..qxx.....xxtW5WWxxWWxxxt
1533 x6+..-.q..|..xx...xxttWW5WWWWWW"x
1534 xxx..xxx...qq3x+++xttttWWWWWWWxxx
1535 x6+..+6xq..xxxx...xxxxttWxW..W+"x
1536 xxx%%xxxxxxxx.......xxxxxxxx..xxx
1537  xxxxxxt~xx...1.1.1...xxt~xxxxxx
1538    ttttt~xV....141....Vx~tt~ttt
1539       tttxx%....1....%xx~ttt
1540        tttxxx*.....*xxx~~tt
1541         tttxxxx|W|xxxx~ttt
1542          ttt~xxxxxxx~~tt
1543           tttt~~t~~tttt
1544             ttttttttt
1545 ENDMAP
1546
1547 NAME:  cheibrodos_swamp_kobolds
1548 TAGS:  no_item_gen no_monster_gen
1549 DEPTH: Swamp, !Swamp:$
1550 MONS:  kobold demonologist
1551 ITEM:  book of callings, book of summonings
1552 SUBST: ' = %:20 d:1 e:1
1553 MAP
1554         WWW
1555        WxxxW
1556       Wxx'xxW
1557       Wx.1'xW
1558     WWWx+.xxW
1559   WWWW..xxxW
1560  Wxxx..WWWWW
1561 Wxx.+xW..WW
1562 Wx'1.xWWW@
1563 Wxx'xxWWW
1564  WxxxWW
1565   WWW
1566 ENDMAP
1567
1568 NAME:  cheibrodos_swamp_pet_leeches
1569 TAGS:  no_item_gen no_monster_gen
1570 DEPTH: Swamp, !Swamp:$
1571 MONS:  vampire ; potion of blood . long sword . robe, giant leech
1572 KPROP: e' = no_rtele_into
1573 KPROP: .21 = bloody / w:30 nothing
1574 KPROP: e = bloody
1575 : dgn.delayed_decay(_G, 'e', 'human corpse')
1576 MAP
1577  ttttt
1578 tt''ett
1579 txxmxxt
1580 tx.1.xt
1581 tx2.2xt
1582 tx...xt
1583 txx+xxt
1584  tt@tt
1585 ENDMAP
1586
1587 NAME:  cheibrodos_swamp_minitomb
1588 TAGS:  no_item_gen no_monster_gen
1589 DEPTH: Swamp, !Swamp:$
1590 KMONS: - = bog body w:20 / troll zombie / troll skeleton / shadow w:5
1591 KITEM: - = w:5 gold / w:2 any jewellery / w:20 nothing
1592 SUBST: ' = .W
1593 MAP
1594   W@WWtW
1595 tWWWWtxW
1596 xtWWWtxx
1597 xtWWW+-x
1598 xxxWWxxx
1599 x-+WW+-x
1600 xxxW'xxx
1601 x-+'.+-x
1602 xxx..xxx
1603 x-+..+-x
1604 xxxxxxxx
1605  xxxxxx
1606 ENDMAP
1607
1608 NAME:  cheibrodos_swamp_slimy
1609 TAGS:  no_item_gen no_monster_gen
1610 DEPTH: Swamp, !Swamp:$
1611 MONS:  slime creature
1612 MAP
1613    tcGct
1614 tttc111cttt
1615 @...1U1...@
1616 tttc111cttt
1617    tcGct
1618 ENDMAP
1619
1620 ####
1621 NAME: nicolae_swamp_spriggan_camp
1622 SHUFFLE: Ff/Gg/Hh/Ii
1623 SUBST: ghi = .
1624 KMONS: D = patrolling spriggan rider
1625 KMONS: SGHI = spriggan / nothing
1626 KMONS: F = spriggan druid
1627 KITEM: f = potion of porridge / bread ration / fruit
1628 MAP
1629        ttttt
1630   ttttttgggt
1631  @.ttt.t.G.t
1632 @......tt.tt
1633 t...D..S...t
1634 tttt.......tt
1635  ttt.S..S...t
1636  tt......tt.t
1637 tttt.tt.tt..t
1638 ti...t...tH.t
1639 tiI..t.F.thht
1640 ti...tffftttt
1641 tttttttttt
1642 ENDMAP
1643
1644 NAME: nicolae_swamp_oklob_treasure_island
1645 TAGS: no_pool_fixup
1646 DEPTH: Swamp, !Swamp:$
1647 SHUFFLE: Aa/Bb/Cc/Dd/Ee/Ff/Gg/Hh/Ii, %*$
1648 NSUBST: ' = 1:^ / 1:o / *:'
1649 SUBST: abcde = w, fghi = t, ABCDE = .wW, FGHI = .t, ' = ':100 $$$%%, \
1650        _ = .._, . = ......W
1651 KFEAT: ^ = permanent teleport trap
1652 KMONS: o = oklob plant
1653 CLEAR: _
1654 MAP
1655        _____
1656      __.....__
1657     _........._
1658    _...GGFFF..._
1659   _...GggfffF..._
1660  _...GggGFFffF..._
1661  _..GggG'''FeeE.._
1662 _..AaaA'''''EeeE.._
1663 _..AaA'''''''EeE.._
1664 _..AaA'''''''EeE.._
1665 _..AaA'''''''DdD.._
1666 _..BbbB'''''DddD.._
1667  _..BbbB'''DddD.._
1668  _...BbbCCCcdD..._
1669   _...BbccccC..._
1670    _...BCCCC..._
1671     _........._
1672      __.....__
1673        _____
1674 ENDMAP
1675
1676 NAME: cheibrodos_swamp_heart_of_darkness
1677 DEPTH: Swamp, !Swamp:$
1678 TAGS: no_item_gen no_monster_gen
1679 ORIENT: northeast
1680 MONS: spriggan rider, spriggan berserker, spriggan druid
1681 MAP
1682                               ttt
1683                           ttttttttt
1684                         ttttttwwttttt
1685                       tttttwwWWWWwtttt
1686           ttt     tttttttwwWWW...WWWttt
1687    ttttttttttt  tttttttwWWW.........3tt
1688   ttttttttWWWttttttttwwWW0tt......c+ctt
1689  ttt.wwWWWwwWWttWwwwwWWWttttt111..c*ctt
1690 ttt.wWWttt.0wWWWwWWWWWttttttcccc..ccctt
1691 tttwWttttttt.www.tttttttt  tc2.+.cccttt
1692  ttwWttt  tttttttttttt     tc|.c.c%cttt
1693   .Wtt       tttt          tcccc3+%ctt
1694   @.                         ttttccct
1695                                  ttt
1696 ENDMAP
1697
1698 NAME: cheibrodos_swamp_tower_of_moss
1699 DEPTH: Swamp, !Swamp:$
1700 TAGS: ruin
1701 ORIENT: float
1702 MONS: toadstool
1703 KMONS: 2 = thorn hunter
1704 KFEAT: 2 = W
1705 KFEAT: - = .
1706 SUBST: " = ---Wtt1, t = ttt-, - = -:50 .
1707 TILE: x = wall_brick_vines
1708 FTILE: -Wt1 = floor_sandstone
1709 MAP
1710    .........
1711   ..xxxxxxx..
1712  ..xx"-"--xx..
1713 ..xx"-"""-"xx..
1714 .xx""-t"t-""xx.
1715 .x"--W"W"W--"x.
1716 .x-"t"WWW"t"--@
1717 .x"""WW2WW"""x.
1718 .x-"t"WWW"t"-x.
1719 .x"--W"W"W--"x.
1720 .xx""-t"t-""xx.
1721 ..xx"-"""-"xx..
1722  ..xx"-"-"xx..
1723   ..xxxxxxx..
1724    .........
1725 ENDMAP
1726
1727 ###############################################################################
1728 # Swamp ending vaults
1729 #
1730 # They come in two flavours: normal and themed. The first three are normal and
1731 # use regular swamp monsters. The other five have special themes, and are less
1732 # common.
1733 ###############################################################################
1734
1735 default-depth:
1736
1737 ###############################################################################
1738 # Swamp:5 standard
1739 #
1740 NAME:    swamp
1741 TAGS:    transparent no_monster_gen
1742 PLACE:   Swamp:$
1743 WEIGHT:  20
1744 ORIENT:  float
1745 TAGS:    no_rotate
1746 MONS:    swamp dragon, swamp drake, hydra
1747 MONS:    thorn hunter / shambling mangrove / spriggan druid
1748 KMONS:   O = fire dragon w:1 / ice dragon w:1 / hydra w:18
1749 KMONS:   & = the lernaean hydra
1750 KITEM:   O& = decaying rune of Zot
1751 SHUFFLE: 12
1752 SUBST:   - = WW.
1753 NSUBST:  13 = 5:., 1 = 5:1 / 2:. / * = 1..
1754 NSUBST:  2 = 5:2 / 2:. / * = 2.., 3 = 7:3 / 3:. / * = 3..
1755 : if crawl.one_chance_in(11) then
1756 SUBST:   4 = .:999 4:1, O = &
1757 : end
1758 MAP
1759       -t-t-
1760      2-2-2-2
1761    ---cc.cc---
1762    -tcc3.2cct-
1763   --cc3.2.3cc---
1764  --tc11.3322ctt-
1765  -tcc...21.1ccc--
1766 --tc413321.14cct-
1767 -tcc31333.113cct-
1768 -tcc22113.223cc--
1769 --tcc3333113cct-
1770  -tcccc3O3ccct--
1771  --tcccccccct--
1772   --ttccccct--
1773    ---ttcct--
1774      ---t---
1775        ---
1776 ENDMAP
1777
1778 ###############################################################################
1779 # Swamp:5 alternative (dp)
1780 #
1781 NAME:    swamp_alternative
1782 TAGS:    transparent no_monster_gen no_pool_fixup no_rotate
1783 PLACE:   Swamp:$
1784 WEIGHT:  20
1785 ORIENT:  float
1786 MONS:    swamp dragon, swamp drake, hydra, fire drake, bog body
1787 MONS:    thorn hunter / shambling mangrove / spriggan druid
1788 KMONS:   O = fire dragon w:2 / hydra w:18
1789 KMONS:   P = ice dragon w:2 / hydra w:18
1790 KMONS:   & = the lernaean hydra
1791 KITEM:   OP& = decaying rune of Zot
1792 SHUFFLE: Od, 123,  lLO4 / wWP5
1793 SUBST:   1 = 111., 2 = 2., 3 = 333.
1794 SUBST:   l = l `:2, L~ = ., ' = .t, " = tc
1795 SUBST:   - = WW.
1796 KPROP:   ` = no_rtele_into
1797 : if crawl.one_chance_in(11) then
1798 SUBST:   6 = .:999 6:1, OP = &
1799 : end
1800 MAP
1801     1- -1---
1802    2.3.2''3-2--
1803    -."c..1-"""---
1804   --""c".ccccc""-..'
1805  --"cc_.2ll.ccc""2-
1806 --"cc..33lL..26"cc'.-
1807 -"cc1122lLl...1.2""---
1808 -"c6...llllll21..1.-3-
1809 -"cc33l4llllll2.cc1-'3
1810 --"ccll.llll34lcc"----
1811  --"cccO.lld3ccc"--
1812   --""cccccccc""--
1813    --""""""""""--
1814     ---""-"""---
1815       -----"--
1816           ---
1817 ENDMAP
1818
1819 ###############################################################################
1820 # "Old school" swamp end, by Jude
1821 #
1822 NAME:    swamp_old_school
1823 TAGS:    no_pool_fixup
1824 PLACE:   Swamp:$
1825 WEIGHT:  20
1826 ORIENT:  southeast
1827 MONS:    swamp dragon, hydra, swamp drake
1828 MONS:    the lernaean hydra
1829 SHUFFLE: ab, 12
1830 SUBST:   a = c, b = ', " = ttw, ` = tt`
1831 SUBST:   u = wwwwwWWWWxxx., ' = W....
1832 NSUBST:  1 = 2:. / 2:1 / * = 1111.
1833 NSUBST:  2 = 2:. / 2:2 / * = 2222.
1834 SUBST:   3 = 3333.
1835 KITEM:   O = decaying rune of Zot
1836 CLEAR:   `
1837 MAP
1838                t
1839 @@''x   "t     t`   x        t
1840 @'''   "ttt`  tt`    `t`    tt   ttt
1841 'x'"  "ttttt`tttt`  tttt`  tttt ttttt
1842 ''''""tttttttttttttttttttttttttttttttt
1843 '''""ttt3wtcccccttcccttccttttttccctttt
1844 '''"tt.wcccccwwccccwcccccccttcccOccctt
1845 '''""'ccccuuwuuwuuwuwuuwccccccwu1ucctt
1846 '3'''1''cuu3uuuuuu2uuu3uuwcccwu2uwcctt
1847 ''''''''''''''''''''''''uuwwccw3cccctt
1848 ''""'2'cc'uuuuu'uu'uuuu'u1uuwccabccttt
1849 '"tt.ccccccuuuu'uuuuuuu'uuuwwccabctttt
1850  W"tt.wcccccuuu'uuuuuuu'uuu2ccabcctttt
1851   W"tt.wccccwuu'u1uuuuu'uuwccccabccttt
1852   W.""ttccwwuuu'uuuuu1u'u2uccccc'ccctt
1853    .xw"tccwuuuu'uuuuuuu'uucccc2u'ccctt
1854 x  .ww"ttccwu2u'u1uuu2u'u2uccuu'uucctt
1855   WxW"ttccwuuuu'uuuuuuu'uuuuuu'u1ccttt
1856   ww"tttcwuu''''''''''''''''''uucctttt
1857    ww""tccwuuuu2uuuuuuu'uuuuu2uuuccttt
1858  3wWwwW"tccccuuuuu''''''uuuuuuuucctttt
1859    xwwWxttcccuuuuuuuuuu''''''u2ucctttt
1860    Wwww"ttccwuuu3uuuu3u''uuuu21ucctttt
1861   @wWW"ttccwu1wuuccuuu2'''ccuccucctttt
1862    ""tttccwuuwccccccc1cccw4ccccccttttt
1863   `ttttttccwwcccttttcccccccctttttttttt
1864  ``tttttttcccctttttttttttttttttttttttt
1865 tttttttttttttttttttttttttttttttttttttt
1866 ENDMAP
1867
1868 ###############################################################################
1869 # Swamp:5 alternative (due)
1870 NAME:    swamp_fiery
1871 TAGS:    transparent no_pool_fixup no_rotate
1872 PLACE:   Swamp:$
1873 ORIENT:  float
1874 MONS:    fire dragon, lindwurm / fire crab w:8, swamp dragon / hydra w:12
1875 MONS:    fire drake / mottled dragon w:6 / swamp drake / steam dragon w:4
1876 SUBST:   L = ll., ' = t., " = t
1877 MARKER:  R = lua:fog_machine { cloud_type = "flame", pow_min = 8, \
1878              pow_max = 12, delay_min = 40, delay_max = 70, \
1879              size = 2, walk_dist = 1, spread_rate= 3, excl_rad = 0 }
1880 KPROP:   lR = no_cloud_gen
1881 KFEAT:   XR = lava
1882 KITEM:   O = decaying rune of Zot
1883 NSUBST:  O = 1:O / *:l
1884 SUBST:   - = WW.
1885 MAP
1886      --'--
1887    ------4-     ...3
1888   --tcct-'- - -..ll.    4' -
1889  --tccc4c.---4-.lRl.-4-------
1890  -tccc3c.t-ttt-.ll..-tcc--t--
1891 --tc.L.3cctcccc3...ttccL.ct-
1892 -tccL4ll.ccc12cccccccc3Lc.t--
1893 --tcc.LLl.43Ll344cc.c.L4.cct-
1894 -tcccc4llLLlllLLl..L3Lll.Lct-
1895 --tcc.LllllclllllLlllllL.cct-
1896  --tcc3LllRcclLllRll.443cct--
1897   -tccL.Lllllccclll3lcccct--
1898   --tccc3L2lcctccO12ccttt--
1899    --ttcc1Occt-tccccct----
1900     ---tcccct---tttt---
1901       --tttt-- -------
1902        ------
1903 ENDMAP
1904
1905 ###############################################################################
1906 # The way to icy death! (due)
1907 #
1908 NAME:    swamp_icy
1909 TAGS:    no_pool_fixup no_rotate transparent
1910 PLACE:   Swamp:$
1911 ORIENT:  southeast
1912 MONS:    ice dragon, hydra simulacrum, freezing wraith, azure jelly
1913 KMONS:   ? = swamp worm simulacrum / swamp drake simulacrum
1914 KFEAT:   Q? = deep_water
1915 NSUBST:  O = 1:O / *:Y
1916 SUBST:   X = tt., Y = Wwwww., 4 = 1:15 4
1917 KITEM:   O = decaying rune of Zot
1918 NSUBST:  2 = 4 = 2. / * = 2, 0 = 1:412 / 3:2 / 2:. / * = 2., 3 = 1:. / *:3
1919 MARKER:  Q = lua:fog_machine { cloud_type = "freezing vapour", \
1920              pow_min = 8, pow_max = 12, delay_min = 30, delay_max = 40, \
1921              size = 2, walk_dist = 1, spread_rate= 30, excl_rad = 0 }
1922 MAP
1923 @@             wwttttttttt
1924 @.  ..        wwttcccccctt
1925 @ ..  ..  .....wwccQc3cctt
1926     ..  .....w?.wcXc3.Xctt
1927       ..    ?ww......cXctt
1928            www.wwXc3c3Xctt
1929             w?.wXcXc.3cctt
1930              ww.wccc..cctt
1931               ..ttcc..cctt
1932              ..wwtcc2.cctt
1933             ..wwttc..ccctt
1934            .twwwttcc0Xcctt
1935           .tttwwwtcc.0.ctt
1936          .tttttwwtc..ccctt
1937          .ttttttttcc0.cctt
1938           .wwtttttccX0.ctt
1939           ..?wttttccc0.cct
1940      @@  2.wwwwttttcc.0cct
1941     ?@. ..ww?wttttccc.0cct
1942    ttww.wwwwwtttttcc..cctt
1943    ttw?ww?wwtttcccc.0ccttt
1944   ttttwwwwtttcccccc0Xctttt
1945   tttttttttcccwwwY0.Yccttt
1946   tttttttcccwwQww.YY.wcctt
1947    tttttccwwwww22Yww2wwctt
1948      ttccwwww22YwwwwY2wctt
1949     ttccwww.2YwwQwwwY2wctt
1950    ttccww1.YwwwwwwwY2wwctt
1951   ttcccwOYwwWcccWY1.wwcctt
1952  ttcccccwwwwcW4WwOYYcccttt
1953 tttccccccccccccccccccttttt
1954 tttttttttttttttttttttttttt
1955 ENDMAP
1956
1957 ###############################################################################
1958 # Alternative swamp end, by Lemuel
1959 #
1960 NAME:    swamp_pestilence
1961 TAGS:    no_pool_fixup
1962 PLACE:   Swamp:$
1963 ORIENT:  southeast
1964 MONS:    spectral swamp dragon / spectral hydra
1965 MONS:    hydra zombie / swamp dragon zombie
1966 MONS:    spectral swamp drake / swamp drake zombie
1967 MONS:    death drake / vampire mosquito band / w:5 oklob plant
1968 MONS:    insubstantial wisp, phantom, bog body
1969 KMONS:   8 = phantasmal warrior
1970 KMONS:   9 = ghost crab
1971 KMONS:   ? = swamp worm zombie / alligator zombie
1972 KMONS:   O = bone dragon
1973 KITEM:   O = decaying rune of Zot
1974 KITEM:   * = *
1975 KFEAT:   ?Y = deep_water
1976 KFEAT:   O* = shallow_water
1977 SHUFFLE: O*
1978 SUBST:   1 = 113, ? = ??w, " = tc, ' = .w
1979 NSUBST:  6 = 5:5 / 3 = 89 / 10 = 5666. / *:., y = 1:Y / *:W
1980 MARKER:  Y = lua:fog_machine { cloud_type = "foul pestilence", \
1981              pow_min = 3, pow_max = 4, delay_min = 35, delay_max = 45, \
1982              size = 3, walk_dist = 1, excl_rad = 0}
1983 MARKER:  O = lua:fog_machine { cloud_type = "foul pestilence", \
1984              pow_min = 3, pow_max = 4, delay_min = 35, delay_max = 45, \
1985              size = 3, walk_dist = 1, excl_rad = 0}
1986 COLOUR:  YO = green
1987 MAP
1988 @@
1989 @....
1990    .....
1991     ?w7.....w?w"tt     tt
1992     w?ww.7ww?wwc"tt   ttt
1993     "wWWwww?w?cc"ttt tttt
1994    '""cWw?w?ccc"ttttttttt
1995    't"c7.wwcccc"""ttttttt
1996    tttc...ccccccccccc"ttt
1997   ttt"cc...Ycccc6666c"ttt
1998   ttt"cc....cccO6666cc"tt
1999  ttttcccc...cc6666666c"tt
2000   t""ccccY..ccc666666cctt
2001    "cc1*cc...cc6666666ctt
2002    tc211ccc..cccc6.666c"t
2003    ccc2.1cc...cccc..6cc"t
2004    ""c.1.ccc..ycccWW.cc"t
2005    "tcc.1.cccy..ccWW..ctt
2006    "t"c2.21ccc..ccc6wcctt
2007    tttcc..2ccc..c..wwc"tt
2008    ttt"cc.1WWc...6wcccttt
2009    tttt"c2.WW...?wcc""ttt
2010   ttttttccc2.wwwwcc""tttt
2011   ttttttt"cc?w?wcc""ttttt
2012   tttttttt"cc4wcc"ttttttt
2013  tttttttttt"cccc"tttttttt
2014 ttttttttttttt""tttttttttt
2015 ttttttttttttttttttttttttt
2016 ENDMAP
2017
2018 ###############################################################################
2019 # HangedMan's hellswamp: an abandoned, overgrown, flooded temple,
2020 # occupied by demons, beasts, messes of flesh, and other vile tricks.
2021 NAME:    swamp_vile
2022 TAGS:    no_pool_fixup no_monster_gen
2023 PLACE:   Swamp:$
2024 ORIENT:  southeast
2025 MONS:    bog body / ugly thing, shadow / orange demon / small abomination w:2
2026 MONS:    large abomination / very ugly thing / thrashing horror w:6
2027 MONS:    green death, hell beast, death ooze, titanic slime creature
2028 KMONS:   8 = hydra / swamp dragon
2029 KMONS:   9 = tentacled monstrosity
2030 KMONS:   & = the Lernaean hydra
2031 KITEM:   O = decaying rune of zot
2032 KFEAT:   8 = shallow_water
2033 SHUFFLE: yz, '", ~`
2034 SUBST:   yX = x:20 t:4 W:1, z = ..wwwWWW, ' = ....W, " = wWWW, 5 : 59
2035 NSUBST:  7 = 1:4 / 1:8 / *:7, 0 = 6:1 / 3:. / *:2
2036 NSUBST:  5 = 1:5 / 1:6 / * = 56 &:2, 9 = 1 = 9 &:1 / *:.
2037 MAP
2038 @@ "' Xxccxcxcct
2039 @'"'XWXW""'..Wcct
2040   'XWXWx''"zyW.xct
2041    WXWx"wwwyzwxWcct
2042   XXWx.x1wwzyw.x.xct
2043  txWx"x2wwwyzwx0..cctt
2044  xt"'w1w28wzywx30xWcctt
2045  ct"'www88wyxwcxx.xWxttt
2046   x'"wwwww.cXWwwwwWwWcttt
2047   c.yzyzyzcX..zyzyzWx7xct
2048  ct.zyzyzxX.W.yzyzy.WxWcct
2049  xt"'wWWWwW..wWW.WWw.WwWcct
2050   x"'WxxxWwzyWwcwc.WyzWwWxct
2051   c'"wx0x.wyzWc...cWzywWx.cct
2052  xt"'wx3.xwzy.w.7.w.yzwx0..xct
2053  ct'"wx0x.wyzWc...cWzywc30xWcct
2054   x"'WxxWwWzyW.cwcWWyzwxcxWwWcct
2055   c"'wWWwWW..wWW.WW..wWwWWwWwWcct
2056  ctWzyzyzWW.w.yzyzy.W.WWzyzyzWttt
2057  xt.yzyzyzxw..zyzyzw..xzyzyzy.tct
2058   c"'wWWw.WXWWwwwwwwWXc.WW.w'"ctt
2059   c"'WxxWW.yWwW.x.wWWy.WWxx."'xtt
2060  ct'"xx.xWwzyWxx.xWwyzWWc0cx'"cxt
2061  xt'"x04.xWyzWx030xWzyWx055t"'tct
2062  ctt8xx0xxWyzWxxxxxWyz.xc5Oc'"ctt
2063   ct"'xxxWwzywWwwwWwzyw.xtcc8tXct
2064   cc'"8""''yz""'7'""yz'"'"'87tcct
2065   tccct''""W.''"'"''W."'"'"tttcct
2066  tttttccxcccttcxctcxcXctcXXxtccct
2067 ttttttttttttttttttttttttttttttttt
2068 ENDMAP
2069
2070 ###############################################################################
2071 # "Everyone said I was daft to build a castle on a swamp..."
2072 NAME:    grunt_swamp_rune_castle
2073 TAGS:    no_monster_gen no_trap_gen transparent
2074 PLACE:   Swamp:$
2075 ORIENT:  float
2076 MONS:    swamp dragon, swamp drake, hydra, bog body
2077 MONS:    fungus w:12 / plant w:5 / bush w:1
2078 KMONS:   d = patrolling the lernaean hydra / hydra w:1, hydra
2079 KMONS:   ef = patrolling hydra
2080 KITEM:   d = decaying rune of Zot
2081 KITEM:   ef = any good_item
2082 KITEM:   g = stone w:40 / large rock q:1
2083 NSUBST:  @ = 1:@ / *:.
2084 SUBST:   C = cc., = = +.
2085 SHUFFLE: def, 123
2086 NSUBST:  : = 6:1 / 6:2 / 6:3 / 9:4 / 3 = 0.... / 20:5 / * = '
2087 SUBST:   ' = .....WW, G = Gg
2088 MAP
2089  cccccWWW'''''WWWccccc
2090 cc%..ccCC=C=C=CCcc..%cc
2091 c%1...c'::'''::'c...2%c
2092 c..d..c'G:::::G'c..e..c
2093 c.....c':::C::''c.....c
2094 cc....+.G:'C':G.+....cc
2095 Wcccc+c.::CCC:'.c+ccccW
2096 WC'''..'G:'C':G'..'''CW
2097 WC:G:G:G'''C'''G'G'G:CW
2098 '=::::::'':C:''::::::='
2099 'C'::'C'':VcV:''C'::'C.
2100 '=''CCCCCCcccCCCCCC''=@
2101 'C'::'C'':VcU:''C'::'C.
2102 '=::::::'':C:''::::::='
2103 WC:G'G'G'''C'''G'G'G:CW
2104 WC'''..'G:'C':G''''''CW
2105 Wcccc+c.':CCC:''C=CCCCW
2106 cc....+.G:'C':G'=''':CC
2107 c.....c''::C::''C'':::C
2108 c..f..c'G:::::G'C':::'C
2109 c%3...c'::'''::'C:::''C
2110 cc%..ccCC=C-C=CCCC:'''C
2111  cccccWWW'.@.'WWWCCCCC@
2112 ENDMAP