AI now chooses policies according to preferred victory type - should drastically ncrease the sucess chance of the AI to win a cultural victory!

This commit is contained in:
Yair Morgenstern 2019-06-13 12:00:53 +03:00
parent dda38c5cd1
commit 29f2474b13

View File

@ -142,9 +142,24 @@ class NextTurnAutomation{
private fun adoptPolicy(civInfo: CivilizationInfo) {
while (civInfo.policies.canAdoptPolicy()) {
val adoptablePolicies = GameBasics.PolicyBranches.values.flatMap { it.policies.union(listOf(it)) }
.filter { civInfo.policies.isAdoptable(it) }
val policyToAdopt = adoptablePolicies.random()
val preferredVictoryType = civInfo.getNation().preferredVictoryType
val policyBranchPriority =
when(preferredVictoryType) {
VictoryType.Cultural -> listOf("Piety", "Freedom", "Tradition", "Rationalism")
VictoryType.Scientific -> listOf("Rationalism","Commerce","Liberty","Freedom")
VictoryType.Domination-> listOf("Autocracy","Honor","Liberty","Rationalism")
VictoryType.Neutral -> listOf()
}
val policiesByPreference = adoptablePolicies
.groupBy { if(it.branch in policyBranchPriority) policyBranchPriority.indexOf(it.branch) else 10 }
val preferredPolicies = policiesByPreference.minBy { it.key }!!.value
val policyToAdopt = preferredPolicies.random()
civInfo.policies.adopt(policyToAdopt)
}
}