###############################################################################
# gnoll_camp.des: This file includes a serial vault for the early, open levels
# in main Dungeon.

# The serial vault definition. CHANCE is fairly high with 10%, but a game
# is not guaranteed to come up with one of the layouts within the depth
# range, so the serial vault itself is probably fairly rare.

NAME:   serial_gnoll_camp
DEPTH:  D:5-10
TAGS:   layout_open layout_open_caves extra luniq_serial
CHANCE: 10%
{{
  local c = 4 + crawl.random2(3)
  hook("post_place", function()
    dgn.place_maps{tag="serial_gnoll_camp", count=c}
  end)
}}

# Reset default depth. This makes the vaults not generate randomly.
default-depth:

# The actual maps. More welcome! Add a DEPTH if you want to generate one
# on its own. First off, the slightly bigger maps. Most have smaller WEIGHTs
# so that the smaller maps get picked more often.

NAME:   gnoll_camp_medium_01
TAGS:   serial_gnoll_camp patrolling no_pool_fixup
WEIGHT: 8
KMASK:  w = no_monster_gen
MONS:   gnoll
MONS:   gnoll ; stone q:10 | boomerang q:3 | throwing net q:3 / nothing
MONS:   gnoll shaman
MONS:   gnoll sergeant
MONS:   jackal / hound / wolf w:1
MAP
................
..cccccccccccc..
.cxxxx....xxxxc.......
.cxx........xxcccccc..
.cx...1..5...xxxxxxxx...
.cx..........x.2.2.2x.G.
.c..2.xxxx.3..wwwwwwx...
.c....+%%x..............
.c....+%%x..............
.c..2.xxxx.4..wwwwwwx...
.cx..........x.2.2.2x.G.
.cx...1..5...xxxxxxxx...
.cxx........xxcccccc..
.cxxxx....xxxxc.......
..cccccccccccc..
................
ENDMAP

NAME:   gnoll_camp_medium_02
TAGS:   serial_gnoll_camp patrolling
WEIGHT: 8
MONS:   gnoll
MONS:   gnoll ; stone q:10 | boomerang q:3 | throwing net q:3
MONS:   gnoll shaman
MONS:   gnoll sergeant
MONS:   jackal w:20 / hound / wolf w:1 / nothing w:5
MAP
...............
...ccccccccc...
..xxxxxxxxxxx..
.cx>...T...>xc.
.cx....4....xc.
.cxxxx2.2xxxxc.
.cx%%+.3.+55xc.
.cx%%+...+55xc.
.cxxxx...xxxxc.
.cx.........xc.
.cx2.1...1.2xc.
.cx..1...1..xc.
.cx.........xc.
..xxxx...xxxx..
...............
ENDMAP

NAME:   grums_kennel
TAGS:   serial_gnoll_camp patrolling
WEIGHT: 5
MONS:   hound / wolf w:1 / nothing w:50
MONS:   hound / wolf w:1
# Grum is generated without the band. Loads of wolves on D:5 is too harsh.
KMONS:  3 = Grum, gnoll
MAP
............
...ccc......
..xxxxx.....
.cx111+..2..
.cx111+.....
.cx111+..2..
..xxxxx.....
...ccc......
............
......x++x..
..2..cx..xc.
.....cx.3xc.
..2...xxxx..
.......cc...
............
ENDMAP

NAME:   gnoll_camp_huts_basic
TAGS:   serial_gnoll_camp patrolling uniq_gnoll_camp_huts
#       Place monsters randomly: 6 gnolls, 2 sergeants, 2 shamans and 4 dogs.
NSUBST: . = 7:1 / 1:2 / 2:3 / 4:4 / *:.
MONS:   gnoll
MONS:   gnoll shaman
MONS:   gnoll sergeant
MONS:   jackal / hound / wolf w:1
MAP
     ........
    ....cc....
    ...xxxx...
    ..cx..xc..
 .....cx..xc.....
.......x++x.......
...cc........cc...
..xxxx......xxxx..
.cx..+......+..xc.
.cx..+......+..xc.
..xxxx......xxxx..
...cc........cc...
.......x++x.......
 .....cx%%xc.....
    ..cx%%xc..
    ...xxxx...
    ....cc....
     ........
ENDMAP

NAME:   gnoll_camp_huts_moat
TAGS:   serial_gnoll_camp patrolling no_pool_fixup uniq_gnoll_camp_huts
WEIGHT: 8
#       Place monsters randomly: 4 gnolls, 2 sergeants, 2 shamans and 4 dogs.
NSUBST: . = 5:1 / 1:2 / 2:3 / 4:4 / *:.
MONS:   gnoll
MONS:   gnoll shaman
MONS:   gnoll sergeant
MONS:   jackal / hound / wolf w:1
MONS:   gnoll ; stone q:10 | boomerang q:3 | throwing net q:3
MAP
    .......
    .41.14.
   ................
 ...ww...wwwwwwwww..
 ..ww............ww..
 ..w..5...cc...5..w..
..ww.....xxxx.....w..
.ww.....cx..xc....w..
.w....5.cx..xc.5..ww..
.w.......x++x......ww.
.w...cc........cc...w.
.w..xxxx......xxxx..w.
.w.cx..+......+..xc.w.
.w.cx..+......+..xc.w.
.w..xxxx......xxxx..w.
.w...cc........cc...w.
.ww......x++x.....www.
.www..5.cx%%xc.5.ww...
...w....cx%%xc...w...
 ..w.....xxxx....w..
  .ww.5...cc...5.w..
  ..ww..........ww..
   ..wwwwwwwwwwww..
   ................
ENDMAP

# Small maps.

NAME:    gnoll_camp_mini_basic
TAGS:    serial_gnoll_camp patrolling allow_dup
SHUFFLE: 34
MONS:    gnoll, jackal / hound / wolf w:1
MONS:    gnoll shaman
MONS:    gnoll sergeant
MAP
.............
...cccccc....
..xxxxxxxx...
.cx......x.2.
.cx....1.x...
.cx.3........
.cx....1.x...
.cx......x.2.
..xxxxxxxx...
...cccccc....
.............
ENDMAP

NAME:  gnoll_camp_mini_doghouse
TAGS:  serial_gnoll_camp patrolling allow_dup
MONS:  gnoll, jackal / hound / wolf w:1 / nothing w:20
MAP
............
...ccc......
..xxxxx.....
.cx222+..1..
.cx221+.....
.cx222+..1..
..xxxxx.....
...ccc......
............
ENDMAP

NAME:  gnoll_camp_mini_loothouse
TAGS:  serial_gnoll_camp patrolling
MONS:  gnoll, hound / wolf w:2
MAP
............
...ccc......
..xxxxx.....
.cx%%.+..1..
.cx%%2+.....
.cx%%.+..1..
..xxxxx.....
...ccc......
............
ENDMAP

NAME:   gnoll_camp_mini_sergeant
TAGS:   serial_gnoll_camp patrolling
WEIGHT: 5
MONS:   gnoll / nothing w:2
MONS:   gnoll sergeant
MAP
...............
...ccccc.......
..xxxxxxx...x..
.cx...x...1.xc.
.cx.>.x..11.xc.
.cx...x.1...xc.
.cx.2.+.....xc.
..xxxxxxxxxxx..
...ccccccccc...
...............
ENDMAP

# Are they guarding or looting? Or just shopping?
NAME:  gnoll_camp_mini_shop
TAGS:  serial_gnoll_camp patrolling allow_dup
MONS:  gnoll / nothing w:2
KFEAT: S = any shop
MAP
........
..ccc...
.xxxxx..
.1...xc.
.1.S.xc.
.1...xc.
.xxxxx..
..ccc...
........
ENDMAP

NAME:    gnoll_camp_mini_house
TAGS:    serial_gnoll_camp patrolling allow_dup
SHUFFLE: 23
MONS:    gnoll
MONS:    gnoll shaman
MONS:    gnoll sergeant
MONS:    hound / wolf w:2
MAP
...........
...1..1....
...........
..xx++xxx..
.cx....Txc.
.cx....4xc.
.cx...xxxc.
.cx.2.+%xc.
.cx...x%xc.
..xxxxxxx..
...ccccc...
...........
ENDMAP

NAME:    gnoll_camp_mini_hut
TAGS:    serial_gnoll_camp patrolling allow_dup
WEIGHT:  20
SHUFFLE: 123
MONS:    gnoll
MONS:    gnoll shaman
MONS:    gnoll sergeant
MAP
........
..x++x..
.cx..xc.
.cx.1xc.
..xxxx..
...cc...
........
ENDMAP
