AIs no longer exchange techs below Prince difficulty

This commit is contained in:
Yair Morgenstern 2019-04-24 22:13:37 +03:00
parent d8c238bf97
commit aea2e3efcf
3 changed files with 20 additions and 8 deletions

View File

@ -8,7 +8,8 @@
aiUnitMaintenanceModifier:1, aiUnitMaintenanceModifier:1,
aiYieldModifier: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,
aisExchangeTechs:false
}, },
{ {
name:"Chieftain", name:"Chieftain",
@ -19,7 +20,8 @@
aiUnitMaintenanceModifier:1, aiUnitMaintenanceModifier:1,
aiYieldModifier:0.75, aiYieldModifier:0.75,
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1,
aisExchangeTechs:false
}, },
{ {
name:"Warlord", name:"Warlord",
@ -30,7 +32,8 @@
aiUnitMaintenanceModifier:1, aiUnitMaintenanceModifier:1,
aiYieldModifier:0.9, aiYieldModifier:0.9,
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1,
aisExchangeTechs:false
}, },
{ {
name:"Prince", name:"Prince",
@ -41,7 +44,8 @@
aiUnitMaintenanceModifier:0.85, aiUnitMaintenanceModifier:0.85,
aiYieldModifier:1, aiYieldModifier:1,
aiFreeTechs:[], aiFreeTechs:[],
aiUnhappinessModifier:1 aiUnhappinessModifier:1,
aisExchangeTechs:true
}, },
{ {
name:"King", name:"King",
@ -52,7 +56,8 @@
aiUnitMaintenanceModifier:0.8, aiUnitMaintenanceModifier:0.8,
aiYieldModifier:1.15, aiYieldModifier:1.15,
aiFreeTechs:["Pottery"], aiFreeTechs:["Pottery"],
aiUnhappinessModifier:0.9 aiUnhappinessModifier:0.9,
aisExchangeTechs:true
}, },
{ {
name:"Emperor", name:"Emperor",
@ -63,7 +68,8 @@
aiUnitMaintenanceModifier:0.75, aiUnitMaintenanceModifier:0.75,
aiYieldModifier:1.25, aiYieldModifier:1.25,
aiFreeTechs:["Pottery","Animal Husbandry"], aiFreeTechs:["Pottery","Animal Husbandry"],
aiUnhappinessModifier:0.85 aiUnhappinessModifier:0.85,
aisExchangeTechs:true
}, },
{ {
name:"Immortal", name:"Immortal",
@ -74,7 +80,8 @@
aiUnitMaintenanceModifier:0.65, aiUnitMaintenanceModifier:0.65,
aiYieldModifier:1.5, aiYieldModifier:1.5,
aiFreeTechs:["Pottery","Animal Husbandry","Mining"], aiFreeTechs:["Pottery","Animal Husbandry","Mining"],
aiUnhappinessModifier:0.75 aiUnhappinessModifier:0.75,
aisExchangeTechs:true
}, },
{ {
name:"Deity", name:"Deity",
@ -85,6 +92,7 @@
aiUnitMaintenanceModifier:0.5, aiUnitMaintenanceModifier:0.5,
aiYieldModifier:2, aiYieldModifier:2,
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"], aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"],
aiUnhappinessModifier:0.6 aiUnhappinessModifier:0.6,
aisExchangeTechs:true
} }
] ]

View File

@ -14,6 +14,7 @@ import kotlin.math.min
class NextTurnAutomation{ class NextTurnAutomation{
/** Top-level AI turn tasklist */
fun automateCivMoves(civInfo: CivilizationInfo) { fun automateCivMoves(civInfo: CivilizationInfo) {
offerPeaceTreaty(civInfo) offerPeaceTreaty(civInfo)
exchangeTechs(civInfo) exchangeTechs(civInfo)
@ -42,6 +43,8 @@ class NextTurnAutomation{
} }
private fun exchangeTechs(civInfo: CivilizationInfo) { private fun exchangeTechs(civInfo: CivilizationInfo) {
if(!civInfo.gameInfo.getDifficulty().aisExchangeTechs) return
val otherCivList = civInfo.getKnownCivs() val otherCivList = civInfo.getKnownCivs()
.filter { it.playerType == PlayerType.AI && !it.isBarbarianCivilization() } .filter { it.playerType == PlayerType.AI && !it.isBarbarianCivilization() }
.sortedBy { it.tech.techsResearched.size } .sortedBy { it.tech.techsResearched.size }

View File

@ -13,4 +13,5 @@ class Difficulty: INamed {
var aiYieldModifier = 1f var aiYieldModifier = 1f
var aiFreeTechs = ArrayList<String>() var aiFreeTechs = ArrayList<String>()
var aiUnhappinessModifier = 1f var aiUnhappinessModifier = 1f
var aisExchangeTechs = false
} }