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,
unhappinessModifier:0.4,
aiCityGrowthModifier:1.6, // that is to say it'll take them 1.6 times as long to grow the city
aiUnitMaintainanceModifier:1,
aiConstructionModifier:0.6, // Replaces "Construction rate" and "Create rate" in original config
aiUnitMaintenanceModifier:1,
aiYieldModifier:0.6, // Replaces "Construction rate" and "Create rate" in original config
aiFreeTechs:[],
aiUnhappinessModifier:1
},
@ -16,8 +16,8 @@
researchCostModifier:0.95,
unhappinessModifier:0.6,
aiCityGrowthModifier:1.3,
aiUnitMaintainanceModifier:1,
aiConstructionModifier:0.75,
aiUnitMaintenanceModifier:1,
aiYieldModifier:0.75,
aiFreeTechs:[],
aiUnhappinessModifier:1
},
@ -27,8 +27,8 @@
researchCostModifier:1,
unhappinessModifier:0.75,
aiCityGrowthModifier:1.1,
aiUnitMaintainanceModifier:1,
aiConstructionModifier:0.9,
aiUnitMaintenanceModifier:1,
aiYieldModifier:0.9,
aiFreeTechs:[],
aiUnhappinessModifier:1
},
@ -38,8 +38,8 @@
researchCostModifier:1,
unhappinessModifier:1,
aiCityGrowthModifier:1,
aiUnitMaintainanceModifier:0.85,
aiConstructionModifier:1,
aiUnitMaintenanceModifier:0.85,
aiYieldModifier:1,
aiFreeTechs:[],
aiUnhappinessModifier:1
},
@ -49,8 +49,8 @@
researchCostModifier:1.1,
unhappinessModifier:1,
aiCityGrowthModifier:0.9,
aiUnitMaintainanceModifier:0.8,
aiConstructionModifier:1.15,
aiUnitMaintenanceModifier:0.8,
aiYieldModifier:1.15,
aiFreeTechs:["Pottery"],
aiUnhappinessModifier:0.9
},
@ -60,8 +60,8 @@
researchCostModifier:1.2,
unhappinessModifier:1,
aiCityGrowthModifier:0.85,
aiUnitMaintainanceModifier:0.75,
aiConstructionModifier:1.25,
aiUnitMaintenanceModifier:0.75,
aiYieldModifier:1.25,
aiFreeTechs:["Pottery","Animal Husbandry"],
aiUnhappinessModifier:0.85
},
@ -71,8 +71,8 @@
researchCostModifier:1.3,
unhappinessModifier:1,
aiCityGrowthModifier:0.75,
aiUnitMaintainanceModifier:0.65,
aiConstructionModifier:1.5,
aiUnitMaintenanceModifier:0.65,
aiYieldModifier:1.5,
aiFreeTechs:["Pottery","Animal Husbandry","Mining"],
aiUnhappinessModifier:0.75
},
@ -82,8 +82,8 @@
researchCostModifier:1.5,
unhappinessModifier:1,
aiCityGrowthModifier:0.6,
aiUnitMaintainanceModifier:0.5,
aiConstructionModifier:2,
aiUnitMaintenanceModifier:0.5,
aiYieldModifier:2,
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"],
aiUnhappinessModifier:0.6
}

View File

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

View File

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

View File

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

View File

@ -87,6 +87,23 @@ class CityStats {
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 {
var bonus = 0f
if (cityInfo.civInfo.policies.isAdopted("Landed Elite") && cityInfo.isCapital())
@ -258,14 +275,13 @@ class CityStats {
newStatPercentBonusList["Railroad"]=getStatPercentBonusesFromRailroad()
newStatPercentBonusList["Marble"]=getStatPercentBonusesFromMarble()
newStatPercentBonusList["Computers"]=getStatPercentBonusesFromComputers()
newStatPercentBonusList["Difficutly"]=getStatPercentBonusesFromDifficulty()
statPercentBonusList=newStatPercentBonusList
val statPercentBonuses = Stats()
for(bonus in statPercentBonusList.values) statPercentBonuses.add(bonus)
//val stats = Stats()
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())
newBaseStatList["Construction"] = statsFromProduction

View File

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

View File

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