Merge remote-tracking branch 'upstream/master'

update
This commit is contained in:
YueR 2019-09-21 00:13:59 +08:00
commit ce892d20a2
10 changed files with 123 additions and 29 deletions

View File

@ -573,7 +573,7 @@
outerColor:[54,72,72], outerColor:[54,72,72],
innerColor:[246,205,137], innerColor:[246,205,137],
uniqueName:"The Great Warpath" uniqueName:"The Great Warpath"
unique:"All units move through Forest and Jungle tiles in friendly territory as if it is Road. These tiles can be used to establish City Connections upon researching the Wheel.", unique: "All units move through Forest and Jungle Tiles in friendly territory as if they have roads. These tiles can be used to establish City Connections upon researching the Wheel.",
cities:["Onoondaga","Osininka","Grand River","Akwesasme","Buffalo Creek","Brantford","Montreal","Genesse River", cities:["Onoondaga","Osininka","Grand River","Akwesasme","Buffalo Creek","Brantford","Montreal","Genesse River",
"Canandaigua Lake","Lake Simcoe","Salamanca","Gowanda","Cuba","Akron","Kanesatake","Ganienkeh","Cayuga Castle", "Canandaigua Lake","Lake Simcoe","Salamanca","Gowanda","Cuba","Akron","Kanesatake","Ganienkeh","Cayuga Castle",
"Chondote","Canajoharie","Nedrow","Oneida Lake","Kanonwalohale","Green Bay","Southwold","Mohawk Valley", "Chondote","Canajoharie","Nedrow","Oneida Lake","Kanonwalohale","Green Bay","Southwold","Mohawk Valley",

View File

@ -145,6 +145,31 @@
improvingTechStats:{gold:1} improvingTechStats:{gold:1}
}, },
//Civilization unique improvements
/*
{
name:"Moai",
uniqueTo:"Polynesia",
culture:1,
turnsToBuild:4,
improvingTech:"Construction",
uniques:["+1 additional Culture for each adjacent Moai","+1 Gold after researching Flight"],
terrainsCanBeBuiltOn:["Hill"],
//It can be colored in orange
},
{
name:"Terrace Farm",
uniqueTo:"Inca",
food:1,
turnsToBuild:4,
improvingTech:"Construction",
uniques:["+1 Food for each adjacent Mountain","+1 additional Food with Fertilizer and no fresh water"],
terrainsCanBeBuiltOn:["Plains","Grassland","Desert","Tundra"],
//It can be colored in lemon
//Cannot improve a resource
},
*/
{ name:"Ancient ruins" }, { name:"Ancient ruins" },
{ name:"City ruins" }, { name:"City ruins" },
{ name:"Barbarian encampment" }, { name:"Barbarian encampment" },

View File

@ -932,6 +932,10 @@
Polish:"Porcelanowa wieża" Polish:"Porcelanowa wieża"
} }
"'Things always seem fairer when we look back at them, and it is out of that inaccessible tower of the past that Longing leans and beckons.' - James Russell Lowell":{
Italian:"'Le cose sembrano sempre più belle quando ci voltiamo indietro per guardarle, ed è dall'inaccessibile torre del passato che la nostalgia si protende e chiama.' - James Russel Lowell"
}
"Free great scientist appears":{ "Free great scientist appears":{
Spanish:"Aparece una Gran Científico gratis" Spanish:"Aparece una Gran Científico gratis"
Italian:"Appare un Grande Scienziato" Italian:"Appare un Grande Scienziato"
@ -1004,6 +1008,10 @@
Polish:"Kaplica Sykstyńska" Polish:"Kaplica Sykstyńska"
} }
"'I live and love in God's peculiar light.' - Michelangelo Buonarroti":{
Italian:"'Vivo e amo sotto la peculiare luce di Dio.' - Michelangelo Buonarroti"
}
"Culture in all cities increased by 25%":{ "Culture in all cities increased by 25%":{
Italian:"+25% cultura in ogni città" Italian:"+25% cultura in ogni città"
Russian:"Увеличивает прирост культуры на 25% во всех городах" Russian:"Увеличивает прирост культуры на 25% во всех городах"
@ -1063,6 +1071,10 @@
Polish:"Zakazane miasto" Polish:"Zakazane miasto"
} }
"'Most of us can, as we choose, make of this world either a palace or a prison' - John Lubbock":{
Italian:"'La maggior parte di noi può, a sua volontà, fare di questo mondo un palazzo o una prigione.' - John Lubbock"
}
"Unhappiness from population decreased by 10%":{ "Unhappiness from population decreased by 10%":{
Italian:"-10% infelicità dalla popolazione" Italian:"-10% infelicità dalla popolazione"
Russian:"Снижает недовольство от населения на 10%" Russian:"Снижает недовольство от населения на 10%"
@ -1099,6 +1111,10 @@
Russian:"Пизанская башня" Russian:"Пизанская башня"
} }
"'Don't clap too hard - it's a very old building.' - John Osbourne":{
Italian:"'Non applaudite troppo forte - è un edificio molto vecchio.' - John Osborne"
}
"Free Great Person":{ "Free Great Person":{
Italian:"Ottieni un Grande Personaggio gratuito" Italian:"Ottieni un Grande Personaggio gratuito"
Romanian:"Persoană mare gratuită" Romanian:"Persoană mare gratuită"
@ -1131,6 +1147,10 @@
Russian:"Замок Химэдзи" Russian:"Замок Химэдзи"
} }
"'Bushido is realized in the presence of death. This means choosing death whenever there is a choice between life and death. There is no other reasoning.' - Yamamoto Tsunetomo":{
Italian:"'Il Bushido si realizza in presenza della morte. Significa, ogni volta che c'è una scelta tra la vita e la morte, scegliere la seconda. Non c'è alcun altro ragionamento' - Yamamoto Tsunetomo"
}
"+15% combat strength for units fighting in friendly territory":{ "+15% combat strength for units fighting in friendly territory":{
Italian:"+15% Forza per le unità che combattono in territorio amico" Italian:"+15% Forza per le unità che combattono in territorio amico"
Simplified_Chinese:"单位在境内+15%战斗力" Simplified_Chinese:"单位在境内+15%战斗力"
@ -1152,6 +1172,10 @@
Polish:"Tadź Mahal" Polish:"Tadź Mahal"
} }
"'The Taj Mahal rises above the banks of the river like a solitary tear suspended on the cheek of time.' - Rabindranath Tagore":{
Italian:"'Il Taj Mahal sorge sulle rive del fiume come una lacrima solitaria sospesa sulla guancia del tempo.' - Rabindranath Tagore"
}
"Empire enters golden age":{ "Empire enters golden age":{
Italian:"L'impero entra nell'Età dell'Oro" Italian:"L'impero entra nell'Età dell'Oro"
Russian:"Империя вступает в золотой век" Russian:"Империя вступает в золотой век"
@ -1221,6 +1245,10 @@
Polish:"Luwr" Polish:"Luwr"
} }
"'Every genuine work of art has as much reason for being as the earth and the sun' - Ralph Waldo Emerson":{
Italian:"'Ogni opera d'arte genuina ha tanta ragione d'esistere quanto la terra e il sole.' - Ralph Waldo Emerson"
}
"Free Great Artist Appears":{ "Free Great Artist Appears":{
Italian:"Appare un Grande Artista gratuito" Italian:"Appare un Grande Artista gratuito"
Russian:"Появляется бесплатный Великий Художник" Russian:"Появляется бесплатный Великий Художник"
@ -1339,6 +1367,10 @@
Russian:"Биг Бен" Russian:"Биг Бен"
} }
"'To achieve great things, two things are needed: a plan, and not quite enough time.' - Leonard Bernstein":{
Italian:"'Per ottenere grandi risultati servono due cose: un piano e un sacco di tempo.' - Leonard Bernstein"
}
"-15% to purchasing items in cities":{ "-15% to purchasing items in cities":{
Italian:"-15% costi in Oro per l'acquisto di unità ed edifici nelle Città" Italian:"-15% costi in Oro per l'acquisto di unità ed edifici nelle Città"
Simplified_Chinese:"所有城市购买建造项目所需的金钱花费-15%" Simplified_Chinese:"所有城市购买建造项目所需的金钱花费-15%"
@ -1359,6 +1391,10 @@
Polish:"Statua Chrystusa Zbawiciela" Polish:"Statua Chrystusa Zbawiciela"
} }
"'Come to me, all who labor and are heavy burdened, and I will give you rest.' - New Testament, Matthew 11:28":{
Italian:"'Venite a me, voi tutti che siete affaticati e oppressi, e io vi ristorerò.' - Matteo 11:28"
}
"Culture cost of adopting new Policies reduced by 10%":{ "Culture cost of adopting new Policies reduced by 10%":{
Italian:"-10% costo in Cultura per ogni nuova politica" Italian:"-10% costo in Cultura per ogni nuova politica"
Russian:"Колличество культуры для принятия новых общественных институтов -10%" Russian:"Колличество культуры для принятия новых общественных институтов -10%"
@ -1382,6 +1418,10 @@
Polish:"Kreml" Polish:"Kreml"
} }
"'The Law is a fortress on a hill that armies cannot take or floods wash away.' - The Prophet Muhammed":{
Italian:"'La Legge è una fortezza su una collina che gli eserciti non possono catturare e le inondazioni non possono spazzare via. - Il profeta Maometto"
}
"Defensive buildings in all cities are 25% more effective":{ "Defensive buildings in all cities are 25% more effective":{
Italian:"+25% efficacia delle strutture difensive in tutte le città" Italian:"+25% efficacia delle strutture difensive in tutte le città"
Simplified_Chinese:"所有城市防御建筑建造速度+25%" Simplified_Chinese:"所有城市防御建筑建造速度+25%"
@ -1398,6 +1438,10 @@
Russian:"Замок Нойшванштайн" Russian:"Замок Нойшванштайн"
} }
"'...the location is one of the most beautiful to be found, holy and unapproachable, a worthy temple for the divine friend who has brought salvation and true blessing to the world.' - King Ludwig II of Bavaria":{
Italian:"'...la posizione è una delle più belle che si possano trovare, sacra e inaccessibile, degno tempio per l'amico divino che ha portato salvezza e vera benedizione a tutto il mondo.' - Re Ludovico II di Baviera"
}
"+1 happiness, +2 culture and +3 gold from every Castle":{ "+1 happiness, +2 culture and +3 gold from every Castle":{
Italian:"+1 Felicità, +2 Cultura e +3 Oro per ogni Castello posseduto" Italian:"+1 Felicità, +2 Cultura e +3 Oro per ogni Castello posseduto"
Simplified_Chinese:"每一座城堡+3金钱、+2文化和+1快乐" Simplified_Chinese:"每一座城堡+3金钱、+2文化和+1快乐"
@ -1442,6 +1486,10 @@
Polish:"Wieża Eiffla" Polish:"Wieża Eiffla"
} }
"'We live only to discover beauty, all else is a form of waiting' - Kahlil Gibran":{
Italian:"'Chi può pensare che, siccome siamo ingegneri, la bellezza non ci preoccupi, o che non cerchiamo di costruire strutture belle oltre che solide e durature?' - Gustave Alexandre Eiffel"
}
"Provides 1 happiness per social policy":{ "Provides 1 happiness per social policy":{
Italian:"+1 Felicità per ogni politica sociale" Italian:"+1 Felicità per ogni politica sociale"
Russian:"Обеспечивает 1 счастье за каждый общественный институт" Russian:"Обеспечивает 1 счастье за каждый общественный институт"
@ -1464,6 +1512,10 @@
Russian:"Статуя Свободы" Russian:"Статуя Свободы"
} }
"'Give me your tired, your poor, your huddled masses yearning to breathe free, the wretched refuse of your teeming shore. Send these, the homeless, tempest-tossed to me, I lift my lamp beside the golden door!' - Emma Lazarus":{
Italian:"'Datemi coloro che sono esausti, i poveri / Le folle accalcate che bramano di respirare libere, / I miseri rifiuti delle vostre coste brulicanti. / Mandatemi chi non ha casa, squassato dalle tempeste, / Sollevo la fiaccola accanto alla porta d'oro!' - Emma Lazarus"
}
"+1 Production from specialists":{ "+1 Production from specialists":{
Italian:"+1 Produzione dagli Specialisti" Italian:"+1 Produzione dagli Specialisti"
German:"+1 Produktion von Spezialisten" German:"+1 Produktion von Spezialisten"
@ -1566,6 +1618,10 @@
Russian:"Сиднейский Оперный театр" Russian:"Сиднейский Оперный театр"
} }
"'Those who lose dreaming are lost.' - Australian Aboriginal saying":{
Italian:"'Quelli che perdono i sogni sono perduti.' - Massima degli aborigeni australiani"
}
/* /*
"CN Tower":{ "CN Tower":{
Italian:"CN Tower" //same in Italian Italian:"CN Tower" //same in Italian
@ -1604,6 +1660,10 @@
Russian:"Пентагон" Russian:"Пентагон"
} }
"'In preparing for battle I have always found that plans are useless, but planning is indispensable.' - Dwight D. Eisenhower":{
Italian:"'Preparandomi alla battaglia ho sempre constatato che i piani sono inutili, ma la pianificazione è indispensabile.' - Dwight D. Eisenhower"
}
"Gold cost of upgrading military units reduced by 33%":{ "Gold cost of upgrading military units reduced by 33%":{
Spanish:"El coste de mejorar unidades con oro se reduce un 33%" Spanish:"El coste de mejorar unidades con oro se reduce un 33%"
Italian:"-33% costi in Oro per aggiornare un'unità militare" Italian:"-33% costi in Oro per aggiornare un'unità militare"
@ -1699,6 +1759,10 @@
Russian:"Телескоп Хаббл" Russian:"Телескоп Хаббл"
} }
"'The wonder is, not that the field of stars is so vast, but that man has measured it.' - Anatole France":{
Italian:"'La meraviglia non sta nella vastità del campo di stelle, ma nel fatto che l'uomo lo abbia misurato.' - Anatole France"
}
"2 free great scientists appear":{ "2 free great scientists appear":{
Italian:"Appaiono 2 grandi scenziati gratuiti" Italian:"Appaiono 2 grandi scenziati gratuiti"
German:"2 kostenlose Große Wissenschaftler erscheinen" German:"2 kostenlose Große Wissenschaftler erscheinen"

View File

@ -1213,7 +1213,7 @@
} }
"+2 Science for all specialists and Great Person tile improvements":{ "+2 Science for all specialists and Great Person tile improvements":{
Italian:"+2 Scienza per ogni specialista e ogni miglioramento da Gran Personaggio." Italian:"+2 Scienza per ogni specialista e ogni miglioramento dai Grandi Personaggi."
Simplified_Chinese:"所有专业人员和所有伟人设施+2科研" Simplified_Chinese:"所有专业人员和所有伟人设施+2科研"
Russian:"+2 Наука для всех специалистов и улучшений клеток Великими людьми." Russian:"+2 Наука для всех специалистов и улучшений клеток Великими людьми."
} }
@ -1229,8 +1229,8 @@
Italian:"Hiawatha"//Same as in Italian Italian:"Hiawatha"//Same as in Italian
} }
"Units move through Forest and Jungle in friendly territory as if it is a Road. These tiles can be used to establish Trade Routes upon searching The Wheel.":{ "All units move through Forest and Jungle Tiles in friendly territory as if they have roads. These tiles can be used to establish City Connections upon researching the Wheel.":{
Italian:"Le caselle di Foreste e Giungle in territorio amico agiscono come strade, e sono usate per stabilire Rotte Commerciali quando si scopre la Ruota." Italian:"Le caselle di Foreste e Giungle in territorio amico agiscono come strade, e sono usate per stabilire Rotte Commerciali quando scopri la Ruota."
Portuguese:"Mova-se por florestas e selvas em território amigo como se fossem estradas. Estas terras podem ser usadas para estabelecer rotas de comércio após pesquisar a roda." Portuguese:"Mova-se por florestas e selvas em território amigo como se fossem estradas. Estas terras podem ser usadas para estabelecer rotas de comércio após pesquisar a roda."
French:"Les Forêt et les Jungles en territoire alliés ont les mêmes attributs que les routes. A la découverte de la Roue, elles peuvent établir des routes commerciales." French:"Les Forêt et les Jungles en territoire alliés ont les mêmes attributs que les routes. A la découverte de la Roue, elles peuvent établir des routes commerciales."
} }
@ -1246,7 +1246,7 @@
Italian:"Dario I" Italian:"Dario I"
} }
"Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and a +10% Combat Strenght bonus.":{ "Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength":{
Italian:"+50% durata delle Età dell'Oro, durante le quali le unità ricevono +1 Movimento e +10% Forza." Italian:"+50% durata delle Età dell'Oro, durante le quali le unità ricevono +1 Movimento e +10% Forza."
Portuguese:"Idades douradas duram 50% mais, unidades recebem 1 movimento a mais e um bonus de +10% em força de combate." Portuguese:"Idades douradas duram 50% mais, unidades recebem 1 movimento a mais e um bonus de +10% em força de combate."
French:"Les Ages d'Or durent 50% plus longtemps. Durant les Ages d'Or, les unités gagnent +1 mouvement et +10% de force de Combat." French:"Les Ages d'Or durent 50% plus longtemps. Durant les Ages d'Or, les unités gagnent +1 mouvement et +10% de force de Combat."

View File

@ -648,6 +648,7 @@
} }
"Show minimap":{ "Show minimap":{
Italian:"Mostra minimappa",
Simplified_Chinese:"显示小地图" Simplified_Chinese:"显示小地图"
} }

View File

@ -21,8 +21,8 @@ android {
applicationId "com.unciv.app" applicationId "com.unciv.app"
minSdkVersion 14 minSdkVersion 14
targetSdkVersion 29 targetSdkVersion 29
versionCode 299 versionCode 300
versionName "3.0.6" versionName "3.0.7"
} }
// Had to add this crap for Travis to build, it wanted to sign the app // Had to add this crap for Travis to build, it wanted to sign the app

View File

@ -3,11 +3,9 @@ package com.unciv.logic.civilization
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.unciv.logic.city.CityInfo import com.unciv.logic.city.CityInfo
import com.unciv.logic.map.BFS import com.unciv.logic.map.BFS
import com.unciv.logic.map.RoadStatus
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.models.gamebasics.GameBasics import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.tile.ResourceSupplyList import com.unciv.models.gamebasics.tile.ResourceSupplyList
import com.unciv.models.gamebasics.tr
import java.util.* import java.util.*
import kotlin.collections.HashMap import kotlin.collections.HashMap
import kotlin.collections.set import kotlin.collections.set
@ -78,15 +76,20 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo){
citiesReachedToMediums[civInfo.getCapital()] = arrayListOf("Start") citiesReachedToMediums[civInfo.getCapital()] = arrayListOf("Start")
val allCivCities = civInfo.gameInfo.civilizations.flatMap { it.cities } val allCivCities = civInfo.gameInfo.civilizations.flatMap { it.cities }
val theWheelIsResearched = civInfo.tech.isResearched("The Wheel")
val road = "Road"
val harbor = "Harbor"
while(citiesToCheck.isNotEmpty() && citiesReachedToMediums.size<allCivCities.size){ while(citiesToCheck.isNotEmpty() && citiesReachedToMediums.size<allCivCities.size){
val newCitiesToCheck = mutableListOf<CityInfo>() val newCitiesToCheck = mutableListOf<CityInfo>()
for(cityToConnectFrom in citiesToCheck){ for(cityToConnectFrom in citiesToCheck){
val reachedMediums = citiesReachedToMediums[cityToConnectFrom]!! val reachedMediums = citiesReachedToMediums[cityToConnectFrom]!!
// This is copypasta and can be cleaned up // This is copypasta and can be cleaned up
if(!reachedMediums.contains("Road")){ if(theWheelIsResearched && !reachedMediums.contains(road)){
val roadBfs = BFS(cityToConnectFrom.getCenterTile()) { it.roadStatus != RoadStatus.None } val roadBfs = BFS(cityToConnectFrom.getCenterTile()) { it.hasRoad(civInfo) }
roadBfs.stepToEnd() roadBfs.stepToEnd()
val reachedCities = allCivCities.filter { roadBfs.tilesReached.containsKey(it.getCenterTile())} val reachedCities = allCivCities.filter { roadBfs.tilesReached.containsKey(it.getCenterTile())}
for(reachedCity in reachedCities){ for(reachedCity in reachedCities){
@ -95,14 +98,14 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo){
citiesReachedToMediums[reachedCity] = arrayListOf() citiesReachedToMediums[reachedCity] = arrayListOf()
} }
val cityReachedByMediums = citiesReachedToMediums[reachedCity]!! val cityReachedByMediums = citiesReachedToMediums[reachedCity]!!
if(!cityReachedByMediums.contains("Road")) if(!cityReachedByMediums.contains(road))
cityReachedByMediums.add("Road") cityReachedByMediums.add(road)
} }
citiesReachedToMediums[cityToConnectFrom]!!.add("Road") citiesReachedToMediums[cityToConnectFrom]!!.add(road)
} }
if(!reachedMediums.contains("Harbor") if(!reachedMediums.contains(harbor)
&& cityToConnectFrom.cityConstructions.containsBuildingOrEquivalent("Harbor")){ && cityToConnectFrom.cityConstructions.containsBuildingOrEquivalent(harbor)){
val seaBfs = BFS(cityToConnectFrom.getCenterTile()) { it.isWater || it.isCityCenter() } val seaBfs = BFS(cityToConnectFrom.getCenterTile()) { it.isWater || it.isCityCenter() }
seaBfs.stepToEnd() seaBfs.stepToEnd()
val reachedCities = allCivCities.filter { seaBfs.tilesReached.containsKey(it.getCenterTile())} val reachedCities = allCivCities.filter { seaBfs.tilesReached.containsKey(it.getCenterTile())}
@ -112,10 +115,10 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo){
citiesReachedToMediums[reachedCity] = arrayListOf() citiesReachedToMediums[reachedCity] = arrayListOf()
} }
val cityReachedByMediums = citiesReachedToMediums[reachedCity]!! val cityReachedByMediums = citiesReachedToMediums[reachedCity]!!
if(!cityReachedByMediums.contains("Harbor")) if(!cityReachedByMediums.contains(harbor))
cityReachedByMediums.add("Harbor") cityReachedByMediums.add(harbor)
} }
citiesReachedToMediums[cityToConnectFrom]!!.add("Harbor") citiesReachedToMediums[cityToConnectFrom]!!.add(harbor)
} }
} }
citiesToCheck = newCitiesToCheck citiesToCheck = newCitiesToCheck

View File

@ -94,7 +94,8 @@ class MapUnit {
if (type.isWaterUnit() && civInfo.nation.unique == "+2 movement for all naval units") if (type.isWaterUnit() && civInfo.nation.unique == "+2 movement for all naval units")
movement += 2 movement += 2
if(civInfo.nation.unique=="Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength") if(civInfo.goldenAges.isGoldenAge() &&
civInfo.nation.unique=="Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength")
movement+=1 movement+=1
return movement return movement

View File

@ -324,5 +324,12 @@ open class TileInfo {
} }
return false return false
} }
fun hasRoad(civInfo: CivilizationInfo): Boolean {
if(roadStatus != RoadStatus.None) return true
if(civInfo.nation.forestsAndJunglesAreRoads && (terrainFeature==Constants.jungle || terrainFeature==Constants.forest))
return true
return false
}
//endregion //endregion
} }

View File

@ -21,7 +21,7 @@ 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 (hasRoad(from,civInfo) && hasRoad(to,civInfo)) if (from.hasRoad(civInfo) && to.hasRoad(civInfo))
{ {
if (unit.civInfo.tech.movementSpeedOnRoadsImproved) return 1 / 3f + extraCost if (unit.civInfo.tech.movementSpeedOnRoadsImproved) return 1 / 3f + extraCost
else return 1 / 2f + extraCost else return 1 / 2f + extraCost
@ -40,13 +40,6 @@ class UnitMovementAlgorithms(val unit:MapUnit) {
return to.getLastTerrain().movementCost.toFloat() + extraCost // no road return to.getLastTerrain().movementCost.toFloat() + extraCost // no road
} }
fun hasRoad(tileInfo:TileInfo, civInfo: CivilizationInfo): Boolean {
if(tileInfo.roadStatus!==RoadStatus.None) return true
if(civInfo.nation.forestsAndJunglesAreRoads && tileInfo.terrainFeature!=null
&& (tileInfo.terrainFeature==Constants.jungle || tileInfo.terrainFeature==Constants.forest)) return true
return false
}
class ParentTileAndTotalDistance(val parentTile:TileInfo, val totalDistance: Float) class ParentTileAndTotalDistance(val parentTile:TileInfo, val totalDistance: Float)
fun getDistanceToTilesWithinTurn(origin: Vector2, unitMovement: Float): PathsToTilesWithinTurn { fun getDistanceToTilesWithinTurn(origin: Vector2, unitMovement: Float): PathsToTilesWithinTurn {