Bazaar developer reference

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}

Calls

Called by