###############################################################################
# spider.des: All maps and branch endings relating to the Spider.
#
# <<1>>      Entries
# <<2>>      Decorative vaults
# <<3>>      Monster-placing vaults
# <<4>>      Spider end vaults
#
###############################################################################
###############################################################################

: crawl_require('dlua/vault.lua')

# Functions for the spider trap and endvault loot
{{
function callback.spider_nest_trap(data, triggerable, triggerer, marker, ev)
  local x, y = marker:pos()
  local youpos = dgn.point(you.pos())
  local spiders = 0
  for p in iter.rect_iterator(dgn.point(x-1, y-1), dgn.point(x+1, y+1)) do
    if (dgn.mons_at(p.x, p.y) == nil and p ~= youpos and dgn.is_passable(p.x, p.y)) then
      if (dgn.create_monster(p.x, p.y, "generate_awake redback")) then
        spiders = spiders + 1
      end
    end
  end
 if (spiders > 0) then
   crawl.mpr("A basket of spiders falls from above!")
 end
end

function callback.spider_trap_warn(data, triggerable, triggerer, marker, ev)
    crawl.mpr("You notice webbing strewn about the room and hear a chittering noise in the background." , 1)
    crawl.more()
end

function setup_endvault_loot(e)
  e.item("potion of ambrosia pre_id")
  e.item(dgn.loot_potions)
  e.item("hat good_item w:20 / pair of gloves good_item / " ..
         "pair of boots good_item / scarf w:40 / orb w:40")
end
}}

###############################################################################
#
# <<1>> Spider entries.
#       All must have the spider_entry tag and place an enter_spider feature.
#
###############################################################################

NAME:   dummy_spider_entry
TAGS:   spider_entry transparent
KFEAT:  O = enter_spider_nest
MAP
O
ENDMAP

NAME:   spider_nest_entry_a
TAGS:   spider_entry patrolling no_monster_gen transparent
MONS:   redback / jumping spider
KFEAT:  O = enter_spider_nest
NSUBST: 1 = 2:1 / 3:. / * = 1.
MAP
.WWW.WWW.
W.WW.WW.W
WW.W.W.WW
WWW111WWW
...1O1...
WWW111WWW
WW.W.W.WW
W.WW.WW.W
.WWW.WWW.
ENDMAP

NAME:   spider_nest_entry_webs
TAGS:   spider_entry patrolling no_monster_gen transparent
MONS:   redback
KFEAT:  O = enter_spider_nest
KFEAT:  ^ = web
NSUBST: 1 = 1:1 / * = 1.
MAP
.......x.....
..^...xxx.^..
...1.^xxx....
.^..^xx^x....
....xx^^^....
.1..x^^^...^.
..^..^O^..1..
.x...^^^^....
xx^.1.x^^^...
x^^^^..xxx...
.xx^^...xxx..
..xxx........
ENDMAP

NAME:   spider_nest_entry_funnel_web
TAGS:   spider_entry patrolling no_monster_gen
MONS:   redback / culicivora, wolf spider / jumping spider w:20
KFEAT:  O = enter_spider_nest
KFEAT:  ^ = web
SUBST:  ^ = ^.
NSUBST: 1 = 1:1 / 1:11222 / 2:1.. / *:.
MAP
      xxxxxx
     xx1111x
   xxx.1O1xx
   x^^^...x
  xx^^^^^xx
 xx^^^^^xx
xx^^^^^xx
@..^^xxx
@.^xxx
@.xx
@@x
ENDMAP

NAME:   spider_nest_entry_trap_web_field
TAGS:   spider_entry patrolling no_monster_gen transparent
KFEAT:  O = enter_spider_nest
KFEAT:  ^ = web / floor
KFEAT:  ~ = web / w:20 floor
MAP
...~~~~~...
.~~~~~~~~~.
.~~~^^^~~~.
~~~^^^^^~~~
~~^^^^^^^~~
~~^^^O^^^~~
~~^^^^^^^~~
~~~^^^^^~~~
.~~~^^^~~~.
.~~~~~~~~~.
...~~~~~...
ENDMAP

NAME:   spider_nest_entry_rubble
TAGS:   spider_entry patrolling no_monster_gen transparent
KFEAT:  O = enter_spider_nest
KMONS:  1O = wolf spider / tarantella / redback / jumping spider / culicivora
SUBST:  x = ..xx^
KFEAT:  ^ = web
MAP
   xxxxx
 @xxxxxxxx
 x.xxxxxxx
xxx.xxxxxxx
xxxx.xxxxxx
xxxxxOxxxxx
xxxxxx1xxxx
xxxxxxxxxxx
 xxxxxxxxx
 xxxxxxxxx
   xxxxx
ENDMAP

NAME:   nicolae_spider_entry_tight_spaces
TAGS:   spider_entry no_pool_fixup no_monster_gen no_trap_gen
MONS:   redback / jumping spider / culicivora
KFEAT:  O = enter_spider_nest
KFEAT:  ^ = web
NSUBST: A = 2:x / ', 1 = 1:. / *:1
SUBST:  X = xxx', ' = .....^^1
MAP
 xxxxxxxxx
xxXxXxXxXxx
xXx'x'x'xXx
xx'x'xAx'xxx
x'xXxXxXx'xx
@..x'xAx.1.m@
@..'x'x'1O1m@
@..x'xAx.1.m@
x'xXxXxXx'xx
xx'x'xAx'xxx
xXx'x'x'xXx
xxXxXxXxXxx
 xxxxxxxxx
ENDMAP

NAME:   nicolae_spider_entry_non_spiders
TAGS:   spider_entry ruin_lair transparent
MONS:   scorpion w:20 / ribbon worm / clockroach
MONS:   demonic crawler / boulder beetle / torpor snail
KFEAT:  O = enter_spider_nest
NSUBST: 1 = 1:21 / *:1
MAP
...........
..xx...xx..
.xxxx.xxxx.
.xx1x.x1xx.
..xx1.1xx..
.....O.....
..xx1.1xx..
.xx1x.x1xx.
.xxxx.xxxx.
..xx...xx..
...........
ENDMAP

NAME: nicolae_spider_entry_orb_guardian
TAGS: spider_entry no_monster_gen no_pool_fixup no_trap_gen
KMONS: O = orb spider
KFEAT: O = enter_spider_nest
KFEAT: ^ = web
KPROP: 'W = no_tele_into
NSUBST: a = ..x / .
SUBST: W = w', X = x., Q = xxx@, ' = ...x, . = .....^
MAP
   QQQX@@XX
 xxxxxXX..XX
xxXXXXxxx..xx
xX.....a..''x
xx+wwW''''''xx
xX..wW''''''xx
xXO.wW''''''xx
xX..wW''''''xx
xx+wwW''''''xx
xX.....a..''x
xxXXXXxxx..xx
 xxxxxXX..XX
   QQQX@@XX
ENDMAP

NAME: hellmonk_spider_entry_not_the_bees
TAGS: spider_entry no_monster_gen no_trap_gen
MONS:  killer bee
KMONS: O = meliai
KFEAT: O = enter_spider_nest
KFEAT: ; = iron_grate
SUBST: A = ;., 1 = 1.
MAP
   .;;;.
 .;;.A.;;.
 ;...A...;
.;.1;;;1.;.
;..;1A1;..;
;AA;AOA;AA;
;..;1A1;..;
.;.1;;;1.;.
 ;...A...;
 .;;;;;;;.
ENDMAP

NAME:  hellmonk_spider_entry_life_and_decay
TAGS:  spider_entry no_monster_gen no_trap_gen ruin
MONS:  culicivora
:      dgn.delayed_decay(_G, '%', 'redback corpse')
KFEAT: O = enter_spider_nest
KFEAT: ^ = web
SUBST: . = ^:1 .:25
NSUBST: % = 1:1 / 1:% / * = 1%%%
MAP
  xxxxxxx@@@xxxxxxx
  xxxxxxxx.xxxxxxxx
 xxx%..xx.x.xx..%xxx
xxx....x.x.x.x....xxx
xx%...x.x.x.x.x...%xx
xxx....x.x.x.x....xxx
 xxx%..xx.x.xx..%xxx
  xxxxxxx%.%xxxxxxx
    xxxx.....xxxx
     xxx%...%xxx
      xxx...xxx
       xxxOxxx
        xxxxx
ENDMAP

NAME:    nicolae_spider_entry_lesser_pyramids
TAGS:    spider_entry transparent patrolling
MONS:    scorpion, redback / tarantella / jumping spider
KMONS:   O = pharaoh ant
KFEAT:   O = enter_spider_nest
NSUBST:  S = 1:1 / 1:2 / 2 = 112.. / .
SUBST:   x = xx.
MAP
       ...
       .x.
      ..x..
      .xxx.
     .......
     .x.S.x.
    ..x...x..
    .xxx.xxx.
   ...........
   .x.S...S.x.
  ..x.......x..
  .xxx..O..xxx.
 ...............
 .x.S.x.S.x.S.x.
..x...x...x...x..
.xxx.xxx.xxx.xxx.
.................
ENDMAP

###############################################################################
#
# <<2>> Decorative vaults.
#
###############################################################################

default-depth: Spider

NAME:   hangedman_spider_mandibles
TAGS:   extra transparent
# 59 inside blocks, 59 outside blocks.
NSUBST: x = 6:. / 9 = xx. / *:x
NSUBST: z = 4:. / 4:' / 9 = xxx''. / *:x
CLEAR:  '
MAP
      zzzzzzz
     zz.....zz
    zz...x...zz
    z...xxx...z
   zzx...x...xzz
  @z.x.......x.z@
 @z...xx...xx...z@
 z.....xx.xx.....z
 zx..xxx...xxx..xz
zz.x.x.......x.x.zz
z..xxx.......xxx..z
z..xx....x....xx..z
 z.x....xxx....x.z
z..x....xxx....x..z
z..xx....x....xx..z
zz..xx.......xx..zz
 zz.............zz
  zzzz..@.@..zzzz
ENDMAP

# Bah, bu bah, bu ba-ba-ba ba-ba-ba baa, bu ba-ba-ba buh.
NAME:    hangedman_spider_tarantella_strand
TAGS:    extra transparent
ORIENT:  north
MONS:    tarantella
# The size of the vault means this upped weight is actually akin
# to the usual vault weight. The vault is highly random and ends
# up being very unobtrusive for most Spider layouts, anyway.
WEIGHT:  25
# Very selectively, partially ruin the edge of the beats.
NSUBST:  A = 1:. / 2 = X / *:x, B = 1:. / 2 = X / *:x
NSUBST:  C = 1:. / 2 = X / *:x, D = 4:. / 4 = X / *:x
NSUBST:  E = 1:X / *:x, F = 1:X / *:x, G = 1:X / *:x
NSUBST:  H = 1:X / *:x, I = 1:X / *:x, J = 1:X / *:x
NSUBST:  K = 1:X / *:x, L = 1:X / *:x, M = 1:X / *:x
NSUBST:  N = 1:X / *:x, O = 1:X / *:x, P = 1:X / *:x
# Even random trimming can have weighed styles to it.
# TODO: the z SUBST here can generate pockets that will force a veto
SUBST:   z : ^<>, ^ = xx', < = xx''', > = x'
SUBST:   y : XYZ, X = xx., Y = xx..., Z = x.
SUBST:   X : %*|, % = xxx.., * = x., | = xx...
SUBST:   " : "`;, " = ..', ` = ...', ; = .'
CLEAR:   '
# The string here pushes the vault from the level border.
MAP
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
                             '
xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx
xyyyyyyyyyyyyyyyyxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
.................yzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
.................xyyyyyyyyyyyyyyyyyyxzzzzzzzzzzzzzzzzzzzzzzzzz
.AAAA....BBBB.............1.........yzzzzzzzzzzzzzzzzzzzzzzzzz
"AxxA.EE.BxxB.FF....................xyyyyyyyyyyyyyyyyyxzzzzzzz
"AxxA.EE.BxxB.FF..GG.......JJ.........................yzzzzzzz
.AAAA....BBBB.....GG.HH....JJ.KK......................xyyyyyyx
.....................HH.II....KK.LL..CCCC....NN...............
 .""..""..""..""........II.......LL..CxxC.MM.NN.OO.....DDDDDD.
                 ....................CxxC.MM....OO.PP..DxxxxD.
                 @"".""."".""."".""..CCCC..........PP..DxxxxD.
                                    ...................DxxxxD.
                                    @."".."".""."".""..DxxxxD.
                                                      .DDDDDD.
                                                      ........
                                                      ...""...
ENDMAP

NAME:    nicolae_spider_webbed_stairs
TAGS:    transparent
KFEAT:   ^ = web
: if you.depth() == 1 then
SUBST:   s = ]})
: elseif you.depth() == dgn.br_depth(you.branch()) then
SUBST:   s = [{(
: else
SUBST:   s = ]})[{(
: end
SHUFFLE: abcde/^._^^/..x^^/..x^x/.._x^/x^___/^x___/..^xx/x.xx^/^^__^/^^___/ \
         ^._x^/x.^^^/..^^x/x._^x/^^x^_
SUBST:   ab = ., cde = ^
CLEAR:   _
MAP
cdedc
dabad
ebsbe
dabad
cdedc
ENDMAP

NAME: nicolae_spider_circle_web
TAGS: transparent extra
MAP
       ......x
     ...xxxxxx..
    ..xx.....xx..
   .xx......x..xx.
  .x....xxxxx....x.
 ..x...x....xx...x..
 .x...x....x..x...x.
xxx..x...xxx...x..x..
.x.xxx..x..xx...x..x.
.x..x.xxx.x..x..x..x.
.x..x..x.xxx.x..x..x.
.x..x..x..x.xxx.x..x.
.x..x...xx..x..xxx.x.
..x..x...xxx...x..xxx
 .x...x..x....x...x.
 ..x...xx....x...x..
  .x....xxxxx....x.
   .xx..x......xx.
    ..xx.....xx..
     ..xxxxxx...
       x......
ENDMAP

NAME:  nicolae_spider_webs_and_nodes
TAGS:  transparent extra
SUBST: D : .E, E : x .:5, F : .H, H : x .:5
MAP
             DDD
          ..DEEED
       .....DxxED
    ......xxxExED
 DDD...xxx...DDx..
DEEExxx.x......x..
DExxD....x.....x..
DExED....x......x..
 DDx.....xFF...xx..
 ..x....FHxHxxx.x..
 ..x....FxxxF....x..
  ..x.xxxHxHF....x..
  ..xx...FFx.....xDD
  ..x......x....DExED
   ..x.....x....DxxED
   ..x......x.xxxEEED
   ..xDD...xxx...DDD
    DExExxx......
    DExxD.....
    DEEED..
     DDD
ENDMAP

NAME:    nicolae_spider_stair_cavern
DEPTH:   Spider:2-
SHUFFLE: {[(
SUBST:   D = .x, . = .:100 ^:5
KFEAT:   ^ = web
MAP
  xxxxxxxxxx
 xxDDDDDDDDxxx
xxD.D...D.DDDxx
xD.D.DDD.D..DDxx
xDD.DDxDDDDD.DDxx
xD.DDDxxxxxDD.DDxx
xD.D.DDDDxxD.D.DDx
xDD.D...DDxDD.D..@
xxDDD.{..DxxDDDD.@
xDD.D...DDxDD.D..@
xD.D.DDDDxxD.D.DDx
xD.DDDxxxxxDD.DDxx
xDD.DDxDDDDD.DDxx
xD.D.DDD.D..DDxx
xxD.D...D.DDDxx
 xxDDDDDDDDxxx
  xxxxxxxxxx
ENDMAP

NAME:  nicolae_spider_checkerboard
TAGS:  transparent
SUBST: D = x:30 ., E = x .:30
MAP
.E.xxx.E.xxx.E.
E.ExxxE.ExxxE.E
.E.DxD.E.DxD.E.
xxD.E.DxD.E.Dxx
xxxE.ExxxE.Exxx
xxD.E.DxD.E.Dxx
.E.DxD.E.DxD.E.
E.ExxxE.ExxxE.E
.E.DxD.E.DxD.E.
xxD.E.DxD.E.Dxx
xxxE.ExxxE.Exxx
xxD.E.DxD.E.Dxx
.E.DxD.E.DxD.E.
E.ExxxE.ExxxE.E
.E.xxx.E.xxx.E.
ENDMAP

NAME:    nicolae_spider_spiderdrome
TAGS:    transparent
SHUFFLE: pqrsz/PQRSZ/FHJay/KLMNO
SUBST:   przs = ., q = x., PQKLFH = x, RMJD = xw, EZOy = w., SNa_ = x_
CLEAR:   _
MAP
__________sss__________
_xxxxxxxxxqpqxxxxxxxxx_
_xDDDDDDDDDrDDDDDDDDDx_
_xDEEEEEEEEzEEEEEEEEDx_
_xDE...............EDx_
_xDE...............EDx_
_xDE..EEEEEEEEEEE..EDx_
_xDE..EDDDDDDDDDE..EDQS
_xDE..EDxxxxxxxDE..ZRPS
_xDE..EDDDDDDDDDE..EDQS
_xDE..EEEEEEEEEEE..EDx_
_xDE...............EDx_
_xDE...............EDx_
_xDOEEEEEEEEEEEEEyEEDx_
_LMDDDDDDDDDDDDDDJDDDx_
NKLxxxxxxxxxxxxxHFHxxx_
NN______________aaa____
ENDMAP

NAME:  nicolae_spider_twisty_arc_passages
TAGS:  transparent
SUBST: D = x..
MAP
     ......   ........
    D...DD....D...DD......
   xxD.DxxD.DDxD.DxxDD.DDD.
  xxD..DxD.DxxxD..Dxxx.DxD.
 .DD..DxxD.DxDD....DDxDxxD.
 ...DDxxD..xxD..DDD.DxxxD..
 .DDxxxD..DxD..DxxxD.DxD..
.DxxxD....DxD.DxxDD..DxD.D
..DDD.xxD.DxD.DxD.....D..D
..DD..DxxDDxD..DD..DDDD...
.DxxD..DxxDxxD.DxDDxxxxDD..
 .DD..D.DD.xD..DxxxxDDDDxD.
 .DD.D.....D.DD.DxxD....D..
.DxxD..DDD.DDxxD.DxD.D..D..
..DxxDDxxxDxxxD........DxD.
.DxxxxxxDxxxDD.D..DDDDDxxD.
..DDxxD.DxD......DxxxxxxxD.
....DxxD.xxD.D..DxxDDDDDD.
.DDD.DxD.DxD..DDxxD....Dx
.DxD.DxD..D..DxxxD...Dxxx
 DxD..D.D..D..DDD..D..D
     .. ....  .......
ENDMAP

###############################################################################
#
# <<3>> Monster-placing vaults.
#
###############################################################################

NAME:    spiders_nest_a
TAGS:    no_item_gen no_monster_gen no_pool_fixup
DEPTH:   Spider, !Spider:$
WEIGHT:  5
ORIENT:  southeast
MONS:    scorpion
MONS:    scorpion / emperor scorpion w:1
MONS:    redback / nothing w:25
MONS:    redback / wolf spider
MONS:    culicivora / jumping spider / tarantella w:30
MONS:    emperor scorpion / demonic crawler / nothing
MAP
@@@x
@..xxx
@...xxx       xxxxxxxx
xx...xxxxx   xxWWWWxxxxx
 xx...xxxxx xxxWW.Wxxxxxxxx
  xx...xxxxxxxxW.3.xxxxxxxxxxxxxxx
   xx....xxxxx......xxxxxxxxxxxxxxxxxx
   xxx...xxxx...xx...xxxxxxxxxxxxxxxxx
   xxx....xx...xxxx...xxxxxW4**xxxxxxxx
    xxxx.1111.xxxxxx..WWWxxWW4*xxxxxxxxx
     xxxx1111xxxxxxxx..WWxxWWW4xxxxxxxxxxx
      xxx1111xxxxxxxx...WxxWWWWxxxxxxxxxxx
     xxx.1111.xxxxxx..3.WxxxWWxxxxxxxxxxxx
    xxx...xx...xxxx.....xxxxWWxxxxxxxxxxxx
  xxxx...xxxx...xx...x..xxxxWWxxxxxxxxxxxx
  xW....xxxxxx.2222.xx..xxxWWWWxxxxxxxxxxx
 xx....xxxxxxxx2222xxx..xxxWWWWxxxxxxxxxxx
 xx..3.xxxxxxxx2222xxx..xxxW..Wxxxxxx.**xx
xxxW....xxxxxx.2222.xx..xx.....Wxxxxx..*xx
xxxxxx...xxxx...xx...x..x...xx..Wxxx....xx
 xxxxxx...xx...xxxx........xxxx..Wx...xxxx
  xxxxxx......xxxxxx..44..xxxxxx.55..xxxxx
  xxxxxxx............4554.......5665xxxxxx
  xxxxxxxW..3........4554.......5665xxxxxx
 xxxxxxxxWW..xxxxxxxW.44.Wxxxxxx.55.xxxxxx
 xxxxxxxxxxxxxxxxxxxWW..WWxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

# Scorpion Pit Map by 7hm
# Two corridors leading into a scorpion pit.
NAME:   spiders_nest_scorpion_pit
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: southeast
DEPTH:  Spider, !Spider:$
KMONS:  1 = hornet
KMONS:  2 = scorpion / wolf spider w:3
KMONS:  3 = redback / nothing w:15
KMONS:  74 = redback / wolf spider / nothing w:15
KMONS:  5 = jumping spider / tarantella w:20
KMONS:  6 = emperor scorpion / scorpion
KMONS:  M = fungus
KFEAT:  14 = W
SUBST:  W = WW. , * = %%**WM , X = xxW
SUBST:  _ : __x     , - : --x     , ' : ''x     , " : ""x
NSUBST: _ = 2:x/*:. , - = 1:x/*:. , ' = 1:x/*:. , " = 2:x/*:.
MAP
                          xxxxxxxxxxxx
          xxxxxxxxxxxxxxxxxxxxx''xxxxx
         xxxxxXXX...WWWWWWxwww1x'xxxxx
        xxxXWWWW...2WW....wwwww''xxxxx
    xxxxxxxW...WWXXXxxxxWW.wxxxxxxxxxx
   xxxxxxxX.WW2XXxxxx**xxWWxxxxxxxxxxx
   x1wxxxXWWXXxxxxxx7**xx++xxxxxxxxxxx
  xxwwwxxWWxxxxwwxxx+xxxx..Wxxxxxx""xx
xxxxxwwxx++xwwwwww4x6xxx5..*Wwwww1""xx
@..xxx.WW.WWWwwwww1x.3+...65*Wwwww1xxx
@..WWWWW.WWWWwwwww1x6xxx6..*Wwwww1""xx
@..xxx.WWWWWWwwwwxxx+xxxx..Wxxxxxx""xx
xxxxxxxxx++xwwww1xx**xxxx++xxxxxxxxxxx
   xxxxxx..xxwwwxx7**xxxxxWWxxxxxxxxxx
      xxXWWxxx1xxxxxxxxxxWWWxxxxxxxxxx
     xxxXWWxxxxxxX3WWWXXXWWxxxxxxxxxxx
   xxxxxXWWxxxxxxXWWWWW.WW.Wxxxxxxxxxx
  xxxxxxXWWWXxxxxXWWWWWW..WWwxxxxxxxxx
  x__xxxwW.WWWxxXXX..XXxxWWWwwxxxxxxxx
  x__xwwwwxW.WW.WW.3.Xxxxxxwwww--xxxxx
  x__4wwwxxxxx.WWWWxxxxxxxxxxw1x-xxxxx
  xxxxxxxxxxxxxxxxxxxxxxxxxxxxx--xxxxx
   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

# Spider Trap Map by 7hm
# Small winding map leading to a treasure room.  In the room is a
# basket of spiders trap.
NAME:   spiders_nest_spider_trap
TAGS:   no_item_gen no_monster_gen no_pool_fixup
NSUBST: z = 1:z / *:*
KMONS:  M = fungus
{{
 local tm = TriggerableFunction:new{func="callback.spider_nest_trap"}
 local wm = TriggerableFunction:new{func="callback.spider_trap_warn"}
 tm:add_triggerer(DgnTriggerer:new{type="player_move"})
 wm:add_triggerer(DgnTriggerer:new{type="player_move"})
 lua_marker('z', tm)
 lua_marker('Z', wm)
}}
SUBST:  W = Ww , * = %%$*..M
MONS:   wolf spider / redback w:15 / tarantella w:2 / nothing w:5
MAP
  xxxxx    xxxx
 xxxxxxx xxxxxxx
xx1....xxxWWWWxxx
xxW.1xW.x......1xx
xxW.xxxW..xxxxW.xx
 xxW.xx1xxxWWxx.xx
 xxxW.xxxxW....Wx
  xx1..xxxW.xx11xx
   xxxx.Wx1.Wxxxxx
    xxx.Wxxx.Wxxx
  xxxxW.xxxxx.W1xx
   xx1..x***xx.Wxx
 xxxx.Wxx***zxx.xx
.....xxx****zMZ.xx
..xxxx xxxxxxxxxx
@..xx   xxxxxxxx
ENDMAP

NAME:   spiders_nest_the_unseen
TAGS:   no_item_gen no_monster_gen
DEPTH:  Spider:3-
MONS:   patrolling ghost moth
SUBST:  | = %%d, * = ..%%d
ITEM:   potion of ambrosia pre_id
FTILE:  .$%d1 = floor_mystic_chasm
MAP
     ''''''''
    ''xxxxxx''
   ''xx$$$$xx''
  ''xx......xx''
 ''xx........xx''
 'xx..........xx'
''x*...........x'
'xx|1..........='
'xx|1..........='
''x*...........x'
 'xx..........xx'
 ''xx........xx''
  ''xx......xx''
   ''xx$$$$xx''
    ''xxxxxx''
     ''''''''
ENDMAP

NAME:   spiders_nest_ghost_moth_duel
TAGS:   no_item_gen no_monster_gen
DEPTH:  Spider:3-
MONS:   ghost moth, tarantella
ITEM:   potion of ambrosia pre_id q:1 / \
        potion of ambrosia pre_id q:2 w:5
KFEAT:  ^ = web
FTILE:  ` = floor_pebble_magenta
FTILE:  .12d^ = floor_mystic_chasm
MAP
    ''''''''
   ''xx``xx''
  ''xx....xx''
 ''xx......xx''
''xx........xx''
'xx....^^....xx'
'x....^xx^....x'
'x...^xxxx^...x'
'x.2.^xxxx^.2.x'
'x.22.^xx^.22.x'
'xx....^^....xx'
''xx...1....xx''
 ''xx......xx''
  ''xxddddxx''
   ''xxxxxx''
    ''''''''
ENDMAP

# Spider Web by Mumra
#
# Heavily edited from the original portal vault map.
NAME:    mumra_spider_spiderweb
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  float
DEPTH:   Spider, !Spider:$
WEIGHT:  5
# Water etc.
SUBST:   w = z
SUBST:   W = W w:5 ^:3 x:2
SUBST:   z = W. ^:5
SUBST:   X = w x
KFEAT:   ^ = web
# Monster sets, and some items
NSUBST:  1 = 2:t / *:w
SUBST:   2 = 2 *:4
KMONS:   2 = tarantella / redback w:12 / jumping spider w:8 / wolf spider w:5
KMONS:   3 = redback
SUBST:   4 = 4 *:3
KMONS:   4 = jumping spider / wolf spider w:5 / redback w:15
SUBST:   6 = 6 *:2
KMONS:   6 = redback / wolf spider w:4 / jumping spider w:1
SUBST:   7 = 7 .:75
KMONS:   7 = redback
KITEM:   t = potion of ambrosia pre_id
MAP
     ..........   ......  ........
     .xwxxxxxx3....xxxx....xxxxwx..
     .xxwxx66xx..xxxWWxxxxxx66wxxx.
     .x6xwwwxxxxxxWW.7.WWxxxxxw66x.
     .xxxxxxwxWW.7..WWW.7.WWWxxwxx.
     ..xxxxwW7..WWWXxxxWWW...7wxx3.
     ...xxxW.WwxxxxxxxxxxxXXWw.Wxx..
   ...xxxxW.Wxxwwx4xxxxxxxxxxwW.Wxx..
  .3xxxxxW.2xxxxxwwxxxxxxxxxwxxW.Wxx...
  .xxxxx7.WxxxxxxxxwwxxxxxxwxxxxW7Wxxx.
  .x4xx.WWxxxxxxx2...w.22.wxxxxxxW.www.
  .xxw.WXxxxxxx2..2|x2w..w.xxxxwwwW.Wx.
 ..xx7WXxxxxx2..2.x2www.w..2wwwxxxW7Wx.
..xxW.Wxxxxx2.x...ww11wwxwww2xxxxxXW.x.
.xxW.Wxxxxxxx..wwwww11www...2xxxxxXW.x.
3xW.Wxxxxx4wwww.x..www.x.www.2xxxxXW7x.
.xW.WWxxxwwxxxx....x........wxxxxXW.xx.
.wwW..WWwxxxxxxxxx......xxxxxw4xxW.Wx..
.xxWWW.7.WWWxxxxxxxxxxW.WWWWxwxxW7Wxx.
..xxxxWWW.7.WWXxxxxxxxxW7...WWwWW.Wx..
 ....xxxxWWW.WWWXXxxxWWWxxWW.....Wxx3
    ....xxxxW.7WWWWWWxxxx...WWWWWxx..
       ..3.xxxx...WWW.7..WWWWxxxwx..
          ...xxxx.......WWWWxx.....
            ....xxxxxxxxxxxxxx.
               ........3.......
ENDMAP

NAME:   hangedman_spider_trapstep
TAGS:   no_monster_gen no_pool_fixup patrolling allow_dup
DEPTH:  Spider:1-2, Zot, !Zot:$
KMONS:  0 = patrolling hornet
KMONS:  1 = tarantella
: if you.in_branch("Zot") then
KMONS:  2* = jumping spider / orb spider w:5
KMONS:  3| = ghost moth / moth of wrath
KITEM:  | = any good_item
KFEAT:  ` = trap_zot
KFEAT:  ^ = web w:8 / any trap w:1 / . w:7
:   if you.depth() == dgn.br_depth("Zot") - 1 then
KFEAT:  ~ = trap_zot w:20 / web / . w:5
:   else
KFEAT:  ~ = trap_zot w:15 / shaft / web w:5 / . w:5
:   end
NSUBST: 4 = 1:122 / 1:112
SUBST:  X = c
: else
KMONS:  2 = tarantella
KMONS:  3 = orb spider
KITEM:  | = superb_item / any good_item w:5
KFEAT:  ` = shaft
KFEAT:  ^ = web w:9 / web w:1 / . w:6
KFEAT:  ~ = shaft w:15 / web / . w:5
NSUBST: 4 = 1:2 / *:W
SUBST:  X = x
: end
KITEM:  * = star_item / superb_item w:5
KFEAT:  123*| = shallow_water
KMASK:  . = !no_monster_gen
SUBST:  ' = ..^
MAP
    ..''0''..
   ..XX'''XX..
  .0XX`'G'`XX0.
 ..XX~'''''~XX..
..XX~''^^^''~XX..
.XX~''^xxx^''~XX.
.X~''^Wx1xW^''~X.
.X~'^xxwxwxx^'~X.
.X~'^x4xwx4x^'~X.
.X~'^xWwxwWx^'~X.
.X~''^xW2Wx^''~X.
.XX^''^xxx^^'^XX.
..XXW''^^^''WXX..
 ..XX3'''''3XX..
  ..XXW*|*WXX..
   ..XXXXXXX..
    .........
ENDMAP

NAME:    hangedman_creepy_crawlies
TAGS:    no_monster_gen patrolling
ORIENT:  west
DEPTH:   Spider, !Spider:$
WEIGHT:  5
KMONS:   1 = scorpion w:55 / hornet w:13 / brain worm w:2
KMONS:   2 = redback w:15 / vampire mosquito
KMONS:   3aAdD = boulder beetle
KMONS:   4bB = demonic crawler
KMONS:   5eE = place:Spider:$ zombie
KMONS:   6cCfF = radroach / emperor scorpion w:8
KITEM:   fF = star_item w:8 / superb_item w:2
KITEM:   6 = superb_item w:5 / any armour good_item ego:poison_resistance w:5
KFEAT:   12345abcdefABCDEF% = web / shallow_water / . w:30
KFEAT:   . = . w:39 / web w:1
KMASK:   ' = !no_monster_gen
SHUFFLE: ab, AB, cd, CD, ef, EF, gh, GH
SUBST:   ' = .:28 W:1 %:1, % = 00%%.
SUBST:   cC = c:13 4:1 3:1, 1 = 1:17 2:2 5:1
SUBST:   ` = .
:        dgn.delayed_decay(_G, '%', 'any corpse')
MAP
xxxxxx              ' '     'xxx'     ' '
xxxxxx. .  . .     ''''''  ''xDx''   '''''
xxxxx..........   ''xxx''''''x2x''' ''xxx''
xxxx..xxx..xxx..   'xExx''xxxx1xxx'''xxBx'
xxxx.xx1x..x1xx.  ''xx5xxxx.....%xxxxx1xx''
xxx''x1xx%%xx1x''  ''xx4x%.........xx1xx''
xxx''xx1%%%%1xx''   ''xx...xxx1xxx..%xx''
xxxx''xxx..xxx''    ''x...xxxx2xxxx%..x''
xxxxx''xx..xx''   '''xx.%x4xxxCxxx1x..xx''
xx''''xx..xx''  '''''x.1xxx5xxxxx1xxx..x''
xxxxxxx..xx''   'xxx'x11xxxxFx'xAxxxx..x''
xxx21x..xxxx'' ''x6xxx%3xxxxxx'xxxxxx..xx''
xxxxx....12x'''''xx42%%%24xxx''''x21....xxx
xx''xx..xxxxxx'xxxxxx3%xxx6x'' ''xxxx..x12x
xx'''x..xxxxax'xexxxx11x'xxx''  ''xx..xxxxx
xx'''x..xxx1xxxxx5xxx1.x'''''  ''xx..xx''''
xxx''xx..x1xxxcxxx4x%.xx''    ''xx..xx''
xxxx''x..%xxxx2xxxx...x''    ''xxx..xxx''
xxxx''xx%..xxx1xxx...xx''   ''xx1%%%%1xx''
xxx''xx1x..........%x4xx''  ''x1xx%%xx1x''
xx''xx1xxxxx%......xxx5xx''  .xx1x..x1xx..
xxx'xbxx'''xxx1xxxxx'xxfx'   ..xxx..xxx..
xx''xxx'' '''x2x''''''xxx''   ..........
xxx'''''   ''xdx''  ''''''     . .  . .
xxxx' '     'xxx'     ' '
ENDMAP

# Some hornet vaults. Hornets eat spiders (and players).
NAME:   spiders_nest_hornet_nest
TAGS:   no_trap_gen uniq_hornetnest
MONS:   hornet
NSUBST: 1 = 1:% / 1:1 / * = %1
SUBST:  a = .a, A = a
COLOUR: a = brown
TILE:   a = wall_wax
SUBST:  a = x
KPROP:  1% = no_tele_into
MAP
  ......
 ..aaaa..
..aAAAAA..
.amA111Aa.
.aA1111Aa.
.aA1111Aa.
.aAA11Ama.
..aAAAAa..
 ..aaaa..
  ......
ENDMAP

NAME:   lemuel_hornet_nest
TAGS:   uniq_hornetnest
WEIGHT: 2
MONS:   hornet
SUBST:  1=1 .:15
SUBST:  ?=a.
COLOUR: a = brown
TILE:   a = wall_wax
SUBST:  a = x
MAP
     a?@?a
     a?.?a
  aaaaa.aaaaa
 aa111a.a111aa
aa111aa.aa111aa
a111aaa.aaa111a
a?1.??a.a??.1?a
aa?...a.a...?aa
 aaa?.....?aaa
   aaa?.?aaa
     aa.aa
      a.a
      a.a
      a*a
      aaa
ENDMAP

NAME:   guppyfry_hornet_nest
TAGS:   no_monster_gen no_trap_gen uniq_hornetnest
MONS:   hornet
SUBST:  - = wW.%
NSUBST: 1 = 2:1 / 1:. / * = 1.
MAP
@WxxxxxxxxxxxxxxW@
xWW....WWWW....WWx
xxWW--WW--WW--WWxx
 xxWWWW1111WWWWxx
  xxWW..11..WWxx
   xxxxxxxxxxxx
ENDMAP

# A few mining accidents
NAME:   nicolae_spider_mines_1
DEPTH:  Spider, !Spider:$
ORIENT: southwest
TAGS:   uniq_spidermines
KMONS:  z = jumping spider w:5 / wolf spider w:3 / redback w:1 / \
            tarantella w:1 / nothing w:96
KITEM:  z = any armour w:5 / any weapon w:5 / gold w:1 / nothing w:50
KFEAT:  z = web / floor w:60
KFEAT:  X = rock_wall
SUBST:  B = z.., z = v:1 z:14
FTILE:  Xzvc = floor_orc
TILE:   X = wall_orc
TILE:   c = wall_stone_smooth
COLOUR: Xv = brown
KITEM:  v = orc skeleton
MAP
xxxxxxxxxxxxxxx
xxxxxxxx......xx
xxxxxx.....x...xx
xxxx.......xx...@
xxxx....BBBxx...@
xxxx.xxxxBBXxx..@
xxxxxxXXXBBBXxxxx
xxxxxXXXzzzzXXXxx
xxxXXXXzzzzzzXXXx
xxXXXzzzzzzzzzXXx
xXXXzzzzzzzzzzXXx
xXXzzzzzzzzzzXXxx
xXXzzzzzzzzzXXxx
xXXzzzzzzzzzXXx
xxXXzzzzzzzzXXx
xxxXXzzzzzzXXxxx
xXXXXzzzzzzXXXXx
xXccccccccccccXx
xXccccccccccccXx
ENDMAP

NAME:   nicolae_spider_mines_2
TAGS:   uniq_spidermines
DEPTH:  Spider, !Spider:$
ORIENT: southeast
KMONS:  z = jumping spider w:5 / wolf spider w:3 / redback w:1 / \
            tarantella w:1 / nothing w:96
KITEM:  z = any armour w:5 / any weapon w:5 / gold w:1 / nothing w:50
KFEAT:  z = web / floor w:60
KFEAT:  _ = altar_beogh
KFEAT:  X = rock_wall
SUBST:  B = z.., z = v:1 z:14
FTILE:  XzvcI_ = floor_orc
TILE:   X = wall_orc
TILE:   c = wall_stone_smooth
COLOUR: Xzv = brown
KITEM:  v = orc skeleton
MAP
     xxxxxxxxxxxxx
     @.....xxxxxxx
     @........xxxx
     @xxxxxx..xxxx
     xxXBBBBBBxxxx
   xxxXXBBBXXXxxxx
 xxxXXXzzzzzzXXxxx
xxXXXXzzzzzzzXXxxx
xXXXXXzIzzzIzXXxxx
xXzzzzzzz_zzzXXxxx
xXzzzzzIzzzIzzXXxx
xXzzzzzzzzzzzzXXxx
xXXXXzzzzzzzzXXxxx
xXXXXXzzzzzzXXXXXx
xXccccccccccccccXx
xXccccccccccccccXx
ENDMAP

NAME:   nicolae_spider_mines_3
TAGS:   uniq_spidermines
DEPTH:  Spider, !Spider:$
ORIENT: southwest
KMONS:  z = jumping spider w:5 / wolf spider w:3 / redback w:1 / \
            tarantella w:1 / nothing w:96
KITEM:  z = any armour w:5 / any weapon w:5 / gold w:1 / nothing w:50
KFEAT:  z = web / floor w:60
KFEAT:  Q = abandoned_shop
KFEAT:  X = rock_wall
NSUBST: F = 1:Q / *:z
SUBST:  B = z.., z = v:1 z:14
FTILE:  XzvQ = floor_orc
TILE:   X = wall_orc
TILE:   c = wall_stone_smooth
COLOUR: Xzv = brown
KITEM:  v = orc skeleton
MAP
         xxxxxxxxx
xxxxxxxxxxXXXXXXXxx
xxxxxxxxxxXzzzzzXXxxx
xxxxxxxxxxXzzzFzzXxxxxx
xxxxxxxXXXXXzzzzzXx...@
xxXXXXXXXXXXzzzzXXx...@
xxXzzzzXXXXzzzzzXxx...@
xxXzzzzzXXzzzzzzXx....x
xxXzzFzzzzzzzzzzXx...xx
xxXzzzzzzzzzzzzBBBBB.x
xxXzzzzzzzFzzzBBBBBBxx
xxXXzzzzzzzzzXXxxxxxxx
xxxXXzzzzzzzzXXxxxxxxx
xxxXXzzzzzzzXXxxxxxxxxx
xxxxXXzzzzzzXXxxxxxxxxx
xxxXXXzzzzzzXXXXxxxxxxx
xxxXcccccccccccXxxxxxxx
xxxXcccccccccccXxxxxxxx
ENDMAP

# Misc minivaults
NAME:   guppyfry_spider_mini_1
MONS:   jumping spider / redback w:15 / nothing w:5
MAP
x@.xxxxxxxx.
xx..xxxxx..@
xxx..xxx..xx
.xxx..x..xx.
@..xx.1.xx.@
xx...111...x
xxx..111...@
xx..x.1.x.xx
x..xx..xx..x
@.xxx..xxx.@
xxxx..xxxxx.
xxx.@xxxxxxx
ENDMAP

NAME:   guppyfry_spider_mini_2
MONS:   jumping spider / redback w:15 / nothing w:5
MAP
xx..xxxx..xx
x....xx....x
xx..xxxx..xx
xxx11xx11xxx
xWWxxWWxxWWx
@WWWWWWWWWW@
xWWxxWWxxWWx
xxx11xx11xxx
xx..xxxx..xx
x....xx....x
xx..xxxx..xx
ENDMAP

NAME:   guppyfry_spider_mini_3
MONS:   jumping spider / redback w:15 / nothing w:5
MAP
W....WW....W
xW...WW...Wx
.xWWWWWWWWx.
.WxW.WW.WxW.
.W.1WWWW1.W.
WWWW1111WWWW
.W.1WWWW1.W.
.WxW.WW.WxW.
.xWWWWWWWWx.
xW...WW...Wx
W....WW....W
ENDMAP

NAME:   nicolae_orb_island
DEPTH:  Spider:2-
TAGS:   no_pool_fixup
MONS:   generate_awake orb spider
KPROP:  1'z = no_tele_into
KMASK:  w = no_monster_gen
SUBST:  z = x
MAP
        ..
      ......
    ....x.....
   ..........w...
  ....x.www........
  ...x..wwwwwww.....
 ...w...w1''1www....
 .......w'z''www.x...
...w...ww'''zzww.....
....wwww1'''1wwww.....
 .....ww'zz''ww'ww...
 ...x.ww''''www'x..w.
  ..w.wwww'1wwwwx....
  ....xwwwwwww.......
   ........ww.w.....
    w..............
     ...xx.......
      ........w
       .....
ENDMAP

NAME:   nicolae_orb_stairs
TAGS:   no_pool_fixup no_monster_gen
DEPTH:  Spider:2-
MONS:   orb spider / nothing
SUBST:  s = x.
SUBST:  w = www^
SUBST:  . = ...^
KFEAT:  ^ = web / floor
SHUFFLE: [{(
MAP
 ssss@@@ssss
sssxs^^^sxsss
ssx...1...xss
sx.1.www.1.xs
ss..^...^..ss
@^.w.....w.^@
@^1w..[..w1^@
@^.w.....w.^@
ss..^...^..ss
sx.1.www.1.xs
ssx...1...xss
sssxs^^^sxsss
 ssss@@@ssss
ENDMAP

NAME:   nicolae_spider_nook
TAGS:   no_monster_gen
MONS:   wolf spider / redback w:15 / jumping spider / culicivora / nothing w:7
KITEM:  d = | w:5 / * w:20 / $
KMONS:  d = orb spider
MAP
   xx+xx
  xx.x.xx
 xx1x1x1xx
xx.x.x.x.xx
x1x1x1x1x1x
xx.x.x.x.xx
 xx1x1x1xx
  xxdxdxx
   xx*xx
    xxx
ENDMAP

# Demonic crawler nest, maybe with a demonic farmer
NAME:   nicolae_crawler_farm
TAGS:   no_monster_gen patrolling no_trap_gen
MONS:   red devil, demonic crawler
NSUBST: 2 = 6:2 / *:.
SUBST:  1 = 111..
MAP
    xxxxx
  xxxxxxxxx
  xx22l..lxx
  xlll.2l.2x
 xxl2...l2xx
 xx..l1.lxxx
 xx2.ll.xxxx
 xxl...2xxx..
  xx2l..lxx...
  xxx2....l...
   xxxxl......
     xxxxlllx
       xxxxx
ENDMAP

NAME:   nicolae_spider_shape
MAP
 ...........
 .xxx...xxx.
.....x0x.....
.xxx0xxx0xxx.
...0xxxxx....
....xxxxx0...
.xxx0xxx0xxx.
.....x0x.....
 .xxx...xxx.
 ...........
ENDMAP

NAME:   nicolae_arachne_temple
TAGS:   no_item_gen no_monster_gen no_trap_gen
DEPTH:  Spider:2-
MONS:   tarantella, wolf spider, redback, jumping spider
KMONS:  A = Xak'krixis, orb spider
KFEAT:  -' = web / floor w:40
COLOUR: -2 = brown
COLOUR: 'A435 = yellow
FTILE:  -2 = FLOOR_SANDSTONE
FTILE:  'A435 = FLOOR_LIMESTONE
MAP
         .1.
        cc'cc
    1.cc5'''5cc..
   .'c''--'--''c'1
   .c'--2-3-2--'c.
   c'-'-'''''-'-'c
   c'--'--'--'--'c
  c5-2'-'-'-'-'2-5c
 .c'--'--4'4--'--'c.
 1'''3''''A''''3'''1
 .c'--'--4'4--'--'c.
  c5-2'-'-'-'-'2-5c
   c'--'--'--'--'c
   c'-'-'''''-'-'c
   .c'--2-3-2--'c.
   1'c''--'--''c'.
    ..cc5'''5cc.1
        cc'cc
         .1.
ENDMAP

NAME:    lemuel_spider_zombies
DEPTH:   Spider, !Spider:$
ORIENT:  float
TAGS:    no_monster_gen no_descent
MONS:    redback zombie / wolf spider zombie / tarantella zombie /\
            culicivora zombie
MONS:    necromancer
MONS:    plant
SHUFFLE: {}
SUBST:   . = .:50 1:4 3:1
SUBST:   > = <>
SUBST:   }=} .:4
SHUFFLE: {}
SUBST:   == +:15 .:3
SUBST:   ? = x.
MAP
       xxxxxx
      xx?..?xx
xxxxxxx?....?xx
x{...........?xxx
xxxxxx?........?xxxx
     xx...........?xxxx
      x?..111........?xx
      x?.11111........?x
      xx.11111........?xx
       x?.111..........?xxxxxxxx
       x?.....................}x
cccccccx...............?xxxxxxxx
c|..=2.+...........??xxxx
cccccccxx?.......?xxxx
        xx?....?xxx
         xxx...xx
           x?.?x
         xxx??xx
       xxx????x
     xxx....?xx
    xx?.>..xxx
    x?....xx
    xx..?xx
     x?xxx
     xxx
ENDMAP

NAME:   nicolae_orb_stairs_large
TAGS:   no_pool_fixup no_monster_gen
DEPTH:  Spider:2-3
ORIENT: float
WEIGHT: 3
MONS:   orb spider / redback
SUBST:  s = x.
SUBST:  . = ...^
KFEAT:  ^ = web
SHUFFLE: [{(<
MAP
     xxx@@@xxx
    xxsx^^^xsxx
   xxsss...sssxx
  xxss...1...ssxx
 xxs1.........1sxx
xxss...wwwww...ssxx
xss...^.www.^...ssx
xxs..w.......w..sxx
@^...ww...(.ww...^@
@^.1.ww.[...ww.1.^@
@^...ww...{.ww...^@
xxs..w.......w..sxx
xss...^.www.^...ssx
xxss...wwwww...ssxx
 xxs1.........1sxx
  xxss...1...ssxx
   xxsss...sssxx
    xxsx^^^xsxx
     xxx@@@xxx
ENDMAP

NAME:   nicolae_spider_corner
DEPTH:  Spider, !Spider:$
ORIENT: southwest
MONS:   orb spider
SHUFFLE: ABC, DEF, GH, IJ, abcdefghi
SUBST:  AEFGI = x, BCDHJ = .
NSUBST: a = 1:} / 1:] / 1:) / 1:1 / *:.
KMONS:  bcdefghi = tarantella / redback w:15 / wolf spider / \
        jumping spider / culicivora / orb spider / demonic crawler / \
        scorpion / emperor scorpion / \
        hornet / nothing w:100
SUBST: X = xxxx^....0
KFEAT: ^ = web / floor w:20
MAP
xxxxxxxxX...
xxaaaa.xGG....XXX
xxa.0^^^xGX......X
xxxxHHxxxxxXX..0..X
xxc...xCCCxxxX.....X
xx0cc.CCCCCCxxXX^^..X
xxx..cxxxCCbbxxX..^..@@@@
xxAAAxxxx0.bbxxX...^...0.@
xxAAxxxx...bbxxX^^X.^^....
x.0^.BBB..xxxxX...X^^xXX...
x.^^.BBB.^.0.....^^..xxX...
xddXXxxxx^.......X....XxX..
xddXxxxxxxxxx^^^XXx....xx^^
xxxxxXXxDDD...0.xxxxx..xx..
xxeeee.DDDDD....xXXx^..xI..
xxX....DDDxEE...xX...^xxIIx
xx..0.xxxxEEEFFFxx.0.xxxIIx
xx..xxxEEEEEFFFFxx..Xx.^.xx
xx^^^EEEExxFFFFxx...Xxiiiix
xxx...EExx....xxx^^^xx.^.xx
xxff..^xx^^.ggxxh...XxxJJJx
xxff.^.0...xggxxhh...0^...x
xxxxx^....xxxxxxxxh...^..xx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:    nicolae_spider_hall_of_the_moth_king
TAGS:    transparent
ORIENT:  west
KMONS:   M = moth of wrath / ghost moth / sun moth / butterfly w:1
SHUFFLE: AB, CD
SUBST:   B : ....c, D : ....c, AC : ., G : GGGc, G = GGGG., c : ccccx
SUBST:   & = @'''', 0 = 0009..
FTILE:   + = floor_pebble_magenta
FTILE:   .$09MG = floor_mystic_chasm
MAP
xxxxxxxxxxxxxxxxxxxxxxxxx'&'xx
xxxxcccccccccccccccccccccc+ccx
xxxxcG$GccG$GccG$GccG$GccG.Gcx
xcccc.0.cc.0.cc.0.cc.0.cc.0.cx
xc$.9...AA...CC...AA...CC...cx
xc$G..G....G....G....G....G.cx
xc$M..0.BB.0.DD.0.BB.0.DD.0.cx
xc$G..G....G....G....G....G.cx
xc$.9...AA...CC...AA...CC...cx
xcccc.0.cc.0.cc.0.cc.0.cc.0.cx
xxxxcG$GccG$GccG$GccG$GccG.Gcx
xxxxcccccccccccccccccccccc+ccx
xxxxxxxxxxxxxxxxxxxxxxxxx'@'xx
ENDMAP


###############################################################################
NAME:    spider_temple_joshua
DEPTH:   Spider, !Spider:$
TAGS:    no_monster_gen
ORIENT:  north
MONS:    entropy weaver, wolf spider, oklob plant
MONS:    culicivora / jumping spider / redback w:15 / wolf spider
MONS:    emperor scorpion, obsidian statue / orange crystal statue
# Randomise wall type: in 50% of maps, you cannot dig to the stairs.
SUBST:   x : xxxxxxvvvccb
COLOUR:  ' = red
FTILE:   ' = floor_rough_red
SUBST:   ' = .
# With 25% chance, have lava and obsidian statue instead of water and oklobs:
SUBST:   w : Ww.
SUBST:   w = W.
NSUBST:  3 = 2:3 / *:W
SHUFFLE: wU3 / wU3 / wU3 / l6l
# The legs are coloured and contain 10 spider monsters:
COLOUR:  " : white / yellow / brown
NSUBST:  " = 10:4 / *:"
SUBST:   " = .
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx"""""""xxxxxxxxxxxxxx""""""xxxxx
xxxxx"xxxxxx"xxx..}...xxx"xxxxx"xxxxx
xxxxx+xxxxxxx"xx...)..xx"xxxxxx+xxxxx
xxxxx'xxxxxxxx"x..]...x"xxxxxxx'xxxxx
xx"""""""xxxxxx+......+xxxxx"""""""xx
x"xxxxxxx"xxwWxxxx+xxxxxW.x"xxxxxxx"x
xx"xxxxxxx+..wWWw.1...wWW.+xxxxxxx"xx
xxx"xxxxxxx..WWW.2.0.WWWW.xxxxxxx"xxx
xxxx"xxxxxx..wWWw.W3WWWWw.xxxxxx"xxxx
xxxxx"xxxxx.0.wWWW3U3WWw0.xxxxx"xxxxx
xxxxxx+xxxx2.0.wWWW3WWw02.xxxx+xxxxxx
xxxxxx'xxxx.0.wWWWWWWw....xxxx'xxxxxx
x"""""""""+x..WW....WW...x+"""""""""x
x"xxxxxxxxxxxxW...1...Wxxxxxxxxxxxx"x
x"xxx""""""""+W.0...0.W+""""""""xxx"x
x""+'"xxxxxxxxxm.....mxxxxxxxxx"'+""x
xxxxx"x........x+xxxxx........x"xxxxx
....x"x........xWWWWWx........x"x....
....x"x........xxxxxWx........x"x....
....x"xx.......xxxWWWx.......xx"x....
....xx"xx.....xxxx+xxxx.....xx"xx....
.....xx"xx....x.......x....xx"xx.....
......xx"xx...x..050..x...xx"xx......
.......xx+xx..mx.....xm..xx+xx.......
........xx'x...xm+++mx...x'xx........
..................@..................
ENDMAP

NAME: cheibrodos_spider_silkery
TAGS: no_item_gen no_monster_gen
ORIENT: float
MONS: entropy weaver, wolf spider, orb spider
MONS: redback / tarantella / jumping spider / culicivora
ITEM: robe good_item / cloak good_item, robe / cloak
NSUBST: " = 2:1 / 2:2 / 1=2., ' = 1:2 / 1:3 / 6:4 / 4=234.. / 8:^
NSUBST: - = 2=e% / 4=e%. / 3=%.
KFEAT: ^ = web
MAP
    ..........
   ..xxxxxxxx..
  ..xx---x---xx..
 ..xx'''''''''xx..
..xxxx'''x'''xxxx..
.xx'xx'''''''xx'xx.
.x''''x'xxx'x''''x.
.x'''''x"""x'''''.@
.x''''x""x""x''''.@
.xx'x'x"xdx"x'x'xx.
@.''''x""x""x''''x.
@.'''''x"""x'''''x.
.x''''x'xxx'x''''x.
.xx'xx'''''''xx'xx.
..xxxx'''x'''xxxx..
 ..xx'''''''''xx..
  ..xx---x---xx..
   ..xxxxxxxxx..
    ...........
ENDMAP

NAME:   cheibrodos_spider_deadly_dance
TAGS:   no_item_gen no_monster_gen
ORIENT: float
KMONS:  01 = dancing weapon ; short sword | mace w:15 | war axe | trident
KMONS:  2 = tarantella / redback w:3
KMONS:  3 = dancing weapon ; rapier | scimitar | broad axe | \
                             partisan | morningstar
KITEM:  03 = plate armour / plate armour good_item w:1 / chain mail / \
             chain mail good_item w:1 / scale mail / scale mail good_item w:1
KFEAT:  ^ = web
NSUBST: ` = 4:2 / 4=2., ' = 2=*% / 5=%., . = 2:^ / 4=^.
MAP
    ccccccccccccc
    cm3mc'''cm3mc
    c2...'''...2c
    c2...'''...2c
cccccc+cccGccc+cccccc
cm`.....c2.2c.....`mc
c0......+.1.+......0c
cm`.....c...c.....`mc
ccccc...cc=cc...ccccc
    c...c...c...c
    c`.`c...c`.`c
    cm0mc...cm0mc
    ccccc.@.ccccc
ENDMAP

NAME:   nicolae_spider_acid_house
TAGS:   no_trap_gen patrolling no_monster_gen
WEIGHT: 5
MONS:   acid blob, entropy weaver, acid dragon, oklob plant
NSUBST: MNO = 1=4, P = 3=% / 2=%* / *| / O, M = 2=3 / 2=3. / .
NSUBST: N = 2 / 3 / 23.. / ., O = 1 / 2 / 3 / 2=3. / ., a = . / D, p = 2=. / D
NSUBST: q = . / D, r = . / D, s = . / D, y = . / D, z = . / D
SUBST:  D = x., - = x_
CLEAR:  _
MAP
--------------
-xxxxxxxxxxxx-
-xDDDDxxDDDDx-
-xDMMMrsNNNDx-
-xDMMMrsNNNDx-
-xDMMDxxDNNDx-
.xxqqxxxxyyxx-
@.appxxxxzzxx-
@.apDxxxDOODx-
.xxxxxxxPOOPx-
 -----xxPOOPx-
     --xPPPPx-
      -xxxxxx-
      --------
ENDMAP

NAME:  nicolae_spider_altar_of_dancing
TAGS:  transparent
MONS:  tarantella
KFEAT: _ = altar_uskayaw
SUBST: D = x., - = x-
CLEAR: -
MAP
 -----
--xxxx
-xxDDx
-xDD..@
-xD.xx
-xD.Dxxx---
-xDD.DDxxx---
-xxDD.DDxxxx-
--xxDD.DDDDx-
 --xxDD111Dx-
  --xxD1_1Dx-
   -xxD111Dx-
   --xDDDDDx-
    -xxxxxxx-
    ---------
ENDMAP

NAME:   nicolae_spider_baby_got_redback
TAGS:   patrolling
MONS:   redback
SUBST:  D = x., E = x'
SUBST:  ' = 1.
MAP
   xxxxx
 xxxEExxxx
xxEE''Dxxxxx
xE''''Dxxxxxx
xE'''''Dxxxxxx
xE''''..xDDxxx
xE''''....DDxx
xE''''.Dx..Dxx
xxE'''.xxD.Dxx
 xxEEEDxxD.Dxx
..xxxxxxDD.Dxx
@..DDDxDD..Dxx
.....DDD..DDxx
 xDD.....DDxx
 xxDDDDDDDxx
  xxxxxxxxx
ENDMAP

NAME:   nicolae_spider_bug_shape
TAGS:   transparent
SUBST:  D = x:60 ., 0 = 0., M = 0, L = %%%%$$*..
NSUBST: a = . / x
MAP
...................
...................
..DDDDDD.0.DDDDDD..
.....0.DD.DD.0.....
...DDD.xxaxx.DDD...
..DD.DxaL.LaxD.DD..
..D...xL.M.Lx...D..
....0.a.M9M.a.0....
..D...xL.M.Lx...D..
..DD.DxaL.LaxD.DD..
...DDD.xxaxx.DDD...
.....0.DD.DD.0.....
..DDDDDD.0.DDDDDD..
...................
...................
ENDMAP

NAME:   nicolae_spider_bzzzt
DEPTH:  Spider
SUBST:  D = xw, S = w., E = x.
NSUBST: w = 2=1 / 2=1w / 2=2 / 2=2w / w
KMONS:  1 = electric eel
KMONS:  2 = spark wasp
KFEAT:  12 = w
MAP
    xxxxx
  xxxDDDxxx
 xxDDwwwDDxx
xxDwwSSSwwDxx
xDwSS...SSwDxx
@....EEE..SwDx
@....EEE..SwDx
xDwSS...SSwDxx
xxDwwSSSwwDxx
 xxDDwwwDDxx
  xxxDDDxxx
    xxxxx
ENDMAP

NAME:  nicolae_spider_claw_tunnel
TAGS:  transparent
SUBST: E = D:50 %. *:5, D = x .:50, - = x_
CLEAR: _
MAP
 -------------------
--xxxxxxxxxxxxxxxxx--
-xxEEExxxEEExxxEEExx-
-xDD.DDxDD.DDxDD.DDx-
-xD.0.DxD.9.DxD.0.Dx-
-xDD.DDxDD.DDxDD.DDx-
-xxD.DxxxD.DxxxD.Dxx-
.DDD.DDDDD.DDDDD.DDD.
@...D.....D.....D...@
.DDD.DDDDD.DDDDD.DDD.
-xxD.DxxxD.DxxxD.Dxx-
-xDD.DDxDD.DDxDD.DDx-
-xD.0.DxD.9.DxD.0.Dx-
-xDD.DDxDD.DDxDD.DDx-
-xxEEExxxEEExxxEEExx-
--xxxxxxxxxxxxxxxxx--
 -------------------
ENDMAP

NAME:   nicolae_spider_eight_legs
TAGS:   transparent
NSUBST: 0 = 8=0 / .
SUBST:  x = x:60 .
MAP
.............
...x.x.x.x...
...x.x.x.x...
..xx.x.x.xx..
.xx0x0x0x0xx.
.x0xxxxxxx0x.
.x0xxxxxxx0x.
.xx0x0x0x0xx.
..xx.x.x.xx..
...x.x.x.x...
...x.x.x.x...
.............
ENDMAP

NAME:  nicolae_spider_jagged_tunnels
TAGS:  transparent
SUBST: D = x:75 0 .
MAP
..xxxxxxxxxx
...DDDDDDDDx
x.........Dx
xD..DDDDD.Dxxxx
xD.D.DxxD.DDDDx
xD.DDDxDD....Dx
xD.DxxxD.DDD.Dxxxx
xD.DxDDDDDxD.DDDDx
xD.DDD.DxxDD....Dx
xD....DDxxD.DDD.Dx
xDDDD.DxDDDDDxD.Dx
xxxxD.DDD.DxxxD.Dx
   xD....DDxDDD.Dx
   xDDDD.DxxD.D.Dx
   xxxxD.DDDDD..Dx
      xD.........x
      xDDDDDDDD...
      xxxxxxxxxx..
ENDMAP

NAME:  nicolae_spider_nooks_and_crannies
TAGS:  transparent
KITEM: L = %
KMONS: L = 0 / 0 band
SUBST: D = x.
MAP
   ...........
  ...DDD.D.....
 ..DxDxDx.xD.D..
..Dxxxxxx.xxx...
.xxx.LxxD..xxD...
...x..xxxx.DxxD..
.xxxx.x....xx....
.Dxx..xL.xxxxxD..
.Dx..xxxxxD.LxDD.
....xx.Lx....x.D.
.Dxxx...x.xxxx.D.
..DxD.xxx.....D..
..Dxx...xxxxxD..
 ..Dxxx.xDxDD..
  ..DDD.D.D...
   ..........
ENDMAP

NAME:  nicolae_spider_moth_buddies
TAGS:  transparent
MONS:  moth of wrath, ghost moth
MONS:  wolf spider / redback / tarantella / jumping spider / orb spider
SUBST: C = c., D = x.
FTILE: ' = floor_pebble_magenta
FTILE: .%123 = floor_mystic_chasm
MAP
  xxxxx'''xxxxx
 xx3%xx...xx.3xx
xxD..C.....D..Dxx
xD....3...3....Dx
xD.1...CCC.....Dx
xD.....CCC...2.Dx
xD....3...3....Dx
xxD..D.....C..Dxx
 xx3.xx...xx%3xx
  xxxxx'''xxxxx
ENDMAP

NAME:    nicolae_spider_not_touching_you
TAGS:    transparent
MONS:    entropy weaver, ghost moth, moth of wrath, torpor snail, orb spider
SHUFFLE: 1234
SUBST:   1 = 115, 2 = 225, 3 = 335
SUBST:   w = wwD, D = xx.
MAP
      ....
      .DD.
  .....DD.....
  .DD......DD.
  .DD......DD.
  .....ww.....
......1ww2......
.DD..wwwwww..DD.
.DD..wwwwww..DD.
......4ww3......
  .....ww.....
  .DD......DD.
  .DD......DD.
  .....DD.....
      .DD.
      ....
ENDMAP

NAME:  nicolae_spider_orb_run
TAGS:  no_pool_fixup transparent
KMONS: 1 = orb spider
SUBST: D = x., 0 = 000.
KMASK: '1> = opaque
KMASK: '1> = no_monster_gen
KMASK: '1> = no_item_gen
KMASK: '1> = no_trap_gen
KPROP: '1> = no_tele_into
MAP
     xxxxxxxxxxx
  xxxx'1''>''1'xxxx
 xxxxxwwwxxxwwwxxxxx
....xx....0....xx....
xD.DxxD0DxxxD0DxxD.Dx
xxD.xD.D.DxD.D.Dx.Dxx
xD.DxxD.DxxxD.DxxD.Dx
xxD.xD.D.DxD.D.Dx.Dxx
xD.DxxD.DxxxD.DxxD.Dx
xxD.xD.D.DxD.D.Dx.Dxx
xD.DxxD0DxxxD0DxxD.Dx
xxD0.....xxx.....0Dxx
 xxxxxwwwxxxwwwxxxxx
  xxxx'1''>''1'xxxx
     xxxxxxxxxxx
ENDMAP

NAME:   nicolae_spider_paper_wasps
TAGS:   no_item_gen no_trap_gen no_monster_gen patrolling
ITEM:   any scroll
MONS:   hornet, spark wasp
SUBST:  E = x', D = x.
NSUBST: ' = 2 / 122 / 2=12'' / ', ' = 2=d / 2=d. / .
MAP
  xxxx
 xxxxxx
xxEEEExx
xxE''Exx
xxx''Exx
xD.xxxxx
xD.Dxxxx
xD.DDxD.@
xxD....xx
 xxDDxxx
  xxxx
ENDMAP

NAME:   nicolae_spider_rock_and_or_roll
TAGS:   no_trap_gen transparent
KITEM:  R = large rock q:1
MONS:   boulder beetle
NSUBST: P = . / x., Q = . / x., E = 4=1 / 2=1' / x', ! = 4=x / 3=x' / '
NSUBST: ' = 4=R / 6=R. / .
SUBST:  - = x-
CLEAR:  -
MAP
 --------
--xxxxxxxx.@
-xxEEEEEEQQ.
-xEE''''''Qx
-xE'!!!!!'Ex-
-xE'!!!!!'Ex-
-xE'!!!!!'Ex-
-xE'!!!!!'Ex-
-xE'!!!!!'Ex-
-xP''''''EEx-
 .PPEEEEEExx-
 @.xxxxxxxx--
   ---------
ENDMAP

NAME:   nicolae_spider_scorpion_nest
TAGS:   no_trap_gen
MONS:   emperor scorpion
SUBST:  D = x., F = x'
NSUBST: p = @ / x., q = . / x., r = . / x., ' = 3=1 / 3=1. / .
MAP
  xxxxxxxxxxx
xxxDDDxxFFFFx
pDDD.Dqr'''Fx
p.D.D.qr'''Fx
p..D.DxxFFFFx
pDDDDDxxxxxxx
xxxxxxx
ENDMAP

NAME:   nicolae_spider_some_kinda_spiderbox
TAGS:   transparent
NSUBST: E = . / D
SUBST:  D = xx., 0 = 0. 9:2
MAP
...........
.D.xDxDx.D.
..DEDDDED..
.xEx0x0xEx.
.DD00000DD.
.xDx000xDx.
.DD00000DD.
.xEx0x0xEx.
..DEDDDED..
.D.xDxDx.D.
...........
ENDMAP

NAME:   nicolae_spider_swamp_cousins
TAGS:   no_pool_fixup no_trap_gen transparent patrolling
MONS:   ghost crab, vampire mosquito, tyrant leech
NSUBST: . = 1 / 1. / 4=2 / 6=2. / 3=3 / 4=3.
SUBST:  Z = wD, D = x., E = x', . = ...W, ' = .
MAP
xxxxxxxxxxxxx
@EEExDZZZZZZxx
E''EED.....ZZxx
xEE'E....D..Zxxxx
xxxE...D....DDxxxxx
xxDDD...ZZ.D.DDxEEE
xxD....ZZZZ...EEE'@
 xZ..D.ZZZZ...E''EE
 xZZ....ZZ..D..EEEx
 xxZZ..D.......Dxxx
 xxxZ.D...D...ZZxx
 xxxEE.......ZZxx
 xxEE'EDD...ZZxx
 xxE'EExDDDZZxx
  xE'EExxxxxxx
  xEE@Exxx
ENDMAP

NAME:  nicolae_spider_undead_wolf_pack
TAGS:  patrolling transparent
MONS:  wolf spider / wolf spider zombie / wolf spider simulacrum \
       / spectral wolf spider / nothing
SUBST: D = x.
MAP
    .........
  .............
 ....DDD.DDD....
 ...DxxD.DxxD...
...DxxxD.DxxxD...
..Dxx1xD.Dx1xxD..
..Dx11xD.Dx11xD..
..Dx11xD.Dx11xD..
..Dx11xD.Dx11xD..
..Dx11.D.D.11xD..
..Dxx1.D.D.1xxD..
...Dxx.....xxD...
 ...DxxxxxxxD...
ENDMAP

NAME:  nicolae_spider_wall_of_niches
TAGS:  transparent
KMONS: a = 0 / 9 w:5 / nothing w:2
KITEM: a = % / * w:2 / nothing
SUBST: D = x.
MAP
       xxxxx
    xxxxaxaxxxx
   xxax.xxx.xaxx
 xxx.xx.xxx.xx.xxx
xxaxx.xx.D.xx.xxaxx
x.xxxx.D...D.xxxx.x
xx..xD...D...Dx..xx
 xxx...DDDDD...xxx
   ...DxxxxxD...
    @..DDDDD..@
      .......
         @
ENDMAP

NAME:   hellmonk_watch_for_rolling_rocks
DEPTH:  Spider, !Spider:$
WEIGHT: 5
TAGS:   no_trap_gen no_item_gen no_monster_gen
MONS:   boulder beetle, jumping spider
KFEAT:  ^ = shaft
MAP
    xxxxx
    x1.2x
    x.x.x
    x.x*x
    x.xxx
   xx1x
   x..x
   x..x
   xx.x
    x1x
  xxx.xxx
 xx.....xx
xx.1.^...xx
xx..^^^..xx
xx...^...xx
 xx..x..xx
  x+xxxxx
   @
ENDMAP

NAME:   hellmonk_motheaten_closet
TAGS:   no_monster_gen no_item_gen
MONS:   ghost moth / sun moth / moth of wrath
ITEM:   robe plus:-2 w:25 / hat plus:-2 / pair of gloves plus:-2
ITEM:   robe randart w:25 / hat randart / pair of gloves randart
NSUBST: d = 1:e / *:d, 1 = 2:1 / *=.
MAP
 xxxxxxxx
 xddddddx
xx++++++xx
x1..11..1x
xx1....1xx
 x......x
 xxx..xxx
    @@
ENDMAP

NAME:   hellmonk_test_site
TAGS:   no_monster_gen no_trap_gen ruin transparent
MONS:   radroach
NSUBST: ' = 1:1 / * = x:4 .
SUBST:  G = G..
FTILE:  x.G1 = floor_sand
TILE:   x = wall_sandstone
TILE:   G = dngn_crumbled_column
MAP
     @
  xxx.xxx
 xxx...xxx
 xG.....Gx
 x.'''''.x
 x.'xxx'.x
 x.'xxx'.x
 x.'''''.x
 xG.....Gx
 xxx...xxx
  xxx.xxx
     @
ENDMAP

NAME:   hellmonk_narrow_tunnel
TAGS:   transparent
MONS:   steelbarb worm / demonic crawler
NSUBST: . = 16 = 1... / *:.
MAP
   xxxx
  xxxxxx
 xx....xx
xxx.xx.xxx
xx..xx..xx
xxx.xx.xxx
xx..xx..xx
xxx.xx.xxx
xx..xx..xx
xxx.xx.xxx
@...xx...@
xxxxxxxxxx
ENDMAP

NAME:   hellmonk_deceptive_appearances
TAGS:   transparent ruin
MONS:   jorogumo, shapeshifter
MAP
 xxxx       xxxx
xx..xx     xx..xx
x1......@......2x
xx..xx     xx..xx
 xxxx       xxxx
ENDMAP

NAME:   hellmonk_spider_spawner
TAGS:   transparent no_monster_gen
MONS:   broodmother
SUBST:  0 = 0...
MAP
    x@x
    x.x
    x.x
  xxx.xxx
 xx.....xx
 x.......x
xx..0x0..xx
x0..xxx..0x
x..xxxxx..x
x0xxxxxxx0x
x..xxxxx..x
x0.0xxx0.0x
xx...x...xx
 x.x...x.x
 x0.0.0.0x
 xx..x..xx
  xx0.0xx
   xx1xx
    xxx
ENDMAP

NAME:   nicolae_spider_broodchamber
TAGS:   transparent patrolling
DEPTH:  Spider
ORIENT: south
KITEM:  M = * / | w:3
KITEM:  PD = % / $ w:5 / * w:5 / nothing w:20
KITEM:  Q = % / nothing
KMONS:  M = broodmother
KMONS:  P = pharaoh ant
KMONS:  D = culicivora
KMONS:  Q = entropy weaver / torpor snail / moth of wrath / ghost moth / \
            orb spider / spark wasp / jumping spider / jorogumo / sun moth / \
            boulder beetle
KFEAT:  MPDQ! = web / . w:50
KMASK:  MPDQ! = no_monster_gen
SUBST:  ` = xx!, - = xxs
NSUBST: S = 1=M / 2=M! / !, s = 2=P / 2=D / 1=Q / 2=PDQ! / !
MAP
    xxxxxxxx@@xx
   xx```````..`x
   x`!!.......`x
   x`!!.......`x
   x`!!```````xx
  xxx!!xxxxxxxx
 xx-!!!!-xx
xx-ssssss-xx
x-ssssssss-x
x-ssssssss-x
x-ssssssss-x
x-ssssssss-x
xx-sSSSSs-xx
 xx-SSSS-xx
  xxxxxxxx
ENDMAP

NAME:   nicolae_spider_brood_tunnel
TAGS:   transparent patrolling
DEPTH:  Spider
ORIENT: float
KMONS:  M = broodmother band
SUBST:  - = x., ` = x..., % = %:60 .:30 *:20 |, S = 009...
MAP
 xxxxx  xxxxxx   xxxxx
xx---xxxxx---xxxxx---xx
x--%--xxx--%--xxx--%--x
x-%M%--x--%M%--x--%M%-x
x--%`.---.`%`.---.`%--x
xx--.`.-.`.-.`.-.`.--xx
 xx--.`.`.---.`.`.--xx
 xxx--S`.--x--.`S--xxx
 xx--.`.--xxx--.`.--xx
xx--.`.--xxxxx--.`.--xx
x--.`.--xxxxxxx--.`.--x
x-.`S--xxxxxxxxx--S`.-x
x--.`.--xxxxxxx--.`.--x
xx--.`.--xxxxx--.`.--xx
 xx--.`.--xxx--.`.--xx
 xxx--S`.-xxx-.`S--xxx
 xx--.`.--xxx--.`.--xx
xx--.`.--xxxxx--.`.--xx
x--.`.--xxxxxxx--.`.--x
x-.`S--xxxxxxxxx--S`.-x
 @..--xxxxxxxxxxx--..@
  @--xxxx     xxxx--@
   xxxx         xxxx
ENDMAP

NAME:   nicolae_spider_obnoxious_hallway
TAGS:   transparent
DEPTH:  Spider
ORIENT: float
KMONS:  S = jorogumo / steelbarb worm / tarantella / \
            jumping spider / torpor snail / nothing w:30
KFEAT:  @ = W / .
SUBST:  M = Wx, ' = x.
MAP
 xxxxxxxxxxxxxxxxxxxxxx
 MMxx''xxxxxxxxxx''xxMM
@WWMMSSxxxxxxxxxxSSMMWW@
@WWWWWMxx''xx''xxMWWWWW@
 MMWWWWMMSSxxSSMMWWWWMM
 xxMWWWWWWMxxMWWWWWWMxx
 xxSSMWWWWWMMWWWWMMSSxx
 xx''xxMWWWWWWWWMxx''xx
  xxxxxSSMMWWMMSSxxxxx
   xxxx''xxMMxx''xxxx
    xxxxxxxxxxxxxxxx
ENDMAP

NAME:   nicolae_spider_solar_radiation
TAGS:   transparent
DEPTH:  Spider
KMONS:  R = radroach
KMONS:  S = sun moth
NSUBST: q = R / S / p
SUBST:  x = xxx., p = RS....
MAP
    .......
   ..xx.xx..
  ..x..x..x..
 ..x.p.x.p.x..
..x.x..x..x.x..
.x.p.xxqxx.p.x.
.x...x%.%x...x.
..xxxq.q.qxxx..
.x...x%.%x...x.
.x.p.xxqxx.p.x.
..x.x..x..x.x..
 ..x.p.x.p.x..
  ..x..x..x..
   ..xx.xx..
    .......
ENDMAP

NAME:  nicolae_spider_world_wide_web
TAGS:  transparent patrolling
DEPTH: Spider
KITEM: S = % w:5 / nothing
KMONS: S = jumping spider / jorogumo w:5
KFEAT: ^ = web
SUBST: ` = xx^., S = SSS^., . = .:12 ^:1
MAP
           xxxxx
          xx```xx
         xx`.S.`xx
         x`.....`x
         x...`...x
         x..`x`..x
        @..SxxxS...
       @.`..xxx..`..
      @.x`..`x`..`x..
  xxxx.```S`xxx`S```.xxxx
 xx`.....S``xxx``S.....`xx
xx`...S..``xxxxx``..S...`xx
x`...`xx`xxxxxxxxx`xx`...`x
x`S.`xxxxxxxxxxxxxxxxx`.S`x
x`...`xx`xxxxxxxxx`xx`...`x
xx`...S..``xxxxx``..S...`xx
 xx`.....S``xxx``S.....`xx
  xxxx.```S`xxx`S```.xxxx
      ..x`..`x`..`x.@
       ..`..xxx..`.@
        ...SxxxS..@
         x...x...x
         x.......x
         x`.....`x
         xx`.S.`xx
          xx```xx
           xxxxx
ENDMAP

###############################################################################
#
# <<4>> Spider ending vaults
#
###############################################################################

default-depth:

NAME:   spider_rune_water
PLACE:  Spider:$
WEIGHT: 15
ORIENT: northwest
MONS:   ghost moth, hornet, emperor scorpion / w:5 spark wasp
MONS:   wolf spider / redback / tarantella / jumping spider / culicivora
MONS:   redback
MONS:   orb spider
MONS:   moth of wrath / ghost moth / sun moth
KITEM:  R = milky-white gem
KITEM:  O = potion of ambrosia pre_id, gossamer rune of Zot
NSUBST: 1 = 2:1 / 1:41 / *:4
SUBST:  4 = 444.., 5 = 55..., 6 = 6.
NSUBST: ' = 3:3 / 4:2 / 4=32'' / 2:d / 4 = dee / 4 = ff' / *:'
SUBST:  x : cccx
SUBST:  X = x
: if crawl.coinflip() then
SUBST:  W = WW.
: else
SUBST:  W = W..
: end
KFEAT:  Ww = shallow_water
SUBST:  = : .+
: setup_endvault_loot(_G)
COLOUR: c = white
COLOUR: 18O+'def = lightgrey
FTILE:  18cO+'def = floor_pebble_lightgray
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
xxxxxxxxxxxxxxxxxxxxxxWWWxxxxxxxxxxxxxxxxxxxxxX
xxxxxxxxxxxwwxxxxxxx..5.WxxxxxxxxxxxxxxxxxxxxxX
xxxxxxxxx144wwwxWW6.W..W.WWWWxxxxxxxxxxxxxxxxxX
xxxxxxxxxx44wwwW..WxxW.xx.56.WWxxxxxxxxxxxxxxxX
xxxxxxxxxxx4xxW..Wxxx.WxxWWxW..WxwwwxxxxxxxxxxX
xxxxxxxxxxxxxW.5WxxxxW..xxxxxW..Wwwwww41xxxxxxX
xxxxxxxxxxxxxW..Wxcccc..ccccxW.5.Wxxw444xxxxxxX
xxxxxxxxxxxxxW.Wxxc1'c++c'7cxxWW..Wxxxx4xxxxxxX
xxxxxxxxxxxxW.Wxxxc'''cc'''cxxxxW.WxxxxxxxxxxxX
xxxxxxxxxxxW5Wxxxxc''''''''ccccxxW.WWxxxxxxxxxX
xxxxxxxxxxxW.Wx44xc''''''''+ROcxxWW5.WxxxxxxxxX
xxxxxxxxxxx.Wwww4xcccccccccccccxxxwW..WxxxxxxxX
xxxxxxxxxWW.Wwww4xxxxxxxxxxxxxx44wwwW.WxxxxxxxX
xxxxxxxxW..Wxx41xxxWWWWxxWWWxxx444xxxW.WWxxxxxX
xxxxxxxxW5.WxxxxxWW...4WW4..WWxx1xxxxxW..WxxxxX
xxxxxxxxxW.WxxxxxW.WxW44444W..WxxxxxxxW5.WxxxxX
xxxxxxxxW..WxxxW.5WxxW.4.WxxW5WxxxxxW...WxxxxxX
xxxxxxxxxW..WxW..WxxxxW..WxxW..WxxW..WWWxxxxxxX
xxxxxxxxxxW.5.W..WxxxxxW...WxxW..W..WWxxxxxxXXX
xxxxxxxxxxxWW...Wxxxxxxx...xxxxWW5WWxxxxxXXXX
xxxxxxxxxxxxxWWWxxxxxxxx===xxxxxxWxxxxxXXX
xxxxxxxxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxXX
XXXXXXXXXXXXXXXXXXXXX66.....66XXXXXXXXX
XXXXXXXXXXXXXXXXXX@@@@@@@@@@@@@@@XXXXXX
ENDMAP

NAME:   grunt_spider_rune_circles
TAGS:   no_pool_fixup
WEIGHT: 20
PLACE:  Spider:$
ORIENT: float
MONS:   ghost moth, moth of wrath, emperor scorpion
MONS:   wolf spider / redback / tarantella / jumping spider / culicivora
MONS:   orb spider / steelbarb worm w:7, redback
KITEM:  R = milky-white gem
KITEM:  O = gossamer rune of Zot
NSUBST: 4 = 3:3 / * = 44444..
NSUBST: 7 = 3 = 111.. / 2 = 12
NSUBST: d = 1:R / 3:d / 3:e / *:f
SUBST:  5 = 5., 6 = 66...
SUBST:  W = W..
SUBST:  - = ....WWW^
KFEAT:  ^ = web
: setup_endvault_loot(_G)
MAP
    4 xxx        xx       x
  ..4@xcxxxxxxxxxxxxxxx xxx xx
 W4W.4Wcccxxccccxxccccxxxcxxxxx
 @..4W6W6ccccWWccccWWcccccccccxxxx
W54.x6W6WcWWW.4..........444.ccccxx
wW.xcccW666....W5.W....WWWWW..cccxx
 4Wxcc66..wwwwcccccccc..444....cccxx
@WxxcW-..wwcccc--575dccccc..-.-.cccxx
  xxcW-4.wccdd575dwww4d--ccc.-..cccxx
  WxcW-..5cd4wwwww3Oww474-3c..W5cccxxx
  xxccW.4.c-74.wwwwwww4ddccc6-.Wcccxx
   xxccW4Wcccc..74.dd4---6-6-6ccccxx
    xxcW45..-cccc-3cc-66-6-ccccxxxx
     xcccW-...44cccc6-6-6-ccxxxxxx
     xxxcccccc4.....-6-ccccxx  xx
       xxxxxxccc-----cccxxxx
            xxxcccccccxxx
              xxxxxxxxx
                   xxx
ENDMAP

NAME:    guppyfry_spider_rune
PLACE:   Spider:$
ORIENT:  southwest
MONS:    ghost moth / sun moth, ghost moth / moth of wrath
MONS:    demonic crawler / steelbarb worm / wolf spider
MONS:    w:2 broodmother / w:4 emperor scorpion / w:1 spark wasp
MONS:    tarantella / wolf spider / jumping spider / culicivora
MONS:    redback
MONS:    orb spider
KMONS:   * = emperor scorpion
KMONS:   O = ghost moth
KITEM:   * = potion of ambrosia pre_id
KITEM:   P = milky-white gem
KITEM:   O = gossamer rune of Zot
KFEAT:   C = c
SHUFFLE: OP / 1p / 2Q / *q
NSUBST:  8 = 2:c / *:7, " = 1:. / 1:c. / *:c
NSUBST:  d = 1:e / * = def
SUBST:   3 = 3., 4 = 4., 5 = 55., 6 = 66..., 7 = 777.
SUBST:   - = .....WW^^, pQq = .
KFEAT:   ^ = web
TILE:    C = wall_brick_gray
: setup_endvault_loot(_G)
MAP
xxxxxxxxxxxxxxxxxxx@@@@@@@@@@xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx......xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxx
xxxxxxxxxxccccccccccccc..cccccccccccccxxxxxx
xxxxxxxxxxcccccccccccc-..-ccccccccccccxxxxxxx
xxxxxxxxxxcdWccccccccc-x.-cccccccccWdcxxxxxxxx
xxxxxxxxxxc66.c..4CCCcx..xcCCC4..c.66cxxxxxxxx
xxxxxxxxxxcW.-..cP45Oc6..6c154pc..-.Wcxxxxxxxx
xxxxxxxxxxcc..-c"c55Ccx..xcC55c"c-..ccxxxxxxxx
xxxxxxxxxxcccW.-ccCCCc-..-cCCCcc-.Wcccxxxxxxxx
xxxxxxxxxxcccc..-cccccx.-xccccc-..ccccxxxxxxxx
xxxxxxxxxxccccxW.-c8cc--.-cc8c-.Wxccccxxxxxxxx
xxxxxxxxxxcccc-.-xx--x-xx.x--xx-.-ccccxxxxxxxx
xxxxxxxxxxccc--3-x--.--55--.--x-3--cccxxxxxxxx
xxxxxxxxxxccc.333.-.-.5445.-.-.333.cccxxxxxxxx
xxxxxxxxxxccc--3-x--.--55--.--x-3--cccxxxxxxxx
xxxxxxxxxxcccc-.-xx--x.xx-x--xx-.-ccccxxxxxxxx
xxxxxxxxxxccccxW.-c8cc-.--cc8c-.Wxccccxxxxxxxx
xxxxxxxxxxcccc..-cccccx-.xccccc-..ccccxxxxxxxx
xxxxxxxxxxcccW.-ccCCCc-4.4cCCCcc-.Wcccxxxxxxxx
xxxxxxxxxxcc..-c"c55Ccx-.xcC55c"c-..ccxxxxxxxx
xxxxxxxxxxcW.-..cq45*c7--7c254Qc..-.Wcxxxxxxxx
xxxxxxxxxxc66.c..4CCCccffccCCC4..c.66cxxxxxxxx
xxxxxxxxxxcdWccccccccccccccccccccccWdcxxxxxxxx
xxxxxxxxxxccccccccccccccccccccccccccccxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   grunt_spider_rune_parallel
PLACE:  Spider:$
ORIENT: east
WEIGHT: 15
MONS:   ghost moth, moth of wrath
MONS:   emperor scorpion / spark wasp w:6 / radroach w:6 / broodmother w:6
MONS:   wolf spider / redback / tarantella / jumping spider / culicivora
MONS:   meliai / steelbarb worm / orb spider, redback
KITEM:  R = milky-white gem
KITEM:  O = gossamer rune of Zot
NSUBST: 1 = 2:1 / 1:1.. / *:4
NSUBST: O = 1:O / *:d, d = 3:d / 3:e / *:f
SUBST:  2 = 12, 4 = 44..., 5 = 55. " = ^^...6, - = .....w^^
SUBST:  6 = 6.
KFEAT:  ^ = web
SUBST:  C : cx
KMASK:  w = no_monster_gen
: setup_endvault_loot(_G)
MAP
                      xxxxxxxxxxx
              xxxxxxxxxxxxxxxxxxxxxxxx
   xxxxxxxxxxxxxxxxxxxCCCCCCCCCCxxxxxxxx
xxxxxxxxxxxxxxxCCCCCCCC--------CCCCCcxxxxxx
xxxxxCCCCCCCCCCC--C-----...4..------cccccxxxxx
CCCCCC-----------.C......5.4.4.4...----cccxxxxx
-------...........C.""""...1.4.4...."""---cccxxxx
."""........4.4...CCP"""3.5.4.4.4.."""...---ccxxxx
@"""5......4.4.....C"""".-------.4.""".....--ccxxx
@..........4..4....CC..---ccccc-.----...3.4.--ccxx
@-------------......CC--ccc---cc--cc-..4..4..--cxx
@-ccccccccccc--------cccc---.--cc----.4..44.dd-cxx
@--------------cccccccc---.4.4----.......4..dOdcxx
@"".......4...----------....4.4........3.4R412Ocxx
@""5.....4.4....""""".5x.4.4.4.5.........4..dO-cxx
@"".....4.4.....""""".1...4...4...----4..44.dd-cxx
@---------.4..."""""..5x...4-------cc-.4..4.--ccxx
@-ccccccc-----..""""".-------ccccc----..3..--ccxxx
@-------ccccc---------cccccccc-----."""""---ccxxx
@"""5..--------ccccccccc-------4....."""--cccxxxx
.""".....4....--------C--..4.4.4....."--ccxxxxxx
------....4.4.4......CC.3.5..4.4.....---ccxxxxxx
CCCCC-----.4.4......CC""""..4.4....---cccxxxxxxx
xxxxCCCCC-----.....CCP"""".1.4.4..--CCCxxxxxxxx
xxxxxxxxCCCCC---...C..""""5......--CCxxxxxxxxx
 xxxxxxxxxxxCCC---.C---....-------CCxxxxxxxxx
    xxxxxxxxxxCCCCCCC-------CCCCCCCxxxxxxx
         xxxxxxxxxxxCCCCCCCCCxxxxxxxxx
             xxxxxxxxxxxxxxxxxxxxxxx
                xxxxxxxxxxxxxxxxx
ENDMAP

NAME:    grunt_spider_rune_island
TAGS:    no_monster_gen
PLACE:   Spider:$
ORIENT:  west
MONS:    ghost moth, moth of wrath, sun moth
MONS:    emperor scorpion / w:5 spark wasp / w:5 jorogumo
MONS:    orb spider
MONS:    wolf spider / redback / tarantella / culicivora / jumping spider
MONS:    demonic crawler / steelbarb worm / torpor snail / meliai
KITEM:   R = milky-white gem
KITEM:   O = gossamer rune of Zot
KFEAT:   ^ = web
KFEAT:   _ = .
NSUBST:  d = 1:O / 3:d / 3:e / *:f
NSUBST:  h = 2:9 / 2 = 4. / *= 6667....
NSUBST:  9 = 3:13 / 1:2 / * = 6.., ? = 1:_ / *:"
SUBST:   5 = 5.., g = 6667....
SUBST:   0 = 667...
SUBST:   + = ^^^+
SUBST:   " = ...xxW^
SUBST:   - = ...cWW^^^
SUBST:   . = .:20 x:2 ^:1
SUBST:   c : cx, C : c
: setup_endvault_loot(_G)
MAP
  xxxxc--"""""@"""x""@5""""""--ccc
 xxxccc-.""".....g.g...."""...--"c
 xxxc--...""".....g....."".....-""
xxccc-...5.""...5......."".....-"-
xcc---......""...g.g..."".5....g"-
xc--h........WWWWWWWWWWW"....g.-"-
xcc..h....5.WWwwwwwwwwwWWW....5-"-
xcc...h.h..WWwwwwwwwwwwwwWW..g.-"@
xcc....h..WWwwwCCCCCCwwwwwW...g-"-
xcch.5...hWwwwCC----CCCwwwW...g-"-
xc-......_WwwCC--0R---CwwwW....-"-
xc-..h.._-WwwC--409__-CCwwW..0.-"-
xc-.h.h_-"-?wC-0ddd0_--CwwW.5..-"-
xc-..._-"---_+49dddd9-CCwwW...g-"-
xc-.h.h_-"-?wC-0ddd0--CwwwW...g-"-
xc-..h.._"WwwC--409--CCwwwW..g.-"@
xcc..5..._WwwCC--0_-CCwwwWW....-"-
xcc.......WwwwCC----CwwwwW....5-"-
xcc......hWwwwwCCCCCCwwwWW...g.-"-
xcc.......WWwwwwwwwwwwwWW......g"-
xc-h....h...WwwwwwwwwwWW.......-"-
xc-.5..h....WWWWWWWWWWW........-"-
xc--..h......".5g.g..."....5...-""
xcc--h......""........"".......-"c
xxcc-.h.....""...g...."".......-"c
 xxc"""""5""""""g"g""5""""""""""cc
  xc----@-"-----x------""-@----ccx
ENDMAP

##########################################
# Made pre-exile, but still named in her honour,
# and also still named for easier statistics assessment.
NAME:   johnstein_spider_rune_arachne_lair
TAGS:   no_monster_gen
ORIENT: float
PLACE:  Spider:$
# Decorative floor glyphs: '"-_!?^
# Picks 1 of 3 different flavors.
: if crawl.one_chance_in(3) then
KMONS:   1 = tarantella / wolf spider / redback w:20 / \
             jumping spider w:30 / culicivora
KMONS:   2 = torpor snail / pharaoh ant
SUBST:   "-? = .
SUBST:   '_!^ = Y
FTILE:   Y = FLOOR_HALL
COLOUR:  Y = blue
: elseif crawl.one_chance_in(2) then
KMONS:   1 = redback w:20 / wolf spider / tarantella w:30 / \
             jumping spider / culicivora
KMONS:   2 = entropy weaver / steelbarb worm
SUBST:   '-! = .
SUBST:   "_?^ = Y
COLOUR:  Y = red
FTILE:   Y = FLOOR_ROUGH_RED
: else
KMONS:   1 = tarantella / wolf spider w:30 / redback w:20 / \
             jumping spider / culicivora
KMONS:   2 = meliai / spark wasp w:5
SUBST:   '"_ = .
SUBST:   -!?^ = Y
COLOUR:  Y = brown
FTILE:   Y = FLOOR_SANDSTONE
: end
KMONS:   3 = emperor scorpion / spark wasp w:5 / jorogumo
KMONS:   4 = moth of wrath / ghost moth w:40 / sun moth
KMONS:   5 = orb spider w:40 / demonic crawler
KMONS:   6 = torpor snail / entropy weaver
KMONS:   Z = jorogumo
KITEM:   O = gossamer rune of Zot
KITEM:   o = milky-white gem
KFEAT:   Y = web / floor w:40
SHUFFLE: Gg / Hh / Ii / Jj / Kk / Ll
SUBST:   G = O, g = o, HhIiJKL = %, jkl = .
# thin out monsters and set up loot
SUBST:   1 = 111.....
NSUBST:  % = 2:d / 2:e / 2:f / * = def...
NSUBST:  2 = 6 = 5. / 2:4 / 6 = 2. / *:1
NSUBST:  3 = 4:3 / 1:6 / * = 2.
: setup_endvault_loot(_G)
MAP
    .......@@@@@.......
   ..cccccc5...5cccccc..
   .cc.Gcccc+++ccccH.cc.
   ccg4.c..2.2.2..c.4hcc
  cc..3cc.2.2.2.2.cc3..cc
 xc...cc.2'''''''2.cc...cx
 xc.2cc.Z1c''!''c1Z.cc2.cx
 xc..c.'1ccc!!!ccc1'.c..cx
xxc.1.'''1c--!--c1'''.1.cxx
xcc.1''''_"?????"_''''1.ccx
xc.1..'''"???^???"'''..1.cx
xc..c..'1c??^^^??c1'..c..cx
xc.2c..1ccc?^^^?ccc1..c2.cx
xc1.cc..1c'!^^^!'c1..cc.1cx
xcI3ic..1''!^^^!''1..cj3Jcx
xc1.cc..1c'!^^^!'c1..cc.1cx
xc.2c..1ccc?^^^?ccc1..c2.cx
xc..c..'1c"?^^^?"c1'..c..cx
xc....'''"""?^?"""'''....cx
xcc.1''''_""???""_''''1.ccx
 xcc.1'''1c1-!-1c1'''1.ccx
 xcc.1.'1ccc'!'ccc1'.1.ccx
 xcc..c..1c'''''c1..c..ccx
 xcc..cc.2'''''''2.cc..ccx
 xc2.ccc..Z2...2Z..ccc.2cx
 xc..cccc1..222..1cccc..cx
 xc..cccc.1..2..1.cccc..cx
 xc2.ccc...........ccc.2cx
  cc..c1.1cc+++cc1.1c..cc
   c..cc1.cc.1.cc.1cc..c
   cc1.cc..c111c..cc.1cc
    cc.3cc%c.1.c%cc3.cc
     cck4ccc...ccc4lcc
     .cc.Kcc5.5ccL.cc.
     ..ccccc...ccccc..
      .....@@@@@.....
ENDMAP

# Tomb flavoring, death scarabs
NAME:   floodkiller_spider_rune_tomb
TAGS:   no_monster_gen
PLACE:  Spider:$
ORIENT: east
MONS:   death scarab
MONS:   wolf spider spectre / wolf spider zombie w:5 / demonic crawler w:5 \
        / emperor scorpion spectre w:2 / pharaoh ant w:3 \
        / broodmother zombie w:3 / jorogumo w:2 / jorogumo spectre w:3
MONS:   jumping spider spectre w:20 / tarantella spectre w:20 \
        / redback spectre w:20 / culicivora spectre / jumping spider zombie \
        / tarantella zombie / redback zombie / culicivora zombie w:5
MONS:   jumping spider / tarantella / redback / wolf spider w:5 \
        / steelbarb worm w:5 / orb spider w:3 / spark wasp w:2 \
        / pharaoh ant w:5 / culicivora
MONS:   emperor scorpion / jorogumo w:5, ghost moth, moth of wrath
: setup_endvault_loot(_G)
ITEM:   gold good_item
KITEM:  R = milky-white gem
KITEM:  O = potion of ambrosia pre_id, gossamer rune of Zot
KFEAT:  M = stone_wall
KFEAT:  P = granite_statue
NSUBST: S = 4:1 / 6 = 1. / *:., H = 4:5 / 1:6 / 1:7 / *:K
SUBST:  K = 2 5:4 6:2 7:2 E:20, E = 3 4:30 .:20
SUBST:  Q = W .:15
NSUBST: d = 2:d / 2:e / 3:f / *=gggge
NSUBST: N = 4:W / c
COLOUR: M = yellow
# Bring this back when we can split descriptions across features in the same vault.
# TILE:   G = dngn_statue_snail w:15 / dngn_statue_tentacles / \
#             dngn_statue_sigmund / dngn_statue_wraith w:15
TILE:   GP = dngn_sarcophagus_pedestal_left
TILE:   M = wall_tomb
FTILE:  23+$OEGHNPRS. = floor_sandstone:20 / none
: vault_granite_statue_setup(_G, "GP", "sarcophagus")
MAP
  .....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  .G.G.cccccccccccccccccccccccccccccccx
  .....c.....WWWWWWWW..HE...x..WWH.x.cx
  .....c..x...WWxWW..........WWWW....cx
  .G.G.cWWW....WWW.x.E.x....WWWxW....cx
  .....cWWWW..E...H......WWWWWWW....Ecx
  .....cWWWWx...E......WWWxWWW......xcx
  .G.G.c.WW..ccccccccccccccccccc.....cx
  .....cE....c....x............c...E.cx
@......cx....cx...........H.xH.c....Hcx
@..G.G.cE....c........x...EE..Ec.x...cx
@......c..x..c..HMMMMMMMMMM.E.Wc....Ecx
@E.ccc.c.....c...MS..2SdSdM..WWcWW...cx
@QccccccW....c...M.3S3.SMSMxWWWNWWW..cx
@QWcccccWx..Ec.E.+..3..dMdMNNNNNWWx..cx
@QWWWccWWW...c...+.S.SdSMdMWWWWWWWWE.cx
@QWWWWWWWW..Ec..H+..S3RdPOM..WWWWWW..cx
@QWccWWWWW..Hc.E.+.S.SdSMdM.WWWWWWWW.cx
@QcccccWWW..Ecx..+..3..dMdMNNNNNWxWW.cx
@.ccccccWW...c...M.3S3.SMSMWWWWNWWWWEcx
@E.cc.ccW.x.Ec.E.MS..2SdSdM..WWcWWW..cx
@......c..W..c..HMMMMMMMMMM.E.Wc.WW.xcx
@..G.G.c.....c.......x....EE...c.WWE.cx
@......c.....c.x..........H.HxEc.WW.Hcx
  .....cx....c...........x.....c.WW..cx
  .G.G.c.....ccccccccccccccccccc.xWW.cx
  .....c........WxWWWW.x......x...WWEcx
  .....cExE..xWWWWWWWWW...........WWWcx
  .G.G.c...WWWWW...WWWWWWWW.x.....WxWcx
  .....cWWWWWWW...Hx.EWWWxWW....H..WWcx
  .....cWWWx..E.E......HEWWWW......WWcx
  .G.G.cccccccccccccccccccccccccccccccx
  .....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

# Broodmother-heavy map
NAME:   hellmonk_spider_rune_endless_swarm
PLACE:  Spider:$
ORIENT: southeast
MONS:   wolf spider / jumping spider / redback / tarantella / culicivora
MONS:   orb spider
MONS:   steelbarb worm / torpor snail / meliai / pharaoh ant / entropy weaver
MONS:   emperor scorpion w:30 / ghost moth w:20 / moth of wrath / sun moth
MONS:   jorogumo w:15 / radroach / spark wasp w:5
MONS:   broodmother
KITEM:  P = milky-white gem
KITEM:  O = potion of ambrosia pre_id, gossamer rune of Zot
KFEAT:  ^ = web
NSUBST: . = 80 = 1... / *:., 2 = 2:2 / *=2...
NSUBST: 6 = 4:6 / 4 = 456. / *= 4..
NSUBST: d = 1:O / 1:P / 3:d / 3:e / 3:f
SUBST:  3 = 3....
SUBST:  ; : ;;;;;c
SUBST:  : = ...xxW^, - = ....W^, Q : xWW, R = ...W^, ; = ...^
: setup_endvault_loot(_G)
MAP
            xxxxxxxxx
           xxxxxxxxxxxxx
         @xxxx:::::::xxxxx
        @2'''--c.c--.:::xxxx
       @'''.-xxx.xxx-..2:xxxx
      @'''..-xx...xx-....::xxx
     @'''...cx..3..xc......:xxx
    @'''........63..........:xxx
   @'''.....cx..3..xc........:xx
  x2'''.....-xx...xx-.........:xx
  xx''......-xxx.xxx-........2:xx
 xx'--c.x--..--c.c--...........:xx
 xx-xxx.xxx-.........3..--x.x--:xx
 x:-xx...xx-...........-xxx.xxx-:xx
 x:cx.....xc...........-x.....x-:xx
 x:...363..............xx..3..xx:xx
xx:cx..3..xc..--x.x--.....363..x-:xx
xx:-xx...xx-.-xxx.xxx-.xx..3..xx-:xx
xx:-xxx.xxx-.-xx....x-.-x.....x-.:xx
xx:.--c.c--..xx..3..xx.-xxx.xxx-2:xx
xx:.............363.....--x.x--..:xx
xx:...RR.....xx..3..xx...........:xx
xx:..RQQR....-xx...xx-....3.....:xxx
xx:.RQQQQR...-xxx.xxx-........6.:xxx
xx:..RQQR.....--x.x--...........:xxx
xx:...RR...3...........ccc+ccc..:xxx
 xx:.6...............ccc.....ccc:xx
 xx:.....--x.x--.....c6........c:xx
 xxx:...-xxx.xxx-...cc...;;;..3ccxx
  xx:2..-xx...xx-...c...;;c;;.6dcx
  xxx:..xx.....xx...+..;;ccc;;6dcx
   xx:.....363......c...;;c;;33dc
   xxx:.xx..3..xx...cc...;;;36dcc
    xx:.-xx...xx-....c33..633ddc
    xxx:-xxx.xxx-....cccdddddccc
     xxx:--x.x--..6....cccccccx
      xx::...........2..:xxxxx
       xxx::.2......::::xxxxx
        xxxx:::..:::xxxxxxxx
          xxxxx::xxxxxxxxx
            xxxxxxxxxxxx
ENDMAP

# A spider-free end vault. Lower density to compensate for tougher monsters.
# No webs (because there are no spiders, you see)
NAME:   hellmonk_spider_rune_bug_friends
PLACE:  Spider:$
ORIENT: float
TAGS:   no_monster_gen no_trap_gen
MONS:   boulder beetle / meliai
MONS:   steelbarb worm w:15 / demonic crawler
MONS:   pharaoh ant / entropy weaver / torpor snail
MONS:   ghost moth w:15 / sun moth / moth of wrath w:5
MONS:   emperor scorpion
MONS:   radroach / spark wasp
KITEM:  R = milky-white gem
KITEM:  O = potion of ambrosia pre_id, gossamer rune of Zot
NSUBST: 7 = 4:7 / 1:. / * = 7..
# bias the big monsters, randomly
: if crawl.one_chance_in(3) then
    SUBST:  7 = 44456
: elseif crawl.one_chance_in(2) then
    SUBST:  7 = 45556
: else
    SUBST:  7 = 45666
: end
NSUBST: . = 12 = 3... / 16 = 2... / 16 = 1... / *:.
NSUBST: ' = 10 = 1... / 16 = 2... / 1:3 / 1:3. / *:.
# bias the ruination level of the terrain
: if crawl.one_chance_in(3) then
    SUBST:  A = cc.
: elseif crawl.one_chance_in(2) then
    SUBST:  A = c.
: else
    SUBST:  A = c..
: end
NSUBST: d = 3:d / 3:e / *:f, R = 1:R / *:$
: setup_endvault_loot(_G)
MAP
        cccc     cccc
       ccddcccccccddcc
       cd7.RccOccR.7dc
       cc..AcdddcA..cc
        cc..cc7cc..cc
         c....7....c
        cc....A....cc  cccc
   cccccc7...AcA...7cccc..ccc
  cc....A..AcccccA..AA......cc
  c....cc..Ac.7.cA..AAcA....cc
  cc..cc..cc.....cc..Ac...ccc
   c.AA....A.....A......ccc
  cc7..................7cc
 cc...cA....A'''A....cc..cc
cc...Accc.ccc'''ccc.AA....cc
ccA..AcccAcA'''''Accc....cc
 cc..ccA'''''''''''Acc.ccc
  c...cA'''''''''''''ccc
  c.ccc''''A'''''A''''Ac
  cccc''''Acc'''ccA''''c
     c''''Acc@@@ccA''''c
     cc''ccc     ccA''cc
      cc'cc       cc'cc
       ccc         ccc
ENDMAP
