Deprecated Stats as viable values for Great Person points

This commit is contained in:
yairm210 2021-08-30 19:35:50 +03:00
parent 7e0b7f0007
commit b554a6db93
6 changed files with 10 additions and 64 deletions

View File

@ -342,13 +342,6 @@ class GameInfo {
cityInfo.cityStats.update() cityInfo.cityStats.update()
} }
if(!civInfo.greatPeople.greatPersonPoints.isEmpty()) {
civInfo.greatPeople.greatPersonPointsCounter.add(
GreatPersonManager.statsToGreatPersonCounter(civInfo.greatPeople.greatPersonPoints)
)
civInfo.greatPeople.greatPersonPoints.clear()
}
if (civInfo.hasEverOwnedOriginalCapital == null) { if (civInfo.hasEverOwnedOriginalCapital == null) {
civInfo.hasEverOwnedOriginalCapital = civInfo.cities.any { it.isOriginalCapital } civInfo.hasEverOwnedOriginalCapital = civInfo.cities.any { it.isOriginalCapital }
} }

View File

@ -385,20 +385,6 @@ class CityInfo {
gppCounter.add(unitName, gppCounter[unitName]!! * allGppPercentageBonus / 100) gppCounter.add(unitName, gppCounter[unitName]!! * allGppPercentageBonus / 100)
} }
// Since existing buildings and specialists have *stat names* rather than Great Person names
// as the keys, convert every stat name to the appropriate Great Person name instead
for (counter in sourceToGPP.values)
for ((key, gppAmount) in counter.toMap()) { // since we're removing, copy to avoid concurrency problems
val relevantStatEntry = GreatPersonManager.statToGreatPersonMapping
.entries.firstOrNull { it.key.name.equals(key, true) }
if (relevantStatEntry == null) continue
counter.add(relevantStatEntry.value, gppAmount)
counter.remove(key)
}
return sourceToGPP return sourceToGPP
} }

View File

@ -8,37 +8,10 @@ class GreatPersonManager {
var pointsForNextGreatPerson = 100 var pointsForNextGreatPerson = 100
var pointsForNextGreatGeneral = 30 var pointsForNextGreatGeneral = 30
@Deprecated("As of 3.15.15 - Should be converted to greatPersonPointsCounter")
var greatPersonPoints = Stats()
var greatPersonPointsCounter = Counter<String>() var greatPersonPointsCounter = Counter<String>()
var greatGeneralPoints = 0 var greatGeneralPoints = 0
var freeGreatPeople = 0 var freeGreatPeople = 0
companion object {
val statToGreatPersonMapping = hashMapOf<Stat, String>(
Stat.Science to "Great Scientist",
Stat.Production to "Great Engineer",
Stat.Gold to "Great Merchant",
Stat.Culture to "Great Artist",
)
fun statsToGreatPersonCounter(stats: Stats): Counter<String> {
val counter = Counter<String>()
for ((key, value) in stats)
if (statToGreatPersonMapping.containsKey(key))
counter.add(statToGreatPersonMapping[key]!!, value.toInt())
return counter
}
fun greatPersonCounterToStats(counter: Counter<String>): Stats {
val stats = Stats()
for ((key, value) in counter) {
val stat = statToGreatPersonMapping.entries.firstOrNull { it.value == key }?.key
if (stat != null) stats.add(stat, value.toFloat())
}
return stats
}
}
fun clone(): GreatPersonManager { fun clone(): GreatPersonManager {
val toReturn = GreatPersonManager() val toReturn = GreatPersonManager()

View File

@ -16,7 +16,7 @@ class Difficulty: INamed, ICivilopediaText {
var policyCostModifier:Float = 1f var policyCostModifier:Float = 1f
var unhappinessModifier:Float = 1f var unhappinessModifier:Float = 1f
var barbarianBonus:Float = 0f var barbarianBonus:Float = 0f
var startingUnits = ArrayList<String>() // Deprecated since 3.15.8 var startingUnits = ArrayList<String>() // Deprecated since 3.15.8 - with eras
var playerBonusStartingUnits = ArrayList<String>() var playerBonusStartingUnits = ArrayList<String>()
var aiCityGrowthModifier:Float = 1f var aiCityGrowthModifier:Float = 1f
@ -26,7 +26,7 @@ class Difficulty: INamed, ICivilopediaText {
var aiBuildingMaintenanceModifier:Float = 1f var aiBuildingMaintenanceModifier:Float = 1f
var aiUnitMaintenanceModifier = 1f var aiUnitMaintenanceModifier = 1f
var aiFreeTechs = ArrayList<String>() var aiFreeTechs = ArrayList<String>()
var aiMajorCivStartingUnits = ArrayList<String>() // Deprecated since 3.15.8 var aiMajorCivStartingUnits = ArrayList<String>() // Deprecated since 3.15.8 - with eras
var aiMajorCivBonusStartingUnits = ArrayList<String>() var aiMajorCivBonusStartingUnits = ArrayList<String>()
var aiCityStateStartingUnits = ArrayList<String>() // Deprecated since 3.15.8 var aiCityStateStartingUnits = ArrayList<String>() // Deprecated since 3.15.8
var aiCityStateBonusStartingUnits = ArrayList<String>() var aiCityStateBonusStartingUnits = ArrayList<String>()

View File

@ -184,9 +184,6 @@ class CivilopediaScreen(
&& !(uniqueObjects.filter { unique -> unique.placeholderText == "Hidden when [] Victory is disabled"}.any { && !(uniqueObjects.filter { unique -> unique.placeholderText == "Hidden when [] Victory is disabled"}.any {
unique -> !game.gameInfo.gameParameters.victoryTypes.contains(VictoryType.valueOf(unique.params[0] )) unique -> !game.gameInfo.gameParameters.victoryTypes.contains(VictoryType.valueOf(unique.params[0] ))
}) })
// Deprecated since 3.15.14
&& !(noCulturalVictory && "Hidden when cultural victory is disabled" in uniques)
//
} }
fun getCategoryIterator(category: CivilopediaCategories): Collection<ICivilopediaText> = fun getCategoryIterator(category: CivilopediaCategories): Collection<ICivilopediaText> =

View File

@ -106,12 +106,6 @@ class StatsOverviewTable (
private fun getGreatPeopleTable(): Table { private fun getGreatPeopleTable(): Table {
val greatPeopleTable = Table(CameraStageBaseScreen.skin) val greatPeopleTable = Table(CameraStageBaseScreen.skin)
val greatPersonPoints = GreatPersonManager
.greatPersonCounterToStats(viewingPlayer.greatPeople.greatPersonPointsCounter)
val greatPersonPointsPerTurn = GreatPersonManager
.greatPersonCounterToStats(viewingPlayer.getGreatPersonPointsForNextTurn())
val pointsToGreatPerson = viewingPlayer.greatPeople.pointsForNextGreatPerson
greatPeopleTable.defaults().pad(5f) greatPeopleTable.defaults().pad(5f)
val greatPeopleHeader = Table(CameraStageBaseScreen.skin) val greatPeopleHeader = Table(CameraStageBaseScreen.skin)
val greatPeopleIcon = ImageGetter.getStatIcon("Specialist") val greatPeopleIcon = ImageGetter.getStatIcon("Specialist")
@ -124,11 +118,14 @@ class StatsOverviewTable (
greatPeopleTable.add("Current points".tr()) greatPeopleTable.add("Current points".tr())
greatPeopleTable.add("Points per turn".tr()).row() greatPeopleTable.add("Points per turn".tr()).row()
val mapping = GreatPersonManager.statToGreatPersonMapping val greatPersonPoints = viewingPlayer.greatPeople.greatPersonPointsCounter
for(entry in mapping){ val greatPersonPointsPerTurn = viewingPlayer.getGreatPersonPointsForNextTurn()
greatPeopleTable.add(entry.value.tr()) val pointsToGreatPerson = viewingPlayer.greatPeople.pointsForNextGreatPerson
greatPeopleTable.add(greatPersonPoints[entry.key].toInt().toString()+"/"+pointsToGreatPerson)
greatPeopleTable.add(greatPersonPointsPerTurn[entry.key].toInt().toString()).row() for((greatPerson, points) in greatPersonPoints) {
greatPeopleTable.add(greatPerson.tr())
greatPeopleTable.add("$points/$pointsToGreatPerson")
greatPeopleTable.add(greatPersonPointsPerTurn[greatPerson].toString()).row()
} }
val pointsForGreatGeneral = viewingPlayer.greatPeople.greatGeneralPoints val pointsForGreatGeneral = viewingPlayer.greatPeople.greatGeneralPoints
val pointsForNextGreatGeneral = viewingPlayer.greatPeople.pointsForNextGreatGeneral val pointsForNextGreatGeneral = viewingPlayer.greatPeople.pointsForNextGreatGeneral