From 1a7f562bc09070a18aed97d9c876032a70fbed93 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sat, 20 Nov 2021 23:27:31 +0200 Subject: [PATCH] Resolved #5265 - cannot add 2 of the same buildings to the queue visually --- core/src/com/unciv/logic/city/CityConstructions.kt | 5 ++++- core/src/com/unciv/logic/civilization/CivilizationInfo.kt | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/logic/city/CityConstructions.kt b/core/src/com/unciv/logic/city/CityConstructions.kt index 98b7e12041..61ebe05c19 100644 --- a/core/src/com/unciv/logic/city/CityConstructions.kt +++ b/core/src/com/unciv/logic/city/CityConstructions.kt @@ -601,10 +601,13 @@ class CityConstructions { fun addToQueue(constructionName: String) { if (isQueueFull()) return + val construction = getConstruction(constructionName) + if (!construction.isBuildable(this)) return + if (construction is Building && isBeingConstructedOrEnqueued(constructionName)) return if (currentConstructionFromQueue == "" || currentConstructionFromQueue == "Nothing") { currentConstructionFromQueue = constructionName } else if (getConstruction(constructionQueue.last()) is PerpetualConstruction) { - if (getConstruction(constructionName) is PerpetualConstruction) { // perpetual constructions will replace each other + if (construction is PerpetualConstruction) { // perpetual constructions will replace each other constructionQueue.removeAt(constructionQueue.size - 1) constructionQueue.add(constructionName) } else diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index de56f52e21..9d94836d81 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -343,10 +343,10 @@ class CivilizationInfo { fun hasResource(resourceName: String): Boolean = getCivResourcesByName()[resourceName]!! > 0 // This function should be removed and replaced by marking where uniques originate from, hopefully. - fun getCivWideBuildingUniques(cityItIsFor: CityInfo?): Sequence = + fun getCivWideBuildingUniques(cityItIsFor: CityInfo): Sequence = cities.asSequence().flatMap { city -> - if (cityItIsFor != null && city == cityItIsFor) + if (city == cityItIsFor) city.getAllUniquesWithNonLocalEffects().filter { !it.isAntiLocalEffect } else city.getAllUniquesWithNonLocalEffects() }