CvUnit::experienceNeeded() const
- Defined in
- CvUnit.cpp, line 13922
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_experienceNeeded
Hooks
static bool BeforeCvUnit_experienceNeeded(const CvUnit* self, int& result);static void AfterCvUnit_experienceNeeded(const CvUnit* self, int& result);static int ReplaceCvUnit_experienceNeeded(int (*original)(const CvUnit*), const CvUnit* self);CivRegisterBefore<CivHooks::CvUnit_experienceNeeded>(host, &BeforeCvUnit_experienceNeeded);CivRegisterAfter<CivHooks::CvUnit_experienceNeeded>(host, &AfterCvUnit_experienceNeeded);CivRegisterReplace<CivHooks::CvUnit_experienceNeeded>(host, &ReplaceCvUnit_experienceNeeded);
Code
13922int CvUnit::experienceNeeded() const13923{13924 VALIDATE_OBJECT1392513926 const int iLevel = getLevel();1392713928 // Sum up the levels to get our multiplier (1:1, 2:3, 3:6, 4:10, etc.)13929 int iExperienceMultiplier = 0;13930 for(int iLevelLoop = 1; iLevelLoop <= iLevel; iLevelLoop++)13931 {13932 iExperienceMultiplier += iLevelLoop;13933 }1393413935 int iExperienceNeeded = /*10*/ GC.getEXPERIENCE_PER_LEVEL() * iExperienceMultiplier;1393613937 const int iModifier = GET_PLAYER(getOwner()).getLevelExperienceModifier();13938 if(0 != iModifier)13939 {13940 float fTemp = (float) iExperienceNeeded;13941 fTemp *= (100 + iModifier);13942 fTemp /= 100;13943 iExperienceNeeded = (int) ceil(fTemp); // Round up13944 }1394513946 return iExperienceNeeded;13947}