mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -04:00
Duantao/ai bonus (#1117)
* Ai bonus. * AI modifiers apply correctly. * AI initial units. * Use gameInfo.getDifficulty() instead of civInfo.getDifficulty(). * Minor fix.
This commit is contained in:
parent
ad07db9334
commit
38a28888ef
@ -2,96 +2,160 @@
|
|||||||
{
|
{
|
||||||
name:"Settler",
|
name:"Settler",
|
||||||
baseHappiness:15,
|
baseHappiness:15,
|
||||||
|
extraHappinessPerLuxury:1,
|
||||||
researchCostModifier:0.9,
|
researchCostModifier:0.9,
|
||||||
|
unitCostModifier:0.5,
|
||||||
|
buildingCostModifier:0.5,
|
||||||
|
policyCostModifier:0.5,
|
||||||
unhappinessModifier:0.4,
|
unhappinessModifier:0.4,
|
||||||
aiCityGrowthModifier:1.6, // that is to say it'll take them 1.6 times as long to grow the city
|
aiCityGrowthModifier:1.6, // that is to say it'll take them 1.6 times as long to grow the city
|
||||||
|
aiUnitCostModifier:1.75,
|
||||||
|
aiBuildingCostModifier:1.6,
|
||||||
|
aiWonderCostModifier:1.6,
|
||||||
|
aiBuildingMaintenanceModifier:1,
|
||||||
aiUnitMaintenanceModifier:1,
|
aiUnitMaintenanceModifier:1,
|
||||||
aiYieldModifier:0.6, // Replaces "Construction rate" and "Create rate" in original config
|
|
||||||
aiFreeTechs:[],
|
aiFreeTechs:[],
|
||||||
|
aiFreeUnits:[],
|
||||||
aiUnhappinessModifier:1,
|
aiUnhappinessModifier:1,
|
||||||
aisExchangeTechs:false
|
aisExchangeTechs:false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Chieftain",
|
name:"Chieftain",
|
||||||
baseHappiness:12,
|
baseHappiness:12,
|
||||||
|
extraHappinessPerLuxury:1,
|
||||||
researchCostModifier:0.95,
|
researchCostModifier:0.95,
|
||||||
|
unitCostModifier:0.67,
|
||||||
|
buildingCostModifier:0.67,
|
||||||
|
policyCostModifier:0.67,
|
||||||
unhappinessModifier:0.6,
|
unhappinessModifier:0.6,
|
||||||
aiCityGrowthModifier:1.3,
|
aiCityGrowthModifier:1.3,
|
||||||
|
aiUnitCostModifier:1.3,
|
||||||
|
aiBuildingCostModifier:1.3,
|
||||||
|
aiWonderCostModifier:1.3,
|
||||||
|
aiBuildingMaintenanceModifier:1,
|
||||||
aiUnitMaintenanceModifier:1,
|
aiUnitMaintenanceModifier:1,
|
||||||
aiYieldModifier:0.75,
|
|
||||||
aiFreeTechs:[],
|
aiFreeTechs:[],
|
||||||
|
aiFreeUnits:[],
|
||||||
aiUnhappinessModifier:1,
|
aiUnhappinessModifier:1,
|
||||||
aisExchangeTechs:false
|
aisExchangeTechs:false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Warlord",
|
name:"Warlord",
|
||||||
baseHappiness:12,
|
baseHappiness:12,
|
||||||
|
extraHappinessPerLuxury:0,
|
||||||
researchCostModifier:1,
|
researchCostModifier:1,
|
||||||
|
unitCostModifier:0.85,
|
||||||
|
buildingCostModifier:0.85,
|
||||||
|
policyCostModifier:0.85,
|
||||||
unhappinessModifier:0.75,
|
unhappinessModifier:0.75,
|
||||||
aiCityGrowthModifier:1.1,
|
aiCityGrowthModifier:1.1,
|
||||||
|
aiUnitCostModifier:1.1,
|
||||||
|
aiBuildingCostModifier:1.1,
|
||||||
|
aiWonderCostModifier:1.1,
|
||||||
|
aiBuildingMaintenanceModifier:1,
|
||||||
aiUnitMaintenanceModifier:1,
|
aiUnitMaintenanceModifier:1,
|
||||||
aiYieldModifier:0.9,
|
|
||||||
aiFreeTechs:[],
|
aiFreeTechs:[],
|
||||||
|
aiFreeUnits:[],
|
||||||
aiUnhappinessModifier:1,
|
aiUnhappinessModifier:1,
|
||||||
aisExchangeTechs:false
|
aisExchangeTechs:false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Prince",
|
name:"Prince",
|
||||||
baseHappiness:9,
|
baseHappiness:9,
|
||||||
|
extraHappinessPerLuxury:0,
|
||||||
researchCostModifier:1,
|
researchCostModifier:1,
|
||||||
|
unitCostModifier:1,
|
||||||
|
buildingCostModifier:1,
|
||||||
|
policyCostModifier:1,
|
||||||
unhappinessModifier:1,
|
unhappinessModifier:1,
|
||||||
aiCityGrowthModifier:1,
|
aiCityGrowthModifier:1,
|
||||||
|
aiUnitCostModifier:1,
|
||||||
|
aiBuildingCostModifier:1,
|
||||||
|
aiWonderCostModifier:1,
|
||||||
|
aiBuildingMaintenanceModifier:1,
|
||||||
aiUnitMaintenanceModifier:0.85,
|
aiUnitMaintenanceModifier:0.85,
|
||||||
aiYieldModifier:1,
|
|
||||||
aiFreeTechs:[],
|
aiFreeTechs:[],
|
||||||
|
aiFreeUnits:[],
|
||||||
aiUnhappinessModifier:1,
|
aiUnhappinessModifier:1,
|
||||||
aisExchangeTechs:true
|
aisExchangeTechs:true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"King",
|
name:"King",
|
||||||
baseHappiness:9,
|
baseHappiness:9,
|
||||||
researchCostModifier:1.1,
|
extraHappinessPerLuxury:0,
|
||||||
|
researchCostModifier:1,
|
||||||
|
unitCostModifier:1,
|
||||||
|
buildingCostModifier:1,
|
||||||
|
policyCostModifier:1,
|
||||||
unhappinessModifier:1,
|
unhappinessModifier:1,
|
||||||
aiCityGrowthModifier:0.9,
|
aiCityGrowthModifier:0.9,
|
||||||
|
aiUnitCostModifier:0.85,
|
||||||
|
aiBuildingCostModifier:0.85,
|
||||||
|
aiWonderCostModifier:1,
|
||||||
|
aiBuildingMaintenanceModifier:0.85,
|
||||||
aiUnitMaintenanceModifier:0.8,
|
aiUnitMaintenanceModifier:0.8,
|
||||||
aiYieldModifier:1.15,
|
|
||||||
aiFreeTechs:["Pottery"],
|
aiFreeTechs:["Pottery"],
|
||||||
|
aiFreeUnits:["Warrior"],
|
||||||
aiUnhappinessModifier:0.9,
|
aiUnhappinessModifier:0.9,
|
||||||
aisExchangeTechs:true
|
aisExchangeTechs:true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Emperor",
|
name:"Emperor",
|
||||||
baseHappiness:9,
|
baseHappiness:9,
|
||||||
researchCostModifier:1.2,
|
extraHappinessPerLuxury:0,
|
||||||
|
researchCostModifier:1,
|
||||||
|
unitCostModifier:1,
|
||||||
|
buildingCostModifier:1,
|
||||||
|
policyCostModifier:1,
|
||||||
unhappinessModifier:1,
|
unhappinessModifier:1,
|
||||||
aiCityGrowthModifier:0.85,
|
aiCityGrowthModifier:0.85,
|
||||||
|
aiUnitCostModifier:0.8,
|
||||||
|
aiBuildingCostModifier:0.8,
|
||||||
|
aiWonderCostModifier:1,
|
||||||
|
aiBuildingMaintenanceModifier:0.8,
|
||||||
aiUnitMaintenanceModifier:0.75,
|
aiUnitMaintenanceModifier:0.75,
|
||||||
aiYieldModifier:1.25,
|
|
||||||
aiFreeTechs:["Pottery","Animal Husbandry"],
|
aiFreeTechs:["Pottery","Animal Husbandry"],
|
||||||
|
aiFreeUnits:["Warrior", "Scout"],
|
||||||
aiUnhappinessModifier:0.85,
|
aiUnhappinessModifier:0.85,
|
||||||
aisExchangeTechs:true
|
aisExchangeTechs:true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Immortal",
|
name:"Immortal",
|
||||||
baseHappiness:9,
|
baseHappiness:9,
|
||||||
researchCostModifier:1.3,
|
extraHappinessPerLuxury:0,
|
||||||
|
researchCostModifier:1,
|
||||||
|
unitCostModifier:1,
|
||||||
|
buildingCostModifier:1,
|
||||||
|
policyCostModifier:1,
|
||||||
unhappinessModifier:1,
|
unhappinessModifier:1,
|
||||||
aiCityGrowthModifier:0.75,
|
aiCityGrowthModifier:0.75,
|
||||||
|
aiUnitCostModifier:0.65,
|
||||||
|
aiBuildingCostModifier:0.65,
|
||||||
|
aiWonderCostModifier:1,
|
||||||
|
aiBuildingMaintenanceModifier:0.65,
|
||||||
aiUnitMaintenanceModifier:0.65,
|
aiUnitMaintenanceModifier:0.65,
|
||||||
aiYieldModifier:1.5,
|
|
||||||
aiFreeTechs:["Pottery","Animal Husbandry","Mining"],
|
aiFreeTechs:["Pottery","Animal Husbandry","Mining"],
|
||||||
|
aiFreeUnits:["Warrior", "Warrior", "Worker", "Scout"],
|
||||||
aiUnhappinessModifier:0.75,
|
aiUnhappinessModifier:0.75,
|
||||||
aisExchangeTechs:true
|
aisExchangeTechs:true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Deity",
|
name:"Deity",
|
||||||
baseHappiness:9,
|
baseHappiness:9,
|
||||||
researchCostModifier:1.5,
|
extraHappinessPerLuxury:0,
|
||||||
|
researchCostModifier:1,
|
||||||
|
unitCostModifier:1,
|
||||||
|
buildingCostModifier:1,
|
||||||
|
policyCostModifier:1,
|
||||||
unhappinessModifier:1,
|
unhappinessModifier:1,
|
||||||
aiCityGrowthModifier:0.6,
|
aiCityGrowthModifier:0.6,
|
||||||
|
aiUnitCostModifier:0.5,
|
||||||
|
aiBuildingCostModifier:0.5,
|
||||||
|
aiWonderCostModifier:1,
|
||||||
|
aiBuildingMaintenanceModifier:0.5,
|
||||||
aiUnitMaintenanceModifier:0.5,
|
aiUnitMaintenanceModifier:0.5,
|
||||||
aiYieldModifier:2,
|
|
||||||
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"],
|
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"],
|
||||||
|
aiFreeUnits:["Settler", "Warrior", "Warrior", "Worker", "Worker", "Scout"],
|
||||||
aiUnhappinessModifier:0.6,
|
aiUnhappinessModifier:0.6,
|
||||||
aisExchangeTechs:true
|
aisExchangeTechs:true
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,12 @@ class GameStarter{
|
|||||||
civ.placeUnitNearTile(startingLocation.position, Constants.settler)
|
civ.placeUnitNearTile(startingLocation.position, Constants.settler)
|
||||||
civ.placeUnitNearTile(startingLocation.position, "Warrior")
|
civ.placeUnitNearTile(startingLocation.position, "Warrior")
|
||||||
civ.placeUnitNearTile(startingLocation.position, "Scout")
|
civ.placeUnitNearTile(startingLocation.position, "Scout")
|
||||||
|
|
||||||
|
if (!civ.isPlayerCivilization()) {
|
||||||
|
for (unit in gameInfo.getDifficulty().aiFreeUnits) {
|
||||||
|
civ.placeUnitNearTile(startingLocation.position, unit)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return gameInfo
|
return gameInfo
|
||||||
|
@ -59,9 +59,10 @@ class CityConstructions {
|
|||||||
|
|
||||||
fun getCityProductionTextForCityButton(): String {
|
fun getCityProductionTextForCityButton(): String {
|
||||||
val currentConstructionSnapshot = currentConstruction // See below
|
val currentConstructionSnapshot = currentConstruction // See below
|
||||||
var result = currentConstructionSnapshot .tr()
|
var result = currentConstructionSnapshot.tr()
|
||||||
if (currentConstructionSnapshot!=""
|
if (currentConstructionSnapshot!=""
|
||||||
&& SpecialConstruction.getSpecialConstructions().none { it.name==currentConstructionSnapshot })
|
&& SpecialConstruction.getSpecialConstructions().none { it.name==currentConstructionSnapshot })
|
||||||
|
result += ("\r\nCost " + getConstruction(currentConstruction).getProductionCost(cityInfo.civInfo).toString()).tr()
|
||||||
result += "\r\n" + turnsToConstruction(currentConstructionSnapshot ) + " {turns}".tr()
|
result += "\r\n" + turnsToConstruction(currentConstructionSnapshot ) + " {turns}".tr()
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
@ -107,22 +107,6 @@ class CityStats {
|
|||||||
return stats
|
return stats
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getStatPercentBonusesFromDifficulty(): Stats {
|
|
||||||
val stats = Stats()
|
|
||||||
|
|
||||||
val civ = cityInfo.civInfo
|
|
||||||
if (!civ.isPlayerCivilization()) {
|
|
||||||
val modifier = civ.gameInfo.getCurrentPlayerCivilization().getDifficulty().aiYieldModifier
|
|
||||||
stats.production += modifier
|
|
||||||
stats.science += modifier
|
|
||||||
stats.food += modifier
|
|
||||||
stats.gold += modifier
|
|
||||||
stats.culture += modifier
|
|
||||||
}
|
|
||||||
|
|
||||||
return stats
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getStatsFromNationUnique(): Stats {
|
private fun getStatsFromNationUnique(): Stats {
|
||||||
val stats = Stats()
|
val stats = Stats()
|
||||||
|
|
||||||
@ -392,7 +376,6 @@ class CityStats {
|
|||||||
newStatPercentBonusList["Railroad"]=getStatPercentBonusesFromRailroad()
|
newStatPercentBonusList["Railroad"]=getStatPercentBonusesFromRailroad()
|
||||||
newStatPercentBonusList["Marble"]=getStatPercentBonusesFromMarble()
|
newStatPercentBonusList["Marble"]=getStatPercentBonusesFromMarble()
|
||||||
newStatPercentBonusList["Computers"]=getStatPercentBonusesFromComputers()
|
newStatPercentBonusList["Computers"]=getStatPercentBonusesFromComputers()
|
||||||
newStatPercentBonusList["Difficulty"]=getStatPercentBonusesFromDifficulty()
|
|
||||||
newStatPercentBonusList["National ability"]=getStatPercentBonusesFromNationUnique()
|
newStatPercentBonusList["National ability"]=getStatPercentBonusesFromNationUnique()
|
||||||
newStatPercentBonusList["Puppet City"]=getStatPercentBonusesFromPuppetCity()
|
newStatPercentBonusList["Puppet City"]=getStatPercentBonusesFromPuppetCity()
|
||||||
|
|
||||||
@ -470,8 +453,11 @@ class CityStats {
|
|||||||
newFinalStatList["Policies"]!!.food += foodFromGrowthBonuses
|
newFinalStatList["Policies"]!!.food += foodFromGrowthBonuses
|
||||||
|
|
||||||
// Same here - will have a different UI display.
|
// Same here - will have a different UI display.
|
||||||
val buildingsMaintenance = cityInfo.cityConstructions.getMaintenanceCosts() // this is AFTER the bonus calculation!
|
var buildingsMaintenance = cityInfo.cityConstructions.getMaintenanceCosts().toFloat() // this is AFTER the bonus calculation!
|
||||||
newFinalStatList["Maintenance"] = Stats().apply { gold -= buildingsMaintenance }
|
if (!cityInfo.civInfo.isPlayerCivilization()) {
|
||||||
|
buildingsMaintenance *= cityInfo.civInfo.gameInfo.getDifficulty().aiBuildingMaintenanceModifier
|
||||||
|
}
|
||||||
|
newFinalStatList["Maintenance"] = Stats().apply { gold -= buildingsMaintenance.toInt() }
|
||||||
|
|
||||||
if (cityInfo.resistanceCounter > 0)
|
if (cityInfo.resistanceCounter > 0)
|
||||||
newFinalStatList.clear() // NOPE
|
newFinalStatList.clear() // NOPE
|
||||||
|
@ -101,7 +101,7 @@ class CivInfoStats(val civInfo: CivilizationInfo){
|
|||||||
val statMap = HashMap<String, Float>()
|
val statMap = HashMap<String, Float>()
|
||||||
statMap["Base happiness"] = civInfo.getDifficulty().baseHappiness.toFloat()
|
statMap["Base happiness"] = civInfo.getDifficulty().baseHappiness.toFloat()
|
||||||
|
|
||||||
var happinessPerUniqueLuxury = 5f
|
var happinessPerUniqueLuxury = 5f + civInfo.getDifficulty().extraHappinessPerLuxury
|
||||||
if (civInfo.policies.isAdopted("Protectionism")) happinessPerUniqueLuxury += 1
|
if (civInfo.policies.isAdopted("Protectionism")) happinessPerUniqueLuxury += 1
|
||||||
statMap["Luxury resources"]= civInfo.getCivResources().map { it.resource }
|
statMap["Luxury resources"]= civInfo.getCivResources().map { it.resource }
|
||||||
.count { it.resourceType === ResourceType.Luxury } * happinessPerUniqueLuxury
|
.count { it.resourceType === ResourceType.Luxury } * happinessPerUniqueLuxury
|
||||||
|
@ -31,6 +31,8 @@ class PolicyManager {
|
|||||||
if (isAdopted("Piety Complete")) policyCultureCost *= 0.9
|
if (isAdopted("Piety Complete")) policyCultureCost *= 0.9
|
||||||
if (civInfo.containsBuildingUnique("Culture cost of adopting new Policies reduced by 10%"))
|
if (civInfo.containsBuildingUnique("Culture cost of adopting new Policies reduced by 10%"))
|
||||||
policyCultureCost *= 0.9
|
policyCultureCost *= 0.9
|
||||||
|
if (civInfo.isPlayerCivilization())
|
||||||
|
policyCultureCost *= civInfo.getDifficulty().policyCostModifier
|
||||||
policyCultureCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
policyCultureCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
||||||
val cost: Int = (policyCultureCost * (1 + cityModifier)).roundToInt()
|
val cost: Int = (policyCultureCost * (1 + cityModifier)).roundToInt()
|
||||||
return cost - (cost % 5)
|
return cost - (cost % 5)
|
||||||
|
@ -42,7 +42,8 @@ class TechManager {
|
|||||||
|
|
||||||
fun costOfTech(techName: String): Int {
|
fun costOfTech(techName: String): Int {
|
||||||
var techCost = GameBasics.Technologies[techName]!!.cost.toFloat()
|
var techCost = GameBasics.Technologies[techName]!!.cost.toFloat()
|
||||||
techCost *= civInfo.getDifficulty().researchCostModifier
|
if (civInfo.isPlayerCivilization())
|
||||||
|
techCost *= civInfo.getDifficulty().researchCostModifier
|
||||||
techCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
techCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
||||||
techCost *= 1 + (civInfo.cities.size -1 ) * 0.02f // each city increases tech cost by 2%, as per https://civilization.fandom.com/wiki/Science_(Civ5)
|
techCost *= 1 + (civInfo.cities.size -1 ) * 0.02f // each city increases tech cost by 2%, as per https://civilization.fandom.com/wiki/Science_(Civ5)
|
||||||
return techCost.toInt()
|
return techCost.toInt()
|
||||||
|
@ -192,6 +192,17 @@ class Building : NamedStats(), IConstruction{
|
|||||||
var productionCost = cost.toFloat()
|
var productionCost = cost.toFloat()
|
||||||
if (!isWonder && culture != 0f && civInfo.policies.isAdopted("Piety"))
|
if (!isWonder && culture != 0f && civInfo.policies.isAdopted("Piety"))
|
||||||
productionCost *= 0.85f
|
productionCost *= 0.85f
|
||||||
|
if (civInfo.isPlayerCivilization()) {
|
||||||
|
if(!isWonder) {
|
||||||
|
productionCost *= civInfo.getDifficulty().buildingCostModifier
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(isWonder) {
|
||||||
|
productionCost *= civInfo.gameInfo.getDifficulty().aiWonderCostModifier
|
||||||
|
} else {
|
||||||
|
productionCost *= civInfo.gameInfo.getDifficulty().aiBuildingCostModifier
|
||||||
|
}
|
||||||
|
}
|
||||||
productionCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
productionCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
||||||
return productionCost.toInt()
|
return productionCost.toInt()
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,20 @@ import java.util.*
|
|||||||
class Difficulty: INamed {
|
class Difficulty: INamed {
|
||||||
override lateinit var name: String
|
override lateinit var name: String
|
||||||
var baseHappiness: Int = 0
|
var baseHappiness: Int = 0
|
||||||
|
var extraHappinessPerLuxury: Float = 0f
|
||||||
var researchCostModifier:Float = 1f
|
var researchCostModifier:Float = 1f
|
||||||
var unhappinessModifier = 1f
|
var unitCostModifier:Float = 1f
|
||||||
var aiCityGrowthModifier = 1f
|
var buildingCostModifier:Float = 1f
|
||||||
|
var policyCostModifier:Float = 1f
|
||||||
|
var unhappinessModifier:Float = 1f
|
||||||
|
var aiCityGrowthModifier:Float = 1f
|
||||||
|
var aiUnitCostModifier:Float = 1f
|
||||||
|
var aiBuildingCostModifier:Float = 1f
|
||||||
|
var aiWonderCostModifier:Float = 1f
|
||||||
|
var aiBuildingMaintenanceModifier:Float = 1f
|
||||||
var aiUnitMaintenanceModifier = 1f
|
var aiUnitMaintenanceModifier = 1f
|
||||||
var aiYieldModifier = 1f
|
|
||||||
var aiFreeTechs = ArrayList<String>()
|
var aiFreeTechs = ArrayList<String>()
|
||||||
|
var aiFreeUnits = ArrayList<String>()
|
||||||
var aiUnhappinessModifier = 1f
|
var aiUnhappinessModifier = 1f
|
||||||
var aisExchangeTechs = false
|
var aisExchangeTechs = false
|
||||||
}
|
}
|
@ -99,6 +99,10 @@ class BaseUnit : INamed, IConstruction, ICivilopedia {
|
|||||||
|
|
||||||
override fun getProductionCost(civInfo: CivilizationInfo): Int {
|
override fun getProductionCost(civInfo: CivilizationInfo): Int {
|
||||||
var productionCost = cost.toFloat()
|
var productionCost = cost.toFloat()
|
||||||
|
if (civInfo.isPlayerCivilization())
|
||||||
|
productionCost *= civInfo.getDifficulty().unitCostModifier
|
||||||
|
else
|
||||||
|
productionCost *= civInfo.gameInfo.getDifficulty().aiUnitCostModifier
|
||||||
productionCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
productionCost *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier()
|
||||||
return productionCost.toInt()
|
return productionCost.toInt()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user