Added adjacency conditionals

This commit is contained in:
Yair Morgenstern
2024-01-25 00:24:38 +02:00
parent 21581b43a0
commit 138d1c64a1
3 changed files with 11 additions and 2 deletions

View File

@ -318,6 +318,8 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
relevantTile?.matchesFilter(condition.params[0], state.civInfo) == true
UniqueType.ConditionalInTilesNot ->
relevantTile?.matchesFilter(condition.params[0], state.civInfo) == false
UniqueType.ConditionalAdjacentTo -> relevantTile?.isAdjacentTo(condition.params[0]) == true
UniqueType.ConditionalNotAdjacentTo -> relevantTile?.isAdjacentTo(condition.params[0]) == false
UniqueType.ConditionalFightingInTiles ->
state.attackedTile?.matchesFilter(condition.params[0], state.civInfo) == true
UniqueType.ConditionalInTilesAnd ->

View File

@ -344,7 +344,7 @@ enum class UniqueType(
Strength("[relativeAmount]% Strength", UniqueTarget.Unit, UniqueTarget.Global),
StrengthNearCapital("[relativeAmount]% Strength decreasing with distance from the capital", UniqueTarget.Unit, UniqueTarget.Global),
FlankAttackBonus("[relativeAmount]% to Flank Attack bonuses", UniqueTarget.Unit, UniqueTarget.Global),
// There's currently no conditional that would allow you strength vs city-state *cities* and that's why this isn't deprecated yet
@Deprecated("as of 4.9.0",ReplaceWith("[+30%]% Strength <vs []>"), DeprecationLevel.ERROR)
StrengthBonusVsCityStates("+30% Strength when fighting City-State units and cities", UniqueTarget.Global),
StrengthForAdjacentEnemies("[relativeAmount]% Strength for enemy [combatantFilter] units in adjacent [tileFilter] tiles", UniqueTarget.Unit),
StrengthWhenStacked("[relativeAmount]% Strength when stacked with [mapUnitFilter]", UniqueTarget.Unit), // candidate for conditional!
@ -682,7 +682,8 @@ enum class UniqueType(
@Deprecated("as of 4.10.3", ReplaceWith("in [{tileFilter} {tileFilter}] tiles"))
ConditionalInTilesAnd("in [tileFilter] [tileFilter] tiles", UniqueTarget.Conditional),
ConditionalInTilesNot("in tiles without [tileFilter]", UniqueTarget.Conditional),
// TODO: Add adjacency ("in tiles adjacent to [tileFilter]", "in tiles not adjacent to [tileFilter])
ConditionalAdjacentTo("in tiles adjacent to [tileFilter]", UniqueTarget.Conditional),
ConditionalNotAdjacentTo("in tiles not adjacent to [tileFilter]", UniqueTarget.Conditional),
ConditionalNearTiles("within [amount] tiles of a [tileFilter]", UniqueTarget.Conditional),
/////// area conditionals