mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-25 21:03:15 -04:00
Added unit conditional support to pillage yield uniques
This commit is contained in:
parent
a215685b57
commit
a8446be6ad
@ -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)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user