Extended use for "in [tileFilter] tiles" conditionals (#5827)

* Changed 'in [tileFilter] tiles' to also apply outside of combat

* Changed unique docs writer to also sort applicables, so these are also not regenerated constantly
This commit is contained in:
Xander Lenstra
2021-12-20 12:53:03 +01:00
committed by GitHub
parent b7804c0bf6
commit c9628c7fa7
3 changed files with 27 additions and 23 deletions

View File

@ -87,13 +87,17 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
state.ourCombatant != null && state.ourCombatant.getHealth() > condition.params[0].toInt()
UniqueType.ConditionalBelowHP ->
state.ourCombatant != null && state.ourCombatant.getHealth() < condition.params[0].toInt()
UniqueType.ConditionalInTiles,
UniqueType.ConditionalInTiles ->
(state.attackedTile != null && state.attackedTile.matchesFilter(condition.params[0]))
|| (state.unit != null && state.unit.getTile().matchesFilter(condition.params[0]))
UniqueType.ConditionalFightingInTiles ->
state.attackedTile != null && state.attackedTile.matchesFilter(condition.params[0])
UniqueType.ConditionalInTilesAnd ->
state.attackedTile != null && state.attackedTile.matchesFilter(condition.params[0]) && state.attackedTile.matchesFilter(condition.params[1])
(state.attackedTile != null && state.attackedTile.matchesFilter(condition.params[0]) && state.attackedTile.matchesFilter(condition.params[1]))
|| (state.unit != null && state.unit.getTile().matchesFilter(condition.params[0]) && state.unit.getTile().matchesFilter(condition.params[1]))
UniqueType.ConditionalInTilesNot ->
state.attackedTile != null && !state.attackedTile.matchesFilter(condition.params[0])
|| (state.unit != null && !state.unit.getTile().matchesFilter(condition.params[0]))
UniqueType.ConditionalVsLargerCiv -> {
val yourCities = state.civInfo?.cities?.size ?: 1
val theirCities = state.theirCombatant?.getCivInfo()?.cities?.size ?: 0