phungus420
Deity
- Joined
- Mar 1, 2003
- Messages
- 6,296
Spoiler :
Code:
int CvUnit::upgradePrice(UnitTypes eUnit) const
{
int iPrice;
CyArgsList argsList;
argsList.add(getOwnerINLINE());
argsList.add(getID());
argsList.add((int) eUnit);
long lResult=0;
gDLL->getPythonIFace()->callFunction(PYGameModule, "getUpgradePriceOverride", argsList.makeFunctionArgs(), &lResult);
if (lResult >= 0)
{
return lResult;
}
if (isBarbarian())
{
return 0;
}
iPrice = GC.getDefineINT("BASE_UNIT_UPGRADE_COST");
iPrice += (std::max(0, (GET_PLAYER(getOwnerINLINE()).getProductionNeeded(eUnit) - GET_PLAYER(getOwnerINLINE()).getProductionNeeded(getUnitType()))) * GC.getDefineINT("UNIT_UPGRADE_COST_PER_PRODUCTION"));
if (!isHuman() && !isBarbarian())
{
iPrice *= GC.getHandicapInfo(GC.getGameINLINE().getHandicapType()).getAIUnitUpgradePercent();
iPrice /= 100;
iPrice *= std::max(0, ((GC.getHandicapInfo(GC.getGameINLINE().getHandicapType()).getAIPerEraModifier() * GET_PLAYER(getOwnerINLINE()).getCurrentEra()) + 100));
iPrice /= 100;
}
iPrice -= (iPrice * getUpgradeDiscount()) / 100;
[B] //phungus -UnitCombatType UpgradePrice doubles
if ( GC.getUnitInfo(eUnit).getUnitCombatType() != GC.getUnitInfo(getUnitType()).getUnitCombatType() )
{
iPrice *= 2;
}
//phungus end[/B]
return iPrice;
}
Edit: Nevermind Python is overridding.