Zot trap sound messages were being sent to the wrong channel, fixed.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1403 c06c8d41-db1a-0410-9941-cceddc491573
OVDIHWR5FEPTBZCTEAXNPB4MYP5NUNPQMC6UM4F6SC4EBGWH3DSQC
XZLW6TCNFL3HFCLJJY7O6BMP7LLRJB44ZJHJCQIYD6GPVVBLZFHQC
AAAUQAV76BL63J4HPATVE67LJD4L6OES4A2XODS2OGISOFYQY3XQC
OTAXEUGHFR5A4NAUA3HDTIOQZO7E4MFX6ILDID3DHFEAOWUWRZ4QC
YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC
JGHLI3F3AEQ7XIRZUVGCA45KCONYFGMTGYIXYVIRI2FTWGVK73CAC
OAPAH3WEFTT2T7NVSSENRR5JCIZYA6UZSQQ6LQEHAAXCX6FIM7HQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
WX535AVP7MD2BYA3NAU3VPV7QN6JOCE4JHDRMXKYNRIW7V2UOHJAC
C52GDIYN6W4WNYL2QV7L7OKFBVLPFSBQAEBCX44PAXCZ5H7JXCJQC
JDM27QE4HR52AYFSQE763BFF57ANOTF5MXKMO377PP5EXMN7SAOAC
SVUM62ARSXH6RUBFRWS6KAQC7PTNTMGSV2GPZJQQJ4GNEML2HBVQC
L6O4LGZRKBURVWEY7XRVCSQLJ5RULNBEWMQJ6I2UYVWWB66FM3MQC
KCHX2F3JFEWOZT3WMJVZAAQUU2QSZ5Q7RDCD7WUJ7VE65J52JFUQC
JQFQX7IWSJ4TYWVUVXAFMCPSAN67PRMNECDQI5WMON2JFMQVVUEQC
LY6WZIBS6CVHJQJGFPTFGA74PGXM4MJ7GDDPGRK73E4RCXOVNUIQC
U7BN4TQ36FIOAGBVWQ4A6VXFZN2GETLGCLD4E3MCBA7OQ3TXYUXQC
KFJEFN377VIZ7OH2XCYOGCELNEGO4CIOOP7DNXEMX3LFKIKWXVTAC
LS3DAZVRDCXVN2BKBC6RGCKO3R43Z7HKG4GXJWLBK4AKBL2G6QDQC
I5N4EIR6SCLLRGKRBUKW5FKUVYK62EA5DOWIAS5XFIHZQKMCXWBAC
MI7CWKRDXHAU7PIHLXXOSFBULRGT2OOMIMOSQLMVYOUVGABIVXGAC
RIRJ746W5ESARX4HUEA4JRVAKXXF3WYVXUCFFONPJMMKWHQAGI2AC
7J3H7JY6AUO2UHNF6DAHDZI4O33JMTUUTYTPRM3CKNPUOF2RQOGAC
3DRML4TAWIPPWCXCCXTPWV33SZCRSC2I6DWGAEUNJF7ZOIIWA35QC
A3CO4KBFTFU3ZSHWRY2OPPX3MMTFV7OUCZGL7Q4Y2FU7JO4AP7MAC
QPF4HHRIRNZTEJUMRMB7EFYRF6RT6CTJECAAWRXV7EKHUEO77V7QC
CN42LZS44WQESLCPIYQ5FJ3RE7TPPDREDQ4GAQYI2BJNO5NMXH6QC
IOSNCCW2K2IKIORI3Y37Z7OC6ESR3KEKQDP7JMJQW7BNRBC2MX6AC
HGBRLCY5HZJNSTQ4UVZ3U4HHEVITJ7P374VQ7CQ7WAN3YARCWLNQC
JRYVXGKB63GQ7O2MV4FSFPW3ZW7DZ36VRBCIGPEH44J4XYV22I3AC
6UKWC6MVT24J5QBFVFMORHHMHWQMS7TP77OJSRYNCFQGKTWBCKPAC
YMNWB2JPFFAEHTFKXSKBILNBPH7MLI627QUXZS462VEZJDS263DQC
UPSO7EF3NRXCZ46AOOWCGK6WZU5NJB4ZUH6JOV344KSNHNV2X32AC
55F3WPRLVULKMXZPSACPON6H7SBEVNNZNQ2MOOISD2FKAQTRLYFAC
EEPNZ3SHGXQ4NKLSWHI7X2WK3LU3AR2EDZZFFDGOXQQBK5LO5OYAC
25V4IA67QFLZRTBPZLHZ7R2VTFRBBQBE3IS4ASN5BJRBXPEHSALQC
FOCWL2MOKK6BNARCKZIN6DPTOYRFILRJLURUT2JBORS25MMVGGSQC
UFLQ2LXPSQHE3XF57FPHQZIQPJUCFHB3Y5DMNZMRHOCV4LYKJGGQC
DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC
TY6JR6MSAREXQ3JH44ILKPYBVVCBVDXWD2UA74RLIDULCU23XRHQC
6L4EP4ZRWWYLT55PD5KTTJON5J2JB5VV5MWNHF5VPZQZ5BKEYZ4QC
##############################################################################
# Random vaults, minivaults and canonical entry vaults go here; asciiart
# entry vaults go in asciiart.des and "edgy" entry vaults go in tricky.des.
# Special levels (including V:8!) should go to splev.des. Do NOT put special
# levels here, or they could be selected when the game seeks random vaults.
#
# Key:
# ----
# x - DNGN_ROCK_WALL
# X - DNGN_PERMAROCK_WALL -> should always be undiggable! -- bwr
# c - DNGN_STONE_WALL
# v - DNGN_METAL_WALL
# b - DNGN_GREEN_CRYSTAL_WALL
# a - DNGN_WAX_WALL
# . - DNGN_FLOOR
# + - DNGN_CLOSED_DOOR
# = - DNGN_SECRET_DOOR
# @ - entry point - must be on outside and, except in ORIENT:float layouts,
# must always be on a particular side or sides - see templates
# W - shallow water
# w - deep water - Entry vault makers: this may receive water creatures!
# l - lava - Entry vault makers, note that this may receive lava creatures!
# (Use the no_monster_gen tag to prevent both of these effects.)
# >< - extra stairs - you can leave level by these but will never be placed o
# them from another level
# }{ - stairs 82/86 - You must be able to reach these from each other. The {
# upstair is also the stair on which the player will enter the dungeon for
# entry vaults.
# )( - stairs 83/87
# ][ - stairs 84/88
# I - orcish idol (does nothing)
# ^ - random trap
# ~ - random trap suitable for the branch and depth the map is being used.
#
# A - Vestibule gateway (opened by Horn).
# B - Altar. These are assigned specific types (eg of Zin etc) in dungeon.cc,
# in order.
# C - Random Altar.
# F - Typically a Granite Statue, but may be Orange or Silver (1 in 100)
# G - Granite statue (does nothing)
# H - orange crystal statue (attacks mind)
# S - Silver statue (summons demons). Avoid using (rare).
# T - Water fountain
# U - Magic fountain
# V - Permanently dry fountain
#
# $ - gold
# % - normal item
# * - higher level item (good)
# | - acquirement-level item (almost guaranteed excellent)
# O - place an appropriate rune here. For portal vaults, place the portal here.
# P - maybe place a rune here (50%)
# R - honeycomb (2/3) or royal jelly (1/3)
# Z - the Orb of Zot
#
# d-k - item array item. See section below on ITEM: arrays for more info.
#
# 0 - normal monster
# 9 - +5 depth monster
# 8 - (+2) * 2 depth monster (aargh!). Can get golden dragons and titans
# this way.
# 1-7 - monster array monster. See section below on MONS: arrays for more
# information
#
# A vault always has its body between MAP and ENDMAP commands. Furthermore,
# several other additional commands are possible (some of them mandatory).
#
# NAME:
# ----
# Each vault/level/map must have a unique name. Underscores and digits are ok.
#
# ORIENT: (north | northwest | ... | float | encompass)
# ------
# Some kind of ORIENT: line is mandatory, unless you want the vault to be a
# minivault, which is usually not what you want. Valid values are:
# "float": The dungeon builder will put your vault wherever it wants to.
# "some_direction": The vault will lie along the mentioned side of the map:
# xxxxxxxxxx xxxxxxxxxxxxx
# xORIENT:Nx xORIENT:NW|..
# x.VAULT..x x.VAULT...|..
# x--------x x---------|..
# xrest....x xrest........
# x...of...x x.....of.....
# x...levelx x.......level
# ...which brings us to padding. With any some_direction orientation, you need
# 6 layers of x-padding along any level-edge that the vault borders. For
# instance, if your map is ORIENT: north, you must have a 6 deep border of
# rock wall (or any other kind of wall) along the northern, eastern, and
# western edges of the map.
# "encompass": the vault completely occupies the entire level. Padding is
# needed on all 4 sides.
#
# ITEM:
# ----
# These are used to help place specified items at specific places within a
# vault. They create an array with up to 8 positions. What's in the first
# position in the array will be used when the dungeon builder sees a "d" in
# the vault definition, the second will be used for "e"s, etc. Positions are
# comma-separated; several ITEM: lines are possible as well.
# Positions can contain multiple possibilities, one of which the builder will
# choose randomly. Separate such multiple possibilities using a slash. Note
# that "nothing" (without the quotes) is a valid possibility. The random
# choice is done for each individual occurence of the letter.
# You can also give possibilities a "weight," which affects their chance of
# being picked. The default weight is 10. The chance to pick a possibility is
# [possibility's weight: / sum of all weight:s in that array position]
# Modifiers:
# "good_item" makes the builder try to make the item a good one.
# "any" by itself gives random choice; you can combine "any" with "good_item."
# "any book", "any misc" etc. gives a random item of that class.
#
# Limitations: You can't affect stack quantity for stackable items, nor can you
# affect curse status nor item race, nor can you give specific egos, nor can
# give fixedarts. You also can't lay down corpses, skeletons, or chunks.
#
# MONS:
# ----
# These are used to help place specific monsters at specific places in a
# vault. They create an array with up to 7 positions. What's in the first
# position in the array will be used when the dungeon builder sees a "1"
# in the vault definition, the second for "2," etc. Note that if, for
# example, you place a 3 on the map, but your MONS: line has no third
# position, the 3 will be filled with RANDOM_MONSTER.
# Individual monsters may be prefixed with the "generate_awake" (without
# the quotes). Use this sparingly.
# Note that 8, 9, 0 also place monsters (see the table above).
#
# CHANCE:
# ------
# For entry vaults and any other vaults randomly picked from among a set,
# this type of line affects the likelihood of the given vault being picked in
# a given game. The default CHANCE: is 10. The likelihood of a vault getting
# picked is:
# [vault's CHANCE: / sum of all CHANCE:s of vaults of that type]
# !!! Note for entry vault builders: really high values like CHANCE:5000
# almost guarantee that a vault will be picked, and thus are great
# for testing. !!!
#
# TAGS:
# ----
# Tags go an a TAGS: line and are space-separated. Valid tags are:
# "entry": this tag MUST be there for a vault to be pickable as an entry vault.
# "generate_awake": Monsters placed (using MONS, KMONS) in this vault will be
# generated awake.
# "no_item_gen": Prevents random item generation in the vault. Items
# explicitly placed by the vault are not affected.
# "no_monster_gen": Prevents random monster generation at the time of
# the vault's creation. Highly advised for entry vaults with
# a player-hostile geography, MUST-HAVE for those with water
# or lava.
# "no_pool_fixup": prevents water squares next to land from being randomly
# converted from deep water (the default) to shallow.
# "branch_entry" eg. "orc_entry", "lair_entry" etc. If chosen, these maps
# will contain the stairs for that branch. Use "O" to place
# the stairs. Branch entries should go to splev.des.
#
# FLAGS:
# -----
# Flags go on a FLAGS: line and are space-separated. Valid flags are:
# "no_rotate": Normally, the dungeon builder can, at its whim, rotate your
# vault. This flag tells it, "hey, don't do that to my vault!"
# "no_hmirror": Like no_rotate, but for horizontal mirroring.
# "no_vmirror": Like no_rotate, but for vertical mirroring.
#
# SHUFFLE:
# -------
# This allows you to randomly permute glyphs on the map. There are two ways:
# SHUFFLE: 123w (i.e. list of glyphs, NOT slash-separated)
# could, for example, swap all occurences of "1" with "2",
# as well as swapping all "3" with "w" (or any other of the 23
# possibilities).
# SHUFFLE: 12/3w (i.e. list of slash-separated blocks of same size)
# will either do nothing or swap all "1" with "3" and then also
# swap "2" with "w" everywhere.
#
# Several SHUFFLE: lines can be used, and mixed with SUBST:, and the shuffles
# and substitutions will be applied in order. You can also put multiple
# SHUFFLEs on one line, comma-separated. Shuffles cannot use , or /. All spaces
# are stripped before shuffling.
#
# SUBST:
# ------
# The SUBST: directive allows you to specify a placeholder symbol that is
# replaced with a random glyph from a set. For instance:
# SUBST: ? = TUV
# will replace occurrences of ? with one of TUV.
# SUBST: ? = T U V
# does the same thing - whitespace is not significant.
# SUBST: ? = T:20 U V
# makes T twice as likely to be used as U or V (the default weight
# is 10). Note that there has to be at least one space before and after
# T:20 and that whitespace in T:20 is not permitted.
# SUBST: ? : TUV
# replaces occurrences of ? with one of TUV, and guarantees that all
# occurrences of ? will get the same replacement symbol.
#
# The placeholder and replacement symbols can be any non-space, printable
# character, including : and =, apart from commas - "SUBST: = = +=:123def" is
# valid.
#
# SUBST: lines can safely replace symbols with themselves:
#
# SUBST: w = wW
#
# Multiple SUBST: lines can be used, and mixed with SHUFFLE:, and will be
# applied in order. Multiple substitutions can be performed on one line, using
# commas.
#
# KFEAT:
# -----
# The KFEAT: directive allows you to specify a placeholder symbol that is
# replaced with another symbol, named feature, trap, or shop. Eg.:
#
# KFEAT: Z = C / needle trap / antique armour shop / altar of Zin
#
# Replaces occurrences of Z with C (random altar), a needle trap, an
# antique armour shop, or an altar of Zin. Different instances of Z may
# receive different replacements. To force a single replacement for all Z,
# use:
#
# KFEAT: Z : C / needle trap / antique armour shop
#
# You'll notice that 'Z' is the symbol of the Orb of Zot. Kxxx directives
# allow you to assign arbitrary definitions to any symbol.
#
# The placeholder used by KFEAT can be shared by KITEM and KMONS. See below.
# If the placeholder is shared, all defined Kxxxx operations for the
# placeholder are performed.
#
# KMONS:
# -----
# KMONS: allows you to specify a placeholder symbol that indicates the
# position of a monster (or monsters).
#
# KMONS: ? = orc priest / deep elf priest
#
# Using KMONS: allows you to exceed the 7 slot limit for monsters. It is also
# useful if you want to place a monster on a non-floor square (used in
# association with a KFEAT:). Eg:
#
# KFEAT: Z = W
# KMONS: Z = rat
#
# (Places a rat on a shallow water square for all occurrences of Z.)
#
# KITEM:
# -----
# KITEM: places the specified item at all occurrences of the placeholder. It
# can be combined with KFEAT and KMONS for the same placeholder. Eg:
#
# KITEM: ? = potion of healing / potion of restore abilities
#
#
# Note that a lot of the vaults are in there mainly to add some
# interest to the scenery, and are not the lethal treasure-fests you
# find in Angband (not that there's anything wrong with that)
#
# Guidelines for creating new vault maps:
# ---------------------------------------
#
# If your map is not a minivault or a floating vault, make sure the side(s)
# forming the border have a rock wall padding at least 6 deep. For instance,
# if your map is ORIENT: north, you must have a 6 deep border of rock wall
# (or any other kind of wall) along the northern, eastern, and western edges
# of the map. If you're doing a fullscreen map (encompass), you must pad all
# around the map with 6 layers of wall. For ORIENT: encompass maps, you
# don't need to explicitly include the padding provided you make the map
# small enough that the padding can be provided automatically.
#
# You do not have to place all of the stairs unless the level is full screen,
# in which case you must place all except the extra stairs (> and <). The <>
# stairs can be put anywhere and in any quantities but do not have to be
# there. Any of the other stairs which are not present in the vault will be
# randomly placed outside it. Also generally try to avoid rooms with no exit.
#
# You can use the templates below to build vaults. The entry point '@' must
# be present (except full-screen vaults where it must not and orient:float
# maps, where it is optional - the builder will randomly convert '.' spaces
# on edges to entry points if needed) and be on an edge of the vault.
#
# Minivaults are handled very differently from regular vaults and special
# levels. They're placed *after* normal map generation, whereas normal
# vaults are placed before generating the rest of the level. There's no way
# to guarantee generation of a minivault on a particular level, whereas
# vaults can be forced to appear using a PLACE: attribute.
#
# I think that's all. Have fun!
#
###############################################################################
# vaults.des - entry vaults, random vaults, minivaults, pan vaults
# (entries for branches should go to splev.des,
# some entry vaults are better put in tricky.des or asciiart.des)
x...x....xxxxxx...xx...x....x...x
x...x....x.....[{(.....xxxxxx...x
x...x....x...xx...xx...x........x
x...xx...xx...xxxxx...xx...xxxxxx
x.........xx...x.....xx....x.....
x...x....xlllxx...xx...x....x...x
x...x....x...k.[{(.m...xffffx...x
x...x....x...xx...xx...x....e...x
x...xx...xx...xxnxx...xx...xxxxxx
x....c....xx...x.....xx....x.....
xxx....xxx.....x.......xxx....xxx
xxxx.....xxxx..x....xxxx.....xxxx
xxxxx.......xxxxx.xxx.......xxxxx
xxxxxxxx.......x.........xxxxxxxx
xxxxxxxxxxx....x......xxxxxxxxxxx
xxx....xxx.....d.......xxx....xxx
xxxx.....xxxx..d....xxxx.....xxxx
xxxxx.......xxxxxaxxx.......xxxxx
xxxxxxxx.......b.........xxxxxxxx
xxxxxxxxxxx....b......xxxxxxxxxxx
ENDMAP
#####################################################################
# Three rhombi
NAME: david_entry_012
TAGS: entry no_monster_gen
SHUFFLE: WYZ{/wyz(
SUBST: Z=x, Y=x, W=@, C==+x
SUBST: z=@, y=+, w=x
MAP
xxxZxxxxxxxxxx
xxxYxxxxxxxxxx
xxx.xxxx.xxxxx
xx...xx.x+xxxx
x..{..+xx.xxxx
xx...xxx...xxx
xxx.xxx.....xx
xxxCxx...(...W
xxx.xxx.....xx
xx...xxx...xxx
x..[..+xx.xxxx
xx...xx.x+xxxx
xxx.xxxx.xxxxx
xxxxxxxxxxxxxx
# A shrine (no altar)
NAME: david_entry_013
TAGS: entry no_monster_gen no_pool_fixup
SHUFFLE: AB/CD, lw
SUBST: A=@, B=+, C=x, D=l
MAP
xxxxxxxxCxxxxxxxx
xlllllllDlllllllx
xlllll.....lllllx
xll....WWW....llx
xl...WWW.WWW...lx
AB..WWW.{..WW..lx
xl...WWW.WWW...lx
xll....WWW....llx
xlllll.....lllllx
xlllllllllllllllx
xxxxxxxxxxxxxxxxx
ENDMAP
#####################################################################
..xcl.C.=....cx
..xcl...c....cx
..xcllllc....cx
..xcclllc...]cx
..xcccccccccccx
@{xxxxxxxxxxxxx
ENDMAP
NAME: david_entry_057_e_altar
TAGS: entry
ORIENT: float
SHUFFLE: {[
MONS: gnoll / orc priest, large zombie / giant beetle
CHANCE: 2
MAP
@.............@
..............[
..xxxxxxxxxxxxx
..xcccccccccccx
..xcclllc.2..cx
..xcllllc....cx
..xcl...c1...cx
SHUFFLE: YS/nN
SUBST: n=., N=@
SHUFFLE: XR/nN
SUBST: n=., N=@
SHUFFLE: WQ/nN
SUBST: n=., N=@
SHUFFLE: VP/nN
SUBST: n=., N=@
SHUFFLE: UO/nN
SUBST: n=., N=@
SUBST: Z=x,Y=x,X=x,W=x,V=x,U=x,T=x,S=x,R=x,Q=x,P=x,O=x
SUBST: u=x, v=x, w=x, y=x, z=x
SUBST: U=x, V=x, W=x, Y=x, Z=x
xxxxxxxxxx@xxxxxxxxxxxxxxxxxxxOxxxxxxxxx
xxxxxxxxxxx..xxxxxxxxx1xxxxxxUxxxxxxxxxx
xxxxxxxxxxxxx..xxxxxx111xxxxxUxxxxxxxxxx
xxxZZZxxxxxxxxx.xxxxxx1xxxxxxUxxxxxxxxxx
TZZxZxZxx555xx.xxxxxxx1xxxxxUxxxxxxxxxxx
xxxxxxxZxx5xxx.xxx..x1xxxxxUxxxxxxxxxxxx
xxxxxxxZxx5xxxx......xxxxxUUxxxxxxxxxxxx
xxxxxxxZxxx5xx...2...cccxxxUxxxxxxxxxxxx
xxxxxxZxxxx....2224..+$cxxUxxxxxxxxxxxxx
xxxxxxxZ.......2ll22.cccxxxUxxxxxxxxxxxx
xxxxxxxxx......3222.xxxxxxxUxxxxxxxxxxxx
xxxxxxxxxYxxxx2.......xx...xVVVVxxxxxxxx
xxxxxxxxYxxxx.......xx..xxxxxxxxVxxxxxxx
xxxxxxYYxxxxxXxxxxx.xxWxxxxxxxxxxVVxxxxx
xxxYxYxxxxxxXxxxxxxx.xxWxxxxxxxxxVxxxxxx
xYYYYxxxxxxxxXXXXXxxxxxxWxxxxxxxVxxxxxxx
xYxxxxxxxxxxxxxxxXXxxxxxxWWxxxxxxVVxxxxx
SxxxxxxxxxxxxxxxxxXxxxxxxxxWxxxxxxxVVVVP
xxxxxxxxxxxxxxxxXXxxxxxxxxxxWxxxxxxxxxxx
xxxxxxxxxxxxXXXXxxxxxxxxxxxxWxxxxxxxxxxx
xxxxxxxxxxxRxxxxxxxxxxxxxxxxQxxxxxxxxxxx
xxxxxxxxxxSxxxxxxxxxxxxxxxxxxxUxxxxxxxxx
xxxxxxxxxxxssxxxxxxxxx1xxxxxxuxxxxxxxxxx
xxxxxxxxxxxxxssxxxxxx111xxxxxuxxxxxxxxxx
xxxzzzxxxxxxxxxsxxxxxx1xxxxxxuxxxxxxxxxx
Zzzxzxzxx555xxsxxxxxxx1xxxxxuxxxxxxxxxxx
xxxxxxxzxx5xxx.xxx..x1xxxxxuxxxxxxxxxxxx
xxxxxxxzxx5xxxx......xxxxxuuxxxxxxxxxxxx
xxxxxxzxxxx5xx...2...cccxxxuxxxxxxxxxxxx
xxxxxxzxxxx....2224..+$cxxuxxxxxxxxxxxxx
xxxxxxxz.......2ll22.cccxxxuxxxxxxxxxxxx
xxxxxxxxx......3222.xxxxxxuxxxxxxxxxxxxx
xxxxxxxxxyxxxx2.......xxuuxxvvvvxxxxxxxx
xxxxxxxxyxxxx.......xx..vxvvxxxxvxxxxxxx
xxxxxxyyxxxxxrxxxxx.xxwxxvxxxxxxxvvxxxxx
xxxyxyxxxxxxrxxrxxxx.xxwxxxxxxxxxvxxxxxx
xyyyyxxxxxxxxrrxrrxxxxxxwxxxxxxxvxxxxxxx
xyxxxxxxxxxxxxxrxrrxxxxxxwwxxxxxxvvxxxxx
YxxxxxxxxxxxxxxxxxrxxxxxxxxwxxxxxxxvvxvV
xxxxxxxxxxxxxxxxrrxxxxxxxxxxwxxxxxxxxvxx
xxxxxxxxxxxxrrrrxxxxxxxxxxxxwxxxxxxxxxxx
xxxxxxxxxxxRxxxxxxxxxxxxxxxxWxxxxxxxxxxx
DEPTH: 5-12
MONS: giant beetle w:20 / giant cockroach w:30 / butterfly w:20 / bumblebee / giant centipede / giant mite w:30 / giant mosquito / giant blowfly / scorpion / redback w:5
DEPTH: 5-12
SUBST: 1 = 1:70 2:60 3:25
MONS: giant beetle w:20 / giant cockroach w:30 / butterfly w:20
MONS: bumblebee / giant centipede / giant mite w:30 / giant mosquito
MONS: giant blowfly / scorpion / redback w:5
ENDMAP
#############################################################################
# Oklob assault
NAME: oklob_1
DEPTH: 16-27
ORIENT: float
MONS: plant, oklob plant
SUBST: ? = 1 2:5 '
SHUFFLE: '"
SUBST: ' : w .:5
SUBST: " = .
MAP
.................
.................
......'''''......
.....''???''.....
....''?????''....
....''?????''....
.....''???''.....
......'''''......
.................
.................
NAME: vault_1
ORIENT: north
NAME: oklob_2
DEPTH: 18-27
ORIENT: float
MONS: plant, oklob plant
SHUFFLE: ]})yY / defzZ
SUBST: '=12w, "=ww.
SUBST: d=|*, e=|*, f=|*, y=., Y=@, z=x, Z=x
SHUFFLE: xxxc
MAP
yyyyyyYyyyyyy
xxxx.]}).xxxx
x'ww.....ww'x
x'"......."'x
x'"......."'x
x'"......."'x
x'"......."'x
x'"......."'x
x'ww.....ww'x
xxxxxx+xxxxxx
ENDMAP
#############################################################################
# Oklob shooting range
NAME: oklob_3
DEPTH: 21-27
ORIENT: float
SHUFFLE: ab" / AB'
SUBST: a=[, b=(, A=., B=., "=., ':>', '=>.
SHUFFLE: [{
SUBST: x : y:1 x:5 .:30
SUBST: x = x:2 .
SHUFFLE: xcv
SUBST: y = x
MONS: oklob plant / w:2 plant
MAP
xxxxxxxxxxxxxxx
xxxx...1...xxxx
xx...........xx
xx...........xx
x......"......x
x......'......x
x1...aA{Bb...1x
x......'......x
x......"......x
xx...........xx
xx...........xx
xxxx...1...xxxx
xxxxxxxxxxxxxxx
ENDMAP
#############################################################################
NAME: vault_1
ORIENT: north
MONS: shapeshifter, shapeshifter, glowing shapeshifter
MONS: silver statue, nothing
SUBST: E=E.
SHUFFLE: abcd, $*, |ABCDE, nm, 45
SUBST: A=., B=., C=., D=*, E=%, n=9, m=0
SUBST: a = = x:8, b = = x:30, c=x, d=x
SUBST: * = * |:1
SHUFFLE: opq
SUBST: o=+
SHUFFLE: pqrs
SUBST: p=+, q=+, r=x, s=x
SHUFFLE: xxxxc
xxxxxxxxxxxx....x........x........x.................................xxxxxxxxxxxx
xxxxxxxxxx|=8...x........+........x......x....x1...x2...x2...x3...x...xxxxxxxxxx
xxxxxxxxxx|x....x........x........x....................................xxxxxxxxx
xxxxxxxxxxxx....xE.......x........x.................................xxxxxxxxxxxx
xxxxxxxxx%E+3...x........+........x......x....x1...x2...x2...x3...x..Dxxxxxxxxxx
xxxxxxxxx%Ex....x........x.......Ex..................................DDxxxxxxxxx
xxxxxxxxx.......+........3........xx+xx................................xxxxxxxxx
xxxxxxxxx.......x.................x...x..x....x1...x2...x2...x3...x...xxxxxxxxxx
xxxxxxxxx.......+........8........xx+xx..............................DDxxxxxxxxx
xxxxxxxxx.......x.................x...x..x....x1...x2...x2...x3...x..Dxxxxxxxxxx
xxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxx.........................x.S.x...xxxxxx..................|||||xxxxxxxxx
xxxxxxxxx....xxxxxxxxxxxxxxxxxx...x...x......xxxxxx..................||xxxxxxxxx
xxxxxxxxx....x...$$$$x****.999x...x...x.........xxxxxx.................xxxxxxxxx
xxxxxxxxx....+...$$$$x****....x...x...+............xxxxxx.........8....xxxxxxxxx
xxxxxxxxx....x...$$$$x****....+...x...x...............xxxxxx...........xxxxxxxxx
xxxxxxxxx....x...$$$$x****....x...x999x..................xxxxxx........xxxxxxxxx
xxxxxxxxx....xxxxxxxxxxxxxxxxxx...x...xxx...................xxxxxx.....xxxxxxxxx
xxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxxxxxxaxaxaxbxbxbxcxcxcxxxxxxxxxxxxx
xxxxxxxxx.........................x.4.x...xxxxxxEEE...............|||||xxxxxxxxx
xxxxxxxxx...xxxxxxxxxxxxxxxxxxx...x...x......xxxxxx..................||xxxxxxxxx
xxxxxxxxx...x....$$$$x****.mmmx...x...x.........xxxxxx.................xxxxxxxxx
xxxxxxxxx...+....$$$$x****....x...x...+............xxxxxx.........8....xxxxxxxxx
xxxxxxxxx...x....$$$$x****....+...x...x...............xxxxxx...........xxxxxxxxx
xxxxxxxxx...xnnn.$$$$x****....x...x999x..................xxxxxx........xxxxxxxxx
xxxxxxxxx...xxxxxxxxxxxxxxxxxxx...x...xxx...................xxxxxx.....xxxxxxxxx
xxxxxxxxxxxxx+xxxxxxxx+xxxxxxx+xxxx...xxxxxx+xxxxxxxx+xxxxxxxx+xxxxxxx=xxxxxxxxx
xxxxxxxxx.........x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxx.........x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxx.........x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxx....1....x...2...x...3...x...x....3....x....2...x......1......xxxxxxxxx
xxxxxxxxx.........x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxx.........x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxx.........x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxxxxxxx+xxxxxxx+xxxxxxx+xxxx...xxxxxxoxxxxxxxxpxxxxxxxxqxxxxxdxdxxxxxxxxx
xxxxxxxxxxx.......x.......x.......x...x.........xE.......x.............xxxxxxxxx
xxxxxxxxxxx.......x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxxxx.......x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxxxx...1...x...2...x...3...x...x....3....r....2...s......1......xxxxxxxxx
xxxxxxxxxxx.......x.......x.......x...x.........x........x.............xxxxxxxxx
xxxxxxxxxxxE.....ExE.....ExE.....Ex...x.........x........x.............xxxxxxxxx
xxxxxxxxxxxAAAAAAAxBBBBBBBxCCCCCCCx...xE.......ExE.......x............Exxxxxxxxx
# splev.des: special levels definitions.
#
# If you want to define random vaults and minivaults, they should go
# to vaults.des.
#
# Key:
# ----
# x - DNGN_ROCK_WALL
# X - DNGN_PERMAROCK_WALL -> should always be undiggable! -- bwr
# c - DNGN_STONE_WALL
# v - DNGN_METAL_WALL
# b - DNGN_GREEN_CRYSTAL_WALL
# a - DNGN_WAX_WALL
# . - DNGN_FLOOR
# + - DNGN_CLOSED_DOOR
# = - DNGN_SECRET_DOOR
# @ - entry point - must be on outside and, except in ORIENT:float layouts,
# must always be on a particular side or sides - see templates
# W - shallow water
# w - deep water - Entry vault makers: this may receive water creatures!
# l - lava - Entry vault makers, note that this may receive lava creatures!
# (Use the no_monster_gen tag to prevent both of these effects.)
# >< - extra stairs - you can leave level by these but will never be placed o
# them from another level
# }{ - stairs 82/86 - You must be able to reach these from each other. The {
# upstair is also the stair on which the player will enter the dungeon for
# entry vaults.
# )( - stairs 83/87
# ][ - stairs 84/88
# I - orcish idol (does nothing)
# ^ - random trap
# ~ - random trap suitable for the branch and depth the map is being used.
#
# A - Vestibule gateway (opened by Horn).
# B - Altar. These are assigned specific types (eg of Zin etc) in dungeon.cc,
# in order.
# C - Random Altar.
# F - Typically a Granite Statue, but may be Orange or Silver (1 in 100)
# G - Granite statue (does nothing)
# H - orange crystal statue (attacks mind)
# S - Silver statue (summons demons). Avoid using (rare).
# T - Water fountain
# U - Magic fountain
# V - Permanently dry fountain
#
# $ - gold
# % - normal item
# * - higher level item (good)
# | - acquirement-level item (almost guaranteed excellent)
# O - place an appropriate rune here. For portal vaults, place the portal here.
# P - maybe place a rune here (50%)
# R - honeycomb (2/3) or royal jelly (1/3)
# Z - the Orb of Zot
#
# d-k - item array item. See section below on ITEM: arrays for more info.
#
# 0 - normal monster
# 9 - +5 depth monster
# 8 - (+2) * 2 depth monster (aargh!). Can get golden dragons and titans
# this way.
# 1-7 - monster array monster. See section below on MONS: arrays for more
# information
#
# A vault always has its body between MAP and ENDMAP commands. Furthermore,
# several other additional commands are possible (some of them mandatory).
#
# NAME:
# ----
# Each vault/level/map must have a unique name. Underscores and digits are ok.
#
# ORIENT: (north | northwest | ... | float | encompass)
# ------
# Some kind of ORIENT: line is mandatory, unless you want the vault to be a
# minivault, which is usually not what you want. Valid values are:
# "float": The dungeon builder will put your vault wherever it wants to.
# "some_direction": The vault will lie along the mentioned side of the map:
# xxxxxxxxxx xxxxxxxxxxxxx
# xORIENT:Nx xORIENT:NW|..
# x.VAULT..x x.VAULT...|..
# x--------x x---------|..
# xrest....x xrest........
# x...of...x x.....of.....
# x...levelx x.......level
# ...which brings us to padding. With any some_direction orientation, you need
# 6 layers of x-padding along any level-edge that the vault borders. For
# instance, if your map is ORIENT: north, you must have a 6 deep border of
# rock wall (or any other kind of wall) along the northern, eastern, and
# western edges of the map.
# "encompass": the vault completely occupies the entire level. Padding is
# needed on all 4 sides.
#
# ITEM:
# ----
# These are used to help place specified items at specific places within a
# vault. They create an array with up to 8 positions. What's in the first
# position in the array will be used when the dungeon builder sees a "d" in
# the vault definition, the second will be used for "e"s, etc. Positions are
# comma-separated; several ITEM: lines are possible as well.
# Positions can contain multiple possibilities, one of which the builder will
# choose randomly. Separate such multiple possibilities using a slash. Note
# that "nothing" (without the quotes) is a valid possibility. The random
# choice is done for each individual occurence of the letter.
# You can also give possibilities a "weight," which affects their chance of
# being picked. The default weight is 10. The chance to pick a possibility is
# [possibility's weight: / sum of all weight:s in that array position]
# Modifiers:
# "good_item" makes the builder try to make the item a good one.
# "any" by itself gives random choice; you can combine "any" with "good_item."
# "any book", "any misc" etc. gives a random item of that class.
#
# Limitations: You can't affect stack quantity for stackable items, nor can you
# affect curse status nor item race, nor can you give specific egos, nor can
# give fixedarts. You also can't lay down corpses, skeletons, or chunks.
#
# MONS:
# ----
# These are used to help place specific monsters at specific places in a
# vault. They create an array with up to 7 positions. What's in the first
# position in the array will be used when the dungeon builder sees a "1"
# in the vault definition, the second for "2," etc. Note that if, for
# example, you place a 3 on the map, but your MONS: line has no third
# position, the 3 will be filled with RANDOM_MONSTER.
# Individual monsters may be prefixed with the "generate_awake" (without
# the quotes). Use this sparingly.
# Note that 8, 9, 0 also place monsters (see the table above).
#
# CHANCE:
# ------
# For entry vaults and any other vaults randomly picked from among a set,
# this type of line affects the likelihood of the given vault being picked in
# a given game. The default CHANCE: is 10. The likelihood of a vault getting
# picked is:
# [vault's CHANCE: / sum of all CHANCE:s of vaults of that type]
# !!! Note for entry vault builders: really high values like CHANCE:5000
# almost guarantee that a vault will be picked, and thus are great
# for testing. !!!
#
# TAGS:
# ----
# Tags go an a TAGS: line and are space-separated. Valid tags are:
# "entry": this tag MUST be there for a vault to be pickable as an entry vault.
# "generate_awake": Monsters placed (using MONS, KMONS) in this vault will be
# generated awake.
# "no_item_gen": Prevents random item generation in the vault. Items
# explicitly placed by the vault are not affected.
# "no_monster_gen": Prevents random monster generation at the time of
# the vault's creation. Highly advised for entry vaults with
# a player-hostile geography, MUST-HAVE for those with water
# or lava.
# "no_pool_fixup": prevents water squares next to land from being randomly
# converted from deep water (the default) to shallow.
# "branch_entry" eg. "orc_entry", "lair_entry" etc. If chosen, these maps
# will contain the stairs for that branch. Use "O" to place
# the stairs. Branch entries should go to splev.des.
#
# FLAGS:
# -----
# Flags go on a FLAGS: line and are space-separated. Valid flags are:
# "no_rotate": Normally, the dungeon builder can, at its whim, rotate your
# vault. This flag tells it, "hey, don't do that to my vault!"
# "no_hmirror": Like no_rotate, but for horizontal mirroring.
# "no_vmirror": Like no_rotate, but for vertical mirroring.
#
# SHUFFLE:
# -------
# This allows you to randomly permute glyphs on the map. There are two ways:
# SHUFFLE: 123w (i.e. list of glyphs, NOT slash-separated)
# could, for example, swap all occurences of "1" with "2",
# as well as swapping all "3" with "w" (or any other of the 23
# possibilities).
# SHUFFLE: 12/3w (i.e. list of slash-separated blocks of same size)
# will either do nothing or swap all "1" with "3" and then also
# swap "2" with "w" everywhere.
#
# Several SHUFFLE: lines can be used, and mixed with SUBST:, and the shuffles
# and substitutions will be applied in order. You can also put multiple
# SHUFFLEs on one line, comma-separated. Shuffles cannot use , or /. All spaces
# are stripped before shuffling.
#
# SUBST:
# ------
# The SUBST: directive allows you to specify a placeholder symbol that is
# replaced with a random glyph from a set. For instance:
# SUBST: ? = TUV
# will replace occurrences of ? with one of TUV.
# SUBST: ? = T U V
# does the same thing - whitespace is not significant.
# SUBST: ? = T:20 U V
# makes T twice as likely to be used as U or V (the default weight
# is 10). Note that there has to be at least one space before and after
# T:20 and that whitespace in T:20 is not permitted.
# SUBST: ? : TUV
# replaces occurrences of ? with one of TUV, and guarantees that all
# occurrences of ? will get the same replacement symbol.
#
# The placeholder and replacement symbols can be any non-space, printable
# character, including : and =, apart from commas - "SUBST: = = +=:123def" is
# valid.
#
# SUBST: lines can safely replace symbols with themselves:
#
# SUBST: w = wW
#
# Multiple SUBST: lines can be used, and mixed with SHUFFLE:, and will be
# applied in order. Multiple substitutions can be performed on one line, using
# commas.
#
# KFEAT:
# -----
# The KFEAT: directive allows you to specify a placeholder symbol that is
# replaced with another symbol, named feature, trap, or shop. Eg.:
#
# KFEAT: Z = C / needle trap / antique armour shop / altar of Zin
#
# Replaces occurrences of Z with C (random altar), a needle trap, an
# antique armour shop, or an altar of Zin. Different instances of Z may
# receive different replacements. To force a single replacement for all Z,
# use:
#
# KFEAT: Z : C / needle trap / antique armour shop
#
# You'll notice that 'Z' is the symbol of the Orb of Zot. Kxxx directives
# allow you to assign arbitrary definitions to any symbol.
#
# The placeholder used by KFEAT can be shared by KITEM and KMONS. See below.
# If the placeholder is shared, all defined Kxxxx operations for the
# placeholder are performed.
#
# KMONS:
# -----
# KMONS: allows you to specify a placeholder symbol that indicates the
# position of a monster (or monsters).
#
# KMONS: ? = orc priest / deep elf priest
#
# Using KMONS: allows you to exceed the 7 slot limit for monsters. It is also
# useful if you want to place a monster on a non-floor square (used in
# association with a KFEAT:). Eg:
#
# KFEAT: Z = W
# KMONS: Z = rat
#
# (Places a rat on a shallow water square for all occurrences of Z.)
#
# KITEM:
# -----
# KITEM: places the specified item at all occurrences of the placeholder. It
# can be combined with KFEAT and KMONS for the same placeholder. Eg:
#
# KITEM: ? = potion of healing / potion of restore abilities
#
#
# Note that a lot of the vaults are in there mainly to add some
# interest to the scenery, and are not the lethal treasure-fests you
# find in Angband (not that there's anything wrong with that)
#
# Guidelines for creating new vault maps:
# ---------------------------------------
#
# If your map is not a minivault or a floating vault, make sure the side(s)
# forming the border have a rock wall padding at least 6 deep. For instance,
# if your map is ORIENT: north, you must have a 6 deep border of rock wall
# (or any other kind of wall) along the northern, eastern, and western edges
# of the map. If you're doing a fullscreen map (encompass), you must pad all
# around the map with 6 layers of wall. For ORIENT: encompass maps, you
# don't need to explicitly include the padding provided you make the map
# small enough that the padding can be provided automatically.
#
# You do not have to place all of the stairs unless the level is full screen,
# in which case you must place all except the extra stairs (> and <). The <>
# stairs can be put anywhere and in any quantities but do not have to be
# there. Any of the other stairs which are not present in the vault will be
# randomly placed outside it. Also generally try to avoid rooms with no exit.
#
# You can use the templates below to build vaults. The entry point '@' must
# be present (except full-screen vaults where it must not and orient:float
# maps, where it is optional - the builder will randomly convert '.' spaces
# on edges to entry points if needed) and be on an edge of the vault.
#
# Minivaults are handled very differently from regular vaults and special
# levels. They're placed *after* normal map generation, whereas normal
# vaults are placed before generating the rest of the level. There's no way
# to guarantee generation of a minivault on a particular level, whereas
# vaults can be forced to appear using a PLACE: attribute.
# splev.des: special levels definitions, including branch ends,
# the Ecumenical Temple versions, pan levels and branch entries
##############################################################################
#############################################################################
# Vestibule of Hell and Geryon
xxxxxxxxxc.......?..?.......8.....XXX...1...XXX.....8.......?..?.......cxxxxxxxx
xxxxxxxxxcc.............?.........XX..1...1..XX.........?.............ccxxxxxxxx
xxxxxxxxxc.......?..?.....8.8.....XXX...1...XXX.....8.8.....?..?.......cxxxxxxxx
xxxxxxxxxcc.8...........?.........XX..1...1..XX.........?...........8.ccxxxxxxxx
xxxxxxxxxcc.....8...8............ccccccccccccccc............8...8.....ccxxxxxxxx
xxxxxxxxxxcc...................ccccccccccccccccccc...................ccxxxxxxxxx
xxxxxxxxxcc.....8.8.8..8.........ccccccccccccccc........8...8.8.8.....ccxxxxxxxx
xxxxxxxxxxcc...............8...ccccccccccccccccccc...8............8..ccxxxxxxxxx
xxxxxxxxxxcc.....8..8.......cc1...ccccccccccccc...1cc.......8..8.....ccxxxxxxxxx
xxxxxxxxxcc............8.8...ccc...ccccccccccc...ccc...8.8............ccxxxxxxxx
xxxxxxxxxc....8....8..........ccc...............ccc..........8....8....cxxxxxxxx
xxxxxxxxxc.......8....8...8.5.cxcc.............ccxc.5.8...8....8.......cxxxxxxxx
xxxxxxxxxc..8.......8.........cxxc.............cxxc.........8.......8..cxxxxxxxx
xxxxxxxxxc.....8........8.....cxxcc.1...1...1.ccxxc..............8.....cxxxxxxxx
xxxxxxxxxc...8...8...8.....8..cxxxc...........cxxxc..8.....8...8...8...cxxxxxxxx
xxxxxxxxxc...............8....cxxcc...........ccxxc....8...............cxxxxxxxx
xxxxxxxxxcc...5..8....8......ccxxc.............cxxcc......8....8..5...ccxxxxxxxx
xxxxxxxxxxcc.......8....8...ccxxcc.............ccxxcc...8....8.......ccxxxxxxxxx
xxxxxxxxxxcc...8.8..8.8.....cc1...ccccccccccccc...1cc.......8..8.8.8.ccxxxxxxxxx
xxxxxxxxxcc.8...8......8.8...ccc...ccccccccccc...ccc...8.8.8..8.......ccxxxxxxxx
xxxxxxxxxc.8..8....8.8........ccc...............ccc.....8....8..8.8....cxxxxxxxx
xxxxxxxxxc..8..8.8....8.8.8.5.cxcc.............ccxc.5.8.8.8....8.8...8.cxxxxxxxx
xxxxxxxxxc..8.....8.8.......8.cxxc.............cxxc8........8.....8.8..cxxxxxxxx
xxxxxxxxxc.8...8......8.8.....cxxcc.1...1...1.ccxxc......8.......8.....cxxxxxxxx
xxxxxxxxxc8..8...8.8.8.8...8.8cxxxc...........cxxxc8.8..8..8.8.8...8.8.cxxxxxxxx
xxxxxxxxxc.....8.........8....cxxcc...........ccxxc....8.8.............cxxxxxxxx
xxxxxxxxxcc...5..8..8.8....8.ccxxc.............cxxcc8.....8....8..5.8.ccxxxxxxxx
xxxxxxxxxxcc8......8....8.8.ccxxcc.............ccxxcc.8.8....8....8..ccxxxxxxxxx
# Can be rotated!
ORIENT: encompass
SHUFFLE: ABCD[, Ww/Yy/Zz, Uu/Vv, Qq/Rr/Ss
SUBST: W=', w=c, Y=T, y=+, Z=T, z=+
SUBST: U=', u=c, V=T, v=+
SUBST: Q=', q=c, R=T, r=+, S=T, s=+
SHUFFLE: ])}def
SUBST: d=", e=", f="
SUBST: T = ^ .
SUBST: ' = ^ ':100
SUBST: ' = 1:5 2:5 3:1 .:89
SUBST: " = ^ ":50
SUBST: " = 2:3 3:1 .:96
# Number of ' symbols is 211+3=214, hence statistically in the lower
# circumference we'll have 10.7 mummies, another 10.7 guardian mummies
# and 2.1 mummy priests.
# Number of " symbols is 205+3=208, hence the upper circumference
# has in mean 4.0 mummy priests and 8.3 guardian mummies.
xxxxxxxxxxxxxxcc{...c......c.....3....c........c.......ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.....^c^........^c......2^c.......ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c...2.^+..2.....2^+^..2....+.......ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc.3.^c^.....c^.........c^2.....^c^......ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc...^+^.....c..........c........c...2...ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccc+ccccccccccccccccccccccccccccccc....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc..^.c.............................c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.............................c..3.ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c..ccc4.................4ccc..c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c..ccc...................ccc..c..2.ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c..ccc.........1.........ccc..c)..}ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc.3..c..ccc.....2.......2.....ccc..cccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.............................c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.............................c^2..ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c........c...........c........+....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc]...c.............................c^2..ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccc.....3........(........3.....c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.............................c.^.^ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc...^c........c...........c........ccc+cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....+.............................c..^.ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc...^c.............................c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c..ccc.....2.......2.....ccc..c..2.ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccc..ccc.........1.........ccc..c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c..ccc...................ccc..c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc...^+..ccc4.................4ccc..c2...ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.............................c....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccc.............................c..2.ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....c.............................ccc+cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc....+cccc+ccccccccccccccc+ccccccccc.^.^ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc.1.^^.c.^..c............c^.......c.3...ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc...2..c.1..c.....1.1....c.....2..c.....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc......c....c..1......1.^c..2.....c...2.ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc..3...c.1..c...1...1..1^+........c.....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc......c....c[...........c.......3c.....ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c""""""c"""""{""""c""""""""c"""""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c"""""TcT""""""""TcT""""""TcT""""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c"""2"T+T""""""""T+T""2"""T+T""""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc"""TcT""""TcT""""""""TcT""""""TcT""""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""TT+T"""""c""""""""""c""""""""c"""""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccc+ccccccccccccccccccccccccccccccc""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""TTc.............................c"3""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c.............................c""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""3"c..ccc4.................4ccc..c"""fccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c..ccc...................ccc..c""""ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c..ccc.........1.........ccc..c)""}ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c..ccc.....2.......2.....ccc..cccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c.............................c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcce"""c.............................cT'''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc""""c........c...........c........+T'''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc]""dc.............................cT'''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccc.....3........(........3.....c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc''''c.............................c'QQQccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'''Tc........c...........c........cccqcccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'''T+.............................c'QQQccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'''Tc.............................c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'ZZZc..ccc.....2.......2.....ccc..c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccczcc..ccc.........1.........ccc..c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'ZZZc..ccc...................ccc..c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccA'''c..ccc4.................4ccc..c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'YYYc.............................c''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccycc.............................cRRR[ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'YYYc.............................ccrccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc''''ccccc+ccccccccccccccc+cccccccccRRR'ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc''''''c'TTTc''''''''''''cTT''''''c'''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'''''WcW''UcU''''''''''VcV''''''ScS''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'''''WwW''UuU''''''''''VvV''''''SsS''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcc'''''WcW''UcU''''''''''VcV''''''ScS''''ccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccB'''''c''''cC'''''''''''c''''''''c''''Dccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccc....cc................cc....cccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccc.......cc22222222222222cc......$cccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccc....^.....cc............cc..^.....$ccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccc.^.........cc..........cc.....^.^.$ccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc$...^...^..^.cc........cc..........$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc$$$...........cc222222cc.^........$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc|$$$...........c......c.....^...$$$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc||$$$$...^.....c......c^......$$$$$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc|||||$$.....^..c......c......$$$$$$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccc|||||$........c......c...^.$$$$$$$$ccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccc||||$$..^....c......c.....$$$$$$$cccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccc||||$.......c......c.....$$$$$$ccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccc|||$$....^.c......c.^.^$$$$$$cccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccc|||$^....cc..{...cc...$$$$$ccccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccccc||$.....cc...(..cc..$$$$$cccccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccccc|$...cccc..[...cccc$$$$ccccccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccc""""cc................cc""""cccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccc"""""""cc22222222222222cc"""""'$cccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccc""""""""""cc............cc"""""""'$ccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccc'""""""""""cc..........cc""""""""'$ccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc$''""""""""""cc........cc"""""""""'$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc$$$'""""""""""cc222222cc""""""""''$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc|$$$''"""""""""c......c"""""""''$$$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc||$$$$'""""""""c......c""""""'$$$$$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccc|||||$$'"""""""c......c"""""'$$$$$$$$cccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccc|||||$'"""""""c......c""""'$$$$$$$$ccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccc||||$$'""""""c......c""""'$$$$$$$cccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccc||||$'""""""c......c""""'$$$$$$ccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccc|||$$'"""""c......c"""'$$$$$$cccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccc|||$'""""cc..{...cc""'$$$$$ccccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxccccccccc||$'""""cc...(..cc"'$$$$$cccccccccxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccccc|$'""cccc..[...cccc$$$$ccccccccccxxxxxxxxxxxxx
..........................................llxxxx
.........................................llllxxx
......................!!!................lll2xxx
....................!!!!!!!...............llllxx
..................!!!!!!!!!!!...............lllx
...............!!!!!!!!!!!!!!!!!.............llx
..............!!!!!!!!!?!!!!!!!!!.............lx
.............!!!!!!!!!???!!!!!!!!!.............x
............!!!!!!!!!?????!!!!!!!!!.............
...........!!!!!!!!!???????!!!!!!!!!............
..........!!!!!!!!!????O????!!!!!!!!!...........
...........!!!!!!!!!???????!!!!!!!!!............
............!!!!!!!!!?????!!!!!!!!!.............
x............!!!!!!!!!???!!!!!!!!!..............
x.............!!!!!!!!!?!!!!!!!!!...............
xx.............!!!!!!!!!!!!!!!!!................
xxxx3.............!!!!!!!!!!!...................
xxxxx3..............!!!!!!!.....................
xxxx13................!!!.......................
xxxxxx3.........................................
xxxxxxxxxx......................................
.....................'''''...............-llxxxx
..................'''''''''''...........-llllxxx
...............'''''''!!!'''''''........-lll2xxx
............''''''''!!!!!!!''''''''......-llllxx
...........'''''''!!!!!!!!!!!'''''''.......-lllx
..........'''''!!!!!!!!!!!!!!!!!'''''........llx
.........'''''!!!!!!!!!?!!!!!!!!!'''''........lx
........'''''!!!!!!!!!???!!!!!!!!!'''''........x
.......'''''!!!!!!!!!?????!!!!!!!!!'''''........
.......''''!!!!!!!!!???????!!!!!!!!!''''........
.......'''!!!!!!!!!????O????!!!!!!!!!'''........
.......''''!!!!!!!!!???????!!!!!!!!!''''........
.......'''''!!!!!!!!!?????!!!!!!!!!'''''........
x.......'''''!!!!!!!!!???!!!!!!!!!'''''.........
x........'''''!!!!!!!!!?!!!!!!!!!'''''..........
xx._......'''''!!!!!!!!!!!!!!!!!'''''...........
xxxx3......'''''''!!!!!!!!!!!'''''''............
xxxxx3......''''''''!!!!!!!''''''''.............
xxxx13_........'''''''!!!'''''''................
xxxxxx3_..........'''''''''''...................
xxxxxxxxxx...........'''''......................
xxxxxxxxxxxx....................................