CvCityCulture::GetTourismMultiplier(PlayerTypes, bool, bool, bool, bool, bool) const
- Defined in
- CvCultureClasses.cpp, line 4613
- Class
- CvCityCulture
- Hook name
CivHooks::CvCityCulture_GetTourismMultiplier
Hooks
static bool BeforeCvCityCulture_GetTourismMultiplier(const CvCityCulture* self, PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies, int& result);static void AfterCvCityCulture_GetTourismMultiplier(const CvCityCulture* self, PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies, int& result);static int ReplaceCvCityCulture_GetTourismMultiplier(int (*original)(const CvCityCulture*, PlayerTypes, bool, bool, bool, bool, bool), const CvCityCulture* self, PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies);CivRegisterBefore<CivHooks::CvCityCulture_GetTourismMultiplier>(host, &BeforeCvCityCulture_GetTourismMultiplier);CivRegisterAfter<CivHooks::CvCityCulture_GetTourismMultiplier>(host, &AfterCvCityCulture_GetTourismMultiplier);CivRegisterReplace<CivHooks::CvCityCulture_GetTourismMultiplier>(host, &ReplaceCvCityCulture_GetTourismMultiplier);
Code
4612/// What is the tourism modifier for one player4613int CvCityCulture::GetTourismMultiplier(PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies) const4614{4615 int iMultiplier = 0;4616 CvPlayer &kPlayer = GET_PLAYER(ePlayer);4617 CvTeam &kTeam = GET_TEAM(kPlayer.getTeam());4618 CvPlayer &kCityPlayer = GET_PLAYER(m_pCity->getOwner());4619 PolicyBranchTypes eMyIdeology = kCityPlayer.GetPlayerPolicies()->GetLateGamePolicyTree();4620 PolicyBranchTypes eTheirIdeology = kPlayer.GetPlayerPolicies()->GetLateGamePolicyTree();46214622 if (!bIgnoreReligion)4623 {4624 // City shares religion with this player4625 ReligionTypes ePlayerReligion = kCityPlayer.GetReligions()->GetReligionInMostCities();4626 if (ePlayerReligion != NO_RELIGION && kPlayer.GetReligions()->HasReligionInMostCities(ePlayerReligion))4627 {4628 iMultiplier += kCityPlayer.GetCulture()->GetTourismModifierSharedReligion();4629 }4630 }46314632 if (!bIgnoreOpenBorders)4633 {4634 // Open borders with this player4635 if (kTeam.IsAllowsOpenBordersToTeam(kCityPlayer.getTeam()))4636 {4637 iMultiplier += kCityPlayer.GetCulture()->GetTourismModifierOpenBorders();4638 }4639 }46404641 if (!bIgnoreTrade)4642 {4643 // Trade route to one of this player's cities from here4644 if (GC.getGame().GetGameTrade()->IsPlayerConnectedToPlayer(m_pCity->getOwner(), ePlayer))4645 {4646 iMultiplier += kCityPlayer.GetCulture()->GetTourismModifierTradeRoute();4647 }4648 }46494650 if (!bIgnoreIdeologies)4651 {4652 if (eMyIdeology != NO_POLICY_BRANCH_TYPE && eTheirIdeology != NO_POLICY_BRANCH_TYPE && eMyIdeology != eTheirIdeology)4653 {4654 iMultiplier += GC.getTOURISM_MODIFIER_DIFFERENT_IDEOLOGIES();46554656 if (kCityPlayer.GetEspionage()->IsMyDiplomatVisitingThem(ePlayer))4657 {4658 iMultiplier += GC.getTOURISM_MODIFIER_DIPLOMAT();4659 }4660 }4661 }46624663 if (!bIgnorePolicies)4664 {4665 int iLessHappyMod = kCityPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_LESS_HAPPY);4666 if (iLessHappyMod > 0)4667 {4668 if (kCityPlayer.GetExcessHappiness() > kPlayer.GetExcessHappiness())4669 {4670 iMultiplier += iLessHappyMod;4671 }4672 }4673 int iCommonFoeMod = kCityPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_COMMON_FOE);4674 if (iCommonFoeMod > 0)4675 {4676 PlayerTypes eLoopPlayer;4677 for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)4678 {4679 eLoopPlayer = (PlayerTypes) iPlayerLoop;46804681 if(eLoopPlayer != ePlayer && eLoopPlayer != m_pCity->getOwner() && kCityPlayer.GetDiplomacyAI()->IsPlayerValid(eLoopPlayer))4682 {4683 // Are they at war with me too?4684 if (GET_TEAM(kCityPlayer.getTeam()).isAtWar(GET_PLAYER(eLoopPlayer).getTeam()) && GET_TEAM(kPlayer.getTeam()).isAtWar(GET_PLAYER(eLoopPlayer).getTeam()))4685 {4686 iMultiplier += iCommonFoeMod;4687 }4688 }4689 }4690 }4691 int iSharedIdeologyMod = kCityPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_SHARED_IDEOLOGY);4692 if (iSharedIdeologyMod > 0)4693 {4694 if (eMyIdeology != NO_POLICY_BRANCH_TYPE && eTheirIdeology != NO_POLICY_BRANCH_TYPE && eMyIdeology == eTheirIdeology)4695 {4696 iMultiplier += iSharedIdeologyMod;4697 }4698 }4699 }47004701 // LATER add top science city and research agreement with this player???47024703 return iMultiplier;4704}
Calls
- CvCity::getOwner() const
- CvDiplomacyAI::IsPlayerValid(PlayerTypes, bool)
- CvGame::GetGameTrade()
- CvGameTrade::IsPlayerConnectedToPlayer(PlayerTypes, PlayerTypes)
- CvGlobals::getGame()
- CvGlobals::getTOURISM_MODIFIER_DIFFERENT_IDEOLOGIES()
- CvGlobals::getTOURISM_MODIFIER_DIPLOMAT()
- CvPlayer::GetCulture() const
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::GetEspionage() const
- CvPlayer::GetExcessHappiness() const
- CvPlayer::GetPlayerPolicies() const
- CvPlayer::GetReligions() const
- CvPlayer::getTeam() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerCulture::GetTourismModifierOpenBorders() const
- CvPlayerCulture::GetTourismModifierSharedReligion() const
- CvPlayerCulture::GetTourismModifierTradeRoute() const
- CvPlayerEspionage::IsMyDiplomatVisitingThem(PlayerTypes, bool)
- CvPlayerPolicies::GetLateGamePolicyTree() const
- CvPlayerPolicies::GetNumericModifier(PolicyModifierType)
- CvPlayerReligions::GetReligionInMostCities() const
- CvPlayerReligions::HasReligionInMostCities(ReligionTypes) const
- CvTeam::getTeam(TeamTypes)
- CvTeam::IsAllowsOpenBordersToTeam(TeamTypes) const
- CvTeam::isAtWar(TeamTypes) const
Called by
- CvPlayerCulture::ChangeInfluenceOn(PlayerTypes, int, bool, bool)
- CvPlayerCulture::GetInfluencePerTurn(PlayerTypes) const
- CvLuaCity::lGetTourismMultiplier(lua_State *)
- CvLuaGame::lGetTradeRoute(lua_State *)
- CvLuaPlayer::lGetTradeRoutes(lua_State *)
- CvLuaPlayer::lGetTradeRoutesAvailable(lua_State *)
- CvLuaPlayer::lGetTradeRoutesToYou(lua_State *)