mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-24 12:05:54 -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
@ -223,13 +223,19 @@ object Battle {
|
|||||||
ourCombatant = attacker, theirCombatant = defender, tile = attackedTile, combatAction = CombatAction.Attack)
|
ourCombatant = attacker, theirCombatant = defender, tile = attackedTile, combatAction = CombatAction.Attack)
|
||||||
if (attacker is MapUnitCombatant)
|
if (attacker is MapUnitCombatant)
|
||||||
for (unique in attacker.unit.getTriggeredUniques(UniqueType.TriggerUponCombat, attackerContext)) {
|
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(),
|
val defenderContext = GameContext(defender.getCivInfo(),
|
||||||
ourCombatant = defender, theirCombatant = attacker, tile = attackedTile, combatAction = CombatAction.Defend)
|
ourCombatant = defender, theirCombatant = attacker, tile = attackedTile, combatAction = CombatAction.Defend)
|
||||||
if (defender is MapUnitCombatant)
|
if (defender is MapUnitCombatant)
|
||||||
for (unique in defender.unit.getTriggeredUniques(UniqueType.TriggerUponCombat, defenderContext)) {
|
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)
|
if (attacker is MapUnitCombatant)
|
||||||
for (unique in attacker.unit.getTriggeredUniques(UniqueType.TriggerUponLosingHealth)
|
for (unique in attacker.unit.getTriggeredUniques(UniqueType.TriggerUponLosingHealth)
|
||||||
{ it.params[0].toInt() <= defenderDamageDealt })
|
{ it.params[0].toInt() <= defenderDamageDealt }) {
|
||||||
UniqueTriggerActivation.triggerUnique(unique, attacker.unit, triggerNotificationText = "due to losing [$defenderDamageDealt] HP")
|
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)
|
if (defender is MapUnitCombatant)
|
||||||
for (unique in defender.unit.getTriggeredUniques(UniqueType.TriggerUponLosingHealth)
|
for (unique in defender.unit.getTriggeredUniques(UniqueType.TriggerUponLosingHealth)
|
||||||
{ it.params[0].toInt() <= attackerDamageDealt })
|
{ it.params[0].toInt() <= attackerDamageDealt }) {
|
||||||
UniqueTriggerActivation.triggerUnique(unique, defender.unit, triggerNotificationText = "due to losing [$attackerDamageDealt] HP")
|
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)
|
plunderFromDamage(attacker, defender, attackerDamageDealt)
|
||||||
return DamageDealt(attackerDamageDealt, defenderDamageDealt)
|
return DamageDealt(attackerDamageDealt, defenderDamageDealt)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user