From 703e437895fdd6943d1fd9ace34bcfe374833b62 Mon Sep 17 00:00:00 2001 From: regret-index Date: Wed, 22 Jun 2016 01:00:45 -0400 Subject: [PATCH] A flood of minmay vaults (#10368, #10423) Of the many submissions of mostly D vaults, probably the most noticeable are the two sets which got their own files and functions: d:1-2 symmetrical polyominos using a few floor spawns, and highly dangerous large subvault grids for D:7- / Elf / Depths. Select monster placements with highly random potential threat density were constrained away from extremely rare low and high points with NSUBST instead of SUBST. Close-together decorative statues in excess of, say, fifteen per vault, were trimmed down, due to concerns of over-use and visual noise in tiles. Vault-wide crystal use chances were also lowered. Eventually I'm going to just break down and impose certain styles and standards onto absolutely every single last vault, I guess. I also gave some elementally-themed vaults variations for Cocytus and Gehenna, which removes the items and places a fiend + a staircase instead. --- crawl-ref/source/dat/des/branches/elf.des | 523 ++++--- crawl-ref/source/dat/des/builder/shops.des | 110 ++ crawl-ref/source/dat/des/variable/float.des | 530 +++++++ .../dat/des/variable/large_abstract.des | 135 +- .../source/dat/des/variable/mini_monsters.des | 257 +++- .../source/dat/des/variable/polyominoes.des | 795 +++++++++++ .../source/dat/des/variable/the_grid.des | 1214 +++++++++++++++++ 7 files changed, 3363 insertions(+), 201 deletions(-) create mode 100644 crawl-ref/source/dat/des/variable/polyominoes.des create mode 100644 crawl-ref/source/dat/des/variable/the_grid.des diff --git a/crawl-ref/source/dat/des/branches/elf.des b/crawl-ref/source/dat/des/branches/elf.des index bcd935d3f52..1e39ae64529 100644 --- a/crawl-ref/source/dat/des/branches/elf.des +++ b/crawl-ref/source/dat/des/branches/elf.des @@ -1751,7 +1751,7 @@ ENDMAP # # Elf:$ branch endings # -# Total weight: 190. +# Total weight: 230. ############################################################################## ############################################################################## @@ -1833,29 +1833,30 @@ KFEAT: A = | KMONS: B = deep elf blademaster KFEAT: B = | MAP -cccccccccccccccccccccccccc -c2ccccccc........ccccccccc -c.cccc2...5....5...2cccccc -c.cc..................cccc -c.c....3....45....3....c3c -c.+........U..U........+.c -c.c......2.2..2.2......c.c -c.cc......3....4......cc.c -c.ccc4cccccc..cccccc.cc..c -c2ccc.c.3.ww..ww.4.ccc...c -c.ccc..3..ww..ww..5......c -c$$$ccc...ww..ww...ccccc.c -c$$$ccc.1.ww..ww.5.ccccc.c -c$$$cccccccc2.cccccc1262.c -ccc+cccccccc..cccccccccc.c -cB*|*|**|*cc..cc$|$*$|$|.c -c**|*|||||cc..cc|$|$*$*$.c -c*|*|||**|cc..cc$*$*$*$|.c -c|**|*|||Acc..ccA$|$|$|$2c -ccccccccccccWWcccccccccccc -ccccccccccccWWcccccccccccc -ccccccccccccWWcccccccccccc -xxxxxxxxxxxx@@xxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxxx +xccccccccccccccccccccccccccx +xc2ccccccc........cccccccccx +xc.cccc2...5....5...2ccccccx +xc.cc..................ccccx +xc.c....3....45....3....c3cx +xc.+........U..U........+.cx +xc.c......2.2..2.2......c.cx +xc.cc......3....4......cc.cx +xc.ccc4cccccc..cccccc.cc..cx +xc2ccc.c.3.ww..ww.4.ccc...cx +xc.ccc..3..ww..ww..5......cx +xc$$$ccc...ww..ww...ccccc.cx +xc$$$ccc.1.ww..ww.5.ccccc.cx +xc$$$cccccccc2.cccccc1262.cx +xccc+cccccccc..cccccccccc.cx +xcB*|*|**|*cc..cc$|$*$|$|.cx +xc**|*|||||cc..cc|$|$*$*$.cx +xc*|*|||**|cc..cc$*$*$*$|.cx +xc|**|*|||Acc..ccA$|$|$|$2cx +xccccccccccccWWccccccccccccx +xccccccccccccWWccccccccccccx +xccccccccccccWWccccccccccccx +xxxxxxxxxxxxx@@xxxxxxxxxxxxx ENDMAP NAME: elf_hall_gauntlet_narrow @@ -1885,30 +1886,31 @@ KITEM: 7 = | KFEAT: 6 = 6 KFEAT: 7 = 7 MAP -ccccccccccccccccccccccccc -c2ccccccc.......ccccccccc -c.cccc2...5...5...2cccccc -c.cc.................cc6c -c.c....3....45...3....c3c -c.+.........U.........+.c -c.c......2.2.2.2......c.c -c.cc......3...4......cc.c -c.ccc4cccccc.cccccc.cc..c -c2ccc.c.3.ww.ww.4.ccc...c -c.ccc..3..ww.ww..5......c -c$$$ccc...ww.ww...ccccc.c -c$$$ccc.1.ww.ww.5.ccccc.c -c$$$cccccccc.ccccccc122.c -ccc+cccccccc2cccccccccc.c -c6*|*|**|*cc.cc$|$*$|$|.c -c**|*|||||cc.cc|$|$*$*$.c -c||*||***|cc.cc$*$*$*$|.c -c|**|*||7*cc.cc7$|$|$|$2c -cccccccccccc.cccccccccccc -ccccccccccc...ccccccccccc -cccccccccc..c..cccccccccc -Yyyyyyyyyy.ccc.zzzzzzzzzZ -xxxxxxxxxxNncnNxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxx +xcccccccccccccccccccccccccx +xc2ccccccc.......cccccccccx +xc.cccc2...5...5...2ccccccx +xc.cc.................cc6cx +xc.c....3....45...3....c3cx +xc.+.........U.........+.cx +xc.c......2.2.2.2......c.cx +xc.cc......3...4......cc.cx +xc.ccc4cccccc.cccccc.cc..cx +xc2ccc.c.3.ww.ww.4.ccc...cx +xc.ccc..3..ww.ww..5......cx +xc$$$ccc...ww.ww...ccccc.cx +xc$$$ccc.1.ww.ww.5.ccccc.cx +xc$$$cccccccc.ccccccc122.cx +xccc+cccccccc2cccccccccc.cx +xc6*|*|**|*cc.cc$|$*$|$|.cx +xc**|*|||||cc.cc|$|$*$*$.cx +xc||*||***|cc.cc$*$*$*$|.cx +xc|**|*||7*cc.cc7$|$|$|$2cx +xcccccccccccc.ccccccccccccx +xccccccccccc...cccccccccccx +xcccccccccc..c..ccccccccccx +xYyyyyyyyyy.ccc.zzzzzzzzzZx +xxxxxxxxxxxNncnNxxxxxxxxxxx ENDMAP ############################################################################## @@ -1925,41 +1927,42 @@ SHUFFLE: 12, 34, 67 : elf_loot_defenders(_G) : elf_loot_randomisation(_G) MAP -xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxcccccxxxxxxxxxc.cxxxxxxxxxcccccxxx -xccc...cccxxxxxccc.cccxxxxxccc...cccx -cc.......cccxccc.....cccxccc.......cc -c3.........ccc.........ccc.........4c -c....6......5...........5......6....c -c3.................................4c -cc......3.........7.........3......cc -xcc...............n...............ccx -xxc5............6nnn6............5cxx -xcc...............n...............ccx -cc.......4........7........4.......cc -c1.................................2c -c....7......5...........5......7....c -c1.........ccc.........ccc.........2c -cc.......cccxccc.....cccxccc.......cc -xccc...cccxxxxxccc.cccxxxxxccc...cccx -xxxcc+ccxxxxxxxxxc.cxxxxxxxxxcc+ccxxx -xxxc$*|cxxxxxxxxxc.cxxxxxxxxxc|*$cxxx -xxxc|*$cxxxxxxxxxc.cxxxxxxxxxc$*|cxxx -xxxcccccxxxxxxxxxc.cxxxxxxxxxcccccxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxcccccxxxccc.cccxxxcccccxxxxxxx -xxxxcccc|$*ccccc6...6ccccc*||ccccxxxx -xxccc*|$*|$$|+....U....+|$$|*$*$cccxx -xcc*$$*|$$|$$ccc7...7ccc|*|$$$||*$ccx -cc$*|*|*|*|cccxcccccccxccc$*$$*$$$|cc -c|*|$$|*ccccxxxxxxxxxxxxxcccc|*$||$*c -cccccccccxxxxxxxxxxxxxxxxxxxccccccccc +xxxxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxcccccxxxxxxxxxc.cxxxxxxxxxcccccxxxx +xxccc...cccxxxxxccc.cccxxxxxccc...cccxx +xcc.......cccxccc.....cccxccc.......ccx +xc3.........ccc.........ccc.........4cx +xc....6......5...........5......6....cx +xc3.................................4cx +xcc......3.........7.........3......ccx +xxcc...............n...............ccxx +xxxc5............6nnn6............5cxxx +xxcc...............n...............ccxx +xcc.......4........7........4.......ccx +xc1.................................2cx +xc....7......5...........5......7....cx +xc1.........ccc.........ccc.........2cx +xcc.......cccxccc.....cccxccc.......ccx +xxccc...cccxxxxxccc.cccxxxxxccc...cccxx +xxxxcc+ccxxxxxxxxxc.cxxxxxxxxxcc+ccxxxx +xxxxc$*|cxxxxxxxxxc.cxxxxxxxxxc|*$cxxxx +xxxxc|*$cxxxxxxxxxc.cxxxxxxxxxc$*|cxxxx +xxxxcccccxxxxxxxxxc.cxxxxxxxxxcccccxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxxx +xxxxxxxxcccccxxxccc.cccxxxcccccxxxxxxxx +xxxxxcccc|$*ccccc6...6ccccc*||ccccxxxxx +xxxccc*|$*|$$|+....U....+|$$|*$*$cccxxx +xxcc*$$*|$$|$$ccc7...7ccc|*|$$$||*$ccxx +xcc$*|*|*|*|cccxcccccccxccc$*$$*$$$|ccx +xc|*|$$|*ccccxxxxxxxxxxxxxcccc|*$||$*cx +xcccccccccxxxxxxxxxxxxxxxxxxxcccccccccx +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENDMAP ############################################################################## @@ -2082,30 +2085,31 @@ SHUFFLE: 12, 34, 67 : elf_loot_defenders(_G) : elf_loot_randomisation(_G) MAP -cccccccccccccccccccccccccccccc -ccccccccccc4....5..ccccccccccc -cccccccc..............cccccccc -cccccc......1....3......cccccc -ccccc...............5....ccccc -cccc....2....bbbb3........cccc -cccc..2.....bbbbbb........cccc -ccc4.......bbbbbbbb........ccc -ccc........bbbbbbbb3..1....ccc -ccc..5.U..2bbbbbbbb...U....ccc -cc.........bbbbbbbb.1.......cc -cc....1.....bbbbbb..........cc -cc.......3..3bbbb.....4.....cc -cc.........................5cc -c5...............5...........c -c.c3..c..5c...1....c...c...c.c -c.cc..cc..cc......cc..cc..cc3c -c.ccc6ccc6ccc....ccc7ccc7ccc.c -c+cccccccccccc..cccccccccccc+c -c$**cc*$cc*$cc..cc$|cc$|cc||$c -c*$*$***$*$**c.4c||$|$|$|||$|c -c**$*$***$*$*c3.c|||$|||$|$||c -cc**cc$*cc$*cc..cc|$cc|$cc|$cc -cccccccccccccc@@cccccccccccccc +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xccccccccccccccccccccccccccccccx +xccccccccccc4....5..cccccccccccx +xcccccccc..............ccccccccx +xcccccc......1....3......ccccccx +xccccc...............5....cccccx +xcccc....2....bbbb3........ccccx +xcccc..2.....bbbbbb........ccccx +xccc4.......bbbbbbbb........cccx +xccc........bbbbbbbb3..1....cccx +xccc..5.U..2bbbbbbbb...U....cccx +xcc.........bbbbbbbb.1.......ccx +xcc....1.....bbbbbb..........ccx +xcc.......3..3bbbb.....4.....ccx +xcc.........................5ccx +xc5...............5...........cx +xc.c3..c..5c...1....c...c...c.cx +xc.cc..cc..cc......cc..cc..cc3cx +xc.ccc6ccc6ccc....ccc7ccc7ccc.cx +xc+cccccccccccc..cccccccccccc+cx +xc$**cc*$cc*$cc..cc$|cc$|cc||$cx +xc*$*$***$*$**c.4c||$|$|$|||$|cx +xc**$*$***$*$*c3.c|||$|||$|$||cx +xcc**cc$*cc$*cc..cc|$cc|$cc|$ccx +xcccccccccccccc@@ccccccccccccccx ENDMAP # Before transforms: 32x$, 27x*, 27x|, 4x1, 8x2, 9x3, 2x4, 10x5, 2x6, 2x7 @@ -2163,38 +2167,39 @@ SHUFFLE: 12, 34, 67 : elf_loot_defenders(_G) : elf_loot_randomisation(_G) MAP -xxxxxxxxxxcccccccccccxxxxxxxxxxx -xxxxxxxxccc*|*|+...1cccxxxxxxxxx -xxxxxxccc*$|*||c.....6cccxxxxxxx -xxxxxcc$*|*|cccc........ccxxxxxx -xxxxcc*|$|ccc*|c....3....ccxxxxx -xxxcc|$*ccc|$*$+......5...ccxxxx -xxcc$||cc*$*|$*c..6........ccxxx -xxc|$$cc*$**cccc............cxxx -xcc$*cc$**ccc1....3...U.....ccxx -xc$||c*|$cc.................2cxx -cc*|cc**cc...5bbb7.......4...ccx -c$|*c|**c..1bbbbbbb..........2cx -c|$cc*|cc..bbbbbbbbb..4.......cx -c*|c|**c..6bbbbbbbbb..........cx -c|*c$$|c..bbbbbbbbbbb..........@ -c+ccc+cc6.bbbbbbbbbbb...1..3cccx -c..1......bbbbbbbbbbb......2cxxx -c..........bbbbbbbbb.......ccxxx -c.7..5....4bbbbbbbbb.......cxxxx -c...........bbbbbbb...5...1cxxxx -cc.5.........5bbb..3.......cxxxx -xc........2.............1.ccxxxx -xcc..3..U...........5....ccxxxxx -xxc........4.............cxxxxxx -xxcc.............5......ccxxxxxx -xxxcc.................cccxxxxxxx -xxxxcc......1........ccxxxxxxxxx -xxxxxcc3........3cccccxxxxxxxxxx -xxxxxxccc......cccxxxxxxxxxxxxxx -xxxxxxxxccc3...cxxxxxxxxxxxxxxxx -xxxxxxxxxxcccc.cxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxcccccccccccxxxxxxxxxxx +xxxxxxxxxccc*|*|+...1cccxxxxxxxxx +xxxxxxxccc*$|*||c.....6cccxxxxxxx +xxxxxxcc$*|*|cccc........ccxxxxxx +xxxxxcc*|$|ccc*|c....3....ccxxxxx +xxxxcc|$*ccc|$*$+......5...ccxxxx +xxxcc$||cc*$*|$*c..6........ccxxx +xxxc|$$cc*$**cccc............cxxx +xxcc$*cc$**ccc1....3...U.....ccxx +xxc$||c*|$cc.................2cxx +xcc*|cc**cc...5bbb7.......4...ccx +xc$|*c|**c..1bbbbbbb..........2cx +xc|$cc*|cc..bbbbbbbbb..4.......cx +xc*|c|**c..6bbbbbbbbb..........cx +xc|*c$$|c..bbbbbbbbbbb..........@ +xc+ccc+cc6.bbbbbbbbbbb...1..3cccx +xc..1......bbbbbbbbbbb......2cxxx +xc..........bbbbbbbbb.......ccxxx +xc.7..5....4bbbbbbbbb.......cxxxx +xc...........bbbbbbb...5...1cxxxx +xcc.5.........5bbb..3.......cxxxx +xxc........2.............1.ccxxxx +xxcc..3..U...........5....ccxxxxx +xxxc........4.............cxxxxxx +xxxcc.............5......ccxxxxxx +xxxxcc.................cccxxxxxxx +xxxxxcc......1........ccxxxxxxxxx +xxxxxxcc3........3cccccxxxxxxxxxx +xxxxxxxccc......cccxxxxxxxxxxxxxx +xxxxxxxxxccc3...cxxxxxxxxxxxxxxxx +xxxxxxxxxxxcccc.cxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxx ENDMAP # The elves have created golems to guard their treasure. @@ -2212,6 +2217,7 @@ SUBST: b : bc : elf_loot_defenders(_G) : elf_loot_randomisation(_G) MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxcccccccccccccccccccccccccxxxxx xxxxxc$*|$$$|*$$*$$*$|$|$|$*$cxxxxx xxxxcc+cc|*$$*$$$$|$$$|$*$cc+ccxxxx @@ -2254,6 +2260,7 @@ SHUFFLE: 12, 34, 67 : elf_loot_randomisation(_G) SUBST: n : nnnb MAP +xxxxxxxxxxxxxxxxxxxxxxx xxccccccccccccccccccccx xcc||*$**cc||$|*$|*|ccx xc*|*|$|**cc$|$*$||$|cx @@ -2297,39 +2304,40 @@ SHUFFLE: 12, 34, 67 : elf_loot_defenders(_G) : elf_loot_randomisation(_G) MAP -xxxcccccccccccccccccccccccccccccxxxx -xxxc$||*$|$$|*$+c2c+*$|*$$$|*||cxxxx -xxccc|$|*$*|*|cc4..cc*|*|**|$*cccxxx -xcc.cc|*||*|$cc...3.cc*|$|||*cc4ccxx -cc...cc||*||cc.......cc*||$|cc...ccx -c..5..cc*$$cc..6...5..cc*|*cc.....cx -cc.....cc*cc...........cc$cc.7...ccx -xcc7....ccc5.....b.....2ccc.....ccxx -xxcc4....c......bbb.1....c....4ccxxx -xxxcc.3.....4..bbbbb..........ccxxxx -xxxxcc...2......bbb...5...3..ccxxxxx -xxxxxcc..........b..........ccxxxxxx -xxxxcc....5....4.........7...ccxxxxx -xxxcc.2...b.........2...b.....ccxxxx -xxcc.....bbb...........bbb.....ccxxx -xxc..5..bbbbb.3..6.2..bbbbb...1.cxxx -xxcc.....bbb...........bbb...5.ccxxx -xxxcc.1...b..........3..b.....ccxxxx -xxxxcc......7................ccxxxxx -xxxxxcc..........b...4......ccxxxxxx -xxxxcc..4....1..bbb.......5..ccxxxxx -xxxcc..........bbbbb..........ccxxxx -xxcc3....c......bbb......c.....ccxxx -xcc.....ccc......b...2..ccc.1...ccxx -cc.....ccxcc.5.........ccxcc...5.ccx -c..5..ccxxxcc......4..ccxxxcc.....cx -cc...ccxxxxxcc.......ccxxxxxcc4..ccx -xcc1ccxxxxxxxcc.....ccxxxxxxxcc.ccxx -xxcccxxxxxxxxxcc3..ccxxxxxxxxxcccxxx -xxxxxxxxxxxxxxxcc.ccxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxc2cxxxxxxxxxxxxxxxxx -xxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxcccccccccccccccccccccccccccccxxxx +xxxxc$||*$|$$|*$+c2c+*$|*$$$|*||cxxxx +xxxccc|$|*$*|*|cc4..cc*|*|**|$*cccxxx +xxcc.cc|*||*|$cc...3.cc*|$|||*cc4ccxx +xcc...cc||*||cc.......cc*||$|cc...ccx +xc..5..cc*$$cc..6...5..cc*|*cc.....cx +xcc.....cc*cc...........cc$cc.7...ccx +xxcc7....ccc5.....b.....2ccc.....ccxx +xxxcc4....c......bbb.1....c....4ccxxx +xxxxcc.3.....4..bbbbb..........ccxxxx +xxxxxcc...2......bbb...5...3..ccxxxxx +xxxxxxcc..........b..........ccxxxxxx +xxxxxcc....5....4.........7...ccxxxxx +xxxxcc.2...b.........2...b.....ccxxxx +xxxcc.....bbb...........bbb.....ccxxx +xxxc..5..bbbbb.3..6.2..bbbbb...1.cxxx +xxxcc.....bbb...........bbb...5.ccxxx +xxxxcc.1...b..........3..b.....ccxxxx +xxxxxcc......7................ccxxxxx +xxxxxxcc..........b...4......ccxxxxxx +xxxxxcc..4....1..bbb.......5..ccxxxxx +xxxxcc..........bbbbb..........ccxxxx +xxxcc3....c......bbb......c.....ccxxx +xxcc.....ccc......b...2..ccc.1...ccxx +xcc.....ccxcc.5.........ccxcc...5.ccx +xc..5..ccxxxcc......4..ccxxxcc.....cx +xcc...ccxxxxxcc.......ccxxxxxcc4..ccx +xxcc1ccxxxxxxxcc.....ccxxxxxxxcc.ccxx +xxxcccxxxxxxxxxcc3..ccxxxxxxxxxcccxxx +xxxxxxxxxxxxxxxxcc.ccxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxc.cxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxc2cxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx ENDMAP # Before transform: 31x$, 26x*, 31x|, 4x1, 12x2, 12x3, 8x4, 8x5, 2x6, 2x7 @@ -2590,3 +2598,174 @@ xxxxxxxccAA.BBccxxxxxxxxx xxxxxxxxcc...ccxxxxxxxxxx xxxxxxxxxcc@ccxxxxxxxxxxx ENDMAP + +# Before transforms: 27x*, 31x|, 6x1, 8x2, 8x3, 4x4, 8x5, 2x6, 2x7 +NAME: minmay_elf_hall_curves +PLACE: Elf:$ +ORIENT: northwest +: elf_setup(_G) +: elf_monsters(_G) +SUBST: 1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77. +SHUFFLE: 12, 34, 67 +: elf_loot_defenders(_G) +SUBST: v = v .:2 +SUBST: v : xvb +: elf_loot_randomisation(_G) +MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxcccccccccccccccxxxxxxxx +xxxxxxcccc........1....ccccxxxxx +xxxxccc....vvv.4.5........cccxxx +xxxcc....vvv2.......1.......ccxx +xxxc..2.vv.....ccccc...v.....cxx +xxcc....v...cccc...c..vvv..3.ccx +xxc.......ccc......c...vvv....cx +xxc2.vv............c....vv....cx +xcc.vv..2.......1..cc...vvv.5.cc +xc..v..c............c..2.vv....c +xc.vv..c....bbbb..3.c....vvv...c +xc.v5.cc...bbbbbb...cc....vvv..c +xc.v..c....bbbbbb....c..3..v...c +xc....c..3.bbbbbb....cc......5.c +xc.5.cc....bbbbbb.....ccc......c +xc...c......bbbb..2.....cccc...@ +xc...c................6...7ccccc +xc.1.c......1...4..bbbb..U.+||*c +xc...ccccc........bbbbbb.3.c**|c +xc.......cccc..3..bbbbbb...c|*|c +xc...5.4....ccc...bbbbbb...c**|c +xc....v.....5.cc..bbbbbb.2cc||*c +xcc..vvv.......c.6.bbbb...c||*cc +xxc...vvvv.2...cc........cc**|cx +xxc....vvvvv....c.U...4.cc||*|cx +xxcc.....vvvv...c..3.7ccc***|ccx +xxxc..5....vvv..cc+cccc|*||**cxx +xxxcc.......v....c**||**|*|*ccxx +xxxxccc..1....3..c|**|*|||cccxxx +xxxxxxcccc.......c|||*|ccccxxxxx +xxxxxxxxxccccccc@cccccccxxxxxxxx +ENDMAP + +# Before transforms: 42x$, 27x*, 27x|, 10x1, 8x2, 4x3, 4x4, 6x5, 4x6, 2x7 +NAME: minmay_elf_hall_not_hex +PLACE: Elf:$ +ORIENT: northwest +: elf_setup(_G) +: elf_monsters(_G) +SUBST: 1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77. +SHUFFLE: 12, 34, 67 +: elf_loot_defenders(_G) +SUBST: v = v .:2 +SUBST: v : xvb +: elf_loot_randomisation(_G) +MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxcccccccccccxxxxxxxxx +xxxxxxxccc$|+..4+|*cccxxxxxxx +xxxxxccc*|*|c2..c*$||cccxxxxx +xxxccc$*|$$cc6..cc|**|*cccxxx +xccc$*|**ccc..v.1ccc$*$*|cccx +xc*|*|*ccc.6.vvv.2.ccc|$*||cx +xc|*$ccc24.vvv.vvv...ccc|**cx +xc+ccc.5....5......1...ccc+cx +xc.2.....bbb.2...bbb5.....6cx +xc6...1.bbbbb...bbbbb..1.3.cx +xc..U...bbbbb.3.bbbbb...U..cx +xc1.....bbbbb...bbbbb..5..7cx +xc.7.1...bbb.....bbb..1..2.cx +xc+ccc..4.....1.....5..ccc+cx +xc$$$ccc..1.....2..1.ccc$$$cx +xc|$*$$ccc....4...5ccc|$$*$cx +xccc|*$|$ccc.2...ccc$*$||cccx +xxxccc|$$$|ccc.ccc$$|$*cccxxx +xxxxxccc$*$$c3.3c$$*$cccxxxxx +xxxxxxxccc$$c...c$$cccxxxxxxx +xxxxxxxxxcccc...ccccxxxxxxxxx +xxxxxxxxxxxxcc@ccxxxxxxxxxxxx +ENDMAP + +# Before transforms: 44x|, 4x1, 4x2, 4x3, 4x4, 12x5, 4x6, 4x7 +NAME: minmay_elf_hall_statues +TAGS: nolayout_halls +PLACE: Elf:$ +ORIENT: northwest +: elf_setup(_G) +: elf_monsters(_G) +SUBST: 1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77. +SHUFFLE: 12, 34 +: elf_loot_defenders(_G) +SUBST: v = v .:2 +SUBST: v : xvb G:1 +: elf_loot_randomisation(_G) +MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxcccccccccccccccxxxxxxxxx +xxxxxxxxxccnnn..........cccccxxxxx +xxxxxxxxxcnnGn.v.v.v3v......cccxxx +xxxxxxxxccnnnn................ccxx +xxxxxxxxcnnnncccc+cccc.....v...cxx +xxxxxxxxcnGncc.......ccc...vv3.ccx +xxxxxxxccnnnn..........ccc..vv..cx +xxxxccccnnnnn.7..v.......cc..v..cx +xxcccnnnnGnnn....vv.1.....cc....cx +xccnnnGnnnnnb+b...vv..v....c....cc +xcnnnnnnnnnbb.bb.4.vv.vv...cc5...c +xcnGnncnnnbb...bb...v..vv...c....c +xcnnncc...+..U.6b..1....vv..cc..5c +xc...c..7.bb....bn.......v...c.G.c +xc.v.c.....bb6...nnbbb.....G1c5..c +xc...c......bbb.G.bb6bbb..1..c...c +xc.v.+..vv....nn..|||||bb....+.G.c +xc.4.c..2vv....nb|||||||b...4c..5c +xc.v.c....vv...bb|||||||bb.G.c...c +xc...c.....vv..b6|||U|||7b...c.G.c +xc.v.cc......2.bb|||||||bb..cc...c +xc....c...vv..3.b|||||||b...c5...c +xc....cc...vv...bb|||||bb..cc....c +xcc....c....vv...bbb7bbb...c...5.c +xxc....cc....vv....bbb....cc.v...c +xxc..3..cc2.........2....cc..vv..c +xxcc.vv..ccc...G.4.G...ccc....vv.c +xxxc..vv...ccc.......ccc....5..v.c +xxxcc..vv....cccc+cccc.5.vv......c +xxxxcc.........5..........vv.....c +xxxxxccc......G..G..G.....5vv..... +xxxxxxxcccc..5.....5.............@ +xxxxxxxxxxccccccccccccccccccccc.@c +ENDMAP + +# Before transforms: 36x$, 28x|, 26x*, 4x1, 4x2, 8x3, 8x4, 4x5, 4x6, 4x7 +NAME: minmay_elf_hall_furrowed +TAGS: nolayout_halls +PLACE: Elf:$ +ORIENT: northwest +: elf_setup(_G) +: elf_monsters(_G) +SUBST: 1=11., 2=22., 3=33., 4=44., 5=543, 6=66., 7=77. +SHUFFLE: 12, 34, 67 +: elf_loot_defenders(_G) +SUBST: v = v .:2 +SUBST: v : xvb +: elf_loot_randomisation(_G) +MAP +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +xxxxxxxxxxxxxcccccccccxxxxxxxxxxxxx +xxxxxxxxxxcccc|*|*|*|ccccxxxxxxxxxx +xxxxxxxxxxc|*|*|*v*|*|*|cxxxxxxxxxx +xxxxccccccc*|v|*|*|*|v|*cccccccxxxx +xxxxc$|$+3cc*|*cc+cc*|*cc4+$$|cxxxx +xxxxc$v$c.7ccccc4.3ccccc6.c|v$cxxxx +xxxcc*$$c..c.6.c...c.7.c..c*$$ccxxx +xxxc$$|cc2.......5.......1cc$|*cxxx +xxxc$v$c....1v.......v2....c*v$cxxx +xxcc$*$c5.vvvvv..U..vvvvv.5c$$|ccxx +xxc|$|cc..3v2..3...4..1v4..cc$$$cxx +xxc$v*c4.....4..1.2..3.....3c*v$cxx +xcc*$$c..ccc7.ccccccc.6ccc..c$$|ccx +xc$$|cc....cccc3...4cccc....cc$$$cx +xccccc6.....................7cccccx +xxxxxccc1......v.5.v......2cccxxxxx +xxxxxxxcccc.............ccccxxxxxxx +xxxxxxxxxxcccc4.....3ccccxxxxxxxxxx +xxxxxxxxxxxxxcccc@ccccxxxxxxxxxxxxx +ENDMAP diff --git a/crawl-ref/source/dat/des/builder/shops.des b/crawl-ref/source/dat/des/builder/shops.des index 8cb81fe00cf..23fe0b4e9e7 100644 --- a/crawl-ref/source/dat/des/builder/shops.des +++ b/crawl-ref/source/dat/des/builder/shops.des @@ -7,6 +7,7 @@ # # <<1>> Generic # <<2>> Themed +# <<3>> Untagged # ############################################################################### @@ -662,3 +663,112 @@ MAP .mmmmmmm. ......... ENDMAP + +############################################################################### +# <<3>> Multi. +# Not tagged shop, and has no threats. Contain pssibly multiple shops in +# a somewhat generic theme- kept here for a certain ease of reference. +# + +# 3 shops +NAME: minmay_shop_grove +DEPTH: D:4-, Depths, Elf, Snake +ORIENT: float +MONS: plant / bush w:2 +KFEAT: B = gadget shop +KFEAT: C = jewellery shop +SUBST: 1 : 1. +SUBST: 1 = 1:9 .:1 +SUBST: x : xc v:2 b:2 +SHUFFLE: BC +# The empty arch is intentional! +MAP + xxxxxxx + xxtttttxx +xxtt1.1ttxx +xtt..B..ttx +xt.C...C.tx +xt1..T..1tx +xt11...11tx +xttttAttttx +xxxxx@xxxxx +ENDMAP + +# 1 (33%) or 4 (66%) shops +NAME: minmay_shop_grid_forest +DEPTH: D:4-, Depths, Elf, Snake +KFEAT: A = any shop +SHUFFLE: ABC +SUBST: t : t:11 x:1 c:1 b:1 v:1 +SUBST: B : .:12 C:6 x:1 c:1 b:1 v:1 G:1 T:1 +SUBST: C : T:12 x:1 c:1 b:1 v:1 G:1 t:1 +MAP +......... +.t.t.t.t. +..B.C.B.. +.t.t.t.t. +..C.A.C.. +.t.t.t.t. +..B.C.B.. +.t.t.t.t. +......... +ENDMAP + +# 1 (25%), 2 (25%), or 3 (50%) shops +NAME: minmay_shop_star +DEPTH: D:4-, Depths, Elf, Snake +ORIENT: float +KFEAT: A = any shop +SHUFFLE: AB +SUBST: b : x:20 cv b:5 .:5 m:5 G:5 t:5 +SUBST: A : A:90 .xcvbmGtT +SUBST: B = A +MAP + x@x + x.x + xx.xx + x...x +xxxxxxxb.bxxxxxxx +@.....b...b.....@ +xxx.....A.....xxx + xxx.b...b.xxx + xxx.B.xxx + xxx.b...b.xxx +xxx.....A.....xxx +@.....b...b.....@ +xxxxxxxb.bxxxxxxx + x...x + xx.xx + x.x + x@x +ENDMAP + +# 2 (50%) or 4 (50%) shops +NAME: minmay_shoptagon +DEPTH: D:4-, Depths, Elf, Snake +ORIENT: float +KFEAT: A = any shop +SUBST: a : . m:1 G:1 +SUBST: b : xcvbmGt +SUBST: d : .:60 cvbmGt +SHUFFLE: AB, CD +SUBST: C : .:80 xcvbmGtT +SUBST: D : .:80 xcvbmGtT +SUBST: B : A. +MAP + xxx@xxx + xxd...dxx + xxd..D..dxx + xxd.......dxx +xxd....B....dxx +xd...C...C...dx +x.....aaa.....x +@.D.A.aba.A.D.@ +x.....aaa.....x +xd...C...C...dx +xxd....B....dxx + xxd.......dxx + xxd..D..dxx + xxd...dxx + xxx@xxx +ENDMAP diff --git a/crawl-ref/source/dat/des/variable/float.des b/crawl-ref/source/dat/des/variable/float.des index 9768813fc3c..8716ac5f6b1 100644 --- a/crawl-ref/source/dat/des/variable/float.des +++ b/crawl-ref/source/dat/des/variable/float.des @@ -31,6 +31,27 @@ function zot_entry_setup(e) spriggan air mage w:8 / deep troll earth mage w:8 / \ tengu reaver / deep elf high priest w:12 / lich w:2") end + +function minmay_elemental_octagon_setup(e) + e.tags('uniq_elemental_octagon no_pool_fixup') + e.subst('A : xcvb m:5 .:5') + e.subst('B : .:50 c:20 vbm') + e.subst('C : .xcvbmGTdE') + e.subst('D : .xcvbmGTd1') + e.subst('E : .:60 cvbmGT') + if you.in_branch('Geh') or you.in_branch('Coc') then + e.nsubst('1 = 8:1 / * = 1..') + e.nsubst('d = 1:4 / 1:} / *:3') + if you.in_branch('Geh') then + e.subst('bmT = l') + elseif you.in_branch("Coc") then + e.subst('bmG = w') + end + else + e.nsubst('1 = 4:1 / 4 = 1.. / *:.') + e.nsubst('d = 1:2 / *:d') + end +end }} {{ @@ -3181,6 +3202,148 @@ xxvv.5.bb+c+vv.2.bbxx xx....@.xx ENDMAP +################################################################################ +# An octagon series +# +# ident:type randarts here are a bit weird, showing the name and the brand +# only- off aesthetically, but aside from strange user autopickup functions +# should be fine otherwise. +# +NAME: minmay_shoctagon +DEPTH: D:12-, Depths:1-2, Elf +ORIENT: float +MONS: raiju / sixfirhy w:2 +KMONS: 2 = shock serpent / storm dragon +ITEM: book of air / book of the sky / manual of air magic / \ + lightning rod ident:type / staff of air ident:type / \ + disc of storms / fan of gales / storm dragon armour w:5 +: if you.unrands("arc blade") then +KITEM: 2 = quick blade ego:electrocution randart ident:type +: else +KITEM: 2 = arc_blade +: end +: minmay_elemental_octagon_setup(_G) +MAP + xxx@xxx + xxB...Bxx + xxB..E..Bxx + xxB.......Bxx +xxB...AAA...Bxx +xB...11111...Bx +x...A1DdD1A...x +@.E.A1dCd1A.E.@ +x...A1DdD1A...x +xB...11111...Bx +xxB...AAA...Bxx + xxB.......Bxx + xxB..E..Bxx + xxB...Bxx + xxx@xxx +ENDMAP + +NAME: minmay_roctagon +DEPTH: D:12-, Depths:1-2, Elf +ORIENT: float +MONS: hill giant / troll +KMONS: 2 = stone giant / iron dragon +ITEM: book of geomancy / book of the earth / manual of earth magic / \ + iron rod ident:type / staff of earth ident:type / \ + ring of protection ident:type / wand of disintegration ident:type / \ + crystal plate armour w:5 +: if you.unrands("devastator") then +KITEM: 2 = eveningstar randart +: else +KITEM: 2 = devastator +: end +: minmay_elemental_octagon_setup(_G) +MAP + xxx@xxx + xxB...Bxx + xxB..E..Bxx + xxB.......Bxx +xxB.A.A.A.A.Bxx +xB...11111...Bx +x...A1DdD1A...x +@.E..1dCd1..E.@ +x...A1DdD1A...x +xB...11111...Bx +xxB.A.A.A.A.Bxx + xxB.......Bxx + xxB..E..Bxx + xxB...Bxx + xxx@xxx +ENDMAP + +NAME: minmay_coctagon +DEPTH: D:10-, Elf, Coc, !Coc:$ +ORIENT: float +MONS: polar bear w:6 / rime drake / ice beast +KMONS: 23 = frost giant / ice dragon +KMONS: 4 = ice fiend +ITEM: book of frost / book of ice / manual of ice magic / \ + wand of iceblast ident:type / staff of cold ident:type / \ + ring of ice ident:type / phial of floods / ice dragon armour w:5 +: if you.unrands("frostbite") then +KITEM: 2 = executioner's axe ego:freezing randart ident:type / \ + battleaxe ego:freezing randart ident:type / \ + broad axe ego:freezing randart ident:type +: else +KITEM: 2 = frostbite / \ + battleaxe ego:freezing randart ident:type / \ + broad axe ego:freezing randart ident:type +: end +: minmay_elemental_octagon_setup(_G) +MAP + xxx@xxx + xxB...Bxx + xxB..E..Bxx + xxB.......Bxx +xxB..AA.AA..Bxx +xB..A11111A..Bx +x...A1DdD1A...x +@.E..1dCd1..E.@ +x...A1DdD1A...x +xB..A11111A..Bx +xxB..AA.AA..Bxx + xxB.......Bxx + xxB..E..Bxx + xxB...Bxx + xxx@xxx +ENDMAP + +NAME: minmay_firetagon +DEPTH: D:10-, Elf, Geh, !Geh:$ +ORIENT: float +MONS: fire bat +KMONS: 23 = fire giant / fire dragon +KMONS: 4 = brimstone fiend +ITEM: book of flames / book of fire / manual of fire magic / \ + rod of ignition ident:type / staff of fire ident:type / \ + ring of fire ident:type / lamp of fire / fire dragon armour w:5 +: if you.unrands("firestarter") then +KITEM: 2 = great mace ego:flaming randart ident:type +: else +KITEM: 2 = firestarter +: end +: minmay_elemental_octagon_setup(_G) +MAP + xxx@xxx + xxB...Bxx + xxB..E..Bxx + xxB.......Bxx +xxB.AA...AA.Bxx +xB..A11111A..Bx +x....1DdD1....x +@.E..1dCd1..E.@ +x....1DdD1....x +xB..A11111A..Bx +xxB.AA...AA.Bxx + xxB.......Bxx + xxB..E..Bxx + xxB...Bxx + xxx@xxx +ENDMAP + ############################################################################### # # <<3>> Abstract or generic threat vaults. @@ -6948,3 +7111,370 @@ cccccc.................cccccc c*|*c ccccc ENDMAP + +NAME: minmay_heptahexagon +DEPTH: D:12-, Depths +ORIENT: float +ITEM: book of debilitation / book of maledictions +# randomize how open the hexagons are to each other +SUBST: M : xx+., N : +@, O : +++. +# each hex other than the center either has monsters+loot, or nothing +SHUFFLE: ABCDEF / GHIJKL +SUBST: BCDEF = A, HIJKL = G +SUBST: A = *, G = 0009, 8 = 998 +# feature randomization +SUBST: x : xcvb +SUBST: ! : xcvb m:3 G:3 t:3 .:49 +SUBST: ? : xcvb m:1 t:1 .:44 +SUBST: " : xcvbTmGt .:80 +SUBST: ' : xcvbTmGt d:80 +MAP + xxxNxxx + xxF...Fxx + x..L?L..x + xx.?...?.xx + xxxxxxxF.L.".L.Fxxxxxxx + xxE...Exx.?...?.xxA...Axx + N..K?K..M..L?L..M..G?G..N +xx.?...?.xxF...Fxx.?...?.xx +xE.K.".K.ExxxOxxxA.G.".G.Ax +xx.?...?.xx|...|xx.?...?.xx + x..K?K..O..8!8..O..G?G..x + xxE...Exx.!...!.xxA...Axx + xxxMxxx|.8.'.8.|xxxMxxx + xxD...Dxx.!...!.xxB...Bxx + x..J?J..O..8!8..O..H?H..x +xx.?...?.xx|...|xx.?...?.xx +xD.J.".J.DxxxOxxxB.H.".H.Bx +xx.?...?.xxC...Cxx.?...?.xx + N..J?J..M..I?I..M..H?H..N + xxD...Dxx.?...?.xxB...Bxx + xxxxxxxC.I.".I.Cxxxxxxx + xx.?...?.xx + x..I?I..x + xxC...Cxx + xxxNxxx +ENDMAP + +NAME: minmay_box_of_curves +ORIENT: float +DEPTH: D:11-, Depths +SUBST: x : cvb, ? : .TGtxcvbm +SUBST: ' : '", ' : .:50 xcvbm, " : .:50 xcvbm +SUBST: 9 = 999., 8 = 888. +MAP +xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx +x|8..........x...x..........8|x +xxxx..."""...x...x...'''...xxxx +x8.xxx...""..x...x..''...xxx.8x +x....xx..9".xx...xx.'9..xx....x +x....|x.....x.."..x.....x|....x +x..xxxx....xx.."..xx....xxxx..x +x+xx..+..xxx...""..xxx..+..xx+x +x.x...xxxx......""...xxxx...x.x +x.x..9..+..'''.?."""..+..9..x.x +x.x.....x....''.......x.....x.x +x.xx...xx+xx..''...xx+xx...xx.x +x..xxxxx...xx..'..xx...xxxxx..x +x.....x.....x..'..x.....x.....x +x..9..+..9..x..?..x..9..+..9..x +x.....x.....x.."..x.....x.....x +x..xxxxx...xx.."..xx...xxxxx..x +x.xx...xx+xx...""..xx+xx...xx.x +x.x.....x.......""....x.....x.x +x.x..9..+..'''.?."""..+..9..x.x +x.x...xxxx...''......xxxx...x.x +x+xx..+..xxx..''...xxx..+..xx+x +x..xxxx....xx..'..xx....xxxx..x +x....|x.....x..'..x.....x|....x +x....xx..9'.xx...xx."9..xx....x +x8.xxx...''..x...x..""...xxx.8x +xxxx...'''...x...x..."""...xxxx +x|8..........x...x..........8|x +xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxx +ENDMAP + +NAME: minmay_ambush_box +DEPTH: D:11-, Depths, Elf +ORIENT: float +SUBST: c : cvb +SUBST: ' : .xcvb n:2 t:2 G:3 T:3 +MAP +cccccc@cccccc +c|.9c...c9.|c +c.'.c...c.'.c +c...........c +c..cnc.cnc..c +c9..c...c..9c +ccc.n{([n.ccc +c9..c...c..9c +c..cnc.cnc..c +c...........c +c.'.c...c.'.c +c|.9c...c9.|c +cccccc@cccccc +ENDMAP + +NAME: minmay_gate_of_8 +DEPTH: D:8-, Depths +ORIENT: float +KMONS: 8 = 8 +KITEM: 8 = | +SUBST: c : cvb, x : xcvb +MAP + xxxxxx@xx + x...x...x + x.xx..x.x + x.xxx...x + xx.xxx.xx +ccnn=xxx.x +c888n.xx.x +c888nx...x +cc88cxxxxx + cccc +ENDMAP + +NAME: minmay_shrinking_squares +DEPTH: D:9-, Depths +ORIENT: float +NSUBST: 9 = 1:9 / 1:. / * = 9. +NSUBST: 8 = 1:8 / 1:. / * = 8. +SUBST: x : cvb +MAP +xxxxxxxxxx +xT+||x...+ +xxx||x...x +x..88x...x +x..88x...x +x+xxxx...x +x.....999x +x.....999x +x.....999x +xxxxxxxxxx +ENDMAP + +NAME: minmay_chopped_fan +DEPTH: D:9-, Depths +ORIENT: float +SUBST: x : cvb +MAP + xxx + x8x + x.xxx + x.x0x + @xx xx.x.x@ + xxx.x x.x.x.x + x0.xxxx x.x.xxx +xxxxx..9x x.x9x +x8...xxxxxx.xxx +xxxxx....|x|x + xxxxxxnxxxxxx + x|x|....xxxxx + xxx.xxxxxx...8x + x9x.x x9..xxxxx + xxx.x.x xxxx.0x + x.x.x.x x.xxx + @x.x.xx xx@ + x0x.x + xxx.x + x8x + xxx +ENDMAP + +NAME: minmay_mutant_horseshoe +DEPTH: D:11-, Depths +ORIENT: float +SUBST: x : cvb +MAP + xxxxxxxxx +xx...x...xx +x9xxx.xxx9x +x.x|x.x|x.x +x.x.x.x.x.x +x.xx8x8xx.x +xx.xxxxx.xx + @xx xx@ +ENDMAP + +NAME: minmay_diamond_boxcup +DEPTH: D:2-6 +ORIENT: float +NSUBST: 0 = 4:0 / 8 = 0. / *:. +SUBST: x : x:60 cvb +MAP +xxxxxxxxxxxxx +x0x0x...x0x0x +xx0x..x..x0xx +x0x..xxx..x0x +xx..xx0xx..xx +x..xx0.0xx..x +x.....*.0xx.@ +x..xx0.0xx..x +xx..xx0xx..xx +x0x..xxx..x0x +xx0x..x..x0xx +x0x0x...x0x0x +xxxxxxxxxxxxx +ENDMAP + +NAME: minmay_glassy_protrusions +DEPTH: D:11-, Depths +ORIENT: float +SUBST: x : cvb +MAP +xxx@xxxxx@xxx +x..xx*x*xx..x +x.xn.x8x.nx.x +xn..xn8nx..nx +x*nx.x8x.xn*x +xx9xx*x*xx9xx + xxxxx*xxxxx + xxx +ENDMAP + +NAME: minmay_blocky_corners +DEPTH: D:7- +ORIENT: float +SUBST: x : cvb, 9 = 99. +MAP +xxxxx@xxxxx +x9|x...x|9x +x..x...x..x +x9xx...xx9x +xx9.xxx.9xx + x.9x x9.x + xxxx xxxx +ENDMAP + +NAME: minmay_wonky_spiral +DEPTH: D:1-4 +ORIENT: float +SUBST: 0 = 0. +MAP +x@xxxxxxx +x.x%%x.0x +x.x%...xx +x.xx...0x +x.0x0x.xx +x.xxxx..x +x.0x0xx+x +x.......x +xxxxxxxxx +ENDMAP + +NAME: minmay_cornered_nines +DEPTH: D:6-13 +ORIENT: float +SUBST: x : x:90 cvb +MAP +xx@....xx +xxxxx.xxx +x*xxx.x*x +x9xx.x9xx +xx..xxxxx +x.x.xxx*x +x.x..xx.x +xx.xx.9xx +xxxxxxxxx +ENDMAP + +NAME: minmay_sliced_demisemicircle +DEPTH: D:9-, Depths +ORIENT: float +SUBST: x : ccvvb +NSUBST: 8 = 2:8 / 4 = 8. / *:. +NSUBST: 9 = 2:9 / 8 = 9. / *:. +MAP +xxxxxx +x.9..xxxx ++999...9xxx +x.9....999xx +xxxxxxxx+xxxx +x.8.xxx999x9x +x888..xx99+9xx +x.8....xx9x99x +xx+xxxx.xxx..x +xb8bbbx..xx..xx +xb8b|bx..xx...x +xb8b|bx.8.x.9.x +xb8||bx888+999x +xbbbbbx.8.x.9.x +xxxxxxxxxxxxxxx +ENDMAP + +NAME: minmay_roachtagon +DEPTH: D:2-3 +ORIENT: float +MONS: giant cockroach +NSUBST: 1 = 5:1 / 10 = 1. / 2:% / 2 = %. / *:. +SUBST: " = @x +MAP + xxxx"x + xx1111xx +xx111111xx +x11111111x +x11111111x +x11111111x +x11111111x +xx111111xx + xx1111xx + x@xxxx +ENDMAP + +# The center is always reachable in these two vaults +# regardless of transformation arrangements. +NAME: minmay_bloctagon +DEPTH: D:8-, Depths +ORIENT: float +SUBST: x : x:60 c:15 v b:5 +SHUFFLE: ABCE, 0% +SUBST: 0 = 0009, % = %%%* +SUBST: A : . +SUBST: B : .:50 C:52 xcvbm t:2 +SUBST: C : .:50 E:52 xcvbm t:2 +SUBST: E : .:102 xcvbm t:2 +SUBST: D : .:102 xcvbm t:2 +SUBST: F : .xcvbm G:2 t:2 T:2 +MAP + xxxxxxxxxx + xxxxxxxxxx + xxxx00DD%%xxxx + xxxx00DD%%xxxx +xxxx..CCAABB..xxxx +xxxx..CCAABB..xxxx +xx..BBEE%%EECC..xx +xx..BBEE%%EECC..xx +..DDAA00FF00AADD.@ +@.DDAA00FF00AADD.. +xx..CCEE%%EEBB..xx +xx..CCEE%%EEBB..xx +xxxx..BBAACC..xxxx +xxxx..BBAACC..xxxx + xxxx%%DD00xxxx + xxxx%%DD00xxxx + xxxxxxxxxx + xxxxxxxxxx +ENDMAP + +NAME: minmay_bloctagon_deflated +DEPTH: D:8-, Depths +ORIENT: float +SUBST: x : x:60 c:15 v b:5 +SHUFFLE: ABCE, 9* +SUBST: A : . +SUBST: B : .:50 C:52 xcvbm t:2 +SUBST: C : .:50 E:52 xcvbm t:2 +SUBST: E : .:102 xcvbm t:2 +SUBST: D : .:102 xcvbm t:2 +SUBST: F : .xcvbm G:2 t:2 T:2 +MAP + xxxxx + xx9D*xx +xx.CAB.xx +x.BE*EC.x +@DA9F9AD@ +x.CE*EB.x +xx.BAC.xx + xx*D9xx + xxxxx +ENDMAP diff --git a/crawl-ref/source/dat/des/variable/large_abstract.des b/crawl-ref/source/dat/des/variable/large_abstract.des index 7d319291658..405e4a72de3 100644 --- a/crawl-ref/source/dat/des/variable/large_abstract.des +++ b/crawl-ref/source/dat/des/variable/large_abstract.des @@ -1615,29 +1615,114 @@ ORIENT: northwest DEPTH: D:14-, Depths, !Depths:$ : ks_random_setup(_G, true) MAP -ccccccccccccccccccccccccc -cwwwwwwwwwwwwwwwwwwwwwwwc -cwt9.................*twc -cw*xxxxxxxxxxxxxxxxxxx9wc -cw.xcccccccccccccccccx.wc -cw.xcwwwwwwwwwwwwwwwcx.wc -cw.xcwt9.........*twcx.wc -cw.xcw*xxxxxxxxxxx9wcx.wc -cw.xcw.xcccccccccx.wcx.wc -cw.xcw.xcwwwwwwwcx.wcx.wc -cw.xcw.xcwt888twcx.wcx.wc -cw.xcw.xcw.xxx|wcx.wcx.wc -cw.xcw.xcw.xcx|wcx.wcx.wc -cw.xcw.xcw.xcx|wcx.wcx.wc -cw.xcw.xcw.xcx|wcx.wcx.wc -cw.xcw.xcw.xcxwwcx.wcx.wc -cw.xcw.xcw.xcccccx.wcx.wc -cw.xcw.xcw9xxxxxxx*wcx.wc -cw.xcw.xcwt*.....9twcx.wc -cw.xcw.xcwwwwwwwwwwwcx.wc -cw.xcw.xcccccccccccccx.wc -cw.xcw*xxxxxxxxxxxxxxx*wc -cw.xcwt9.............9twc -cw.xcwwwwwwwwwwwwwwwwwwwc -cw@xccccccccccccccccccccc +xxxxxxxxxxxxxxxxxxxxxxxxxx +xccccccccccccccccccccccccc +xcwwwwwwwwwwwwwwwwwwwwwwwc +xcwt9.................*twc +xcw*xxxxxxxxxxxxxxxxxxx9wc +xcw.xcccccccccccccccccx.wc +xcw.xcwwwwwwwwwwwwwwwcx.wc +xcw.xcwt9.........*twcx.wc +xcw.xcw*xxxxxxxxxxx9wcx.wc +xcw.xcw.xcccccccccx.wcx.wc +xcw.xcw.xcwwwwwwwcx.wcx.wc +xcw.xcw.xcwt888twcx.wcx.wc +xcw.xcw.xcw.xxx|wcx.wcx.wc +xcw.xcw.xcw.xcx|wcx.wcx.wc +xcw.xcw.xcw.xcx|wcx.wcx.wc +xcw.xcw.xcw.xcx|wcx.wcx.wc +xcw.xcw.xcw.xcxwwcx.wcx.wc +xcw.xcw.xcw.xcccccx.wcx.wc +xcw.xcw.xcw9xxxxxxx*wcx.wc +xcw.xcw.xcwt*.....9twcx.wc +xcw.xcw.xcwwwwwwwwwwwcx.wc +xcw.xcw.xcccccccccccccx.wc +xcw.xcw*xxxxxxxxxxxxxxx*wc +xcw.xcwt9.............9twc +xcw.xcwwwwwwwwwwwwwwwwwwwc +xcw@xccccccccccccccccccccc +ENDMAP + +NAME: minmay_tile_spiral +DEPTH: D:11-, Depths +ORIENT: southwest +SUBST: x : cvb, z : cvb, y : cvbnTUVtG8|, X = x +: if you.absdepth() < 16 then +NSUBST: 8 = 2:8 / 8 = 8. / *:. +NSUBST: 9 = 2:9 / 4 = 9. / *:. +NSUBST: 0 = 3:9 / 6 = 9. / *:. +: else +NSUBST: 8 = 4:8 / 10 = 8. / *:. +NSUBST: 9 = 4:9 / 8 = 9. / *:. +NSUBST: 0 = 4:9 / 6 = 9. / *:. +: end +MAP +Xxxxxxxxxzxxxxxxxzxxxxxxxz +Xxxxxxxx..x..9..x..0...0.. +Xxxxxx....0..x..0..xx9xx.. +Xxxxx.....0.xxx.0..xx*xx.. +Xxxx...xxnxxxxxxxnxxxxxxx@ +Xxx...xx..0.xxx.0..xx*xx.. +Xxx..xx...0..x..0..xx9xx.. +Xx...x....x..9..x..0...0.. +Xz...n...zxxxxxxxzxxxxxxxz +Xx..xxx..xxxx88.9..xxxxxxx +Xxx00x00xxx|888.9....xxxxx +Xx...x...xx|888.x.....xxxx +Xx99xxx99x||8y8xxnxx...xxx +Xx...x...xx|888.x..xx...xx +Xxx00x00xxx|888.9...xx..xx +Xx..xxx..xxxx88.9....x...x +Xz...n...zxxxxxxxz...n...z +Xx...x....0988890....x...x +Xxx..xx...xx8y8xx...xx..xx +Xxx...xx...x***x...xx...xx +Xxxx...xxnxxxxxxxnxx...xxx +Xxxxx......x***x......xxxx +Xxxxxx....xx8y8xx....xxxxx +Xxxxxxxx..0988890..xxxxxxx +Xxxxxxxxxzxxxxxxxzxxxxxxxx +XXXXXXXXXXXXXXXXXXXXXXXXXX +ENDMAP + +NAME: minmay_tearing_corner +DEPTH: D:11-, Depths +ORIENT: northeast +SUBST: x : ccvvb, X = x +: if you.absdepth() < 16 then +NSUBST: 8 = 4:8 / 8 = 8. / *:. +NSUBST: 9 = 6:9 / 12 = 9. / *:. +: else +NSUBST: 8 = 4:8 / 10 = 8. / *:. +NSUBST: 9 = 6:9 / 18 = 9. / *:. +: end +MAP + XXXXXXXXX + xxxxxxxxx + x9x....9x + x9x..xx.x + xx.x...9x + x.xx..xx + x.x8..8x + x.xx..xx + xx.x8||8x + xx..xxxxxxx +xxxxxxxxx.x9..99x.xx +x9.9x8x8xx9x...x9x.xxxxxx +x.x....|x9x.x.x.x9......xxxX +x.x....|x9.x.x.x..xxxxxx..xX +x...x8x8x...x.x...x8x8x...xX +x9.xxxxxx..x.x.x.9x|....x.xX +xxx......9x.x.x.x9x|....x.xX +x9.xxxxx.x9x...x9xx8x8x9.9xX +xxx.....x.x99..9x.xxxxxxxxxX +x9.xxx.x.xxxxxx..xx +xxx...x.xx8||8x.xx +x9.x.x.x.xx..xx.x +xxx.x.x..x8..8x.x +x..x.x.x.xx..xx.x +x.x.x..x.x9...x.xx +xx.xx..x.x.xx..x9x +@.x.x99x9x9....x9x +xxxxxxxxxxxxxxxxxx ENDMAP diff --git a/crawl-ref/source/dat/des/variable/mini_monsters.des b/crawl-ref/source/dat/des/variable/mini_monsters.des index b1033e4f6ce..6d3fd1b673d 100644 --- a/crawl-ref/source/dat/des/variable/mini_monsters.des +++ b/crawl-ref/source/dat/des/variable/mini_monsters.des @@ -2055,11 +2055,11 @@ wccw.wccw wwww@wwww ENDMAP -NAME: lightli_wizard_tower -TAGS: no_monster_gen +NAME: lightli_wizard_tower +TAGS: no_monster_gen patrolling DEPTH: D:9- -MONS: patrolling wizard, patrolling crimson imp -ITEM: any book, any scroll +MONS: patrolling wizard, patrolling crimson imp +ITEM: any book, any scroll MAP bbbb bbdebb @@ -2073,6 +2073,23 @@ bb......bb b++b ENDMAP +NAME: minmay_a_box_with_orc_wizards_in_it +DEPTH: D:4-7 +MONS: orc wizard, orc priest +ITEM: any book +SUBST: 1 : 1:49 2:1, 1 = 1., 2 = 2. +MAP + ..... + ..xxx.. +...m1x... +.mmm1xxm. +.m11d11m. +.mxx1mmm. +...+1m... + ..xxx.. + ..... +ENDMAP + ################################################################################ # # <<4>> Demons and undead @@ -5633,6 +5650,238 @@ xccccccccccx xxxxxxxxxxxx ENDMAP +NAME: minmay_checkerbox +DEPTH: D:3- +SHUFFLE: "' +SUBST: " = ., ' = x +SHUFFLE: xxxm +SUBST: x : x:40 cvbm +: if you.absdepth() < 9 then +SUBST: 9 = 0 +: end +MAP + ....... +."mx0xm". +.m'...'m. +.x.xmx.x. +.m.9|9.m. +.x.xmx.x. +.m'...'m. +."mx0xm". + ....... +ENDMAP + +NAME: minmay_bent +DEPTH: D:4- +SUBST: " : "' +SUBST: " : .:100 xcvbnmGTt0 +SUBST: ' : .:100 xcvbnmGt0% +SUBST: 0 = 00. +: if you.absdepth() < 9 then +SUBST: 9 = 0 +: end +MAP + ..... + ..xxx0 + ...xx...0. + ."0x*.'.x. + ..0*x.'..x. +..xxxx9..xx. +.xx..9xxxx.. +.x..'.x*0.. +.x.'.*x0". +.0...xx... + 0xxx.. + ..... +ENDMAP + +NAME: minmay_ruined_shrine +DEPTH: D:4- +SUBST: c = ccc. +SUBST: c : c b:2 v:2 +NSUBST: 0 = 2:0 / 6 = 0.. / *:. +SHUFFLE: '" +SUBST: " : 0:75 ':75 xcvbnTG t:5 +SUBST: ' : 0:75 xcvbnTG t:5 +: if you.absdepth() < 9 then +SUBST: 9 = 0 +: end +MAP + ....... + ..ccccc.. + ..ccccccc.. + ..ccc9C9ccc.. +..ccc00"00ccc.. +.ccc00'0'00ccc. +.cc*0000000*cc. +.cccccc0cccccc. +.cccccc0cccccc. +......000...... +ENDMAP + +NAME: minmay_checkered_concentric_circles +DEPTH: D:12-, Depths, Elf +SHUFFLE: vc / vc / vc / vc / vb / vn / cb / cn +NSUBST: 8 = 1:8 / 1:. / * = 8. +NSUBST: 9 = 1:9 / 1:. / * = 9. +MAP + ..... + ...vcv... + ..cvc8cvc.. + ..cv.9.9.vc.. + .cv9.....9vc. +..v...vcv...v.. +.vc8.vc|cv.9cv. +.c8..+|||c...+. +.vc8.vc|cv.9cv. +..v...vcv...v.. + .cv9.....9vc. + ..cv.9.9.vc.. + ..cvc8cvc.. + ...vcv... + ..... +ENDMAP + +NAME: minmay_tall_x +DEPTH: D:1-2 +MAP +....... +.xx.xx. +..x0x.. + .%x%. + 0xbx0 + .%x%. +..x0x.. +.xx.xx. +....... +ENDMAP + +NAME: minmay_split_cup_small +DEPTH: D:1-2 +MAP +....... +.xxxxx. +.x0x%x. +.x0.%.. +.x0x%x. +.xxxxx. +....... +ENDMAP + +NAME: minmay_split_cup_large +DEPTH: D:1-2 +SUBST: b : xcvbmGT%0 .:50 +MAP +......... +.xxxxxxx. +.x0...0x. +.xx0b0xx. +.x%%.%%x. +.xxx.xxx. +......... +ENDMAP + +NAME: minmay_tripent +DEPTH: D:1-2 +MAP + .. ... +..x.xx. +.xxx0x. + .x%x. +.x0xxx. +.xx.x.. +... .. +ENDMAP + +NAME: minmay_tiny_reverse_x +DEPTH: D:1-2 +MAP +.. . .. +.x.x.x. + .x%x. +.x0.0x. + .x%x. +.x.x.x. +.. . .. +ENDMAP + +NAME: minmay_small_reverse_x +DEPTH: D:1-2 +MAP +........ +.x.xx.x. +..x0%x.. +.x%bb0x. +.x0bb%x. +..x%0x.. +.x.xx.x. +........ +ENDMAP + +NAME: minmay_guardbox +DEPTH: D:2-3 +WEIGHT: 1 +MAP +0000 +0%%0 +0%%0 +0000 +ENDMAP + +NAME: minmay_randomly_rotated_circles +DEPTH: D:2-3 +SHUFFLE: ABCDEFGH +SHUFFLE: IJKLMNOP +SUBST: AI : ., BCDEFGHJKLMNOP : x +SUBST: b : bxcvm 0:5 .:5 %:5 +MAP + ........ + ...BBBCCC... + ..BBB....CCC.. + .AA........CD. +..A..JJJKKK..D.. +.AA.II...0KL.DD. +.A..I0.%%.0L..D. +.A..I.%bb%.L..D. +.H..P.%bb%.M..E. +.H..P0.%%..M..E. +.HH.PO0..0MM.EE. +..H..OOONNN..E.. + .HG........EE. + ..GGG....FFF.. + ...GGGFFF... + ........ +ENDMAP + +NAME: minmay_swirly_circle +DEPTH: Depths +SUBST: x : ccvvb +MAP + ........ + ....xxxxxx.... + ..xxxx....9xxx.. + ..xxxx.xxxxxxxxx.. + ..xx|xx.xx|xxx.8xx.. + .xx8xxx.xxx8x.xx|xx. + .xx.xxx.xxx.x.xxxxx. +..xxx...x...xx.xxxxx.. +.x9xxxxxxxxx.xx....xx. +.x.xx8.x.9xx9x.xxxx.x. +.x.x|xx.xx**xx.xxxx.x. +.x.xxxx.xx**xx.xx|x.x. +.x.xxxx.x9xx9.x.8xx.x. +.xx....xx.xxxxxxxxx9x. +..xxxxx.xx...x...xxx.. + .xxxxx.x.xxx.xxx.xx. + .xx|xx.x8xxx.xxx8xx. + ..xx8.xxx|xx.xx|xx.. + ..xxxxxxxxx.xxxx.. + ..xxx9....xxxx.. + ....xxxxxx.... + ........ +ENDMAP + + ################################################################ # # <<8>> Minivaults with monsters guarding a thematic item. diff --git a/crawl-ref/source/dat/des/variable/polyominoes.des b/crawl-ref/source/dat/des/variable/polyominoes.des new file mode 100644 index 00000000000..748b1033dbe --- /dev/null +++ b/crawl-ref/source/dat/des/variable/polyominoes.des @@ -0,0 +1,795 @@ +################################################################################ +# polyominoes (minmay) +# +# A large set of simple, abstract, very early vaults, based off of re-arranging +# sets of select polyominoes. +# (Since vaults can be mirrored, there is no point in including both versions +# of the chiral polyominoes.) + +{{ +function polyominoes_setup(e) + e.tags('uniq_minmay_polyomino') + e.weight('4') + e.subst('b : xcvbmGT%0 .:50') + e.subst('" : xcvbmGT%0 .:120') + e.subst('x : x:240 c:30 v:30 b m') + e.subst('0 = 000.') + e.subst('% = %%%.') +end +}} + +default-depth: D:1-2 +################################################################################ +# dominoes +NAME: minmay_domino_2 +: polyominoes_setup(_G) +MAP +... +.x0.. +.x%x. +..0x. + ... +ENDMAP + +NAME: minmay_domino_4 +: polyominoes_setup(_G) +MAP +...... +.xx0x. +.0%%x. +.x%%0. +.x0xx. +...... +ENDMAP + +################################################################################ +# trominoes +NAME: minmay_tromino_i2 +: polyominoes_setup(_G) +MAP +..... +.xxx. +.0%.. +..%0. +.xxx. +..... +ENDMAP + +NAME: minmay_tromino_i4 +: polyominoes_setup(_G) +MAP + ... +.....x. +.xxx0x. +..0%%x. + .x%%0.. + .x0xxx. + .x..... + ... +ENDMAP + +NAME: minmay_tromino_v2 +: polyominoes_setup(_G) +MAP +..... +.xx.. +.x%0.. +..0%x. + .xx. + .... +ENDMAP + +NAME: minmay_tromino_v4_a +: polyominoes_setup(_G) +MAP + ... + ...x.. +..x0xx. +.xx%%0.. +..0%%xx. + .xx0x.. + ..x... + ... +ENDMAP + +NAME: minmay_tromino_v4_b +: polyominoes_setup(_G) +MAP +.. . . .. +......... + .xx.xx. +..x%.0x.. + ...b... +..x0.%x.. + .xx.xx. +......... +.. . . .. +ENDMAP + +NAME: minmay_tromino_v4_c +: polyominoes_setup(_G) +MAP + ... + ..x. + .xx... +....%.x.. +.xx0b0xx. +..x.%.... + ...xx. + .x.. + ... +ENDMAP + +NAME: minmay_tromino_v7 +: polyominoes_setup(_G) +MAP +.... +.xx...... +..x.x0xx. +.x0xx%x.. +.xx%%x0x.. +...0xx.xx. + .x...... + .xx. + .... +ENDMAP + +NAME: minmay_tromino_mix6 +: polyominoes_setup(_G) +MAP +... +.x... +.x.x...... +.x.xx0xxx. +.0.%%%%.0. +.xxx0xx.x. +......x.x. + ...x. + ... +ENDMAP + +################################################################################ +# tetrominoes +NAME: minmay_tetromino_i2 +: polyominoes_setup(_G) +MAP + ... + .x. + .x. +.0%x. +.x%x. +.x%0. +.x. +.x. +... +ENDMAP + +NAME: minmay_tetromino_i4 +: polyominoes_setup(_G) +MAP + ... +......x. +.xxxx0x. +..0.%.x. + .x%b%x. + .x.%.0.. + .x0xxxx. + .x...... + ... +ENDMAP + +NAME: minmay_tetromino_l2 +: polyominoes_setup(_G) +MAP +..... +.xxx. +.0%x. +.x%0. +.xxx. +..... +ENDMAP + +NAME: minmay_tetromino_l4 +: polyominoes_setup(_G) +MAP + ..... + .xxx... +..x%0xx. +.x0bb%x. +.x%bb0x. +.xx0%x.. +...xxx. + ..... +ENDMAP + +NAME: minmay_tetromino_o2 +: polyominoes_setup(_G) +MAP +.... +.xx0 +.xx%.. +..%xx. + 0xx. + .... +ENDMAP + +NAME: minmay_tetromino_o4 +: polyominoes_setup(_G) +MAP + .... + .xx.... + .xx0xx. +..0%%xx. +.xx%%0.. +.xx0xx. +....xx. + .... +ENDMAP + +NAME: minmay_tetromino_t2 +: polyominoes_setup(_G) +MAP +..... +.xxx%. +.0x%x0. + .%xxx. + ..... +ENDMAP + +NAME: minmay_tetromino_t4 +: polyominoes_setup(_G) +MAP + ..... + .xxx... +...x0.x. +.x0%%xx. +.xx%%0x. +.x.0x... +...xxx. + ..... +ENDMAP + +NAME: minmay_tetromino_s2 +: polyominoes_setup(_G) +MAP + .... + .xx0. +..%xx. +.xx%.. +.0xx. + ... +ENDMAP + +NAME: minmay_tetromino_s4 +: polyominoes_setup(_G) +MAP + ... + .x...... + .xx..xx. + ..0x%xx.. +..xx%x0.. +.xx..xx. +......x. + ... +ENDMAP + +################################################################################ +# pentominoes +NAME: minmay_pentomino_r2 +: polyominoes_setup(_G) +MAP +.... +.xx.. +..xx. + .x%0. + .0%x. + .xx.. + ..xx. + .... +ENDMAP + +NAME: minmay_pentomino_r4 +: polyominoes_setup(_G) +MAP + .... + .xx. .. + .xx%.x. + %x0xxx. +..x0b0x.. +.xxx0x% +.x.%xx. +.. .xx. + .... +ENDMAP + +NAME: minmay_pentomino_u2 +: polyominoes_setup(_G) +MAP +..... +.xxx. +.x%x. +..00.. + .x%x. + .xxx. + ..... +ENDMAP + +NAME: minmay_pentomino_u4 +: polyominoes_setup(_G) +MAP + ..... + .xxx.... + .x%x.xx. +....0.%x. +.xx0b0xx. +.x%.0.... +.xx.x%x. +....xxx. + ..... +ENDMAP + +NAME: minmay_pentomino_z2 +: polyominoes_setup(_G) +MAP +.... +.xx.... +.%x0xx. + .xx0x%. + ....xx. + .... +ENDMAP + +NAME: minmay_pentomino_z4 +: polyominoes_setup(_G) +MAP + .. ... +...x0xx. +.xxx..x.. +.x..%.xx. + 0.%b%.0 +.xx.%..x. +..x..xxx. + .xx0x... + ... .. +ENDMAP + +NAME: minmay_pentomino_t2 +: polyominoes_setup(_G) +MAP +..... +.xxx. +..x%0. + .x%x. + .0%x.. + .xxx. + ..... +ENDMAP + +NAME: minmay_pentomino_t4 +: polyominoes_setup(_G) +MAP + ... + .x.... + ..x..x... + .xxx0xxx. + ..0%%x... +...x%%0.. +.xxx0xxx. +...x..x.. + ....x. + ... +ENDMAP + +NAME: minmay_pentomino_x2 +: polyominoes_setup(_G) +MAP + ... + ..x.. + .xxx. + ..0%x.. +..x%0.. +.xxx. +..x.. + ... +ENDMAP + +NAME: minmay_pentomino_x4 +: polyominoes_setup(_G) +MAP + ... + ....x.. +..x0xxx. +.xxx%x0. +..x%b%x.. + .0x%xxx. + .xxx0x.. + ..x.... + ... +ENDMAP + +NAME: minmay_pentomino_w2 +: polyominoes_setup(_G) +MAP +.... +.xx.... +..xx%x0. + .0x%xx.. + ....xx. + .... +ENDMAP + +NAME: minmay_pentomino_w4 +: polyominoes_setup(_G) +MAP + .... + ..xx0... + .xx..xx.. + .x%0b%xx. +.0.b%%0.x. +.x.0%%b.0. +.xx%b0%x. +..xx..xx. + ...0xx.. + .... +ENDMAP + +# this pentomino sucks +NAME: minmay_pentomino_p2 +: polyominoes_setup(_G) +MAP +..... +.xxx.0.. +.xx%%xx. +..0.xxx. + ..... +ENDMAP + +NAME: minmay_pentomino_p4 +: polyominoes_setup(_G) +MAP +........ +.xx0xxx. +.xxb.xx. +.x.%%b0. +.0b%%.x. +.xx.bxx. +.xxx0xx. +........ +ENDMAP + +NAME: minmay_pentomino_q2 +: polyominoes_setup(_G) +MAP +....... +.xxxx0. +.x%%%x. +.0xxxx. +....... +ENDMAP + +NAME: minmay_pentomino_q4 +: polyominoes_setup(_G) +MAP + .... + .xx. + .%x... + .x.x%... + .x0xxxx. +....0b0.... +.xxxx0x. +...%x.x. + ...x%. + .xx. + .... +ENDMAP + +# it took a while to figure out how to NOT draw a swastika with the V-pentomino +NAME: minmay_pentomino_v2 +: polyominoes_setup(_G) +MAP + ... + .x. +..%x. +.xxx0... +...0xxx. + .x%.. + .x. + ... +ENDMAP + +NAME: minmay_pentomino_v4 +DEPTH: D:1-2 +WEIGHT: 4 +: polyominoes_setup(_G) +MAP +.... .. +.xxx0x. +.x%..x%.. +.x.".xxx. + 0..b..0 +.xxx.".x. +..%x..%x. + .x0xxx. + .. .... +ENDMAP + +NAME: minmay_pentomino_o2 +: polyominoes_setup(_G) +MAP +....... +.xxxxx. +.0%%%0. +.xxxxx. +....... +ENDMAP + +NAME: minmay_pentomino_o4 +: polyominoes_setup(_G) +MAP +......... +.xxxxx0x. +...0...x. + .x%"%x. + .x.b.x. + .x%"%x. + .x...0... + .x0xxxxx. + ......... +ENDMAP + +NAME: minmay_pentomino_s2 +: polyominoes_setup(_G) +MAP +..... +.xxx.. +.0%xx. +.xx%0. +..xxx. + ..... +ENDMAP + +NAME: minmay_pentomino_s4 +: polyominoes_setup(_G) +MAP + ..... +....xxx. +.x0xx%0. +.x%"."x.. +.xx.b.xx. +..x"."%x. + .0%xx0x. + .xxx.... + ..... +ENDMAP + +################################################################################ +# hexominoes +# due to the large number of polyominoes of order 6 and greater, there are only +# vaults for the most interesting hex+ ominoes, instead of for all of them like +# pent- ominoes +# I also don't know of any naming convention for hex+ ominoes, so I just gave +# them the closest letters I could think of +NAME: minmay_hexomino_p4 +: polyominoes_setup(_G) +MAP + ...... + .xxxx... +..0.xx0x. +.xx.%..x. +.xx%b%xx. +.x..%.xx. +.x0xx.0.. +...xxxx. + ...... +ENDMAP + +NAME: minmay_hexomino_r4 +SHUFFLE: "' +SUBST: ' = ..0% +: polyominoes_setup(_G) +MAP + ... + .....x. +...x0xxx.. +.xxx..%xx. +..x%"'".0. + .x.'B'.x. + .0."'"%x.. + .xx%..xxx. + ..xxx0x... + .x..... + ... +ENDMAP + +NAME: minmay_hexomino_u4 +SHUFFLE: "' +SUBST: ' = ..0% +: polyominoes_setup(_G) +MAP + ... + ..x.. + ....xxx. +..xx0x%x. +.xx%"'"0... +..xx'b'xx.. + ..0"'"%xx. + .x%x0xx.. + .xxx.... + ..x.. + ... +ENDMAP + +NAME: minmay_hexomino_f4 +: polyominoes_setup(_G) +MAP + ...... + .xxxx... +...x%x.x. +.xx0"0xx. +.x%"b"%x. +.xx0"0xx. +.x.x%x... +...xxxx. + ...... +ENDMAP + +NAME: minmay_hexomino_c4 +: polyominoes_setup(_G) +MAP + ...... + .xxxx. +...x%%x... +.xx0"b0xx. +.x%b00"%x. +.x%"00b%x. +.xx0b"0xx. +...x%%x... + .xxxx. + ...... +ENDMAP + +################################################################################ +# heptominoes +NAME: minmay_heptomino_o4 +: polyominoes_setup(_G) +MAP + ..... + .xxx..... + .x%x.xxx. + .xx0bx%x. +...b""0xx. +.xx0""b... +.x%xb0xx. +.xxx.x%x. +.....xxx. + ..... +ENDMAP + +NAME: minmay_heptomino_h4 +: polyominoes_setup(_G) +MAP +......... +.x0x.xxx. +.xxx.%x0. +.x%x.xxx. +....b.... +.xxx.x%x. +.0x%.xxx. +.xxx.x0x. +......... +ENDMAP + +NAME: minmay_heptomino_d4 +: polyominoes_setup(_G) +MAP + ....... +..xx0xx.. +.x.xxx.x. +.xx.%.xx. +.0x%b%x0. +.xx.%.xx. +.x.xxx.x. +..xx0xx.. + ....... +ENDMAP + +NAME: minmay_heptomino_w4 +SHUFFLE: "'? +SUBST: ' = 0%, ? = 0% +: polyominoes_setup(_G) +MAP + .... + ..xx0.. + ..xx.xx.. + .xx.'.xx.. +.0x.?"?.xx. +.x.'"b"'.x. +.xx.?"?.x0. +..xx.'.xx. + ..xx.xx.. + ..0xx.. + .... +ENDMAP + +NAME: minmay_heptomino_l4 +: polyominoes_setup(_G) +MAP + ...... + .xxxx. +...x..0... +.x0x.xxxx. +.x.x%%..x. +.x..%%x.x. +.xxxx.x0x. +...0..x... + .xxxx. + ...... +ENDMAP + +################################################################################ +# octominoes +NAME: minmay_octomino_e4 +: polyominoes_setup(_G) +MAP +.......... +.xxxxx.xx. +.x%x0x.%x. +....b..xx. +.xx.""b0x. +.x0b"".xx. +.xx..b.... +.x%.x0x%x. +.xx.xxxxx. +.......... +ENDMAP + +NAME: minmay_octomino_c4 +: polyominoes_setup(_G) +MAP +.......... +.xxx0xxxx. +.x%..x%%x. +.x%..x..x. +.xxx00..0. +.0..00xxx. +.x..x..%x. +.x%%x..%x. +.xxxx0xxx. +.......... +ENDMAP + +NAME: minmay_octomino_j4 +: polyominoes_setup(_G) +MAP + ... + .x........ + .xxxx..xx. + ..0x.x0x.. + ..xx%xxx. + .x.%b%.x. + .xxx%xx.. +..x0x.x0.. +.xx..xxxx. +........x. + ... +ENDMAP + +################################################################################ +# nonominoes +NAME: minmay_nonomino_d4 +SHUFFLE: "'?! +SUBST: ' = 0%, ? = 0%, ! = " +: polyominoes_setup(_G) +MAP +........... +.xxxx0xxxx. +.x%x...x%x. +.xx..?..xx. +.x.."'"..x. +.0.?'b'?.0. +.x.."'"..x. +.xx..?..xx. +.x%x...x%x. +.xxxx0xxxx. +........... +ENDMAP diff --git a/crawl-ref/source/dat/des/variable/the_grid.des b/crawl-ref/source/dat/des/variable/the_grid.des new file mode 100644 index 00000000000..8229d86d27f --- /dev/null +++ b/crawl-ref/source/dat/des/variable/the_grid.des @@ -0,0 +1,1214 @@ +################################################################################ +# The Grid: some number of 9x9 rooms, one of which contains a large prize and +# some big monsters, and the remainder of which have easier monsters and smaller +# prizes (if they have either one at all). +# +# Additional vaults welcome. To guarantee that islands are not produced, +# subvaults must meet one condition. Let '?' represent squares in the subvault: +# @ +# ????????? +# ????????? +# ????????? +# ????????? +# @?????????@ +# ????????? +# ????????? +# ????????? +# ????????? +# @ +# All four @ symbols must be reachable from each other through the subvault. +# +# HACK: the_grid subvaults use " " instead of "x" for their walls. This is so +# the main vault can use SUBST: to make all walls in all subvaults the same +# type (we don't want one crystal room+two stone rooms+one metal room; we want +# four crystal rooms, or four stone rooms, or four metal rooms.) +# +# A few themed subvaults have their own crystal/metal/stone/whatever walls, but +# those are a small minority of the total wall squares in the vault. +# +# Walls: +# 45%: stone +# 20%: metal +# 15%: crystal +# 10%: translucent stone +# 6%: amorphous mixture of two opaque materials (stone, metal, crystal) +# 2%: amorphous mixture of one opaque material and translucent stone +# 2%: amorphous mixture of stone, metal, crystal, translucent stone, plus the +# occasional statue or missing wall. Xom thinks this is hilarious, etc. +# (The missing wall option is omitted for some main vaults where it would +# create islands) +# +# Rock walls are never included, this is because a digging monster could ruin +# the vault. +# +# Some of the main vaults have a 50% chance of "spiral mode" where the subvaults +# must be done in sequence (unless walls are destroyed) with the prize subvault +# at the end. In the rest of the cases, all subvaults are open on all 4 sides. +# There is a 33% chance of the subvaults having doors between them, otherwise +# they have floor. +################################################################################ + +{{ +function the_grid_main_setup(e) + e.tags('uniq_thegrid') + e.subst('" : x+') + e.subst('+ : +..') + e.subst('ABCDEFGHI = x') + e.subst('x : c:45 v:20 b:15 n Z:8 Q:2') + e.subst('Z : X:4 Y:3 Z:2 U:1 V:1 W:1') + e.subst('X = cv') + e.subst('Y = cb') + e.subst('Z = vb') + e.subst('U = cn') + e.subst('V = vn') + e.subst('W = bn') + e.subst('Q = ccvbn G:1 `:1') + e.kprop('` = no_tele_into') +end +}} + +default-depth: D:7-, Depths, Elf + +NAME: minmay_the_grid_2x2 +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid_prize +: the_grid_main_setup(_G) +MAP +....................... +.xxxxx"xxxxxxxxx"xxxxx. +.xAAAAAAAAAxBBBBBBBBBx. +.xAAAAAAAAAxBBBBBBBBBx. +.xAAAAAAAAAxBBBBBBBBBx. +.xAAAAAAAAAxBBBBBBBBBx. +.+AAAAAAAAA+BBBBBBBBB". +.xAAAAAAAAAxBBBBBBBBBx. +.xAAAAAAAAAxBBBBBBBBBx. +.xAAAAAAAAAxBBBBBBBBBx. +.xAAAAAAAAAxBBBBBBBBBx. +.xxxxx"xxxxxxxxx+xxxxx. +.xDDDDDDDDDxCCCCCCCCCx. +.xDDDDDDDDDxCCCCCCCCCx. +.xDDDDDDDDDxCCCCCCCCCx. +.xDDDDDDDDDxCCCCCCCCCx. +."DDDDDDDDD+CCCCCCCCC". +.xDDDDDDDDDxCCCCCCCCCx. +.xDDDDDDDDDxCCCCCCCCCx. +.xDDDDDDDDDxCCCCCCCCCx. +.xDDDDDDDDDxCCCCCCCCCx. +.xxxxx"xxxxxxxxx"xxxxx. +....................... +ENDMAP + +NAME: minmay_the_grid_plus +WEIGHT: 5 +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid +SUBVAULT: E : the_grid_prize +: the_grid_main_setup(_G) +MAP + ............. + .xxxxx+xxxxx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .+BBBBBBBBB+. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. +...........xBBBBBBBBBx........... +.xxxxx+xxxxxxxxx+xxxxxxxxx+xxxxx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.+DDDDDDDDD+EEEEEEEEE+AAAAAAAAA+. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xxxxx+xxxxxxxxx+xxxxxxxxx+xxxxx. +...........xCCCCCCCCCx........... + .xCCCCCCCCCx. + .xCCCCCCCCCx. + .xCCCCCCCCCx. + .+CCCCCCCCC+. + .xCCCCCCCCCx. + .xCCCCCCCCCx. + .xCCCCCCCCCx. + .xCCCCCCCCCx. + .xxxxx+xxxxx. + ............. +ENDMAP + +NAME: minmay_the_grid_plus_closed +WEIGHT: 5 +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid +SUBVAULT: E : the_grid_prize +: the_grid_main_setup(_G) +MAP + ............. + .....xxxxx+xxxxx..... + ...xxxxxBBBBBBBBBxxxxx... + ..xxxxxxxBBBBBBBBBxxxxxxx.. + ..xxxxxxxxBBBBBBBBBxxxxxxxx.. + .xxxxxxxxxBBBBBBBBBxxxxxxxxx. + ..xxxxx....BBBBBBBBB....xxxxx.. + .xxxxx..xxxBBBBBBBBBxxx..xxxxx. + .xxxx..xxxxBBBBBBBBBxxxx..xxxx. + .xxxx.xxxxxBBBBBBBBBxxxxx.xxxx. +..xxxx.xxxxxBBBBBBBBBxxxxx.xxxx.. +.xxxxx.xxxxxxxxx+xxxxxxxxx.xxxxx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.+DDDDDDDDD+EEEEEEEEE+AAAAAAAAA+. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xDDDDDDDDDxEEEEEEEEExAAAAAAAAAx. +.xxxxx.xxxxxxxxx+xxxxxxxxx.xxxxx. +..xxxx.xxxxxCCCCCCCCCxxxxx.xxxx.. + .xxxx.xxxxxCCCCCCCCCxxxxx.xxxx. + .xxxx..xxxxCCCCCCCCCxxxx..xxxx. + .xxxxx..xxxCCCCCCCCCxxx..xxxxx. + ..xxxxx....CCCCCCCCC....xxxxx.. + .xxxxxxxxxCCCCCCCCCxxxxxxxxx. + ..xxxxxxxxCCCCCCCCCxxxxxxxx.. + ..xxxxxxxCCCCCCCCCxxxxxxx.. + ...xxxxxCCCCCCCCCxxxxx... + .....xxxxx+xxxxx..... + ............. +ENDMAP + +NAME: minmay_the_grid_3x2 +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid +SUBVAULT: F : the_grid +SUBVAULT: E : the_grid_prize +: the_grid_main_setup(_G) +MAP +................................. +.xxxxx"xxxxxxxxx"xxxxxxxxx"xxxxx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +."AAAAAAAAA+BBBBBBBBB+CCCCCCCCC". +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xxxxx+xxxxxxxxx"xxxxxxxxx+xxxxx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +."DDDDDDDDD+EEEEEEEEE"FFFFFFFFF". +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xxxxx"xxxxxxxxx"xxxxxxxxx+xxxxx. +................................. +ENDMAP + +NAME: minmay_the_grid_net +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid +SUBVAULT: F : the_grid +SUBVAULT: E : the_grid_prize +: the_grid_main_setup(_G) +MAP + ............. + .xxxxx+xxxxx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .+BBBBBBBBB+. + .xBBBBBBBBBx. + .xBBBBBBBBBx. + .xBBBBBBBBBx. +.....................xBBBBBBBBBx........... +.xxxxx+xxxxxxxxx+xxxxxxxxx+xxxxxxxxx+xxxxx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.+DDDDDDDDD+EEEEEEEEE+FFFFFFFFF+CCCCCCCCC+. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxCCCCCCCCCx. +.xxxxx+xxxxxxxxx+xxxxxxxxx+xxxxxxxxx+xxxxx. +...........xAAAAAAAAAx..................... + .xAAAAAAAAAx. + .xAAAAAAAAAx. + .xAAAAAAAAAx. + .+AAAAAAAAA+. + .xAAAAAAAAAx. + .xAAAAAAAAAx. + .xAAAAAAAAAx. + .xAAAAAAAAAx. + .xxxxx+xxxxx. + ............. +ENDMAP + +NAME: minmay_the_grid_4x2 +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid +SUBVAULT: F : the_grid +SUBVAULT: G : the_grid +SUBVAULT: H : the_grid +SUBVAULT: E : the_grid_prize +: the_grid_main_setup(_G) +MAP +........................................... +.xxxxx"xxxxxxxxx"xxxxxxxxx"xxxxxxxxx"xxxxx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +."AAAAAAAAA+BBBBBBBBB+CCCCCCCCC+HHHHHHHHH". +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCxHHHHHHHHHx. +.xxxxx+xxxxxxxxx"xxxxxxxxx"xxxxxxxxx+xxxxx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +."DDDDDDDDD+EEEEEEEEE"FFFFFFFFF+GGGGGGGGG". +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFxGGGGGGGGGx. +.xxxxx"xxxxxxxxx"xxxxxxxxx+xxxxxxxxx"xxxxx. +........................................... +ENDMAP + +NAME: minmay_the_grid_3x3 +SUBVAULT: A : the_grid +SUBVAULT: B : the_grid +SUBVAULT: C : the_grid +SUBVAULT: D : the_grid +SUBVAULT: F : the_grid +SUBVAULT: G : the_grid +SUBVAULT: H : the_grid +SUBVAULT: I : the_grid +SUBVAULT: E : the_grid_prize +: the_grid_main_setup(_G) +MAP +................................. +.xxxxx"xxxxxxxxx"xxxxxxxxx"xxxxx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.+AAAAAAAAA+BBBBBBBBB+CCCCCCCCC". +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xAAAAAAAAAxBBBBBBBBBxCCCCCCCCCx. +.xxxxx"xxxxxxxxx"xxxxxxxxx+xxxxx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +."DDDDDDDDD+EEEEEEEEE"FFFFFFFFF". +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xDDDDDDDDDxEEEEEEEEExFFFFFFFFFx. +.xxxxx+xxxxxxxxx"xxxxxxxxx+xxxxx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +."GGGGGGGGG+HHHHHHHHH+IIIIIIIII". +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xGGGGGGGGGxHHHHHHHHHxIIIIIIIIIx. +.xxxxx"xxxxxxxxx"xxxxxxxxx"xxxxx. +................................. +ENDMAP + +################################################################################ +# Themed rooms +# +NAME: minmay_the_grid_dragon_a +TAGS: the_grid unrand +MONS: steam dragon / mottled dragon +MONS: fire dragon / ice dragon / swamp dragon w:5 +MONS: shadow dragon / iron dragon / golden dragon / storm dragon / \ + quicksilver dragon / pearl dragon +: if you.absdepth() < 10 then +SUBST: $ = $$$$$% +: elseif you.absdepth() < 16 then +SUBST: 1 = 2, $ = $$$$$* +: else +SUBST: 1 = 3, $ = $$$$$| +: end +MAP + .... + $$ ... + $$$$ .. + $$$. . +. $$1.$ . +. $..$ . +.. $.... +... ... + ....... +ENDMAP + +NAME: minmay_the_grid_dragon_b +TAGS: the_grid unrand +MONS: steam dragon / mottled dragon +MONS: fire dragon / ice dragon / swamp dragon w:5 +MONS: shadow dragon / iron dragon / golden dragon / storm dragon / \ + quicksilver dragon / pearl dragon +: if you.absdepth() < 10 then +SUBST: $ = $$$$$% +: elseif you.absdepth() < 16 then +SUBST: 1 = 2, $ = $$$$$* +: else +SUBST: 1 = 3, $ = $$$$$| +: end +MAP + ....... +.. .. +. $$$ . +. $$$$$ . +. $$1.$ . +. $..$$ . +. $.. . +.. . .. + ....... +ENDMAP + +NAME: minmay_the_grid_tri_star +TAGS: the_grid unrand +MONS: wizard / ogre mage / orc sorcerer w:5 / deep elf mage w:5 +MONS: deep elf mage / orc sorcerer / kobold demonologist w:5 +MONS: deep elf sorcerer / deep elf annihilator / lich / ancient lich w:5 +ITEM: any wand / any jewellery / any book / any magical staff +ITEM: any randart jewellery / any rod / any misc / \ + any weapon good_item w:5 / any armour good_item w:5 +: if you.absdepth() < 8 then +NSUBST: d = 1:d / *:. +: elseif you.absdepth() < 14 then +SUBST: 1 = 2 +NSUBST: d = 1:e / *:. +: else +SUBST: 1 = 3, d = e +: end +MAP + ..... + ....b.. + ....bb.. +...1db... +...bbd1.. +.bbbdb... +....1bbb. + ......b. + ....... +ENDMAP + +NAME: minmay_the_grid_armoury +TAGS: the_grid unrand +MONS: orc knight band, orc warlord band +MONS: centaur warrior band / yaktaur captain band +ITEM: any weapon / any armour / any missile +: if you.absdepth() < 10 then +SUBST: 0 = 1 +: elseif you.absdepth() < 13 then +SUBST: 0 = 2 +: else +SUBST: 0 = 3 +: end +MAP +......... +.vvvvvvv. +.vd...dv. +.vv...vv. +.vd.0.dv. +.vv...vv. +.vd...dv. +.vvv+vvv. +......... +ENDMAP + +NAME: minmay_the_grid_airy +TAGS: the_grid unrand +DEPTH: D:13-, Depths, Elf +MONS: spriggan air mage +NSUBST: 1 = 2:1 / 3 = 11... / *:. +MAP +111*b11bb +11bbbbb1b +bb1111bb1 +b1bbbb1b1 +1bb*b1bb1 +b1bb1bb1b +b1bbbbb1b +1b11b11bb +*bbb1bb1* +ENDMAP + +NAME: minmay_the_grid_artifice +TAGS: the_grid unrand +DEPTH: D:13-, Depths, Elf +ITEM: any rod +MONS: crystal guardian +NSUBST: 1 = 2:1 / 4 = 1. / *:. +MAP + ....... +..bbnbb.. +.bn111nb. +.b11111b. +.n11d11.. +.b11111b. +.bn111nb. +..bbnbb.. + ....... +ENDMAP + +################################################################################ +# Generic rooms +NAME: minmay_the_grid_empty +TAGS: the_grid unrand +MAP +......... +......... +......... +......... +......... +......... +......... +......... +......... +ENDMAP + +NAME: minmay_the_grid_spin_star +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +SUBST: 9 = 9.. +MAP + .... .. +. . . . +.. ... .. + .999. . +. .9b9. . +. .999. +.. ... .. +. . . . + .. .... +ENDMAP + +NAME: minmay_the_grid_expand +TAGS: the_grid unrand +SUBST: 9 = 9.. +MAP + .....999 +. ....99 +. . ...9 +.. .. . +.. . ... +... . . +9.. . .. +99. . . . +999. . .* +ENDMAP + +NAME: minmay_the_grid_all_tris +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP +9. .. .9 + . . . . + .. .. + . .. . +.. 9 . + .. .. + . . . +9. . .. . + .. 9. +ENDMAP + +NAME: minmay_the_grid_outer_diamond +TAGS: the_grid unrand +MAP + ... + ..0.. + ... ... +... ... +.0 0. +... ... + ... ... + ..0.. + ... +ENDMAP + +NAME: minmay_the_grid_outer_circle +TAGS: the_grid unrand +MAP + ..... + ...0... +... ... +.. .. +.0 0. +.. .. +... ... + ...0... + ..... +ENDMAP + +NAME: minmay_the_grid_diamond_grid +TAGS: the_grid unrand +MAP + . ... . +... . ... + . . . . +. .0.0. . +.. . . .. +. .0.0. . + . . . . +... . ... + . ... . +ENDMAP + +NAME: minmay_the_grid_spikes +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP +. . . ... +... . .. +..9...... + ...9 +... 9.... +... ..... + .. ... +... . ... +. . . . . +ENDMAP + +NAME: minmay_the_grid_fan +TAGS: the_grid unrand +MAP +. ...... +. ... +. .. .. +. . .... +.. 8 .. +.... . . + .. .. . + ... . +...... . +ENDMAP + +NAME: minmay_the_grid_box_x +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP +......... +. 9. +. * 9 . +. . 9 . +. 9 . +. 9 . . +. 9 . . +.9 . +......... +ENDMAP + +NAME: minmay_the_grid_stretched_grid +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP + .. .. +. .. .. + .. .. +. .. .. + .9 9. +. .9 .. + .. .. +. .. .. + .. .. +ENDMAP + +NAME: minmay_the_grid_eight +TAGS: the_grid unrand +MAP + ..... +.. ... +. ... +.. ...... +....8.... +...... .. + ... . + ... .. + ..... +ENDMAP + +NAME: minmay_the_grid_aliased_spiral +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP +........ +9 ... + ..9 .. + ...99 . +... 9 . +... * . . + .. . . + ... .. + ....... +ENDMAP + +NAME: minmay_the_grid_tree +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP + ...9... + ....... + ....... + + + +.... .... + ... ... + + + + + + . . . . +9.......9 +ENDMAP + +NAME: minmay_the_grid_zigzag_pyramid +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP +. ....... +. . +.....9 .. +.. .. +... 9.... +... ... +...9. ... + ... .. + ... ... +ENDMAP + +NAME: minmay_the_grid_gridbox +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +SUBST: 0 = 0. +MAP +......... +. . . . . +.. . . .. +. .000. . +.. 0b0 .. +. .000. . +.. . . .. +. . . . . +......... +ENDMAP + +NAME: minmay_the_grid_slots +TAGS: the_grid unrand +SUBST: 9 = 9:4 .:11 *:1 +MAP +.....9 9. +. . . +.9 9.9 9. +. . . +.9 9.9 9. +. . . +.9 9.9 9. +. . . +.9 9..... +ENDMAP + +NAME: minmay_the_grid_odd_star +TAGS: the_grid unrand +SUBST: 9 = 9. +MAP +... . ... +. ..... . +.. 9 .. + . 9 9 . +..9 * 9.. + . 9 9 . +.. 9 .. +. ..... . +... . ... +ENDMAP + +NAME: minmay_the_grid_large_cup +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +NSUBST: 0 = 2 = 09 / 4 = 09.. / *:. +MAP + ....... + ... . +.. 000. +. 00000. +. *00000. +. 00000. +.. 000. + ... . + ....... +ENDMAP + +NAME: minmay_the_grid_medium_cups +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +SUBST: 0 = 009.. +MAP +0.......0 +. . . +. %0. % . +. 0 0 . +...0b0... +. 0 0 . +. % .0% . +. . . +0.......0 +ENDMAP + +NAME: minmay_the_grid_small_cups +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +SUBST: 0 = 009. +MAP + ..... +.... . +. . % . +. %000... +. 0b0 . +...000% . + . % . . + . .... + ..... +ENDMAP + +NAME: minmay_the_grid_tiny_cups +TAGS: the_grid unrand +SUBST: 0 = 0. +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +MAP +0 0 . 0 0 + ....... +0. .b.0 + . * ... +.. 9 .. + ... * . +0.b. .0 + ....... +0 0 . 0 0 +ENDMAP + +NAME: minmay_the_grid_broken_lines +TAGS: the_grid unrand +SUBST: 0 = 0. +MAP +......... +. 00 . +......... + 00 +......... + 00 +......... +. 00 . +......... +ENDMAP + +NAME: minmay_the_grid_garden +TAGS: the_grid unrand +SUBST: ' = ". +SUBST: " = tt110 +MONS: plant +NSUBST: 0 = 1:0 / 9 = 0.. / *:. +MAP +.'''.'''' +'.'''.'.' +''.'.'.'' +'.'."'.'' +.''"T"'.. +'''.".''' +''.'.'.'' +'.''.''.' +''''.'''' +ENDMAP + +NAME: minmay_the_grid_doors +TAGS: the_grid unrand +MAP +......... +. + + . +. ..9.. . +. + . +.+.9*9.+. +. + . +. ..9.. . +. + + . +......... +ENDMAP + +NAME: minmay_the_grid_pillar_ring +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +SUBST: 0 = 0. +MAP +......... +.... .... +.. ... .. +...000... +. .0b0. . +...000... +.. ... .. +.... .... +......... +ENDMAP + +NAME: minmay_the_grid_plusring +TAGS: the_grid unrand +MAP + ..... + ....... +... . ... +.. 0 .. +...0 0... +.. 0 .. +... . ... + ....... + ..... +ENDMAP + +NAME: minmay_the_grid_holed_spiral +TAGS: the_grid unrand +MAP +......... +. . . +....... . +. . . . +. ..9 . . +. . . . . +. . ..... +. . . . +. ....... +ENDMAP + +NAME: minmay_the_grid_paths +TAGS: the_grid unrand +MAP +... ..... +. . . +. ... ... +. . . +. ..9.. . + . . . +... ... . +. . . +..... ... +ENDMAP + + +NAME: minmay_the_grid_mess +TAGS: the_grid unrand +MAP +. . 0. .. + .. .. . +...... . +. . . . +0 . ..0 +. ..... . +... ... + . ... . +... 0 . . +ENDMAP + +NAME: minmay_the_grid_minigrid_small +TAGS: the_grid unrand +SUBST: 0 = 09.. +MAP +......... +. . . . . +...0.0... +. 0 0 0 . +...0*0... +. 0 0 0 . +...0.0... +. . . . . +......... +ENDMAP + +NAME: minmay_the_grid_minigrid_small_alt +TAGS: the_grid unrand +SUBST: 0 = 0.. +MAP + . . . . +......... + . 0 0 . +..0.0.0.. + . 0 0 . +..0.0.0.. + . 0 0 . +......... + . . . . +ENDMAP + +NAME: minmay_the_grid_minigrid_medium +TAGS: the_grid unrand +SUBST: 0 = 00. +MAP + .. .. +. .. .. +. 0. .. + .. 0. + .0 0. +. 00 .. +. .. .. + .. .. + .. .. +ENDMAP + +NAME: minmay_the_grid_minigrid_large +TAGS: the_grid unrand +SUBST: 0 = 000. +MAP +......... +. 0 . +. . . +. . . +.0..0..0. +. . . +. . . +. 0 . +......... +ENDMAP + +NAME: minmay_the_grid_x +TAGS: the_grid unrand +MAP + ....... +. ..... . +.. ... .. +... 0 ... +...0 0... +... 0 ... +.. ... .. +. ..... . + ....... +ENDMAP + +NAME: minmay_the_grid_zigzags +TAGS: the_grid unrand +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +MAP + .. + 0 .. + ... .0 +.. .... +. .b. . + .... .. + 0. ... + .. 0 + .. +ENDMAP + +NAME: minmay_the_grid_rooms +TAGS: the_grid unrand +SUBST: 0 = 000. +SUBST: b : .:140 xcvbnGTUV09%* t:5 Y:5 +MAP + . + 00 . 00 + 00 ..00 + . . +....b.... + . . + 00.. 00 + 00 . 00 + . +ENDMAP + +NAME: minmay_the_grid_embedded +TAGS: the_grid unrand +MAP + . + 9. ...9 + .... .. + . . +....* ... + . . + .. .... + 9... .9 + . +ENDMAP + +NAME: minmay_the_grid_square_x +TAGS: the_grid unrand +MAP +0... ...0 +. ... . +. .9. . +... ... + .9 *.9. +... ... +. .9. . +. ... . +0... ...0 +ENDMAP + +################################################################################ +# Prize subvaults. + +NAME: minmay_the_grid_prize_trominoes +TAGS: the_grid_prize unrand +SUBST: T : .TG +: if you.absdepth() < 16 then +SUBST: 8 = 8. +: end +MAP + | . | + 8 . 8 +| .8... | + . ..8 +.. T .. + 8.. . +| ...8. | + 8 . 8 + | . | +ENDMAP + +NAME: minmay_the_grid_prize_four_corners +TAGS: the_grid_prize unrand +SUBST: Z = .:60 x:40 8Gcvbmt T:3 U:3 V:3 Y:1 +SUBST: A : +. A:2, B : +. A:2 +SUBST: A = +.W +MAP +**9 . 9** +**. . .** +9.B . B.9 + A8A +...8Z8... + A8A +9.B . B.9 +**. . .** +**9 . 9** +ENDMAP + +NAME: minmay_the_grid_prize_four_corners_diamond_a +TAGS: the_grid_prize unrand +WEIGHT: 5 +KITEM: | = |, | +SUBST: 8 = 88. +MAP +|8 . 8| +8. ... .8 + .. .. + .. .. +.. .. + .. .. + .. .. +8. ... .8 +|8 . 8| +ENDMAP + +NAME: minmay_the_grid_prize_four_corners_diamond_b +TAGS: the_grid_prize unrand +WEIGHT: 5 +KITEM: | = |, | +SUBST: 8 = 88. +MAP +|8 . 8| +8. . . .8 + . . . + . . . . +. . . . . + . . . . + . . . +8. . . .8 +|8 . 8| +ENDMAP + +NAME: minmay_the_grid_prize_shrinking_boxes +TAGS: the_grid_prize unrand +KITEM: | = |,|,|,|,|,|,|,| +SUBST: 8 = 88. +MAP +......... +. . +. 88.88 . +. . + . . +. . | . . +. . . . +. ..... . +. + . +..88.88.. +ENDMAP + +NAME: minmay_the_grid_prize_inner_circle +TAGS: the_grid_prize unrand +SUBST: b : xcvbnTG|8 +NSUBST: 8 = 2 = 8. / *:8 +MAP + ....... +.. .. +. *** . +. ***** . +. **b*8 . +. ****8 . +. *888 . +.. 88 + ......8 +ENDMAP + +NAME: minmay_the_grid_prize_big_room +TAGS: the_grid_prize unrand +NSUBST: 8 = 4:8 / 8 = 8. / *:. +SUBST: b : xcvbnTG|8 +MAP +*** . ... +*** .. . +**.888... + 88888 . +..88b88.. + 88888 . +**.888... +*** .. . +*** . ... +ENDMAP + +NAME: minmay_the_grid_prize_diamond_cup +TAGS: the_grid_prize unrand +SUBST: b : xcvbnTG|8 +SUBST: 8 = 8.. +KMONS: | = 8 +KITEM: | = | +MAP + . . + . . + . 8 . +. ||| . + .8|b|8 +. ||| . + . 8 . + . . + . . +ENDMAP