diff options
Diffstat (limited to 'crawl-ref/source/mgrow.cc')
-rw-r--r-- | crawl-ref/source/mgrow.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/crawl-ref/source/mgrow.cc b/crawl-ref/source/mgrow.cc index 57b3edc0cf..aacacfe3d1 100644 --- a/crawl-ref/source/mgrow.cc +++ b/crawl-ref/source/mgrow.cc @@ -181,22 +181,22 @@ void monsters::init_experience() experience = mexplevs[std::min(hit_dice, MAX_MONS_HD)]; } -void monsters::gain_exp(int exp) +bool monsters::gain_exp(int exp) { if (!alive()) - return; + return false; init_experience(); if (hit_dice >= MAX_MONS_HD) - return; + return false; // Only natural monsters can level-up. if (holiness() != MH_NATURAL) - return; - + return false; + // Avoid wrap-around. if (experience + exp < experience) - return; + return false; experience += exp; @@ -218,4 +218,6 @@ void monsters::gain_exp(int exp) if (hit_dice < MAX_MONS_HD && experience >= mexplevs[hit_dice + 1]) experience = (mexplevs[hit_dice] + mexplevs[hit_dice + 1]) / 2; + + return (levels_gained > 0); } |