summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mgrow.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-27 05:51:13 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-27 05:51:13 +0000
commit352aea704c4c3bc6eed84845ef6ec6c91ab4bb08 (patch)
tree10ffa5450a55aae748316fbb84aeec20f414ae2f /crawl-ref/source/mgrow.cc
parentf3f93a328f7c076f46be200133af034e42956f6d (diff)
downloadcrawl-ref-352aea704c4c3bc6eed84845ef6ec6c91ab4bb08.tar.gz
crawl-ref-352aea704c4c3bc6eed84845ef6ec6c91ab4bb08.zip
Increased experience needed for monsters to level up, bumped orc sorcerers up one HD, and factored in XL in Beogh orc spontaneous conversion.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2607 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mgrow.cc')
-rw-r--r--crawl-ref/source/mgrow.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/crawl-ref/source/mgrow.cc b/crawl-ref/source/mgrow.cc
index ea08169523..e6d0b80b90 100644
--- a/crawl-ref/source/mgrow.cc
+++ b/crawl-ref/source/mgrow.cc
@@ -13,9 +13,9 @@
#include "stuff.h"
// Base experience required by a monster to reach HD 1.
-const int monster_xp_base = 10;
+const int monster_xp_base = 15;
// Experience multiplier to determine the experience needed to gain levels.
-const int monster_xp_multiplier = 130;
+const int monster_xp_multiplier = 150;
const mons_experience_levels mexplevs;
// Monster growing-up sequences. You can specify a chance to indicate that
@@ -70,7 +70,7 @@ mons_experience_levels::mons_experience_levels()
delta =
std::min(
std::max(delta, monster_xp_base * monster_xp_multiplier / 100),
- 2500);
+ 2000);
experience += delta;
}
}
@@ -142,15 +142,17 @@ bool monsters::level_up()
// A little maxhp boost.
if (max_hit_points < 1000)
{
- int hpboost = hit_dice > 3? max_hit_points / 8 : max_hit_points / 4;
+ int hpboost =
+ (hit_dice > 3? max_hit_points / 8 : max_hit_points / 4)
+ + random2(5);
+
+ // Not less than 3 hp, not more than 25.
+ hpboost = std::min(std::max(hpboost, 3), 25);
+
#ifdef DEBUG_DIAGNOSTICS
mprf(MSGCH_DIAGNOSTICS, "%s: HD: %d, maxhp: %d, boost: %d",
name(DESC_PLAIN).c_str(), hit_dice, max_hit_points, hpboost);
#endif
- if (hpboost < 2)
- hpboost = 2;
- if (hpboost > 20)
- hpboost = 20;
max_hit_points += hpboost;
hit_points += hpboost;