##############################################################################
#
# 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")
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 / 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 / worm w:3
MAP
xxxxxx
xOWWW'
xWWWW.
xWWW'.
xWWW..
xW'...
ENDMAP

NAME:   portal_sewer_entry_c
WEIGHT: 4
: sewer_portal(_G)
NSUBST: c = 1:+ / 2:n / *:c
NSUBST: W = 8 = 111W / *:W
KMONS:  1 = rat w:20 / river rat / ball python / adder w:2 / \
            giant cockroach / worm w:3
MAP
.........
.ccccccc.
.cWWWWWc.
.cWWOWWc.
.cWWWWWc.
.cWWWWWc.
.ccccccc.
.........
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 / 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 / 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 / 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 / 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 / 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 = 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 / 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 / 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

# The actual portal vaults #####################################
default-depth: Sewer

### KOBOLDS ################################################################
# Sewers with kobold settlements. Combined weight 50.

############################################################################
# Sewer with a small kobold camp, potion treasure and Ely/Zin altar.
# Easier than sewer_minmay_treatment, so more common.
#
NAME:     sewer_kobolds
TAGS:     no_item_gen no_monster_gen no_pool_fixup
WEIGHT:   25
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 / w:3 nothing, kobold / w:5 nothing, kobold brigand
SHUFFLE:  de
ITEM:     potion of curing ident:type / potion of heal wounds ident:type
ITEM:     potion of flight ident:type
MONS:     rat w:15 / river rat w:7 / nothing w:3
MAP
        ccc
        cwc
        cwcc
        cwwc
        ccwc
         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''ccccccccccccccccccccccccccccccccc
      c''WwWWWWWWWWWWWWWWWWWWWWWW..444.A.<..44c
      c''WwW''ccccccccccccccccccccccccccccccccc
      c.'WwW''c
      c.WWwWW'c
      c'WwwwW'c
      c'WwwwW'c
      c'WwwwW'c
      c.'WWW''c
      c..''''.c
xxxxxxcccc1ccccx
xedExxxx.122...xx
xdexxxx.2232.y..x
xx?.?xxx....yYy.x
 xx?.xxx?....y.xx
  x?x..?.?....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
WEIGHT: 15
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
MAP
vvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
vwwvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvCCv
vwwnddv..vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..v..vddnCCv
vwwnd2.2.v..3.xxxxxxx11111xxxxxxx11xxxxxx...3...v.2.2dnCCv
vwwvv.2..+......xxxx..11....xxxx11111xxx........+..2.vvCCv
vwwnd2.2.v......3.....xxx.........11...........3v.2.2dnCCv
vwwnddv..vyyy..........xxx...3...xx......3....yyv..vddnCCv
vwwvvvvvvvYYyy..xx.....xx.......3xxxx......xxyyYvvvvvvvCCv
vwwwwwwwwwwYYyyxxxx.....3.........xx....yyxxYYYYwcwcCcCCCv
vwwwwwwwwwwwYYYYYYxxyyyyyy.........yyyyyyYYYYwwwcwcwcCCCCv
vwwwwwwwwwwwwwwwwYYYYYYYYyyyyyyyyyyyYYYYYYwwwwwwwcwcCcCCCv
vwwwwwwwwwwwwwwwwwwwwwwwYYYYYYWYYYYYYwwwwwwwwwwwcwcwcCCCCv
vwwwwwwwwwwwwwwwwwwwwwwwwwYYYWYYYYYwwwwwwwwwwwwwwcwcCcCCCv
vwwwwwwwwwwwwwwwwwwwwwwwwYYyyyyyyyYYYYwwwwwwwwwwcwcwcCCCCv
vwwvvvvvvvwwwwwYYYYYYYYYYYyy.....yyyyYYYYwwwwwwwvvvvvvvCCv
vwwnd.v..vYYYYYYyyyyyyyyyyy........yyyyyYYYYYYYYv..v.dnCCv
vwwn.....vyyyyyyy......................yyyyyyyyyv.....nCCv
vwwvv222.+......................................+.222vvCCv
vwwn.....v...........xx.........................v.....nCCv
vwwnd.v..vx....1...xxxxx.......xx...............v..v.dnCCv
vwwvvvvvvvxxxx111xxxxxx...xx..xxxxx...1..xxx..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
KMONS:   . = plant w:1 / fungus w:1 / nothing w:80
KMONS:   p = plant
SUBST:   p = ppW
: item(dgn.loot_potions .. " / any scroll w:30 / any armour / any weapon")
SHUFFLE: DEFH
NSUBST:  D = 5:1 / 4:d / *:!
NSUBST:  F = 5:1 / 4:d / *:!
NSUBST:  E = 2:1 / 3:d / *:!
NSUBST:  H = 2:1 / 3:d / *:!
NSUBST:  . = 10:2 / *:.
KFEAT:   p = shallow_water
COLOUR:  p = lightgreen
KFEAT:   ! = floor
: 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. Combined weight 40.

############################################################################
# Two fairly watery vaults with (usually) two bullfrogs in the end.
# Loot are good items, and often a scroll of blinking.
#
NAME:     sewer_frog_island_01
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
SUBST:    - = WWW.
SHUFFLE:  |d
: item(dgn.loot_scrolls)
MONS:     frilled lizard / ball python w:5 / giant cockroach / \
          generate_awake frilled lizard / generate_awake ball python w:5 / \
          generate_awake giant cockroach / generate_awake \
          quokka / adder w:8 / nothing w:8
NSUBST:   ! = 2:! / *:w
KFEAT:    ! = w
COLOUR:   ! = green
KMONS:    ! = bullfrog / nothing w:2
: sewer_setup(_G)
MAP
ccccccccccccccccccccccccccccccccccc
c.11---------.................1111c
c1WWW-ccccccccccccccccccccccc1WWW1c
c1WwWWccccccccccccccccccccccc1WwW.c
c1WwwWccccccccccccccccccccccc.WwW.c
c.WwW1ccccccccccccccccccccccc.WwW-c
c.WwwWccccccc!!!!!!cccccccccc-WwW-c
c.Wwwwccccwwwwwwwww!!!ccccccc-WwW-c
c-WwwwccwwwWwwwwwwwwww!cccccc-WwW-c
c-WwwwcwwWW<-wwwwwwwwww!ccccc-WwW-c
c-Wwwwwwww-..-ww.--wwwww!cccc-WwW-c
c-WwWwwWww---.-.*.--wwwwwcccc-WwW-c
c-WwWWWwWww-.--***.wwwwwwcccc-WwW.c
c-WwWWwwwWww.---d-wwwwwwwcccc-WwW.c
c-WwWWWwwwW------wwwwwwwwcccc.WwW.c
c-WwWWWwwwwW---wwwwwwWwwccccc.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-.WWW1cccccxx
                     cccccccc11111c
                            ccccccc
ENDMAP

NAME:     sewer_frog_island_02
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
NSUBST:   ! = 2:! / *:w
SUBST:    - = WWWW.
KMONS:    W = frilled lizard / ball python / giant cockroach / \
              quokka / endoplasm / adder w:4 / \
              nothing w:270
KFEAT:    W = W
KFEAT:    ! = w
COLOUR:   ! = green
KMONS:    ! = bullfrog / nothing w:2
SHUFFLE:  edfgh$*
ITEM:     nothing, nothing
: item(dgn.loot_scrolls)
ITEM:     nothing, nothing
KITEM:    de = *
: 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--.gh*.---w!c----c---c
c<.--c----c--.edf.-----!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 aren't 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)
SUBST:   y : yyyyyyW., Y : YYYYYYWw, z = x., Z = wwwxx
SUBST:   y = W., Y = Ww
SUBST:   c = c x:1
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxcccccxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxcccccc2.2ccccccxxxxxxxxxxxxxxxx
xccccccxxxxxxxxcc....2...2....ccxxxcccccccccccx
cc....ccxxxxxxcc...............ccxxcdedcc3..3cc
c......cxxxxxxc.1.1.1.c.........cxxce<e+2..2.2c
c..<A..cxxxxxcc1.1.1.cc+cc......ccxcdedc.2..2.c
c......cxxxxxc1.1.1.cccddcc......cxccccc2.2..2c
czyyyyzcxxxxxczyyyyzcxcddcczyyyyzcxxxxxczyyyyzc
cYYWYYYcxxxxxcYYWYYYcxcccccYYYYWYcxxxxxcYYZWYYc
cwYWYYwcxxxxxcwYWYwwcxxxxxcwwwYWYcxxxxxcYYWYwYc
cwYYWYwcxxxxxcwYWYYwcxxxxxcwwYYWYcxxxxxcwYWYYwc
cwwYWYwcxxxxxcwwYWYwcxxxxxcwYYWYYcxxxxxcwYWWYwc
cwwYWYwcxxxxxcwwYWZYcxxxxxcYWWYYwcxxxxxcwYYWZYc
cwYZWYwcxxxxxcwwYZWYcxxxxxcWYYYwwcxxxxxcwwYZWYc
cwYWZYwcxxxxxcwwwYWYcxxxxxcWWYYwwcxxxxxcwwwY.Yc
cw.WYwwcxxxxxcwwwYYWcxxxxxcZyyyyZcxxxxxcwwwY.Yc
cwYWZYwcxxxxxcwwwZY.cxxxxxcyy%%ywcxxxxxcwwYZWYc
cwYZW.wcxxxxxcwwwYYWcxxxxxcZyyyyZcxxxxxcwwYWZYc
cwwYWYwcxxxxxcwwwYWYcxxxxxcwwYYWWcxxxxxcwYYWYwc
cwwYWYwcxxxxxcwwYZWYcxxxxxcwwwYYWcxxxxxcwYWWYwc
cwwYWYwcxxxxxcwwYWZYcxxxxxcwYYWWYcxxxxxcwYWYYwc
cwwYWYwcxxxxxcwYYWYwcxxxxxcwYWYYwcxxxxxcwYWYwYc
cYYYWYYcxxxxxcwYWYwwcxxxxxcYYWYYYcxcccccYYWYYYc
czyyyyzcxxxxxczyyyyzcxxxxxczyyyyzcxceecczyyyyzc
c1.1.1.ccxxxcc......cxxxxxc1.1.1.ccceecc......c
cc1.1.1.ccxcc......ccxxxxxcc1.1.1.cc+cc2.....cc
xc.......ccc.......cxxxxxxxc.1.1.1.c.........cx
xcc...............ccxxxxxxxcc.1.1.1.........ccx
xxcccc.........ccccxxxxxxxxxcccc.2......2ccccxx
xxxxxcccc2.2ccccxxxxxxxxxxxxxxxcccc2.2ccccxxxxx
xxxxxxxxcccccxxxxxxxxxxxxxxxxxxxxxcccccxxxxxxxx
ENDMAP

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

NAME:     sewer_big_baddie
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
: sewer_setup(_G)
SUBST:    2 = 23
KMONS:    2 = water moccasin
KMONS:    3 = Purgy, water moccasin
ITEM:     potion of berserk rage ident:type / potion of haste ident:type w:5
MONS:     bat
MAP
 ccccccc
cc$***$cc
c..$*$..c
c.......c
c...2...c
c.......c
c.......c
cc.....cc
 ccc.ccc     ccccccc
   c.c      cc1.1..cc
   c.c     cc1..w...cc
   c.ccccccc...www...cc
   c..........wwwww.A.c
   c.ccccccc1..www...cc
   c.c     cc...w...cc
   c.c      cc1....cc
   c.c       ccccccc
   c.c
   c.c
   c.c
   c<c
   c.c
   cdc
   ccc
ENDMAP

###############################################################################
# Another one with a big bad monster.
#
NAME:   sewer_the_moccasin
TAGS:   no_item_gen no_monster_gen no_pool_fixup
ORIENT: encompass
SUBST:  - = WW...
MONS:   kobold, jackal
SUBST:  3 = 334
KMONS:  3 = water moccasin
KMONS:  4 = Purgy, water moccasin
: item(dgn.loot_potions .. " / " .. dgn.loot_scrolls .. " / nothing w:400")
: 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.......ccccc
  ccc..c..cccxxxx
  c....c.21.cdddx
  c.A<.c2....dddx
  c....c1.1.cxxxx
  ccccccccccc
ENDMAP

############################################################################
# Purgy island. by co
# Purgy 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. Some stone walls from the secret room
# can be seen from the island.
#
NAME:    sewer_co_purgy_island
TAGS:    no_item_gen no_monster_gen no_pool_fixup
ORIENT:  encompass
# Placing Purgy, he appears in one of three places. The water moccasin serves
# as the back-up, in case Purgy was already placed in the Dungeon.
SHUFFLE: PQR
KMONS:   P = Purgy, water moccasin
SUBST:   Q = .
SUBST:   R = .
#      lesser monsters.
KFEAT:   1 = w
COLOUR:  1 = green
KMONS:   1 = frilled lizard / ball python w:5 / \
         generate_awake frilled lizard / generate_awake ball python w:5 / \
         adder w:4 / nothing w:6
#      loot
SUBST:   e = !!!!????%
: kitem("? = " .. dgn.loot_potions)
: kitem("! = " .. dgn.loot_scrolls)
#      Randomized environment
SUBST:   . = .WW
SUBST:   X = xx.
SUBST:   Y = xw
: sewer_setup(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccxxxx
xxxxxxxxxxxxxxYYxxxYYYxxxxYYYxxxxxxcc.ccxxx
xxxxxxxxxxxxxYwwYYwwwwwYYwwwwccccccc.e.ccxx
xxxxxxxxxxYwwwwwwwwwwwwwwwwwwwwwww..*<*.cxx
xxxxxxxxxxYwwwwwwwwwwwwwwwwwwccccccc.e.ccxx
xxxxxxxxYYwwwwwwwwwwwwwwwwwwwwYxxxxcc.ccxxx
xxxxxxxYwwwwwwwwwwwwwwwwwww1wwwYxxxxcccxxxx
xxxxxxYwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxx
xxxxxxwwwww1wwwww....wwwwwwwwwwwwYxxxxxxxxx
xxxxxYwwwwwwwww..XXXX..wwwwwwwwwwwYxxxxxxxx
xxxxxwww1wwwww.XXxxxxXXQ.wwwwwww1wwwYxxxxxx
xxxxYwwwwwww...XxxxxxxxxX..wwwwwwwwwwxxxxxx
xxxxYwwwwww.XXXxxxxxxxxxxxX..wwwwwwwwYxxxxx
xxxYwwwwww.XxxxxxxxxxxxxxxxxX.wwwwwwwwYxxxx
xxxYwwwww.XxxxxxxxxxxxxxxxxxxX.wwwwwwwwYxxx
xxxxYwwww.XxxxxxxxxxxxxxxxxxxX.wwwwwwwwYxxx
xxxxYwwwww.XxxxxxxxcccccxxxxxX.wwwwwwwYxxxx
xxxYwwwwww.Xxxxxxxxceeeccccccc.wwwwwwwYxxxx
xxxYwwwwwww.Xxxxxxxce<....P...wwwwwwwwYxxxx
xxYwwwwwwwwwAXxxxxxceeeccccccc.wwwwwwwYxxxx
xxYwwww1wwww<XxxxxxcccccxxxxxX.wwwwwwwYxxxx
xxxYwwwwwww.XxxxxxxxxxxxxxxxxxX.wwwwwwYxxxx
xxxxwwwwww.XxxxxxxxxxxxxxxxxxxX.wwwwwwYxxxx
xxxxYwwwwww.XXxxxxxxxxxxxxxxxX.wwwwwwwwYxxx
xxxYwwwwwwww..XXxxxxxxxxxxxxX.wwwwwwwwYxxxx
xxxYwwwwwwww..XXxxxxxxxxxxXXX.wwwwwwwwYxxxx
xxxxwwwwwwwwww..XxxxxxxxxX...wwwwwwwwwwYxxx
xxxxYwwww1wwwwww.XxxxxxXX.wwwwwwwwwwwwwYxxx
xxxxxwwwwwwwwwww.XxxxxXR.wwwwwwwwwwwwwYxxxx
xxxxYwwwwwwwwwwww.XXXX.wwwwwww1wwwwwYYxxxxx
xxxxxYwwwwwwwwwwww....wwwwwwwwwwwwwYxxxxxxx
xxxxxxYwwwwwwwwwwwwwwwwwwwwwwwwwwwYxxxxxxxx
xxxxxxYwwwwwwwwwwwwwwwwww1wwwwwwwYxxxxxxxxx
xxxxxxYwwwwwwwwwwwwwwwwwwwwwwwwYYxxxxxxxxxx
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 / bat / frilled lizard / giant cockroach / \
        adder w:5 / kobold brigand w:1
KMONS:  2 = purgy, water moccasin
: item(dgn.loot_potions .. " / " .. dgn.loot_scrolls .. " / nothing w:400")
NSUBST: e = 3:* / 9:d / *:.
NSUBST: 0 = 5:1 / 1:2 / *:.
KFEAT:  ' = deep_water
COLOUR: ' = green
KFEAT:  " = shallow_water
COLOUR: " = lightgreen
KPROP:  "' = no_tele_into
: sewer_setup(_G)
MAP
        ccccccccccccccccccccc
        cecceccecceccecceccec
        c0cc0cc0cc0cc0cc0cc0c
        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.cc0cc0cc0c
        cecceccecc<ccecceccec
        ccccccccccccccccccccc
ENDMAP

### OTHER #####################################################################
# Other sorts of Sewer maps, most weighted 10. (Total 68).

###############################################################################
# If you can get to the middle, there are four doors to try; two will give you
# monsters, two will yield you treasure.
#
NAME:     sewer_fruit_machine
TAGS:     no_item_gen no_monster_gen no_pool_fixup
ORIENT:   encompass
SHUFFLE:  QEDS
SUBST:    Q = 4, E = 5, D : fgh, S = $
NSUBST:   f = 1:f / *:'
NSUBST:   g = 2:g / *:'
NSUBST:   h = 3:h / *:'
#       some random monsters I: bat or nothing
NSUBST:   w = 4:" / *:w
KFEAT:    " = w
KMONS:    " = bat / nothing
COLOUR:   " = green
#       some random monsters II: standard Sewers set
NSUBST:   W = 4:? / *:W
KFEAT:    ? = W
KMONS:    ? = bat / frilled lizard / ball python / giant cockroach / \
              quokka / endoplasm w:4 / worm w:4 / adder w:2
COLOUR:   ? = lightgreen
#       a little more random shallow water
SUBST:    - = W..
: sewer_setup(_G)
MONS:     bat / frilled lizard / ball python / giant cockroach / \
          quokka / endoplasm w:4 / worm w:4 / adder w:2
SHUFFLE:  23
MONS:     bat / nothing w:2
MONS:     patrolling jackal
MONS:     worm / nothing w:3
MONS:     endoplasm / nothing w:2
#       chances are good you'll find something to cross the deep water
SHUFFLE:  de
: item(dgn.loot_scrolls)
ITEM:    potion of flight ident:type
#       possibly rather generous loot, if you get to the center
: item(dgn.aux_armour)
: item(dgn.loot_potions)
: item(dgn.loot_scrolls)
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.1.xx
           x-wWxxxxQQQQxxxDDDDxxxxxxxxWwWxxxxx-wWxxxx1xx....1xx
           xWwWxxxxx++xxxxx++xxxxxxxxx-wWxxxxxWwW--W-.........x
           x-wWW-W..............<xxxxxWw-xxxxxWwWWW-1....A...1x
           x-wWWW--.............<xxxxxWwWxxxxxWwWW-.xxxx......x
           xWwWxxxxx++xxxxx++xxxxxxxxxWwWxxxxx-wWxxxxxxxxx.<xxx
           x-wWxxxxEEEExxxSSSSxxxxxxxx-w-xxxxxWw--xxxxxxxxxxx
   xxxxxxx x-wWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxxWw-xxxxxxxxxxxx
 xxx.d..dxxxWwWxxxxxxxxxxxxxxxxxxxxxxxWwWxxxxx-wWxxxxxxxxx.exx
xx.3...d.dxxWwWWWWWW---WW-W-WW-W-WWWW--wWxxxxxWwWxxxxxxxx-22ex
x.3....dxxxx-w-wwwwwwwwwwwwwwwwwwwwwww-w-xxxxxWwWWWWWWWW---2.ex
xx3...xxxxxxWwWW-W-WWW-W-W-WWWWW-WWWWWWw-xxxxxWw-wwwwwwww---2.x
 x3-...-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 w:4 / nothing w:1, rat / river rat w:5
KMONS:  G = merfolk siren hd:3 name:sickly name_adjective name_species
KMONS:  H = merfolk avatar hd:3 name:malarious name_adjective name_species
KMONS:  hJ = frilled lizard / ball python / adder / nothing w:2
KMONS:  g = frilled lizard / ball python / giant cockroach / \
            quokka / nothing w:7
KFEAT:  gsh = W
KFEAT:  O = open_sea
COLOUR: gh = lightgreen
COLOUR: HJ = blue
KFEAT:  GnHJ = w
COLOUR: G = green
COLOUR: s = cyan
KITEM:  M = potion of flight q:4 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..1c
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO                     cccWWW.ccccccccW..c..c
OOOnnnnnnnnnnnnnJnnnnnOOOOOOOOOOOOOO                     c<AWWWW...1.2...1.cc.c
OOOnnnnnnnnnnnnnnnnnnnOOOOOOOOOOOOOO                     cccccccccccccccccccc.c
OOOnnnnnnnnnJnnnscccccccccccccc  cccccccccccccccc ccccccccccwhwwwwwwwWwwwww2..c
OOOnnnnnnnnnnnns.+.....+...%Wwc  c1.....cc$$$.1McccwwWWWgWWWWWWWW..W..WW.Www..c
OOOnnnnnnnnHnnsW.ccccccc...%*Wc  c.ccccc.c.1.W.NcccwWWccccccccccccc11cccc.gwWwcc
OOOnnnnnnnnnnnsW.ccc.1cc...%*Wc  c2cwwcc.ccccWcccwwwc.c           cccc  cc..WWwc
OOOnnnnnnnnnJnsW.ccc..cc...*WWc ccwWgcwc.cGgwWWWWWWcc.c                  ccccwwc
OOOnnnnnnnnnnssWWccc1.cc<..WwccccwgWccwc.chwgWW..1....c            cccccccccccwc
OOOnnnnnnnnsssWWWWWc.1ccccccccwwwWW.1cwWWcWWW..2ccccccc            cGwwwwwwwwwwc
OOOnnnnnnnsssWWWWWWWWsswwswwwhcWW..1ccccWWWW1..cc                  ccccccccccccc
OOOnnnnnnnnssshWWWWc..cccccccccW.1.cc  ccW1..ccc
OOOnnnnnnnnnnssWgccc.2c  cwg2....ccc    cccccc
OOOnnnnnnnnnnnssWcccc1cc cgWcccccc
OOOnnnnnnnnnnnnsccccc..ccc.1c
OOOnnnnnnnnnnnnnsccccc1.1..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 worm / w:7 endoplasm / \
         rat / river rat w:5
SUBST:   . = W..
SUBST:   X = xx.
SUBST:   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("? = " .. dgn.loot_potions)
: kitem("! =  " .. dgn.loot_scrolls)
: sewer_setup(_G)
MAP
xxxxxxxxxxxxcccxxxxxxxcccxxxxxxxxxxxx
xxxxxxxxxxxcccccxxxxxcccccxxxxxxxxxxx
xxxxxxxxxxcc...ccxxxcc...ccxxxxXXXxxx
xxxxxxxxxxc.2...ccccc...2.cxxxx.1.Xxx
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
xxxcUcxxxxxxcwcxx1e.xxcwcxxxxxxcucxxx
xxxcUcxxxxxxcwDE.e<e.FGwcxxxxxxcucxxx
xxxcUcxxxxxxcwcxx.e1xxcwcxxxxxxcucxxx
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
xxX.1.xxxxc.2...ccccc...2.cxxxxxxxxxx
xxxXXXxxxxcc...ccxxxcc...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 / worm
MONS:   endoplasm / rat / river rat w:5
# less water in the middle, more at the endpoints.
SUBST:  ~ = WWWW.
SUBST:  - = WW...
SUBST:  " = W...
NSUBST: ? = 4=ef / *=112233
: kitem("e = " .. dgn.loot_potions)
: kitem("f =  " .. dgn.loot_scrolls)
: 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
#      water creatures
MONS:    frilled lizard / ball python w:5 / \
         generate_awake frilled lizard / generate_awake ball python w:5 / \
         adder w:2 / nothing w:4
KMONS:   2 = adder
KFEAT:   2 = W
COLOUR:  2 = lightgreen
#      generate first path.
SHUFFLE: BC/DE/FG
NSUBST:  B = 1:. / *:c
NSUBST:  C = 1:. / *:c
SUBST:   DEFG = c
#      generate second path.
SHUFFLE: HI/JK/LM
NSUBST:  H = 1:. / *:c
NSUBST:  I = 1:. / *:c
SUBST:   LMKJ = c
#      randomize environment
KPROP:   V2 = no_tele_into
SUBST:   . = .W
SUBST:   V = .WWWW
SUBST:   X = xx"
#      rat path
KPROP:   " = no_tele_into
KMONS:   " = nothing w:50 / rat w:15 / river rat w:7
KPROP:   w = no_tele_into
#      loot
SUBST:   e = !!!!!?????%
: kitem("? = " .. dgn.loot_potions)
: kitem("! =  " .. dgn.loot_scrolls)
: sewer_setup(_G)
MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xcccccccccccccccccccccccccccccccccccccccccccccccx
 xwwwwwwwwmwWe.....1......VVVVVVVVV......1.....<cx
 xwwwwwwwwmwWe.........1..VVVVVVVVV.1..........ecx
 xccccccccccccIIIIIIccccccccccKccccccMMMcccccMMMcx
 xxxxxxxxxxxxxx"xx"xxxxxxxxxxcVcxxxxxx"xxxxxxx"xxx
             xxx""xxxxxxxxxxxcVcxxxxxxx"xXxxx"xx
             xXxx"xxxxxxxxxxxcVcxxxxxxxx"xX""Xx
             xx""x"xxxxxxxxxxc2cxxxxxxxxx"x"xxx
             x"xxXxxxXxXxxxxxcVcxxxxxxxxxX"x"xx
             xx""""x"x"xxxxxxcVcxxxxxxxxx"xXx"xx
             xXxxxx"x"x"xxxxxcVcxxxxxxxxxx"xxx"x
 xxxxxxxxxxxxxxxxx"xxxxx"xxxxcVcxxxxxxxxxxx"Xx"xxxxxxxxxxxxx
 xcccccccccccccccHHHcccHHHccccJcccccccccccLLLLLLcccccccccccx
 xwwwwwwwwmwWe....1.......VVVVVVVVV........1...eWwmwwwwwwwwx
 xwwwwwwwwmwWe.........1..VVVVVVVVV..1.........eWwmwwwwwwwwx
 xccccccccccCCCccCCCccccccccccEccccccccccGGGcGGGcccccccccccx
 xxxxxxxxxxxx"xxxx"xxxxxxxxxxcVcxxxxxxxxxx"xxx"xxxxxxxxxxxxx
          xxxx"xx"xxxxxxxxxxxcVcxxxxxxxxxxx"x"xx
          xxxx"x"xxxxxxxxxxxxcVcxxxxxxxxxxxx""Xx
          xX""x"xXxxxxxxxxxxxc2cxxxxxxxXx"xX"xxx
          xxxx"xxxxxxxxxxxxxxcVcxxxxxxxx"xx"x"xx
           xxx""xXxXxxxxxxxxxcVcxxxxxxxx"x"xxx"x
           xxXxx"""xxxxxxxxxxcVcxxxxxxxxx"xxxXxx
           xxxx"xxx"xxxxxxxxxcVcxxxxxxxx"x"xxxxxxxxxxxxxxxxx
           xccBBBcBBBcccccccccDccccccccFFFFFcccccccccccccccx
           xc<............VVVVVVVVV.........1..eWwmwwwwwwwwx
           xcA........1...VVVVVVVVV.....1......eWwmwwwwwwwwx
           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:   P = plant / nothing
#      pipe monsters.
KFEAT:   1 = W
COLOUR:  1 = lightgreen
KMONS:   1 = frilled lizard / ball python w:5 / generate_awake ball python w:5 / \
         adder w:7
SUBST:   1 = 1111W
#      other monsters
KMONS:   2 = jackal / kobold, w:5 kobold brigand / w:5 river rat, rat
SUBST:   2 = 222222W.
#      loot
SUBST:   e = !!!?????%WWW
KFEAT:   !?% = W
COLOUR:  !?% = lightgreen
: kitem("? = " .. dgn.loot_potions)
: kitem("! =  " .. dgn.loot_scrolls)
SUBST:   . = .W
SUBST:   X = x.
SUBST:   Y = xxw
#
NSUBST:  B = 1:< / *:.
: 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
xxxPPPccccccccccWcPx2xxx...wwwwww.2B2.wwwYxx
xxx.....XxxxxxxcWc..xxxX...wwwwww..P..wwwYxx
xxxX.....XxxxxxcWcxxxxX....wwwwww.PPP.wwwYxx
xxxxX.....XxxxxcWcxxxX....wwwwwww.cWc.wwwYxx
xxxxX..2.....XxcWcxxX.....wwwwwwwwcWcwwwwYxx
xxxx....cWc....cWcX.......wwwwwwwwcWcwwwwYxx
xxxP.2..cWc..........2..Pccccccccwc1cwwwYxxx
xxxPP...c1c...P..2.....P.PwwwwwwwwcWcwwwYxxx
xxxPPP..cWc..PPP.......PPccccccccwcWcwwwwYxx
xxxXPPP.cec2.cWc.......P.wwwwwwwwwcWcwwwYxxx
xxxX.cccccccccWc.......P.wwwwwwwwwcWcwwwwYxx
xxxX.WWWW1WWecWc......P..wwwwwwwwwcWcwwwwxxx
xxxX.cccccccccWc.2...P..wwwwwwwwwPcWc.wwwYxx
xxxXXxxX.2.xPP1c....P...wwwwwwwwPPPPPP..wYxx
xxxxxxx.e.xPxcWc...PPPccccccccccccPPP...Xxxx
xxxxxxxxXXxxxcWc....PPWWWWW1WWW1WWPP..2.Xxxx
xxxxxxxxxxxxxcWc..2..PccccccccccccP..e..Xxxx
xxxX...XxxxxxcWc........wwwwwwww........Xxxx
xxX.2...Xxxx............wwwwwwww....PP..Xxxx
xxX...PcccccccccccPP....wwwwwwww.2.PPP.Xxxxx
xxX2ePPWWWWW1WWWWWP...wwwwwwwww....cWcXxxxxx
xxX..P.ccccccccccc.Pwwwwwwwwwww..XXcWcxxxxxx
xxxX....wwwwwwwwwwwwwwwwwwwwwww.XxxcWcxxxxxx
xxxYwwwwwwwwwwwwwwwwwwwwwwwwwwYxxxxc1cxxxxxx
xxxYwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxcWcxxxxxx
xxxYwwwwwwwwwwwwwwwwwwwwwwwwwYxxxX.cWc.Xxxxx
xxxxYwwwwwwwwwwwwwwwwwwwwwwwYxxxX..PPP..Xxxx
xxxxxwwwwwwwwwwwwwwwwwwwwwwxxxxxX..PB.2.Xxxx
xxxxxYwwwwwwwwwwwwwwwwwwwwYxxxxxX.2..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:  3
# Placed monsters.
MONS:    kobold w:35 / shadow imp / ufetubus w:15 / nothing w:5
# 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
NSUBST:   . = 10:2 / *:.
# Bosses and features for the temple
: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 / wight
KMONS:   5 = phantom / necrophage
KFEAT:   B = altar_kikubaaqudgha
SUBST:   F : VY
:end
KMONS:   6 = Grinder, shadow imp
SHUFFLE: 456
KITEM:   456 = star_item
KFEAT:   - = deep_water
KPROP:   W- = no_tele_into
SUBST:   W = WWWw.
SUBST:   - = wwwW-
COLOUR: - = green
: item(dgn.loot_potions .. " / any scroll w:30 / any armour / any weapon")
NSUBST:  d = 1:*
: sewer_setup(_G)
MAP
                                          ccc
                                          c<c
                                         ccdcc
                                        ccd4dcc
                                        c-1.1-c
               xxxxxxxxxxxxxxxxxxxxxxxxxc-...-c
               x---wwwwwwwwwwwww-W.+1W-xc-...-c
               x---wwwwwwwwwwwww-W.x1W-xc-...-c
               x----wwwwwwwwwwww-W.x1W-xc-...-c
               xWWW-wwwwwwwwwww--W.x.W-xc-...-c
               xWWW-wwwwwwwwww--W..x.W-xcc+++cc
               xWWW------------W...x.W-xc.....ccccccccc
               xxWxxxx-xx-xx-xxx.xxxx.xcc..F...c------cc
               x-W.x............1w-x...c..2.2F.+.....1dccc
               x-W.............1www-...+.F.B3..+......5d<c
               x-W.x............1w-x...c..2.2F.+.....1dccc
               x-W.xxxx-x--xxx-x.xxxx.xcc..F...c------cc
               x-W.x-----------W...x.W-xc.....ccccccccc
               x-W.xwwwwwwwwww--W..x.W-xcc+++cc
               x-W.xwwwwwwwwwww--W.x.W-xc-...-c
               x-W.xwwwwwwwwwwww-W.x1W-xc-...-c
               x-W.xwwwwwwwwwwww-W.x1W-xc-...-c
               x-W.xwwwwwwwwwwww-W.+1W-xc-...-c
xxxxxxxxxxxxxxxx-W.xxxxxxxxxxxxxxxxxxWxxc-...-c
x----------------W1x-------------WWWWW-xc-1.1-c
xWWWWWWWWWWWWWWWWW.W---wwwwwww---WWWWW-xccd6dcc
x...............1..x---wwwwwww---------x ccdcc
xxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  c<c
xx...xx                                   ccc
x.....x
x..A..x
x..<..x
xx...xx
 xxxxx
ENDMAP
