mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 22:06:05 -04:00
Added movement cost for crossing rivers
This commit is contained in:
parent
58059fc59b
commit
84e4e58f23
@ -155,6 +155,7 @@
|
|||||||
"name": "Engineering",
|
"name": "Engineering",
|
||||||
"row": 8,
|
"row": 8,
|
||||||
"prerequisites": ["Mathematics","Construction"],
|
"prerequisites": ["Mathematics","Construction"],
|
||||||
|
"uniques": ["Roads connect tiles across rivers"],
|
||||||
"quote": "'Instrumental or mechanical science is the noblest and, above all others, the most useful.' - Leonardo da Vinci"
|
"quote": "'Instrumental or mechanical science is the noblest and, above all others, the most useful.' - Leonardo da Vinci"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ class CapitalConnectionsFinder(private val civInfo: CivilizationInfo) {
|
|||||||
cityToConnectFrom,
|
cityToConnectFrom,
|
||||||
transportType = road,
|
transportType = road,
|
||||||
overridingTransportType = railroad,
|
overridingTransportType = railroad,
|
||||||
tileFilter = { tile -> tile.hasRoad(civInfo) || tile.hasRailroad() || tile.isCityCenter() }
|
tileFilter = { tile -> tile.hasConnection(civInfo) || tile.isCityCenter() }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,12 +28,15 @@ class TechManager {
|
|||||||
|
|
||||||
// UnitMovementAlgorithms.getMovementCostBetweenAdjacentTiles is a close second =)
|
// UnitMovementAlgorithms.getMovementCostBetweenAdjacentTiles is a close second =)
|
||||||
@Transient var movementSpeedOnRoadsImproved = false
|
@Transient var movementSpeedOnRoadsImproved = false
|
||||||
|
@Transient var roadsConnectAcrossRivers = false
|
||||||
|
|
||||||
var freeTechs = 0
|
var freeTechs = 0
|
||||||
|
|
||||||
/** For calculating Great Scientist yields - see https://civilization.fandom.com/wiki/Great_Scientist_(Civ5) */
|
/** For calculating Great Scientist yields - see https://civilization.fandom.com/wiki/Great_Scientist_(Civ5) */
|
||||||
var scienceOfLast8Turns = IntArray(8) { 0 }
|
var scienceOfLast8Turns = IntArray(8) { 0 }
|
||||||
var scienceFromResearchAgreements = 0
|
var scienceFromResearchAgreements = 0
|
||||||
var techsResearched = HashSet<String>()
|
var techsResearched = HashSet<String>()
|
||||||
|
|
||||||
/** When moving towards a certain tech, the user doesn't have to manually pick every one. */
|
/** When moving towards a certain tech, the user doesn't have to manually pick every one. */
|
||||||
var techsToResearch = ArrayList<String>()
|
var techsToResearch = ArrayList<String>()
|
||||||
private var techsInProgress = HashMap<String, Int>()
|
private var techsInProgress = HashMap<String, Int>()
|
||||||
@ -314,6 +317,7 @@ class TechManager {
|
|||||||
embarkedUnitsCanEnterOcean = true
|
embarkedUnitsCanEnterOcean = true
|
||||||
|
|
||||||
if (researchedTechUniques.contains("Improves movement speed on roads")) movementSpeedOnRoadsImproved = true
|
if (researchedTechUniques.contains("Improves movement speed on roads")) movementSpeedOnRoadsImproved = true
|
||||||
|
if (researchedTechUniques.contains("Roads connect tiles across rivers")) roadsConnectAcrossRivers = true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBestRoadAvailable(): RoadStatus {
|
fun getBestRoadAvailable(): RoadStatus {
|
||||||
|
@ -451,9 +451,6 @@ open class TileInfo {
|
|||||||
fun hasConnection(civInfo: CivilizationInfo) =
|
fun hasConnection(civInfo: CivilizationInfo) =
|
||||||
roadStatus != RoadStatus.None || forestOrJungleAreRoads(civInfo)
|
roadStatus != RoadStatus.None || forestOrJungleAreRoads(civInfo)
|
||||||
|
|
||||||
fun hasRoad(civInfo: CivilizationInfo) =
|
|
||||||
roadStatus == RoadStatus.Road || forestOrJungleAreRoads(civInfo)
|
|
||||||
|
|
||||||
fun hasRailroad() =
|
fun hasRailroad() =
|
||||||
roadStatus == RoadStatus.Railroad
|
roadStatus == RoadStatus.Railroad
|
||||||
|
|
||||||
|
@ -23,7 +23,13 @@ class UnitMovementAlgorithms(val unit:MapUnit) {
|
|||||||
if (from.roadStatus == RoadStatus.Railroad && to.roadStatus == RoadStatus.Railroad)
|
if (from.roadStatus == RoadStatus.Railroad && to.roadStatus == RoadStatus.Railroad)
|
||||||
return 1 / 10f + extraCost
|
return 1 / 10f + extraCost
|
||||||
|
|
||||||
if (from.hasConnection(civInfo) && to.hasConnection(civInfo))
|
val areConnectedByRoad = from.hasConnection(civInfo) && to.hasConnection(civInfo)
|
||||||
|
if(from.isConnectedByRiver(to) &&
|
||||||
|
(!areConnectedByRoad || !civInfo.tech.roadsConnectAcrossRivers)){
|
||||||
|
return 100f // Rivers take the entire turn to cross
|
||||||
|
}
|
||||||
|
|
||||||
|
if (areConnectedByRoad)
|
||||||
{
|
{
|
||||||
return if (unit.civInfo.tech.movementSpeedOnRoadsImproved) 1 / 3f + extraCost
|
return if (unit.civInfo.tech.movementSpeedOnRoadsImproved) 1 / 3f + extraCost
|
||||||
else 1 / 2f + extraCost
|
else 1 / 2f + extraCost
|
||||||
|
Loading…
x
Reference in New Issue
Block a user