diff --git a/core/src/com/unciv/logic/civilization/managers/TechManager.kt b/core/src/com/unciv/logic/civilization/managers/TechManager.kt index 00a8cf4f43..3d294644b8 100644 --- a/core/src/com/unciv/logic/civilization/managers/TechManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/TechManager.kt @@ -478,13 +478,15 @@ class TechManager : IsPartOfGameInfoSerialization { } fun getBestRoadAvailable(): RoadStatus { - val roadImprovement = RoadStatus.Road.improvement(getRuleset()) // May not exist in mods - if (roadImprovement == null || !isResearched(roadImprovement.techRequired!!)) return RoadStatus.None + val railroadImprovement = RoadStatus.Railroad.improvement(getRuleset()) // May not exist in mods + if (railroadImprovement != null && (railroadImprovement.techRequired==null || isResearched(railroadImprovement.techRequired!!))) + return RoadStatus.Railroad - val railroadImprovement = RoadStatus.Railroad.improvement(getRuleset()) - val canBuildRailroad = railroadImprovement != null && isResearched(railroadImprovement.techRequired!!) + val roadImprovement = RoadStatus.Road.improvement(getRuleset()) + if (roadImprovement != null && (roadImprovement.techRequired==null || isResearched(roadImprovement.techRequired!!))) + return RoadStatus.Road - return if (canBuildRailroad) RoadStatus.Railroad else RoadStatus.Road + return RoadStatus.None } fun canResearchTech(): Boolean { diff --git a/core/src/com/unciv/logic/civilization/transients/CapitalConnectionsFinder.kt b/core/src/com/unciv/logic/civilization/transients/CapitalConnectionsFinder.kt index 8b203d971d..da09197271 100644 --- a/core/src/com/unciv/logic/civilization/transients/CapitalConnectionsFinder.kt +++ b/core/src/com/unciv/logic/civilization/transients/CapitalConnectionsFinder.kt @@ -23,8 +23,11 @@ class CapitalConnectionsFinder(private val civInfo: Civilization) { private val harborFromRailroad = "$harbor-$railroad" private val ruleset = civInfo.gameInfo.ruleSet - private val roadIsResearched = ruleset.tileImprovements.containsKey(road) && civInfo.tech.isResearched(ruleset.tileImprovements[road]!!.techRequired!!) - private val railroadIsResearched = ruleset.tileImprovements.containsKey(railroad) && civInfo.tech.isResearched(ruleset.tileImprovements[railroad]!!.techRequired!!) + private val roadIsResearched = ruleset.tileImprovements[road].let { + it != null && (it.techRequired==null || civInfo.tech.isResearched(it.techRequired!!)) } + + private val railroadIsResearched = ruleset.tileImprovements[railroad].let { + it != null && (it.techRequired==null || civInfo.tech.isResearched(it.techRequired!!)) } init { citiesReachedToMediums[civInfo.getCapital()!!] = hashSetOf("Start")