diff --git a/core/src/com/unciv/logic/trade/TradeLogic.kt b/core/src/com/unciv/logic/trade/TradeLogic.kt index 9ad3e9fb76..d125761391 100644 --- a/core/src/com/unciv/logic/trade/TradeLogic.kt +++ b/core/src/com/unciv/logic/trade/TradeLogic.kt @@ -183,6 +183,9 @@ class TradeLogic(val ourCivilization:CivilizationInfo, val otherCivilization: Ci } if (offer.type == TradeType.Technology) { to.tech.techsResearched.add(offer.name) + if (to.tech.techsToResearch.contains(offer.name)) { + to.tech.techsToResearch.remove(offer.name) + } } if(offer.type== TradeType.City){ val city = from.cities.first { it.name==offer.name } diff --git a/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt index 89b686473c..58a3f9452f 100644 --- a/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt @@ -79,9 +79,10 @@ class TechPickerScreen(internal val civInfo: CivilizationInfo) : PickerScreen() rightSideButton.onClick { if (isFreeTechPick) { civTech.techsResearched.add(selectedTech!!.name) - civTech.freeTechs -= 1 - if (selectedTech!!.name == civTech.currentTechnology()) + if (civTech.techsToResearch.contains(selectedTech!!.name)) { civTech.techsToResearch.remove(selectedTech!!.name) + } + civTech.freeTechs -= 1 } else civTech.techsToResearch = techsToResearch game.setWorldScreen()