mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-13 17:28:57 +07:00
Resolve #11795 - fix performance problem for displaying air units in cities
This commit is contained in:
@ -75,7 +75,7 @@ class RoadBetweenCitiesAutomation(val civInfo: Civilization, cachedForTurn: Int,
|
||||
/**
|
||||
* Tries to return a list of road plans to connect this city to the surrounding cities.
|
||||
* If there are no surrounding cities to connect to and this city is still unconnected to the capital it will try and build a special road to the capital.
|
||||
*
|
||||
*
|
||||
* @return every road that we want to try and connect assosiated with this city.
|
||||
*/
|
||||
fun getRoadsToBuildFromCity(city: City): List<RoadPlan> {
|
||||
@ -144,7 +144,7 @@ class RoadBetweenCitiesAutomation(val civInfo: Civilization, cachedForTurn: Int,
|
||||
if (roadToCapital != null) {
|
||||
val worstRoadStatus = getWorstRoadTypeInPath(roadToCapital.second)
|
||||
var roadPriority = basePriority
|
||||
roadPriority += if (worstRoadStatus == RoadStatus.None) 2f else 1f
|
||||
roadPriority += if (worstRoadStatus == RoadStatus.None) 2f else 1f
|
||||
|
||||
val newRoadPlan = RoadPlan(roadToCapital.second, roadPriority + (city.population.population) / 2f, city, roadToCapital.first)
|
||||
roadsToBuild.add(newRoadPlan)
|
||||
@ -155,7 +155,6 @@ class RoadBetweenCitiesAutomation(val civInfo: Civilization, cachedForTurn: Int,
|
||||
}
|
||||
}
|
||||
|
||||
workerUnit.destroy()
|
||||
roadsToBuildByCitiesCache[city] = roadsToBuild
|
||||
return roadsToBuild
|
||||
}
|
||||
|
@ -13,11 +13,11 @@ import com.unciv.models.ruleset.RejectionReason
|
||||
import com.unciv.models.ruleset.RejectionReasonType
|
||||
import com.unciv.models.ruleset.Ruleset
|
||||
import com.unciv.models.ruleset.RulesetObject
|
||||
import com.unciv.models.ruleset.unique.Conditionals
|
||||
import com.unciv.models.ruleset.unique.StateForConditionals
|
||||
import com.unciv.models.ruleset.unique.Unique
|
||||
import com.unciv.models.ruleset.unique.UniqueTarget
|
||||
import com.unciv.models.ruleset.unique.UniqueType
|
||||
import com.unciv.models.ruleset.unique.Conditionals
|
||||
import com.unciv.models.stats.Stat
|
||||
import com.unciv.ui.components.extensions.getNeedMoreAmountString
|
||||
import com.unciv.ui.components.extensions.toPercent
|
||||
@ -194,11 +194,11 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
|
||||
|
||||
// Expensive, since adding and removing the fake unit causes side-effects
|
||||
if (isAirUnit()) {
|
||||
// Not actually added to civ so doesn't require destroy
|
||||
val fakeUnit = getMapUnit(cityConstructions.city.civ, Constants.NO_ID)
|
||||
val canUnitEnterTile = fakeUnit.movement.canMoveTo(cityConstructions.city.getCenterTile())
|
||||
if (!canUnitEnterTile)
|
||||
yield(RejectionReasonType.NoPlaceToPutUnit.toInstance())
|
||||
fakeUnit.destroy()
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user