From 680bd1a1132f86810f603094527f6bbc926816c2 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Thu, 10 Feb 2022 16:54:12 +0200 Subject: [PATCH] Resolved #6136 - Destroyed units on capture provide the correct notification --- core/src/com/unciv/logic/battle/Battle.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index 38ba3ece65..0f7f7b0088 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -503,23 +503,23 @@ object Battle { val defenderCiv = defender.getCivInfo() val capturedUnit = defender.unit - capturedUnit.civInfo.addNotification("An enemy [" + attacker.getName() + "] has captured our [" + defender.getName() + "]", - defender.getTile().position, attacker.getName(), NotificationIcon.War, defender.getName()) val capturedUnitTile = capturedUnit.getTile() val originalOwner = if (capturedUnit.originalOwner != null) capturedUnit.civInfo.gameInfo.getCivilization(capturedUnit.originalOwner!!) else null - + var wasDestroyedInstead = false when { // Uncapturable units are destroyed defender.unit.hasUnique(UniqueType.Uncapturable) -> { capturedUnit.destroy() + wasDestroyedInstead = true } // City states can never capture settlers at all capturedUnit.hasUnique(UniqueType.FoundCity) && attacker.getCivInfo().isCityState() -> { capturedUnit.destroy() + wasDestroyedInstead = true } // Is it our old unit? attacker.getCivInfo() == originalOwner -> { @@ -551,6 +551,13 @@ object Battle { else -> capturedUnit.capturedBy(attacker.getCivInfo()) } + if (!wasDestroyedInstead) + capturedUnit.civInfo.addNotification("An enemy [" + attacker.getName() + "] has captured our [" + defender.getName() + "]", + defender.getTile().position, attacker.getName(), NotificationIcon.War, defender.getName()) + else + capturedUnit.civInfo.addNotification("An enemy [" + attacker.getName() + "] has destroyed our [" + defender.getName() + "]", + defender.getTile().position, attacker.getName(), NotificationIcon.War, defender.getName()) + if (checkDefeat) destroyIfDefeated(defenderCiv, attacker.getCivInfo()) capturedUnit.updateVisibleTiles()