mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 14:24:43 -04:00
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:
parent
dda38c5cd1
commit
29f2474b13
@ -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)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user