CvUnit::workRate(bool, BuildTypes) const
- Defined in
- CvUnit.cpp, line 11785
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_workRate
Hooks
static bool BeforeCvUnit_workRate(const CvUnit* self, bool bMax, BuildTypes arg1, int& result);static void AfterCvUnit_workRate(const CvUnit* self, bool bMax, BuildTypes arg1, int& result);static int ReplaceCvUnit_workRate(int (*original)(const CvUnit*, bool, BuildTypes), const CvUnit* self, bool bMax, BuildTypes arg1);CivRegisterBefore<CivHooks::CvUnit_workRate>(host, &BeforeCvUnit_workRate);CivRegisterAfter<CivHooks::CvUnit_workRate>(host, &AfterCvUnit_workRate);CivRegisterReplace<CivHooks::CvUnit_workRate>(host, &ReplaceCvUnit_workRate);
Code
11785int CvUnit::workRate(bool bMax, BuildTypes /*eBuild*/) const11786{11787 VALIDATE_OBJECT11788 int iRate;1178911790 if(!bMax)11791 {11792 if(!canMove())11793 {11794 return 0;11795 }11796 }1179711798 iRate = m_pUnitInfo->GetWorkRate();1179911800 CvPlayerAI& kPlayer = GET_PLAYER(getOwner());1180111802 iRate *= std::max(0, (kPlayer.getWorkerSpeedModifier() + kPlayer.GetPlayerTraits()->GetWorkerSpeedModifier() + 100));11803 iRate /= 100;1180411805 if(!kPlayer.isHuman() && !kPlayer.IsAITeammateOfHuman() && !kPlayer.isBarbarian())11806 {11807 iRate *= std::max(0, (GC.getGame().getHandicapInfo().getAIWorkRateModifier() + 100));11808 iRate /= 100;11809 }1181011811 return iRate;11812}
Calls
- CvGame::getHandicapInfo() const
- CvGlobals::getGame()
- CvHandicapInfo::getAIWorkRateModifier() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::getWorkerSpeedModifier() const
- CvPlayer::IsAITeammateOfHuman() const
- CvPlayer::isBarbarian() const
- CvPlayer::isHuman() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTraits::GetWorkerSpeedModifier() const
- CvUnit::canMove() const
- CvUnit::getOwner() const
- CvUnitEntry::GetWorkRate() const
std::max