Added 'trigger upon losing over X HP in single attack'

This commit is contained in:
Yair Morgenstern
2023-02-26 22:11:23 +02:00
parent faada0ac79
commit 9988764d4d
2 changed files with 11 additions and 0 deletions

View File

@ -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)
}

View File

@ -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