mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 14:24:43 -04:00
Fixed starting positions not activating on new game
This commit is contained in:
parent
213e71a97b
commit
4e62d0b722
@ -260,7 +260,8 @@ class GameInfo {
|
|||||||
for (tile in tileMap.values) {
|
for (tile in tileMap.values) {
|
||||||
if (tile.resource != null && !ruleSet.tileResources.containsKey(tile.resource!!))
|
if (tile.resource != null && !ruleSet.tileResources.containsKey(tile.resource!!))
|
||||||
tile.resource = null
|
tile.resource = null
|
||||||
if (tile.improvement != null && !ruleSet.tileImprovements.containsKey(tile.improvement!!))
|
if (tile.improvement != null && !ruleSet.tileImprovements.containsKey(tile.improvement!!)
|
||||||
|
&& !tile.improvement!!.startsWith("StartingLocation ")) // To not remove the starting locations in GameStarter.startNewGame()
|
||||||
tile.improvement = null
|
tile.improvement = null
|
||||||
|
|
||||||
for (unit in tile.getUnits())
|
for (unit in tile.getUnits())
|
||||||
|
@ -35,15 +35,19 @@ class Building : NamedStats(), IConstruction {
|
|||||||
}
|
}
|
||||||
return counter
|
return counter
|
||||||
}
|
}
|
||||||
|
|
||||||
var greatPersonPoints: Stats? = null
|
var greatPersonPoints: Stats? = null
|
||||||
|
|
||||||
/** Extra cost percentage when purchasing */
|
/** Extra cost percentage when purchasing */
|
||||||
private var hurryCostModifier = 0
|
private var hurryCostModifier = 0
|
||||||
var isWonder = false
|
var isWonder = false
|
||||||
var isNationalWonder = false
|
var isNationalWonder = false
|
||||||
private var requiredBuilding: String? = null
|
private var requiredBuilding: String? = null
|
||||||
var requiredBuildingInAllCities: String? = null
|
var requiredBuildingInAllCities: String? = null
|
||||||
|
|
||||||
/** A strategic resource that will be consumed by this building */
|
/** A strategic resource that will be consumed by this building */
|
||||||
var requiredResource: String? = null
|
var requiredResource: String? = null
|
||||||
|
|
||||||
/** City can only be built if one of these resources is nearby - it must be improved! */
|
/** City can only be built if one of these resources is nearby - it must be improved! */
|
||||||
private var requiredNearbyImprovedResources: List<String>? = null
|
private var requiredNearbyImprovedResources: List<String>? = null
|
||||||
private var cannotBeBuiltWith: String? = null
|
private var cannotBeBuiltWith: String? = null
|
||||||
@ -243,8 +247,10 @@ class Building : NamedStats(), IConstruction {
|
|||||||
val civInfo = construction.cityInfo.civInfo
|
val civInfo = construction.cityInfo.civInfo
|
||||||
|
|
||||||
// This overrides the others
|
// This overrides the others
|
||||||
if(uniqueObjects.any { it.placeholderText=="Not displayed as an available construction unless [] is built"
|
if (uniqueObjects.any {
|
||||||
&& !construction.containsBuildingOrEquivalent(it.params[0])} )
|
it.placeholderText == "Not displayed as an available construction unless [] is built"
|
||||||
|
&& !construction.containsBuildingOrEquivalent(it.params[0])
|
||||||
|
})
|
||||||
return "Should not be displayed"
|
return "Should not be displayed"
|
||||||
|
|
||||||
for (unique in uniqueObjects.filter { it.placeholderText == "Not displayed as an available construction without []" }) {
|
for (unique in uniqueObjects.filter { it.placeholderText == "Not displayed as an available construction without []" }) {
|
||||||
@ -261,10 +267,12 @@ class Building : NamedStats(), IConstruction {
|
|||||||
&& cityCenter.getTilesInDistance(1).none { it.matchesUniqueFilter(unique.params[0]) }) return unique.text
|
&& cityCenter.getTilesInDistance(1).none { it.matchesUniqueFilter(unique.params[0]) }) return unique.text
|
||||||
"Must not be next to []" -> if (cityCenter.getTilesInDistance(1).any { it.matchesUniqueFilter(unique.params[0]) }) return unique.text
|
"Must not be next to []" -> if (cityCenter.getTilesInDistance(1).any { it.matchesUniqueFilter(unique.params[0]) }) return unique.text
|
||||||
"Must have an owned [] within [] tiles" -> if (cityCenter.getTilesInDistance(unique.params[1].toInt()).none {
|
"Must have an owned [] within [] tiles" -> if (cityCenter.getTilesInDistance(unique.params[1].toInt()).none {
|
||||||
it.matchesUniqueFilter(unique.params[0]) && it.getOwner() == construction.cityInfo.civInfo }) return unique.text
|
it.matchesUniqueFilter(unique.params[0]) && it.getOwner() == construction.cityInfo.civInfo
|
||||||
|
}) return unique.text
|
||||||
"Can only be built in annexed cities" -> if (construction.cityInfo.isPuppet || construction.cityInfo.foundingCiv == ""
|
"Can only be built in annexed cities" -> if (construction.cityInfo.isPuppet || construction.cityInfo.foundingCiv == ""
|
||||||
|| construction.cityInfo.civInfo.civName == construction.cityInfo.foundingCiv) return unique.text
|
|| construction.cityInfo.civInfo.civName == construction.cityInfo.foundingCiv) return unique.text
|
||||||
"Requires []" -> { val filter = unique.params[0]
|
"Requires []" -> {
|
||||||
|
val filter = unique.params[0]
|
||||||
if (filter in civInfo.gameInfo.ruleSet.buildings) {
|
if (filter in civInfo.gameInfo.ruleSet.buildings) {
|
||||||
if (civInfo.cities.none { it.cityConstructions.containsBuildingOrEquivalent(filter) }) return unique.text // Wonder is not built
|
if (civInfo.cities.none { it.cityConstructions.containsBuildingOrEquivalent(filter) }) return unique.text // Wonder is not built
|
||||||
} else if (!civInfo.policies.adoptedPolicies.contains(filter)) return "Policy is not adopted" // this reason should not be displayed
|
} else if (!civInfo.policies.adoptedPolicies.contains(filter)) return "Policy is not adopted" // this reason should not be displayed
|
||||||
|
Loading…
x
Reference in New Issue
Block a user