diff options
-rw-r--r-- | crawl-ref/source/mgrow.cc | 18 | ||||
-rw-r--r-- | crawl-ref/source/mon-data.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/view.cc | 2 |
3 files changed, 12 insertions, 10 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; diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index 6a4b66164a..999bcc32b1 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -1189,7 +1189,7 @@ MR_RES_FIRE, 600, 12, MONS_ORC, MONS_ORC, MH_NATURAL, -3, { {AT_HIT, AF_PLAIN, 7}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, - { 8, 2, 3, 0 }, + { 9, 2, 3, 0 }, 5, 12, MST_ORC_SORCERER, CE_CONTAMINATED, Z_SMALL, S_SHOUT, I_HIGH, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM }, diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 774d8818fb..0f20834b19 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -679,7 +679,7 @@ inline static void beogh_follower_convert(monsters *monster) const int hd = monster->hit_dice; if (you.piety >= 75 && !you.penance[GOD_BEOGH] && - random2(you.piety / 15) + random2(12) + random2(you.piety / 15) + random2(4 + you.experience_level / 3) > random2(hd) + hd + random2(5)) { int wpn = you.equip[EQ_WEAPON]; |