CvCityCitizens::GetSpecialistUpgradeThreshold(UnitClassTypes)
- Defined in
- CvCityCitizens.cpp, line 2684
- Class
- CvCityCitizens
- Hook name
CivHooks::CvCityCitizens_GetSpecialistUpgradeThreshold
Hooks
static bool BeforeCvCityCitizens_GetSpecialistUpgradeThreshold(CvCityCitizens* self, UnitClassTypes eUnitClass, int& result);static void AfterCvCityCitizens_GetSpecialistUpgradeThreshold(CvCityCitizens* self, UnitClassTypes eUnitClass, int& result);static int ReplaceCvCityCitizens_GetSpecialistUpgradeThreshold(int (*original)(CvCityCitizens*, UnitClassTypes), CvCityCitizens* self, UnitClassTypes eUnitClass);CivRegisterBefore<CivHooks::CvCityCitizens_GetSpecialistUpgradeThreshold>(host, &BeforeCvCityCitizens_GetSpecialistUpgradeThreshold);CivRegisterAfter<CivHooks::CvCityCitizens_GetSpecialistUpgradeThreshold>(host, &AfterCvCityCitizens_GetSpecialistUpgradeThreshold);CivRegisterReplace<CivHooks::CvCityCitizens_GetSpecialistUpgradeThreshold>(host, &ReplaceCvCityCitizens_GetSpecialistUpgradeThreshold);
Code
2683/// What upgrade progress does a Specialist need to level up?2684int CvCityCitizens::GetSpecialistUpgradeThreshold(UnitClassTypes eUnitClass)2685{2686 int iThreshold = /*100*/ GC.getGREAT_PERSON_THRESHOLD_BASE();2687 int iNumCreated;26882689 if (eUnitClass == GC.getInfoTypeForString("UNITCLASS_WRITER", true))2690 {2691#if defined(MOD_GLOBAL_TRULY_FREE_GP)2692 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatWritersCreated(MOD_GLOBAL_TRULY_FREE_GP);2693#else2694 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatWritersCreated();2695#endif2696 }2697 else if (eUnitClass == GC.getInfoTypeForString("UNITCLASS_ARTIST", true))2698 {2699#if defined(MOD_GLOBAL_TRULY_FREE_GP)2700 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatArtistsCreated(MOD_GLOBAL_TRULY_FREE_GP);2701#else2702 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatArtistsCreated();2703#endif2704 }2705 else if (eUnitClass == GC.getInfoTypeForString("UNITCLASS_MUSICIAN", true))2706 {2707#if defined(MOD_GLOBAL_TRULY_FREE_GP)2708 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatMusiciansCreated(MOD_GLOBAL_TRULY_FREE_GP);2709#else2710 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatMusiciansCreated();2711#endif2712 }2713 else2714 {2715#if defined(MOD_GLOBAL_SEPARATE_GP_COUNTERS)2716 if (MOD_GLOBAL_SEPARATE_GP_COUNTERS) {2717 if (eUnitClass == GC.getInfoTypeForString("UNITCLASS_MERCHANT", true)) {2718#if defined(MOD_GLOBAL_TRULY_FREE_GP)2719 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatMerchantsCreated(MOD_GLOBAL_TRULY_FREE_GP);2720#else2721 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatMerchantsCreated();2722#endif2723 } else if (eUnitClass == GC.getInfoTypeForString("UNITCLASS_SCIENTIST", true)) {2724#if defined(MOD_GLOBAL_TRULY_FREE_GP)2725 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatScientistsCreated(MOD_GLOBAL_TRULY_FREE_GP);2726#else2727 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatScientistsCreated();2728#endif2729 } else {2730#if defined(MOD_GLOBAL_TRULY_FREE_GP)2731 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatEngineersCreated(MOD_GLOBAL_TRULY_FREE_GP);2732#else2733 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatEngineersCreated();2734#endif2735 }2736 } else2737#endif2738#if defined(MOD_GLOBAL_TRULY_FREE_GP)2739 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatPeopleCreated(MOD_GLOBAL_TRULY_FREE_GP);2740#else2741 iNumCreated = GET_PLAYER(GetCity()->getOwner()).getGreatPeopleCreated();2742#endif2743 }27442745 // Increase threshold based on how many GP have already been spawned2746 iThreshold += (/*50*/ GC.getGREAT_PERSON_THRESHOLD_INCREASE() * iNumCreated);27472748 // Game Speed mod2749 iThreshold *= GC.getGame().getGameSpeedInfo().getGreatPeoplePercent();2750 iThreshold /= 100;27512752 // Start era mod2753 iThreshold *= GC.getGame().getStartEraInfo().getGreatPeoplePercent();2754 iThreshold /= 100;27552756 return iThreshold;2757}
Calls
- CustomMods::isGLOBAL_SEPARATE_GP_COUNTERS()
- CustomMods::isGLOBAL_TRULY_FREE_GP()
- CvCity::getOwner() const
- CvCityCitizens::GetCity()
- CvEraInfo::getGreatPeoplePercent() const
- CvGame::getGameSpeedInfo() const
- CvGame::getStartEraInfo() const
- CvGameSpeedInfo::getGreatPeoplePercent() const
- CvGlobals::getGame()
- CvGlobals::getGREAT_PERSON_THRESHOLD_BASE()
- CvGlobals::getGREAT_PERSON_THRESHOLD_INCREASE()
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvPlayer::getGreatArtistsCreated(bool) const
- CvPlayer::getGreatEngineersCreated(bool) const
- CvPlayer::getGreatMerchantsCreated(bool) const
- CvPlayer::getGreatMusiciansCreated(bool) const
- CvPlayer::getGreatPeopleCreated(bool) const
- CvPlayer::getGreatScientistsCreated(bool) const
- CvPlayer::getGreatWritersCreated(bool) const
- CvPlayerAI::getPlayer(PlayerTypes)