summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordploog <dploog@c06c8d41-db1a-0410-9941-cceddc491573>2009-04-05 07:15:23 +0000
committerdploog <dploog@c06c8d41-db1a-0410-9941-cceddc491573>2009-04-05 07:15:23 +0000
commit65babfc67fb6ee7ec65c0c8ffa90a508ac7c33a8 (patch)
tree2576776a1076b6f4e401b40b946022416c9c277e
parentc8abbb6f1236d147674c8d88065b8400756ce686 (diff)
downloadcrawl-ref-65babfc67fb6ee7ec65c0c8ffa90a508ac7c33a8.tar.gz
crawl-ref-65babfc67fb6ee7ec65c0c8ffa90a508ac7c33a8.zip
First approach towards more relentless ziggurats at deeper levels.
Also fixed on ziggurat pillar vault. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9580 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dat/clua/ziggurat.lua42
-rw-r--r--crawl-ref/source/dat/ziggurat.des2
2 files changed, 31 insertions, 13 deletions
diff --git a/crawl-ref/source/dat/clua/ziggurat.lua b/crawl-ref/source/dat/clua/ziggurat.lua
index b2f8fc3f41..400ccbc1e9 100644
--- a/crawl-ref/source/dat/clua/ziggurat.lua
+++ b/crawl-ref/source/dat/clua/ziggurat.lua
@@ -259,14 +259,9 @@ local function mset_if(condition, ...)
mset(unpack(util.map(util.curry(spec_if, condition), { ... })))
end
-mset("place:Elf:$ w:300 / deep elf blademaster / deep elf master archer / " ..
- "deep elf annihilator / deep elf sorcerer / deep elf demonologist",
- "place:Orc:$ w:120 / orc warlord / orc knight / stone giant",
- "place:Vault:$",
- with_props("place:Slime:$", { jelly_protect = true }),
+mset(with_props("place:Slime:$", { jelly_protect = true }),
"place:Snake:$",
with_props("place:Lair:$", { weight = 5 }),
- "place:Tomb:$ w:200 / greater mummy",
"place:Crypt:$",
"place:Abyss",
with_props("place:Shoal:$", { weight = 5 }),
@@ -275,8 +270,6 @@ mset("place:Elf:$ w:300 / deep elf blademaster / deep elf master archer / " ..
with_props("place:Dis:$", { weight = 5 }),
with_props("place:Tar:$", { weight = 5 }),
with_props("daeva / angel", { weight = 2 }))
-mset_if(depth_ge(6), "place:Pan w:400 / w:15 pandemonium lord")
-mset_if(depth_lt(6), "place:Pan")
-- spec_fn can be used to wrap a function that returns a monster spec.
-- This is useful if you want to adjust monster weights in the spec
@@ -284,10 +277,35 @@ mset_if(depth_lt(6), "place:Pan")
-- returned by this function will also be used to init the monster
-- population (with dgn.set_random_mon_list). As an example:
mset(spec_fn(function ()
- local depth = zig().depth
- return "place:Vault:$ w:" .. (50 - depth) ..
- " / ancient lich w:" .. math.max(0, depth - 12)
- end))
+ local d = math.max(0, zig().depth - 12)
+ return "place:Vault:$ w:60 / ancient lich w:" .. d
+ end))
+
+mset(spec_fn(function ()
+ local d = math.max(0, zig().depth - 5)
+ return "place:Pan w:40 / pandemonium lord w:" .. d
+ end))
+
+mset(spec_fn(function ()
+ local d = zig().depth + 5
+ return "place:Tomb:$ w:200 / greater mummy w:" .. d
+ end))
+
+mset(spec_fn(function ()
+ local d = 300 - 10 * zig().depth
+ return "place:Elf:$ w:" .. d .. " / deep elf sorcerer / " ..
+ "deep elf blademaster / deep elf master archer / " ..
+ "deep elf annihilator / deep elf demonologist"
+ end))
+
+mset(spec_fn(function ()
+ local d = 310 - 10 * zig().depth
+ local e = math.max(0, zig().depth - 20)
+ return "place:Orc:$ w:" .. d .. " / orc warlord / orc knight / " ..
+ "orc high priest w:5 / orc sorcerer w:5 / stone giant / " ..
+ "moth of wrath w:" .. e
+ end))
+
local drac_creator = dgn.monster_fn("random draconian")
local function mons_drac_gen(x, y, nth)
diff --git a/crawl-ref/source/dat/ziggurat.des b/crawl-ref/source/dat/ziggurat.des
index fee6d4ba08..13275a5a3e 100644
--- a/crawl-ref/source/dat/ziggurat.des
+++ b/crawl-ref/source/dat/ziggurat.des
@@ -298,7 +298,7 @@ ENDMAP
NAME: ziggurat_pillar_centre_b
TAGS: ziggurat_pillar centered
-SHUFFLE: w< / l< / nb / c< / bx
+SHUFFLE: w> / l> / nb / c> / bx
MAP
www
wwwww