Resolve #11795 - fix performance problem for displaying air units in cities

This commit is contained in:
Yair Morgenstern
2024-06-24 23:53:36 +03:00
parent 0678957c8e
commit 39de50829a
3 changed files with 8 additions and 5 deletions

View File

@ -155,7 +155,6 @@ class RoadBetweenCitiesAutomation(val civInfo: Civilization, cachedForTurn: Int,
}
}
workerUnit.destroy()
roadsToBuildByCitiesCache[city] = roadsToBuild
return roadsToBuild
}

View File

@ -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()
}
}

View File

@ -1927,6 +1927,7 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
Modifiers that can be added to other uniques to limit when they will be active
??? example "<for [amount] turns>"
Turns this unique into a trigger, activating this unique as a *global* unique for a number of turns
Example: "<for [3] turns>"
Applicable to: Conditional
@ -2113,18 +2114,21 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
Applicable to: Conditional
??? example "<when above [amount] [stat/resource]>"
Stats refers to the accumulated stat, not stat-per-turn
Example: "<when above [3] [Culture]>"
This unique's effect can be modified with <(modified by game speed)>
Applicable to: Conditional
??? example "<when below [amount] [stat/resource]>"
Stats refers to the accumulated stat, not stat-per-turn
Example: "<when below [3] [Culture]>"
This unique's effect can be modified with <(modified by game speed)>
Applicable to: Conditional
??? example "<when between [amount] and [amount] [stat/resource]>"
Stats refers to the accumulated stat, not stat-per-turn
Example: "<when between [3] and [3] [Culture]>"
This unique's effect can be modified with <(modified by game speed)>