diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index f174e5c492..a75a7b6a0e 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -642,6 +642,7 @@ enum class UniqueType( Unpillagable("Unpillagable", UniqueTarget.Improvement), PillageYieldRandom("Pillaging this improvement yields approximately [stats]", UniqueTarget.Improvement), PillageYieldFixed("Pillaging this improvement yields [stats]", UniqueTarget.Improvement), + DestroyedWhenPillaged("Destroyed when pillaged", UniqueTarget.Improvement), Irremovable("Irremovable", UniqueTarget.Improvement), AutomatedUnitsWillNotReplace("Will not be replaced by automated units", UniqueTarget.Improvement), ImprovesResources("Improves [resourceFilter] resource in this tile", UniqueTarget.Improvement, flags = UniqueFlag.setOfNoConditionals, 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 c7ec6eefeb..ba47bb180b 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 @@ -63,6 +63,11 @@ object UnitActionsPillage { if (pillagingImprovement) // only Improvements heal HP unit.healBy(25) + + if (tile.getImprovementToPillage()?.hasUnique(UniqueType.DestroyedWhenPillaged) == true) { + tile.removeImprovement() + } + }.takeIf { unit.hasMovement() && canPillage(unit, tile) } ) } diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index 3d14a65640..88ae6f7e73 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -2510,6 +2510,9 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl Applicable to: Improvement +??? example "Will be destroyed when pillaged" + Applicable to: Improvement + ??? example "Irremovable" Applicable to: Improvement