diff --git a/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsPillage.kt b/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsPillage.kt index bbe8daef71..d25b1c6f49 100644 --- a/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsPillage.kt +++ b/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsPillage.kt @@ -8,6 +8,7 @@ import com.unciv.logic.map.mapunit.MapUnit import com.unciv.logic.map.tile.Tile import com.unciv.models.UnitAction import com.unciv.models.UnitActionType +import com.unciv.models.ruleset.unique.StateForConditionals import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.stats.Stat import com.unciv.models.stats.Stats @@ -74,14 +75,15 @@ object UnitActionsPillage { // Accumulate the loot val pillageYield = Stats() - for (unique in improvement.getMatchingUniques(UniqueType.PillageYieldRandom)) { + val stateForConditionals = StateForConditionals(unit=unit) + for (unique in improvement.getMatchingUniques(UniqueType.PillageYieldRandom, stateForConditionals)) { for ((stat, value) in unique.stats) { // Unique text says "approximately [X]", so we add 0..X twice - think an RPG's 2d12 val looted = Random.nextInt((value + 1).toInt()) + Random.nextInt((value + 1).toInt()) pillageYield.add(stat, looted.toFloat()) } } - for (unique in improvement.getMatchingUniques(UniqueType.PillageYieldFixed)) { + for (unique in improvement.getMatchingUniques(UniqueType.PillageYieldFixed, stateForConditionals)) { pillageYield.add(unique.stats) }