Minor code reorg

This commit is contained in:
Yair Morgenstern 2019-09-23 17:48:59 +03:00
parent 548078fb37
commit cb06253584
2 changed files with 40 additions and 41 deletions

View File

@ -251,8 +251,7 @@ class CityInfo {
population.foodStored = population.getFoodToNextPopulation() - 1//...reduce below the new growth treshold
}
}
}
else population.nextTurn(stats.food)
} else population.nextTurn(stats.food)
if (this in civInfo.cities) { // city was not destroyed
health = min(health + 20, getMaxHealth())
@ -298,19 +297,17 @@ class CityInfo {
conqueringCiv.popupAlerts.add(PopupAlert(AlertType.Defeated,oldCiv.civName))
}
health = getMaxHealth() / 2 // I think that cities recover to half health when conquered?
diplomaticReprecussionsForConqueringCity(oldCiv, conqueringCiv)
diplomaticRepercussionsForConqueringCity(oldCiv, conqueringCiv)
if(population.population>1) population.population -= 1 + population.population/4 // so from 2-4 population, remove 1, from 5-8, remove 2, etc.
resistanceCounter = population.population // I checked, and even if you puppet there's resistance for conquering
reassignWorkers()
resistanceCounter = population.population // I checked, and even if you puppet there's resistance for conquering
isPuppet = true
health = getMaxHealth() / 2 // I think that cities recover to half health when conquered?
}
private fun diplomaticReprecussionsForConqueringCity(oldCiv: CivilizationInfo, conqueringCiv: CivilizationInfo) {
private fun diplomaticRepercussionsForConqueringCity(oldCiv: CivilizationInfo, conqueringCiv: CivilizationInfo) {
val currentPopulation = population.population
val percentageOfCivPopulationInThatCity = currentPopulation * 100f / civInfo.cities.sumBy { it.population.population }
val aggroGenerated = 10f + percentageOfCivPopulationInThatCity.roundToInt()
@ -334,12 +331,26 @@ class CityInfo {
return
}
val oldOwningCiv = civInfo
diplomaticRepercussionsForLiberatingCity(conqueringCiv)
val foundingCiv = civInfo.gameInfo.civilizations.first { it.civName == foundingCiv }
val currentPopulation = population.population
moveToCiv(foundingCiv)
health = getMaxHealth() / 2 // I think that cities recover to half health when conquered?
val percentageOfCivPopulationInThatCity = currentPopulation*100f / (foundingCiv.cities.sumBy { it.population.population } + currentPopulation)
reassignWorkers()
if(foundingCiv.cities.size == 1) cityConstructions.addBuilding("Palace") // Resurrection!
UnCivGame.Current.worldScreen.shouldUpdate=true
}
private fun diplomaticRepercussionsForLiberatingCity(conqueringCiv: CivilizationInfo) {
val oldOwningCiv = civInfo
val foundingCiv = civInfo.gameInfo.civilizations.first { it.civName == foundingCiv }
val percentageOfCivPopulationInThatCity = population.population *
100f / (foundingCiv.cities.sumBy { it.population.population } + population.population)
val respecForLiberatingOurCity = 10f + percentageOfCivPopulationInThatCity.roundToInt()
foundingCiv.getDiplomacyManager(conqueringCiv)
.addModifier(DiplomaticModifiers.CapturedOurCities, respecForLiberatingOurCity)
@ -349,23 +360,6 @@ class CityInfo {
thirdPartyCiv.getDiplomacyManager(conqueringCiv)
.addModifier(DiplomaticModifiers.WarMongerer, otherCivsRespecForLiberating) // Cool, keep at at! =D
}
moveToCiv(foundingCiv)
health = getMaxHealth() / 2 // I think that cities recover to half health when conquered?
reassignWorkers()
if(foundingCiv.cities.size == 1) { // Resurrection!
cityConstructions.addBuilding("Palace")
}
UnCivGame.Current.worldScreen.shouldUpdate=true
}
// todo should be in cityStats
fun hasExtraAnnexUnhappiness() : Boolean {
if (civInfo.civName == foundingCiv || foundingCiv == "" || isPuppet) return false
return !containsBuildingUnique("Remove extra unhappiness from annexed cities")
}
fun moveToCiv(newCivInfo: CivilizationInfo){
@ -401,8 +395,6 @@ class CityInfo {
}
}
tryUpdateRoadStatus()
}

View File

@ -194,7 +194,6 @@ class CityStats {
unhappinessModifier *= civInfo.gameInfo.getDifficulty().aiUnhappinessModifier
var unhappinessFromCity = -3f
if (cityInfo.hasExtraAnnexUnhappiness()) unhappinessFromCity -= 2f //annexed city
if (civInfo.nation.unique == "Unhappiness from number of Cities doubled, Unhappiness from number of Citizens halved.")
unhappinessFromCity *= 2f//doubled for the Indian
@ -206,7 +205,7 @@ class CityStats {
if (cityInfo.isPuppet)
unhappinessFromCitizens *= 1.5f
else if (cityInfo.hasExtraAnnexUnhappiness())
else if (hasExtraAnnexUnhappiness())
unhappinessFromCitizens *= 2f
if (civInfo.containsBuildingUnique("Unhappiness from population decreased by 10%"))
unhappinessFromCitizens *= 0.9f
@ -229,6 +228,8 @@ class CityStats {
newHappinessList["Policies"] = happinessFromPolicies
if (hasExtraAnnexUnhappiness()) newHappinessList["Occupied City"] = -2f //annexed city
val happinessFromBuildings = cityInfo.cityConstructions.getStats().happiness.toInt().toFloat()
newHappinessList["Buildings"] = happinessFromBuildings
@ -240,6 +241,12 @@ class CityStats {
happinessList = newHappinessList
}
private fun hasExtraAnnexUnhappiness() : Boolean {
if (cityInfo.civInfo.civName == cityInfo.foundingCiv || cityInfo.foundingCiv == "" || cityInfo.isPuppet) return false
return !cityInfo.containsBuildingUnique("Remove extra unhappiness from annexed cities")
}
fun getStatsOfSpecialist(stat: Stat, policies: HashSet<String>): Stats {
val stats = Stats()
if (stat == Stat.Culture || stat == Stat.Science) stats.add(stat, 3f)