mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-28 05:39:10 +07:00
Units that can't build roads should not have connect roads automation. (#10760)
This commit is contained in:
@ -271,7 +271,20 @@ object UnitActionsFromUniques {
|
||||
|
||||
fun getConnectRoadActions(unit: MapUnit, tile: Tile) = sequence {
|
||||
if (!unit.hasUnique(UniqueType.BuildImprovements)) return@sequence
|
||||
if (unit.civ.tech.getBestRoadAvailable() == RoadStatus.None) return@sequence
|
||||
val unitCivBestRoad = unit.civ.tech.getBestRoadAvailable()
|
||||
if (unitCivBestRoad == RoadStatus.None) return@sequence
|
||||
|
||||
var unitCanBuildRoad = false
|
||||
val uniquesToCheck = UnitActionModifiers.getUsableUnitActionUniques(unit, UniqueType.BuildImprovements)
|
||||
|
||||
// If a unit has terrainFilter "Land" or improvementFilter "All", then we may proceed.
|
||||
// If a unit only had improvement filter "Road" or "Railroad", then we need to also check if that tech is unlocked
|
||||
unitCanBuildRoad = uniquesToCheck.any { it.params[0] == "Land" || it.params[0] == "All" }
|
||||
|| uniquesToCheck.any {it.params[0] == "Road" } && (unitCivBestRoad == RoadStatus.Road || unitCivBestRoad == RoadStatus.Railroad)
|
||||
|| uniquesToCheck.any {it.params[0] == "Railroad"} && (unitCivBestRoad == RoadStatus.Railroad)
|
||||
|
||||
if(!unitCanBuildRoad) return@sequence
|
||||
|
||||
val worldScreen = GUI.getWorldScreen()
|
||||
yield(UnitAction(UnitActionType.ConnectRoad,
|
||||
isCurrentAction = unit.isAutomatingRoadConnection(),
|
||||
|
Reference in New Issue
Block a user