Move some levelup logic from mwgui to mwmechanics

actorid
Emanuel Guevel 12 years ago
parent 7837dcdc19
commit 2a0644a7c3

@ -173,12 +173,7 @@ namespace MWGui
attribute.setBase(100);
}
// "When you gain a level, in addition to increasing three primary attributes, your Health
// will automatically increase by 10% of your Endurance attribute. If you increased Endurance this level,
// the Health increase is calculated from the increased Endurance"
creatureStats.increaseLevelHealthBonus (creatureStats.getAttribute(ESM::Attribute::Endurance).getBase() * 0.1f);
creatureStats.setLevel (creatureStats.getLevel()+1);
creatureStats.levelUp();
pcStats.levelUp ();
MWBase::Environment::get().getWindowManager()->removeGuiMode (GM_Levelup);

@ -18,14 +18,24 @@ namespace MWMechanics
mAiSettings[i] = 0;
}
void CreatureStats::increaseLevelHealthBonus (float value)
float CreatureStats::getLevelHealthBonus () const
{
mLevelHealthBonus += value;
return mLevelHealthBonus;
}
float CreatureStats::getLevelHealthBonus () const
void CreatureStats::levelUp()
{
return mLevelHealthBonus;
const MWWorld::Store<ESM::GameSetting> &gmst =
MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>();
const int endurance = getAttribute(ESM::Attribute::Endurance).getBase();
// "When you gain a level, in addition to increasing three primary attributes, your Health
// will automatically increase by 10% of your Endurance attribute. If you increased Endurance this level,
// the Health increase is calculated from the increased Endurance"
mLevelHealthBonus += endurance * gmst.find("fLevelUpHealthEndMult")->getFloat();
mLevel++;
}
const AiSequence& CreatureStats::getAiSequence() const

@ -95,10 +95,10 @@ namespace MWMechanics
float getFatigueTerm() const;
///< Return effective fatigue
// small hack to allow the fact that Health permanently increases by 10% of endurance on each level up
void increaseLevelHealthBonus(float value);
float getLevelHealthBonus() const;
void levelUp();
bool isDead() const;
bool hasDied() const;

Loading…
Cancel
Save