As far as I can tell the function reqPirateCove(pCaster), no longer exists in the mod folder.
It's there. All python spell stuff can be found in CvSpellInterface.py
As far as I can tell the function reqPirateCove(pCaster), no longer exists in the mod folder.
Now that the AI is placing its second city further away from the capital what is happening is that the closest AI will tend to place its second city right next to the human capital if it's a good spot.
Their economies seemed to be dragged down by overbuilding low level troops but I didn't check carefully what they were doing.
One comment on game balance; I did find that the Tsunami spell seemed too powerful and overwhelming for both naval and coastal battles.
like giving me iron for sheep
Quote:
I suspect it's related to poor tech choices, which I'm hoping to fix for the next version.Originally Posted by UncleJJ
Their economies seemed to be dragged down by overbuilding low level troops but I didn't check carefully what they were doing.
int iMaxSettlers = 0;
// ALN DuneWars Nextline...
// if (!bFinancialTrouble)
// don't allow AI to burry it's economy early on
if (!kPlayer.AI_isFinancialTrouble(60, /* bIgnoreWarPlans */true))
{
iMaxSettlers= std::min((kPlayer.getNumCities() + 3) / 4, iNumAreaCitySites + iNumWaterAreaCitySites);
if (bLandWar || bAssault)
{
iMaxSettlers = (iMaxSettlers + 2) / 3;
}
}
// ALN DuneWars Start
bool CvPlayerAI::AI_isFinancialTrouble() const
{
return AI_isFinancialTrouble(40, false);
}
// ALN DuneWars End
// XXX
// ALN DuneWars NextLine...
bool CvPlayerAI::AI_isFinancialTrouble(int iSafePercent, bool bIgnoreWarplans) const
{
//if (getCommercePercent(COMMERCE_GOLD) > 50)
{
int iNetCommerce = 1 + getCommerceRate(COMMERCE_GOLD) + getCommerceRate(COMMERCE_RESEARCH) + std::max(0, getGoldPerTurn());
int iNetExpenses = calculateInflatedCosts() + std::max(0, -getGoldPerTurn());
int iFundedPercent = (100 * (iNetCommerce - iNetExpenses)) / std::max(1, iNetCommerce);
// ALN DuneWars NextLine...
// int iSafePercent = 40;
if (AI_avoidScience())
{
iSafePercent -= 8;
}
// ALN DuneWars NextLine...
// if (GET_TEAM(getTeam()).getAnyWarPlanCount(true))
if (!bIgnoreWarplans && GET_TEAM(getTeam()).getAnyWarPlanCount(true))
{
iSafePercent -= 12;
}
if (isCurrentResearchRepeat())
{
iSafePercent -= 10;
}
if (iFundedPercent < iSafePercent)
{
return true;
}
}
return false;
}
int CvPlayerAI::AI_getFundedPercent() const
{
if( isBarbarian() )
{
return 100;
}
int iNetCommerce = 1 + getCommerceRate(COMMERCE_GOLD) + getCommerceRate(COMMERCE_RESEARCH) + std::max(0, getGoldPerTurn());
int iNetExpenses = calculateInflatedCosts() + std::max(0, -getGoldPerTurn());
int iFundedPercent = (100 * (iNetCommerce - iNetExpenses)) / std::max(1, iNetCommerce);
return iFundedPercent;
}
if (AI_isFinancialTrouble(70, true))
{
int iMultiplier = (100 - AI_getFundedPercent()) / 2;
iBuildingValue += (-kLoopBuilding.getMaintenanceModifier()) * iMultiplier;
iBuildingValue += kLoopBuilding.getYieldModifier(YIELD_COMMERCE) * iMultiplier/2;
iBuildingValue += kLoopBuilding.getCommerceModifier(COMMERCE_GOLD) * iMultiplier;
}
// if (bFinancialTrouble)
// {
// iBuildingValue += (-kLoopBuilding.getMaintenanceModifier()) * 15;
// iBuildingValue += kLoopBuilding.getYieldModifier(YIELD_COMMERCE) * 8;
// iBuildingValue += kLoopBuilding.getCommerceModifier(COMMERCE_GOLD) * 15;
// }
// ALN DuneWars - prioritize tribunals etc. when available
if (kPlayer.AI_isFinancialTrouble(60) && !bDanger && !(bLandWar && iWarSuccessRatio < -30))
{
if (AI_chooseBuilding(BUILDINGFOCUS_MAINTENANCE | BUILDINGFOCUS_GOLD), MAX_INT, 3*iWarTroubleThreshold)
{
if( gCityLogLevel >= 2 ) logBBAI(" City %S uses choose BUILDINGFOCUS_PRODUCTION 1", getName().GetCString());
return;
}
}
Ok, WTH is this? I've reloaded autosave where I've completed divination tower and picked my tech, but instead of a tech I've got message "txt_key_cheaters_never_prosper".
/************************************************************************************************/
/* UNOFFICIAL_PATCH 12/07/09 EmperorFool */
/* */
/* Bugfix */
/************************************************************************************************/
// Free Tech Popup Fix
if (widgetDataStruct.m_iData2 > 0)
{
CvPlayer& kPlayer = GET_PLAYER(GC.getGameINLINE().getActivePlayer());
if (!kPlayer.isChoosingFreeTech())
{
gDLL->getInterfaceIFace()->addMessage(GC.getGameINLINE().getActivePlayer(), true, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_CHEATERS_NEVER_PROSPER"), NULL, MESSAGE_TYPE_MAJOR_EVENT);
return;
}
else
{
kPlayer.setChoosingFreeTech(false);
}
}
/************************************************************************************************/
/* UNOFFICIAL_PATCH END */
/************************************************************************************************/
Playing at Immortal on a Highlands map, Thessa made one of the typical AI "in your face" aggressive city plants (first ring for me, third or fourth for her). The city has a bunch of grassland forests and an unimproved rice. A few turns after planting, the city had grown to size 2, then within a dozen or so turns it was at size 4! Does the AI have some outrageous food/growth cheats, or is this a bug?
Ran into a bug playing as malakim: if you cast revelation when barbarian or hidden nationality ships are in range, a blockade will be placed from the ships current position, with no way to lift it.
Good catch! I can have that fixed in the next release. Thanks for the report!
I really didn't mean to go into so much detail when I started this post, but I'm hoping it'll be helpful if you've got the same problem. I've got the AI's no longer tanking their economies early like they were before in my test games. Before, playing on monarch, no tech-trading, I almost never had AI's anywhere near my tech lead by the mid game, now the top AI's are consistently a little ahead of me even on good starts.
In my current game playing as the Doviello I was the first to research Mercantilism. I received two Great Merchants rather than the normal one.
That's odd. Do you happen to have a save game from right before you finished the research?