summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monplace.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/monplace.cc')
-rw-r--r--crawl-ref/source/monplace.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index a6ef07c3f1..115a9c28ab 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -135,10 +135,20 @@ static bool need_super_ood(int lev_mons)
&& one_chance_in(5000));
}
+/*
static bool need_moderate_ood(int lev_mons)
{
- return (env.turns_on_level > 700 - lev_mons * 117
- && one_chance_in(50));
+ return (env.turns_on_level > 700 - lev_mons * 117? one_chance_in(40) :
+ one_chance_in(50));
+}
+*/
+
+static int fuzz_mons_level(int level)
+{
+ int fuzz = random2avg(11, 5);
+ if (fuzz > 5)
+ level += fuzz - 5;
+ return (level);
}
bool place_monster(int &id, int mon_type, int power, beh_type behaviour,
@@ -177,13 +187,16 @@ bool place_monster(int &id, int mon_type, int power, beh_type behaviour,
if (player_in_branch( BRANCH_MAIN_DUNGEON )
&& lev_mons < 28)
{
+ lev_mons = fuzz_mons_level(lev_mons);
+
// potentially nasty surprise, but very rare
if (need_super_ood(lev_mons))
lev_mons += random2(12);
// slightly out of depth monsters are more common:
- if (need_moderate_ood(lev_mons))
- lev_mons += random2(5);
+ // [ds] Replaced with a fuzz above for a more varied mix.
+ //if (need_moderate_ood(lev_mons))
+ // lev_mons += random2(5);
if (lev_mons > 27)
lev_mons = 27;