###############################################################################
# ecumenical.des: This file contains the vaults that place faded altars and
#                 are a part of the D:1-3 chance group for placing such an
#                 altar. Vaults that use ecumenical altars for decorative
#                 reasons should not be in this file.
#
# See the section in docs/develop/levels/guidelines.md for guidelines on
# creating new vaults. Every vault in this file should call
# ecumenical_altar_setup to set the chance.
#
###############################################################################

: crawl_require('dlua/vault.lua')

{{
function ecumenical_altar_setup(e)
  e.depth("D:1-3")
  e.tags("uniq_ecumenical_altar chance_ecumenical_altar extra")
  e.chance(2500)
  e.kfeat("_ = altar_ecumenical")
end
}}

NAME:   basic_ecumenical_altar
TAGS:   transparent
WEIGHT: 50
: ecumenical_altar_setup(_G)
MAP
_
ENDMAP

NAME:    chequers_ecumenical_altar_simple
TAGS:    transparent
SHUFFLE: GH
SUBST:   G : Gbt x:5
: ecumenical_altar_setup(_G)
MAP
.....
.HGH.
.G_G.
.HGH.
.....
ENDMAP

NAME:    chequers_ecumenical_altar_simple_redux
TAGS:    transparent
SHUFFLE: GH
SUBST:   G : Gbt x:5
: ecumenical_altar_setup(_G)
MAP
.......
..HGH..
.HGHGH.
.GH_HG.
.HGHGH.
..HGH..
.......
ENDMAP

NAME:   chequers_ecumenical_altar_grove
TAGS:   transparent
WEIGHT: 5
KMASK:  - = no_item_gen
KMASK:  - = no_monster_gen
KPROP:  - = no_tele_into
SUBST:  - = tt.
: if crawl.one_chance_in(4) then
TILE:   t = dngn_tree_dead
COLOUR: t = brown
:   set_feature_name("tree", "dead tree")
: elseif crawl.one_chance_in(4) then
COLOUR: t = lightred / red w:4 / yellow w:4
TILE:   t = dngn_tree_lightred / dngn_tree_red w:4 / dngn_tree_yellow w:4
: end
: ecumenical_altar_setup(_G)
MAP
 ......
 .-.-.@..
--.-..-.--.
 .tttttt.--.
.-t-...t.---.
.tt.-tt.-t--.
-t--.-t--t-.
 ttt-.ttttt-.
 t.t.-.-t-t.
 -t._tttt-@.
 ttttt--tt.
-ttt--.---.
...........
ENDMAP

NAME: chequers_ecumenical_altar_lobes
WEIGHT: 5
KPROP:  tG = no_tele_into
KMASK:  tGp = no_item_gen
KMASK:  tG = no_monster_gen
NSUBST: + = 1:.
SUBST:  ' : tGp, t = t:2 ., G = G:3 ., p = p:5 ., - = T U V .
KMONS: p = plant
: ecumenical_altar_setup(_G)
MAP
   xxxxx    xxxxx
 xxx'-'xxxxxx'-'xxx
xxtGp_pGtxxtGp.pGtxx
xxtGp.pGtxxtGp.pGtxx
xxtGp.pGtxxtGp.pGtxx
xxxxx+xxxxxxxx+xxxxx
xtGpp..........ppGtx
xxxtGpppp..ppppGtxxx
  xxxxxtG..Gtxxxxx
      xxx..xxx
        x..x
         @@
ENDMAP

NAME: chequers_ecumenical_altar_twisty
TAGS: transparent
WEIGHT: 5
KFEAT:  _ = altar_ecumenical
SUBST: x : x:30 c t:1
: ecumenical_altar_setup(_G)
MAP
 x@x
 x.xx
 xx.x
xx.xx
x.xx
xx_xx
 xx.x
xx.xx
x.xx
xx.x
 x@x
ENDMAP

NAME: chequers_ecumenical_altar_island
TAGS: transparent
SUBST: - = W:5 . t:5
SUBST: s = W:5 .
SUBST: S = w.
: ecumenical_altar_setup(_G)
MAP
sssssssssssss
sSSSSSSSSSSSs
sSwwwwwwwwwSs
sSwwwwwwwwwSs
sSwWWWWwwwwSs
sSWww--WwwwSs
sSwWw-_-wwwSs
sSwWw---wwwSs
@.WwwwwwwwwSs
sSwwwwwwwwwSs
sSwwwwwwwwwSs
sSSSSSSSSSSSs
sssssssssssss
ENDMAP

NAME:   ebering_ecumenical_altar_webs
TAGS:   transparent
NSUBST: ^ = 4=^. / 4=^..
KFEAT:  ^ = web
: ecumenical_altar_setup(_G)
MAP
^^^
^_^
^^^
ENDMAP

NAME: ebering_ecumenical_altar_mist
TAGS:   transparent
MARKER: _ = lua:fog_machine { cloud_type = "thin mist", pow_min = 5, \
                              pow_max = 10, delay = 20, size = 1, \
                              spread_rate = 15, walk_dist = 2 }
: ecumenical_altar_setup(_G)
MAP
...
._.
...
ENDMAP

NAME:  ebering_ecumenical_altar_box
TAGS:  transparent
SUBST:  x : xcv
: ecumenical_altar_setup(_G)
MAP
.......
.xx.xx.
.x...x.
..._...
.x...x.
.xx.xx.
.......
ENDMAP

NAME:  ebering_ecumenical_altar_hall
TAGS:  transparent
SUBST: G : btAGTUV Y:1
: ecumenical_altar_setup(_G)
MAP
xxxxxxx
xGxGxGx
@.._..@
xGxGxGx
xxxxxxx
ENDMAP

NAME:  ebering_ecumenical_altar_sacrificial
TAGS:  transparent
KITEM: _ = dagger mundane
SUBST: ' = ''.
KPROP: ' = bloody
: ecumenical_altar_setup(_G)
MAP
'''''
'''''
''_''
'''''
'''''
ENDMAP

NAME:   ebering_ecumenical_altar_rust
TAGS:   transparent
KITEM:  _ = any weapon damaged
KFEAT:  a = iron_grate
NSUBST: ' = 2=va / 4=va. / .
: ecumenical_altar_setup(_G)
MAP
'''
'_'
'''
ENDMAP

NAME:  ebering_ecumenical_altar_abandoned
TAGS:  transparent
KFEAT: S = abandoned_shop
: ecumenical_altar_setup(_G)
MAP
._.
...
V.S
ENDMAP

NAME:   ebering_ecumenical_altar_ruins
WEIGHT: 5
TAGS:   transparent
SUBST:  G = GGG-
SUBST:  - = --.
COLOUR: - = brown
FTILE:  -G = floor_rough_brown
: vault_granite_statue_setup(_G, "G", "broken pillar")
: ecumenical_altar_setup(_G)
MAP
  G-G
  .-.
G.G-G.G
---_---
G.G-G.G
  .-.
  G-G
ENDMAP

NAME:    ebering_ecumenical_altar_petrified
TAGS:    transparent
KFEAT:   t = petrified_tree
KMONS:   p = petrified flower
SHUFFLE: tp
SUBST:   p = pp.
SUBST:   t = t.
: ecumenical_altar_setup(_G)
MAP
 .pp.
.ptt..
ptp_tp
ptpptp
.pttp.
 .pp.
ENDMAP

NAME:    shapermc_ecumenical_altar_notcrosses
TAGS:    transparent
SHUFFLE: PQ
SUBST:   P : ccv
SUBST:   Q : mmWWl
: ecumenical_altar_setup(_G)
MAP
ccccc+ccccc
c....P....c
c..QQPQQ..c
c....P....c
c....P....c
c.QQQ_QQQ.c
c....P....c
c....P....c
c..QQPQQ..c
c....P....c
ccccc+ccccc
ENDMAP

NAME:  shapermc_ecumenical_altar_starsandcircs
TAGS:  no_pool_fixup transparent
SUBST: P : xxxxxccl
SUBST: Q : WWW'l
KPROP: ' = bloody
: ecumenical_altar_setup(_G)
MAP
     ..@..
    .PP.PP.
   .P.Q.Q.P.
  .P..Q.Q..P.
 .PQQQQ.QQQQP.
.P..Q.QwQ.Q..P.
.P...Qw_wQ...P.
.P...Qw.wQ...P.
.P...Q.w.Q...P.
.P..Q.Q.Q.Q..P.
 .PQ.Q...Q.QP.
  .@Q.....Q@.
   .P.....P.
    .PPPPP.
     .....
ENDMAP

NAME:   shapermc_ecumenical_altar_totnotflames
TAGS:   transparent
COLOUR: . = green
COLOUR: ' = brown
FTILE:  A. = floor_grass_dark
FTILE:  '_Gt@ = floor_moss
SUBST:  A = ATUV
: ecumenical_altar_setup(_G)
MAP
    @t@
    t.t
   tt.t
   t..t  t
   t.tt tt@
   t.t  t.t
   t.tttt.t
   t..tt..t
    t.t.ttt
@tt t...t
t.ttt.A.tttt@
t...t...tt..t
tt...'''..ttt
 tt.'G_G'tt
  tttttttt
ENDMAP

NAME:   shapermc_ecumenical_altar_gd
TAGS:   transparent
KMONS:  P = plant / fungus
KMONS:  D = demonic plant / withered plant w:5
NSUBST: ' = 15:P / 10:P.. / .
NSUBST: - = 15:D / 10:D.. / .
SUBST:  x : ccccvvbb
: ecumenical_altar_setup(_G)
MAP
     .xxxxxxxxx.
  .xxx''''x----xxx.
  x'''''''x-------x
 xx'''''''x-------xx.
x'''''''''x---------x
x'''''''''_---------x
x'''''''''x---------x
.xx'''''''x-------xx.
  x'''''''x-------x
  .xxx''''x----xxx.
     .xxxxxxxxx.
ENDMAP

NAME:   shapermc_ecumenical_altar_hornbeckon
TAGS:   transparent
KMONS:  p = plant
KMONS:  f = fungus
KMONS:  B = pile of debris
NSUBST: ' = 8:pf / 12=ppf... / .
SUBST:  G = GGB
: ecumenical_altar_setup(_G)
MAP
....@....
bxxbWbxxb
x'''W'''x
x''W'''xx
xx'W''xx
 x'W'xx
 x'W'x
 xxW'xx
  x'W'x
  xx-Wxx
   x''Wx
   x''Wxxxx
   xx''._Gx
    xxxxxxx
ENDMAP

NAME:    shapermc_ecumenical_altar_venn
TAGS:    transparent
SHUFFLE: GV
SUBST:   x : xxxxccv
: ecumenical_altar_setup(_G)
MAP
 .xxx.
.x...x
x..V.Gx
x.V..xxx
x...xAxGx.
.xGx_x...x
  xxx..V.x
   xG.V..x
    x...x.
    .xxx.
ENDMAP

NAME:   shapermc_ecumenical_altar_flowoftime
TAGS:   transparent
MONS:   plant, withered plant, demonic plant
KMONS:  0 = sacred lotus
KFEAT:  0 = W
SUBST:  ' = P....., - = ppppp.
: if crawl.one_chance_in(20) then
SUBST:  Pp : 2223
: elseif crawl.one_chance_in(10) then
NSUBST: p = 1:0 / * = 1
SUBST:  P = 2
: else
SUBST:  p = 112, P = 122, b = c
: end
: ecumenical_altar_setup(_G)
MAP
xxxxxxxxxxxxxxx
x''''bbbbb----x
x'''''bbb-----x
+''''''_------+
x'''''bbb-----x
x''''bbbbb----x
xxxxxxxxxxxxxxx
ENDMAP

NAME:   dilly_ecumenical_altar_fadedgnrine
TAGS:   transparent
KPROP:  E = no_tele_into
KMASK:  E = opaque
KMASK:  E = no_monster_gen
KMASK:  E = no_item_gen
MONS:   plant
KITEM:  E = gnoll skeleton
SUBST:  z = t111
SUBST:  1 = 11'
FTILE:  1E'_  = floor_grass_dark
FTILE:  t = floor_moss
COLOUR: 1E'_ = green
: ecumenical_altar_setup(_G)
MAP
      .....
     ..ttt..
    ..tt_tt..
   ..ttz'ztt..
  ..ttzz'zztt..
  .ttzz1'1zztt.
  .tz111'111zt.
  .tzxxx+xxxzt.
  .ttx.....xtt.
  .tEm..G..mEt.
  .ttx.....xtt.
  ...xxt+txx...
    .........
ENDMAP

NAME:   shapermc_ecumenical_altar_mp_vishouse
TAGS:   transparent
SUBST:  - = --.
SUBST:  G = GGG-
COLOUR: - = brown
FTILE:  -G = floor_rough_brown
: vault_granite_statue_setup(_G, "G", "broken pillar")
: ecumenical_altar_setup(_G)

MAP
.............
.....xxxxx..x
..xxx---xG--x
xx------xxxxx
x--xxx--x---x
x--x_x------x
x--b-x--xx+xx
x--+-x--x---x
x--b-x--xGGGx
xxxxxx.xxxxxx
.............
ENDMAP


NAME:   shapermc_ecumenical_altar_mp_highgroup
TAGS:   transparent
KFEAT:  ^ = web
SUBST:  - = --., G = GGG-, ^ = ^^.
COLOUR: - = brown
FTILE:  -G = floor_rough_brown
: vault_granite_statue_setup(_G, "G", "broken pillar")
: ecumenical_altar_setup(_G)
MAP
xxxxxx-xxxxxx
xG^--x-x--^Gx
xxx-xx_xx-xxx
x-----------x
x^x---.---x^x
xG^--...--^Gx
xxxx.....xxxx
ENDMAP

NAME:   shapermc_ecumenical_altar_mp_urbaneastern
TAGS:   transparent
KMONS:  p = plant
KMONS:  f = fungus
SUBST:  - = --.
SUBST:  G = GGG-
COLOUR: - = brown
FTILE:  -G = floor_rough_brown
NSUBST: ' = 8=pf / 12=ppf... / .
: vault_granite_statue_setup(_G, "G", "broken pillar")
: ecumenical_altar_setup(_G)
MAP
...............
.xxxxxxxxxxxxx.
..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..
.xxxxxxxxxxxxx.
...............
ENDMAP

NAME:   shapermc_ecumenical_altar_mp_ritualfount
TAGS:   transparent
KMONS: W = plant / nothing
KMONS: p = plant
KMONS: f = fungus
SUBST: ^ = TUV---
SUBST: - = --.
SUBST: G = GGG-
SUBST: W = WWWWw.
COLOUR: - = brown
NSUBST: ' = 8=pf. / 12=ppf... / .
FTILE: -G = floor_rough_brown
: vault_granite_statue_setup(_G, "G", "broken pillar")
: ecumenical_altar_setup(_G)
MAP
......x....
.-----x''''
.-xxxxxx'W'
.-x--x_x'W'
.-x--x-xWW'
'--WW-WWx''
''W^^W''x''
''W^^^W'x''
'''WWWW'x''
'''''''W'x'
'''WWWW''x'
ENDMAP

NAME:  hellmonk_ecumenical_altar_pennies_from_heaven
TAGS:  transparent
KITEM: _ = gold q:1
KFEAT: W = shallow_water
KITEM: W = gold q:1 / w:25 nothing
: ecumenical_altar_setup(_G)
MAP
.....
.WWW.
.W_W.
.WWW.
.....
ENDMAP

NAME:  hellmonk_ecumenical_altar_leap_of_faith
KFEAT: ^ = shaft
: ecumenical_altar_setup(_G)
MAP
xxx
x_x
x^x
x@x
ENDMAP

NAME:  hellmonk_ecumenical_altar_run_dry
TAGS:  transparent
SUBST: V = V.
: ecumenical_altar_setup(_G)
MAP
V.V.V
.....
V._.V
.....
V.V.V
ENDMAP

NAME: hellmonk_ecumenical_altar_heavens_door
TAGS: no_monster_gen transparent
: if crawl.one_chance_in(5) then
: door_vault_setup(_G)
: end
: ecumenical_altar_setup(_G)
MAP
+++++
+++++
++_++
+++++
+++++
  @
ENDMAP

NAME:  hellmonk_ecumenical_altar_blasted
TAGS:  transparent
KITEM: _ = scroll of immolation pre_id
SUBST: x = ..x
SUBST: x : xc
: ecumenical_altar_setup(_G)
MAP
.............
.xxxxxxxxxxx.
.xxxxxxxxxxx.
.xx...x...xx.
.xx.xx.xx.xx.
.xx.xx.xx.xx.
.xxx.._..xxx.
.xx.xx.xx.xx.
.xx.xx.xx.xx.
.xx...x...xx.
.xxxxx.xxxxx.
.xxxxx+xxxxx.
.............
ENDMAP

NAME:   hellmonk_ecumenical_altar_lost_god
TAGS:   transparent
WEIGHT: 1
SUBST:  x : x:20 c m:1
NSUBST: a = 1:_ / *.
: ecumenical_altar_setup(_G)
MAP
..............
.x......x.....
.xa....ax.a.x.
.x......x...x.
.a............
.....a........
.x...x..x.....
.x.a.x.ax.....
.x...x..xaxxx.
............a.
ENDMAP

NAME:  hellmonk_ecumenical_altar_crossroads
TAGS:  transparent
KFEAT: r = abandoned_shop / G / l / t / V / T / web / shaft / \
            trap_net / A / > / Y w:2
: ecumenical_altar_setup(_G)
MAP
@@@xxxxxxx@@@
x...xxxxx...x
xx...xxx...xx
 xx...r...xx
  xx.._..xx
   xx...xx
    x...x
    x...x
    x@@@x
ENDMAP

NAME:  hellmonk_ecumenical_altar_zigzags
TAGS:  transparent
SUBST: a : xcv, d : xcv, e : cvv
: ecumenical_altar_setup(_G)
MAP
                             ddddddd
                           ddd.....ddd
       aaaaaaa           ddd.........ddd
     aaa.....aaa       ddd.............ddd
   aaa.........aaa.......................@
 aaa.........................
@.........................eee
            eee.........eee
              eee.._..eee
                eeeeeee
ENDMAP

NAME:   hellmonk_ecumenical_altar_inner_sanctum
TAGS:   transparent
NSUBST: e = 1:+ / *:c,  f = 1:+ / *:v
SUBST:  v : vbtm
: ecumenical_altar_setup(_G)
MAP
...........
.ccccecccc.
.c.......c.
.c.......c.
.c..vfv..c.
.e..f_f..e.
.c..vfv..c.
.c.......c.
.c.......c.
.ccccecccc.
...........
ENDMAP

# We want to avoid giving a player an immediate reroll for big piety
# but the flavour of this one is too good.
NAME:    hellmonk_ecumenical_altar_the_god_not_taken
TAGS:    transparent
WEIGHT:  1
:if crawl.one_chance_in(10) then
COLOUR:  t = lightred / red w:3
TILE:    t = dngn_tree_lightred / dngn_tree_red w:3
:else
COLOUR:  t = yellow / green w:3
TILE:    t = dngn_tree_yellow / dngn_tree w:3
:end
: ecumenical_altar_setup(_G)
MAP
 ttt           ttt
tt.tt         tt.tt
t._.t         t._.t
t...tt       tt...t
tt...tt     tt...tt
 tt...tt   tt...tt
  tt...tt tt...tt
   tt...ttt...tt
    tt...t...tt
     tt.....tt
      tt...tt
       t@@@t
ENDMAP

NAME:    hellmonk_ecumenical_altar_arch_garden
TAGS:    transparent
NSUBST:  A = 1:_ / *:A
SUBST:   A = tGAA"
FTILE:   ._ = floor_grass_dark
COLOUR:  . = green
FTILE:   "tGA = floor_moss
: ecumenical_altar_setup(_G)
MAP
A""A""A""A""A
"..........."
"..........."
A..A..A..A..A
"..........."
"..........."
A..A..A..A..A
"..........."
"..........."
A..A..A..A..A
"..........."
"..........."
A""A""A""A""A
ENDMAP

NAME:   hellmonk_ecumenical_altar_watching_god
TAGS:   transparent
WEIGHT: 5
KMONS:  1 = glass eye / golden eye / shining eye / \
            eye of devastation /  great orb of eyes
KMASK:  1 = opaque
KPROP:  1 = no_tele_into
: ecumenical_altar_setup(_G)
MAP
...........
.ccc...ccc.
.c1n...n1c.
.cnn...nnc.
...........
....._.....
...........
.cnn...nnc.
.c1n...n1c.
.ccc...ccc.
...........
ENDMAP

NAME:   hellmonk_ecumenical_altar_dog_temple
TAGS:   transparent no_monster_gen
WEIGHT: 5
KMONS:  a = jackal band
KMONS:  P = withered plant
KFEAT:  a = T
SUBST:  G = GGP
: ecumenical_altar_setup(_G)
MAP
.......
.G.a.G.
.......
.T._.T.
.......
.G.T.G.
.......
ENDMAP

NAME:   hellmonk_ecumenical_altar_prayer_group
TAGS:   no_monster_gen transparent
WEIGHT: 5
MONS:   hobgoblin / goblin / kobold / nothing w:60
: ecumenical_altar_setup(_G)
MAP
 ccccccc
cccG_Gccc
cc..1..cc
cc.1.1.cc
c.1...1.c
c..G1G..c
c.......c
cc.....cc
cc.....cc
 cc.G.cc
  c...c
  .....
ENDMAP

# an ooze ate the god's name right off the altar
NAME:   hellmonk_ecumenical_altar_slurped_away
TAGS:   no_monster_gen transparent
WEIGHT: 5
SUBST:  x : xc, g = G.
KMONS:  _ = endoplasm
: ecumenical_altar_setup(_G)
MAP
+xxx xxx+
x..xxx..x
x...g...x
xx.....xx
 xg._.gx
xx.....xx
x...g...x
x..xxx..x
+xxx xxx+
ENDMAP

# some orcs have torn down the altar and replaced it with their own
NAME:   hellmonk_ecumenical_altar_defaced_shrine
TAGS:   no_monster_gen transparent
WEIGHT: 5
: if you.absdepth() > 1 then
MONS:   orc / clockroach w:2
: else
MONS:   rat / dart slug
: end
KMONS:  d = pile of debris / nothing w:30
: kitem("d = " .. vault_species_skeletons(_G, "dungeon"))
KITEM:  _ = stone q:1 / large rock q:1 w:3
KFEAT:  B = altar_beogh
KPROP:  B = no_tele_into
KMASK:  B = opaque
NSUBST: d = 1:_ / *:d
SUBST:  1 = 1..
SUBST:  x : xc
SUBST:  . = .:90 '
SUBST:  T = TV Y:1
KPROP:  ' = bloody
: ecumenical_altar_setup(_G)
MAP
       xxx
       xdx
    xxxx+xxxx
   xx...1...xx
  xx.1.....1.xx
  x.....1.....x
xxx....vlv....xxx
xd+1...lBl...1+dx
xxx....vlv....xxx
  x..1.....1..x
  xx....1....xx
   xx.......xx
    xx.....xx
     .......
     ...T...
ENDMAP

# The book is for flavor.  because of how early these vaults are
# we don't want to be handing out much loot in them if we can help it
NAME:   shapermc_ecumenical_altar_rom_forum
TAGS:   transparent
KITEM:  _ = randbook owner:Plato numspells:1 slevels:1
SUBST:  ' = pf .:100
KMONS:  p = plant
KMONS:  f = fungus
SUBST:  ^ = ^..
KFEAT:  ^ = web
: ecumenical_altar_setup(_G)
MAP
   .........
  ..'xxxxx'..
 ..'x'''''x'..
..'x'xxxxx'x'..
.'x'x'''''x'x'.
.x'x'xxxxx'x'x.
.x'x'x'_'x'x'x.
.^^^^^^^^^^^^^.
...............
ENDMAP

NAME:   shapermc_ecumenical_altar_acropolis
TAGS:   transparent
KMONS:  p = plant
KMONS:  f = fungus
SUBST:  ' = pf .:100
NSUBST: ^ = 8=pfTVV / 4=TVV... / W
: ecumenical_altar_setup(_G)
MAP
.........
.^^^^^^^.
.^'''''^.
.^'xxx'^.
.^'x_x'^.
.^'x.x'^.
.^'x'x'^.
.^'''''^.
.^^^^^^^.
.........
ENDMAP

NAME:   shapermc_ecumenical_altar_pompeii
TAGS:   transparent
SUBST:  G = GGG-
COLOUR: - = brown
FTILE:  -G = floor_rough_brown
COLOUR: G = lightgrey
TILE:   G = dngn_crumbled_column
: set_feature_name("granite_statue", "ash-covered pillar")
NSUBST: ' = 10=..C / 5=.C
KITEM:  C = human skeleton w:20 / minotaur skeleton w:1
: ecumenical_altar_setup(_G)
MAP
xxxxxxx
x_''''x
x'-'-'-
x'-'-'G
x'-'''-
x'-'''G
x'''''-
x'''''G
xG-G-G-
ENDMAP

# goal of this is to feel hidden in something, so no b seen from outside
NAME:    shapermc_ecumenical_altar_petra
TAGS:    transparent
: if crawl.coinflip() then
KMONS:   p = plant
KMONS:   f = fungus
KFEAT:   C = c
SHUFFLE: bB / cC / cC
SUBST:   ' = f...
TILE:    C = wall_stone_puffball
: else
NSUBST:  ' = 3 = ^^. / .
KFEAT:   ^ = web
: end
SUBST:   B = b
: ecumenical_altar_setup(_G)
MAP
 xxxxxx
xxbbbbxx
xbb_G'bx
xbG''bBx
xb'b''bx
xbBb''bx
xbb'''bx
xb''bBbx
xbb''bxx
xxBb''bx
 xxG'Gxx
ENDMAP

NAME: shapermc_ecumenical_altar_ellora
TAGS: transparent
SUBST: ' = pf .:40
KMONS: p = plant
KMONS: f = fungus
: ecumenical_altar_setup(_G)
MAP
      x+xxxxx
      x'...'x
      xGxxx.x
      x'.'x.x
     xx.x.x.x
    xx''x'+'x
xxxxx'_'xxxxx
x'+'x''xx
x.x.x.xx
x.x'.'x
x.xxxGx
x'...'x
xxxxx+x
ENDMAP

NAME:   dreamdust_ecumenical_altar_hidden_monk_grotto
TAGS:   transparent
KMONS:  p = plant / fungus
KITEM:  h = human skeleton, mundane robe
SUBST:  ? = pW
: ecumenical_altar_setup(_G)
MAP
   xxxxx
 xxxt_txxx
xxp.h...pxx
xp..?W?..px
xx..?W?..xx
 xxp...pxx
  xxx.xxx
  xp.xxpx
   xp...xx
   xxxxp.x
ENDMAP

NAME:   dreamdust_ecumenical_altar_angels_and_demons
TAGS:   transparent
KFEAT:  p = granite_statue
KFEAT:  q = granite_statue
TILE:   p = dngn_statue_angel
TILE:   q = dngn_statue_demonic_bust
COLOUR: pq = white
COLOUR: - = lightgray
FTILE:  -_pq = floor_hall
: set_feature_name("granite_statue", "otherworldly statue")
: ecumenical_altar_setup(_G)
MAP
   .......
   .ccccc.
....cp-qc....
.pccc---cccq.
.-+---_---+-.
.pccc---cccq.
....cp-qc....
   .ccccc.
   .......
ENDMAP

NAME:  dreamdust_ecumenical_altar_drowned_temple
TAGS:  transparent no_monster_gen
MONS:  spectral goblin / spectral hobgoblin / \
       spectral kobold
TILE:  G : dngn_statue_mermaid
: set_feature_name("granite_statue", "merfolk statue")
SUBST: . = . W
SUBST: - = - W
SUBST: ~ = W:20 .
SUBST: | = p:20 W
SUBST: x = x:35 W
FTILE: -1G = floor_pebble
: ecumenical_altar_setup(_G)
MAP
...............
.xxxx.....xxxx.
.xG~xxxxxxx~Gx.
.x~~~~~_~~~~~x.
.xxx~|~1~|~xxx.
...x~~~-~~~x...
  .x~|~-~|~x.
  .xx~~-~~xx.
   .xx+++xx..
   .........
ENDMAP

NAME:   dreamdust_ecumenical_altar_grove
TAGS:   transparent
KMONS:  p = plant / fungus
SUBST:  # = g t p
SUBST:  - = .:20 g p
COLOUR: g = green / lightgreen
FTILE:  _gtp = floor_grass_dark
FTILE:  . = floor_moss
: ecumenical_altar_setup(_G)
MAP
 .......
.-------.
.-#####-.
.-#####-.
.-#-_##-.
.--####-.
.-#####-.
.-------.
 .......
ENDMAP

NAME:   dreamdust_ecumenical_altar_sealed_demon
TAGS:   transparent no_item_gen
WEIGHT: 5
KMASK:  ? = opaque
KPROP:  ? = no_tele_into
KMONS:  ? = any demon perm_ench:petrified generate_awake
KMONS:  p = demonic plant
: vault_granite_statue_setup(_G, "G", "broken pillar")
FTILE:  G_vn?- = floor_demonic_red
COLOUR: -? = red
: ecumenical_altar_setup(_G)
MAP
.........
...ccc...
.ccc_ccc.
.cG---Gc.
.c-vnv-c.
.c-n?n-c.
.c-vnv-c.
.cG---Gc.
.ccc+ccc.
...p.p...
.........
ENDMAP

NAME:  dreamdust_ecumenical_altar_statues
TAGS:  transparent
TILE:  G : DNGN_STATUE_ANCIENT_EVIL / DNGN_STATUE_ANCIENT_HERO / \
           DNGN_STATUE_ANGEL / DNGN_STATUE_ARCHER / DNGN_STATUE_AXE / \
           DNGN_STATUE_CAT / DNGN_STATUE_CENTAUR / DNGN_STATUE_CEREBOV / \
           DNGN_STATUE_DEMONIC_BUST / DNGN_STATUE_DRAGON / DNGN_STATUE_DWARF / \
           DNGN_STATUE_ELEPHANT / DNGN_STATUE_HYDRA / DNGN_STATUE_IMP / \
           DNGN_STATUE_MAW / DNGN_STATUE_MERMAID / DNGN_STATUE_NAGA / \
           DNGN_STATUE_ORB / DNGN_STATUE_ORB_GUARDIAN / DNGN_STATUE_POLEARM / \
           DNGN_STATUE_PRINCESS / DNGN_STATUE_SIGMUND / DNGN_STATUE_SNAIL / \
           DNGN_STATUE_SWORD / DNGN_STATUE_TENGU / DNGN_STATUE_TENTACLES / \
           DNGN_STATUE_TRIANGLE / DNGN_STATUE_TWINS / DNGN_STATUE_WRAITH
: ecumenical_altar_setup(_G)
MAP
.....
.G.G.
.._..
.....
.....
ENDMAP

NAME:    nicolae_ecumenical_lake_church
TAGS:    transparent
SHUFFLE: DE/FH, JK/LM
SUBST:   DJ = N, EK = w, FL = ', HM = N, N = w'
CLEAR:   '
: ecumenical_altar_setup(_G)
MAP
    NwwwN
  NwwwwwwwN
 NwwwwwwwwwN
 wwwwwwwwwww
NwwwccnccwwwN
wwwwc...cwwww
wwwwn._.nwwww
wwwwc...cwwww
Nwwwcc+ccwwwN
 wwwKJ DEwww
 NwwN   NwwN
  NN     NN
ENDMAP

NAME:   nicolae_ecumenical_oubliette
TAGS:   transparent no_pool_fixup no_descent
# The ecumenical_altar_setup function includes a DEPTH: D:1-3 line,
# but I don't want this one to show up on D:1.
WEIGHT: 0 (D:1), 10
KFEAT:  ! = iron_grate
KMASK:  -S({[_ = opaque
: if crawl.one_chance_in(5) then
SUBST:  v! : wl!
: else
SUBST:  v : v:50 c:30 b n, ! : !:50 n:30 w l
: end
SUBST:  S = ({[
: ecumenical_altar_setup(_G)
MAP
.........
.vvvvvvv.
.!-----!.
.!-S-_-!.
.!-----!.
.vvvvvvv.
.........
ENDMAP

NAME:    nicolae_ecumenical_pavilion
TAGS:    transparent
WEIGHT:  0 (D:1), 10
# 1/4 chance of all three upstairs, 3/4 chance of two upstairs and a hatch.
SHUFFLE: {[(<
SUBST:   x : xxxm, c : cccb
FTILE:   {[(<_cbxm; : floor_black_cobalt / floor_cobble_blood / floor_crypt / \
         floor_crystal_squares / floor_grass_dark / \
         floor_limestone / floor_moss / floor_mud / floor_sand / \
         floor_sandstone / floor_vines / floor_w_marble
COLOUR:  ; : blue / green / cyan / red / magenta / brown / lightgrey / \
             lightblue / lightgreen / lightcyan / lightred / lightmagenta / \
             yellow / white
: ecumenical_altar_setup(_G)
MAP
    .....
  .........
 ..xxxxc;...
 .xx;;;;;cx.
..x;;{;c;;x..
..c;;;;;;;x..
..;;c;_;[;x..
..c;;;;;;;x..
..x;;(;c;;x..
 .xx;;;;;cx.
 ..xxxxc;...
  .........
    .....
ENDMAP

NAME:  nicolae_ecumenical_snake_handling
TAGS:  transparent
: if you.absdepth() == 1 then
KMONS: 1_ = ball python / nothing
: else
KMONS: 1_ = ball python w:30 / adder / nothing
: end
SUBST: G : Gx
: vault_metal_statue_setup(_G, "G", "mystic cage")
: ecumenical_altar_setup(_G)
MAP
 x    x    x
xxx..xxx..xxx
 x..xxxxx..x
 ..1.xxx.1..
 .x...x...x.
 xxx.....xxx
xxxGx._.xGxxx
 xxx.....xxx
 .x...x...x.
 ..1.xxx.1..
 x..xxxxx..x
xxx..xxx..xxx
 x    x    x
ENDMAP

NAME:   angelslayer_ecumenical_altar_simple_liquid
TAGS:   transparent no_monster_gen no_pool_fixup
SUBST:  W : W:10 w:5 l:1
: ecumenical_altar_setup(_G)
MAP
.WWW.
W...W
W._.W
W...W
.WWW.
ENDMAP

NAME:     angelslayer_ecumenical_altar_broken_walls_simple
TAGS:     ruin transparent
SHUFFLE:  _E
SUBST:    E = G:10 V:5 A:3 .:3
TILE:     x = wall_catacombs
FTILE:    ._xGVA = floor_crypt
: ecumenical_altar_setup(_G)
MAP
xxxxxxxxx
x.......x
x._...E.x
x.......x
xx.xxxxxx
ENDMAP

NAME:     angelslayer_ecumenical_altar_muddy
TAGS:     transparent ruin
KMONS:    F = plant
NSUBST:   - = 1:_ / 1:t / 3:F / *:.
NSUBST:   ? = 1:t / 5:F / *:.
FTILE:    t_.F = floor_mud
: ecumenical_altar_setup(_G)
MAP
?  ? ?
????????
 ?-----??
??-----?  ?
??-----???
 ???????
 ? ??
  ??
ENDMAP
