mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -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) {
|
private fun adoptPolicy(civInfo: CivilizationInfo) {
|
||||||
while (civInfo.policies.canAdoptPolicy()) {
|
while (civInfo.policies.canAdoptPolicy()) {
|
||||||
|
|
||||||
val adoptablePolicies = GameBasics.PolicyBranches.values.flatMap { it.policies.union(listOf(it)) }
|
val adoptablePolicies = GameBasics.PolicyBranches.values.flatMap { it.policies.union(listOf(it)) }
|
||||||
.filter { civInfo.policies.isAdoptable(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)
|
civInfo.policies.adopt(policyToAdopt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user