int CvUnit::AFMTrainCannonFodderCost(int iChangeCost) const
{
int iGameTurn = GC.getGameINLINE().getGameTurn();
int iHalfGameTurn = std::max(1, (iGameTurn / 2));
int iCostGold = iHalfGameTurn;
int iEraPercent = GC.getEraInfo(GET_PLAYER(getOwnerINLINE()).getCurrentEra()).getStartPercent();
int iUnitExp = std::max(1, (getExperience() / 2));
int iAllGold = 0;
int iAllPlayer = 0;
for (int i = 0; i < MAX_CIV_PLAYERS; i++)
{
if (GET_PLAYER((PlayerTypes)i).isAlive())
{
iAllGold += GET_PLAYER((PlayerTypes)i).getGold();
iAllPlayer++;
}
}
iAllGold -= iChangeCost;
iAllGold = std::max(1, (iAllGold / iAllPlayer));
iCostGold = iAllGold * iCostGold * iUnitExp;
iCostGold = iCostGold - (iCostGold * iEraPercent) / 100;
iCostGold /= 100;
iCostGold = iCostGold > iHalfGameTurn ? iCostGold : iHalfGameTurn;
return iCostGold;
}
昨晚用贵族hi了半晚的计算公式了,但还是不行,前期(样子好的时候几只),中期都可以接受(够钱点一到两只),主要是中后期,太贵了。。。,而且中后期人海战术,钱不是留升单位就是留扣科技。
准备测试和单位的所需生产锤子挂勾(同时包含了游戏速度,省了再另计),让全部玩家的钱成为配角并且和时代的减成挂勾。 |