mirror of
https://github.com/yairm210/Unciv.git
synced 2025-08-03 16:49:15 +07:00
Added 'trigger upon losing over X HP in single attack'
This commit is contained in:
@ -366,6 +366,16 @@ object Battle {
|
|||||||
val defenderDamageDealt = attackerHealthBefore - attacker.getHealth()
|
val defenderDamageDealt = attackerHealthBefore - attacker.getHealth()
|
||||||
val attackerDamageDealt = defenderHealthBefore - defender.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)
|
plunderFromDamage(attacker, defender, attackerDamageDealt)
|
||||||
return DamageDealt(attackerDamageDealt, defenderDamageDealt)
|
return DamageDealt(attackerDamageDealt, defenderDamageDealt)
|
||||||
}
|
}
|
||||||
|
@ -735,6 +735,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
TriggerUponDefeatingUnit("upon defeating a [mapUnitFilter] unit", UniqueTarget.UnitTriggerCondition),
|
TriggerUponDefeatingUnit("upon defeating a [mapUnitFilter] unit", UniqueTarget.UnitTriggerCondition),
|
||||||
TriggerUponDefeat("upon being defeated", UniqueTarget.UnitTriggerCondition),
|
TriggerUponDefeat("upon being defeated", UniqueTarget.UnitTriggerCondition),
|
||||||
TriggerUponPromotion("upon being promoted", UniqueTarget.UnitTriggerCondition),
|
TriggerUponPromotion("upon being promoted", UniqueTarget.UnitTriggerCondition),
|
||||||
|
TriggerUponLosingHealth("upon losing at least [amount] HP in a single attack", UniqueTarget.UnitTriggerCondition),
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user