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