##############################################################################
#
# The Sewer (Eino)
#
# The Sewer aspires to be an exciting place to go with a low level character.
#
# Flavour: drainage and sewer themed, so rats, kobolds, etc. Water is (dark
# and light) green.
# Gameplay: an early challenge, featuring monsters which are bland later but
# interesting when encountered at low level (river rat, bullfrog etc.) Loot
# consists of renewable items; the harder maps contain a few good items.
#
##############################################################################

{{

-- Sewer entry vaults should call this function to place the portal and have a
-- single `O' glyph for the portal location. Additionally, if they want the `1'
-- glyph to place a monster, they should define the `1' through KMONS (and not
-- the usual MONS statement).
function sewer_portal(e)
  local timeout_turns = crawl.random_range(600, 800)

  local messager =
    timed_msg {
       initmsg = { "You hear the sound of rushing water.",
                   "There is an entrance to a sewer on this level. "
                   .. "Hurry and find it before the portal rusts away!" },
      finalmsg = "You hear the drain falling apart.",

      verb = 'rusting',
      noisemaker = 'drain',
      ranges = {
        { 5000, 'slow ' },  { 4000, '' },
        { 2500, 'brisk ' }, { 1500, 'quick ' },
        { 0, 'rapid ' }
      }
    }

  e.lua_marker('O',
      timed_marker {
        disappear = "The drain falls to bits.",
        entity = 'drain',
        turns = timeout_turns,
        single_timed = true,
        floor = "expired_portal",
        feat_tile = "dngn_portal_sewer_rusted",
        msg = messager })
  e.tags("uniq_sewer no_monster_gen chance_sewer")
  e.chance(800)
  e.kfeat("O = enter_sewer")
  e.kfeat("1 = W")
  e.colour("1W = lightgreen / cyan w:5")
  e.colour("w = green")
  e.tile("x = wall_oozing")
  e.tile("c = wall_stone_mossy")
end

function sewer_setup(e)
  e.kfeat("< = exit_sewer")
  e.colour("w = green")
  e.colour("W = lightgreen")
end
}}

# Basic sewer entries ##########################################
# NOTE: See comments above regarding KMONS for the 1 glyph in these vaults.
default-depth: D:3-6

NAME:   portal_sewer_entry_a
: sewer_portal(_G)
SUBST:  1 = 2234..........
MONS:   nothing
MONS:   rat / river rat w:5
MONS:   ball python / adder w:2
MONS:   giant cockroach / ribbon worm w:3
MAP
.........
...111...
..1WWW1..
.1WWWWW1.
.1WWOWW1.
.1WWWWW1.
..1WWW1..
...111...
.........
ENDMAP

NAME:   portal_sewer_entry_b
ORIENT: float
: sewer_portal(_G)
SUBST:  ' = W. , W = WW1
KMONS:  1 = rat w:20 / river rat / ball python / adder w:2 / \
            giant cockroach / ribbon worm w:3
MAP
xxxxxx
xOWWW'
xWWWW.
xWWW'.
xWWW..
xW'...
ENDMAP

NAME:   portal_sewer_entry_c
WEIGHT: 4
: sewer_portal(_G)
NSUBST: W = 8 = 111W / *:W
NSUBST: n = 1:+ / 2:n / *:c
TILE:   c = wall_stone_mossy
KMONS:  1 = rat w:20 / river rat / ball python / adder w:2 / \
            giant cockroach / ribbon worm w:3
MAP
.........
.nnnnnnn.
.nWWWWWn.
.nWWOWWn.
.nWWWWWn.
.nWWWWWn.
.nnnnnnn.
.........
ENDMAP

NAME:   portal_sewer_entry_d
: sewer_portal(_G)
KMONS:  1 = patrolling adder
KFEAT:  1 = W
MAP
xxxxxxxxxx
xWOW1WWWWW@
xxxxxxxxxx
ENDMAP

NAME:   portal_sewer_entry_e
: sewer_portal(_G)
ORIENT: northwest
NSUBST: X = 2:+ / *:x
SUBST:  w = WW.
NSUBST: W = 8:111W / *:W
KMONS:  1 = rat w:20 / river rat / ball python / adder w:2 / \
            giant cockroach / ribbon worm w:3
MAP
xxxxxxxxx
xWWWXWww.
xWOWXWww.
xWWWXWww.
xXXXXWw..
xWWWWWw..
xwwwww...
xwww.....
x........
ENDMAP

NAME:   portal_sewer_entry_f
: sewer_portal(_G)
KMONS:  1 = quokka / giant cockroach / nothing w:5
NSUBST: W = 6:1 / *:W
COLOUR: W = green / cyan w:5
MAP
xxxxxxxxxxx
.WWWWWWWWW.
@WWWWOWWWW@
.WWWWWWWWW.
xxxxxxxxxxx
ENDMAP

NAME:   gup_sewer_entry_pipe
TAGS:   patrolling no_pool_fixup
: sewer_portal(_G)
KMONS:  2 = giant cockroach / quokka / nothing
SUBST:  W = WW.
MAP
@Wxxxxxxxxx
WWWWWWWWWWxx
xWWwwwwwwWWx
xxxxxxxxx22x
 xxwwwwww22x
xxWWW2O2WWxx
x22wwwwwwxx
x22xxxxxxxxx
xWWwwwwwwWWx
xxWWWWWWWWWW
 xxxxxxxxWW@
ENDMAP

NAME:   gup_sewer_entry_spiral
TAGS:   patrolling
: sewer_portal(_G)
KMONS:  1 = rat / river rat w:5 / adder w:5 / giant cockroach / \
            quokka / ribbon worm w:5 / nothing
NSUBST: - : 8:1 / 8:. / *:W
MAP
xxxxxxxxxx
x--------xx
@xxxxxxxx-x
xx-----xx-x
x-xxxxx-x-x
x-xx-Ox-x-x
x-x-xxx-x-x
x-xx----x-x
x-xxxxxxx-x
xx-------xx
 xxxxxxxxx
ENDMAP

NAME:   gup_sewer_entry_bubbles
TAGS:   patrolling
: sewer_portal(_G)
KMONS:  1 = rat / river rat w:5 / adder w:5 / giant cockroach / \
            quokka / ribbon worm w:5 / nothing
NSUBST: - = 8:1 / *:W
MAP
 xxx    xxx
xx-xxxxxx-xx
x----------x
x---xxxx---x
xx-xx--xx-xx
 x-x--O-x-x
 x-x----x-x
xx-xx--xx-xx
x---x--x---x
x---x------x
xx-xxxxxx-xx
 x@x    xxx
ENDMAP

NAME:   gup_sewer_entry_bowl
: sewer_portal(_G)
KMONS:  1 = rat / river rat w:5 / \
            giant cockroach / quokka / ribbon worm w:3 / nothing
MAP
..........
.xxx.xxxx..
.xWxxxWWxx+.
.xW+WW11WWx.
.xO+WW11WWx.
.xWxxxWWxx+.
.xxx.xxxx..
..........
ENDMAP

NAME:   gup_sewer_entry_glass
: sewer_portal(_G)
KMONS:  1 = adder / giant cockroach / nothing
MAP
..........
.mmmmmmm.
.mW1W1Wm.
.+W1O1Wm.
.mW1W1Wm.
.mmmmmmm.
.........
ENDMAP

NAME: lightli_sewer_entry_pipes
NSUBST: o = 1:O / *:W
SUBST: W = WWWWW1
KMONS: 1 = river rat / adder / rat / ribbon worm
: sewer_portal(_G)
MAP
vvvvvvvvvv
vovWovWvvv
vWvWvvWWWv
vWvWvvWvWv
vWvWWvWvWv
vWvvWvWvWv
vWWWWvWvWv
vvvvWvWvWv
vWWWWWWvov
vWvvvvvvvv
vWWWWWWWWW
vvvvWvWvWW
..WWWWW.W.
....W.....
..........
ENDMAP

NAME: cheibrodos_sewer_entry_bend
TAGS: no_monster_gen
ORIENT: northeast
KMONS: 1 = ribbon worm
NSUBST: - = 1:1 / 1=1.. / 1=1...
KFEAT: A = iron_grate
: sewer_portal(_G)
MAP
xxxxxxxxxxxxxx
xxAAxxxxxxxxxx
xxWWxxxxx---xx
...WWWWWWW--xx
....WWWWWWW-xx
 @..xxxxOWWxxx
  .....mxWWxxx
     @..xWWxxx
      @.xWWxxx
       .xWWxxx
       ...WWAx
       ....WAx
        @..xxx
         ..xxx
ENDMAP

NAME: cheibrodos_sewer_entry_drain
TAGS: no_monster_gen
ORIENT: float
KMONS: 1 = rat / ball python / giant cockroach / ribbon worm
NSUBST: 1 = 2:1 / 2=1.. / *:.
: sewer_portal(_G)
MAP
  ...@...
 ..x1.1x..
...WWWWW...
.xWWWWWWWx.
.1WWWWWWW1.
@.WWWOWWW.@
.1WWWWWWW1.
.xWWWWWWWx.
...WWWWW...
 ..x1.1x..
  ...@...
ENDMAP

NAME: cheibrodos_sewer_entry_sluice
TAGS: no_monster_gen
ORIENT: float
KMONS: 1 = ball python / ribbon worm / bat / w:5 river rat
SHUFFLE: AB
SUBST: A = w, B = .
NSUBST: . = 2:1 / 2=1.
: sewer_portal(_G)
MAP
.....@.....
.xxwwAwwxx.
.xxwwAwwxx.
.ww.....ww.
.ww.....ww.
.ww..O....@
.ww.....ww.
.ww.....ww.
.xxwwwwwxx.
.xxwwwwwxx.
...........
ENDMAP

NAME:    mainiacjoe_sewer_entry_somewhere_in_here_1
KMONS:   1 = frilled lizard / rat / giant cockroach / ball python / \
             river rat w:2 / ribbon worm w:3 / adder w:4
KMONS:   2 = iguana
KFEAT:   @2 = shallow_water
NSUBST:  O = 1:O / 5:1 / 1:1W / *:W
: if you.depth() > 4 then
SHUFFLE: 12
NSUBST:  2 = 1:2 / *:W
: end
NSUBST:  P = 1:@ / *:x, Q = 1:@ / *:x
: sewer_portal(_G)
MAP
 PPPPPPP
xxWxWxWxx
xWxOxOxWx
xxOxOxOxx
xWxOxOxWx
xxOxOxOxx
xWxOxOxWx
xxWxWxWxx
 QQQQQQQ
ENDMAP

NAME:    mainiacjoe_sewer_entry_somewhere_in_here_2
KMONS:   1 = frilled lizard / rat / giant cockroach / ball python / \
             river rat w:2 / ribbon worm w:3 / adder w:4
KMONS:   2 = iguana
KFEAT:   @2 = shallow_water
: if you.depth() > 4 then
SHUFFLE: 12
NSUBST:  2 = 1:2 / *:W
: end
NSUBST:  @ = 1:@ / 1:x, 1 = 1:1W / *:1, O = 1:O / *:W
: sewer_portal(_G)
MAP
xxxxx@xxx
xOxOxWxOx
xWxWxWxWx
xxW1x1Wxx
x1xx1xx1x
xxW1x1Wxx
xWxWxWxWx
xOxWxOxOx
xxx@xxxxx
ENDMAP

# The actual portal vaults #####################################
# Currently, the total weight is 180
default-depth: Sewer

### KOBOLDS ################################################################
# Sewers with kobold settlements.

############################################################################
# Sewer with a small kobold camp, potion treasure and Ely/Zin altar.
#
NAME:     sewer_kobolds
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
SUBST:    ' = .W
SUBST:    ? = .x
: sewer_setup(_G)
# some fresh water for the kobolds
KFEAT:    Y = deep_water
KFEAT:    y = shallow_water
KFEAT:    E = altar_zin / altar_elyvilon w:30
MONS:     jackal, kobold, kobold brigand
MONS:     rat w:15 / river rat w:7
ITEM:     potion of curing ident:type / potion of heal wounds ident:type
ITEM:     potion of enlightenment ident:type
SHUFFLE:  de
SUBST:    1 = 1..., 2 = 2., 4 = 4.
NSUBST:   3 = 1:3 / *:3.
MAP
         ccc
         cwcc
        ccwwc
        cwwwc
        cwwwc
        cwwwc
        cWwwc
       ccWwWcc
       c.WwW.c
     ccc.WwW.c
     c<..WwW.c
     ccc.Www'c
       c.WwW.c
      cc'WwW'cc
      c.'WwW''cccccccccccccccccccccccccccccccccc
      c''WwWWWWWWWWWWWWWWWWWWWWWW44444.A<..4444c
      c''WwW''cccccccccccccccccccccccccccccccccc
      c.'WwW''c
      c.WWwWW'c
      c'WwwwW'c
      c'WwwwW'c
      c'WwwwW'c
      c1'WWW''c
      c.2''''1c
xxxxxxcccc1ccccx
xedExxxx11221..xx
xdexxxx.22322y..x
xx?.?xxx....yYy.x
 xx?.xxx?....y.xx
  x?x..?.?3...xx
  xx???.xxxxxxx
   xxxxxx
ENDMAP

############################################################################
# Water treatment center, staffed by kobolds
#
NAME:   sewer_minmay_treatment
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
MONS:   rat / river rat w:3
MONS:   kobold / kobold brigand w:1
MONS:   ball python / adder w:5 / frilled lizard w:2 / endoplasm w:1
SUBST:   y : yyyyyyW., Y : YYYYYYWw
SUBST:   y = W., Y = Ww
: item(dgn.loot_potions .. " / any scroll w:30 / any armour / any weapon")
: sewer_setup(_G)
: set_feature_name("clear_stone_wall", "large window")
KFEAT:  C = deep_water
SUBST:  1 = 1., 2 = 2.
NSUBST: - = 64 = 1... / 32 = 3... / *:., d = 4:d / *=d.
MAP
vvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvCCv
vwwnddv..vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--v.2vddnCCv
vwwnd222.v----xxxxxxx-----xxxxxxx--xxxxxx-------v.222dnCCv
vwwvv222.+------xxxx--------xxxx-----xxx--------+.222vvCCv
vwwnd222.v------------xxx-----------------------v.222dnCCv
vwwnddv2.vyyy----------xxx-------xx-----------yyv..vddnCCv
vwwvvvvvvvYYyy--xx-----xx--------xxxx------xxyyYvvvvvvvCCv
vwwwwwwwwwwYYyyxxxx...............xx....yyxxYYYYwcwcCcCCCv
vwwwwwwwwwwwYYYYYYxxyyyyyy.........yyyyyyYYYYwwwcwcwcCCCCv
vwwwwwwwwwwwwwwwwYYYYYYYYyyyyyyyyyyyYYYYYYwwwwwwwcwcCcCCCv
vwwwwwwwwwwwwwwwwwwwwwwwYYYYYYWYYYYYYwwwwwwwwwwwcwcwcCCCCv
vwwwwwwwwwwwwwwwwwwwwwwwwwYYYWYYYYYwwwwwwwwwwwwwwcwcCcCCCv
vwwwwwwwwwwwwwwwwwwwwwwwwYYyyyyyyyYYYYwwwwwwwwwwcwcwcCCCCv
vwwvvvvvvvwwwwwYYYYYYYYYYYyy.....yyyyYYYYwwwwwwwvvvvvvvCCv
vwwnd.v..vYYYYYYyyyyyyyyyyy........yyyyyYYYYYYYYv..v.dnCCv
vwwn.22..vyyyyyyy......................yyyyyyyyyv...22nCCv
vwwvv222.+......................................+.222vvCCv
vwwn..2..v...........xx.........................v..2..nCCv
vwwnd.v..vx..11111.xxxxx.......xx...............v..v.dnCCv
vwwvvvvvvvxxxx111xxxxxx...xx..xxxxx.11111xxx..xxvvvvvvvCCv
vwwvxxxxxxxxxxxxxxxxx<..xxxxx..xxxxxx111xxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxx..AxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvv
ENDMAP

NAME:    kennysheep_pipe_town
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
MONS:    kobold / kobold brigand w:2
MONS:    bat / rat / endoplasm w:5 / ball python / frilled lizard w:5 /\
         giant cockroach w:5 / adder w:1
MONS:    adder / brain worm w:2
KMONS:   . = plant w:1 / fungus w:1 / nothing w:80
KMONS:   p = plant
: item(dgn.loot_potions .. " / any scroll w:30 / any armour / any weapon")
KFEAT:   p = shallow_water
SUBST:   p = ppW
SHUFFLE: DEFH
NSUBST:  D = 9 = 1! / 3:d / 1:d! / *:!
NSUBST:  F = 9 = 1! / 3:d / 1:d! / *:!
NSUBST:  E = 4 = 1! / 3 = d! / *:!
NSUBST:  H = 4 = 1! / 3 = d! / *:!
NSUBST:  . = 7:2 / 4 = 2.. / 2 = 32.. / *:.
SUBST:   ! = .
COLOUR:  p = lightgreen
: sewer_setup(_G)
MAP
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxx..xxxx...xxxx..xxxxxxxxxxxxxxxxxxx
    xxxxxxx.........xx..........x...xxxxxxxxxxxxxxx
    xxxxxxx.....................x...xxxxxxxxxxxxxxx
    cccccc...........................xx......cccccc
    cDDDDc...................................cFFFFc
    cDDDD+......p.............pWpW.......W.pW+FFFFc
    cD<DD+.....WWWW..WWp..WWpWWWWWpWWW...WWWW+FF<Fc
    cDDDDc....pWpWWpWWp...pWWWpWWWWpWp...pWpWcFFFFc
cccccccccccccccccWWWccccccccccWWWWccccccccccWcccccc
cwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWc
cwwWwwwwwWwwwwwWwwwwwWwwwwwWwwwwwWwwwwwWwwwwwWwc
cwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWc
ccc+ccccccccWWccccccccccccWcWcccccccWcccccccccccccc
c!!!cEEEEc.pWWpW........pWWpWWp..pWpWWpWp.WWWcHHHHc
c!A!cE<EE+..WpWW.........WWWpW...WWWWWW....WW+HH<Hc
c!<!cEEEE+................p.W.......WWp...WW.+HHHHc
cccccEEEEc...................................cHHHHc
ccccccccccxx................................xcccccc
xxxxxxxxxxxx.xx.....xxxx....................xxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx.................xxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx............xxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx..xxxx.xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

### FROGS ##################################################################
# Giant frogs, specifically.

############################################################################
# Two fairly watery vaults with (usually) two bullfrogs in the end.
# Loot are good items, and often good scrolls or a scroll of blinking.
#
NAME:     sewer_frog_island_01
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
SUBST:    - = WWW.
SHUFFLE:  |de
: item(dgn.loot_scrolls)
ITEM:     scroll of blinking ident:all
MONS:     frilled lizard w:20 / ball python / giant cockroach w:20 / \
          dart slug / adder w:8
KMONS:    ? = dart slug
KMONS:    ! = bullfrog
KFEAT:    ? = W
KFEAT:    ! = w
NSUBST:   . = 80 = 1.. / *:.
NSUBST:   ! = 1:! / 1:!!!!. / *:w
COLOUR:   ! = green
SUBST:    ~ = .
: sewer_setup(_G)
MAP
ccccccccccccccccccccccccccccccccccc
c...---------.....................c
c.WWW-ccccccccccccccccccccccc.WWW.c
c.WwWWccccccccccccccccccccccc.WwW.c
c.WwwWccccccccccccccccccccccc.WwW.c
c.WwW.ccccccccccccccccccccccc.WwW-c
c.WwwWccccccc!!!!!!cccccccccc-WwW-c
c.Wwwwccccwwwwwwwww!!!ccccccc-WwW-c
c-Wwwwccwww?wwwwwwwwww!cccccc-WwW-c
c-WwwwcwwWW<-wwwwwwwwww!ccccc-WwW-c
c-Wwwwwwww-..-ww.--wwwww!cccc-WwW-c
c-WwWwwWww---.-e*.--wwwwwcccc-WwW-c
c-WwWWWwWww-.--***.wwwwwwcccc-WwW.c
c-WwWWwwwWww.---d-wwwwwwwcccc-WwW.c
c-WwWWWwwwW------wwwwwwwwcccc.WwW.c
c-WwWWWwwww?---wwwwww?wwccccc.WwW.c
c-WwW.WwwwwwwwwwwwwwWwwwccccc-WwW.c
c.WwW.WwwwwwWWwwwwwwwWccccccc-WwW-c
c.WwWW..WWWWwwWwWW.........---Www-c
c.WwwWWWWwwwWWwWWWWWWWWWWWWWWWWwW-c
c.WWwwwwwwwwwwwwwwwwwwwwwwwwwwwwW.c
c..WWWWWWWWWWWWWWWWWWWWWWWWWWWWwW-c
cc........................----WwW-c
 cccccccccccccccccccccccccccc-WwW-c
                     cccccccc-WwW-c
              cccccccc~----WWWWwW.ccccxxx
              c~<~A~~--W-WWWWWWwwwwwwwwwx
              cccccccc~-~~WW-.WWW.cccccxx
                     cccccccc.....c
                            ccccccc
ENDMAP

NAME:     sewer_frog_island_02
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
SUBST:    - = WWWW.
KMONS:    1 = frilled lizard / ball python / giant cockroach / \
              dart slug / endoplasm / adder w:4
KMONS:    ! = bullfrog
: item(dgn.loot_scrolls)
ITEM:     scroll of blinking ident:all
KFEAT:    1W = W
KFEAT:    ! = w
NSUBST:   W = 175 = 1WWW / *:W
NSUBST:   ! = 1:! / 1:!!!!. / *:w
COLOUR:   1! = green
SHUFFLE:  ed|
: sewer_setup(_G)
MAP
           ccccccccccccc
        cccc-----------cccc
     cccc-----------------cccc
    cc-------ccccccccc-------cc
   cc-----cccc-------cccc-----cc
  cc----ccc-------------ccc----cc
  c----cc-----ccccccc-----cc----c
 cc---cc----ccc!!!!!ccc----cc---cc
 c----c----cc!w---ww!!cc----c----c
cc---cc---ccw--..---ww!cc---cc---c
c.---c----cw--.***.---w!c----c---c
c<.--c----c--.e*d.-----!c----c---c
c.---c----c----$------w!c----c---c
cc---cc---c---.------w!cc---cc---c
 c----c---c--.------w!cc----c----c
 cc---cc--cc--c---wwccc----cc---cc
  c----cc--c--ccccccc-----cc----c
  cc----c--cc-..--------ccc----cc
   cc-------c..------cccc-----cc
    cccc---ccccccc-<-c-------cc
       cc--c-----ccccc----ccccc
        cccc-----------cccc--<c
           c---ccccccccc-...-cc
           c-----------..A.ccc
           c----------.ccccc
           ccccccccccccc
ENDMAP

############################################################################
# Sewer in the shape of the letter W. Sort of. Frogs at the end.
#
# Harder than the two other frog maps. Frogs are guaranteed, and neither
# exit nor chokepoints are reachable when one sees them.
#
# XXX: An outlier in size, openness, and minimal land as a map.
NAME:    sewer_minmay_w
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
SHUFFLE: de
MONS:    rat / river rat w:2
MONS:    ball python / adder w:5 / frilled lizard w:2 / endoplasm w:1
MONS:    bullfrog
: item(dgn.loot_potions)
: item(dgn.loot_scrolls)
ITEM:    any scroll / any potion
SUBST:   y : yyyyyyW., Y : YYYYYYWw, z = x., Z = wwwxx
SUBST:   y = W., Y = Ww, c = c x:1
NSUBST:  d = 2:d / * = d..., e = 2:e / * = e...
NSUBST:  - = 84 = 1... / *:.
SUBST:   2 = 2.
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxcccccxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxcccccc2-2ccccccxxxxxxxxxxxxxxxx
xccccccxxxxxxxxcc2--22---22--2ccxxxcccccccccccx
cc....ccxxxxxxcc---------------ccxxcdedcc32.3cc
c......cxxxxxxc-------c---------cxxce<e+2..222c
c..<A..cxxxxxcc------cc+cc------ccxcdedc2...22c
c......cxxxxxc------cccffcc------cxccccc222..2c
czyyyyzcxxxxxczyyyyzcxcddcczyyyyzcxxxxxczyyyyzc
cYYWYYYcxxxxxcYYWYYYcxcccccYYYYWYcxxxxxcYYZWYYc
cwYWYYwcxxxxxcwYWYwwcxxxxxcwwwYWYcxxxxxcYYWYwYc
cwYYWYwcxxxxxcwYWYYwcxxxxxcwwYYWYcxxxxxcwYWYYwc
cwwYWYwcxxxxxcwwYWYwcxxxxxcwYYWYYcxxxxxcwYWWYwc
cwwYWYwcxxxxxcwwYWZYcxxxxxcYWWYYwcxxxxxcwYYWZYc
cwYZWYwcxxxxxcwwYZWYcxxxxxcWYYYwwcxxxxxcwwYZWYc
cwYWZYwcxxxxxcwwwYWYcxxxxxcWWYYwwcxxxxxcwwwY.Yc
cw.WYwwcxxxxxcwwwYYWcxxxxxcZyyyyZcxxxxxcwwwY.Yc
cwYWZYwcxxxxxcwwwZY.cxxxxxcyy%%ywcxxxxxcwwYZWYc
cwYZW.wcxxxxxcwwwYYWcxxxxxcZyyyyZcxxxxxcwwYWZYc
cwwYWYwcxxxxxcwwwYWYcxxxxxcwwYYWWcxxxxxcwYYWYwc
cwwYWYwcxxxxxcwwYZWYcxxxxxcwwwYYWcxxxxxcwYWWYwc
cwwYWYwcxxxxxcwwYWZYcxxxxxcwYYWWYcxxxxxcwYWYYwc
cwwYWYwcxxxxxcwYYWYwcxxxxxcwYWYYwcxxxxxcwYWYwYc
cYYYWYYcxxxxxcwYWYwwcxxxxxcYYWYYYcxcccccYYWYYYc
czyyyyzcxxxxxczyyyyzcxxxxxczyyyyzcxceecczyyyyzc
c------ccxxxcc------cxxxxxc2-----cccffcc-----2c
cc------ccxcc------ccxxxxxcc------cc+cc2-----cc
xc-------ccc-------cxxxxxxxc-------c2--------cx
xcc------2-2------ccxxxxxxxcc2-------------2ccx
xxcccc---------ccccxxxxxxxxxcccc-2------2ccccxx
xxxxxcccc2-2ccccxxxxxxxxxxxxxxxcccc2-2ccccxxxxx
xxxxxxxxcccccxxxxxxxxxxxxxxxxxxxxxcccccxxxxxxxx
ENDMAP


## BIG BADDIE (Pargi) ######################################################
# Threat is mostly a single larger creature, often Pargi. Combined weight 40.

NAME:     sewer_big_baddie
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
: sewer_setup(_G)
MONS:     bat, brain worm
KMONS:    3 = Pargi / crocodile, crocodile
ITEM:     potion of berserk rage ident:type / potion of haste ident:type w:5
SUBST:    - = 1....
MAP
 ccccccc
cc$***$cc
c..$*$..c
c.......c
c...3...c
c.......c
c.......c
cc.....cc
 ccc.ccc     ccccccc
   cdc      cc---..cc
   c.c     cc---w...cc
cccc.ccccccc---www...cc
c21........---wwwww.A<c
cccc.ccccccc---www...cc
   c.c     cc---w...cc
   c-c      cc---..cc
   c-c       ccccccc
   c-c
   c-c
   c<c
   ccc
ENDMAP

###############################################################################
# Another one with a big bad monster.
#
NAME:   sewer_the_crocodile
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
SUBST:  - = WW...
MONS:   kobold, jackal
KMONS:  3 = Pargi / crocodile w:20, crocodile
: item(dgn.loot_potions .. " / " .. dgn.loot_scrolls .. " / nothing w:300")
NSUBST: ! = 2:2 / 4 = 2.. / *:., 1 = 1:1 / * = 1... / *:.
: sewer_setup(_G)
MAP
   ccccccccc
   c%*c3c*%c
   c*-c-c-*c
   ccc---ccc
    cc---cc
    c-----c
   cc.---.cc
   c..-c-..c
  cc.-ccc-.cc
  c.--ccc--.c
  c--ccccc--c
  c.-ccccc-.c
  c.-ccccc-.c
  c--ccccc--c
  c.--ccc--.c
  cc--ccc--cc
   c.--c--.c
   cc-----cc
    c..-..c
    cc---cc
     c.-.c
     cc-cc
     cc-cc
   cccc-cccc
cccc..---..ccccc
cWWWWWWWWWWWWWWc
cccc...c...ccccc
  ccc..c....cccxxxx
  c....c!!!!!1cdddx
  c.A<.c!!!!!11dddx
  c....c!!!!!1cxxxx
  ccccccccccccc
ENDMAP

############################################################################
# Pargi island. by co
# Pargi lives on this island, he appears in one of three places, if he is
# outside the loot room, you can get the loot without fighting him
# (if you are sneaky enough). Not much to walk on here, if you manage to
# confuse Purge he will probably drown.
#
NAME:    sewer_co_pargi_island
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
# Shuffle around Pargi or his back-up.
SHUFFLE: PQR
KMONS:   P = Pargi, crocodile
#      lesser monsters.
KMONS:   1 = brain worm
KMONS:   2 = frilled lizard w:8 / ball python w:8 / adder w:2
: kitem("? = " .. dgn.loot_potions)
: kitem("! = " .. dgn.loot_scrolls)
KFEAT:   1 = W
KFEAT:   2 = w
SUBST:   QR = .
NSUBST:  2 = 2:2 / 1:w / * = 2w, . = 1:1 / 1 = 1.. / * = .WW
SUBST:   e = !!!!????%, X = xx., Y = xw
COLOUR:  1 = lightgreen
COLOUR:  2 = green
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxYYxxxYYYxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxYwwYYwwwwwYYwwxxxxxxxxxxxxxxxx
xxxxxxxxxxYwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxx
xxxxxxxxxxYwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxx
xxxxxxxxYYwwwwwwwww2wwwwwwwwwwYxxxxxxxxxxxx
xxxxxxxYwwwwwwwwwwwwwwwwwww2wwwYxxxxxxxxxxx
xxxxxxYwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxx
xxxxxxwwwww2wwwww....wwwwwwwwwwwwYxxxxxxxxx
xxxxxYwwwwwwwww..XXXX..wwwwwwwwwwwYxxxxxxxx
xxxxxwww2wwwww.XXxxxxXXQ.wwwwwww2wwwYxxxxxx
xxxxYwwwwwww...XxxxxxxxxX..wwwwwwwwwwxxxxxx
xxxxYwwwwww.XXXxxxxxxxxxxxX..wwwwwwwwYxxxxx
xxxYwwwwww.XxxxxxxxxxxxxxxxxX.www2wwwwYxxxx
xxxYwwwww.XxxxxxxxxxxxxxxxxxxX.wwwwwwwwYxxx
xxxxYwwww.XxxxxxxxxxxxxxxxxxxX.wwwwwwwwYxxx
xxxxYwwwww.XxxxxxxxcccccxxxxxX.wwwwwwwYxxxx
xxxYwwwwww.Xxxxxxxxceeeccccccc.wwwwwwwYxxxx
xxxYwwwwwww.Xxxxxxxce<....P...wwwwwwwwYxxxx
xxYwwwwwwwwwAXxxxxxceeeccccccc.wwww2wwYxxxx
xxYwwww2wwww<XxxxxxcccccxxxxxX.wwwwwwwYxxxx
xxxYwwwwwww.XxxxxxxxxxxxxxxxxxX.wwwwwwYxxxx
xxxxwwwwww.XxxxxxxxxxxxxxxxxxxX.wwwwwwYxxxx
xxxxYwwwwww.XXxxxxxxxxxxxxxxxX.wwwwwwwwYxxx
xxxYwwwwwwww..XXxxxxxxxxxxxxX.wwwwwwwwYxxxx
xxxYwwwwwwww..XXxxxxxxxxxxXXX.wwwwwwwwYxxxx
xxxxwwwwwwwwww..XxxxxxxxxX...wwwww2wwwwYxxx
xxxxYwwww2wwwwww.XxxxxxXX.wwwwwwwwwwwwwYxxx
xxxxxwwwwwwwwwww.XxxxxXR.wwwwwwwwwwwwwYxxxx
xxxxYwwwwwwwwwwww.XXXX.wwwwwww2wwwwwYYxxxxx
xxxxxYwwwwwwwwwwww....wwwwwwwwwwwwwYxxxxxxx
xxxxxxYwwwww2wwwwwwwwwwwwwwwwwwwwwYxxxxxxxx
xxxxxxYwwwwwwwwwwwwwwwwww2wwwwwwwYxxxxxxxxx
xxxxxxYwwwwwwwwww2wwwwwwwwwwwwwYYxxxxxxxxxx
xxxxxxxYwwwwwwwwwwwwwwwwwwwwwwYxxxxxxxxxxxx
xxxxxxxYwwwwwwwwwwwwwwwwwwwwwYxxxxxxxxxxxxx
xxxxxxxxYxYwwwwwwYYwwwwwwwYYwYxxxxxxxxxxxxx
xxxxxxxxxxxxYYYYxxxYYYxYYYxxYYxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   kennysheep_door_sewer
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
MONS:   kobold w:40 / frilled lizard / giant cockroach / adder w:5
MONS:   kobold brigand / brain worm w:20 / jelly
KMONS:  3 = Pargi, crocodile
: item(dgn.loot_potions .. " / " .. dgn.loot_scrolls .. " / any armour")
KFEAT:  - = broken_door
KFEAT:  ' = deep_water
KFEAT:  " = shallow_water
SUBST:  n : ncc.
NSUBST: e = 4:* / 6=d.. / *:., + = 2:- / 2 = +- / *:+
NSUBST: 0 = 1:1 / 8 = 1. / 2:2 / 1:3 / *:., . = 1:1 / *:.
COLOUR: ' = green
COLOUR: " = lightgreen
KPROP:  "' = no_tele_into
: sewer_setup(_G)
MAP
        ccccccccccccccccccccc
        cecceccecceccecceccec
        c0nn0cc0cc0cc0cc0cc0c
        c+cc+cc+cc+cc+cc+cc+c
ccccccccc...................ccccccccc
c"""""""nWWWWWWWWW.WWWWWWWWWn"""""""c
c'''''''nwwwwwwwwwAwwwwwwwwwn'''''''c
c"""""""nWWWWWWWWW.WWWWWWWWWn"""""""c
ccccccccc...................ccccccccc
        c+cc+cc+cc.cc+cc+cc+c
        c0cc0cc0cc.cc0cc0nn0c
        cecceccecc<ccecceccec
        ccccccccccccccccccccc
ENDMAP

###############################################################################
# This one places a hell rat. It also gives the player a door with which to
# avoid the hell rat. Seven items, many of which are random potion/scroll.
#

NAME:   sewer_hellmonk_bad_rat
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
MONS:   rat, river rat
KMONS:  3 = hell rat
ITEM:   any potion / any scroll
: item(dgn.loot_potions)
: item(dgn.loot_scrolls)
KFEAT:  3 = shallow_water
NSUBST: - = 20 = 1... / 8 = 2... / *:.
SUBST:  . = WWW..
SUBST:  d = ddddef*
COLOUR: 3 = lightgreen
: sewer_setup(_G)
MAP
    xxxxxxx
  xxxx---xxxx
  xx-------xx
 xxx-------xxx
 xx---ccc---xx
xxx..cc.cc--xxx
xx...c...c---xx
xx..ccd.Wcc--xx
xx..cddWW.c--xx
xxA<c<d3WW+--xx
xx..cddWW.c--xx
xx..ccd.Wcc--xx
xx...c...c---xx
xxx..cc.cc--xxx
 xx---ccc---xx
 xxx-------xxx
  xx-------xx
  xxxx---xxxx
    xxxxxxx
ENDMAP

### OTHER #####################################################################
# Other sorts of Sewer maps

###############################################################################
# No longer requires crossing deep water to reach the center, but still provides
# flight potions for later use.
#
NAME:    sewer_fruit_machine
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
KMONS:   " = bat
KMONS:   ? = bat / frilled lizard / ball python / giant cockroach / \
             quokka / endoplasm w:4 / ribbon worm w:4 / adder w:2
MONS:    ribbon worm w:2 / ball python / jackal / adder w:5 / river rat w:5
MONS:    adder, river rat, brain worm, dart slug
ITEM:    any scroll, potion of enlightenment ident:type
: item(dgn.aux_armour)
: item(dgn.loot_potions)
: item(dgn.loot_scrolls)
KFEAT:   " = w
KFEAT:   ? = W
SHUFFLE: QED$ de
NSUBST:  Q = 1:442 / 2 = 2.. / * = ., E = 3 = 3355. / * = .
SUBST:   D : fgh, - = WW.
NSUBST:  e = 2:e / *:$, f = 1:f / *:', g = 2:g / *:', h = 2:h / *:'
NSUBST:  w = 10 = "w / *:w, W = 42 = ?WWW / *:W, ! = 32 = 1... / *:.
COLOUR:  " = green
COLOUR:  ? = lightgreen
: sewer_setup(_G)
KITEM:   ' = scroll of noise ident:type w:50 / \
             potion of degeneration ident:type w:100 / \
             potion of mutation ident:type w:30
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xwwwwwwwwwwwWWW-WW-W--WWWWW-WWW--W--WW-WW-WW-W-WWwwwwwwwwwwwx
xwwwwwwwwwww-wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww-wwwwwwwwwwwx
xwwwwwwwwwwwWwWW----WWWWWWWW-W-WWW-W-WW-WW-W-WWwWwwwwwwwwwwwx
xxxxxxxxxxxxWwWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxxWwWxxxxxxxxxxxx
           xWwWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxxWwWxxxxxxxx!!.xx
           x-wWxxxxQQQQxxxDDDDxxxxxxxxWwWxxxxx-wWxxxx!xx!!...xx
           xWwWxxxxx++xxxxx++xxxxxxxxx-wWxxxxxWwW--W-!!.......x
           x-WWW-W..............<xxxxxWw-xxxxxWwWWW-!!........x
           x-WWWW--.............<xxxxxWwWxxxxxWwWW-!xxxx.....Ax
           xWwWxxxxx++xxxxx++xxxxxxxxxWwWxxxxx-wWxxxxxxxxx.<xxx
           x-wWxxxxEEEExxx$$$$xxxxxxxx-w-xxxxxWw--xxxxxxxxxxx
   xxxxxxx x-wWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxxWw-xxxxxxxxxxxx
 xxx!d!!dxxxWwWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxx-wWxxxxxxxxx!exx
xx!!!!!d!dxxWwWWWWWW---WW-W-WW-W-WWWW--wWxxxxxWwWxxxxxxxx-!!ex
x!!!!!!dxxxx-w-wwwwwwwwwwwwwwwwwwwwwww-w-xxxxxWwWWWWWWWW---!!ex
xx!!!!xxxxxxWwWW-W-WWW-W-W-WWWWW-WWWWWWw-xxxxxWw-wwwwwwww---!!x
 x!-!!!-xxxx-w-xxxxxxxxxxxxxxxxxxxxxxxWwWxxxxx-wWWWWWWW-----!!x
 xxx------xxWwWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxxWwWxxxxxxxxx-!exx
xxxxxx------WwWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxxWwWxxxxxxxxxxxxx
xwwwwww--WWwwwWWWW-W-W-W-W-WWWW-W-W-W-W-WW---WWwwwwwwwwwwwwwx
xwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwx
xwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

###############################################################################
# A sewer opening to sea by st_.
#
NAME:   sewer_sea
TAGS:   no_item_gen no_monster_gen no_rotate no_pool_fixup
ORIENT: encompass
WEIGHT: 5
MONS:   rat, rat / river rat w:4
KMONS:  G = sickly merfolk siren
KMONS:  H = malarious merfolk avatar
KMONS:  hJ = frilled lizard / ball python / adder
KMONS:  g = frilled lizard / ball python / giant cockroach / quokka
KMONS:  K = crocodile
KFEAT:  gsh = W
KFEAT:  GnHJ = w
KFEAT:  O = open_sea
NSUBST: 1 = 1:K / 2:. / * = 1.
SUBST:  2 = 2., J = Jn, h = hW, g = gggW
COLOUR: gh = lightgreen
COLOUR: HJ = blue
COLOUR: G = green
COLOUR: s = cyan
KITEM:  M = potion of enlightenment q:3 ident:type
KITEM:  N = scroll of teleportation q:2 ident:type
: sewer_setup(_G)
MAP
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO                        cccc       cccccccc
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO                       ccW.cc      cWW1.21c
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO                     cccWWW.ccccccccW..c..c
OOOnnnnnnnnnJnnnJnnnnnOOOOOOOOOOOOOO                     c<AWWWW...12....1.cc.c
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO                     cccccccccccccccccccc.c
OOOnnnJnnnnnJnnnscccccccccccccccccccccccccccccccc ccccccccccwhwwwwwwwWwwwww2.1c
OOOnnnnnnnnnnnnsK+.....+...%Wwcccc1....1cc$$$.1McccwwWWWgWWhWWWWW..W..WW.Www2.c
OOOnnnnnnnnHnnsW.ccccccc...%*Wcccc2ccccc.c.1.W.NcccwWWccccccccccccc11cccc.gwWwcc
OOOnnnnnJnnnnnsW.ccc.1cc...%*Wcccc2cwwcc.ccccWcccwwwc.c           cccc  cc1.WWwc
OOOnnnnnnnnnJnsW.ccc.1cc...*WWccccwWgcwc.cGwwWWWWWWcc1c                  ccccccc
OOOnnnnnnnnnnssWWccc1.cc<..WwccccwgWccwc.chwgWW..1...1c
OOOnnnnnnnnsssWWhWWc.1ccccccccwwwhW.1cwWWcWWW..2ccccccc
OOOnnnnnnnsssWWWWWWWWsswwwwwwwcWh..1ccccWWgW1.2cc
OOOnnnnnnnnssshWWWWc.2cccccccccW.1.cc  cch11.ccc
OOOnnnnnnnnnnssWgccc12ccccwg22.11ccc    cccccc
OOOnnnnnnnnnnnssWcccc1ccccgWcccccc
OOOnnnnnnnnnnnnsccccc.1ccc.1c
OOOnnnnnnnnnnnnnsccccc1.11.cc
OOOnnnnnnnnnnnnnnnnnnccccccc
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
ENDMAP

############################################################################
# 15 rooms, by co
# All rooms will always be accessible, except the room in the center, which
# is surrounded by deep water.
#
NAME:    sewer_co_15_rooms
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
MONS:    kobold / w:7 kobold brigand
MONS:    kobold / adder / ball python / w:7 ribbon worm / w:7 endoplasm / \
         rat / river rat w:5
MONS:    crocodile
SUBST:   . = W.., X = xx.
SUBST:   1 = 1., 2 = 222..
#      generate path to center
SHUFFLE: BC/DE/GF/IH
SUBST:   B = w, C = W
SUBST:   DGI = c, EFH = x
#      generate path to the first cave.
SHUFFLE: JK/LM
SUBST:   JK = .
SUBST:   M = x, L = c
#      generate path to the second cave.
SHUFFLE: PN/QR
SUBST:   PN = .
SUBST:   Q = x, R = c
#      generate a paths between the big rooms.
SHUFFLE: yZzSsUuTgY
SUBST:   y = w
SUBST:   hVZzSsUuTgY = W
#      loot
SUBST:   e = !!???-----
KITEM:  - = any potion / any scroll
: kitem("? = " .. dgn.loot_potions)
: kitem("! =  " .. dgn.loot_scrolls)
: sewer_setup(_G)
MAP
xxxxxxxxxxxxcccxxxxxxxcccxxxxxxxxxxxx
xxxxxxxxxxxcccccxxxxxcccccxxxxxxxxxxx
xxxxxxxxxxcc.1.ccxxxcc...ccxxxxXXXxxx
xxxxxxxxxxc.2...ccccc...2.cxxxx.11Xxx
xxxxxxxxxxc..2..yyyyy..2..NPPP.e.1Xxx
xxxxxxxxxxc...2.ccccc.2...cxxxX.e.Xxx
xxxxxxxxxxcc...ccxxxcc...ccxxxxX.xxxx
xxxxxxxxxxxccZccxxxxxcczccxxxxxxQxxxx
xxxxxxxxxxxxcZcxxxxxxxczcxxxxxxxQxxxx
xxxxxxxxxxxxcZcxxxxxxxczcxxxxxxxQxxxx
xxcccccxxxxccZccxxxxxcczccxxxxccRccxx
xcc...ccxxcc...ccxxxcc...ccxxcc...ccx
cc.2...cccc.A...ccccc.e...cccc...2.cc
cc..2..SSSS..<.WwwwwwW....ssss..2..cc
cc...2.cccc.....ccBcc...e.cccc.2...cc
xcc...ccxxcc.W.ccxCxcc.W.ccxxcc...ccx
xxccUccxxxxccwccxx.xxccwccxxxxccuccxx
xxxcUcxxxxxxcwcxx.e1xxcwcxxxxxxcucxxx
xxxcUcxxxxxxcwDE.e<e.FGwcxxxxxxcucxxx
xxxcUcxxxxxxcwcxx1e3xxcwcxxxxxxcucxxx
xxccUccxxxxccwccxx.xxccwccxxxxccuccxx
xcc...ccxxcc.W.ccxHxcc.W.ccxxcc...ccx
cc...2.cccc.e...ccIcc.....cccc.2...cc
cc..2..TTTT....WwwwwwW.<..gggg..2..cc
cc.2...cccc...e.ccccc.....cccc...2.cc
xcc...ccxxcc...ccxxxcc...ccxxcc...ccx
xxccJccxxxxccVccxxxxxcchccxxxxcccccxx
xxxxKxxxxxxxcVcxxxxxxxchcxxxxxxxxxxxx
xxxxKxxxxxxxcVcxxxxxxxchcxxxxxxxxxxxx
xxxxKxxxxxxccVccxxxxxcchccxxxxxxxxxxx
xxxx.Xxxxxcc...ccxxxcc...ccxxxxxxxxxx
xxX.e.Xxxxc...2.ccccc.2...cxxxxxxxxxx
xxX1.e.MMML..2..YYYYY..2..cxxxxxxxxxx
xxX11.xxxxc.2...ccccc...2.cxxxxxxxxxx
xxxXXXxxxxcc...ccxxxcc.1.ccxxxxxxxxxx
xxxxxxxxxxxcccccxxxxxcccccxxxxxxxxxxx
xxxxxxxxxxxxcccxxxxxxxcccxxxxxxxxxxxx
ENDMAP

############################################################################
# Tree sewer. by co
# This sewer is structured as a tree, in the sense that there are no loops.
# At each endpoint there is  monster or loot.
# At least you won't go in circles...
#
NAME:   sewer_co_tree
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
MONS:   kobold / kobold brigand
MONS:   adder / ball python / ribbon worm / brain worm w:1
MONS:   endoplasm / rat / river rat w:5
: kitem("e = " .. dgn.loot_potions)
: kitem("f =  " .. dgn.loot_scrolls)
# less water in the middle, more at the endpoints.
SUBST:  ~ = WWWW., - = WW..., " = W...
NSUBST: ? = 4 = ef / * = 112233
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxcccccccccccccccccccccxxxxxxxxxxxxxx
xxxxxxxxxxxxxxc?c?c?c?cxxxc?c?c?c?cxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcWcWcWcWcxxxcWcWcWcWcxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcWcWcWcWcxxxcWcWcWcWcxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcWcWcWcWcxxxcWcWcWcWcxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx~~~x~~~xxxxx~~~x~~~xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~xxx~xxxxxxx~xxx~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~xxx~xxxxxxx~xxx~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~xxx~xxxxxxx~xxx~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~~~~~xxxxxxx~~~~~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx~~~xxxxxxxxx~~~xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx-~-xxxxxxxxx-~-xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx-~-xxxxxxxxx-~-xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx-~-xxxxxxxxx-~-xxxxxxxxxxxxxxxxx
cccccxxxxxxxxxxxx-~--xxxxxxx--~-xxxxxxxxxxxxccccc
c?WWW~xxxxxxxxxxx-~~--xxxxx--~~-xxxxxxxxxxx~WWW?c
ccccc~~~~~xxxxxxxx--~-~~~~~-~--xxxxxxxx~~~~~ccccc
c?WWW~xxx~~-----xxxx-~~~~~~~-xxxx-----~~xxx~WWW?c
cccccxxxx~~~~~~~-xxxx---~---xxxx-~~~~~~~xxxxccccc
c?WWW~xxx~~----~-xxxx~--~--~xxxx-~----~~xxx~WWW?c
ccccc~~~~~xxxx--~-xx~---~---~xx-~--xxxx~~~~~ccccc
c?WWW~xxxxxxxxx--~-~----~----~-~--xxxxxxxxx~WWW?c
cccccxxxxxxxxxxx~~-----"""-----~~xxxxxxxxxxxccccc
cxxxxxxxxxxxxxxx~~----"..."----~~xxxxxxxxxxxxxxxc
cxxxxxxxxxxxxxxx~~~~~~"A.<"~~~~~~xxxxxxxxxxxxxxxc
cxxxxxxxxxxxxxxx~~----"..."----~~xxxxxxxxxxxxxxxc
cccccxxxxxxxxxxx~~-----"""-----~~xxxxxxxxxxxccccc
c?WWW~xxxxxxxxx--~-~----~----~-~--xxxxxxxxx~WWW?c
ccccc~~~~~xxxx--~-xx~---~---~xx-~--xxxx~~~~~ccccc
c?WWW~xxx~~----~-xxxx~--~--~xxxx-~----~~xxx~WWW?c
cccccxxxx~~~~~~~-xxxx~--~---xxxx-~~~~~~~xxxxccccc
c?WWW~xxx~~-----xxxx-~~~~~~~-xxxx-----~~xxx~WWW?c
ccccc~~~~~xxxxxxxx--~-~~~~~-~--xxxxxxxx~~~~~ccccc
c?WWW~xxxxxxxxxxx-~~--xxxxx--~~-xxxxxxxxxxx~WWW?c
cccccxxxxxxxxxxxx-~--xxxxxxx--~-xxxxxxxxxxxxccccc
xxxxxxxxxxxxxxxxx-~-xxxxxxxxx-~-xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx-~-xxxxxxxxx-~-xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx-~-xxxxxxxxx-~-xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx~~~xxxxxxxxx~~~xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~~~~~xxxxxxx~~~~~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~xxx~xxxxxxx~xxx~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~xxx~xxxxxxx~xxx~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx~xxx~xxxxxxx~xxx~xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx~~~x~~~xxxxx~~~x~~~xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcWcWcWcWcxxxcWcWcWcWcxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcWcWcWcWcxxxcWcWcWcWcxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcWcWcWcWcxxxcWcWcWcWcxxxxxxxxxxxxxx
xxxxxxxxxxxxxxc?c?c?c?cxxxc?c?c?c?cxxxxxxxxxxxxxx
xxxxxxxxxxxxxxcccccccccccccccccccccxxxxxxxxxxxxxx
ENDMAP

############################################################################
# Cracked pipes. by co
# Most of the time the player will move between the pipes through cracks,
# these will be filled with rats. Only two of the paths will be generated
# each map, but all three pipes will be accessible on all instances.
#
NAME:    sewer_co_cracked_pipes
TAGS:    no_item_gen no_monster_gen no_pool_fixup no_rotate no_vmirror
ORIENT:  encompass
MONS:    frilled lizard / ball python w:6 / adder w:4
MONS:    rat / river rat w:6
KMONS:   3 = adder
KMONS:   4 = brain worm
: item(dgn.loot_potions)
: item(dgn.loot_scrolls)
KFEAT:   34 = W
SUBST:   . = ..W, - = .WWWW
# Generate a single path between each pipe.
SHUFFLE: BC' / DE? / FG", ''y, HI` / JK! / LM~, ``z
NSUBST:  B = 1:. / *:c, C = 1:. / *:c, H = 1:. / *:c, I = 1:. / *:c
# Fill the pipes and the other possible locations.
NSUBST:  ' = 5:W / 4:2 / 3 = 2. / *:., ` = 5:W / 4:2 / 3 = 2. / *:.
NSUBST:  y = 1:3 / *:W, z = 1:3 / *:W
SUBST:   DEFGLMKJ = c, ?"!~ = x
# Handle pipe enemies and items.
SUBST:   1 = 11..., d = dddddeeeee%
KPROP:   w = no_tele_into
COLOUR:  34 = lightgreen
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xcccccccccccccccccccccccccccccccccccccccccccccccx
xwwwwwwwwmwWd.....1.....1--------.......1...4.<cx
xwwwwwwwwmwWd..1......1...---3---..1......1..1dcx
xccccccccccccIIIIIIccccccccccKccccccMMMcccccMMMcx
xxxxxxxxxxxxxx`xx`xxxxxxxxxxc!cxxxxxx~xxxxxxx~xxx
            xxx``xxxxxxxxxxxc!cxxxxxxx~x~xxx~xx
            xxxx`xxxxxxxxxxxc!cxxxxxxxx~x~~~xx
            xx``x`xxxxxxxxxxc!cxxxxxxxxx~x~xxx
            x`xx`xxx`xxxxxxxc!cxxxxxxxxxx~x~xx
            xx````x`x`xxxxxxc!cxxxxxxxxx~xxx~xx
            xxxxxx`x`x`xxxxxc!cxxxxxxxxxx~xxx~x
xxxxxxxxxxxxxxxxx`xxxxx`xxxxc!cxxxxxxxxxxx~~x~xxxxxxxxxxxxx
xcccccccccccccccHHHcccHHHccccJcccccccccccLLLLLLcccccccccccx
xwwwwwwwwmwWd....1..1....---------4...1...1...dWwmwwwwwwwwx
xwwwwwwwwmwWd.1....1..1..---------..1.......1.dWwmwwwwwwwwx
xccccccccccCCCccCCCccccccccccEccccccccccGGGcGGGcccccccccccx
xxxxxxxxxxxx'xxxx'xxxxxxxxxxc?cxxxxxxxxxx"xxx"xxxxxxxxxxxxx
         xxxx'xx'xxxxxxxxxxxc?cxxxxxxxxxxx"x"xx
         xxxx'x'xxxxxxxxxxxxc?cxxxxxxxxxxxx"""x
         x'''x'x'xxxxxxxxxxxc?cxxxxxxx"x"xx"xxx
         xxxx'xxxxxxxxxxxxxxc?cxxxxxxxx"xx"x"xx
          xxx''xxx'xxxxxxxxxc?cxxxxxxxx"x"xxx"x
          xx'xx'''xxxxxxxxxxc?cxxxxxxxxx"xxx"xx
          xxxx'xxx'xxxxxxxxxc?cxxxxxxxx"x"xxxxxxxxxxxxxxxxx
          xccBBBcBBBcccccccccDccccccccFFFFFcccccccccccccccx
          xc<...........1---------.1.......1..dWwmwwwwwwwwx
          xcA........1...---------.....1......dWwmwwwwwwwwx
          xcccccccccccccccccccccccccccccccccccccccccccccccx
          xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

############################################################################
# Scattered pipes. by co
# The loot is often at the end of the pipes, with guarding monsters.
#
NAME:    sewer_co_scattered_pipes
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
KMONS:   1 = kobold brigand w:5 / river rat / adder
KMONS:   2 = jackal / kobold / frilled lizard / ball python / rat
KMONS:   3 = brain worm / crocodile w:2
KMONS:   P = plant
: kitem("? = " .. dgn.loot_potions)
: kitem("! =  " .. dgn.loot_scrolls)
KFEAT:   !?%1 = W
SUBST:   1 = 1111W
SUBST:   e = !!!???%%%WWW, P = PPP..
NSUBST:  . = 54 = 2... / *:.
SUBST:   . = .W, - = ., X = x., Y = xxw
NSUBST:  B = 1:< / *:.
COLOUR:  !?%1 = lightgreen
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxYxcccxxcccYYYxxxxxYYYxxxxxxxxxxxxxxx
xxxxxxYYwwcecwwcccwwwwYYYwwwwwYYYYwYxxxxxxxx
xxxxxYwwwwcWcwwcccwwwwwwwwwwwwwwwwwwwYxxxxxx
xxxxYwwwwwcWcwwcccwwwwwwwwwwwwwwwwwwwwYxxxxx
xxxxwwwww-cWcPPcccwwwwwwwwwwwwwwwwwwwwwYxxxx
xxxxww----cWcPPcecwwwwwwwwwwwwwwwwwwwwwYxxxx
xxxX---A<-PPPPxcWcccccccc.wwwwwwwwwwwwwwYxxx
xxx--------PxxxcWceW1WWWW..wwwwwwwwwwwwwYxxx
xxx--Pcccccccccc1cccccccc..wwwwwww...wwwwYxx
xxxPPPWWWWW1WWecWPxxexxxX..wwwwww..e..wwwYxx
xxxPPPccccccccccWcPx.xxx...wwwwww..B..wwwYxx
xxx.....XxxxxxxcWc..xxxX...wwwwww..P..wwwYxx
xxxX.....XxxxxxcWcxxxxX....wwwwww.PPP.wwwYxx
xxxxX.....XxxxxcWcxxxX....wwwwwww.cWc.wwwYxx
xxxxX........XxcWcxxX.....wwwwwwwwcWcwwwwYxx
xxxx....cWc....cWcX.......wwwwwwwwcWcwwwwYxx
xxxP....cWc.............Pccccccccwc1cwwwYxxx
xxxPP...c1c...P........P.PwwwwwwwwcWcwwwYxxx
xxxPPP..cWc..PPP.......PPccccccccwcWcwwwwYxx
xxxXPPP.cec..cWc.......P.wwwwwwwwwcWcwwwYxxx
xxxX.cccccccccWc.......P.wwwwwwwwwcWcwwwwYxx
xxxX.WWWW1WWecWc......P..wwwwwwwwwcWcwwwwxxx
xxxX.cccccccccWc.....P..wwwwwwwwwPcWc.wwwYxx
xxxXXxxX...xPP1c....P...wwwwwwwwPPPPPP..wYxx
xxxxxxx.e.xPxcWc...PPPccccccccccccPPP...Xxxx
xxxxxxxxXXxxxcWc....PPWWWWW1WWW1WWPP....Xxxx
xxxxxxxxxxxxxcWc.....PccccccccccccP.3e..Xxxx
xxxX...XxxxxxcWc........wwwwwwww........Xxxx
xxX.....Xxxx............wwwwwwww....PP..Xxxx
xxX...PcccccccccccPP....wwwwwwww...PPP.Xxxxx
xxX3ePPWWWWW1WWWWWP...wwwwwwwww....cWcXxxxxx
xxX..P.ccccccccccc.Pwwwwwwwwwww..XXcWcxxxxxx
xxxX....wwwwwwwwwwwwwwwwwwwwwww.XxxcWcxxxxxx
xxxYwwwwwwwwwwwwwwwwwwwwwwwwwwYxxxxc1cxxxxxx
xxxYwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxcWcxxxxxx
xxxYwwwwwwwwwwwwwwwwwwwwwwwwwYxxxX.cWc.Xxxxx
xxxxYwwwwwwwwwwwwwwwwwwwwwwwYxxxX..PPP..Xxxx
xxxxxwwwwwwwwwwwwwwwwwwwwwwxxxxxX..PB...Xxxx
xxxxxYwwwwwwwwwwwwwwwwwwwwYxxxxxX....e..Xxxx
xxxxxxYwwwwwwYYYYwwwYYYwwYxxxxxxxX.....Xxxxx
xxxxxxxYYYxYYxxxxYYYxxxYYxxxxxxxxxxXXXxxxxxx
ENDMAP

#############################################################
# Kobolds who escaped to the sewers to worship evil in peace
# The temple has 3 sealed chambers at the end, each with loot
# and a boss monster.
# Total loot: 8 ok items (mostly consumables), 4 star items
NAME:    kennysheep_sewer_church
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
WEIGHT:  5
# Placed monsters, then randomly distributed monsters.
MONS:    kobold w:35 / shadow imp / ufetubus
# Randomly generated monsters.
MONS:    kobold w:50 / kobold zombie / endoplasm / giant cockroach / \
         giant cockroach zombie w:3 / ball python / adder zombie w:3 / \
         bat / bat zombie w:3
# Bosses and features for the temple, either Makhleb or Kiku
: if crawl.random2(2) == 0 then
KMONS:   3 = kobold brigand / quasit
KMONS:   4 = kobold brigand
KMONS:   5 = quasit
KFEAT:   B = altar_makhleb
MARKER:  F = lua:fog_machine { cloud_type = "flame", pow_min = 100, \
                               pow_max = 100, delay = 10, size = 1, \
                               walk_dist = 0, excl_rad = 0 }
: else
KMONS:   34 = kobold brigand / necrophage
KMONS:   5 = phantom / necrophage
KFEAT:   B = altar_kikubaaqudgha
SUBST:   F : VY
: end
KMONS:   6 = Grinder / shadow imp w:5, shadow imp
: item(dgn.loot_potions .. " / any scroll w:30 / any armour / any weapon")
KITEM:   456 = star_item
SHUFFLE: 456
NSUBST:  1 = 2:1 / 5:. / * = 1:13 .:15, . = 14 = 2. / *:.
NSUBST:  d = 1:* / *:d
SUBST:   W = WWWWW., - = wwwWW
: sewer_setup(_G)
MAP
                                          ccc
                                          c<c
                                         ccdcc
                                        ccd4dcc
                                        c-111-c
               xxxxxxxxxxxxxxxxxxxxxxxxxc-...-c
               xwwwwwwwwwwwwwwww-W.+1W-xc-...-c
               xwwwwwwwwwwwwwwww-W.x1W-xc-...-c
               x---wwwwwwwwwwwww-W.x1W-xc-...-c
               xWW--wwwwwwwwwww--W.x1W-xc-...-c
               xWWW-wwwwwwwwww--W..x1W-xcc+++cc
               xWWW----ww-ww---W...x.W-xc.....ccccccccc
               xxWxxxxWxxWxxWxxx1xxxx.xcc..F...c------cc
               x-W.x............1w-x...c..2.2F.+.....1dccc
               x-W.............1www-...+.F.B3..+.....15d<c
               x-W.x............1w-x...c..2.2F.+.....1dccc
               x-W.xxxxWxWWxxx-x1xxxx.xcc..F...c------cc
               x-W.xww------w-WW...x.W-xc.....ccccccccc
               x-W.xwwwwwwwwww--W..x1W-xcc+++cc
               x-W.xwwwwwwwwwww--W.x1W-xc-...-c
               x-W.xwwwwwwwwwwww-W.x1W-xc-...-c
               x-W.xwwwwwwwwwwww-W.x1W-xc-...-c
               x-W1xwwwwwwwwwwww-W.+1W-xc-...-c
xxxxxxxxxxxxxxxx-W.xxxxxxxxxxxxxxxxxxWxxc-...-c
x----------------w1xWW-wwwwwww-WWWWWWW-xc-111-c
xWWWWWWWWWWWWWWWww.WWW-wwwwwww--WWWWWW-xccd6dcc
x...............1.1xW-wwwwwwwwww-------x ccdcc
xxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  c<c
xx...xx                                   ccc
x.....x
x..A..x
x..<..x
xx...xx
 xxxxx
ENDMAP

#############################################################
# Jelly sewer
# Up to 5 jellies (avg 3), plus typical small sewer mobs and endoplasms
# There is usually a jiyva altar in addition to ~8 loot items.
# Unfortunately, sewer is too early to mess around with slime walls.
#
NAME:   sewer_hellmonk_slimy_pipes
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
: item(dgn.loot_potions .. " / any scroll w:30 / any armour / any weapon")
MONS:   endoplasm w:25 / rat / ball python / giant cockroach / adder w:5 /\
        river rat w:5 / frilled lizard / ribbon worm w:2
KMONS:  2 = jelly
SUBST:  . = W..
NSUBST: - = 32 = 1W.. / * = W..
NSUBST: ! = 60 = 1WW. / * = W.
NSUBST: 2 = 1:2 / *= 2W
NSUBST: d = 4:d / *= d..
KFEAT:  B = altar_jiyva / altar_xom w:1
: sewer_setup(_G)
MAP
              ccccc
             ccdddcc
           ccc!!2!!ccc
          cc!!!!!!!!!cc
         cc!!!!!c!!!!!ccc
  ccccc  c!!!ccccccc!!!!c
 cc!!!cc c!!ccccccccc!!!c
cc!!!!!cc!!!c!!!!ccccc!!ccccc
c!!!c!!!c!!!!!!!!<cccc!!!2ddc
c!!!cc!!!!!!!!cc!!!ccc!!!!dBc
cc!!!cc!!!!!!!!cc!!ccc!!!2ddc
ccc!!dc!!!!cc!ddc!!cc!!!!!ccc
ccd!2cc!!!!!ccdcc!!!!!!cccc
ccd!cc!!!!!!!ccc!!!!!!cc
ccccc!!!!cc!!!!!!!!cccc
ccc!!!!!cccc!!!!!!cc
cc!!!!!ccddcc!!cccc
cc!!!cccc2!!c!!c
cc--cccccc!!!!!c
c---ccccccc!!!cc
c--cccccccccccc
c--ccccccccccccccc
c--cccccc--------c
c--cccccc--------c
c--cccccc--cccc--c
c--cccccc--cccc..c
c--cccccc--cccc..c
c--cccccc--cccc..c
c--cccccc--cccc..c
c---ccccc--cccc..c
cc--ccccc--cccc..c
 c---cccc--cccc..c
 c---------cccc..ccc
 cc--------ccww..wwc
  cccccccccccw....wc
            cwA..<wc
            cw....wc
            cwwwwwwc
            cccccccc
ENDMAP
