Difficulty affects all AI yields now, which should widen the difficulty range - easy difficulties are now easier, and hard ones are harder

This commit is contained in:
Yair Morgenstern 2018-12-03 09:57:27 +02:00
parent 24b27a791f
commit 4f0f163c00
7 changed files with 40 additions and 27 deletions

View File

@ -5,8 +5,8 @@
researchCostModifier:0.9, researchCostModifier:0.9,
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
aiUnitMaintainanceModifier:1, aiUnitMaintenanceModifier:1,
aiConstructionModifier:0.6, // Replaces "Construction rate" and "Create rate" in original config aiYieldModifier:0.6, // Replaces "Construction rate" and "Create rate" in original config
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1
}, },
@ -16,8 +16,8 @@
researchCostModifier:0.95, researchCostModifier:0.95,
unhappinessModifier:0.6, unhappinessModifier:0.6,
aiCityGrowthModifier:1.3, aiCityGrowthModifier:1.3,
aiUnitMaintainanceModifier:1, aiUnitMaintenanceModifier:1,
aiConstructionModifier:0.75, aiYieldModifier:0.75,
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1
}, },
@ -27,8 +27,8 @@
researchCostModifier:1, researchCostModifier:1,
unhappinessModifier:0.75, unhappinessModifier:0.75,
aiCityGrowthModifier:1.1, aiCityGrowthModifier:1.1,
aiUnitMaintainanceModifier:1, aiUnitMaintenanceModifier:1,
aiConstructionModifier:0.9, aiYieldModifier:0.9,
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1
}, },
@ -38,8 +38,8 @@
researchCostModifier:1, researchCostModifier:1,
unhappinessModifier:1, unhappinessModifier:1,
aiCityGrowthModifier:1, aiCityGrowthModifier:1,
aiUnitMaintainanceModifier:0.85, aiUnitMaintenanceModifier:0.85,
aiConstructionModifier:1, aiYieldModifier:1,
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1
}, },
@ -49,8 +49,8 @@
researchCostModifier:1.1, researchCostModifier:1.1,
unhappinessModifier:1, unhappinessModifier:1,
aiCityGrowthModifier:0.9, aiCityGrowthModifier:0.9,
aiUnitMaintainanceModifier:0.8, aiUnitMaintenanceModifier:0.8,
aiConstructionModifier:1.15, aiYieldModifier:1.15,
aiFreeTechs:["Pottery"], aiFreeTechs:["Pottery"],
aiUnhappinessModifier:0.9 aiUnhappinessModifier:0.9
}, },
@ -60,8 +60,8 @@
researchCostModifier:1.2, researchCostModifier:1.2,
unhappinessModifier:1, unhappinessModifier:1,
aiCityGrowthModifier:0.85, aiCityGrowthModifier:0.85,
aiUnitMaintainanceModifier:0.75, aiUnitMaintenanceModifier:0.75,
aiConstructionModifier:1.25, aiYieldModifier:1.25,
aiFreeTechs:["Pottery","Animal Husbandry"], aiFreeTechs:["Pottery","Animal Husbandry"],
aiUnhappinessModifier:0.85 aiUnhappinessModifier:0.85
}, },
@ -71,8 +71,8 @@
researchCostModifier:1.3, researchCostModifier:1.3,
unhappinessModifier:1, unhappinessModifier:1,
aiCityGrowthModifier:0.75, aiCityGrowthModifier:0.75,
aiUnitMaintainanceModifier:0.65, aiUnitMaintenanceModifier:0.65,
aiConstructionModifier:1.5, aiYieldModifier:1.5,
aiFreeTechs:["Pottery","Animal Husbandry","Mining"], aiFreeTechs:["Pottery","Animal Husbandry","Mining"],
aiUnhappinessModifier:0.75 aiUnhappinessModifier:0.75
}, },
@ -82,8 +82,8 @@
researchCostModifier:1.5, researchCostModifier:1.5,
unhappinessModifier:1, unhappinessModifier:1,
aiCityGrowthModifier:0.6, aiCityGrowthModifier:0.6,
aiUnitMaintainanceModifier:0.5, aiUnitMaintenanceModifier:0.5,
aiConstructionModifier:2, aiYieldModifier:2,
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"], aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"],
aiUnhappinessModifier:0.6 aiUnhappinessModifier:0.6
} }

View File

@ -292,7 +292,7 @@
strength:24, strength:24,
cost: 150, cost: 150,
requiredTech:"Gunpowder", requiredTech:"Gunpowder",
upgradesTo:"Rifleman," upgradesTo:"Rifleman"
obsoleteTech:"Rifling", obsoleteTech:"Rifling",
hurryCostModifier:20 hurryCostModifier:20
}, },
@ -305,7 +305,7 @@
strength:28, strength:28,
cost: 150, cost: 150,
requiredTech:"Gunpowder", requiredTech:"Gunpowder",
upgradesTo:"Rifleman," upgradesTo:"Rifleman"
obsoleteTech:"Rifling", obsoleteTech:"Rifling",
hurryCostModifier:20 hurryCostModifier:20
}, },

View File

@ -21,7 +21,7 @@ android {
applicationId "com.unciv.game" applicationId "com.unciv.game"
minSdkVersion 14 minSdkVersion 14
targetSdkVersion 26 targetSdkVersion 26
versionCode 170 versionCode 172
versionName "2.10.9" versionName "2.10.9"
} }

View File

@ -140,9 +140,6 @@ class CityConstructions {
} else } else
currentConstruction = saveCurrentConstruction currentConstruction = saveCurrentConstruction
var productionToAdd = cityStats.production
if(!cityInfo.civInfo.isPlayerCivilization())
productionToAdd *= cityInfo.civInfo.gameInfo.getPlayerCivilization().getDifficulty().aiConstructionModifier
addProduction(Math.round(cityStats.production)) addProduction(Math.round(cityStats.production))
val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies) val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies)
if (inProgressConstructions[currentConstruction]!! >= productionCost) { if (inProgressConstructions[currentConstruction]!! >= productionCost) {

View File

@ -87,6 +87,23 @@ class CityStats {
return stats return stats
} }
private fun getStatPercentBonusesFromDifficulty(): Stats {
val stats = Stats()
val civ = cityInfo.civInfo
if (!civ.isPlayerCivilization()) {
val modifier = civ.gameInfo.getPlayerCivilization().getDifficulty().aiYieldModifier
stats.production += modifier
stats.science += modifier
stats.food += modifier
stats.gold += modifier
stats.culture += modifier
}
return stats
}
private fun getGrowthBonusFromPolicies(): Float { private fun getGrowthBonusFromPolicies(): Float {
var bonus = 0f var bonus = 0f
if (cityInfo.civInfo.policies.isAdopted("Landed Elite") && cityInfo.isCapital()) if (cityInfo.civInfo.policies.isAdopted("Landed Elite") && cityInfo.isCapital())
@ -258,14 +275,13 @@ class CityStats {
newStatPercentBonusList["Railroad"]=getStatPercentBonusesFromRailroad() newStatPercentBonusList["Railroad"]=getStatPercentBonusesFromRailroad()
newStatPercentBonusList["Marble"]=getStatPercentBonusesFromMarble() newStatPercentBonusList["Marble"]=getStatPercentBonusesFromMarble()
newStatPercentBonusList["Computers"]=getStatPercentBonusesFromComputers() newStatPercentBonusList["Computers"]=getStatPercentBonusesFromComputers()
newStatPercentBonusList["Difficutly"]=getStatPercentBonusesFromDifficulty()
statPercentBonusList=newStatPercentBonusList statPercentBonusList=newStatPercentBonusList
val statPercentBonuses = Stats() val statPercentBonuses = Stats()
for(bonus in statPercentBonusList.values) statPercentBonuses.add(bonus) for(bonus in statPercentBonusList.values) statPercentBonuses.add(bonus)
//val stats = Stats()
for (stat in newBaseStatList.values) stat.production *= 1 + statPercentBonuses.production / 100 for (stat in newBaseStatList.values) stat.production *= 1 + statPercentBonuses.production / 100
//stats.production *= 1 + statPercentBonuses.production / 100 // So they get bonuses for production and gold/science
val statsFromProduction = getStatsFromProduction(newBaseStatList.values.map { it.production }.sum()) val statsFromProduction = getStatsFromProduction(newBaseStatList.values.map { it.production }.sum())
newBaseStatList["Construction"] = statsFromProduction newBaseStatList["Construction"] = statsFromProduction

View File

@ -138,7 +138,7 @@ class CivilizationInfo {
var cost = baseUnitCost*totalPaidUnits*(1+gameProgress) var cost = baseUnitCost*totalPaidUnits*(1+gameProgress)
cost = cost.pow(1+gameProgress/3) // Why 3? To spread 1 to 1.33 cost = cost.pow(1+gameProgress/3) // Why 3? To spread 1 to 1.33
if(!isPlayerCivilization()) if(!isPlayerCivilization())
cost *= gameInfo.getPlayerCivilization().getDifficulty().aiUnitMaintainanceModifier cost *= gameInfo.getPlayerCivilization().getDifficulty().aiUnitMaintenanceModifier
if(policies.isAdopted("Autocracy")) cost = cost*0.66f if(policies.isAdopted("Autocracy")) cost = cost*0.66f
return cost.toInt() return cost.toInt()
} }

View File

@ -9,8 +9,8 @@ class Difficulty: INamed {
var researchCostModifier:Float = 1f var researchCostModifier:Float = 1f
var unhappinessModifier = 1f var unhappinessModifier = 1f
var aiCityGrowthModifier = 1f var aiCityGrowthModifier = 1f
var aiUnitMaintainanceModifier = 1f var aiUnitMaintenanceModifier = 1f
var aiConstructionModifier = 1f var aiYieldModifier = 1f
var aiFreeTechs = ArrayList<String>() var aiFreeTechs = ArrayList<String>()
var aiUnhappinessModifier = 1f var aiUnhappinessModifier = 1f
} }