CvPlayer::getProductionModifier(UnitTypes, CvString *) const
- Defined in
- CvPlayer.cpp, line 8838
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_getProductionModifier_with_UnitTypes_CvString_const
Hooks
static bool BeforeCvPlayer_getProductionModifier_with_UnitTypes_CvString_const(const CvPlayer* self, UnitTypes eUnit, CvString* toolTipSink, int& result);static void AfterCvPlayer_getProductionModifier_with_UnitTypes_CvString_const(const CvPlayer* self, UnitTypes eUnit, CvString* toolTipSink, int& result);static int ReplaceCvPlayer_getProductionModifier_with_UnitTypes_CvString_const(int (*original)(const CvPlayer*, UnitTypes, CvString*), const CvPlayer* self, UnitTypes eUnit, CvString* toolTipSink);CivRegisterBefore<CivHooks::CvPlayer_getProductionModifier_with_UnitTypes_CvString_const>(host, &BeforeCvPlayer_getProductionModifier_with_UnitTypes_CvString_const);CivRegisterAfter<CivHooks::CvPlayer_getProductionModifier_with_UnitTypes_CvString_const>(host, &AfterCvPlayer_getProductionModifier_with_UnitTypes_CvString_const);CivRegisterReplace<CivHooks::CvPlayer_getProductionModifier_with_UnitTypes_CvString_const>(host, &ReplaceCvPlayer_getProductionModifier_with_UnitTypes_CvString_const);
Code
8838int CvPlayer::getProductionModifier(UnitTypes eUnit, CvString* toolTipSink) const8839{8840 int iMultiplier = getProductionModifier(toolTipSink);8841 int iTempMod;88428843 CvUnitEntry* pUnitEntry = GC.getUnitInfo(eUnit);88448845 if(pUnitEntry)8846 {8847 // Military bonus8848 if(pUnitEntry->IsMilitaryProduction())8849 {8850 iTempMod = getMilitaryProductionModifier();8851 iMultiplier += iTempMod;8852 GC.getGame().BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_MILITARY_PLAYER", iTempMod);8853 }88548855 // Settler bonus8856 if(pUnitEntry->IsFound())8857 {8858 iTempMod = getSettlerProductionModifier();8859 iMultiplier += iTempMod;8860 GC.getGame().BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_SETTLER_PLAYER", iTempMod);8861 }88628863 // Unit Combat class bonus8864 if(pUnitEntry->GetUnitCombatType() != NO_UNITCOMBAT)8865 {8866 iTempMod = getUnitCombatProductionModifiers((UnitCombatTypes) pUnitEntry->GetUnitCombatType());8867 iMultiplier += iTempMod;8868 GC.getGame().BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_UNIT_COBMAT_CLASS_PLAYER", iTempMod);8869 }88708871 // Trait bonus8872 int iNumTraits = GC.getNumTraitInfos();8873 CvPlayerTraits* pPlayerTraits = GetPlayerTraits();8874 for(int iI = 0; iI < iNumTraits; iI++)8875 {8876 if(pPlayerTraits->HasTrait((TraitTypes)iI))8877 {8878 iMultiplier += pUnitEntry->GetProductionTraits(iI);88798880 if(pUnitEntry->GetSpecialUnitType() != NO_SPECIALUNIT)8881 {8882 CvSpecialUnitInfo* pkSpecialUnitInfo = GC.getSpecialUnitInfo((SpecialUnitTypes) pUnitEntry->GetSpecialUnitType());8883 if(pkSpecialUnitInfo)8884 {8885 iTempMod = pkSpecialUnitInfo->getProductionTraits(iI);8886 iMultiplier += iTempMod;8887 GC.getGame().BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_UNIT_TRAIT", iTempMod);8888 }8889 }8890 }8891 }8892 }88938894 return iMultiplier;8895}
Calls
- CvGame::BuildProdModHelpText(CvString *, const char *, int, const char *) const
- CvGlobals::getGame()
- CvGlobals::getNumTraitInfos()
- CvGlobals::getSpecialUnitInfo(SpecialUnitTypes)
- CvGlobals::getUnitInfo(UnitTypes)
- CvPlayer::getMilitaryProductionModifier() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::getProductionModifier(CvString *) const
- CvPlayer::getSettlerProductionModifier() const
- CvPlayer::getUnitCombatProductionModifiers(UnitCombatTypes) const
- CvPlayerTraits::HasTrait(TraitTypes) const
- CvSpecialUnitInfo::getProductionTraits(int) const
- CvUnitEntry::GetProductionTraits(int) const
- CvUnitEntry::GetSpecialUnitType() const
- CvUnitEntry::GetUnitCombatType() const
- CvUnitEntry::IsFound() const
- CvUnitEntry::IsMilitaryProduction() const