Resolved #8758 - all unpillagable improvements are not destroyed by 'destroy improvements' unique

This commit is contained in:
Yair Morgenstern
2023-02-26 23:04:55 +02:00
parent 86a63ac578
commit 88cd136dd5

View File

@ -1104,9 +1104,10 @@ object Battle {
} }
private fun doDestroyImprovementsAbility(attacker: MapUnitCombatant, attackedTile: Tile, defender: ICombatant) { private fun doDestroyImprovementsAbility(attacker: MapUnitCombatant, attackedTile: Tile, defender: ICombatant) {
if (attackedTile.improvement == null) return
val conditionalState = StateForConditionals(attacker.getCivInfo(), ourCombatant = attacker, theirCombatant = defender, combatAction = CombatAction.Attack, attackedTile = attackedTile) val conditionalState = StateForConditionals(attacker.getCivInfo(), ourCombatant = attacker, theirCombatant = defender, combatAction = CombatAction.Attack, attackedTile = attackedTile)
if (attackedTile.improvement != Constants.barbarianEncampment if (!attackedTile.getTileImprovement()!!.hasUnique(UniqueType.Unpillagable)
&& attackedTile.getTileImprovement()?.isAncientRuinsEquivalent() != true
&& attacker.hasUnique(UniqueType.DestroysImprovementUponAttack, conditionalState) && attacker.hasUnique(UniqueType.DestroysImprovementUponAttack, conditionalState)
) { ) {
attackedTile.changeImprovement(null) attackedTile.changeImprovement(null)