diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index d0010ed988..fc6298fdf6 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -366,6 +366,16 @@ object Battle { val defenderDamageDealt = attackerHealthBefore - attacker.getHealth() val attackerDamageDealt = defenderHealthBefore - defender.getHealth() + if (attacker is MapUnitCombatant) + for (unique in attacker.unit.getTriggeredUniques(UniqueType.TriggerUponPromotion)) + if (unique.conditionals.any { it.params[0].toInt() <= defenderDamageDealt }) + UniqueTriggerActivation.triggerUnitwideUnique(unique, attacker.unit) + + if (defender is MapUnitCombatant) + for (unique in defender.unit.getTriggeredUniques(UniqueType.TriggerUponPromotion)) + if (unique.conditionals.any { it.params[0].toInt() <= attackerDamageDealt }) + UniqueTriggerActivation.triggerUnitwideUnique(unique, defender.unit) + plunderFromDamage(attacker, defender, attackerDamageDealt) return DamageDealt(attackerDamageDealt, defenderDamageDealt) } diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 5562f4599c..5ea3d5360f 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -735,6 +735,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: TriggerUponDefeatingUnit("upon defeating a [mapUnitFilter] unit", UniqueTarget.UnitTriggerCondition), TriggerUponDefeat("upon being defeated", UniqueTarget.UnitTriggerCondition), TriggerUponPromotion("upon being promoted", UniqueTarget.UnitTriggerCondition), + TriggerUponLosingHealth("upon losing at least [amount] HP in a single attack", UniqueTarget.UnitTriggerCondition), //endregion