###############################################################################
# altar.des: This is the place where minivaults (and floating vaults)
#            containing altars should go. Vaults particular to a specific
#            branch (Beogh altar minivaults for Orc:*, for example), may
#            go in the corresponding des-file. A few entry vaults contain
#            altars; these should always be in entry.des.
#
#            There are two reasons for keeping altar vaults separate:
#            * This makes it easier to adapt for new gods.
#            * Easier tweaking of altar chances.
###############################################################################

######################################
# I    Temples (Multi-altar vaults)
######################################

NAME:   minitemple
TAGS:   allow_dup
# More common than the others.
WEIGHT: 20
MAP
cccccccccc
cBcBcBcBcc
G.c.c.c.Bc
@.......Bc
@.......Bc
G.c.c.c.Bc
cBcBcBcBcc
cccccccccc
ENDMAP

NAME:    jmf_multi_god_temple
SHUFFLE: abc
SUBST:   a:=, b:x, c:x
DEPTH:   D:8-21, Vault
MAP
............
.axxxxxxxxa.
.x9......9x.
.bT......Tb.
.x..C..C..x.
.cT......Tc.
.xxxxmmxxxx.
.xxx$$$$xxx.
.xx8....8xx.
..xx....xx..
...xG..Gx...
............
ENDMAP

NAME:  jmf_multi_god_temple2
DEPTH: D:8-21, Vault
MAP
............
..vvvvvvvv..
.vv......vv.
.v..x..x..v.
.v.Cx..xC.v.
.v..x..x..v.
.vT8x..x8Tv.
.vvvx==xvvv.
...Gx99xG...
...+*99*+...
...GxxxxG...
............
ENDMAP


######################################
# II   General altars
######################################

NAME: old_standard_altar
TAGS: allow_dup
SHUFFLE: cvxx
MAP
...........
.xxxx.xxxx.
.xx.....xx.
.x.......x.
.x.......x.
.....C.....
.x.......x.
.x.......x.
.xx.....xx.
.xxxx.xxxx.
...........
ENDMAP

NAME:    lemuel_round_altar
TAGS:    allow_dup
SHUFFLE: cvxx
SUBST:   X:x.
MAP
   xxXxx
  xx...xx
 xx.....xx
 x.......x
 X...C...@
 x.......x
 xx.....xx
  xx...xx
   xxXxx
ENDMAP

NAME: lemuel_crystal_altar
TAGS: allow_dup
MAP
b.b
.C.
b.b
ENDMAP

NAME:   lemuel_altar_in_water
DEPTH:  D:2-18, Swamp, Shoal
WEIGHT: 9
: local brnd = crawl.random2(13)
: if brnd > 10 then
TAGS:   no_monster_gen no_rotate
# this case almost always has altar access
: else
TAGS:   no_monster_gen no_pool_fixup no_rotate
: end
MAP
   .........
  ...wwwww...
 ..wwwwwwwww..
..wwwwwwwwwww..
.wwwwwwwwwwwww.
.wwwwwwCwwwwww.
.wwwwwwwwwwwww.
..wwwwwwwwwww..
 .wwwwwwwww..
 ...wwwww...
   ........
ENDMAP

NAME:   lemuel_altar_in_water2
TAGS:   no_pool_fixup no_monster_gen
DEPTH:  D:2-18, Lair, Snake, Swamp, Shoal
WEIGHT: 1
MAP
   www
  wwwww
 wwwwwww
 @..Cwww
 wwwwwww
  wwwww
   www
ENDMAP

NAME:  lemuel_oklob_altar
DEPTH: D:6-18, Lair, Snake, Shoal
MONS:  oklob plant, plant
MAP
 2
2C1
 2
ENDMAP

NAME:    lemuel_hidden_altar
DEPTH:   D:1-18, Vault, Lair, Elf, Crypt
SHUFFLE: XY
SUBST:   X = .
SUBST:   Y = =
MAP
.........
.xxxXxxx.
.xxx.xxx.
.xxxYxxx.
.X.YCY.X.
.xxxYxxx.
.xxx.xxx.
.xxxXxxx.
.........
ENDMAP

NAME:   lemuel_sealed_altar_a
WEIGHT: 3
DEPTH:  D:2-18, Vault, Elf, Crypt
MAP
xxxxxxxxxxxxx
x...........x
x...........x
x...........x
x...........x
x.....>.....x
x.....C.....x
x...........x
x...........x
x...........x
x...........x
xxxxxxxxxxxxx
ENDMAP

NAME: lemuel_sealed_altar_b
WEIGHT: 7
DEPTH: D:2-18, Vault, Elf, Crypt
MAP
xxxxxxxxxxx
x.........x
x.........x
x....>....x
x....C....x
x.........x
x.........x
xxxxxxxxxxx
ENDMAP

NAME:  lemuel_tele_altar
DEPTH: D:2-18, Vault
SUBST: Y = X x
KFEAT: X = teleport trap
MAP
.............
.xxxxxXxxxxx.
.x.........x.
.x.........x.
.x.........x.
.Y....C....Y.
.x.........x.
.x.........x.
.x.........x.
.xxxxxYxxxxx.
.............
ENDMAP

NAME:  lemuel_statue_altar
DEPTH: 2-18, Vault, Elf
: if you.absdepth() < 10 then
SUBST: F = G
: end
SUBST: F = G:100 F:1
KMONS: F = orange crystal statue / silver statue / ice statue
MAP
.........
.ccccccc.
.F...>Cc.
.ccccccc.
.........
ENDMAP

NAME:   lemuel_coloured_pillars_altar
DEPTH:  D:2-18, Vault, Elf
TAGS:   no_rotate
COLOUR: c = blue / yellow / red / cyan
MAP
xxxxxxxxxxxxxxxxxxxx
...................x
c...c...c...c...c..x
@.................Cx
c...c...c...c...c..x
...................x
xxxxxxxxxxxxxxxxxxxx
ENDMAP

NAME:   lemuel_upstairs_altar
DEPTH:  D:2-12, Vault, Elf, Crypt
ORIENT: float
SUBST:  T:T., )=)}], c:ccx
KMASK:  T = no_monster_gen
MAP
ccccccc
cT...Tc
c.....ccccccc
c..C..+....)c
c.....ccccccc
cT...Tc
ccccccc
ENDMAP

######################################
# III  Special altars
######################################

# XXX - The WEIGHTs and PLACE of these Feawn vaults are temporary.
#       Remove once the Ecumenical Temple is updated to cater for
#       more than 12 gods.

NAME:   feawn_altar_1
TAGS:   uniq_altar_feawn
DEPTH:  D:2-7
WEIGHT: 75
KFEAT:  C = altar_feawn
MONS:   plant
MAP
.....
.1.1.
..C..
.1.1.
.....
ENDMAP

NAME:   feawn_altar_2
TAGS:   uniq_altar_feawn
DEPTH:  D:2-7
WEIGHT: 75
KFEAT:  C = altar_feawn
NSUBST: w = 2:W / *:w
SUBST:  . = ..wW
SUBST:  w = wwwP
MAP
.....
.www.
.wCw.
.www.
.....
ENDMAP

NAME:   feawn_altar_3
TAGS:   uniq_altar_feawn
DEPTH:  D:2-7
WEIGHT: 75
KFEAT:  C = altar_feawn
NSUBST: b = 1:. / *:1
MONS:   plant w:5 / fungus / nothing w:3
MAP
.111.
1b1b1
11C11
1b1b1
.111.
ENDMAP

NAME:   feawn_altar_4
TAGS:   uniq_altar_feawn
DEPTH:  D:2-7
WEIGHT: 75
KFEAT:  C = altar_feawn
FTILE:  . = floor_lair
FTILE:  t = floor_lair
MAP
xxxxxxxxxxxxxxx
xxxtttttttxxxxx
xxtttttttttxxxx
xtttt.ttttttxxx
xtttt.C.ttttttt
xxtttt...ttttt.
xxtttttt.......
xxxxttttttttt..
xxxxxxttttttttx
xxxxxxxtttttttx
xxxxxxxxxxxxxxx
ENDMAP

NAME:  feawn_altar_5
TAGS:  uniq_altar_feawn
PLACE: D:8
KFEAT: C = altar_feawn
MONS:  centaur, bush
MAP
...... 
.2222..
.21222.
.22C22.
...22..
.222.. 
ENDMAP

NAME:   cheibriados_altar_1
TAGS:   uniq_altar_cheibriados
PLACE:  D:7
KFEAT:  C = altar_cheibriados
MAP
...
.C.
...
ENDMAP

NAME:    cheibriados_altar_2
TAGS:    uniq_altar_cheibriados
DEPTH:   D:2-6
WEIGHT:  100
KFEAT:   C = altar_cheibriados
MONS:    giant slug, giant snail, elephant slug
SUBST:   1 : 1:50 2:30 3:10 4:10
NSUBST:  4 = 1:1 / 1:2 / 1:3
MAP
.......
.mmm... 
.m1m... 
.mmmmm. 
..Cm1m.  
.mmmmm. 
.m1m... 
.mmm... 
.......
ENDMAP

NAME:   cheibriados_altar_3
TAGS:   uniq_altar_cheibriados
DEPTH:  D:2-6
WEIGHT: 100
KFEAT:  C = altar_cheibriados
ITEM:   potion of slowing
ITEM:   apple, pear, orange, banana
SUBST:  e : efgh
MAP
.d.
eCe
.d.
ENDMAP

#############################


NAME:  lemuel_angel_altar
DEPTH: D:3-18, Vault
: if you.absdepth() > 12 then
MONS: patrolling Daeva / patrolling Angel
: else
MONS:  patrolling Angel
: end
KFEAT: C = altar_elyvilon / altar_zin / altar_shining_one
MAP
   .....
  ..xmx..
 ..xx>xx..
..xxx.xxx..
.xxxx1xxxx.
.m>..C..>m.
.xxxx.xxxx.
..xxx.xxx..
 ..xx>xx..
  ..xmx..
   .....
ENDMAP

NAME:  lemuel_hellish_altar
DEPTH: D:2-21, Crypt, Geh
MONS:  iron devil/orange demon, beast/rotting devil, lemure/manes, hellion
SUBST: 2 = 23
SUBST: 2 = 12
SUBST: 3 = 3L
: if you.absdepth() >14 then
SUBST: 1 = 1:20 4
: end
SUBST: L = l.
SUBST: C = C P:1
KFEAT: C = altar_lugonu/altar_yredelemnul/altar_kikubaaqudgha/altar_makhleb
KFEAT: P = enter_abyss
MAP
  ..LLllLL....
  .LllllllLLL..
..Lll323lllLLL.
.LLl32123lllLL.
.LLl33C33llLL..
..Lll323llLL...
..LLll3llL.....
...LLlllL...
....LLLL....
   ..LLLLL..
   ....LLLL.
ENDMAP

NAME:  david_defended_altar_orc
DEPTH: D:7-20, Orc
MONS:  patrolling orc priest
TAGS:  uniq_defended_altar
KFEAT: D = altar_beogh / w:1 altar_okawaru / w:1 altar_makhleb / w:1 altar_trog
MAP
ccccc...
c1..c...
c1D.+.I@
c1..c...
ccccc...
ENDMAP

NAME:  david_defended_altar_elf
DEPTH: D:7-20, Elf
MONS:  patrolling deep elf priest / w:30 nothing
TAGS:  uniq_defended_altar
MAP
ccccc...
c1..c...
c1C.+.G@
c1..c...
ccccc...
ENDMAP

NAME:   lemuel_blue_sif_altar
DEPTH:  D:2-18, Elf, Vault
TAGS:   no_monster_gen mini_float
COLOUR: . = blue
FTILE:  . = floor_hall, C = floor_hall, @ = floor_hall, + = floor_hall
KFEAT:  C = altar_sif_muna
MAP
xxxxxxxxxxxxxx
...........xxx
@..........+Cx
...........xxx
xxxxxxxxxxxxxx
ENDMAP

NAME:  lemuel_zombie_altar
DEPTH: D:2-18, Crypt
TAGS:  no_pool_fixup
MONS:  rat zombie / giant bat zombie / nothing w:200
KMONS: w = giant goldfish zombie / big fish zombie / nothing w:200
KFEAT: w = deep_water
KFEAT: C = altar_kikubaaqudgha / altar_yredelemnul
MAP
xxxxxxxxxxxxxxxx
xxxxwwwwwwwwxxxx
xxxx11111111xxxx
@.............Cx
xxxx11111111xxxx
xxxxwwwwwwwwxxxx
xxxxxxxxxxxxxxxx
ENDMAP

# The mix of deep and shallow water is intended to keep the centaurs from
# escaping without requiring the player to be able to cross deep water.
NAME:  lemuel_centaur_altar
DEPTH: D:7-20, Shoal, Lair
TAGS:  no_pool_fixup no_monster_gen
MONS:  patrolling centaur
MAP
xxxxxxxxxxxxx
xxxxxxxxxxwxx
xxwx.1.1.xxwx
xwxx1.C.1xwwx
xwwxWwwWwWwxx
xwwWwwwwwwxxx
xxwWwWWwwWxxx
xxxwWwwWwxxxx
xxxwwwWwWxxxx
xxx...@..xxxx
ENDMAP

NAME:   lemuel_mausoleum_altar
DEPTH:  D:7-20, Crypt
MONS:   w:50 human zombie/orc zombie/elf zombie/w:5 ogre zombie/w:5 troll zombie
MONS:   w:50 human skeleton/orc skeleton/elf skeleton/w:5 ogre skeleton/\
        w:5 troll skeleton
MONS:   mummy, wight, wraith, necrophage, ghoul
NSUBST: ? = 1:C / *:1
SUBST:  1 = 1:25 2 3 4:8 5:6 6:4 7:2
KFEAT:  C = altar_kikubaaqudgha / altar_yredelemnul
KMONS:  C = human zombie
MAP
ccccccccccccccc
c?c?c?c?c?c?ccG
c+c+c+c+c+c+ccc
c............+@
c+c+c+c+c+c+ccc
c?c?c?c?c?c?ccG
ccccccccccccccc
ENDMAP

###################################################################
# Nemelex altar (Shiori)
# Perhaps could have different parameters for the two types of clouds,
# and different patterns.
NAME:  nemelx_altar_shiori
DEPTH: !Lair, !Orc
TAGS:  no_pool_fixup no_monster_gen no_item_gen
TAGS:  generate_awake patrolling mini_float no_rotate
TAGS:  layout_rooms layout_city layout_open layout_cross
KFEAT: _ = altar_nemelex_xobeh
SUBST: b:aa. , a:n. , d:c. , c:nn. , f:ee. , e:nn. , h:g. , g:n.
SUBST: G:GTUVblw> , C=c
KFEAT: z = teleport trap
MARKER: R = lua:fog_machine { cloud_type="flame", walk_dist=1, size=9, \
            pow_max=20, delay=10, buildup_amnt=14, buildup_time=7, \
            spread_rate=3, start_clouds=1 }
MARKER: B = lua:fog_machine { cloud_type="foul pestilence", walk_dist=1, \
            size=9,  pow_max=20, delay=10, buildup_amnt=14, buildup_time=7, \
            spread_rate=3, start_clouds=1 }
MAP
CCCCCCCC+++CCCCCCCC
Cnnnnnnn...nnnnnnnC
Cnab'ban...ncd'dcnC
Cnb...bn.G.nd...dnC
Cn'.B..n...n..R.'nC
Cnb...bn...nd...dnC
Cnab.ban...ncd.dcnC
Cnnnnnnn...nnnnnnnC
CG......._.......GC
Cnnnnnnn...nnnnnnnC
Cnef.fen...ngh.hgnC
Cnf...fn...nh...hnC
Cn'.R..n...n..B.'nC
Cnf...fn.G.nh...hnC
Cnef'fen...ngh'hgnC
Cnnnnnnn...nnnnnnnC
CCCCCCCC+++CCCCCCCC
ENDMAP

###################################################################
# Distorted kobolds (Jude)
NAME:   due_chaos_kobolds
DEPTH:  D:13-27, Vault, Elf, Crypt
ORIENT: float
KFEAT:  L = altar_lugonu
KFEAT:  P = enter_abyss
KFEAT:  e = .
KFEAT:  1 = .
COLOUR: . = random
COLOUR: 1 = random
MARKER: e = lua:fog_machine { cloud_type="purple smoke", walk_dist=1, size=9, \
            pow_max=20, delay=10, buildup_amnt=14, buildup_time=7, \
            spread_rate=3, start_clouds=1 }
: kmons("1 = kobold w:" .. you.absdepth() .. " ; quick blade ego:distortion w:6 |" ..
:       "                  sabre ego:distortion | short sword ego:distortion" ..
:       "  / kobold w:80 ; short sword | sabre | quick blade w:3")
MAP
  ccccc
 cc...cc
cc.eP..cc
 cc...cc
 ccc.cccc
cc......ccc
c...111...c
cc..1L1..cc
c...111...c
ccc......cc
  ccc..ccc
    c++c
     @@
ENDMAP