int CvPlayerTrade::GetTradeConnectionBaseValueTimes100(const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer)
{
if (bAsOriginPlayer)
{
if (GC.getGame().GetGameTrade()->IsConnectionInternational(kTradeConnection))
{
if (eYield == YIELD_GOLD)
{
int iResult = 0;
if (!GET_PLAYER(kTradeConnection.m_eDestOwner).isMinorCiv())
{
int iBase = GC.getINTERNATIONAL_TRADE_BASE();
iResult = iBase;
}
return iResult;
}
else if (eYield == YIELD_SCIENCE)
{
int iTechDifference = GC.getGame().GetGameTrade()->GetTechDifference(kTradeConnection.m_eOriginOwner, kTradeConnection.m_eDestOwner);
int iAdjustedTechDifference = 0;
if (iTechDifference > 0)
{
int iCeilTechDifference = (int)ceil(iTechDifference / 2.0f);
iAdjustedTechDifference = max(iCeilTechDifference, 1);
}
return iAdjustedTechDifference * 100;
}
}
}
else
{
if (eYield == YIELD_SCIENCE)
{
int iTechDifference = GC.getGame().GetGameTrade()->GetTechDifference(kTradeConnection.m_eDestOwner, kTradeConnection.m_eOriginOwner);
int iAdjustedTechDifference = 0;
if (iTechDifference > 0)
{
int iCeilTechDifference = (int)ceil(iTechDifference / 2.0f);
iAdjustedTechDifference = max(iCeilTechDifference, 1);
}
return iAdjustedTechDifference * 100;
}
else
{
return 100;
}
}
return 0;
}