CvCity::getHappinessModifier(YieldTypes) const
- Defined in
- CvCity.cpp, line 10557
- Class
- CvCity
- Hook name
CivHooks::CvCity_getHappinessModifier
Hooks
static bool BeforeCvCity_getHappinessModifier(const CvCity* self, YieldTypes eIndex, int& result);static void AfterCvCity_getHappinessModifier(const CvCity* self, YieldTypes eIndex, int& result);static int ReplaceCvCity_getHappinessModifier(int (*original)(const CvCity*, YieldTypes), const CvCity* self, YieldTypes eIndex);CivRegisterBefore<CivHooks::CvCity_getHappinessModifier>(host, &BeforeCvCity_getHappinessModifier);CivRegisterAfter<CivHooks::CvCity_getHappinessModifier>(host, &AfterCvCity_getHappinessModifier);CivRegisterReplace<CivHooks::CvCity_getHappinessModifier>(host, &ReplaceCvCity_getHappinessModifier);
Code
10557int CvCity::getHappinessModifier(YieldTypes eIndex) const10558{10559 VALIDATE_OBJECT10560 int iModifier = 0;10561 CvPlayer &kPlayer = GET_PLAYER(getOwner());1056210563 if (kPlayer.IsEmpireUnhappy())10564 {10565 int iUnhappy = -1 * kPlayer.GetExcessHappiness();1056610567 // Production and Gold slow down when Empire is Unhappy10568 if(eIndex == YIELD_PRODUCTION)10569 {10570 iModifier = iUnhappy * GC.getVERY_UNHAPPY_PRODUCTION_PENALTY_PER_UNHAPPY();10571 iModifier = max (iModifier, GC.getVERY_UNHAPPY_MAX_PRODUCTION_PENALTY());10572 }10573 else if (eIndex == YIELD_GOLD)10574 {10575 iModifier = iUnhappy * GC.getVERY_UNHAPPY_GOLD_PENALTY_PER_UNHAPPY();10576 iModifier = max (iModifier, GC.getVERY_UNHAPPY_MAX_GOLD_PENALTY());10577 }10578 }1057910580 return iModifier;10581}
Calls
- CvCity::getOwner() const
- CvGlobals::getVERY_UNHAPPY_GOLD_PENALTY_PER_UNHAPPY()
- CvGlobals::getVERY_UNHAPPY_MAX_GOLD_PENALTY()
- CvGlobals::getVERY_UNHAPPY_MAX_PRODUCTION_PENALTY()
- CvGlobals::getVERY_UNHAPPY_PRODUCTION_PENALTY_PER_UNHAPPY()
- CvPlayer::GetExcessHappiness() const
- CvPlayer::IsEmpireUnhappy() const
- CvPlayerAI::getPlayer(PlayerTypes)
std::max