summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/mgrow.cc18
-rw-r--r--crawl-ref/source/mon-data.h2
-rw-r--r--crawl-ref/source/view.cc2
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];