Fixed wrapped tiles costing way to much gold (#3648)

This commit is contained in:
GGGuenni
2021-03-06 18:49:59 +01:00
committed by GitHub
parent ee05bc28ec
commit d161e8393e

View File

@ -12,6 +12,7 @@ import com.unciv.models.stats.Stats
import com.unciv.models.translations.tr
import com.unciv.ui.utils.Fonts
import kotlin.math.abs
import kotlin.math.min
open class TileInfo {
@Transient
@ -398,7 +399,14 @@ open class TileInfo {
fun aerialDistanceTo(otherTile: TileInfo): Int {
val xDelta = position.x - otherTile.position.x
val yDelta = position.y - otherTile.position.y
return listOf(abs(xDelta), abs(yDelta), abs(xDelta - yDelta)).max()!!.toInt()
val distance = listOf(abs(xDelta), abs(yDelta), abs(xDelta - yDelta)).maxOrNull()!!
val otherTileUnwrappedPos = tileMap.getUnWrappedPosition(otherTile.position)
val xDeltaWrapped = position.x - otherTileUnwrappedPos.x
val yDeltaWrapped = position.y - otherTileUnwrappedPos.y
val wrappedDistance = listOf(abs(xDeltaWrapped), abs(yDeltaWrapped), abs(xDeltaWrapped - yDeltaWrapped)).maxOrNull()!!
return min(distance, wrappedDistance).toInt()
}
fun isRoughTerrain() = getBaseTerrain().rough || getTerrainFeature()?.rough == true