From 118f11abb1f0554a36a7ab9ef6ab58a6a349898c Mon Sep 17 00:00:00 2001 From: SimonCeder <63475501+SimonCeder@users.noreply.github.com> Date: Tue, 2 Nov 2021 23:14:32 +0100 Subject: [PATCH] Encampments revealed by ruins effects have lastSeenImprovement updated (#5631) --- .../civilization/CivInfoTransientUpdater.kt | 1 - .../ruleset/unique/UniqueTriggerActivation.kt | 19 +++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt b/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt index 089f204c21..ff3ff2b862 100644 --- a/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt +++ b/core/src/com/unciv/logic/civilization/CivInfoTransientUpdater.kt @@ -98,7 +98,6 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo) { if (civInfo.playerType == PlayerType.AI) return // don't bother for AI, they don't really use the info anyway for (tile in civInfo.viewableTiles) { - val before = civInfo.lastSeenImprovement[tile.position] if (tile.improvement == null) civInfo.lastSeenImprovement.remove(tile.position) else diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt b/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt index 764b50b4d9..cf198ff3bb 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt @@ -401,12 +401,19 @@ object UniqueTriggerActivation { } .map { it.position } if (nearbyRevealableTiles.none()) return false - civInfo.exploredTiles.addAll(nearbyRevealableTiles - .shuffled(tileBasedRandom) - .apply { - if (unique.params[0] != "All") this.take(unique.params[0].toInt()) - } - ) + val revealedTiles = nearbyRevealableTiles + .shuffled(tileBasedRandom) + .apply { + if (unique.params[0] != "All") this.take(unique.params[0].toInt()) + } + for (position in revealedTiles) { + civInfo.exploredTiles.add(position) + val revealedTileInfo = civInfo.gameInfo.tileMap[position] + if (revealedTileInfo.improvement == null) + civInfo.lastSeenImprovement.remove(position) + else + civInfo.lastSeenImprovement[position] = revealedTileInfo.improvement!! + } if (notification != null) { civInfo.addNotification(