diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-26 22:28:03 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-26 22:28:03 +0000 |
commit | ccaab92e8a9f1696ab38d4e08f33ed3b4ace5578 (patch) | |
tree | 1dc4aa89a24b6164a9cace94f1e2bef427b67490 /crawl-ref/source/dat/rooms.des | |
parent | b81f40c68c5ede137cd966e332d1cb7315ceff5a (diff) | |
download | crawl-ref-ccaab92e8a9f1696ab38d4e08f33ed3b4ace5578.tar.gz crawl-ref-ccaab92e8a9f1696ab38d4e08f33ed3b4ace5578.zip |
Placeholders for the various types of special rooms now occur at
approximations of the frequency they did in 0.4 (see end of dat/rooms.des
for the 0.4 frequencies). Only bee-hives and jelly pits appear in the Lair,
and only morgues appear in the Crypt.
The depths at which special rooms appear is now entirely controlled by
the DEPTH lines in dat/rooms.des, so they can appear at any depth except
for D:1, since D:1 is constructed by differnt code than the other levels.
With the current set of depths this means that special rooms on roguey
levels can start appearing 3 levels earlier than in crawl 0.4
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7643 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/dat/rooms.des')
-rw-r--r-- | crawl-ref/source/dat/rooms.des | 230 |
1 files changed, 226 insertions, 4 deletions
diff --git a/crawl-ref/source/dat/rooms.des b/crawl-ref/source/dat/rooms.des index 960426f671..1c95a9d8d9 100644 --- a/crawl-ref/source/dat/rooms.des +++ b/crawl-ref/source/dat/rooms.des @@ -1,7 +1,6 @@ -NAME: special_room_test -TAGS: special_room allow_dup +lua {{ -{{ +function fill_special_room(mon) local level, tl_x, tl_y, br_x, br_y = dgn.get_special_room_info() -- Return early if we're being called during map validation. @@ -9,11 +8,234 @@ TAGS: special_room allow_dup return end + crawl.mpr("mon = " .. mon .. ", level = " .. level) + for x = tl_x, br_x do for y = tl_y, br_y do - dgn.create_monster(x, y, "rat") + dgn.create_monster(x, y, mon) end end +return +end + }} + +########################## + +NAME: special_room_kobold +DEPTH: 6-14, !Lair, !Crypt +TAGS: special_room allow_dup +WEIGHT: 11 +: fill_special_room("kobold") +MAP +ENDMAP + +NAME: special_room_orc_a +DEPTH: 8-14, !Lair, !Crypt +TAGS: special_room allow_dup +WEIGHT: 59 +: fill_special_room("orc") +MAP +ENDMAP + +NAME: special_room_bee_a +DEPTH: 8-14, !Crypt +TAGS: special_room allow_dup +WEIGHT: 30 +: fill_special_room("killer bee") +MAP +ENDMAP +################################ +NAME: special_room_orc_b +DEPTH: 15-16, !Lair, !Crypt +TAGS: special_room allow_dup +WEIGHT: 50 +: fill_special_room("orc") +MAP +ENDMAP + +NAME: special_room_bee_b +DEPTH: 15-16, !Crypt +TAGS: special_room allow_dup +WEIGHT: 25 +: fill_special_room("killer bee") +MAP +ENDMAP + +NAME: special_room_morgue_b +DEPTH: 15-16, !Lair +TAGS: special_room allow_dup +WEIGHT: 25 +: fill_special_room("rat zombie") +MAP +ENDMAP +################################# +NAME: special_room_orc_c +DEPTH: 17, !Lair, !Crypt +TAGS: special_room allow_dup +WEIGHT: 40 +: fill_special_room("orc") +MAP +ENDMAP + +NAME: special_room_bee_c +DEPTH: 17, !Crypt +TAGS: special_room allow_dup +WEIGHT: 25 +: fill_special_room("killer bee") +MAP +ENDMAP + +NAME: special_room_morgue_c +DEPTH: 17, !Lair +TAGS: special_room allow_dup +WEIGHT: 27 +: fill_special_room("rat zombie") +MAP +ENDMAP + +NAME: special_room_jelly_c +DEPTH: 17, !Crypt +TAGS: special_room allow_dup +WEIGHT: 9 +: fill_special_room("jelly") MAP ENDMAP +################################# +NAME: special_room_orc_d +DEPTH: 18-20, !Lair, !Crypt +TAGS: special_room allow_dup +WEIGHT: 25 +: fill_special_room("orc") +MAP +ENDMAP + +NAME: special_room_bee_d +DEPTH: 18-20, !Crypt +TAGS: special_room allow_dup +WEIGHT: 33 +: fill_special_room("killer bee") +MAP +ENDMAP + +NAME: special_room_morgue_d +DEPTH: 18-20, !Lair +TAGS: special_room allow_dup +WEIGHT: 29 +: fill_special_room("rat zombie") +MAP +ENDMAP + +NAME: special_room_jelly_d +DEPTH: 18-20, !Crypt +TAGS: special_room allow_dup +WEIGHT: 13 +: fill_special_room("jelly") +MAP +ENDMAP +################################# +NAME: special_room_orc_e +DEPTH: 21-, !Lair, !Crypt +TAGS: special_room allow_dup +WEIGHT: 15 +: fill_special_room("orc") +MAP +ENDMAP + +NAME: special_room_bee_e +DEPTH: 21-, !Crypt +TAGS: special_room allow_dup +WEIGHT: 8 +: fill_special_room("killer bee") +MAP +ENDMAP + +NAME: special_room_morgue_e +DEPTH: 21-, !Lair +TAGS: special_room allow_dup +WEIGHT: 32 +: fill_special_room("rat zombie") +MAP +ENDMAP + +NAME: special_room_jelly_e +DEPTH: 21-, !Crypt +TAGS: special_room allow_dup +WEIGHT: 45 +: fill_special_room("jelly") +MAP +ENDMAP + +######################################################################### +######################################################################### + +# 0.4 crawl C code for randomly determining which special room type to +# use + +# if (level_number < 7) +# spec_room_type = SROOM_LAIR_KOBOLD; +# else +# { +# spec_room_type = random2(NUM_SPECIAL_ROOMS); +# +# if (level_number < 23 && one_chance_in(4)) +# spec_room_type = SROOM_BEEHIVE; +# +# // Replace overly dangerous special rooms with a room full of orcs. +# if (level_number > 13 && spec_room_type == SROOM_LAIR_KOBOLD +# || level_number < 16 && spec_room_type == SROOM_MORGUE +# || level_number < 14 && spec_room_type == SROOM_JELLY_PIT +# || level_number < 17 && one_chance_in(4)) +# { +# spec_room_type = SROOM_LAIR_ORC; +# } +# +# if (level_number > 19 && coinflip()) +# spec_room_type = SROOM_MORGUE; +# +# if (level_number > 13 && +# one_chance_in(6 - (level_number > 23) - (level_number > 18))) +# { +# spec_room_type = SROOM_JELLY_PIT; +# } +# } +# + +#################################### + +# 0.4 crawl percentages for each room type generated per level (for 10,000 +# randomly generated vaults per level) + +# | K | O | B | M | J | +#----------------------------------------------- +# 0| 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 1| 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 2| 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 3| 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 4| 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 5| 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 6|100.00 | 0.00 | 0.00 | 0.00 | 0.00 | +# 7| 11.39 | 59.25 | 29.36 | 0.00 | 0.00 | +# 8| 11.07 | 58.43 | 30.50 | 0.00 | 0.00 | +# 9| 11.23 | 57.98 | 30.79 | 0.00 | 0.00 | +#10| 11.46 | 58.39 | 30.15 | 0.00 | 0.00 | +#11| 11.30 | 58.78 | 29.92 | 0.00 | 0.00 | +#12| 11.21 | 58.65 | 30.14 | 0.00 | 0.00 | +#13| 10.92 | 58.96 | 30.12 | 0.00 | 0.00 | +#14| 0.00 | 49.58 | 24.99 | 25.43 | 0.00 | +#15| 0.00 | 49.74 | 24.56 | 25.70 | 0.00 | +#16| 0.00 | 39.51 | 24.77 | 27.04 | 8.68 | +#17| 0.00 | 24.23 | 33.07 | 29.57 | 13.13 | +#18| 0.00 | 25.31 | 32.99 | 29.06 | 12.64 | +#19| 0.00 | 24.52 | 32.53 | 31.09 | 11.86 | +#20| 0.00 | 11.63 | 15.84 | 25.52 | 47.01 | +#21| 0.00 | 12.06 | 17.33 | 25.60 | 45.01 | +#22| 0.00 | 12.12 | 15.97 | 25.50 | 46.41 | +#23| 0.00 | 14.94 | 8.64 | 27.63 | 48.79 | +#24| 0.00 | 15.20 | 7.29 | 32.14 | 45.37 | +#25| 0.00 | 14.82 | 7.88 | 33.04 | 44.26 | +#26| 0.00 | 14.99 | 7.91 | 31.94 | 45.16 | +#27| 0.00 | 14.96 | 7.28 | 32.06 | 45.70 | +#28| 0.00 | 15.12 | 7.88 | 32.11 | 44.89 | +#29| 0.00 | 15.48 | 7.40 | 33.17 | 43.95 | +#30| 0.00 | 15.08 | 7.84 | 31.97 | 45.11 | |