1/*
2 *
3 *  Iter Vehemens ad Necem (IVAN)
4 *  Copyright (C) Timo Kiviluoto
5 *  Released under the GNU General
6 *  Public License
7 *
8 *  See LICENSING which should be included
9 *  along with this file for more details
10 *
11 */
12
13/*
14 * NOTICE!!!
15 *
16 * This file contains SPOILERS, which might ruin your IVAN experience
17 * totally. Also, editing anything can DESTROY GAME BALANCE or CAUSE
18 * OBSCURE BUGS if you don't know what you're doing. So from here on,
19 * proceed at your own risk!
20 */
21
22Dungeon ATTNAM;
23{
24  Levels = 5;
25  Description = "attnamese catacombs";
26  ShortDescription = "AC";
27
28  LevelDefault
29  {
30    Size = 30, 30;
31    GenerateMonsters = true;
32    Rooms = 10;
33    Items = 0;
34    IsOnGround = false;
35    TeamDefault = MONSTER_TEAM;
36    LOSModifier = 16;
37    IgnoreDefaultSpecialSquares = false;
38    CanGenerateBone = true;
39    EnchantmentMinusChanceBase = 0;
40    EnchantmentMinusChanceDelta = 0;
41    EnchantmentPlusChanceBase = 0;
42    EnchantmentPlusChanceDelta = 5;
43    BackGroundType = GRAY_FRACTAL;
44    FillSquare = GRANITE solidterrain(GROUND), BLACK_GRANITE earth;
45    TunnelSquare = GRANITE solidterrain(GROUND), 0;
46    IsCatacomb = true;
47    DifficultyBase = 0;
48    DifficultyDelta = 10;
49    MonsterAmountBase = 0;
50    MonsterAmountDelta = 5;
51    MonsterGenerationIntervalBase = 150;
52    MonsterGenerationIntervalDelta = -25;
53    EarthquakesAffectTunnels = true;
54    AudioPlayList =
55    {
56      1,
57      "Cathedral.mid";
58    }
59
60    RoomDefault
61    {
62      Pos = 2:XSize-5,2:YSize-5;
63      WallSquare = GRANITE solidterrain(GROUND), BLACK_GRANITE wall(BRICK_OLD);
64      FloorSquare = GRANITE solidterrain(GROUND), 0;
65      DoorSquare = GRANITE solidterrain(GROUND), 0;
66
67      Size = 4:11,4:11;
68      AltarPossible = false;
69      GenerateDoor = true;
70      DivineMaster = 0;
71      GenerateTunnel = true;
72      GenerateLanterns = false;
73      Type = ROOM_NORMAL;
74      GenerateFountains = false;
75      AllowLockedDoors = false;
76      AllowBoobyTrappedDoors = false;
77      Shape = RECTANGLE;
78      IsInside = true;
79      GenerateWindows = false;
80      UseFillSquareWalls = false;
81      Flags = 0;
82    }
83  }
84
85  Level 0;
86  {
87    Description = "Attnam";
88    ShortDescription = "Attnam";
89    FillSquare = solidterrain(SNOW_TERRAIN), 0;
90    Size = 61, 67;
91    GenerateMonsters = false;
92    Rooms = 20:25;
93    Items = 0;
94    IsOnGround = true;
95    TeamDefault = ATTNAM_TEAM;
96    LOSModifier = 48;
97    IgnoreDefaultSpecialSquares = false;
98    CanGenerateBone = false;
99    DifficultyBase = 150;
100    DifficultyDelta = 0;
101    EnchantmentMinusChanceBase = 0;
102    EnchantmentMinusChanceDelta = 0;
103    EnchantmentPlusChanceBase = 0;
104    EnchantmentPlusChanceDelta = 0;
105    BackGroundType = GRAY_FRACTAL;
106
107    RoomDefault
108    {
109      Pos = 2:XSize-5,2:51;
110      Size = 4:11,4:11;
111      AltarPossible = false;
112      WallSquare = solidterrain(SNOW_TERRAIN),wall(BRICK_FINE);
113      FloorSquare = solidterrain(PARQUET), 0;
114      DoorSquare = solidterrain(PARQUET),door;
115      GenerateDoor = true;
116      DivineMaster = 0;
117      GenerateTunnel = false;
118      GenerateLanterns = true;
119      Type = ROOM_NORMAL;
120      GenerateFountains = false;
121      AllowLockedDoors = false;
122      AllowBoobyTrappedDoors = false;
123      Shape = RECTANGLE;
124      IsInside = true;
125      GenerateWindows = true;
126      UseFillSquareWalls = false;
127      Flags = 0;
128    }
129
130    Square, Pos 0, 0;
131    {
132      Character = guard(PATROL) { WayPoint = { 4, 0, 0, XSize - 1, 0, XSize - 1, YSize - 1, 0, YSize - 1; } }
133    }
134
135    Square, Pos 4, 59; { Character = guard(VETERAN); }
136    Square, Pos 6, 59; { Character = guard(VETERAN); }
137    Square, Pos 23, 59; { Character = guard(VETERAN); }
138    Square, Pos 25, 59; { Character = guard(VETERAN); }
139    Square, Pos 35, 59; { Character = guard(VETERAN); }
140    Square, Pos 37, 59; { Character = guard(VETERAN); }
141    Square, Pos 54, 59; { Character = guard(VETERAN); }
142    Square, Pos 56, 59; { Character = guard(VETERAN); }
143
144    Square, Random NOT_IN_ROOM|HAS_NO_OTERRAIN;
145    {
146      OTerrain = decoration(SNOW_PINE);
147      Times = 200;
148    }
149
150    Square, Random NOT_IN_ROOM;
151    {
152      Character = hunter;
153      Times = 10;
154    }
155
156    Square, Random NOT_IN_ROOM;
157    {
158      Character = bear(POLAR_BEAR);
159    }
160
161    Square, Random NOT_IN_ROOM;
162    {
163      Character = farmer;
164      Times = 5;
165    }
166
167    Square, Random NOT_IN_ROOM;
168    {
169      Character = housewife;
170      Times = 5;
171    }
172
173    Square, Random NOT_IN_ROOM;
174    {
175      Character = child(BOY);
176      Times = 5;
177    }
178
179    Square, Random NOT_IN_ROOM;
180    {
181      Character = child(GIRL);
182      Times = 5;
183    }
184
185    Square, Random NOT_IN_ROOM;
186    {
187      Character = cossack;
188    }
189
190    Square, Random NOT_IN_ROOM;
191    {
192      Character = bum;
193    }
194
195    Square, Pos 30,YSize - 1;
196    {
197      EntryIndex = STAIRS_UP;
198    }
199
200    Room
201    {
202      Pos = 10,10;
203      Size = 41,42;
204      WallSquare = solidterrain(SNOW_TERRAIN), GRANITE wall(BRICK_FINE);
205      FloorSquare = solidterrain(SNOW_TERRAIN), 0;
206      GenerateDoor = false;
207      DivineMaster = VALPURUS;
208      GenerateLanterns = false;
209      Type = ROOM_CATHEDRAL;
210      IsInside = false;
211      GenerateWindows = false;
212
213      Square, Pos 1, 1;
214      {
215        Character = floatingeye { WayPoint = { 4, 11, 11, 49, 11, 49, 50, 11, 50; } }
216      }
217
218      Square, Pos 19, 41;
219      {
220        OTerrain = 0;
221      }
222
223      Square, Pos 20, 41;
224      {
225        OTerrain = 0;
226      }
227
228      Square, Pos 21, 41;
229      {
230        OTerrain = 0;
231      }
232
233      GTerrainMap
234      {
235        Pos = 4,3;
236        Size = 33,35;
237        Types
238        {
239          # = MARBLE solidterrain(FLOOR) { IsInside = true; }
240          - = MARBLE solidterrain(FLOOR) { IsInside = true; }
241          ~ = liquidterrain(POOL) { IsInside = true; }
242          = = liquidterrain(POOL);
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      OTerrainMap
284      {
285        Pos = 1,1;
286        Size = 39,40;
287        Types
288        {
289          # = MARBLE wall(BRICK_FINE);
290          @ = MARBLE wall(BRICK_PROPAGANDA);
291          T = throne;
292          | = decoration(CARPET);
293          A = VALPURIUM altar(VALPURUS);
294          D = MARBLE door(HEXAGONAL_LOCK);
295          L = MARBLE door(HEXAGONAL_LOCK) { Parameters = LOCKED; }
296          b = decoration(SNOW_FIR);
297          1 = decoration(POOL_CORNER) { VisualEffects = NONE; }
298          2 = decoration(POOL_CORNER) { VisualEffects = MIRROR; }
299          3 = decoration(POOL_CORNER) { VisualEffects = MIRROR | FLIP; }
300          4 = decoration(POOL_CORNER) { VisualEffects = FLIP; }
301          5 = decoration(POOL_BORDER) { VisualEffects = NONE; }
302          6 = decoration(POOL_BORDER) { VisualEffects = ROTATE; }
303          7 = decoration(POOL_BORDER) { VisualEffects = FLIP; }
304          8 = decoration(POOL_BORDER) { VisualEffects = MIRROR | ROTATE; }
305          s = decoration(COUCH);
306          f = fountain { SecondaryMaterial = ICE; }
307          d = decoration(DOUBLE_BED);
308          B = GOLD boulder(1);
309          _ = decoration(BENCH);
310          - = decoration(DESK);
311          = = decoration(ARM_CHAIR);
312          ~ = decoration(EXPENSIVE_BED);
313          [ = decoration(OVEN);
314          t = decoration(TABLE);
315          x = olterraincontainer(CHEST_OF_DRAWERS) { ItemsInside = { 2, FABRIC cloak, Random { MinPrice = 100; Category = CLOAK|BODY_ARMOR|BELT|BOOT|GAUNTLET; ConfigFlags = NO_BROKEN; } } }
316          X = olterraincontainer(BOOK_CASE) { ItemsInside = { 2, Random { MaxPrice = 500; Category = SCROLL|BOOK; }, Random { MaxPrice = 500; Category = SCROLL|BOOK; } } }
317          c = christmastree;
318          % = GOLD barwall;
319          + = GOLD door(BARDOOR) { Parameters = LOCKED; }
320          S = sign { Text = "Be responsible, sort your waste."; }
321        }
322      }
323      {
324        b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b
325        .......................................
326        b...b...b..b...b.b.b.b.b..........b...b
327        ..b...b........#########........b...b..
328        b....b.......bb#.......#bb.......b....b
329        ...####b..b..###.......###..b..b####...
330        b.b#..#.b....#...........#....b.#..#b.b
331        ...#..#....###...........###....#..#...
332        b.b#..#b..b#...............#b..b#+%#b.b
333        ...#..###..#.....T.A.T.....#..###.B#...
334        b.b#....#.b#.......|.......#b.#....#b.b
335        ...#....#..#.......|.......#..#B.-=#...
336        b.b###..#b.###.....|.....###.S#..###b.b
337        ....b#..#@#.f#.....|.....#..#@#.B#b....
338        b....#....#_.#.....|.....#..#..B.#....b
339        ..bb.###..####.....|.....####..###.bb..
340        b.....b#.....#.....|.....#...B.#b.....b
341        .b..b..#.....#.....|.....#.B...#..b..b.
342        b..b...####..#.....|.....#..####...b..b
343        b....b....#..#.....|.....#.B#....b....b
344        .b.b....b###D#.....|.....#L###b....b.b.
345        b...b#####.#.#.....|.....#.#.#####b.b.b
346        ....##s....D.#.....|.....#.D.....##....
347        b..b#X..152#.#.....|.....#.#....._#b..b
348        .b..#X..8.6#.#.....|.....#.#..A.._#..b.
349        b...##.=8.6#.#.....|.....#.#.....##...b
350        ....b#@-8.6#.#.....|.....#.#....@#b....
351        b.b..b##8.6#.######D######.###L##b..b.b
352        .......#8.6#...............#~..#.......
353        b...b.b#473#...............#x=-#b.b...b
354        .b....##@####...###D###...####@##....b.
355        b..####.s.s.D...#.c.c.#...D..[.[####..b
356        ..b#.d......#####.f.f.#####.....[.[#b..
357        b..#....s.s.#b..b.....b..b#tttt....#..b
358        .b.##...#####.bb..c.c..bb.#####...##.b.
359        b..b##xx#b.b......f.f......b.b#..##b..b
360        ....b####....b...........b....####b....
361        b.b...b...b.......c.c.......b...b...b.b
362        ...............bb.f.f.bb...............
363        b.b.b.b.b.b.b.b..c...c..b.b.b.b.b.b.b.b
364      }
365
366      ItemMap
367      {
368        Pos = 4,4;
369        Size = 33,34;
370        Types
371        {
372          # == 0;
373          a == avatarofvalpurus;
374          b == banana;
375          k == kiwi;
376          p == pineapple;
377          e == backpack;
378          g == GOLD stone(SOL_STONE);
379          i == SILVER stone;
380          h == SAPPHIRE stone;
381          r == RUBY stone;
382          d == DIAMOND stone;
383          1 == lantern { SquarePosition = UP; }
384          2 == lantern { SquarePosition = DOWN; }
385          3 == lantern { SquarePosition = RIGHT; }
386          4 == lantern { SquarePosition = LEFT; }
387          C == GOLD itemcontainer(CHEST) { ItemsInside = { 3, meleeweapon(GRAND_STOLLEN_KNIFE), stone { Times = 10; }, GOLD banana; } }
388          y == GOLD itemcontainer(LARGE_CHEST) { ItemsInside = { 14,
389                                                                 flamingsword { Chance = 20; },
390                                                                 darkaxe { Chance = 20; },
391                                                                 whipofthievery { Chance = 20; },
392                                                                 thunderhammer { Chance = 20; },
393                                                                 chameleonwhip { Chance = 20; },
394                                                                 wondersmellstaff { Chance = 20; },
395                                                                 daggerofvenom { Chance = 20; },
396                                                                 weepblade { Chance = 20; },
397                                                                 slowaxe { Chance = 20; },
398                                                                 terrorscythe { Chance = 20; },
399                                                                 bansheesickle { Chance = 20; },
400                                                                 sharpaxe { Chance = 20; },
401                                                                 rustscythe { Chance = 20; },
402                                                                 meleeweapon(RUNE_SWORD) { Chance = 20; }
403                                                               }
404                                               }
405          F == GOLD ring(RING_OF_FIRE_RESISTANCE);
406          I == GOLD ring(RING_OF_INVISIBILITY);
407          E == GOLD amulet(AMULET_OF_ESP);
408          S == GOLD GOLD meleeweapon(LONG_SWORD);
409          U == DIAMOND helmet(HELM_OF_UNDERSTANDING);
410          A == GOLD helmet(HELM_OF_ATTRACTIVITY);
411          L == oillamp;
412          P == GOLD bodyarmor(PLATE_MAIL);
413          O == PHOENIX_FEATHER cloak(CLOAK_OF_FLYING);
414          W == DIAMOND wand(WAND_OF_POLYMORPH);
415          w == Random { MinPrice = 350; Category = WEAPON|SHIELD; ConfigFlags = NO_BROKEN; Enchantment = 1; }
416          c == Random { MinPrice = 700; Category = WEAPON|SHIELD; ConfigFlags = NO_BROKEN; Enchantment = 3; }
417          m == Random { MinPrice = 350; Category = HELMET|CLOAK|BODY_ARMOR|BELT|BOOT|GAUNTLET; ConfigFlags = NO_BROKEN; Enchantment = 1; }
418          X == itemcontainer(LARGE_CHEST) { ItemsInside = { 4, can { Times = 0:3; }, loaf { Times = 2:10; }, banana { Times = 0:10; }, carrot { Times = 0:3; } } }
419          t == itemcontainer(LARGE_CHEST) { ItemsInside = { 7, can { Times = 0:3; SecondaryMaterial = 0; }, PLANT_FIBER lump { Times = 0:1; }, lantern(BROKEN) { Times = 0:2; }, brokenbottle { Times = 0:5; }, bananapeels { Times = 0:5; }, banana(BROKEN) { Times = 0:1; }, bone { Times = 0:5; } } }
420          T == itemcontainer(LARGE_CHEST) { ItemsInside == Random { Times = 3:7; MaxPrice = 10; Category = CLOAK|BODY_ARMOR|BELT|BOOT|GAUNTLET; ConfigFlags = BROKEN; } }
421          n == trinket(POTTED_PLANT);
422          N == trinket(POTTED_CACTUS);
423          Y == trinket(LARGE_CLOCK);
424        }
425      }
426      {
427        ............##2###2##............
428        ............#.......#............
429        ####......###.......###......####
430        #..#......#...........#......#..4
431        #..#....###...........###....#..#
432        #..#....#...r.......r...#....#..#
433        #..###..#.........a.....#..###I.#
434        #...e#..#......b.b......#..#COLF#
435        #...e#..#......k.k......#..#.d..#
436        ##1.e#..##1.h..p.p..h.1##..#Ug1##
437        ..#.e4##..#....b.b....#tt##3r.#..
438        ..#....#..#....k.k....#Tt#Wh.L#..
439        ..###..4###....p.p....###3Fi###..
440        ....#.....3.d..b.b..d.4y.A.I#....
441        ....#.....#....k.k....#r.gEP#....
442        ....###3..#....p.p....#Sd4###....
443        .......#..#....b.b....#h.#.......
444        ......###.3.g..k.k..g.4.###......
445        ..#####.#.#....p.p....#.#.#####..
446        .##.......#....b.b....#.......##.
447        .#......3.#....k.k....#.4......#.
448        .#......#.3.i..p.p..i.4.#......#.
449        .##.....4.#....b.b....#.3.....##.
450        ..##....#.#...........#.#....##..
451        ...##...#.##2###.###2##.###.##...
452        ....#...4...............#...4....
453        ....#...#...............#...#....
454        ...###2###...##2.2##...##2####...
455        ####..n......#.....#.........####
456        #........#####.....#####........#
457        #.....N.n#.............#........4
458        ##Y..#####.............#####...##
459        .##..#.....................#XX##.
460        ..####.....................####..
461      }
462
463      CharacterMap
464      {
465        Pos = 4,4;
466        Size = 33,34;
467        Types
468        {
469          # = 0;
470          P = petrus { Flags = IS_MASTER; }
471          g = guard(VETERAN);
472          e = guard(EUNUCH);
473          E = guard(ELITE);
474          m = guard(MASTER);
475          p = priest(VALPURUS);
476          L = priest(LEGIFER);
477          d = dolphin(ADULT_FEMALE);
478          D = dolphin(ADULT_MALE);
479          l = frog(LIGHT);
480          f = frog(GREATER_LIGHT);
481          i = frog(GIANT_LIGHT);
482          y = mysticfrog(LIGHT);
483          s = femaleslave(ATTNAM);
484          j = femaleslave(JESTER);
485          1 = petrusswife(1);
486          2 = petrusswife(2);
487          3 = petrusswife(3);
488          4 = petrusswife(4);
489          5 = petrusswife(5);
490          6 = petrusswife(6);
491          k = kamikazedwarf(VALPURUS);
492          K = veterankamikazedwarf(VALPURUS);
493          h = imperialist(HOARD_MASTER);
494          G = golem(GOLD) { Inventory == GOLD stone(SOL_STONE); }
495          o = orc(REPRESENTATIVE);
496          a = siren(AMBASSADOR_SIREN);
497          A = guard(EMISSARY) { WayPoint = { 2, 26, 35, 34, 35; } }
498        }
499      }
500      {
501        ............#########....D.......
502        ............#g.....g#............
503        ####......###..ymy..###......####
504        #.K#......#g....l....g#......#G.#
505        #..#....###...........###....#..#
506        #k.#....#E.............E#....#..#
507        #k.###..#....sPs.s.s....#..###..#
508        #k...#..#.jf....i....f..#..#....#
509        #k...#..#E.............E#..#...h#
510        ###..#..###...........###..#..###
511        ..#..###..#...........#..###..#..
512        ..#....#L.#g.l.....l.g#..#....#..
513        ..###k.####...........####..###..
514        ....#k...k#.....o.....#.E...#....
515        ....#k...k#...........#.....#....
516        ....####.k#g.........g#..####....
517        .......#..#...........#..#.......
518        ......###.#.....a.....#.###......
519        ..#####E#.#...........#.#E#####..
520        .##.......#g.........g#.......##.
521        .#......#.#...........#.#..p...#.
522        .#....d.#.#.....A.....#.#......#.
523        .##...d.#.#...........#.#.....##.
524        ..##..d.#.#g.........g#.#....##..
525        ...##.d.#.######.######.###.##...
526        ....#.d.#......g.g......#...#....
527        ....#...#...............#...#....
528        ...#######...###.###...#######...
529        ####e3.5.....#g...g#.........####
530        #.1......#####.....#####........#
531        #....4.6.#.............#........#
532        ##...#####.............#####...##
533        .##2.#.....................#..##.
534        ..####.....................####..
535      }
536    }
537
538    Square, Pos 44,45;
539    {
540      OTerrain = stairs(STAIRS_DOWN);
541      EntryIndex = STAIRS_DOWN;
542    }
543
544    Room
545    {
546      Pos = 33,53;
547      Size = 7,6;
548      WallSquare = solidterrain(SNOW_TERRAIN),wall(BRICK_FINE);
549      FloorSquare = solidterrain(PARQUET), 0;
550      GenerateDoor = false;
551      DivineMaster = MELLIS;
552      Type = ROOM_SHOP;
553      GenerateLanterns = false;
554      GenerateWindows = false;
555
556      Square, Pos 3, 5;
557      {
558        GTerrain = solidterrain(PARQUET);
559        OTerrain = door;
560      }
561
562      Square, Pos 1, 1;
563      {
564        Character = slave;
565      }
566
567      Square, Pos 1, 4;
568      {
569        Items == banana;
570        Times = 100;
571      }
572
573      Square, Pos 5, 1;
574      {
575        Character = shopkeeper(ATTNAM) { Flags = IS_MASTER; }
576        OTerrain = decoration(CHAIR);
577      }
578
579      Square, Pos 3, 0;
580      {
581        OTerrain = GRANITE wall(BRICK_PROPAGANDA);
582      }
583
584      ItemMap
585      {
586        Pos = 0,0;
587        Size = 7,6;
588        Types
589        {
590          # == 0;
591          a == Random { MinPrice = 250; MaxPrice = 2000; Category = HELMET|CLOAK|BODY_ARMOR|BELT|BOOT|GAUNTLET; }
592          d == Random { MinPrice = 50; MaxPrice = 2000; Category = RING|AMULET; }
593          w == Random { MinPrice = 250; MaxPrice = 2000; Category = WEAPON|SHIELD; }
594          e == Random { MinPrice = 10; MaxPrice = 2000; Category = FOOD|POTION; }
595          u == Random { MinPrice = 50; MaxPrice = 2000; Category = WAND|TOOL; }
596          v == Random { MinPrice = 500; MaxPrice = 2000; }
597          p == lump { MainMaterial = BEAR_FLESH { Volume = 20000; } }
598          l == lantern;
599          2 == lantern { SquarePosition = DOWN; }
600          3 == lantern { SquarePosition = RIGHT; }
601          4 == lantern { SquarePosition = LEFT; }
602        }
603      }
604      {
605        ##2#2##
606        #.aaa.#
607        #edduw#
608        3eeluw4
609        #.epvw#
610        2##.##2
611      }
612    }
613
614    Room
615    {
616      Pos = 52,53;
617      Size = 7,6;
618      WallSquare = solidterrain(SNOW_TERRAIN),wall(BRICK_FINE);
619      FloorSquare = solidterrain(PARQUET), 0;
620      GenerateDoor = false;
621      DivineMaster = SOPHOS;
622      Type = ROOM_LIBRARY;
623      GenerateLanterns = false;
624      GenerateWindows = false;
625
626      Square, Pos 3, 5;
627      {
628        GTerrain = solidterrain(PARQUET);
629        OTerrain = door;
630      }
631
632      Square, Pos 3, 0;
633      {
634        OTerrain = GRANITE wall(BRICK_PROPAGANDA);
635      }
636
637      Square, Pos 3, 3;
638      {
639        Character = librarian { Flags = IS_MASTER; }
640      }
641
642      Square, Pos 3, 3;
643      {
644        OTerrain = decoration(CHAIR);
645      }
646
647      Square, Pos 3, 0;
648      {
649        Items == lantern { SquarePosition = DOWN; }
650      }
651
652      Square, Pos 0, 5;
653      {
654        Items == lantern { SquarePosition = DOWN; }
655      }
656
657      Square, Pos 6, 5;
658      {
659        Items == lantern { SquarePosition = DOWN; }
660      }
661
662      OTerrainMap
663      {
664        Pos = 1,1;
665        Size = 5,4;
666        Types
667        {
668          = = olterraincontainer(BOOK_CASE) { ItemsInside = { 2, Random { MaxPrice = 500; Category = SCROLL|BOOK; }, Random { MaxPrice = 500; Category = SCROLL|BOOK; } } }
669        }
670      }
671      {
672        =====
673        =...=
674        =...=
675        =...=
676      }
677    }
678
679    Room
680    {
681      Pos = 21,53;
682      Size = 7,6;
683      AltarPossible = false;
684      WallSquare = solidterrain(SNOW_TERRAIN),wall(BRICK_FINE);
685      FloorSquare = solidterrain(FLOOR), 0;
686      DoorSquare = solidterrain(FLOOR), door;
687      GenerateDoor = false;
688      DivineMaster = LORICATUS;
689      GenerateLanterns = false;
690      GenerateWindows = false;
691
692      Square, Pos 3, 5;
693      {
694        GTerrain = solidterrain(FLOOR);
695        OTerrain = door;
696      }
697
698      Square, Pos 3, 0;
699      {
700        OTerrain = GRANITE wall(BRICK_PROPAGANDA);
701      }
702
703      Square, Pos 0, 3;
704      {
705        Items == lantern { SquarePosition = RIGHT; }
706      }
707
708      Square, Pos 6, 3;
709      {
710        Items == lantern { SquarePosition = LEFT; }
711      }
712
713      Square, Pos 2, 0;
714      {
715        Items == lantern { SquarePosition = DOWN; }
716      }
717
718      Square, Pos 4, 0;
719      {
720        Items == lantern { SquarePosition = DOWN; }
721      }
722
723      Square, Pos 0, 5;
724      {
725        Items == lantern { SquarePosition = DOWN; }
726      }
727
728      Square, Pos 6, 5;
729      {
730        Items == lantern { SquarePosition = DOWN; }
731      }
732
733      Square, Pos 3, 2;
734      {
735        Character = smith(ATTNAM) { Flags = IS_MASTER; }
736      }
737
738      Square, Pos 3, 3;
739      {
740        OTerrain = decoration(ANVIL);
741      }
742
743      Square, Pos 1, 1;
744      {
745        OTerrain = decoration(FORGE);
746      }
747
748      Square, Pos 5, 1;
749      {
750        OTerrain = decoration(PLAIN_BED);
751      }
752    }
753
754    Room
755    {
756      Pos = 2,53;
757      Size = 7,6;
758      AltarPossible = false;
759      WallSquare = solidterrain(SNOW_TERRAIN),wall(BRICK_FINE);
760      FloorSquare = solidterrain(PARQUET), 0;
761      GenerateDoor = false;
762      DivineMaster = LORICATUS;
763      GenerateLanterns = false;
764      GenerateWindows = false;
765
766      Square, Pos 3, 5;
767      {
768        GTerrain = OAK_WOOD solidterrain(PARQUET);
769        OTerrain = door;
770      }
771
772      Square, Pos 3, 0;
773      {
774        OTerrain = GRANITE wall(BRICK_PROPAGANDA);
775      }
776
777      Square, Pos 0, 3;
778      {
779        Items == lantern { SquarePosition = RIGHT; }
780      }
781
782      Square, Pos 6, 3;
783      {
784        Items == lantern { SquarePosition = LEFT; }
785      }
786
787      Square, Pos 2, 0;
788      {
789        Items == lantern { SquarePosition = DOWN; }
790      }
791
792      Square, Pos 4, 0;
793      {
794        Items == lantern { SquarePosition = DOWN; }
795      }
796
797      Square, Pos 0, 5;
798      {
799        Items == lantern { SquarePosition = DOWN; }
800      }
801
802      Square, Pos 6, 5;
803      {
804        Items == lantern { SquarePosition = DOWN; }
805      }
806
807      Square, Pos 3, 2;
808      {
809        Character = tailor(ATTNAM) { Flags = IS_MASTER; }
810      }
811
812      Square, Pos 3, 3;
813      {
814        OTerrain = decoration(WORK_BENCH);
815      }
816
817      Square, Pos 1, 2;
818      {
819        OTerrain = decoration(PLAIN_BED);
820      }
821    }
822
823    Room
824    {
825      FloorSquare = solidterrain(FLOOR), 0;
826      WallSquare = solidterrain(SNOW_TERRAIN), FIR_WOOD wall(BRICK_FINE);
827      DoorSquare = solidterrain(FLOOR), door;
828
829      Square, Random HAS_NO_OTERRAIN;
830      {
831        OTerrain = decoration(PLAIN_BED);
832      }
833
834      Square, Random HAS_NO_OTERRAIN;
835      {
836        OTerrain = olterraincontainer(CHEST_OF_DRAWERS) { ItemsInside == materialmanual; }
837      }
838    }
839
840    Room
841    {
842      FloorSquare = solidterrain(FLOOR), 0;
843      WallSquare = solidterrain(SNOW_TERRAIN), FIR_WOOD wall(BRICK_FINE);
844      DoorSquare = solidterrain(FLOOR), door;
845
846      Square, Random HAS_NO_OTERRAIN;
847      {
848        OTerrain = decoration(PLAIN_BED);
849      }
850
851      Square, Random HAS_NO_OTERRAIN;
852      {
853        OTerrain = decoration(CHAIR);
854      }
855
856      Square, Random HAS_NO_OTERRAIN;
857      {
858        OTerrain = decoration(TABLE);
859      }
860    }
861
862    Room
863    {
864      FloorSquare = solidterrain(FLOOR), 0;
865      WallSquare = solidterrain(SNOW_TERRAIN), FIR_WOOD wall(BRICK_FINE);
866      DoorSquare = solidterrain(FLOOR), door;
867
868      Square, Random HAS_NO_OTERRAIN;
869      {
870        OTerrain = decoration(CHEAP_BED);
871      }
872    }
873  }
874
875  Level 1;
876  {
877    Description = "cathedral cellar";
878    ShortDescription = "Cellar";
879    Size = 42, 48;
880    GenerateMonsters = false;
881    Rooms = 1;
882    Items = 0;
883    IsOnGround = false;
884    TeamDefault = ATTNAM_TEAM;
885    LOSModifier = 16;
886    IgnoreDefaultSpecialSquares = false;
887    CanGenerateBone = false;
888    DifficultyBase = 150;
889    DifficultyDelta = 0;
890    EnchantmentMinusChanceBase = 0;
891    EnchantmentMinusChanceDelta = 0;
892    EnchantmentPlusChanceBase = 0;
893    EnchantmentPlusChanceDelta = 0;
894    BackGroundType = GRAY_FRACTAL;
895    FillSquare = solidterrain(GROUND), MORAINE earth;
896    TunnelSquare = solidterrain(GROUND), 0;
897    EarthquakesAffectTunnels = false;
898
899    Room
900    {
901      Size = 38, 44;
902      Pos = 2, 2;
903      WallSquare = solidterrain(GROUND), 0;
904      FloorSquare = solidterrain(GROUND), 0;
905      AltarPossible = false;
906      GenerateDoor = false;
907      DivineMaster = VALPURUS;
908      GenerateTunnel = false;
909      GenerateLanterns = false;
910      Type = ROOM_OWNED_AREA;
911      GenerateFountains = false;
912      AllowLockedDoors = false;
913      AllowBoobyTrappedDoors = false;
914      Shape = RECTANGLE;
915      IsInside = true;
916      GenerateWindows = false;
917      UseFillSquareWalls = false;
918      Flags = 0;
919
920      GTerrainMap
921      {
922        Size = 39, 44;
923        Pos = 0, 0;
924        Types
925        {
926          * = 0;
927          # = 0;
928          _ = MARBLE solidterrain(FLOOR);
929          + = solidterrain(PARQUET);
930        }
931      }
932      {
933        ************###########################
934        *####*******#...#..#....#....#....#...#
935        *#..#*******#......#....#....##.###...#
936        *#..#*******#......##.#####.##........#
937        *####*******#...#.................#####
938        ************#######...####...####.....#
939        *****************.....#**#...#**#.#...#
940        #####**********..*#...#.*#...#**#.#...#
941        #...#*************#####*#######*#.#####
942        #...#*******************#.....#*#.....#
943        ##.######################.....#*#.#...#
944        #.............................#*#.#...#
945        #.............................#*#.#####
946        ##.#####.#####.#####.####.....#*#...#**
947        #...#*#...#*#...#*#...#*#.....#*#...#**
948        #...#*#...#*#...#*#...#*#.....#*#...#**
949        #####*#####*#####*#####*##...##*#...#**
950        *************************#...#**#...#**
951        #####*#####*#####*#####*##...##*#...#**
952        #...#*#...#*#...#*#...#*#.....#*#...#**
953        #...#*#...#*#...#*#...#*#.....#*#.###**
954        ##.#####.#####.#####.####.....#*#.#****
955        #.............................###.##***
956        #..................................#***
957        #########################.....#.#..#***
958        *########.............#*#.....#.#..#***
959        *#_____##.............#*##...##.#..#***
960        *#_____##.............#**#...##.#..#***
961        *#_____##.............####...##.#..#***
962        *#_____##.............#.......#.#######
963        *#_____##########.#####.......#.......#
964        *#_____##...#...#.#...#.......#.#.....#
965        *#_____##...#...#.....#.......#.#.....#
966        ####_####.#####.#.#####.......#.#.....#
967        #.......#.............#.......#.#.....#
968        #.......#.#####.#.#...#.......#.#.....#
969        #.......#...#...#.#############.#.....#
970        #######.#...#...#...............#.....#
971        *#++++#.#########.##.####.#####.#######
972        *#++++............#...#.....#.........#
973        *#++++#############...#.....#.........#
974        *#++++#***********#####.....#.........#
975        *#++++#***************#.....#.........#
976        *######***************#################
977      }
978
979      OTerrainMap
980      {
981        Size = 39, 44;
982        Pos = 0, 0;
983        Types
984        {
985          * = MORAINE earth;
986          # = BLACK_GRANITE wall(BRICK_OLD);
987          @ = IRON barwall;
988          & = PAPER_BOARD barwall; /* Yes, it's a cardboard prison joke. */
989          $ = IRON barwall(BROKEN_BARWALL);
990          % = IRON door(BARDOOR);
991          = = PAPER_BOARD door(BARDOOR) { Parameters = LOCKED; }
992          ^ = MARBLE wall(BRICK_PROPAGANDA);
993          > = stairs(STAIRS_DOWN);
994          < = stairs(STAIRS_UP);
995          B = IRON brokendoor(BARDOOR);
996          C = MARBLE coffin { ItemsInside = { 2, skull, bone { Times = 1:3; } } }
997          D = IRON door;
998          E = decoration(DOUBLE_BED);
999          F = decoration(WELL);
1000          H = olterraincontainer(SHELF)
1001          {
1002            ItemsInside = { 4, can { Times = 0:3; }, loaf { Times = 2:10; }, banana { Times = 0:10; }, carrot { Times = 0:3; } }
1003          }
1004          L = IRON door(BARDOOR) { Parameters = LOCKED; }
1005          I = ironmaiden;
1006          N = GRANITE wall(BRICK_FINE);
1007          P = GRANITE wall(BRICK_PROPAGANDA);
1008          R = olterraincontainer(CHEST_OF_DRAWERS)
1009          {
1010            ItemsInside == Random { Category = CLOAK|BODY_ARMOR|BELT|BOOT|GAUNTLET; ConfigFlags = NO_BROKEN; }
1011          }
1012          S = BLACK_GRANITE door(SECRET_DOOR);
1013          T = decoration(TABLE);
1014          X = BLACK_GRANITE wall(BROKEN_WALL);
1015          W = olterraincontainer(SHELF)
1016          {
1017            ItemsInside = { 1, potion { Times = 3:5; SecondaryMaterial = VODKA; } }
1018          }
1019          b = boulder(1);
1020          d = decoration(PLAIN_BED);
1021          c = decoration(CARPET);
1022          e = MARBLE wall(BRICK_OLD);
1023          f = fountain;
1024          l = IRON door { Parameters = LOCKED; }
1025          n = decoration(BENCH);
1026          r = decoration(CHAIR);
1027          s = decoration(SHACKLES);
1028          t = decoration(TORTURE_RACK);
1029          w = decoration(WOODEN_HORSE);
1030          x = MARBLE wall(BRICK_FINE);
1031          1 = MARBLE sign { Text = "Here rests in honored glory an Attnamese soldier known but to Valpurus."; }
1032        }
1033      }
1034      {
1035        ************#######################XX##
1036        *####*******X.s.@..@...sX....#...s$...#
1037        *#..#*******#...@..@....#....#@B@@@...#
1038        *#..#*******#s..L..@@B@@#@@%@#b...%...#
1039        *##S#*******X...@............S....XX###
1040        **#.#*******#######@%$X##X@L@#XX#.%..s#
1041        **#.#************b....#**#...X**X.@...#
1042        ###S#**********>.*#s..#**#.s.#**#.$...X
1043        #..I#*************#XX##*##NPN##*#.#XXX#
1044        #...#*******************#.....#*#.%...X
1045        #@L@#####################.....#*#.@.s.#
1046        #.............................#*#.@...#
1047        #.............................#*#S#####
1048        #@L@###&=&###@L@###@%@###.....#*#.WW#**
1049        #...#*#...#*#...#*#...#*#.....#*#..W#**
1050        #..s#*#.d.#*#.s.#*#...#*#.....#*#.WW#**
1051        #####*#####*#####*#####*##...##*#..W#**
1052        *************************#...#**#.WW#**
1053        #####*#####*#####*#####*##...##*#..W#**
1054        #..s#*#...#*#s..#*#.s.#*#.....#*#.WW#**
1055        #...#*#...#*#...#*#...#*#.....#*#D###**
1056        #@L@###@%@###@%@###@%@###.....#*#.#****
1057        #.............................###D##***
1058        #.............................D.D..#***
1059        #########################.....#D#..#***
1060        *xx^x^xx#d.d.d.d.d.d.d#*#.....#.#..#***
1061        *x.....x#.............#*##...##.#..#***
1062        *x..C..x#.............#**#...##.#..#***
1063        *x..c..x#.............####...##.#.<#***
1064        *x..c..x#d.d.d.d...d.d#.......#.#######
1065        *x..c1.x#########D#####.I.....#.D.....#
1066        *x..c..x#..d#..T#.#T.d#.......#.#.rTr.#
1067        *x..c..x#.rT#d..#.D..R#.....w.#.#.rTr.#
1068        #xxxDxxx#D#####D#.#####.t.....#.#.rTr.#
1069        #n.....f#.........D...#.....w.#.#.rTr.#
1070        #.......#D#####D#.#..d#..r....#.#.rTr.#
1071        #n......#..d#d..#.#############.#.rTr.#
1072        #######D#r.R#Tr.#...............#.....#
1073        *#....#.#########.##l####D#####D#######
1074        *#....l...........#..R#H...H#.........#
1075        *#....#############drT#H.F.H#.........#
1076        *#.E..#***********#####H...H#.........#
1077        *#..s.#***************#HHHHH#.........#
1078        *######***************#################
1079      }
1080
1081      ItemMap
1082      {
1083        Size = 39, 44;
1084        Pos = 0, 0;
1085        Types
1086        {
1087          * == 0;
1088          # == 0;
1089          1 == lantern { SquarePosition = UP; }
1090          2 == lantern { SquarePosition = DOWN; }
1091          3 == lantern { SquarePosition = RIGHT; }
1092          4 == lantern { SquarePosition = LEFT; }
1093          r == GRANITE stone;
1094          b == lantern(BROKEN);
1095          c == itemcontainer(SMALL_CHEST) { Parameters = LOCKED; ItemsInside == Random { Category = CLOAK|BODY_ARMOR|BELT|BOOT|GAUNTLET; ConfigFlags = NO_BROKEN; } }
1096          p == COPPER pickaxe(BROKEN);
1097        }
1098      }
1099      {
1100        ************###########################
1101        ************#..b#..#....#....#....#...#
1102        ************#....r.#....#....##.###...#
1103        ************#......##.#####.##........#
1104        ************#..b#...............b.#####
1105        ************#######..#####...####.....#
1106        *****************.r.b#***#...#**#.#...#
1107        #####**********.p*####***#...#**#.#...#
1108        #...#*******************##...##*#.#####
1109        #...#*******************#.....#*#.....#
1110        ##.#####2#####2#####2###3.....#*#.#...#
1111        3.............................#*#.#...#
1112        #.............................#*#.#####
1113        ##.#####.#####.#####.####.....#*#...#**
1114        #...#*#...#*#...#*#...#*3.....#*#...#**
1115        #...#*#...#*#...#*#...#*#.....#*#...#**
1116        #####*#####*#####*#####*##...##*#...#**
1117        *************************#...#**#...#**
1118        #####*#####*#####*#####*##...##*3...#**
1119        #...#*#...#*#...#*#...#*#.....#*#...#**
1120        #...#*#...#*#...#*#...#*3.....#*#.###**
1121        ##.#####.#####.#####.####.....#*#.#****
1122        #.............................###.##***
1123        #..................................4***
1124        ##1#####1#####1#####1###3.....#.#..#***
1125        *########.............#*#.....#.#..#***
1126        *#.....##c.c.c.c.c.c.c#*##...##.#..#***
1127        *3.....43.............4**#...##.3..#***
1128        *#.....##c.c.c.c...c.c####...##.#..#***
1129        *3.....4#.............#.......#.###2###
1130        *#.....###2###2#1.##2#3.......4.......#
1131        *3.....4#c..#c..#.#...#.......#.4.....#
1132        *#.....##...#...#.....#.......#.3.....4
1133        ####.####.#####.3.#####.......#.#.....#
1134        #.......3.............3.......4.#.....#
1135        3.......4.#####.#.#cc.#.......#.3.....4
1136        #.......3...#...#.#1####2######.#.....#
1137        #######.#...#...#...............#.....#
1138        *#....#.#######1#.##.###2.####2.###12##
1139        *3................3...#.....#.........#
1140        *#....#####1#######...#.....#.........#
1141        *#....#***********#####.....#.........#
1142        *#....#***************#.....#.........#
1143        *######***************########1#####1##
1144      }
1145
1146      CharacterMap
1147      {
1148        Size = 39, 44;
1149        Pos = 0, 0;
1150        Types
1151        {
1152          * = 0;
1153          # = 0;
1154          G = guard(VETERAN);
1155          H = guard(HONOR);
1156          t = guard(TRAINEE) { WayPoint = { 4, 33, 42, 34, 43, 38, 43, 38, 41; } }
1157          N = necromancer(IMPRISONED_NECROMANCER) { Team = 15; }
1158          P = punisher;
1159          L = punisher(LAW_STUDENT);
1160          M = mistress { Inventory == potion { Times = 1:2; SecondaryMaterial = VALDEMAR; } }
1161          T = imperialist(MASTER_TORTURER) { Flags = IS_MASTER; }
1162          1 = farmer(IMPRISONED_FARMER) { Team = 15; }
1163          2 = hunter(IMPRISONED_HUNTER) { Team = 15; }
1164          3 = femaleslave(IMPRISONED_FEMALE) { Team = 15; }
1165          4 = zombie(IMPRISONED_ZOMBIE) { Team = 15; }
1166          7 = petrusswife(7);
1167        }
1168      }
1169      {
1170        ************###########################
1171        ************#...#..#....#....#....#...#
1172        ************#.4....#....#....##.###...#
1173        ************#......##.#####.##........#
1174        ************#...#.................#####
1175        ************#######..#.###...####.....#
1176        ******************#..#.**#...#**#.#...#
1177        ******************####*.*#7..#**#.#...#
1178        ************************#######*#.#####
1179        ************************#...G.#*#.....#
1180        #########################.....#*#.#...#
1181        #.............................#*#.#...#
1182        #.............................#*#.#####
1183        ##.#####.#####.#####.####.....#*#...#**
1184        #...#*#...#*#...#*#...#*#.....#*#...#**
1185        #1..#*#...#*#2..#*#...#*#.....#*#...#**
1186        #####*#####*#####*#####*##...##*#...#**
1187        *************************#...#**#...#**
1188        #####*#####*#####*#####*##...##*#...#**
1189        #...#*#...#*#...#*#N..#*#.....#*#...#**
1190        #..3#*#...#*#...#*#...#*#.....#*#.###**
1191        ##.#####.#####.#####.####.....#*#.#****
1192        #.............................###.##***
1193        #..........................L.......#***
1194        #########################.....#.#..#***
1195        *########.............#*#.....#.#.G#***
1196        *#.....##.............#*##...##.#..#***
1197        *#.....##.............#**#...##.#..#***
1198        *#.....##........G....####...##.#G.#***
1199        *#.....##.............#....P..#.#######
1200        *#.....##########.#####.......#.......#
1201        *#.....##...#...#.#...#..P....#.#.....#
1202        *#.....##...#...#.....#.......#.#.....#
1203        ####.####.#####.#.#####....P..#.#.....#
1204        #..H.H..#.............#.......#.#.....#
1205        #.......#.#####.#.#...#..T....#.#.....#
1206        #.......#...#...#.#############.#.....#
1207        #######.#...#...#...............#.....#
1208        *#....#.#########.##.####.#####.#######
1209        *#................#...#.....#...G...t.#
1210        *#....#############...#.....#.t.......#
1211        *#..M.#***********#####.....#...t...t.#
1212        *#....#***************#.....#.........#
1213        *######***************#################
1214      }
1215    }
1216
1217    Square, Pos 36,30;
1218    {
1219      OTerrain = stairs(STAIRS_UP);
1220      EntryIndex = STAIRS_UP;
1221    }
1222
1223    Square, Pos 17,9;
1224    {
1225      OTerrain = stairs(STAIRS_DOWN);
1226      EntryIndex = STAIRS_DOWN;
1227    }
1228  }
1229
1230  RandomLevel 2:3; /* Beartrap vault */
1231  {
1232    Room
1233    {
1234      Size = 6,6;
1235      Flags = NO_MONSTER_GENERATION;
1236
1237      Square, Random;
1238      {
1239        Items == Random { Category = RING|SCROLL|WAND; }
1240      }
1241
1242      Square, Random;
1243      {
1244        Items == METEORIC_STEEL beartrap { Team = MONSTER_TEAM; IsActive = true; LifeExpectancy = 1000:10000; }
1245        Times == 3;
1246      }
1247
1248      Square, Random;
1249      {
1250        Items == MITHRIL beartrap { Team = MONSTER_TEAM; IsActive = true; LifeExpectancy = 1000:10000; }
1251        Times == 2;
1252      }
1253
1254      Square, Random;
1255      {
1256        Items == OCTIRON beartrap { Team = MONSTER_TEAM; IsActive = true; LifeExpectancy = 1000:10000; }
1257      }
1258
1259      Square, Random;
1260      {
1261        Items == ADAMANT beartrap { Team = MONSTER_TEAM; IsActive = true; LifeExpectancy = 1000:10000; }
1262      }
1263    }
1264  }
1265
1266  RandomLevel 3:4; /* Sepulcher */
1267  {
1268    Room
1269    {
1270      GenerateLanterns = false;
1271      GenerateFountains = false;
1272      GenerateDoor = false;
1273      GenerateTunnel = false;
1274      AltarPossible = false;
1275      Size = 5,5;
1276      UseFillSquareWalls = true;
1277      Flags = NO_MONSTER_GENERATION;
1278
1279      OTerrainMap
1280      {
1281        Pos = 1,1;
1282        Size = 3,3;
1283        Types
1284        {
1285          # = BLACK_GRANITE wall(BRICK_OLD);
1286        }
1287      }
1288      {
1289        ###
1290        #.#
1291        ###
1292      }
1293
1294      Square, Pos 2,2;
1295      {
1296        Items == EBONY_WOOD itemcontainer(CHEST|HEXAGONAL_LOCK) { Parameters = LOCKED; ItemsInside = { 2, Random { MinPrice = 500; Category = TOOL|WAND; }, Random { Chance = 75; MinPrice = 750; Times = 2; Category = HELMET|CLOAK|BODY_ARMOR|WEAPON|SHIELD|RING|GAUNTLET|BELT|BOOT; } } }
1297        Character = vampire;
1298      }
1299    }
1300  }
1301
1302  Level 2;
1303  {
1304    Square, Random NOT_WALKABLE|ATTACHABLE;
1305    {
1306      OTerrain = stairs(STAIRS_UP);
1307      EntryIndex = STAIRS_UP;
1308      AttachRequired = true;
1309    }
1310
1311    Square, Random NOT_WALKABLE|ATTACHABLE;
1312    {
1313      OTerrain = stairs(STAIRS_DOWN);
1314      EntryIndex = STAIRS_DOWN;
1315      AttachRequired = true;
1316    }
1317
1318    Square, Random;
1319    {
1320      Character = skeleton(WARRIOR);
1321    }
1322  }
1323
1324  Level 3;
1325  {
1326    Square, Random NOT_WALKABLE|ATTACHABLE;
1327    {
1328      OTerrain = stairs(STAIRS_UP);
1329      EntryIndex = STAIRS_UP;
1330      AttachRequired = true;
1331    }
1332
1333    Square, Random NOT_WALKABLE|ATTACHABLE;
1334    {
1335      OTerrain = stairs(STAIRS_DOWN);
1336      EntryIndex = STAIRS_DOWN;
1337      AttachRequired = true;
1338    }
1339  }
1340
1341  Level 4;
1342  {
1343    Description = "lost tomb";
1344    ShortDescription = "Lost Tomb";
1345    LevelMessage = "You hear rhythmic chanting of some profane ritual: \"Ia! Ia! Khaz-zadm fhtagn!\"";
1346    DifficultyBase = 100;
1347    DifficultyDelta = 0;
1348    ItemMinPriceBase = 100;
1349    ItemMinPriceDelta = 10;
1350
1351    Square, Random NOT_IN_ROOM|ATTACHABLE;
1352    {
1353      OTerrain = stairs(STAIRS_UP);
1354      EntryIndex = STAIRS_UP;
1355      AttachRequired = true;
1356    }
1357
1358    Room
1359    {
1360      Size = 11, 11;
1361      DoorSquare = GRANITE solidterrain(GROUND),IRON door;
1362      AltarPossible = false;
1363      DivineMaster = MORTIFER;
1364      GenerateDoor = true;
1365      GenerateTunnel = true;
1366      GenerateLanterns = false;
1367      AllowLockedDoors = true;
1368      Shape = ROUND_CORNERS;
1369      Flags = NO_MONSTER_GENERATION;
1370
1371      OTerrainMap
1372      {
1373        Size = 9, 9;
1374        Pos = 1, 1;
1375
1376        Types
1377        {
1378          b = 0;
1379          s = 0;
1380          C = coffin;
1381         }
1382      }
1383      {
1384        .........
1385        ...bbb...
1386        ..s...s..
1387        .b.....b.
1388        .b..C..b.
1389        .b.....b.
1390        ..s...s..
1391        ...bbb...
1392        .........
1393      }
1394
1395      ItemMap
1396      {
1397        Size = 9, 9;
1398        Pos = 1, 1;
1399
1400        Types
1401        {
1402          b == bone { Times = 1:4; }
1403          s == skull;
1404          C == 0;
1405         }
1406      }
1407      {
1408        .........
1409        ...bbb...
1410        ..s...s..
1411        .b.....b.
1412        .b..C..b.
1413        .b.....b.
1414        ..s...s..
1415        ...bbb...
1416        .........
1417      }
1418
1419      CharacterMap
1420      {
1421        Size = 9, 9;
1422        Pos = 1, 1;
1423
1424        Types
1425        {
1426          b = 0;
1427          s = 0;
1428          C = 0;
1429          N = necromancer(APPRENTICE_NECROMANCER) { Inventory = { 2, lantern, wand; } }
1430          Z = zombie(ZOMBIE_OF_KHAZ_ZADM);
1431          p = dog(SKELETON_DOG);
1432         }
1433      }
1434      {
1435        .........
1436        ...bbb...
1437        ..s...s..
1438        .b.N.p.b.
1439        .b..C..b.
1440        .b.p.Z.b.
1441        ..s...s..
1442        ...bbb...
1443        .........
1444      }
1445    }
1446
1447    Square, Random IN_ROOM;
1448    {
1449      Items == Random { Category = SCROLL; }
1450    }
1451  }
1452}
1453