##############################################################################
# orc.des: Entries to the Orcish Mines, and (mini)vaults which appear _only_
#          in the Mines. General (mini)vaults, which can also appear in the
#          Mines, should go to vaults.des.
#
# <<1>>    Entries
# <<2>>    Decorative vaults
# <<3>>    Monster vaults
# <<4>>    End vaults
#
##############################################################################

: crawl_require('dlua/vault.lua')

###############################################################################
# <<1>> Orcish Mines entries.
###############################################################################
# Dummy Orc entry

NAME:   orc_0_dummy
TAGS:   orc_entry transparent
WEIGHT: 50
ORIENT: float
KFEAT:  O = enter_orcish_mines
MAP
O
ENDMAP

##############################################################################
# Freedom of Choice
#
NAME: david_orc_1_choice
TAGS: orc_entry
MONS: orc, warg / orc priest / orc warrior, orc warrior / orc
ITEM: % / scroll of identify pre_id / scroll of teleportation pre_id
ITEM: % / w:2 * / scroll of blinking pre_id / scroll of fear pre_id
SHUFFLE: %1
ORIENT: float
KFEAT: O = enter_orcish_mines
MAP
           xxx
        xxxxOxxxx
     xxxx.......xxxx
   xxx.............xxx
  xx....x.......x....xx
 xx....xxx.....xxx....xx
xx.....xxx.I.I.xxx..I..x
xx......x.......x......xx
x..x.x..x..x+x..x..x+x..x
x.xx.xx.x.xx.xx.x.xx.xx.x
x.x%1.x.x.x2e2x.x.x3d3x.x
x.x.%1x.x.x2e2x.x.xd3dx.x
x.xx.xx.x.xx.xx.x.xx.xx.x
x..x.x..x..x+x..x..x+x..x
x.......+.......+.......x
xx.....xxx.I.I.xxx..I..xx
 xx...xx xx...xx xx...xx
  x.@.x   xxxxx   x.@.x
ENDMAP

##############################################################################
# Generic Orc entry
#
NAME:   david_orc_2
TAGS:   orc_entry no_rotate transparent
ORIENT: float
MONS:   orc, orc warrior
KFEAT:  O = enter_orcish_mines
NSUBST: 1 = 1:2 / 1:112 / 2:1 / * = 111.
MAP
xxxx..@..xxxx
x.....I.....x
x...........x
.....111.....
@I...1O1...I@
.....111.....
x...........x
x.....I.....x
xxxx..@..xxxx
ENDMAP

##############################################################################
# Orcish monsters near stair
#
NAME:   david_orc_3
TAGS:   orc_entry transparent
ORIENT: float
MONS:   orc w:50 / orc priest / orc wizard / orc warrior / nothing w:80
MONS:   orc warrior / orc priest, warg
SUBST:  2 = 222., 3 = 223.
KFEAT:  O = enter_orcish_mines
MAP
1.....@....11
1............
.............
......21.....
@.....O.....@
.....13......
.............
.............
11..@......11
ENDMAP

#############################################################################
# The Orc Outfitter
#
NAME: orc_david_3
TAGS: orc_entry transparent
ORIENT: float
#
: if you.absdepth() >= 10 then
MONS: weight:20 orc / orc warrior / weight:1 orc knight
: else
MONS: weight:30 orc / orc warrior
: end
#
KFEAT: X = armour shop / .
KFEAT: Y = weapon shop / .
SUBST: ? = 1 $
KFEAT: O = enter_orcish_mines
MAP
@.........@
...??..??..
.?.........
.?.X.O.Y.?.
.........?.
...??...?..
@.........@
ENDMAP

#############################################################################
# Wary orcs
#
NAME:   david_orc_4
TAGS:   orc_entry no_rotate
ORIENT: float
MONS:   orc warrior band
NSUBST: a = 1:1 / *:., b = 1:1 / *:., c = 1:1 / *:., d = 1:1 / *:.
SUBST:  ? = I G .
KFEAT:  O = enter_orcish_mines
MAP
xxxxxxxxxxxxxxxxxxxxxx
xx?xxx?xxx?xxx?xxxxxxx
xaaaxbbbxcccxdddx.lllx
.aaaabbbbccccdddx.$llx
@aaaabbbbccccddd+.$Olx
.aaaabbbbccccdddx.$llx
xaaaxbbbxcccxdddx.lllx
xx?xxx?xxx?xxx?xxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
ENDMAP

#############################################################################
# The Mess
#
NAME:    david_orc_5
TAGS:    orc_entry
ORIENT:  float
MONS:    orc, orc warrior, orc knight, orc priest
: if you.absdepth() >= 11 then
NSUBST:  1 = 1:223 / 4 = 122 / 2 = 1. / *:1
: else
NSUBST:  1 = 2:2 / 3 = 11222 / 4 = 1. / *:1
: end
NSUBST:  4 = 1:4 / * = 44...
SUBST:   x : cxv
KFEAT:   O = enter_orcish_mines
KFEAT:   C = altar_beogh
MAP
xxxxxxxxxxxxxxx
x1.....O.....1x
x11....4....11x
x11.T.4C4.T.11x
x11....4....11x
x1..11.I.11..1x
xxI+IxxxxxI+Ixx
...@.......@...
ENDMAP

##############################################################################
# Caught partying
#
NAME:    erik_orc_1
TAGS:    orc_entry no_rotate
ORIENT:  float
MONS:    orc, orc priest / orc wizard
MONS:    w:50 orc warrior / ogre, swamp drake
# The drake's name is Bobby. Since you did ask.
KITEM:   1 = gold w:5 / nothing / animal skin / \
             potion of moonshine pre_id w:20 / \
             potion of haste pre_id w:2 / \
             potion of might pre_id w:2
ITEM:    club, potion of moonshine pre_id, gold w:5
ITEM:    gold w:2 / nothing, potion of moonshine pre_id
KFEAT:   C = cache_of_meat
KFEAT:   O = enter_orcish_mines
SHUFFLE: defO
TILE:    C = dngn_cache_of_pizza
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x.........g..........2x...w4xxx
x.....1...32...1......x1...wxxx
x.........xx.....e..........xxx
@.......f...1g............3.x$x
x..x1.................O...x.xhx
x..x1...1........2..1....gx.xhx
x......2....g.........d.1Cx1+hx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##############################################################################
# C'mon, you *gotta* have a *fort*!
#
NAME:   erik_orc_2
TAGS:   orc_entry no_pool_fixup no_rotate
ORIENT: float
MONS:   orc warrior, orc priest / orc wizard, orc w:100 / orc warrior
: if you.absdepth() >= 10 and crawl.one_chance_in(10) then
MONS:   orc knight
SUBST:  ? = .
: else
MONS:   orc warrior
SUBST:  ? = 4
: end
KFEAT:  O = enter_orcish_mines
: if crawl.one_chance_in(100) then
SUBST:  X = x
: else
SUBST:  X = c
: end
MAP
.............................
.Iwwwwwwwwwwwwwwwwwwwwwwwwww.
.wIwwwwwwwwwwwwwwwwwwwwwwwww.
.ww2+cccccccccccccccccccccww.
.ww.c.......3.3.3......w2cww.
.wwxx........3.3.......XXXww.
.122........3.I.3.....?4Ocww.
.wwxx........3.3.......XXXww.
.ww.c.......3.3.3......w2cww.
.ww2+cccccccccccccccccccccww.
.wIwwwwwwwwwwwwwwwwwwwwwwwww.
.Iwwwwwwwwwwwwwwwwwwwwwwwwww.
.............................
ENDMAP


##############################################################################
# Just like home
#
NAME:   erik_orc_3
TAGS:   orc_entry no_item_gen
ORIENT: float
MONS:   orc / kobold brigand w:2
MONS:   orc wizard / orc priest / orc warrior / kobold geomancer w:2
MONS:   ogre / troll, warg / cyclops
KFEAT:  O = enter_orcish_mines
SUBST:  1 = 11., 2 = 2222.
SUBST:  ; = . $:1, ? = x . $:1
MAP
xxx@xxxxxxxxxxxxxxxxxxx
xxx?.x?x?xx?xxx??xx?xxx
xx..xxx..1.xxx....13xxx
xx.x??x.x1xx?x.21xx?..x
xx...x..xxx.2..1.x.x??@
xx?x.....?x.x..x.x1?.xx
xx..??12x?x.1.1?x.x;?xx
xxx..x..x??O.x..x.xx.xx
x?..?x......x?.x.??x.xx
xx.x??.x.x..?x..xx.x?xx
x?xx?xx.x??...x.1x.1;?x
xx..xxx...x.x.x.1?1.xxx
x?.2....xx2.x...xx.x;?x
xxx??xx..xx.xx.x?..xxxx
xx..1.x.x.4...x2.x1..xx
..x??x.xxx..xxxx?;.??xx
xx;.??.11.x;xxx..x..xxx
x??xxxx???xx?xxx??x.?xx
xxxxxxxxxxxxxxxxxxxx@xx
ENDMAP

##############################################################################
# Orc-henge
#
NAME:   erik_orc_4
TAGS:   orc_entry no_rotate transparent
ORIENT: float
MONS:   human / gnoll / orc w:2
MONS:   orc priest, orc
MONS:   orc priest / orc wizard / kobold w:2
MONS:   orc warrior / warg
ITEM:   dagger
SUBST:  3 = 3:22 .
SUBST:  A : c:60 ., B : c:60 ., C : c:60 ., D : c:60 ., E : c:60 .
KFEAT:  O = enter_orcish_mines
#
MAP
  ..........................
  .............AA...........
.........DD....AA....BB.......
.........DD..........BB.......
....EE.......33533............
....EE........1d2........CC...
.........4....xxx...4....CC...
.............33533............
..CC..........................
..CC...........O..........DD..
........4.............4...DD..
..................4...........
...AA.........................
...AA......4............EE....
........................EE....
.......cc..........EE.........
.......cc....DD....EE.........
  ...........DD.............
  ..........................
ENDMAP

#########################
# Former secret door entry.
#
NAME:   hiddenorc1_lemuel
TAGS:   orc_entry
ORIENT: float
MONS:   orc, orc wizard / orc priest, orc warrior
KFEAT:  O = enter_orcish_mines
NSUBST: 1 = 4:2 / * = 1 2:1
SUBST:  ? = x., ! : $.
MAP
x??@....@....@??x
xx??.........??xx
 xx??1111111??xx
  xx??11111??xx
   xx??111??xx
    xx??1??xx
     xxI3Ixx
      xv+vx
      x!!!x
      x!O!x
      x!!!x
      xxxxx
ENDMAP

#########################
# Another former secret door entry.
#
NAME:   hiddenorc2_lemuel
TAGS:   orc_entry
ORIENT: float
MONS:   orc w:20 / orc wizard w:2 / orc priest w:2 / orc warrior w:1
KFEAT:  O = enter_orcish_mines
SUBST:  a : x. , b : x. , c : x. , d : x.
SUBST:  ? = @ x:20 +, ! : .$
COLOUR: 1 = none / brown w:5
FTILE:  1 = floor_normal / floor_orc w:5
COLOUR: . = none / brown
FTILE:  . = floor_normal / floor_orc
COLOUR: ! = brown
FTILE:  ! = floor_orc
MAP
xx?xxxxxxx?xx
x111xxxxx111x
?1I1aaaaa1I1?
x111xxxxx111x
xxbx+xxx+xcxx
xxbxx!!!xxcxx
xxbxx!O!xxcxx
xxbxx!!!xxcxx
xxbx+xxx+xcxx
x111xxxxx111x
?1I1ddddd1I1x
x111xxxxx111?
xx?xxxxxxx@xx
ENDMAP

#######################
# Haunted orc entrance
# (Orc monsters losing animate dead means a reduced weight.)
#
NAME:   zombieorc1_lemuel
TAGS:   orc_entry
ORIENT: float
WEIGHT: 5
MONS:   orc zombie / orc draugr w:2 / gnoll zombie w:2 / gnoll draugr w:2
MONS:   ogre zombie / troll zombie w:3
MONS:   shadowghast / phantom / w:1 wraith
: if you.absdepth() >= 10 then
MONS:   w:1 orc sorcerer / orc priest / nothing
: else
MONS:   orc priest / nothing
: end
SUBST:  ? = x . $:1
KFEAT:  O = enter_orcish_mines
MAP
xxx.xxxxxxxxxxxxxxxxxxx
xxx?.x?x?xx?xxx??xx?xxx
xx..xxx..1.xxx....11xxx
xx.x??x.x1xx?x.21xx?..x
xx...x..xxx.2..1.x.x??.
xx?x.....?x.x..x.x1?.xx
xx..??12x?x31.1?x.x??xx
xxx..x..x??O3x..x.xx.xx
x?..?x....34x?.x.??x.xx
xx.x??.x.x..?x..xx.x?xx
x?xx?xx.x??...x.1x.1??x
xx..xxx...x.x.x.1?1.xxx
x?.2....xx2.x...xx.x??x
xxx??xx..xx.xx.x?..xxxx
xx..1.x.x.1...x2.x1..xx
..x??x.xxx..xxxx??.??xx
xx?.??.11.x?xxx..x..xxx
x??xxxx???xx?xxx??x.?xx
xxxxxxxxxxxxxxxxxxxx.xx
ENDMAP

#######################
# Haunted orc entrance II
#
NAME:   zombieorc2_lemuel
TAGS:   orc_entry transparent
ORIENT: float
WEIGHT: 5
MONS:   orc zombie / orc draugr w:2 / gnoll zombie w:2 / gnoll draugr w:2
MONS:   ogre zombie / troll zombie w:3 / two-headed ogre zombie w:1
MONS:   orc priest / phantom / wraith w:2, shadowghast, orc sorcerer
: if you.absdepth() >= 11 then
SUBST:  4 = 3 4 5:2
: else
SUBST:  4 = 3 4
: end
KFEAT:  O = enter_orcish_mines
MAP
xxxxx..@..xxxxx
x21....I....12x
x11...111...11x
x......$......x
..1...343...1..
@I1...2O2...1I@
..1...212...1..
x......$......x
x11...111...11x
x21....I....12x
xxxxx..@..xxxxx
ENDMAP

#######################
# Guarded by dogs
#
NAME:   minmay_orc_entry_guard_dogs
TAGS:   orc_entry transparent patrolling
WEIGHT: 5
ORIENT: float
MONS:   warg, wolf
KFEAT:  O = enter_orcish_mines
NSUBST: 1 = 1:1 / 1:. / * = 2 .:2
MAP
1.1
.O.
1.1
ENDMAP

#######################
# Small temple
#
NAME:   minmay_orc_entry_temple_small
TAGS:   orc_entry
ORIENT: float
MONS:   orc w:40 / orc warrior / orc wizard, patrolling orc priest
SUBST:  " = 1...
KFEAT:  _ = altar_beogh
KFEAT:  O = enter_orcish_mines
MAP
ccccccc
c"""""c
c"""""c
c"2_2"c
c"""""c
c"""""c
ccc+ccc
cI"""Ic
 .""".
 ..O..
 .....
ENDMAP

#######################
# Large temple
NAME:   minmay_orc_entry_temple_large
TAGS:   orc_entry
WEIGHT: 1
ORIENT: float
MONS:   orc w:40 / orc warrior / orc wizard, patrolling orc priest
SUBST:  " = 1.......
SUBST:  ' = $.
KFEAT:  _ = altar_beogh
KFEAT:  O = enter_orcish_mines
MAP
ccccc   ccccc
c'''c   c'''c
c'''c   c'''c
c'''c   c'''c
cc+ccccccc+cc
c"""""""""""c
c"""""""""""c
c"""""""""""c
c"""I"""I"""c
c"""""2"""""c
c""""2_2""""c
c"""""2"""""c
c"""I"""I"""c
c"""""""""""c
ccc"""""""ccc
ccc"""""""ccc
cccccc+cccccc
cccccI.Iccccc
ccccI...Icccc
cccI.....Iccc
   .......
   ...O...
   .......
ENDMAP

NAME:   kennysheep_orc_monster_closet_entryway
TAGS:   orc_entry
MONS:   orc w:20 / gnoll
MONS:   orc warrior / gnoll sergeant / kobold brigand / ogre
MONS:   troll
NSUBST: 1 = 6:1 / 2:2 / 2:$ / * = 1:25 2:40
KFEAT:  O = enter_orcish_mines
MAP
xxxxxxx
xI131Ix
x11111x
x11O11x
x11111x
xI111Ix
xxx+xxx
@.....@
xxxxxxx
ENDMAP

default-depth: Orc

###############################################################################
# <<2>> Orcish Mines decorative vaults.
###############################################################################

# luniq_orc_cave, a series of small vaults with things the orcs have dug into.
# feel free to add your own - nicolae
NAME: nicolae_orc_rich_vein
TAGS: no_item_gen no_trap_gen luniq_orc_cave
DEPTH: Orc
WEIGHT: 3
SUBST: X = $xxx, $ = $$$..
KITEM: S = nothing / gold q:1 / gold q:2 / gold q:3
MAP
    xxxx
 xxxxXXxx
xxXXX$$Xx
xX$$X$$Xxx
xX$$$$$Xxx
xXxx$$$Xxx
xxxSSxXxx
 @SSxxxx
  .xxx
ENDMAP

NAME:  nicolae_orc_tapped_out
TAGS:  no_item_gen no_trap_gen luniq_orc_cave
DEPTH: Orc
ITEM:  stone q:1 / large rock q:1 w:3 / gold q:1 w:3
KFEAT: ^ = shaft
SUBST: X = 'xx, ' = .:5 d:4 ^:1
: if you.depth() == dgn.br_depth(you.branch()) then
SUBST: ^ = .:5 d:4
: end
MAP
   xxx.
 xxxX...@
xxXX''Xxx
xXX''''Xxx
xX''''''Xx
xX'''''Xxx
xxX'''Xxx
 xxXXXxx
  xxxxx
ENDMAP

NAME:   nicolae_orc_crystal_geode
TAGS:   no_item_gen no_trap_gen luniq_orc_cave
DEPTH:  Orc
KITEM:  d = nothing w:49 / crystal plate armour w:1
SUBST:  B = b'
NSUBST: ' = 1 = d:1 .:49 / *:.
MAP
 xxxxxxxx
xx....xxxx
...x...bbxx
@xxxB...bbxx
 xbbB'''Bbxx
 xbB'''BBbxx
 xbbBBBBbbxx
 xxbbbbbbxx
  xxxxxxxx
ENDMAP

NAME:  nicolae_orc_lava_room
TAGS:  no_item_gen no_trap_gen luniq_orc_cave
DEPTH: Orc
SUBST: L = l., X = lx
MAP
   x.@xx
 xxx..xxx
xxx....Xxx
xX.....Llxx
xXLLLLLLlXx
xxllllllXxx
 xxXXXXXxx
  xxxxxxx
ENDMAP

NAME: nicolae_orc_lost_temple
TAGS: no_item_gen no_trap_gen luniq_orc_cave
DEPTH: Orc
KFEAT: _ = altar_beogh
NSUBST: D = + / c
SUBST: C = c.
MAP
 xxxxxx.
xxcccDCC.@
xxcI...I..
xxc.....Cx
xxD.._..Dxx
xxc.....cxx
xxcI...Icxx
xxcccDcccxx
 xxxxxxxxx
   xxxxx
ENDMAP

NAME: nicolae_orc_bridge_out
TAGS: extra decor no_pool_fixup uniq_orc_liquiddecor
DEPTH: Orc
KPROP: L = no_tele_into
SUBST: L = lll., X = xx., Z = llx, l : lw
MAP
       xxxx
    xxxxxxxxx
  xxxxZZxxxxxx
 xxxxZllZZxX.@
xxxxllllllx..@
xxX..LLLL....x
xX...LLLL..Xxx
@..xllllllxxx
@.XxZlllZxxxx
xxxxxZZZxxxx
   xxxxxxx
      xxxx
ENDMAP

NAME:  nicolae_orc_damp_corner
TAGS:  transparent decor extra
DEPTH: Orc
KMONS: 1 = fungus / nothing w:3
KFEAT: 1 = W / . w:20
SUBST: E = 1X, ' = ...WW11, X = xx.
MAP
  x@@xx
  x..Xxxx
 xxX...Xxxxxxxx
 xxxXX...Xxxxxxxx
xxxxxxXX...'EExxxx
xxxxxxxxxX''''Exxxx
xxxxxxxxxx'''''Exxx
xxxxxxXXXX''''Exxx
 xxxXX....''EExxx
 xxX...XXxxxxxxx
  x..Xxxxxxxx
  x..Xxxxx
   @@xx
ENDMAP

NAME: nicolae_orc_flooded_monolith
TAGS: extra decor transparent uniq_orc_liquiddecor
DEPTH: Orc
SUBST: W = w., c : ccccbv
MAP
  .......
 ..WWWWW..
..WWwwwWW..
.WWwwwwwWW.
.WwwcccwwW.
.WwwcccwwW.
.WwwcccwwW.
.WWwwwwwWW.
..WWwwwWW..
 ..WWWWW..
  .......
ENDMAP

# http://www.youtube.com/watch?v=-w-58hQ9dLk
NAME: nicolae_orc_jurassic_orc
TAGS: transparent extra decor no_rotate no_vmirror
WEIGHT: 1
DEPTH: Orc
MAP
      .........xxx
    ......cc....xxxx
  .....ccc.cc.c..xxxx
 ...ccc..c.ccc.c.xxxxx
..cc.c...cc.ccc.cxxxxx
..cccccccccccccc.cxxxx
..c.c.c.c.ccc.cccxxxxx
@..c.c.c.ccc...ccxxxx
...cccccccc.....cxxxx
...............xxxxx
 .............xxxxx
    .........xxxxx
       ....xxxx
ENDMAP

NAME: nicolae_orc_lava_tube
TAGS: extra decor transparent uniq_orc_liquiddecor
DEPTH: Orc
SUBST: X = xx., L = ll., Z = lx
MAP
                 xxxx@@@xx
           xxxxxxxxxZ...xxx
       xxxxxxxxxxxxxx...lZxx
    xxxxxZZZZxxxxxxxZ...llZx
  xxxxxxXLllllxxxxxZ...LllZx
 xxxxXXX...LLXXxxxxX...LlZxx
xxxxX....X.....XZxX...XXxxx
xZllL...XxZxx........Xxxxx
xZll...XxxxxllL.....Xxxxx
xZll..XXxxxxlllxZXXXxxx
xxxX...XxxxxZZxxxxxxxx
 xxxX...Zxxxxxxxxxxx
 xxxX...XXxxxxxxxx
  xxxZ...Xxxxxxx
   xxx@@@xxxx
ENDMAP

NAME: nicolae_orc_pool_cavern
TAGS: extra decor transparent uniq_orc_liquiddecor
DEPTH: Orc
SUBST: W = ww., X = x:80 .:40 w
MAP
       xxx@@x
    xxxxxx..xx
   xxxxxxX..Xxx
  xxxxxxX...Xxxx
 xxxxXXX..Xxxxxx
 xxxX.......Xxxxx
xxxX..WWWW..Xxxxx
xxxX..WwwW.Xxxxxx
xxxX..WwwW.Xxxxxx
xxxX..WWWW..Xxxx
@.xX.........Xxx
@......XX.....Xxx
x.....XxxXX...Xxx
xxxxXXxxxxxX....@
 xxxxxxxxxxxX...@
   xxxxxxxxxxxxxx
      xxxxxxxxx
ENDMAP

NAME:   nicolae_orc_rockfall
TAGS:   transparent extra decor no_item_gen
DEPTH:  Orc
ITEM:   stone q:1, stone q:2, large rock q:1
: dgn.delayed_decay_extra(_G, 'o', 'orc corpse', 'stone q:1, large rock q:1')
NSUBST: R = 1:f / * = ddeef, r = 1:d / * = d .:5 f:3
MAP
 .....
..rrr..
.rRRRr.
.rRoRr.
.rRRRr.
..rrr..
 .....
ENDMAP

NAME: nicolae_orc_sculptors_studio
TAGS: extra decor no_item_gen
DEPTH: Orc
# Makeshift hammer and chisel
KITEM: H = club
KITEM: C = dagger
KITEM: r = stone q:1 / nothing w:5
NSUBST: r = 1:H / 1:C / *:r
SUBST: G = GGGI
MAP
...xxxxxx
.G.x..rrx
...x.rrrx
.G.+.rrGx
...x.rrrx
.G.x..rrx
...xxxxxx
ENDMAP

NAME:  nicolae_orc_stony_grotto
TAGS:  extra decor transparent
DEPTH: Orc
SUBST: X = xxxc...., C = xc, D = ...c
MAP
  @Cxxxx
 @..xCcxxxx
 Cx...xxxxxxx
 xxC...CXXxxxx
 xxX..xx..DXxxx
xxxC..xD.c..XCxx
xxxX....cccD.Xxxx
xxC.c....c..ccxxx
xxXccc..D...ccXxx
xxxxc.Dcc.....Cxx
xxxxX..cc..C..XCx
 xxxxX....CC...xx
   xxxxXXXxxx..C
     xxxxxxxC..@
         xxxxC@
ENDMAP

NAME:   mainiacjoe_minedec_watcher_in_the_water
TAGS:   transparent extra no_pool_fixup luniq_staircase
DEPTH:  Orc, !Orc:$
WEIGHT: 5
MONS:   fungus
KMONS:  K = kraken
KFEAT:  K = w
SUBST:  d = dd., 1 = 1., X = x., } = })]
ITEM:   orc skeleton
MAP
    xxxxxxxx
   xx111nccx
  .x11..nwcxx
  .x1..dnwccx
..11.Xd.nnwcx
..1.1X.d.nwcx
@..11x.}.nKn@
..1.1X.d.nwcx
..11.Xd.nnwcx
  .x1..dnwccx
  .x11..nwcx
   xx111nccx
    xxxxxxxx
ENDMAP

NAME:    regret_index_minedec_guest_junction
TAGS:    transparent extra decor no_pool_fixup no_rotate uniq_orc_liquiddecor
DEPTH:   Orc
ITEM:    mundane shortbow no_pickup, giant club no_pickup
SHUFFLE: ABCD, YZ
SUBST:   A : x., B : x., CDY = ., - : +., Z : x'..
CLEAR:   '
MAP
 ccYcc..cc  cc  ......
cc.........Wccc.........
c........Wwwccc--xxxxxxxx
Z......Wwwwcccc.......xxxx
c....Wwwwccccdc....CC..exx
c...Wwwwcccc....BB....D..x.
.............A..............
 .x..D....BB....ccccwwwW...c
  xxe..CC....cdccccwwwW....c
  xxxx.......ccccwwwW......Z
   xxxxxxxx--cccwwW........c
    .........cccW.........cc
      ......  cc  cc..ccYcc
ENDMAP

NAME:    regret_index_minedec_devilstone
TAGS:    transparent extra decor
ITEM:    mundane damaged demon trident no_pickup
KFEAT:   A = altar_makhleb
KFEAT:   B = altar_beogh
KFEAT:   C = c
SHUFFLE: XYZ, AB / VV / VV / VV, `y! / `y! / ~z&
SUBST:   X : x', Y : x', Z : ', V : VVIIId'
SUBST:   ` = ., Y = c, ! = @
TILE:    C = wall_stone_dark
FTILE:   'dABVI = floor_pebble_lightred
CLEAR:   ~z&
MAP
  `yy  .@.
  ``yy.....
  ```ycc'cc
  ``ccc'''cc
  &ccC'ZBX'cc
  cc'CC'Y'cc
 cc'Y'CC'cc
cc'XAZ'Ccc&
 cc'''ccc``
  cc'ccy```
  .....yy``
   .@.  yy`
ENDMAP

NAME:    regret_index_minedec_shroomtown_chain
TAGS:    transparent extra decor
MONS:    fungus
ITEM:    stone no_pickup, large rock q:1 no_pickup
SHUFFLE: ABCDEFGH, WX / WX / WW, YZ / YZ / YY
SUBST:   ABCD = 1, EF = x, G : GIde, H : x.
SUBST:   WY = +, X : ccx, Z : ccx
TILE:    G : dngn_statue_axe / dngn_statue_polearm w:5 / dngn_statue_imp
MAP
ccccc....
c.F.cAB...
c...W..C..
cXccc...D..
..E.....E..
..D...cccYc
...C..Z...c
 ...BAc.G.c
   ...ccccccccc...
          c.G.cED...
          c...Z..C...
          cYccc...B..
          ..A.....A..
          ..B...cccXc
           ..C..W...c
           ...DEc.F.c
            ....ccccc
ENDMAP

NAME:    nicolae_orc_beogh_chapel
TAGS:    transparent extra decor
DEPTH:   Orc
KFEAT:   _ = altar_beogh
SHUFFLE: IT
MAP
.........
.cc.T.cc.
.cI...Ic.
.........
.T.._..T.
.........
.cI...Ic.
.cc.T.cc.
.........
ENDMAP

NAME:   nicolae_orc_crystal_seam
TAGS:   no_exits extra decor
DEPTH:  Orc
: if crawl.one_chance_in(5) then
NSUBST: - = 2=@ / -
: else
NSUBST: b = 2=@ / bbbbbbbb-
: end
CLEAR:  -
MAP
   b
 -b
 b-  bb
b  -b
  bb-   bb
 b   -bb
    bb-   bbb
  bb   -bb
     bbb-    bbb
   bb    -bbb
       bbb-    bbbb
    bbb    -bbb
        bbbb-     bbbb
     bbb     -bbbb
          bbbb-
      bbbb
ENDMAP

NAME:   nicolae_orc_found_a_spring
TAGS:   transparent no_pool_fixup extra decor uniq_orc_liquiddecor
DEPTH:  Orc
SUBST:  M = wx, ~ = Ww
NSUBST: D = 1:W / *:_, E = 1:W / *:_, F = 1:W / *:_
NSUBST: H = 1:W / *:_, J = 1:W / *:_, K = 1:W / *:_
CLEAR:  _
MAP
 xxxxxx..@
xxxMMxx...   EWWWDxxxx
xxMww~...   FWE DWWxxx
xMwwww~WWJ HWF    xwwx
xxMww~..JWWWH     xxxx
xxxMMxx...
 xxxxxx..@
ENDMAP

# so that's what happened to the dwarves...
NAME:   nicolae_orc_hostile_takeover
TAGS:   transparent extra decor
DEPTH:  Orc
SUBST:  - = xxx'
NSUBST: ' = 7=D / $..
: dgn.delayed_decay(_G, 'D', 'dwarf corpse')
MAP
 xxxxxxxx
xxxxx-''xx.
xx--x-''.x.
x-''xxx....
x-''.....x.
xx-x...xxxx
xxxx...''-x
xx-''xx''xx
xx-''-x-xx
 xxxxxxxx
ENDMAP

NAME:   nicolae_orc_quarried_blocks
TAGS:   transparent no_exits decor
DEPTH:  Orc
NSUBST: @ = @ / 2=@___ / _
SUBST:  D : xxxx_, E : xxxx_, F : xxxx_, H : xxxx_, J : xxxx_, K : xxxx_
SUBST:  L : xxxx_, M : xxxx_, N : xxxx_, O : xxxx_, P : xxxx_, Q : xxxx_
SUBST:  R : xxxx_, S : xxxx_, Z : xxxx_, - : xxxx_
CLEAR:  _
MAP
DDD EEE FFF HHH JJJ
DDD EEE FFF HHH JJJ
DDD EEE FFF HHH JJJ
       @   @
KKK xxx xxx xxx LLL
KKK xxx xxx xxx LLL
KKK xxx xxx xxx LLL
   @   @   @   @
MMM xxx xxx xxx NNN
MMM xxx xxx xxx NNN
MMM xxx xxx xxx NNN
   @   @   @   @
OOO xxx xxx xxx PPP
OOO xxx xxx xxx PPP
OOO xxx xxx xxx PPP
       @   @
QQQ RRR SSS ZZZ ---
QQQ RRR SSS ZZZ ---
QQQ RRR SSS ZZZ ---
ENDMAP

# yes i know that's not a word
NAME:  nicolae_orc_stalacmites
TAGS:  transparent extra decor
DEPTH: Orc
SUBST: ' = x.
MAP
xx        xxx        xx
'xxx    xxx'xxx    xxx'
.x'xxxxxx'x.x'xxxxxx'x.
.x.x'xx'x.x.x.x'xx'x.x.
.x.x.''.x.x.x.x.''.x.x.
.x.'....'.x.x.'....'.x.
.'........'.'........'.
@.....................@
'..........'..........'
x.'......'.x.'......'.x
x.x.'..'.x.x.x.'..'.x.x
x.x.x''x.x.x.x.x''x.x.x
x.x'xxxx'x.x.x'xxxx'x.x
x'xxx  xxx'x'xxx  xxx'x
xxx      xxxxx      xxx
ENDMAP

############################################################################
# <<3>> Monster (mini)vaults specific to the Orcish Mines
############################################################################

##################################
# Dummy Orc minivault balancer.
#
NAME: mines_dummy
TAGS: dummy
WEIGHT: 60
MAP
x
ENDMAP

###################################
# mage tower -- either orc with assistants, or ogre with guards
NAME:    mines4_lemuel
TAGS:    no_rotate
MONS:    orc sorcerer, orc / orc wizard, ogre mage, two-headed ogre / ogre w:15
ITEM:    any book
SHUFFLE: 12 / 34
SUBST:   d = $d, I = IG
NSUBST:  4 = 3:4 / 2:. / * = 4.
TILE:    c = wall_stone_magic_shelf
MAP
  xxxx@xxxx
 xx2.....2xx
xx.2xxxxx2.xx
x..xcd1dcx..x
x.Ix$$G$$xI.x
x..xc222cx..x
xx.2xx+xx2.xx
 xx..2.2..xx
  xxxxxxxxx
ENDMAP

###################################
# warg stables, with kobold stablehand
NAME:   mines5_lemuel
MONS:   warg / wolf, kobold blastminer
SUBST:  ? : wx, G : GGG..
: vault_metal_statue_setup(_G, "G", "mystic cage")
MAP
x???????x
xwwwwwwwx
xwwwwwwwx
x1.1.1.1x
xG1...1Gx
x1.2...1x
xxxx+xxxx
ENDMAP

###################################
# Beogh 1
NAME:   mines1_david
TAGS:   allow_dup transparent
KFEAT:  C = altar_beogh
WEIGHT: 20
MAP
...........
.xxxx.xxxx.
.xx.....xx.
.x.......x.
.x.......x.
.....C.....
.x.......x.
.x.......x.
.xx.....xx.
.xxxx.xxxx.
...........
ENDMAP

###################################
# Beogh 2
NAME:   mines2_david
TAGS:   allow_dup transparent
KFEAT:  C = altar_beogh
MONS:   orc / orc warrior w:1
SUBST:  . = . 1:2
WEIGHT: 20
MAP
.......
.......
...C...
.......
.......
ENDMAP

###################################
# treasure chamber
#
NAME:  mines2_lemuel
KMONS: 1 = obsidian bat
KFEAT: 1 = lava
SUBST: ? = x@
MAP
  ?x+x?
 ?xx$xx?
?xx$$$xx?
?xx$1$xx?
 ?xxxxx?
   ???
ENDMAP

###################################
# treasure chamber with oklob plant
#
NAME:  mines3_lemuel
SUBST: ? = +.
SUBST: ! = x@
SUBST: $ = $:30 *
MONS:  oklob plant
MAP
    !@!
   !x?x!
   !x.xx!
  !xx..xx!
  !xxx..xx!
   !xxx.1x!
   !xxxx.x!
  !xxxxx.xx!
 !xx$$x..xxx
!!xx$$?.xxxx
!xxx$$xxxx!
 !xxxxxxx!
ENDMAP

##################################################
# Some deep elves on a diplomatic mission (Shiori)
# They have brought some of their enchanted armaments as gifts
NAME:    elf_legates
DEPTH:   Orc
SHUFFLE: 23
SUBST:   6 : 6 .
NSUBST:  0 = 3=9. / *=0.
SUBST:   X = xx. b:2 I:1 $:1 *:1
MONS:    patrolling orc warlord
MONS:    patrolling orc sorcerer
MONS:    patrolling orc high priest
MONS:    deep elf knight / deep elf archer
MONS:    deep elf pyromancer / deep elf zephyrmancer / nothing w:20
MONS:    deep elf pyromancer / deep elf zephyrmancer / nothing w:40
ITEM:    good_item scimitar / good_item chain mail
SUBST:   = : +x
MAP
 xxxxx=xxx
xxXXXI1IXXx
xX..02.3XXx
xXX000.00Xx
xXX000.00Xx
xX.000.00Xx
xXX00...0Xx
xX.X.d4d.Xx
xXX.65556Xx
xxXX.6.6XXx
xxxXX..XXxx
 xxxx@@@xx
ENDMAP

##################################################
# Orcish barracks (minmay)
#
NAME:   minmay_orc_barracks
DEPTH:  Orc
MONS:   orc / orc warrior w:2, orc knight / orc warlord
SUBST:  c : cx
MAP
ccccccccccccccccccccc
c1.1.1.1.1.1.1.1c...c
+...............+.2.c
c1.1.1.1.1.1.1.1c...c
ccccccccccccccccccccc
ENDMAP

##################################################
# A temple (minmay)
#
NAME:   minmay_orc_temple_a
DEPTH:  Orc
MONS:   orc, patrolling orc priest
KFEAT:  _ = altar_beogh
MAP
ccccccc
c..2..c
c2._.2c
c.....c
ccc+ccc
 I...I
 .111.
  .1.
ENDMAP

##################################################
# Another temple (minmay)
#
NAME:   minmay_orc_temple_b
DEPTH:  Orc
MONS:   orc / nothing w:40, patrolling orc priest / nothing w:5
KFEAT:  _ = altar_beogh
MAP
  ccccccc
  cI222Ic
  c.....c
  c2._.2c
  c.....c
  cI...Ic
ccccc+ccccc
c.........c
c.c11111c.c
c..11111..c
c.c11111c.c
c..11111..c
c.c11111c.c
c..11111..c
c.c11111c.c
c..11111..c
c.c11111c.c
c.........c
cccc+++cccc
 ccI...Icc
  ..0....
   ...0.
    .0.
ENDMAP

##################################################
# Still another temple (minmay)
#
NAME:   minmay_orc_temple_c
TAGS:   transparent
DEPTH:  Orc
MONS:   orc, orc priest, orc high priest
SUBST:  . = 1 .:200
SUBST:  . = 0 .:200
SUBST:  " = .
KFEAT:  _ = altar_beogh
MAP
ccccccccccccccccccc
c.................c
c.................c
c..I..c..c..c..I..c
c.................c
c.................c
c..c..cc+++cc..c..c
c.....c""2""c.....c
c.....c2"""2c.....c
c..c..+""_""+..c..c
c.....c2"""2c.....c
c.....cI"3"Ic.....c
c..c..ccccccc..c..c
c.................c
c.................c
c..I..c..c..c..I..c
c.................c
c.................c
cccccccc+++cccccccc
     .........
     .I.2.2.I.
     .........
      .......
        ...
ENDMAP

#######################
# Yet Another Temple
NAME:   bh_open_orc_temple
TAGS:   transparent
DEPTH:  Orc
SUBST:  " = 1.......
MONS:   orc w:8 / orc priest w:2 / orc warrior
MONS:   patrolling orc high priest
KFEAT:  _ = altar_beogh
SUBST:  ' = $.
MAP
     cccccccccc
 .............c
...I..I..I..I.c
.........""...cc
.........""...cc
..I..I..I""I'''c
........""""'''c
.I......"""2'_'c
........""""'''c
..I..I..I""I'''c
.........""...cc
.........""...cc
..I...I..I..I.cc
 .............c
     cccccccccc
ENDMAP

##################################################
# Treasure chamber (minmay)
#
NAME:   minmay_orc_treasury
TAGS:   transparent
DEPTH:  Orc
MONS:   orc warlord band, orc knight band
SUBST:  $ = $:100 *|
: decorative_floor(_G, 'F', "orcish standard")
MAP
vvvvvvvvvvvvvvvvvvvvvvv
v$$$$$$$$v......9v||||v
v$$$$$$$$+.......vvvv+v
v$$$$$$$$v...2........v
v$$$vvvvvv............v
v$$vv.......9....v..1.v
v$vv............vv....v
vvv...9.........vv....v
v........1......vv....v
v..2.....v......vv...9v
v.......vvv.....vv....v
v........v.9.....v....v
v.....................v
vv...................vv
 vv......vvvvv......vv
  vv....vvvvvvv....vv
   vv++vvvvvvvvv++vv
    F......F.0....F
    ....v.v.v.v.0..
    .0.............
    ...............
     ......0....0.
     ...0.........
      ...........
       ......0..
         .....
ENDMAP

NAME:    guppyfry_orc_lava_fort
TAGS:    no_item_gen no_monster_gen transparent
DEPTH:   Orc
MONS:    orc high priest / orc sorcerer, orc knight / obsidian bat w:2
MONS:    orc warrior / kobold blastminer w:2
MONS:    orc wizard, orc priest, orc, warg
KMONS:   8 = ogre / two-headed ogre / troll / deep troll / ogre mage
KFEAT:   S = any shop
SUBST:   ? = 45666678....,  - = SSS356...
MAP
llllx..xllll
llllx..xllll
ll4lx..xl4ll
lll4x..x4lll
xxxx-??-xxxx
....?12.....
.....21?....
xxxx-??-xxxx
lll4x..x4lll
ll4lx..xl4ll
llllx..xllll
llllx..xllll
ENDMAP

##################################################
# The orcs dug into a natural cave and used the bats as a shooting gallery.
NAME:   blackcustard_mines_bat_river
TAGS:   no_item_gen no_monster_gen no_pool_fixup
DEPTH:  Orc
MONS:   bat, obsidian bat, kobold blastminer
MONS:   generate_awake orc ; shortbow ego:flaming | shortbow ego:freezing | \
                             shortbow ego:heavy
NSUBST: . = 1:3 / 2:4 / 2 : 4.
# There were arrows here. They're gone now. Sorry
NSUBST: b = 3:1 / 1:2 / 10:d / 4:e / *: .:20 1:1 d:2 e:2
: dgn.delayed_decay(_G, 'e', 'bat corpse')
SHUFFLE: ABC
SUBST:  A = @
SUBST:  B = x
SUBST:  C = x
MAP
     xxx
   xxxxxxx
   xxxww.xx
   xxbww..AA
  xxbbww...Ax
 xxbbbbwwW..x
 xbbbbbbwwW.x
xxbbbbbbbwW.xx
xbbbbbbbbww..x
xxbxbbbbWWww.B
 xxbbbbbW.WW.B
 xxxbbbwwWW..x
  xxxxwwWW..xx
    xxxwW..CC
    xxxxxxxC
     xxxxxxx
ENDMAP

##################################################
# The orcs piled up some loose rubble.
NAME:   blackcustard_rock_pile
TAGS:   no_item_gen no_monster_gen transparent no_wall_fixup vaults_hard
DEPTH:  Orc, Vaults
WEIGHT: 5 (Vaults), 10
MONS:   orc ; sling, kobold blastminer, boulder beetle
MONS:   orc knight ; plate armour . sling, stone giant
ITEM:   stone w:30 / large rock q:1, gold q:100
ITEM:   granite talisman / staff of earth / randbook disc:earth
SUBST:  a = d:4 b
: if you.in_branch("Vaults") then
NSUBST: b = 3:2 / 2 = 3335 / 4 = 4d / 1:e / 1:f / *:d
FTILE:  234def. = floor_pebble_brown
: else
NSUBST: b = 1:2 / 1:3 / 4 = 1d / *:d
: end
MAP
     . .
   ....
 ..axaxa..
 .xabbbax..
..aabbaxa...
 .xaaaax..
  .aaxa....
   ...x..
    ...
ENDMAP

######################################################################
# The other side of the Spider's Nest orc mining accident vaults.
# Although if those vaults don't generate in the same game as
# these, or if the Spider's Nest branch doesn't generate at all,
# you can imagine anything you like behind those walls.
#
# Memorial with eternal flame.
NAME:   nicolae_orc_accident_1
TAGS:   uniq_orcaccident patrolling
DEPTH:  Orc
ORIENT: southeast
MONS:   orc warrior / kobold blastminer w:2 / orc knight w:2
KITEM:  W = gold q:1 / gold q:2 / gold q:3 / nothing w:100
KFEAT:  W = shallow_water
KFEAT:  X = x
SUBST:  e = xx..., f = xx"""
: single_cloud(_G, "P", "flame", true)
KPROP:  " = no_tele_into
TILE:   X = wall_spider
TILE:   c = wall_stone_smooth
COLOUR: X = yellow
MAP
 e@@@@@@@exxxxxxxxxxxxxxxxx
ee......exxxxfeeeeefxxxxxxx
x......exxeeeee...eeeeeeexx
x.....efee..............eex
xe....efe.......1.....1..ex
xe....efe....ee..WWWWW...ex
xe....eee....ee..WI.IW...ex
xe.....e.....ee..W.P.W...ex
xe..........eee..WI.IW...ex
xee.........efe..WWWWW...ex
xfee........exe.1.....1.eex
xxfee......eexe.........exx
xxxfeeeeeeeexXXX......XXXxx
xxxxxxffffxxxXccccccccccXxx
xxxxxxxxxxxxxXccccccccccXxx
ENDMAP

# Memorial altar.
NAME:    nicolae_orc_accident_2
TAGS:    uniq_orcaccident patrolling
DEPTH:   Orc
ORIENT:  southeast
MONS:    orc warrior / kobold blastminer w:2 / orc knight w:2
MONS:    orc priest
KFEAT:   _ = altar_beogh
KFEAT:   X = x
SHUFFLE: AB
SUBST:   A = @, B = .@, e = xx..., f = xx"""
KPROP:   " = no_tele_into
TILE:    X = wall_spider
TILE:    c = wall_stone_smooth
COLOUR:  X = yellow
MAP
          xxxxxxxxx
          A.eeefxxx
          A...eefxx
          A....efxx
          A..0.eefx
         xx.....eex
       xxxxe.....ex
       xxxxee....ex
xBBBBBxxxfffee..eex
x.....eeeefee....ex
xe.......eee.....ex
xee.............eex
xee..1.....1....efx
xe.............eefx
xe.I.........I.efxx
xe...I.....I...efxx
xe......_......efxx
xee...........eexxx
xfee..2...2..eefxxx
xxxXXX......XXXxxxx
xxxXccccccccccXxxxx
xxxXccccccccccXxxxx
ENDMAP

# Quarantine.
NAME:   nicolae_orc_accident_3
TAGS:   uniq_orcaccident patrolling
DEPTH:  Orc
ORIENT: southwest
MONS:   orc w:20 / orc warrior / orc knight w:2
MONS:   tarantella / wolf spider / redback
KFEAT:  m = iron_grate
KFEAT:  q = web / floor
KFEAT:  X = x
SUBST:  e = xx..., f = xx""", g = xm
KMASK:  "2q = no_monster_gen
KPROP:  "2q = no_tele_into
TILE:   X = wall_spider
TILE:   c = wall_stone_smooth
COLOUR: X = yellow
MAP
x@@@@@@@efff
x.......effxxxx
x.......eeeffxxxx
xe........eeeffxxx
xee...1.....eeefxxx
xfe...........eefxx
xxeeeeeee..1...eexx
xxxxffxxxe......efx
xxxxxxxxxe......efx
xxxxfeeee...1...efx
xxxeee.1.......eexx
xxee..........eefxx
xxe..1...1..eeefxx
xxgmmmmmmmmgxxffxx
xxfqqqqqqq2fxxxxx
xxfqq2qqqqqfxxxxx
xxfqqqqq2qfqxxxx
xXXXq2qqqqXXXxxx
xXccccccccccXxxx
xXccccccccccXxxx
ENDMAP

NAME: cheibrodos_orc_arena
TAGS: no_item_gen no_monster_gen
DEPTH: Orc
ORIENT: float
MONS: orc / w:5 orc warrior
MONS: orc knight ; great mace . morningstar | chain mail . plate armour \
      / w:3 orc warlord ; great mace . morningstar | chain mail . plate armour
KFEAT: - = iron_grate
KFEAT: A = floor
KPROP: A = bloody
NSUBST: ' = 5:1 / 4=1., " = 5:1 / 4=1., _ = 3:A / 4=A.
MAP
  xxxxxxxxxxx
 xxxx$$$$$xxxx
xx..+$$$$$+..xx
x'''x--+--x"""x
x''xx_____xx""x
x''m_______m""x
x''m_2___2_m""x
x''m_______m""x
x''xx_____xx""x
x'''x-----x"""x
xx...........xx
 xx.........xx
  xxxG...Gxxx
     .@@@.
ENDMAP

NAME:   cheibrodos_orc_guarddog
TAGS:   no_monster_gen transparent
DEPTH:  Orc
ORIENT: float
MONS:   warg
NSUBST: 1 = 3:1 / 4 = 1..
SUBST:  G : GGI
: vault_metal_statue_setup(_G, "G", "mystic cage")
MAP
xxx..@..xxx
x1...1...1x
x.........x
...IxxxG...
...x$$$x...
@1.x$$$+..@
...x$$$x...
...GxxxI...
x.........x
x1...1...1x
xxx..@..xxx
ENDMAP

NAME:    nicolae_orc_all_along_the_watchtower
TAGS:    transparent no_descent patrolling
DEPTH:   Orc, !Orc:$
WEIGHT:  5
KMONS:   1 = orc wizard / orc priest
KMONS:   2 = orc warrior ; chain mail | plate armour . arbalest | longbow
KMONS:   3 = obsidian bat
KFEAT:   3 = l
KFEAT:   - = iron_grate
SHUFFLE: c1, !I, -Ic`
SUBST:   } = }]), ! = 1
NSUBST:  1 = 2:1 / 2:2 / 2 = 12``` / `, l = 1:3l / *:l
KPROP:   l = no_cloud_gen
KMASK:   `Ic-}])12 = opaque
KMASK:   `Ic-}])12 = no_monster_gen
MAP
  ...@...
 .........
...lllll...
..llI!Ill..
..lIc1cIl..
@.l!1}1!l.@
..lIc1cIl..
..llI!Ill..
...lllll...
 .........
  ...@...
ENDMAP

NAME:  nicolae_orc_minecarts
TAGS:  transparent
DEPTH: Orc
KITEM: L = stone, stone / nothing, stone / nothing, gold / nothing, \
           gold / nothing, gold good_item w:1 / nothing w:24, \
           large rock / nothing w:20
KFEAT: - = iron_grate
SUBST: 0 = 9000...., ` = ..xx_
CLEAR: _
MAP
 `````````````
`.............`
...............
.0v+v0v+v0v+v0.
v-vLv-vLv-vLv-v
.0v+v0v+v0v+v0.
...............
`.............`
 `````````````
ENDMAP

# I don't want to be buried / in an orc seminary
# wait that's not how the song goes
NAME:  nicolae_orc_seminary
TAGS:  transparent
DEPTH: Orc
MONS:  orc priest
KMONS: _ = orc high priest
KITEM: _ = manual of invocations pre_id / amulet of faith pre_id w:40
KFEAT: _ = altar_beogh
SUBST: 1 = 1 .:15
MAP
ccccccccc
cc.1.1.cc
cI.....1c
c..1.1..+
c_......+
c..1.1..+
cI.....1c
cc.1.1.cc
ccccccccc
ENDMAP

# Boss makes a dollar / I make a dime / That's why I go / On company time
NAME:  nicolae_orc_takin'_care_of_business
TAGS:  transparent
DEPTH: Orc, !Orc:$
KITEM: % = any scroll
KMONS: %1 = patrolling orc / nothing w:15
KFEAT: ^ = shaft
MAP
xxxxxxxxxx
x^%x^%x^%x
x..x..x..x
xx+xx+xx+x
.1..1..1..
ENDMAP

# orc fortress
NAME:   tekkud_orc_quarters
TAGS:   transparent
KFEAT:  C = cache_of_meat
NSUBST: _ = 1:89 / *=009
SUBST:  - = IC F:4 $:4
: decorative_floor(_G, 'F', "orcish standard")
MAP
cccc+cccc
c-.c.c.-c
c_.+.+._c
cccc.cccc
c-.c.c.-c
c_.+.+._c
cccc.cccc
c_.+.+._c
c-.c.c.-c
cccc.cccc
c_.+.+._c
c-.c.c.-c
cccc+cccc
ENDMAP

############################################################################
# <<4>> Orc end vaults.
#
# These generally place four random stores; particularly difficult endings
# might consider placing four good quality stores.
############################################################################

default-depth:

NAME:    st_orc_town
TAGS:    no_rotate no_item_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc, warg
MONS:    orc wizard, orc sorcerer
MONS:    orc priest, orc high priest
MONS:    orc warrior
KMONS:   8 = orc knight
KMONS:   9 = ogre / two-headed ogre
KMONS:   0 = ogre mage
KFEAT:   S = any shop
KFEAT:   _ = altar_beogh
SHUFFLE: 34? / 56! / 78` / 90~, AC / BD / BD
SUBST:   ? = 33444, ! = 55666, ` = 77888, ~ = 990
SUBST:   1 = 1., 2 = 222.
SUBST:   AC = +, BD = c, T : TIII, G : GGGcc
: vault_metal_statue_setup(_G, "G", "mystic cage")
MAP
...................................
...................................
..cccccc..ccc.ccc.ccccccc..cccccc..
..cS?31c..ccc.ccc.ccccccc..c15!Sc..
..c?311D..ccc.ccc2cccGccc..B.16!c..
..c3111c2...........151..2.c..15c..
..cccCcc.....1...2ccc1ccc..ccAccc..
@......2...11311..ccc.ccc.........@
@.........1T343T1.Gcc.ccG.2.......@
..cccCcc...113112.ccc.ccc.cccAccc..
..c11..c2.ccc+ccc.ccc1ccc2c...11c..
..c311.D..c1...1c...161...B..115c..
..c?311c..c3...3c2ccc1ccc.c.115!c..
..cS?31c..c14_41c.ccc.ccc.c115!Sc..
..cccccc..ccccccc.ccc.ccc.ccccccc..
...................................
...................................
ENDMAP

##################################################
NAME:    st_orc_ogre_mass
TAGS:    no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    ogre / nothing w:5, two-headed ogre / nothing w:5, ogre mage
KMONS:   S = ogre / nothing w:5
KFEAT:   S = any shop
MAP
  ..........@.........
 ......................
...xxxxxxxx..xxxxxxxx...
..xxxx............xxxx..
..xx.......11.......xx..
..x..212..1221..212..x..
....2111213SS3121112....
....2111213SS3121112....
..x..212..1221..212..x..
..xx.......11.......xx..
..xxxx............xxxx..
...xxxxxxxx..xxxxxxxx...
 ......................
  ....................
ENDMAP

##################################################
NAME:    st_orc_rangers
TAGS:    no_rotate no_item_gen no_monster_gen no_pool_fixup transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc warrior w:1 ; orcbow . halberd | war axe | morningstar . \
                           leather armour | ring mail / \
         orc w:10 ; orcbow . trident | hand axe | mace . leather armour
MONS:    orc warrior ; orcbow . glaive | broad axe | battleaxe | great mace . \
                                leather armour | ring mail
MONS:    orc knight ; arbalest . glaive w:7 | partisan w:3 | broad axe | \
                                 great mace . leather armour | ring mail
MONS:    orc warrior
MONS:    centaur w:20 / centaur warrior w:1, kobold blastminer
SUBST:   3 = 23
NSUBST:  5 = 4:5 / 2:6 / 5 = 556... / 3 = 5. / *:.
KFEAT:   S = any shop
MAP
  ...............@...............
 .................................
...cc..cc..cc...ccc...cc..cc..cc...
..cc..........wwcccww..........cc..
..c..5.......wwwcccwww.......5..c..
....5...5..wwwwcccccwwww..5...5....
..c....5.wwwwccccSccccwwww.5....c..
..c...5.wwwwcccc4.4ccccwwww.5...c..
........1221...34S43....221........
........122....34S43...1221........
..c...5.wwwwcccc4.4ccccwwww.5...c..
..c....5.wwwwccccSccccwwww.5....c..
....5...5..wwwwcccccwwww..5...5....
..c..5.......wwwcccwww.......5..c..
..cc..........wwcccww..........cc..
...cc..cc..cc...ccc...cc..cc..cc...
 .................................
  ...............................
ENDMAP

##################################################
NAME:    st_orc_mages
TAGS:    no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc, orc wizard, orc sorcerer
MONS:    orc priest, orc high priest, orc warrior
KMONS:   7 = obsidian bat
KFEAT:   7 = lava
KFEAT:   S = any shop
SHUFFLE: 23 / 45, 7l / ""
SUBST:   1 = 111.., 2 = 222.., 4 = 444..
KPROP:   7l = no_cloud_gen
MAP
  ...................
 ...ccccccccccccccc...
...cc4.4...6...4.4cc...
..cc4.2.4..6..4.2.4cc..
..c2.4.2.ccccc.2.4.2c..
..c.2.2.2.clc.2.2.2.c..
..c..2.2c.....c2.2..c..
..c...2ccc.3.ccc2...c..
..c..c..c5....c..c..c..
..11.cc...cSc...cc.11..
..61.c..3.STS.3..c.16.@
..11.cc...cSc...cc.11..
..c..c..c....5c..c..c..
..c...2ccc.3.ccc2...c..
..c..2.2c.....c2.2..c..
..c.2.2.2.c7c.2.2.2.c..
..c2.4.2.ccccc.2.4.2c..
..cc4.2.4..6..4.2.4cc..
...cc4.4...6...4.4cc...
 ...ccccccccccccccc...
  ...................
ENDMAP

##################################################
NAME:    st_orc_pillars
TAGS:    no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc / nothing, orc warrior / nothing, orc knight / nothing
MONS:    orc priest / nothing, orc high priest
KFEAT:   S = any shop
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  ccccccccccccccccccccccccccccccccccccccx
  cccccc.....ccccccccccccc..5..cccccccccx
  cccc.44.44.44ccccccccc.........cccccccx
  cc1..44.44.44..ccccc22..33.33..22cccccx
  c1111...........ccc.22.........22.ccccx
 .c.c1c.c.c.c1c.c.c.c.c1c4c4c4c4c4c.cSccx
.....111.222.11.3.....11..2...2...2.5.Scx
@........222.11.33c5c.112.2.2.2.2.2.c.ccx
.....111.222.11.3.....11..2...2...2.5.Scx
 .c.c1c.c.c.c1c.c.c.c.c1c4c4c4c4c4c.cSccx
  c1111...........ccc.22.........22.ccccx
  cc1..44.44.44..ccccc22..33.33..22cccccx
  cccc.44.44.44ccccccccc.........cccccccx
  cccccc.....ccccccccccccc..5..cccccccccx
  ccccccccccccccccccccccccccccccccccccccx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##################################################
NAME:    st_orc_congregation
TAGS:    no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc / nothing, orc warrior / nothing, orc priest / nothing
MONS:    orc wizard / nothing, orc knight, orc high priest, orc sorcerer
KMONS:   V = orc warlord
KFEAT:   V = T
# This one has a lot more high level orcs than the rest,
# so instead of adding more shops, guarantees good shops.
KFEAT:   S = general shop
KFEAT:   A = antique armour shop
KFEAT:   B = antique weapon shop
KFEAT:   C = book shop / jewellery shop
SHUFFLE: 74/63
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xcccccccccccccccccccccccccccx
xc1111.ccC..ccccc..Bcc.1111cx
xc122...ccS..ccc..Acc...221cx
xc122....cc...c...cc....221cx
xcc...7...ccc...ccc...7...ccx
xccc..4.33.........33.4..cccx
xcccc.4..33..222..33..4.ccccx
xcccc.4ccc33.222.33ccc4.ccccx
xcccc.4ccc.6..5..6.ccc4.ccccx
xcccc..ccc.........ccc..ccccx
xcccc..ccc..5.V.5..ccc..ccccx
xcccc..ccc.........ccc..ccccx
xcccc.4ccc.7..6..7.ccc4.ccccx
xcccc.4ccc...222...ccc4.ccccx
xcccc.4......222......4.ccccx
xc1...4...............4...1cx
xc122.4..333.....333..4.221cx
xc122..ccc333222333ccc..221cx
xc1111.ccc.1122211.ccc.1111cx
xccccccccc.11...11.cccccccccx
xccccccccc.11...11.cccccccccx
xccccccccc.1.....1.cccccccccx
xccccccccccc.....cccccccccccx
          .........
            ..@..
ENDMAP

##################################################
NAME:    st_orc_open
TAGS:    no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    ogre, two-headed ogre, troll, deep troll w:19 / iron troll w:1
MONS:    ogre mage, two-headed ogre w:14 / ettin w:1, cyclops w:29 / stone giant w:1
KFEAT:   S = any shop
MAP
 .....
..111..  .... ....
..151....4....3S3..
..111.....321..3..11
 .......2.252......1
  ....6...123..7..@
   ..S.3...........
  ..4........6.1S.
  ...3.7..S2.. 11.
   .... ....
ENDMAP

##################################################
NAME:    st_orc_elflike
TAGS:    no_item_gen no_monster_gen
PLACE:   Orc:$
ORIENT:  float
MONS:    orc high priest, orc sorcerer, orc knight
MONS:    kobold blastminer, orc priest, orc wizard
KFEAT:   S = any shop
MAP
  xxxxxxxxxxxxxxxxxxx
 xxcccccccccccccccccxx
xxcccccS...R...Scccccxx
xccccS...cc.cc...Sccccx
xccc...cc3...3cc...cccx
xcc4.cc3...1...3cc.4ccx
xcc5...............5ccx
xcc..c2..1...1..2c..ccx
xcc..cc2.......2cc..ccx
xc....cc.......cc....cx
xc.c6.....c.c.....6c.cx
xc.cc6....c.c....6cc.cx
xc..ccc5.6c.c6.5ccc..cx
xcc..cccccc.cccccc..ccx
xccc...cccc.cccc...cccx
xccccc...........cccccx
xcccccccccc.ccccccccccx
xcccccccccc.ccccccccccx
          .@.
ENDMAP

##################################################
NAME:   grunt_orc_gardens
PLACE:  Orc:$
ORIENT: float
{{
  -- There is functionality here for making the enemy sets consist of
  -- small numbers of cyclopses, ettins, and a stone giant.
  -- I have yet to decide how fair this will be, so it's a fairly low
  -- chance until I decide one way or the other if it works.
  dgn.persist.grunt_orc_gardens_giant_problem = crawl.one_chance_in(7)
  hook("post_place", function()
    local stores = { "antique weapon shop", "antique armour shop",
                     "general shop", "book shop / jewellery shop" }
    local which = crawl.random2(#stores) + 1
    dgn.persist.grunt_orc_gardens_store = stores[which]
    table.remove(stores, which)
    dgn.persist.grunt_orc_gardens_boss = true
    dgn.place_maps{tag="grunt_orc_garden", count=1}
    dgn.persist.grunt_orc_gardens_boss = false
    for i = 1, 3 do
      which = crawl.random2(#stores) + 1
      dgn.persist.grunt_orc_gardens_store = stores[which]
      table.remove(stores, which)
      dgn.place_maps{tag="grunt_orc_garden", count=1}
    end
  end)
}}

NAME:  grunt_orc_garden
TAGS:  grunt_orc_garden allow_dup transparent no_monster_gen no_item_gen
{{
  if dgn.persist.grunt_orc_gardens_giant_problem then
    if dgn.persist.grunt_orc_gardens_boss then
      mons("stone giant / ogre mage w:5 / kobold blastminer band w:5")
    else
      mons("ettin ; dire flail . dire flail")
    end
    mons("cyclops")
    mons("kobold blastminer")
    nsubst("0 : 1:1 / 2:2 / 1 = 3:1 .:7 / *:.")
    subst("3 = .")
  else
    if dgn.persist.grunt_orc_gardens_boss then
       mons("orc warlord")
    end
    mons("orc knight / orc sorcerer w:5 / orc high priest w:5")
    if not dgn.persist.grunt_orc_gardens_boss then
      mons("nothing")
    end
    mons("orc warrior w:20 / orc sorcerer w:1 / orc high priest w:1 / "
         .. "kobold blastminer w:1 / ogre w:2 / troll w:2 / warg w:2")
    nsubst("0 : 1:1 / *:2")
    nsubst("3 = 4:3 / 1:I / 4 = P / *:.")
  end
}}
MONS:  fungus
SUBST: . = 4 .:80, P = 4 .:50
: if is_validating() or dgn.persist.grunt_orc_gardens_store == nil then
KFEAT: A = any shop
: else
: kfeat("A = " .. dgn.persist.grunt_orc_gardens_store)
: end
FTILE: .1234IA = floor_swamp
MAP
   .....
 ...PPP...
 .PPP3PPP.
..P33333P..
.PP33033PP.
.P330A033P.
.PP33033PP.
..P33333P..
 .PPP3PPP.
 ...PPP...
   .....
ENDMAP

##################################################
NAME:   grunt_orc_community_town_hall
TAGS:   transparent no_monster_gen no_item_gen
PLACE:  Orc:$
ORIENT: float
KMONS:  O = Saint Roka band w:3 / orc warlord band, orc warlord band
MONS:   orc knight / orc warrior w:30
MONS:   orc sorcerer / kobold blastminer w:2 / orc wizard w:30
MONS:   orc high priest / orc priest w:30
MONS:   orc warrior / orc w:30, orc / nothing
KFEAT:  _ = altar_beogh
KFEAT:  A = antique armour shop
KFEAT:  B = antique weapon shop
NSUBST: 0 = 2:1 / 3:2 / *:3
{{
  local small_house_count = 4 + crawl.random2(3)
  hook("post_place", function()
    dgn.place_maps{tag="grunt_orc_community_big_house", count=2}
    dgn.place_maps{tag="grunt_orc_community_house", count=small_house_count}
  end)
}}
MAP
   .........
  ...ccccc...
 ..ccc._.ccc..
 .ccA0.O.0Bcc.
..cccI0.0Iccc..
.ccccc...ccccc.
.c..4c.4.c4..c.
.c.0.+...+.0.c.
.c4..c.4.c..4c.
.ccccc.I.ccccc.
.c4..c.4.c..4c.
.c.0.+...+.0.c.
.c..4c...c4..c.
.ccccc.4.ccccc.
.ccccI...Icccc.
..ccc.4.4.ccc..
 ...cc+++cc...
   .........
     .I.I.
      .@.
ENDMAP

NAME:    grunt_orc_community_big_house_1
TAGS:    grunt_orc_community_big_house allow_dup transparent no_monster_gen
TAGS:    no_item_gen
KMONS:   A = orc knight / orc sorcerer / orc high priest / \
             orc warrior / orc wizard / orc priest
MONS:    orc warrior / orc wizard / orc priest
MONS:    orc warrior / orc w:30
KFEAT:   A = any shop
KFEAT:   _ = altar_beogh
SHUFFLE: def
SUBST:   d = +, ef = c
MAP
  .......
 ..ccccc..
..cc.A.cc..
.cc.....cc.
.c.2._.2.c.
.c1.2I2.1c.
.c.2...2.c.
.cc.....cc.
..cc...cc.
 ..cdefc..
  ...@...
ENDMAP

NAME:    grunt_orc_community_big_house_2
TAGS:    grunt_orc_community_big_house allow_dup transparent no_monster_gen
TAGS:    no_item_gen
KMONS:   A = orc knight / orc sorcerer / orc high priest / \
             orc warrior / orc wizard / orc priest
MONS:    orc warrior / orc wizard / orc priest
MONS:    orc warrior / orc w:30
KFEAT:   A = any shop
KFEAT:   _ = altar_beogh
SHUFFLE: def, ghi
SUBST:   dg = +, efhi = c
MAP
...........
.ccccccccc.
.cc2._..cc.
.c.....1.c.
.c..2...2c.
.cghic...c.
.c.2.c.1.c.
.c2I2cI.Ic.
.c...c.A.c.
.cdefccccc.
...@.......
ENDMAP

NAME:    grunt_orc_community_house_1
TAGS:    grunt_orc_community_house allow_dup transparent no_monster_gen
TAGS:    no_item_gen
MONS:    obsidian bat, warg
KFEAT:   _ = altar_beogh
SHUFFLE: def, I_ / I- / -_ / _- / -I, 1l / 1l / 0'
SUBST:   d = +, ef = c, 2 = 2., - = .
MAP
.......
.ccccc.
.c1_lc.
.c2I2c.
.c.2.c.
.cdefc.
...@...
ENDMAP

NAME:    grunt_orc_community_house_2
TAGS:    grunt_orc_community_house allow_dup transparent no_monster_gen
TAGS:    no_item_gen
MONS:    kobold blastminer, ogre
SHUFFLE: de, I_ / I- / -_ / _- / -I
SUBST:   d = +, e = c, 2 = 22...
KFEAT:   - = floor
KFEAT:   _ = altar_beogh
MAP
......
.cccc.
.c_Ic.
.c11c.
.c22c.
.c.2c.
.cdec.
..@....
ENDMAP

NAME:    grunt_orc_community_house_3
TAGS:    grunt_orc_community_house allow_dup transparent no_monster_gen
TAGS:    no_item_gen
MONS:    orc warrior / orc priest / orc wizard
MONS:    orc / nothing
SHUFFLE: def, I_ / I- / -_ / _- / -I
SUBST:   d = +, ef = c
KFEAT:   - = floor
KFEAT:   _ = altar_beogh
MAP
.........
..ccccc..
.cc.2.cc.
.c.._..c.
.c1.I.1c.
.c.2.2.c.
.cc...cc.
..cdefc..
....@....
ENDMAP

##################################################
# The orcs roasted some dungeon creatures, and they're sleeping off the meal.
NAME:   grunt_orc_tribal_feast
TAGS:   patrolling no_item_gen no_monster_gen
PLACE:  Orc:$
ORIENT: float
MONS:   orc knight, orc high priest, orc sorcerer / ogre mage w:2
MONS:   orc warrior / kobold blastminer w:4 / two-headed ogre w:2
MONS:   orc priest, orc wizard, orc
ITEM:   yak skeleton, wyvern skeleton
KFEAT:  A = any shop
: single_cloud(_G, "O", "flame", false)
MAP
      ccccccc
     cce.6.5ccc
   xxc4.1.1..Acc
   x...e.2....2cc
  xx.4.d...e...Ac
 xx.e.e3.O.3.1.Ac
 x7..4.e..e...3cc
xx.e.c.d.2.e.Acc
x..7xc4e.e.6cccc
x...xcc.5cccc
x.7..xcccc
xx....7xxxxx
 xx.7....6.6.
  xx....5.1.5
   xxx.7.....
     xx.4.@.4
ENDMAP

##################################################
# A lot of the opposition here comes from the band of orcs following the
# leader; if it seems kind of sparse at first glance, think again.
NAME:    grunt_orc_cross
TAGS:    patrolling no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc knight, orc high priest, orc sorcerer
MONS:    orc warrior, orc wizard, orc priest
SHUFFLE: ABCD, DE, JKLM
KMONS:   A = Saint Roka band w:2 / orc warlord band, orc warlord band
KMONS:   B = Nergalle w:2 / orc sorcerer, orc sorcerer
KMONS:   C = Urug w:2 / orc knight, orc knight
KMONS:   D = Blorkula the orcula w:2 / orc wizard, orc wizard
KMONS:   E = Erolcha w:2 / ogre mage band, ogre mage band
KFEAT:   J = general shop
KFEAT:   K = antique armour shop
KFEAT:   L = antique weapon shop
KFEAT:   M = book shop / jewellery shop
KFEAT:   _ = altar_beogh
MAP
cccc  c..@..c  cccc
cJ6ccccI.4.Icccc5Kc
c5..ccc.....ccc..6c
cc...cc.....cc...cc
 cc...c..2..c...cc
  cc.4.......4.cc
ccccc.........ccccc
..I....A.c.B....I..
...................
@...1..c._.c..1...@
...................
..I....C.c.D....I..
ccccc.........ccccc
  cc.4.......4.cc
 cc...c..3..c...cc
cc...cc.....cc...cc
c6..cccI...Iccc..5c
cL5cccc..4..cccc6Mc
cccc  c..@..c  cccc
ENDMAP

##################################################
# Inspired by evil_forest.
# A combination dark temple / marketplace. (Wasn't someone supposed to throw
# those moneychangers out, anyway...?)
# Outer shops are for common orc pilgrims, inner shops only for the initiated.
NAME:    pf_orc_diabolical
TAGS:    patrolling no_item_gen no_monster_gen transparent
PLACE:   Orc:$
ORIENT:  float
MONS:    orc / nothing w:6, orc warrior / nothing w:6
MONS:    orc priest / nothing w:6, common demon / nothing w:6
MONS:    orc knight / kobold blastminer w:1
MONS:    demonspawn / obsidian bat w:2 / nothing w:8
MONS:    orc high priest / orc sorcerer
KFEAT:   A = w:20 general shop / distillery shop / scroll shop
KFEAT:   B = book shop / jewellery shop
KFEAT:   C = antique weapon shop / antique armour shop
KFEAT:   P = enter_pandemonium
SHUFFLE: BC
TILE:    c = wall_stone_dark
FTILE:  .1234567@ = floor_pebble_lightred
SUBST:   b = bc
TILE:    b = bedevilled_crystal_pandemonium
: set_feature_name("crystal_wall", "bedevilled crystal wall")
MAP
             cc2@2c
            ccc33ccc
           ccc..ccccc
          ccc..ccc3ccc
         ccc..ccc232ccc
        ccc..ccc.c2c.ccc
       ccc..ccc...c...ccc
      ccc..ccc...ccc...ccc
     ccc..ccc.4.cc7cc.4.ccc
    ccc.1......cc75.cc.4.ccc
   ccc.1.1c.3.cc..c..cc...ccc
  ccc123c32..cc..ccc.3cc.c.ccc
 cccA2c1211.cc6.cB7cc32.2.27ccc
ccc5.11.c1.cc77.76.Pbc.c....5ccc
 cccA2c1211.cc6.cC7cc32.2.27ccc
  ccc123c32..cc..ccc.3cc.c.ccc
   ccc.1.1c.3.cc..c..cc...ccc
    ccc.1......cc75.cc.4.ccc
     ccc..ccc.4.cc7cc.4.ccc
      ccc..ccc...ccc...ccc
       ccc..ccc...c...ccc
        ccc..ccc.c2c.ccc
         ccc..ccc232ccc
          ccc..ccc3ccc
           ccc..ccccc
            ccc33ccc
             cc2@3c
ENDMAP

##################################################
NAME:   kennysheep_orc_mage_school
TAGS:   patrolling no_item_gen no_monster_gen
PLACE:  Orc:$
ORIENT: float
MONS:   orc sorcerer / ogre mage w:2, orc wizard, orc / ogre w:12
KMONS:  4 = Erolcha / ogre mage, ogre mage
KMONS:  5 = Nergalle / orc sorcerer, orc sorcerer
KMONS:  6 = obsidian bat
KFEAT:  A = distillery shop / scroll shop
KFEAT:  B = book shop / jewellery shop
KFEAT:  C = antique weapon shop / antique armour shop
KFEAT:  D = altar_beogh
KFEAT:  E = altar_kikubaaqudgha
KFEAT:  F = altar_vehumet
KFEAT:  mn = rock_wall
NSUBST: . = 8:1 / 18:2 / 10:3 / 2 = 12 / 6 = 223.. / *:.
NSUBST: 6 = 2:6 / 2 = 6. / *:.
NSUBST: Y = 1:A / 1:B / 1:C / 1:ABC / *:I
COLOUR: n = black
TILE:   n = wall_hall_darkgray
COLOUR: m = white
TILE:   m = wall_hall_white
MAP
                     ccccccccc
                   cccbbbbbbbccc  ccccc
                 lccbbblllllbbbccccbbbcc
                llclllllllllllllcclllbbcc
               lllccllllllll..6cc...llbbcc
               llllcccI.lll....+..Immmlbbc
               llccc.........I.c....Fmllbc
              lllc.............+.....m6lbccccc
              llcc..lll...lll..c.....I.lccbbbcccc
    '''''     llcY.cbbbc..lccccc......4ccbbYbbbbcc
  '''''''''   llcc..lll...lcbbbc......cclll.lllbbcc
 '''''''''''  lllc........lclll......cc.......llbbcc
''''''cc''cc'lcclccc......lc........cc.....I...llbbc
''''''cc''cc'lcclllcccc...lcI...ll..c...I.l.l.I.llbc
''''''''''''''llllllll....lc...cbl..c....ll.ll...lbcc
'''''''''''''''''''.......lc...cbl..+...ll...ll..lbbc
@'''''''''''''''''''...I..lcY.6cbl..+..Il..D...I6.Ybc
'''''''''''''''''''.......lc...cbl..+...ll...ll..lbbc
''''''''''''''llllllll....lc...cbl..c....ll.ll...lbcc
''''''cc''cc'lcclllcccc...lcI...ll..c...I.l.l.I.llbc
''''''cc''cc'lcclccc......lc........cc.....I...llbbc
 '''''''''''  lllc........lclll......cc.......llbbcc
  '''''''''   llcc..lll...lcbbbc......cclll.lllbbcc
    '''''     llcY.cbbbc..lccccc......5ccbbYbbbbcc
              llcc..lll...lll..c.....I.lccbbbcccc
              lllc.............+.....n6lbccccc
               llccc.........I.c....Enllbc
               llllcccI.lll....+..Innnlbbc
               lllccllllllll..6cc...llbbcc
                llclllllllllllllcclllbbcc
                 lccbbblllllbbbccccbbbcc
                   cccbbbbbbbccc  ccccc
                     ccccccccc
ENDMAP

##################################################
NAME:   pubby_orc_utopia
ORIENT: encompass
TAGS:   patrolling no_item_gen no_monster_gen
PLACE:  Orc:$
WEIGHT: 5
MONS:   orc w:8 / orc warrior w:1 / nothing w:1
MONS:   orc priest, orc warrior, orc warrior band
MONS:   ogre w:8 / two-headed ogre w:4 / kobold blastminer w:4 / \
        troll w:1 / warg w:1 / nothing w:8
MONS:   orc knight, orc sorcerer
KMONS:  8 = obsidian bat
KMONS:  D = orc high priest
KMONS:  E = Saint Roka band w:1 / orc warlord band, orc warlord band
KMONS:  P = plant / nothing
KFEAT:  s = any shop
KFEAT:  _ = altar_beogh
: if you.where() == dgn.level_name(dgn.br_entrance("Elf")) then
KFEAT:  p = enter_elven_halls
: else
KFEAT:  p = abandoned_shop w:5 / fountain_blue / floor w:30
: end
SUBST:  $ = $:1 .:4
NSUBST: u = 2:s / I
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.p.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$xxxxxxxxcccccxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxcc7|7ccxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.$xxxxxxxcc2...2ccxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx.x$.xxxxxxxxc...Y...cxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx$...$xxx.xxxxcc..4..ccxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx4.$..xxxxx.xxxxccc.cccxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxx..xxxxxxc+cxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx..5.xxxxxxx$...xxx..$xx.xxxx.xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx5xx..xx......xxxxxxxxx..5xx$..xxxx..xxx.xxxxxxcccccxxxxxxxxxxxxx
xxxx..x....x....$....xxxxxx$...x..xxxx$..x...xxxxxcc...ccxxxxxxxxxxxx
xxx...xxxx.........1..xxxxx......xxxxx......xxxxxcc.....ccxxxxxxxxxxx
xxx$...xx.$...x...1.1..xxxxx.$..$xxxxxx..$.xxxxxcc.......ccxxxxxxxxxx
xx....xxx.....x..1...1..xxxx.....xxxxx....xxxxxxc....2D...cxxxxxxxxxx
x...xx.xx.xx....1..{..1.xxxxxx...$xxxx..xxxxxxxxc...3u2...cxxccccccxx
xxxx.......x.....1...1..xxxxxx$...xxx...x..xxxxxc....4....cxcc....ccx
xxxx....$...xx.x..1.1..xxxxxxx..$...........xxxxcc.......cccc......cc
xxxxx........x.x...1..xxxvvvvxxx.....$.xxxx.xxxxxcc.....cccc....2D..c
xxx..................xxxxv..vvvx...$.xxxxxxx.xxxxxcc...cccc....4u2..c
xx....$.......$.xx...xxxxv0.+.vxxx...xxxxxvvvvxxxxcc...ccc......3...c
xx...5.....$....xxx...xxxv.%v.vvvvvv+vvvvvv..vvvxcc...ccc..........cc
xx.....$.........xx....xxvvvv.v%..vv.vv.%.v0.+.vxc....cc...........cx
xx....x.........5.xx...xxv..v.v..0vv.vv.0.v.%v.vcc...cc.....cc...cccx
xx...x..x..........x$...xv0%+.vv+vvv.vvv+vvvvv.vc....c.....cccccccxxx
xxxxxx....x.......$xx...xv..v..........v.......vc.2.cc..2..cxxxxxxxxx
xxx.x..xxxx..xx.....x...xvvvv....vv+vv.v....vvvvc...c.....ccxxxxxxxxx
xx....xxxxxxxxx.....xx..xv..v0...v3..v.v1.1.v..vc..cc.....ccccccxxxxx
xx5..xxxxx...xx.$....x...v..+....v.*0v......+..v...c......cc...ccxxxx
x....xxxx..1..xx.........v..vvvv.vvvvv.vvvv.v.%v.........cc.....ccxxx
xx..5xxx..1.1..xx.....$..vvvv..........v*0v.vvvv........cc...I...ccxx
xxx.xxx..1...1.....5.....1Ivv.vvvv0....v3.+.vvvv.I...I...I.......Icxx
xx..x...1..[..1............+..v3*v..T..v..v....+............E_....cxx
xx.......1...1...........1Ivv.+.0v...0.vvvv.vvvv.I...I...I.......Icxx
xx.x..x...1.1..xx...$....vvvv.v..v..........vvvv........cc...I...ccxx
xx..xxxx...1..xx.........v..v.vvvv.vvvvv.vvvv0.v.........cc.....ccxxx
xxx.xxxxxx...xx..5.......v0.+......v.*.v....+..v...c......cc...ccxxxx
xx5xxxxxxxxxxxx.......$..v.%vvvvvv.v0.3v....v.%vc..cc.....ccccccxxxxx
xxxxxxxxxxxxxxx..$.......vvvvxxxxv.vv+vv..1.vvvvc...c.....ccxxxxxxxxx
xxxxxxxxxxxxx.......x.....xxxx.xxv.............vc.2.cc..2..cxxxxxxxxx
xxxxxxxxx.x..$.....x......xxxxx..vvv.vvv+vvvvv.vc....c.....cccccccxxx
xxxxxxxx.5........xx.....xxxx.....xv.vv0..v..v.vcc...cc.....cc...cccx
xxxxxxxx.........xx.....xxxxx....xxv.vv...v..+.vxc....cc...........cx
xxxxxx.xx..$..5.xxx.....xxxx.xx....v+vvvvvv..vvvxcc...ccc..........cc
xxxxx..........xxx...x...x.xxxxxx.....xxxxvvvvxxxxcc...ccc......3...c
xxxxx..........xx.....xx..x.x..........xx.xxxxxxxxcc...cccc....4u2..c
xxxxx.$.....$.xxx..1...xx.xx....$.......xx.xxxxxxcc.....cccc....2D..c
xxxxxx.........x..1.1..xxxxx......4..$.....Pxxxxcc.......cccc......cc
xxxxxxx..$.x..xx.1...1..xxx..$.............WWxxxc....4....cxcc....ccx
xxxxxxxxxx...xxx1..(..1...xx...x.......txWWwxxxxc...3u2...cxxccccccxx
xxxxxxxxxxx.xxx..1...1.....xxx......xxxxxxwwwxxxc....2D...cxxxxxxxxxx
xxxxxxxxxxxxxxx...1.1....$.xx.....$..xxxxxwwxxxxcc.......ccxxxxxxxxxx
xxxxxxxxxxxxxxx....1.................Ptxxxxxwxxxxcc.....ccxxxxxxxxxxx
xxxxxvvvvvxxx...xx..............$..t...Wxxxxwwxxxxcc...ccxxxxxxxxxxxx
xxxvvv$$$vxxxxxxxccccccc.............WWWxxwwwwwxxxxcccccxxxxxxxxxxxxx
xvvv$$650vccccxxxc.....c.........PtPWWWWwxwwwxwxxxxxxxxxxxxxxxxxxxxxx
vv$$$$7..+.+.cxxxc..4..c.......$.xxxWWwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxx
xvvv$$050vcc.cxxxc.0U..+.$.......xxwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxx
xxxvvv$$$vxc.ccccc..0..c....$..xxxxxwwxwwwwxwwwxwwxxxxxxxxxxxxxxxxxxx
xxxxxvvvvvxc.c...c.....c..xxx...xxxxxxwwwxxxwwwwwxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxc.c2.0ccc+cccccccccccccxxxxxwwwxwwwwwxxxxxxxxxxxxxxxxxxxxx
xxxxxccccccc.+._.+.........+.....cccccccwwwwwwwxxxxxxxxxxxxxxxxxxxxxx
xxxxxllll8.ccc2.0c.cc+ccc+cc.....c.0Wwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxx
xlxxlllll..+.c...c.c...c...c.....+..WWwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxx
xxlllllll0.c.cc+cc.c0.0c0.0ccccccc.0Wwwwxxxwwxxxxxxxxxxxxxxxxxxxxxxxx
xllllccccccc.......cs6.c.6scxxxxccccccccxxxxwxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxcccccccccccccccccxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP

##################################################
NAME:   hellmonk_orc_salted
TAGS:   no_item_gen no_monster_gen
PLACE:  Orc:$
WEIGHT: 5
ORIENT: southwest
MONS:   saltling, orc-shaped pillar of salt
MONS:   orc knight w:30 / kobold blastminer w:2 / two-headed ogre / troll / \
        orc sorcerer w:15 / cyclops / ettin w:2 / stone giant w:1
MONS:   orc knight band / orc warlord band w:5
KMONS:  _ = orc high priest
SUBST:  ' = ."", ; = c", ! = x:3 .
NSUBST: " = 28 = 1""" / 96 = 2""" / *=", 3 = 2:3 / * = 3...., 4 = 2:4 / 3
KFEAT:  _ = altar_beogh
KFEAT:  p = abandoned_shop
KFEAT:  S = any shop
FTILE:  ";p12 = FLOOR_SALT
COLOUR: ";p12 = LIGHTGREY
MAP
           !!!!!@@@!!!!!
       !!!!!...........!!!!!
    !!!!...................!!!!
    !.........................!
    !..!!!!..;;;''';;;..!!!!..!
    !.!!!..;;;""""""";;;..!!!.!
    !.!!.;;;""""";""""";;;.!!.!
   !!.!.;;"""""";;;"""""";;.!.!!
   !..!.;"""""""";"""""""";.!..!
   !.!.;;"""";""""""";"""";;.!.!
   !.!.;"""";;""""""";;"""";.!.!
   !.!.;""";;;""";""";;;""";.!.!
   !.!.;"""""""";;;"""""""";.!.!
   !.!.;""";;;""";""";;;""";.!.!
   !.!.;"""";;""""""";;"""";.!.!
   !.!.;;"""";""""""";"""";;.!.!
   !.!!.;"""""""";"""""""";.!!.!
   !..!.;;"""""";;;"""""";;.!..!
   !!..!.;;;""""";""""";;;.!..!!
xxxxx..!!..;;;pp"""pp;;;..!!..!
xxxxx.!!.!!..;;;;;;;;;..!!!!!.!
xxxxx3!!!.!!!.........!!.!.!!3!
xxxxx..!.!!!!!!!..!!!!!!!.!!!.!
xxxxx..!!!.!.!.!!!!.!.!!.!!!!.!
xxxxx..!.!!.!.!.!!.!.!.!!!.!!.!
xxxxx..3!!.!xxxx!!xxxxx.!!!!..!
xxxxxxx...3....xxxx......3....x
xxxxxxxx3xx.....3..........xxxx
xxxxxxx..xx.............xx.xxxx
xxxxxxx..xxx.....3.....xx33xxxx
xxxxxxx3xxxxx.33xxx33.xxxx+xxxx
xxxxxxx++xxxxxxxxxxxxxxxx..xxxx
x33.xxx..xxxxxx3.3xxxx.3...xxxxx
x3..+...3x.3.x.....xxx...3.xxxxxx
x4..+.3..+...+..4..+3+..xxxx3S3xx
xS3.xxxxxx.3.x..3..xxx...3.x.3.xx
xxxxxxxxxxxxxxx3.3xxxx3.3..x...xx
             xx...xxxxxxx.3xx..xx
             x.....xxx.3.....4.xx
             x3.4.3xxx....3x..xxx
             xS.3.Sxxxxxxxxxxxxxx
             xx._.xx
             xxxxxxx
ENDMAP
