Resolved #12417 - "Costs [amount] [stockpiledResource]" works for improvements

This commit is contained in:
yairm210
2025-01-04 20:08:47 +02:00
parent a4a403b104
commit e2f346490c
2 changed files with 5 additions and 2 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 207 KiB

View File

@ -254,18 +254,21 @@ class TileImprovementFunctions(val tile: Tile) {
unit: MapUnit? = null
) {
val stateForConditionals = StateForConditionals(civ, unit = unit, tile = tile)
for (unique in improvement.getMatchingUniques(UniqueType.CostsResources, stateForConditionals))
civ.gainStockpiledResource(unique.params[1], -unique.params[0].toInt())
for (unique in improvement.uniqueObjects.filter { !it.hasTriggerConditional()
&& it.conditionalsApply(stateForConditionals) })
UniqueTriggerActivation.triggerUnique(unique, civ, unit = unit, tile = tile)
for (unique in civ.getTriggeredUniques(UniqueType.TriggerUponBuildingImprovement, stateForConditionals)
{ improvement.matchesFilter(it.params[0], StateForConditionals(civ, unit = unit, tile = tile)) })
{ improvement.matchesFilter(it.params[0], stateForConditionals) })
UniqueTriggerActivation.triggerUnique(unique, civ, unit = unit, tile = tile)
if (unit == null) return
for (unique in unit.getTriggeredUniques(UniqueType.TriggerUponBuildingImprovement, stateForConditionals)
{ improvement.matchesFilter(it.params[0], StateForConditionals(civ, unit = unit, tile = tile)) })
{ improvement.matchesFilter(it.params[0], stateForConditionals) })
UniqueTriggerActivation.triggerUnique(unique, civ, unit = unit, tile = tile)
}