diff options
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 | |