mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-22 19:08:48 -04:00
Add in Target Unit check for uniques when entering combat (#13804)
* Add in Target Unit check for uniques when entering combat * Flip check to be easier to read * I'm petty enough to notice the whitespace diff * And I noticed the wrong one, lol
This commit is contained in:
parent
1a1844641e
commit
ff3c17d9fb
@ -217,19 +217,25 @@ object Battle {
|
||||
|
||||
return damageDealt + interceptDamage
|
||||
}
|
||||
|
||||
|
||||
private fun triggerCombatUniques(attacker: ICombatant, defender: ICombatant, attackedTile: Tile) {
|
||||
val attackerContext = GameContext(attacker.getCivInfo(),
|
||||
ourCombatant = attacker, theirCombatant = defender, tile = attackedTile, combatAction = CombatAction.Attack)
|
||||
if (attacker is MapUnitCombatant)
|
||||
for (unique in attacker.unit.getTriggeredUniques(UniqueType.TriggerUponCombat, attackerContext)) {
|
||||
UniqueTriggerActivation.triggerUnique(unique, attacker.unit)
|
||||
val unit = if (unique.params[0] == Constants.targetUnit && defender is MapUnitCombatant)
|
||||
defender.unit
|
||||
else attacker.unit
|
||||
UniqueTriggerActivation.triggerUnique(unique, unit)
|
||||
}
|
||||
val defenderContext = GameContext(defender.getCivInfo(),
|
||||
ourCombatant = defender, theirCombatant = attacker, tile = attackedTile, combatAction = CombatAction.Defend)
|
||||
if (defender is MapUnitCombatant)
|
||||
for (unique in defender.unit.getTriggeredUniques(UniqueType.TriggerUponCombat, defenderContext)) {
|
||||
UniqueTriggerActivation.triggerUnique(unique, defender.unit)
|
||||
val unit = if (unique.params[0] == Constants.targetUnit && attacker is MapUnitCombatant)
|
||||
attacker.unit
|
||||
else defender.unit
|
||||
UniqueTriggerActivation.triggerUnique(unique, unit)
|
||||
}
|
||||
}
|
||||
|
||||
@ -365,13 +371,21 @@ object Battle {
|
||||
|
||||
if (attacker is MapUnitCombatant)
|
||||
for (unique in attacker.unit.getTriggeredUniques(UniqueType.TriggerUponLosingHealth)
|
||||
{ it.params[0].toInt() <= defenderDamageDealt })
|
||||
UniqueTriggerActivation.triggerUnique(unique, attacker.unit, triggerNotificationText = "due to losing [$defenderDamageDealt] HP")
|
||||
{ it.params[0].toInt() <= defenderDamageDealt }) {
|
||||
val unit = if (unique.params[0] == Constants.targetUnit && defender is MapUnitCombatant)
|
||||
defender.unit
|
||||
else attacker.unit
|
||||
UniqueTriggerActivation.triggerUnique(unique, unit, triggerNotificationText = "due to losing [$defenderDamageDealt] HP")
|
||||
}
|
||||
|
||||
if (defender is MapUnitCombatant)
|
||||
for (unique in defender.unit.getTriggeredUniques(UniqueType.TriggerUponLosingHealth)
|
||||
{ it.params[0].toInt() <= attackerDamageDealt })
|
||||
UniqueTriggerActivation.triggerUnique(unique, defender.unit, triggerNotificationText = "due to losing [$attackerDamageDealt] HP")
|
||||
{ it.params[0].toInt() <= attackerDamageDealt }) {
|
||||
val unit = if (unique.params[0] == Constants.targetUnit && attacker is MapUnitCombatant)
|
||||
attacker.unit
|
||||
else defender.unit
|
||||
UniqueTriggerActivation.triggerUnique(unique, unit, triggerNotificationText = "due to losing [$attackerDamageDealt] HP")
|
||||
}
|
||||
|
||||
plunderFromDamage(attacker, defender, attackerDamageDealt)
|
||||
return DamageDealt(attackerDamageDealt, defenderDamageDealt)
|
||||
|
Loading…
x
Reference in New Issue
Block a user