diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-27 05:51:13 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-27 05:51:13 +0000 |
commit | 352aea704c4c3bc6eed84845ef6ec6c91ab4bb08 (patch) | |
tree | 10ffa5450a55aae748316fbb84aeec20f414ae2f /crawl-ref/source/mgrow.cc | |
parent | f3f93a328f7c076f46be200133af034e42956f6d (diff) | |
download | crawl-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.cc | 18 |
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; |