Added ai unhappiness modifier to difficulty

This commit is contained in:
Yair Morgenstern
2018-07-27 10:03:44 +03:00
parent 1689005fef
commit 8b259a3db3
4 changed files with 21 additions and 9 deletions

View File

@ -7,7 +7,8 @@
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
aiFreeTechs:[]
aiFreeTechs:[],
aiUnhappinessModifier:1
},
{
name:"Chieftain",
@ -17,7 +18,8 @@
aiCityGrowthModifier:1.3,
aiUnitMaintainanceModifier:1,
aiConstructionModifier:0.75,
aiFreeTechs:[]
aiFreeTechs:[],
aiUnhappinessModifier:1
},
{
name:"Warlord",
@ -27,7 +29,8 @@
aiCityGrowthModifier:1.1,
aiUnitMaintainanceModifier:1,
aiConstructionModifier:0.9,
aiFreeTechs:[]
aiFreeTechs:[],
aiUnhappinessModifier:1
},
{
name:"Prince",
@ -37,7 +40,8 @@
aiCityGrowthModifier:1,
aiUnitMaintainanceModifier:0.85,
aiConstructionModifier:1,
aiFreeTechs:[]
aiFreeTechs:[],
aiUnhappinessModifier:1
},
{
name:"King",
@ -47,7 +51,8 @@
aiCityGrowthModifier:0.9,
aiUnitMaintainanceModifier:0.8,
aiConstructionModifier:1.15,
aiFreeTechs:["Pottery"]
aiFreeTechs:["Pottery"],
aiUnhappinessModifier:0.9
},
{
name:"Emperor",
@ -57,7 +62,8 @@
aiCityGrowthModifier:0.85,
aiUnitMaintainanceModifier:0.75,
aiConstructionModifier:1.25,
aiFreeTechs:["Pottery","Animal Husbandry"]
aiFreeTechs:["Pottery","Animal Husbandry"],
aiUnhappinessModifier:0.85
},
{
name:"Immortal",
@ -67,7 +73,8 @@
aiCityGrowthModifier:0.75,
aiUnitMaintainanceModifier:0.65,
aiConstructionModifier:1.5,
aiFreeTechs:["Pottery","Animal Husbandry","Mining"]
aiFreeTechs:["Pottery","Animal Husbandry","Mining"],
aiUnhappinessModifier:0.75
},
{
name:"Deity",
@ -77,6 +84,7 @@
aiCityGrowthModifier:0.6,
aiUnitMaintainanceModifier:0.5,
aiConstructionModifier:2,
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"]
aiFreeTechs:["Pottery","Animal Husbandry","Mining","The Wheel"],
aiUnhappinessModifier:0.6
}
]

View File

@ -29,12 +29,13 @@ class GameStarter(){
playerCiv.difficulty=difficulty
gameInfo.civilizations.add(playerCiv) // first one is player civ
freeTiles.removeAll(gameInfo.tileMap.getTilesInDistance(playerPosition,distanceAroundStartingPointNoOneElseWillStartIn ))
freeTiles.removeAll(gameInfo.tileMap.getTilesInDistance(playerPosition, distanceAroundStartingPointNoOneElseWillStartIn ))
val barbarianCivilization = CivilizationInfo()
gameInfo.civilizations.add(barbarianCivilization)// second is barbarian civ
for (civname in GameBasics.Civilizations.keys.filterNot { it=="Barbarians" || it==civilization }.take(numberOfCivs)) {
if(freeTiles.isEmpty()) break // we can't add any more civs.
val startingLocation = freeTiles.toList().getRandom().position
val civ = CivilizationInfo(civname, startingLocation, gameInfo)
civ.tech.techsResearched.addAll(playerCiv.getDifficulty().aiFreeTechs)

View File

@ -101,6 +101,8 @@ class CityStats {
fun getCityHappiness(): LinkedHashMap<String, Float> {
val civInfo = cityInfo.civInfo
var unhappinessModifier = civInfo.getDifficulty().unhappinessModifier
if(!civInfo.isPlayerCivilization())
unhappinessModifier *= civInfo.gameInfo.getPlayerCivilization().getDifficulty().aiUnhappinessModifier
happinessList["Cities"] = -3f * unhappinessModifier

View File

@ -12,4 +12,5 @@ class Difficulty: INamed {
var aiUnitMaintainanceModifier = 1f
var aiConstructionModifier = 1f
var aiFreeTechs = ArrayList<String>()
var aiUnhappinessModifier = 1f
}